diff --git a/Example/TestApplication/Podfile b/Example/TestApplication/Podfile
index 84a99f9d..b267283c 100644
--- a/Example/TestApplication/Podfile
+++ b/Example/TestApplication/Podfile
@@ -4,6 +4,7 @@
target 'TestApplication' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
+ # pod 'Torus-fetchNodeDetails', :git=>'https://github.com/torusresearch/fetch-node-details-swift'
pod "Torus-utils", :path => '../../'
# Pods for TestApplication
diff --git a/Example/TestApplication/Podfile.lock b/Example/TestApplication/Podfile.lock
index 56cca651..d4d7ab2d 100644
--- a/Example/TestApplication/Podfile.lock
+++ b/Example/TestApplication/Podfile.lock
@@ -1,6 +1,5 @@
PODS:
- BigInt (4.0.0)
- - BlueECC (1.2.5)
- CryptoSwift (1.0.0)
- PromiseKit (6.8.5):
- PromiseKit/CorePromise (= 6.8.5)
@@ -13,12 +12,11 @@ PODS:
- PromiseKit/CorePromise
- secp256k1.c (0.1.2)
- Starscream (3.1.1)
- - Torus-fetchNodeDetails (0.0.8):
+ - Torus-fetchNodeDetails (0.0.10):
- web3swift (~> 2.2.0)
- Torus-utils (0.0.13):
- - BlueECC (~> 1.2.4)
- PromiseKit/Foundation (~> 6.0)
- - Torus-fetchNodeDetails (~> 0.0.8)
+ - Torus-fetchNodeDetails (= 0.0.10)
- web3swift (2.2.1):
- BigInt (~> 4.0)
- CryptoSwift (~> 1.0.0)
@@ -27,34 +25,39 @@ PODS:
- Starscream (~> 3.1.0)
DEPENDENCIES:
+ - Torus-fetchNodeDetails (from `https://github.com/torusresearch/fetch-node-details-swift`)
- Torus-utils (from `../../`)
SPEC REPOS:
trunk:
- BigInt
- - BlueECC
- CryptoSwift
- PromiseKit
- secp256k1.c
- Starscream
- - Torus-fetchNodeDetails
- web3swift
EXTERNAL SOURCES:
+ Torus-fetchNodeDetails:
+ :git: https://github.com/torusresearch/fetch-node-details-swift
Torus-utils:
:path: "../../"
+CHECKOUT OPTIONS:
+ Torus-fetchNodeDetails:
+ :commit: 979d7d8358cfc19d0c88afb1b98e0abade446d81
+ :git: https://github.com/torusresearch/fetch-node-details-swift
+
SPEC CHECKSUMS:
BigInt: 2aad1a9942dc932ec8b84290d2c564a3d76f97ab
- BlueECC: 0d18e93347d3ec6d41416de21c1ffa4d4cd3c2cc
CryptoSwift: d81eeaa59dc5a8d03720fe919a6fd07b51f7439f
PromiseKit: 9616b0afef31eae56ab9ce044c8ec2b8612a15cd
secp256k1.c: db47b726585d80f027423682eb369729e61b3b20
Starscream: 4bb2f9942274833f7b4d296a55504dcfc7edb7b0
- Torus-fetchNodeDetails: eb55b4b731c9e2484a83a032684679b29582da9a
- Torus-utils: 6e6d27b7d3dc08ab23a8a8449f4d8c14b43b7b56
+ Torus-fetchNodeDetails: 7e7286d4fc78e2de33e4605dedb796b5eea4cab5
+ Torus-utils: 5f4cd017f748cc4f639b5ca19f28a5448795a05b
web3swift: d79140b9d5fdd06a377072936b086bb7ae187157
-PODFILE CHECKSUM: 6956e5430da2c75937a14806f68bd36b2a5bf4a8
+PODFILE CHECKSUM: e6b17e4ed9978ef9cb9095a9e02c8d2f4b1c4046
COCOAPODS: 1.9.2
diff --git a/Example/TestApplication/Pods/BlueECC/LICENSE.txt b/Example/TestApplication/Pods/BlueECC/LICENSE.txt
deleted file mode 100644
index d9a10c0d..00000000
--- a/Example/TestApplication/Pods/BlueECC/LICENSE.txt
+++ /dev/null
@@ -1,176 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
diff --git a/Example/TestApplication/Pods/BlueECC/README.md b/Example/TestApplication/Pods/BlueECC/README.md
deleted file mode 100644
index 4d115349..00000000
--- a/Example/TestApplication/Pods/BlueECC/README.md
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# BlueECC
-
-A cross platform Swift implementation of Elliptic Curve Digital Signature Algorithm (ECDSA) and Elliptic Curve Integrated Encryption Scheme (ECIES). This allows you to sign, verify, encrypt and decrypt using elliptic curve keys.
-
-## Swift version
-
-The latest version of BlueECC requires **Swift 4.1** or later. You can download this version of the Swift binaries by following this [link](https://swift.org/download/). Compatibility with other Swift versions is not guaranteed.
-
-## Usage
-
-#### Add dependencies
-
-Add the `BlueECC` package to the dependencies within your application’s `Package.swift` file. Substitute `"x.x.x"` with the latest `BlueECC` [release](https://github.com/IBM-Swift/BlueECC/releases).
-
-```swift
-.package(url: "https://github.com/IBM-Swift/BlueECC.git", from: "x.x.x")
-```
-
-Add `CryptorECC` to your target's dependencies:
-
-```swift
-.target(name: "example", dependencies: ["CryptorECC"]),
-```
-
-#### Import package
-
-```swift
-import CryptorECC
-```
-
-### Getting Started
-
-#### Elliptic curve private key
-
-you can generate an ECPrivate key using BlueECC.
-
-```swift
-let p256PrivateKey = try ECPrivateKey.make(for: .prime256v1)
-```
-
-You can then view the key in it's PEM format as follows:
-
-```swift
-let privateKeyPEM = p256PrivateKey.pemString
-```
-
-The following curves are supported:
-- prime256v1
-- secp384r1
-- secp521r1
-
-Alternatively, you may generate private key using a third party provider:
-
-- You can generate a `p-256` private key as a `.p8` file for Apple services from [https://developer.apple.com/account/ios/authkey](https://developer.apple.com/account/ios/authkey/). This will produce a key that should be formatted as follows:
-```swift
-let privateKey =
-"""
------BEGIN PRIVATE KEY-----
-MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQglf7ztYnsaHX2yiHJ
-meHFl5dg05y4a/hD7wwuB7hSRpmhRANCAASKRzmboLbG0NZ54B5PXxYSU7fvO8U7
-PyniQCWG+Agc3bdcgKU0RKApWYuBJKrZqyqLB2tTlgdtwcWSB0AEzVI8
------END PRIVATE KEY-----
-"""
-```
-
-- You can use OpenSSL [Command Line Elliptic Curve Operations](https://wiki.openssl.org/index.php/Command_Line_Elliptic_Curve_Operations).
-
-The following commands generate private keys for the three supported curves as `.pem` files:
-```
-// p-256
-$ openssl ecparam -name prime256v1 -genkey -noout -out key.pem
-// p-384
-$ openssl ecparam -name secp384r1 -genkey -noout -out key.pem
-// p-521
-$ openssl ecparam -name secp521r1 -genkey -noout -out key.pem
-```
-These keys will be formatted as follows:
-```swift
-let privateKey =
-"""
------BEGIN EC PRIVATE KEY-----
-MHcCAQEEIJX+87WJ7Gh19sohyZnhxZeXYNOcuGv4Q+8MLge4UkaZoAoGCCqGSM49
-AwEHoUQDQgAEikc5m6C2xtDWeeAeT18WElO37zvFOz8p4kAlhvgIHN23XIClNESg
-KVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
------END EC PRIVATE KEY-----
-"""
-```
-
-The key string can then be used to initialize an `ECPrivateKey` instance:
-```swift
-let eccPrivateKey = try ECPrivateKey(key: privateKey)
-```
-
-#### Elliptic curve public key
-
-You can use OpenSSL to generate an elliptic curve public key `.pem` file from any of the above elliptic curve private key files:
-```
-$ openssl ec -in key.pem -pubout -out public.pem
-```
-This will produce a public key formatted as follows:
-```swift
-let publicKey =
-"""
------BEGIN PUBLIC KEY-----
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEikc5m6C2xtDWeeAeT18WElO37zvF
-Oz8p4kAlhvgIHN23XIClNESgKVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
------END PUBLIC KEY-----
-"""
-```
-These keys can then be used to initialize an `ECPrivateKey` instance:
-```swift
-let eccPublicKey = try ECPublicKey(key: publicKey)
-```
-
-Alternatively, you can extract the public key from your `ECPrivateKey`:
-
-```swift
-let eccPublicKey = try eccPrivateKey.extractPublicKey()
-print(eccPublicKey.pemString)
-```
-
-#### Signing String or Data
-
-BlueECC extends `String` and `Data` so you can call sign directly on your plaintext using an EC private key. This creates an `ECSignature` containing the r and s signature values:
-
-```swift
-let message = "hello world"
-let signature = try message.sign(with: eccPrivateKey)
-```
-
-#### Verifying the signature
-
-Use the public key to verify the signature for the plaintext:
-```swift
-let verified = signature.verify(plaintext: message, using: eccPublicKey)
-if verified {
- print("Signature is valid for provided plaintext")
-}
-```
-
-#### Encrypting String or Data
-
-Use the public key to encrypt your plaintext String or Data to encrypted Data or an encrypted Base64Encoded String:
-```swift
-let encryptedData = try "Hello World".encrypt(with: eccPublicKey)
-print(encryptedData.base64EncodedString())
-```
-
-#### Decrypting to plaintext
-
-Use the private key to decrypt the encrypted Data or Base64Encoded String to plaintext Data or UTF8 String:
-
-```swift
-let decryptedData = try encryptedData.decrypt(with: eccPrivateKey)
-print(String(data: decryptedData, encoding: .utf8))
-```
-
-#### Encryption interoperability
-
-Cross platform encryption and decryption is currently only supported with `prime256v1` curves. The `secp384r1` and `secp521r1` curves do not support Linux encryption with Apple platform decryption and vice versa.
-
-If you would like to interoperate with this repo,
-The following describes the encryption process:
-- Generate an ephemeral EC key pair
-- Use ECDH of your EC pair to generate a symmetric key
-- Use SHA256 ANSI x9.63 Key Derivation Function with the ephemeral public key to generate a 32 byte key
-- Use the first 16 bytes as an AES-GCM key
-- Use the second 16 bytes as the initialization vector (IV)
-- Use aes_128_gcm to encrypt the plaintext and generate a 16 byte GCM tag
-- Send the ephemeral public key, encrypted data and GCM tag
-
-This is equivalent to: `kSecKeyAlgorithmECIESEncryptionStandardVariableIVX963SHA256AESGCM` when using apple security.
-
-## API Documentation
-
-For more information visit our [API reference](https://ibm-swift.github.io/BlueECC/index.html).
-
-## Community
-We love to talk server-side Swift, and Kitura. Join our [Slack](http://swift-at-ibm-slack.mybluemix.net/) to meet the team!
-
-## License
-This library is licensed under Apache 2.0. Full license text is available in [LICENSE](https://github.com/IBM-Swift/BlueECC/blob/master/LICENSE.txt).
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ASN1.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ASN1.swift
deleted file mode 100644
index 21d82ff2..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ASN1.swift
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Copyright IBM Corporation 2019
- *
- * 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.
- **/
-
-import Foundation
-
-// Private and public keys are stores in ASN1 format.
-// The following code is used to parse the data and retrieve the required elements.
-struct ASN1 {
-
- indirect enum ASN1Element {
- case seq(elements: [ASN1Element])
- case integer(int: Int)
- case bytes(data: Data)
- case constructed(tag: Int, elem: ASN1Element)
- case unknown
- }
-
- static func toASN1Element(data: Data) -> (ASN1Element, Int) {
- guard data.count >= 2 else {
- // format error
- return (.unknown, data.count)
- }
-
- switch data[0] {
- case 0x30: // sequence
- let (length, lengthOfLength) = readLength(data: data.advanced(by: 1))
- var result: [ASN1Element] = []
- var subdata = data.advanced(by: 1 + lengthOfLength)
- var alreadyRead = 0
-
- while alreadyRead < length {
- let (e, l) = toASN1Element(data: subdata)
- result.append(e)
- subdata = subdata.count > l ? subdata.advanced(by: l) : Data()
- alreadyRead += l
- }
- return (.seq(elements: result), 1 + lengthOfLength + length)
-
- case 0x02: // integer
- let (length, lengthOfLength) = readLength(data: data.advanced(by: 1))
- if length < 8 {
- var result: Int = 0
- let subdata = data.advanced(by: 1 + lengthOfLength)
- // ignore negative case
- for i in 0.. (Int, Int) {
- if data[0] & 0x80 == 0x00 { // short form
- return (Int(data[0]), 1)
- } else {
- let lenghOfLength = Int(data[0] & 0x7F)
- var result: Int = 0
- for i in 1..<(1 + lenghOfLength) {
- result = 256 * result + Int(data[i])
- }
- return (result, 1 + lenghOfLength)
- }
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/Data+Extensions.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/Data+Extensions.swift
deleted file mode 100644
index 08808c84..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/Data+Extensions.swift
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-
-import Foundation
-
-#if !swift(>=5.0)
-// Extension to allow Swift 5 `withUnsafeBytes` API for earlier versions
-internal extension Data {
- func withUnsafeBytes(_ body: (UnsafeRawBufferPointer) throws -> T) rethrows -> T {
- let c = count
- return try withUnsafeBytes { (p: UnsafePointer) throws -> T in
- try body(UnsafeRawBufferPointer(start: p, count: c))
- }
- }
-
- mutating func withUnsafeMutableBytes(_ body: (UnsafeMutableRawBufferPointer) throws -> T) rethrows -> T {
- let c = count
- return try withUnsafeMutableBytes { (p: UnsafeMutablePointer) throws -> T in
- try body(UnsafeMutableRawBufferPointer(start: p, count: c))
- }
- }
-
- init(_ bytes: [UInt8]) {
- self.init(bytes: bytes)
- }
-}
-#endif
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECDecryptable.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECDecryptable.swift
deleted file mode 100644
index 2a95bffe..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECDecryptable.swift
+++ /dev/null
@@ -1,146 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-
-import Foundation
-
-#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
-import CommonCrypto
-#elseif os(Linux)
-import OpenSSL
-#endif
-
-/// Extensions for encrypting, decrypting or signing `Data` using the appropriate algorithm determined by the key's curve with the provided `ECPrivateKey` or `ECPublicKey`.
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-extension Data {
-
- /// Decrypt the encrypted data using the provided `ECPrivateKey`.
- /// The signing algorithm used is determined based on the private key's elliptic curve.
- /// - Parameter ecPrivateKey: The elliptic curve private key.
- /// - Returns: The plaintext Data.
- /// - Throws: An ECError if the Encrypted data fails to be decrypted.
- public func decrypt(with key: ECPrivateKey) throws -> Data {
- #if os(Linux)
- // Initialize the decryption context.
- let rsaDecryptCtx = EVP_CIPHER_CTX_new()
- EVP_CIPHER_CTX_init_wrapper(rsaDecryptCtx)
-
- let tagLength = 16
- let encKeyLength = key.curve.keySize
- let encryptedDataLength = Int(self.count) - encKeyLength - tagLength
- // Extract encryptedAESKey, encryptedData, GCM tag from data
- let encryptedKey = self.subdata(in: 0...allocate(capacity: skey_len)
- let decrypted = UnsafeMutablePointer.allocate(capacity: Int(encryptedData.count + 16))
- defer {
- // On completion deallocate the memory
- EVP_CIPHER_CTX_reset_wrapper(rsaDecryptCtx)
- EVP_CIPHER_CTX_free_wrapper(rsaDecryptCtx)
- #if swift(>=4.1)
- symKey.deallocate()
- decrypted.deallocate()
- #else
- symKey.deallocate(capacity: skey_len)
- decrypted.deallocate(capacity: Int(encryptedData.count + 16))
- #endif
- }
-
- // Get public key point from key
- let pubk_point = EC_POINT_new(ec_group)
- defer {
- EC_POINT_free(pubk_point)
- }
- encryptedKey.withUnsafeBytes({ (pubk: UnsafeRawBufferPointer) in
- let pubk_bn = BN_bin2bn(pubk.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(encryptedKey.count), nil)
- let pubk_bn_ctx = BN_CTX_new()
- BN_CTX_start(pubk_bn_ctx)
- EC_POINT_bn2point(ec_group, pubk_bn, pubk_point, pubk_bn_ctx)
- BN_CTX_end(pubk_bn_ctx)
- BN_CTX_free(pubk_bn_ctx)
- BN_clear_free(pubk_bn)
- })
-
- // calculate symmetric key
- ECDH_compute_key(symKey, skey_len, pubk_point, key.nativeKey, nil)
- // processedLen is the number of bytes that each EVP_DecryptUpdate/EVP_DecryptFinal decrypts.
- // The sum of processedLen is the total size of the decrypted message (decMsgLen)
- var processedLen: Int32 = 0
- var decMsgLen: Int32 = 0
-
- // get aes key and iv using ANSI x9.63 Key Derivation Function
- let symKeyData = Data(bytes: symKey, count: skey_len)
- let counterData = Data([0x00, 0x00, 0x00, 0x01])
- let preHashKey = symKeyData + counterData + encryptedKey
- let hashedKey = key.curve.digest(data: preHashKey)
- let aesKey = [UInt8](hashedKey.subdata(in: 0 ..< 16))
- let iv = [UInt8](hashedKey.subdata(in: 16 ..< 32))
-
- // Set the IV length to be 16 bytes.
- // Set the envelope decryption algorithm as 128 bit AES-GCM.
- guard EVP_DecryptInit_ex(rsaDecryptCtx, EVP_aes_128_gcm(), nil, nil, nil) == 1 else {
- throw ECError.failedEvpInit
- }
- guard EVP_CIPHER_CTX_ctrl(rsaDecryptCtx, EVP_CTRL_GCM_SET_IVLEN, 16, nil) == 1,
- // Set the AES key to be 16 bytes.
- EVP_CIPHER_CTX_set_key_length(rsaDecryptCtx, 16) == 1
- else {
- throw ECError.failedDecryptionAlgorithm
- }
-
- // Set the envelope decryption context AES key and IV.
- guard EVP_DecryptInit_ex(rsaDecryptCtx, nil, nil, aesKey, iv) == 1 else {
- throw ECError.failedDecryptionAlgorithm
- }
-
- // Decrypt the encrypted data using the symmetric key.
- guard encryptedData.withUnsafeBytes({ (enc: UnsafeRawBufferPointer) -> Int32 in
- return EVP_DecryptUpdate(rsaDecryptCtx, decrypted, &processedLen, enc.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(encryptedData.count))
- }) != 0 else {
- throw ECError.failedDecryptionAlgorithm
- }
- decMsgLen += processedLen
- // Verify the provided GCM tag.
- guard tagData.withUnsafeMutableBytes({ (tag: UnsafeMutableRawBufferPointer) -> Int32 in
- return EVP_CIPHER_CTX_ctrl(rsaDecryptCtx, EVP_CTRL_GCM_SET_TAG, 16, tag.baseAddress)
- }) == 1
- else {
- throw ECError.failedDecryptionAlgorithm
- }
- guard EVP_DecryptFinal_ex(rsaDecryptCtx, decrypted.advanced(by: Int(decMsgLen)), &processedLen) == 1 else {
- throw ECError.failedDecryptionAlgorithm
- }
- decMsgLen += processedLen
- // return the decrypted plaintext.
- return Data(bytes: decrypted, count: Int(decMsgLen))
- #else
- var error: Unmanaged? = nil
- guard let eData = SecKeyCreateDecryptedData(key.nativeKey,
- key.curve.encryptionAlgorithm,
- self as CFData,
- &error)
- else {
- guard let error = error?.takeRetainedValue() else {
- throw ECError.failedEncryptionAlgorithm
- }
- throw error
- }
- return eData as Data
- #endif
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECEncryptable.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECEncryptable.swift
deleted file mode 100644
index 2c6a5151..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECEncryptable.swift
+++ /dev/null
@@ -1,177 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-
-import Foundation
-
-#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
-import CommonCrypto
-#elseif os(Linux)
-import OpenSSL
-#endif
-
-/// A protocol for encrypting an instance of some object to generate some encrypted data.
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-protocol ECEncryptable {
- /// Encrypt the object using ECIES and produce some encrypted `Data`.
- func encrypt(with: ECPublicKey) throws -> Data
-}
-
-/// Extensions for encrypting or signing a `String` by converting it to UTF8 Data, then using the appropriate algorithm determined by the key's curve with the provided `ECPrivateKey` or `ECPublicKey`.
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-extension String: ECEncryptable {
-
- /// UTF8 encode the String to Data and encrypt it using the `ECPublicKey`.
- /// This either uses the `SecKeyAlgorithm`: `eciesEncryptionStandardVariableIVX963SHA256AESGCM`,
- /// or the equivalent OpenSSL implementation.
- /// - Parameter ecPrivateKey: The elliptic curve private key.
- /// - Returns: The encrypted Data.
- /// - Throws: An ECError is the plaintext fails to be encrypted.
- public func encrypt(with key: ECPublicKey) throws -> Data {
- return try Data(self.utf8).encrypt(with: key)
- }
-}
-
-/// Extension for signing `Data` with an `ECPrivateKey` and the algorithm determined by the key's curve.
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-extension Data: ECEncryptable {
-
- /// Encrypt the data using the `ECPublicKey`.
- /// This either uses the `SecKeyAlgorithm`: `eciesEncryptionStandardVariableIVX963SHA256AESGCM`,
- /// or the equivalent OpenSSL implementation.
- /// - Parameter ecPrivateKey: The elliptic curve private key.
- /// - Returns: The encrypted Data.
- /// - Throws: An ECError is the plaintext fails to be encrypted.
- public func encrypt(with key: ECPublicKey) throws -> Data {
- #if os(Linux)
- // Compute symmetric key
- let ec_key = EC_KEY_new_by_curve_name(key.curve.nativeCurve)
- defer {
- EC_KEY_free(ec_key)
- }
- EC_KEY_generate_key(ec_key)
- let ec_group = EC_KEY_get0_group(ec_key)
- let symKey_len = Int((EC_GROUP_get_degree(ec_group) + 7) / 8)
- let symKey = UnsafeMutablePointer.allocate(capacity: symKey_len)
- ECDH_compute_key(symKey, symKey_len, EC_KEY_get0_public_key(key.nativeKey), ec_key, nil)
-
- // get temp public key data
- let pub_bn_ctx = BN_CTX_new()
- BN_CTX_start(pub_bn_ctx)
- let pub = EC_KEY_get0_public_key(ec_key)
- let pub_bn = BN_new()
- EC_POINT_point2bn(ec_group, pub, POINT_CONVERSION_UNCOMPRESSED, pub_bn, pub_bn_ctx)
- let pubk = UnsafeMutablePointer.allocate(capacity: key.curve.keySize)
- BN_bn2bin(pub_bn, pubk)
- defer {
- BN_CTX_end(pub_bn_ctx)
- BN_CTX_free(pub_bn_ctx)
- BN_clear_free(pub_bn)
- #if swift(>=4.1)
- pubk.deallocate()
- symKey.deallocate()
- #else
- pubk.deallocate(capacity: key.curve.keySize)
- symKey.deallocate(capacity: symKey_len)
- #endif
- }
-
- // get aes key and iv using ANSI x9.63 Key Derivation Function
- let symKeyData = Data(bytes: symKey, count: symKey_len)
- let counterData = Data([0x00, 0x00, 0x00, 0x01])
- let sharedInfo = Data(bytes: pubk, count: key.curve.keySize)
- let preHashKey = symKeyData + counterData + sharedInfo
- let hashedKey = key.curve.digest(data: preHashKey)
- let aesKey = [UInt8](hashedKey.subdata(in: 0 ..< (hashedKey.count - 16)))
- let iv = [UInt8](hashedKey.subdata(in: (hashedKey.count - 16) ..< hashedKey.count))
-
-
- // AES encrypt data
- // Initialize encryption context
- let rsaEncryptCtx = EVP_CIPHER_CTX_new_wrapper()
- EVP_CIPHER_CTX_init_wrapper(rsaEncryptCtx)
-
- // Allocate encryption memory
- let tag = UnsafeMutablePointer.allocate(capacity: 16)
- let encrypted = UnsafeMutablePointer.allocate(capacity: self.count + 16)
- defer {
- // On completion deallocate the memory
- EVP_CIPHER_CTX_reset_wrapper(rsaEncryptCtx)
- EVP_CIPHER_CTX_free_wrapper(rsaEncryptCtx)
-
- #if swift(>=4.1)
- tag.deallocate()
- encrypted.deallocate()
- #else
- tag.deallocate(capacity: 16)
- encrypted.deallocate(capacity: self.count + 16)
- #endif
- }
-
- var processedLength: Int32 = 0
- var encLength: Int32 = 0
- guard EVP_EncryptInit_ex(rsaEncryptCtx, EVP_aes_128_gcm(), nil, nil, nil) == 1 else {
- throw ECError.failedEvpInit
- }
- // Set the IV length to be 16 to match Apple.
- guard EVP_CIPHER_CTX_ctrl(rsaEncryptCtx, EVP_CTRL_GCM_SET_IVLEN, 16, nil) == 1
- // Add the aad to the encryption context.
- // This is used in generating the GCM tag. We don't use this processedLength.
- else {
- throw ECError.failedEncryptionAlgorithm
- }
- guard EVP_EncryptInit_ex(rsaEncryptCtx, nil, nil, aesKey, iv) == 1 else {
- throw ECError.failedDecryptionAlgorithm
- }
- // Encrypt the plaintext into encrypted using gcmAlgorithm with the random aes key and all 0 iv.
- guard(self.withUnsafeBytes({ (plaintext: UnsafeRawBufferPointer) -> Int32 in
- return EVP_EncryptUpdate(rsaEncryptCtx, encrypted, &processedLength, plaintext.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(self.count))
- })) == 1 else {
- throw ECError.failedEncryptionAlgorithm
- }
-
- encLength += processedLength
- // Finalize the encryption so no more data will be added and generate the GCM tag.
- guard EVP_EncryptFinal_ex(rsaEncryptCtx, encrypted.advanced(by: Int(encLength)), &processedLength) == 1 else {
- throw ECError.failedEncryptionAlgorithm
- }
-
- encLength += processedLength
- // Get the 16 byte GCM tag.
- guard EVP_CIPHER_CTX_ctrl(rsaEncryptCtx, EVP_CTRL_GCM_GET_TAG, 16, tag) == 1 else {
- throw ECError.failedEncryptionAlgorithm
- }
-
- // Construct the envelope by combining the encrypted AES key, the encrypted date and the GCM tag.
- let ekFinal = Data(bytes: pubk, count: key.curve.keySize)
- let cipher = Data(bytes: encrypted, count: Int(encLength))
- let tagFinal = Data(bytes: tag, count: 16)
- return ekFinal + cipher + tagFinal
- #else
- var error: Unmanaged? = nil
- guard let eData = SecKeyCreateEncryptedData(key.nativeKey,
- key.curve.encryptionAlgorithm,
- self as CFData,
- &error)
- else {
- guard let error = error?.takeRetainedValue() else {
- throw ECError.failedEncryptionAlgorithm
- }
- throw error
- }
-
- return eData as Data
- #endif
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECError.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECError.swift
deleted file mode 100644
index 605d3918..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECError.swift
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * Copyright IBM Corporation 2019
- *
- * 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.
- **/
-
-import Foundation
-
-/// A struct representing the different errors that can be thrown by BlueECC.
-public struct ECError: Error, Equatable {
-
- /// A human readable description of the error.
- public let localizedDescription: String
-
- private let internalError: InternalError
-
- private enum InternalError {
- case invalidPEMString, unknownPEMHeader, failedBase64Encoding, failedASN1Decoding, unsupportedCurve, failedNativeKeyCreation, failedEvpInit, failedSigningAlgorithm, invalidRSLength, failedEncryptionAlgorithm, failedUTF8Decoding, failedDecryptionAlgorithm
- }
-
- /// Error thrown when an invalid PEM String used to initialize a key.
- public static let invalidPEMString = ECError(localizedDescription: "Input was not a valid PEM String", internalError: .invalidPEMString)
-
- /// Error thrown when the PEM header is not recognized.
- public static let unknownPEMHeader = ECError(localizedDescription: "Input PEM header was not recognized", internalError: .unknownPEMHeader)
-
- /// Error thrown when a String fails to be Base64 encoded.
- public static let failedBase64Encoding = ECError(localizedDescription: "Failed to base64 encode the String", internalError: .failedBase64Encoding)
-
- /// Error thrown when the ASN1 data could not be decoded to the expected structure.
- public static let failedASN1Decoding = ECError(localizedDescription: "ASN1 data could not be decoded to expected structure", internalError: .failedASN1Decoding)
-
- /// Error thrown when the key's object identifier is for a curve that is not supported.
- public static let unsupportedCurve = ECError(localizedDescription: "The key object identifier is for a non-supported curve", internalError: .unsupportedCurve)
-
- /// Error thrown when the key could not be converted to a native key (`SecKey` for Apple, `EC_KEY` for linux).
- public static let failedNativeKeyCreation = ECError(localizedDescription: "The key data could not be converted to a native key", internalError: .failedNativeKeyCreation)
-
- /// Error thrown when the encryption envelope fails to initialize.
- public static let failedEvpInit = ECError(localizedDescription: "Failed to initialize the signing envelope", internalError: .failedEvpInit)
-
- /// Error thrown when the signing algorithm could not create the signature.
- public static let failedSigningAlgorithm = ECError(localizedDescription: "Signing algorithm failed to create the signature", internalError: .failedSigningAlgorithm)
-
- /// Error thrown when the provided R and S Data was not a valid length.
- /// They must be the same length and either 32, 48 or 66 bytes (depending on the curve used).
- public static let invalidRSLength = ECError(localizedDescription: "The provided R and S values were not a valid length", internalError: .invalidRSLength)
-
- /// Error thrown when the encryption algorithm could not encrypt the plaintext.
- public static let failedEncryptionAlgorithm = ECError(localizedDescription: "Encryption algorithm failed to encrypt the data", internalError: .failedEncryptionAlgorithm)
-
- /// Error thrown when the decryption algorithm could not decrypt the encrypted Data.
- public static let failedDecryptionAlgorithm = ECError(localizedDescription: "Decryption algorithm failed to decrypt the data", internalError: .failedDecryptionAlgorithm)
-
- /// Error thrown when the Data could not be decoded into a UTF8 String.
- public static let failedUTF8Decoding = ECError(localizedDescription: "Data could not be decoded as a UTF8 String", internalError: .failedUTF8Decoding)
-
- /// Checks if ECSigningErrors are equal, required for Equatable protocol.
- public static func == (lhs: ECError, rhs: ECError) -> Bool {
- return lhs.internalError == rhs.internalError
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECPrivateKey.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECPrivateKey.swift
deleted file mode 100644
index 4091cf37..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECPrivateKey.swift
+++ /dev/null
@@ -1,474 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-import Foundation
-#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
-import CommonCrypto
-#elseif os(Linux)
-import OpenSSL
-#endif
-
-
-/**
- Represents an elliptic curve private key.
- Supported curves are:
- - prime256v1
- - secp384r1
- - NID_secp521r1
- You can generate an elliptic curve Key using OpenSSL:
- https://wiki.openssl.org/index.php/Command_Line_Elliptic_Curve_Operations#Generating_EC_Keys_and_Parameters
-
- ### Usage Example:
- ```swift
- let pemKey = """
- -----BEGIN EC PRIVATE KEY-----
- MHcCAQEEIJX+87WJ7Gh19sohyZnhxZeXYNOcuGv4Q+8MLge4UkaZoAoGCCqGSM49
- AwEHoUQDQgAEikc5m6C2xtDWeeAeT18WElO37zvFOz8p4kAlhvgIHN23XIClNESg
- KVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
- -----END EC PRIVATE KEY-----
- """
- let privateKey = try ECPrivateKey(key: pemKey)
- let signature = "Hello world".sign(with: privateKey)
- ```
- */
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-public class ECPrivateKey {
- /// A String description of the curve this key was generated from.
- public let curveId: String
-
- /// The `EllipticCurve` this key was generated from.
- public let curve: EllipticCurve
-
- /// The private key represented as a PEM String.
- public let pemString: String
-
- #if os(Linux)
- typealias NativeKey = OpaquePointer?
- deinit { EC_KEY_free(.make(optional: self.nativeKey)) }
- #else
- typealias NativeKey = SecKey
- #endif
- let nativeKey: NativeKey
- let pubKeyBytes: Data
- private var stripped: Bool = false
-
-
- /**
- Initialize an ECPrivateKey from a PEM String.
- This can either be from a `.p8` file with the header "-----BEGIN PRIVATE KEY-----",
- or from a `.pem` file with the header "-----BEGIN EC PRIVATE KEY-----".
- ### Usage Example: ###
- ```swift
- let privateKeyString = """
- -----BEGIN EC PRIVATE KEY-----
- MHcCAQEEIJX+87WJ7Gh19sohyZnhxZeXYNOcuGv4Q+8MLge4UkaZoAoGCCqGSM49
- AwEHoUQDQgAEikc5m6C2xtDWeeAeT18WElO37zvFOz8p4kAlhvgIHN23XIClNESg
- KVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
- -----END EC PRIVATE KEY-----
- """
- let key = try ECPrivateKey(key: privateKeyString)
- ```
- - Parameter key: The elliptic curve private key as a PEM string.
- - Returns: An ECPrivateKey.
- - Throws: An ECError if the PEM string can't be decoded or is not a valid key.
- */
- public convenience init(key: String) throws {
- // Strip whitespace characters
- let strippedKey = String(key.filter { !" \n\t\r".contains($0) })
- var pemComponents = strippedKey.components(separatedBy: "-----")
- guard pemComponents.count >= 5 else {
- throw ECError.invalidPEMString
- }
- // Remove any EC parameters since Curve is determined by OID
- if pemComponents[1] == "BEGINECPARAMETERS" {
- pemComponents.removeFirst(5)
- guard pemComponents.count >= 5 else {
- throw ECError.invalidPEMString
- }
- }
- guard let der = Data(base64Encoded: pemComponents[2]) else {
- throw ECError.failedBase64Encoding
- }
- if pemComponents[1] == "BEGINECPRIVATEKEY" {
- try self.init(sec1DER: der)
- } else if pemComponents[1] == "BEGINPRIVATEKEY" {
- try self.init(pkcs8DER: der)
- } else {
- throw ECError.unknownPEMHeader
- }
- }
-
- /// Initialize an ECPrivateKey from a PKCS8 `.der` file data.
- /// This is equivalent to a PEM String that has had the "-----BEGIN PRIVATE KEY-----"
- /// header and footer stripped and been base64 encoded to ASN1 Data.
- /// - Parameter pkcs8DER: The elliptic curve private key Data.
- /// - Returns: An ECPrivateKey.
- /// - Throws: An ECError if the Data can't be decoded or is not a valid key.
- public init(pkcs8DER: Data) throws {
- let (result, _) = ASN1.toASN1Element(data: pkcs8DER)
- guard case let ASN1.ASN1Element.seq(elements: es) = result,
- es.count > 2,
- case let ASN1.ASN1Element.seq(elements: ids) = es[1],
- ids.count > 1,
- case let ASN1.ASN1Element.bytes(data: privateKeyID) = ids[1]
- else {
- throw ECError.failedASN1Decoding
- }
- self.curve = try EllipticCurve.objectToCurve(ObjectIdentifier: privateKeyID)
- guard case let ASN1.ASN1Element.bytes(data: privateOctest) = es[2] else {
- throw ECError.failedASN1Decoding
- }
- let (octest, _) = ASN1.toASN1Element(data: privateOctest)
- guard case let ASN1.ASN1Element.seq(elements: seq) = octest,
- seq.count >= 3,
- case let ASN1.ASN1Element.bytes(data: privateKeyData) = seq[1]
- else {
- throw ECError.failedASN1Decoding
- }
- let publicKeyData: Data
- if case let ASN1.ASN1Element.constructed(tag: 1, elem: publicElement) = seq[2],
- case let ASN1.ASN1Element.bytes(data: pubKeyData) = publicElement
- {
- publicKeyData = pubKeyData
- } else if seq.count >= 4,
- case let ASN1.ASN1Element.constructed(tag: 1, elem: publicElement) = seq[3],
- case let ASN1.ASN1Element.bytes(data: pubKeyData) = publicElement
- {
- publicKeyData = pubKeyData
- } else {
- throw ECError.failedASN1Decoding
- }
- let trimmedPubBytes = publicKeyData.drop(while: { $0 == 0x00})
- if trimmedPubBytes.count != publicKeyData.count {
- stripped = true
- }
- self.nativeKey = try ECPrivateKey.bytesToNativeKey(privateKeyData: privateKeyData,
- publicKeyData: trimmedPubBytes,
- curve: curve)
- let derData = ECPrivateKey.generateASN1(privateKey: privateKeyData,
- publicKey: publicKeyData,
- curve: curve)
- self.pemString = ECPrivateKey.derToPrivatePEM(derData: derData)
- self.pubKeyBytes = trimmedPubBytes
- self.curveId = curve.description
- }
-
- /// Initialize an ECPrivateKey from a SEC1 `.der` file data.
- /// This is equivalent to a PEM String that has had the "-----BEGIN EC PRIVATE KEY-----"
- /// header and footer stripped and been base64 encoded to ASN1 Data.
- /// - Parameter sec1DER: The elliptic curve private key Data.
- /// - Returns: An ECPrivateKey.
- /// - Throws: An ECError if the Data can't be decoded or is not a valid key.
- public init(sec1DER: Data) throws {
- self.pemString = ECPrivateKey.derToPrivatePEM(derData: sec1DER)
- let (result, _) = ASN1.toASN1Element(data: sec1DER)
- guard case let ASN1.ASN1Element.seq(elements: seq) = result,
- seq.count > 3,
- case let ASN1.ASN1Element.constructed(tag: _, elem: objectElement) = seq[2],
- case let ASN1.ASN1Element.bytes(data: objectId) = objectElement,
- case let ASN1.ASN1Element.bytes(data: privateKeyData) = seq[1]
- else {
- throw ECError.failedASN1Decoding
- }
- self.curve = try EllipticCurve.objectToCurve(ObjectIdentifier: objectId)
- guard case let ASN1.ASN1Element.constructed(tag: _, elem: publicElement) = seq[3],
- case let ASN1.ASN1Element.bytes(data: publicKeyData) = publicElement
- else {
- throw ECError.failedASN1Decoding
- }
- let trimmedPubBytes = publicKeyData.drop(while: { $0 == 0x00})
- if trimmedPubBytes.count != publicKeyData.count {
- stripped = true
- }
- self.nativeKey = try ECPrivateKey.bytesToNativeKey(privateKeyData: privateKeyData,
- publicKeyData: trimmedPubBytes,
- curve: curve)
- self.pubKeyBytes = trimmedPubBytes
- self.curveId = curve.description
- }
-
- /// Initialize the `ECPublicKey`for this private key by extracting the public key bytes.
- /// - Returns: An ECPublicKey.
- /// - Throws: An ECError if the public key fails to be initialized from this private key.
- public func extractPublicKey() throws -> ECPublicKey {
- let keyHeader: Data
- // Add the ASN1 header for the public key. The bytes have the following structure:
- // SEQUENCE (2 elem)
- // SEQUENCE (2 elem)
- // OBJECT IDENTIFIER
- // OBJECT IDENTIFIER
- // BIT STRING (This is the `pubKeyBytes` added afterwards)
- if self.curve == .prime256v1 {
- keyHeader = Data([0x30, 0x59,
- 0x30, 0x13,
- 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01,
- 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42])
- } else if self.curve == .secp384r1 {
- keyHeader = Data([0x30, 0x76,
- 0x30, 0x10,
- 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01,
- 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x22, 0x03, 0x62])
- } else if self.curve == .secp521r1 {
- keyHeader = Data([0x30, 0x81, 0x9B,
- 0x30, 0x10,
- 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01,
- 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x23, 0x03, 0x81, 0x86])
- } else {
- throw ECError.unsupportedCurve
- }
- // If we stripped the leading zero earlier, add it back here
- var pubBytes = self.pubKeyBytes
- if stripped {
- pubBytes = Data(count: 1) + self.pubKeyBytes
- }
- return try ECPublicKey(der: keyHeader + pubBytes)
- }
-
- /**
- Make an new ECPrivate key from a supported `EllipticCurve`.
- - Parameter for curve: The elliptic curve that is used to generate the key.
- - Returns: An ECPrivateKey.
- - Throws: An ECError if the key fails to be created.
- */
- public static func make(for curve: EllipticCurve) throws -> ECPrivateKey {
- return try ECPrivateKey(for: curve)
- }
-
- /**
- Initialise an new ECPrivate key from a supported `Curve`
- - Parameter for curve: The elliptic curve that is used to generate the key.
- - Returns: An ECPrivateKey.
- - Throws: An ECError if the key fails to be created.
- */
- private init(for curve: EllipticCurve) throws {
- self.curve = curve
- self.curveId = curve.description
- self.stripped = true
- #if os(Linux)
- let ec_key = EC_KEY_new_by_curve_name(curve.nativeCurve)
- EC_KEY_generate_key(ec_key)
- self.nativeKey = ec_key
- let pub_bn_ctx = BN_CTX_new()
- BN_CTX_start(pub_bn_ctx)
- let pub = EC_KEY_get0_public_key(ec_key)
- let ec_group = EC_KEY_get0_group(ec_key)
- let pub_bn = BN_new()
- EC_POINT_point2bn(ec_group, pub, POINT_CONVERSION_UNCOMPRESSED, pub_bn, pub_bn_ctx)
- let pubk = UnsafeMutablePointer.allocate(capacity: curve.keySize)
- BN_bn2bin(pub_bn, pubk)
- self.pubKeyBytes = Data(bytes: pubk, count: curve.keySize)
- defer {
- BN_CTX_end(pub_bn_ctx)
- BN_CTX_free(pub_bn_ctx)
- BN_clear_free(pub_bn)
- #if swift(>=4.1)
- pubk.deallocate()
- #else
- pubk.deallocate(capacity: curve.keySize)
- #endif
- }
- #else
- let kAsymmetricCryptoManagerKeyType = kSecAttrKeyTypeECSECPrimeRandom
- let kAsymmetricCryptoManagerKeySize: Int
- if curve == .prime256v1 {
- kAsymmetricCryptoManagerKeySize = 256
- } else if curve == .secp384r1 {
- kAsymmetricCryptoManagerKeySize = 384
- } else {
- kAsymmetricCryptoManagerKeySize = 521
- }
- // parameters
- let parameters: [String: AnyObject] = [
- kSecAttrKeyType as String: kAsymmetricCryptoManagerKeyType,
- kSecAttrKeySizeInBits as String: kAsymmetricCryptoManagerKeySize as AnyObject,
- ]
- var pubKey, privKey: SecKey?
- let status = SecKeyGeneratePair(parameters as CFDictionary, &pubKey, &privKey)
- guard status == 0, let newPubKey = pubKey, let newPrivKey = privKey else {
- throw ECError.failedNativeKeyCreation
- }
- var error: Unmanaged? = nil
- guard let pubBytes = SecKeyCopyExternalRepresentation(newPubKey, &error) else {
- guard let error = error?.takeRetainedValue() else {
- throw ECError.failedNativeKeyCreation
- }
- throw error
- }
- self.pubKeyBytes = pubBytes as Data
- self.nativeKey = newPrivKey
- #endif
- self.pemString = try ECPrivateKey.decodeToPEM(nativeKey: self.nativeKey, curve: self.curve)
- }
-
- /// Decode this ECPrivateKey to it's PEM format
- private static func decodeToPEM(nativeKey: NativeKey, curve: EllipticCurve) throws -> String {
- #if os(Linux)
- let asn1Bio = BIO_new(BIO_s_mem())
- defer { BIO_free_all(asn1Bio) }
- // The return value of i2d_ECPrivateKey_bio is supposed to be the DER size.
- // However it is just returning 1 for success.
- // Since the size is fixed we have just used the known values here.
- guard i2d_ECPrivateKey_bio(asn1Bio, nativeKey) >= 0 else {
- throw ECError.failedNativeKeyCreation
- }
- let asn1Size: Int32
- if curve == .prime256v1 {
- asn1Size = 364
- } else if curve == .secp384r1 {
- asn1Size = 510
- } else {
- asn1Size = 673
- }
- let asn1 = UnsafeMutablePointer.allocate(capacity: Int(asn1Size))
- let readLength = BIO_read(asn1Bio, asn1, asn1Size)
- guard readLength > 0 else {
- throw ECError.failedASN1Decoding
- }
- let asn1Data = Data(bytes: asn1, count: Int(readLength))
- // OpenSSL 1.1 already returns the shortened ANS1 so can return it straight away
- if readLength < asn1Size - 1 {
- return ECPrivateKey.derToPrivatePEM(derData: asn1Data)
- }
- // Otherwise need to decode ASN1 to get public and private key
- #if swift(>=4.1)
- asn1.deallocate()
- #else
- asn1.deallocate(capacity: Int(asn1Size))
- #endif
- let (result, _) = ASN1.toASN1Element(data: asn1Data)
- guard case let ASN1.ASN1Element.seq(elements: seq) = result,
- seq.count > 3,
- case let ASN1.ASN1Element.bytes(data: privateKeyData) = seq[1]
- else {
- throw ECError.failedASN1Decoding
- }
- guard case let ASN1.ASN1Element.constructed(tag: _, elem: publicElement) = seq[3],
- case let ASN1.ASN1Element.bytes(data: publicKeyData) = publicElement
- else {
- throw ECError.failedASN1Decoding
- }
- #else
- var error: Unmanaged? = nil
- /*
- From Apple docs:
- For an elliptic curve private key, `SecKeyCopyExternalRepresentation` output is formatted as the public key concatenated with the big endian encoding of the secret scalar, or 04 || X || Y || K.
- */
- guard let keyBytes = SecKeyCopyExternalRepresentation(nativeKey, &error) else {
- guard let error = error?.takeRetainedValue() else {
- throw ECError.failedNativeKeyCreation
- }
- throw error
- }
- let keyData = keyBytes as Data
- let privateKeyData = keyData.dropFirst(curve.keySize)
- let publicKeyData = Data(count: 1) + keyData.dropLast(keyData.count - curve.keySize)
- #endif
- let derData = ECPrivateKey.generateASN1(privateKey: privateKeyData, publicKey: publicKeyData, curve: curve)
- return ECPrivateKey.derToPrivatePEM(derData: derData)
- }
-
- private static func generateASN1(privateKey: Data, publicKey: Data, curve: EllipticCurve) -> Data {
- var keyHeader: Data
- // Add the ASN1 header for the private key. The bytes have the following structure:
- // SEQUENCE (4 elem)
- // INTEGER 1
- // OCTET STRING (32 byte) (This is the `privateKeyBytes`)
- // [0] (1 elem)
- // OBJECT IDENTIFIER
- // [1] (1 elem)
- // BIT STRING (This is the `pubKeyBytes`)
- if curve == .prime256v1 {
- keyHeader = Data([0x30, 0x77,
- 0x02, 0x01, 0x01,
- 0x04, 0x20])
- keyHeader += privateKey
- keyHeader += Data([0xA0,
- 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07,
- 0xA1,
- 0x44, 0x03, 0x42])
- keyHeader += publicKey
- } else if curve == .secp384r1 {
- keyHeader = Data([0x30, 0x81, 0xA4,
- 0x02, 0x01, 0x01,
- 0x04, 0x30])
- keyHeader += privateKey
- keyHeader += Data([0xA0,
- 0x07, 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x22,
- 0xA1,
- 0x64, 0x03, 0x62])
- keyHeader += publicKey
- } else {
- // 521 Private key can be 65 or 66 bytes long
- if privateKey.count == 65 {
- keyHeader = Data([0x30, 0x81, 0xDB,
- 0x02, 0x01, 0x01,
- 0x04, 0x41])
- } else {
- keyHeader = Data([0x30, 0x81, 0xDC,
- 0x02, 0x01, 0x01,
- 0x04, 0x42])
- }
- keyHeader += privateKey
- keyHeader += Data([0xA0,
- 0x07, 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x23,
- 0xA1,
- 0x81, 0x89, 0x03, 0x81, 0x86])
- keyHeader += publicKey
- }
- return keyHeader
- }
-
- private static func bytesToNativeKey(privateKeyData: Data, publicKeyData: Data, curve: EllipticCurve) throws -> NativeKey {
- #if os(Linux)
- let bigNum = BN_new()
- defer {
- BN_free(bigNum)
- }
- privateKeyData.withUnsafeBytes({ (privateKeyBytes: UnsafeRawBufferPointer) -> Void in
- BN_bin2bn(privateKeyBytes.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(privateKeyData.count), bigNum)
- })
- let ecKey = EC_KEY_new_by_curve_name(curve.nativeCurve)
- guard EC_KEY_set_private_key(ecKey, bigNum) == 1 else {
- EC_KEY_free(ecKey)
- throw ECError.failedNativeKeyCreation
- }
- return ecKey
- #else
- let keyData = publicKeyData + privateKeyData
- var error: Unmanaged? = nil
- guard let secKey = SecKeyCreateWithData(keyData as CFData,
- [kSecAttrKeyType: kSecAttrKeyTypeECSECPrimeRandom,
- kSecAttrKeyClass: kSecAttrKeyClassPrivate] as CFDictionary,
- &error)
- else {
- if let secError = error?.takeRetainedValue() {
- throw secError
- } else {
- throw ECError.failedNativeKeyCreation
- }
- }
- return secKey
- #endif
- }
-
- private static func derToPrivatePEM(derData: Data) -> String {
- // First convert the DER data to a base64 string...
- let base64String = derData.base64EncodedString()
- // Split the string into strings of length 64.
- let lines = base64String.split(to: 64)
- // Join those lines with a new line...
- let joinedLines = lines.joined(separator: "\n")
- return "-----BEGIN EC PRIVATE KEY-----\n" + joinedLines + "\n-----END EC PRIVATE KEY-----"
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECPublicKey.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECPublicKey.swift
deleted file mode 100644
index 4189b00b..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECPublicKey.swift
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-
-import Foundation
-#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
-import CommonCrypto
-#elseif os(Linux)
-import OpenSSL
-#endif
-
-/**
- Represents an elliptic curve public key.
- Supported curves are:
- - prime256v1
- - secp384r1
- - NID_secp521r1
- You can generate an elliptic curve Key using OpenSSL:
- https://wiki.openssl.org/index.php/Command_Line_Elliptic_Curve_Operations#Generating_EC_Keys_and_Parameters
-
- ### Usage Example:
- ```swift
- let pemKey = """
- -----BEGIN PUBLIC KEY-----
- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEikc5m6C2xtDWeeAeT18WElO37zvF
- Oz8p4kAlhvgIHN23XIClNESgKVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
- -----END PUBLIC KEY-----
- """
- let publicKey = try ECPublicKey(key: pemKey)
-
- let base64Sig = "MEYCIQCvgBLn+tQoBDBR3D2G3485GloYGNxuk6PqR4qjr5GDqAIhAKNvsqvesVBD/MLub/KAyzLLNGtUZyQDxYZj/4vmHwWF"
- let signature = try ECSignature(asn1: Data(base64Encoded: base64Sig))
-
- let verified = signature.verify(plaintext: "Hello world", using: publicKey)
- ```
- */
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-public class ECPublicKey {
- /// A String description of the curve this key was generated from.
- public let curveId: String
-
- /// The `EllipticCurve` this key was generated from.
- public let curve: EllipticCurve
- #if os(Linux)
- typealias NativeKey = OpaquePointer?
- let pubKeyBytes: Data
- deinit { EC_KEY_free(.make(optional: self.nativeKey)) }
- #else
- typealias NativeKey = SecKey
- #endif
- let nativeKey: NativeKey
-
- /// The public key represented as a PEM String.
- public let pemString: String
-
- /**
- Initialize an ECPublicKey from a `.pem` file format.
- ### Usage Example: ###
- ```swift
- let publicKeyString = """
- -----BEGIN PUBLIC KEY-----
- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEikc5m6C2xtDWeeAeT18WElO37zvF
- Oz8p4kAlhvgIHN23XIClNESgKVmLgSSq2asqiwdrU5YHbcHFkgdABM1SPA==
- -----END PUBLIC KEY-----
- """
- let pemKey = try ECPublicKey(key: publicKeyString)
- ```
- - Parameter key: The elliptic curve public key as a PEM string.
- - Returns: An ECPublicKey.
- - Throws: An ECError if the PEM string can't be decoded or is not a valid key.
- */
- public convenience init(key: String) throws {
- let strippedKey = String(key.filter { !" \n\t\r".contains($0) })
- let pemComponents = strippedKey.components(separatedBy: "-----")
- guard pemComponents.count == 5 else {
- throw ECError.invalidPEMString
- }
- guard let der = Data(base64Encoded: pemComponents[2]) else {
- throw ECError.invalidPEMString
- }
- if pemComponents[1] == "BEGINPUBLICKEY" {
- try self.init(der: der)
- } else {
- throw ECError.unknownPEMHeader
- }
- }
-
- /// Initialize an ECPublicKey from `.der` file data.
- /// This is equivalent to a PEM String that has had the "-----BEGIN PUBLIC KEY-----"
- /// header and footer stripped and been base64 encoded to ASN1 Data.
- /// - Parameter der: The elliptic curve public key Data.
- /// - Returns: An ECPublicKey.
- /// - Throws: An ECError if the Data can't be decoded or is not a valid key.
- public init(der: Data) throws {
- pemString = ECPublicKey.derToPublicPEM(derData: der)
- let (result, _) = ASN1.toASN1Element(data: der)
- guard case let ASN1.ASN1Element.seq(elements: seq) = result,
- seq.count > 1,
- case let ASN1.ASN1Element.seq(elements: ids) = seq[0],
- ids.count > 1,
- case let ASN1.ASN1Element.bytes(data: privateKeyID) = ids[1],
- case let ASN1.ASN1Element.bytes(data: publicKeyData) = seq[1]
- else {
- throw ECError.failedASN1Decoding
- }
- self.curve = try EllipticCurve.objectToCurve(ObjectIdentifier: privateKeyID)
- self.curveId = curve.description
- let keyData = publicKeyData.drop(while: { $0 == 0x00})
- #if os(Linux)
- self.pubKeyBytes = keyData
- let bigNum = BN_new()
- defer {
- BN_free(bigNum)
- }
- publicKeyData.withUnsafeBytes({ (pubKeyBytes: UnsafeRawBufferPointer) -> Void in
- BN_bin2bn(pubKeyBytes.baseAddress?.assumingMemoryBound(to: UInt8.self), Int32(publicKeyData.count), bigNum)
- })
- let ecKey = EC_KEY_new_by_curve_name(curve.nativeCurve)
- let ecGroup = EC_KEY_get0_group(ecKey)
- let ecPoint = EC_POINT_new(ecGroup)
- defer {
- EC_POINT_free(ecPoint)
- }
- EC_POINT_bn2point(ecGroup, bigNum, ecPoint, nil)
- guard EC_KEY_set_public_key(ecKey, ecPoint) == 1 else {
- EC_KEY_free(ecKey)
- throw ECError.failedNativeKeyCreation
- }
- self.nativeKey = ecKey
- #else
- var error: Unmanaged? = nil
- guard let secKey = SecKeyCreateWithData(keyData as CFData,
- [kSecAttrKeyType: kSecAttrKeyTypeECSECPrimeRandom,
- kSecAttrKeyClass: kSecAttrKeyClassPublic] as CFDictionary,
- &error)
- else {
- if let secError = error?.takeRetainedValue() {
- throw secError
- } else {
- throw ECError.failedNativeKeyCreation
- }
- }
- self.nativeKey = secKey
- #endif
- }
-
- private static func derToPublicPEM(derData: Data) -> String {
- // First convert the DER data to a base64 string...
- let base64String = derData.base64EncodedString()
- // Split the string into strings of length 64.
- let lines = base64String.split(to: 64)
- // Join those lines with a new line...
- let joinedLines = lines.joined(separator: "\n")
- return "-----BEGIN PUBLIC KEY-----\n" + joinedLines + "\n-----END PUBLIC KEY-----"
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECSignable.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECSignable.swift
deleted file mode 100644
index 194ca48e..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECSignable.swift
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-
-import Foundation
-
-#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
-import CommonCrypto
-#elseif os(Linux)
-import OpenSSL
-#endif
-
-/// A protocol for signing an instance of some object to generate an `ECSignature`.
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-protocol ECSignable {
- /// Sign the object using ECDSA and produce an `ECSignature`.
- func sign(with: ECPrivateKey) throws -> ECSignature
-}
-
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-extension String: ECSignable {
- /// UTF8 encode the String to Data and sign it using the `ECPrivateKey`.
- /// The Data is signed using ECDSA with either SHA256, SHA384 or SHA512, depending on the key's curve.
- /// - Parameter with key: The elliptic curve private key.
- /// - Returns: An ECSignature on failure.
- /// - Throws: An ECError if a valid signature is unable to be created.
- public func sign(with key: ECPrivateKey) throws -> ECSignature {
- return try Data(self.utf8).sign(with: key)
- }
-}
-
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-extension Data: ECSignable {
- /// Sign the plaintext data using the provided `ECPrivateKey`.
- /// The Data is signed using ECDSA with either SHA256, SHA384 or SHA512, depending on the key's curve.
- /// - Parameter with key: The elliptic curve private key.
- /// - Returns: An ECSignature on failure.
- /// - Throws: An ECError if a valid signature is unable to be created.
- public func sign(with key: ECPrivateKey) throws -> ECSignature {
- #if os(Linux)
- let md_ctx = EVP_MD_CTX_new_wrapper()
- let evp_key = EVP_PKEY_new()
- defer {
- EVP_PKEY_free(evp_key)
- EVP_MD_CTX_free_wrapper(md_ctx)
- }
- guard EVP_PKEY_set1_EC_KEY(evp_key, .make(optional: key.nativeKey)) == 1 else {
- throw ECError.failedNativeKeyCreation
- }
-
- guard EVP_DigestSignInit(md_ctx, nil, .make(optional: key.curve.signingAlgorithm), nil, evp_key) == 1 else {
- throw ECError.failedEvpInit
- }
-
- guard self.withUnsafeBytes({ (message: UnsafeRawBufferPointer) -> Int32 in
- return EVP_DigestUpdate(md_ctx, message.baseAddress?.assumingMemoryBound(to: UInt8.self), self.count)
- }) == 1 else {
- throw ECError.failedSigningAlgorithm
- }
- var sig_len: Int = 0
- EVP_DigestSignFinal(md_ctx, nil, &sig_len)
- let sig = UnsafeMutablePointer.allocate(capacity: sig_len)
- defer {
- #if swift(>=4.1)
- sig.deallocate()
- #else
- sig.deallocate(capacity: sig_len)
- #endif
- }
- guard EVP_DigestSignFinal(md_ctx, sig, &sig_len) == 1 else {
- throw ECError.failedSigningAlgorithm
- }
- return try ECSignature(asn1: Data(bytes: sig, count: sig_len))
- #else
- let hash = key.curve.digest(data: self)
-
- // Memory storage for error from SecKeyCreateSignature
- var error: Unmanaged? = nil
- // cfSignature is CFData that is ANS1 encoded as a sequence of two UInts (r and s)
- guard let cfSignature = SecKeyCreateSignature(key.nativeKey,
- key.curve.signingAlgorithm,
- hash as CFData,
- &error)
- else {
- if let thrownError = error?.takeRetainedValue() {
- throw thrownError
- } else {
- throw ECError.failedSigningAlgorithm
- }
- }
- return try ECSignature(asn1: cfSignature as Data)
- #endif
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECSignature.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECSignature.swift
deleted file mode 100644
index 143427b4..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/ECSignature.swift
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-
-import Foundation
-
-#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
-import CommonCrypto
-#elseif os(Linux)
-import OpenSSL
-#endif
-
-/// The signature produced by applying an Elliptic Curve Digital Signature Algorithm to some Plaintext data.
-/// It consists of two binary unsigned integers, `r` and `s`.
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-public struct ECSignature {
-
- // MARK: Signature Values
-
- /// The r value of the signature.
- /// The size of the signature data depends on the Secure Hash Algorithm used; it will be 32 bytes of data for SHA256, 48 bytes for SHA384, or 66 bytes for SHA512.
- public let r: Data
-
- /// The s value of the signature.
- /// The size of the signature data depends on the Secure Hash Algorithm used; it will be 32 bytes of data for SHA256, 48 bytes for SHA384, or 66 bytes for SHA512.
- public let s: Data
-
- /// The r and s values of the signature encoded into an ASN1 sequence.
- public let asn1: Data
-
- // MARK: Initializers
-
- /// Initialize an ECSignature by providing the r and s values.
- /// These must be the same length and either 32, 48 or 66 bytes (Depending on the curve used).
- /// - Parameter r: The r value of the signature as raw data.
- /// - Parameter s: The s value of the signature as raw data.
- /// - Returns: A new instance of `ECSignature`.
- /// - Throws: An ECError if the r or s values are not a valid length.
- public init(r: Data, s: Data) throws {
- let asn1 = try ECSignature.rsSigToASN1(r: r, s: s)
- self.r = r
- self.s = s
- self.asn1 = asn1
- }
-
- /// Initialize an ECSignature by providing an ASN1 encoded sequence containing the r and s values.
- /// - Parameter asn1: The r and s values of the signature encoded as an ASN1 sequence.
- /// - Returns: A new instance of `ECSignature`.
- /// - Throws: An ECError if the ASN1 data can't be decoded.
- public init(asn1: Data) throws {
- self.asn1 = asn1
- let (r,s) = try ECSignature.asn1ToRSSig(asn1: asn1)
- self.r = r
- self.s = s
- }
-
- // MARK: Verify Signature
-
- /// Verify the signature for a given String using the provided public key.
- /// The Data is verified using ECDSA with either SHA256, SHA384 or SHA512, depending on the key's curve.
- /// - Parameter plaintext: The String that was originally signed to produce the signature.
- /// - Parameter using ecPublicKey: The ECPublicKey that will be used to verify the plaintext.
- /// - Returns: true if the plaintext is valid for the provided signature. Otherwise it returns false.
- public func verify(plaintext: String, using ecPublicKey: ECPublicKey) -> Bool {
- let plainTextData = Data(plaintext.utf8)
- return verify(plaintext: plainTextData, using: ecPublicKey)
- }
-
- /// Verify the signature for the given Data using the provided public key.
- /// The Data is verified using ECDSA with either SHA256, SHA384 or SHA512, depending on the key's curve.
- /// - Parameter plaintext: The Data that was originally signed to produce the signature.
- /// - Parameter using ecPublicKey: The ECPublicKey that will be used to verify the plaintext.
- /// - Returns: true if the plaintext is valid for the provided signature. Otherwise it returns false.
- public func verify(plaintext: Data, using ecPublicKey: ECPublicKey) -> Bool {
- #if os(Linux)
- let md_ctx = EVP_MD_CTX_new_wrapper()
- let evp_key = EVP_PKEY_new()
- defer {
- EVP_PKEY_free(evp_key)
- EVP_MD_CTX_free_wrapper(md_ctx)
- }
- guard EVP_PKEY_set1_EC_KEY(evp_key, .make(optional: ecPublicKey.nativeKey)) == 1 else {
- return false
- }
-
- EVP_DigestVerifyInit(md_ctx, nil, .make(optional: ecPublicKey.curve.signingAlgorithm), nil, evp_key)
- guard plaintext.withUnsafeBytes({ (message: UnsafeRawBufferPointer) -> Int32 in
- return EVP_DigestUpdate(md_ctx, message.baseAddress?.assumingMemoryBound(to: UInt8.self), plaintext.count)
- }) == 1 else {
- return false
- }
- let rc = self.asn1.withUnsafeBytes({ (sig: UnsafeRawBufferPointer) -> Int32 in
- return SSL_EVP_digestVerifyFinal_wrapper(md_ctx, sig.baseAddress?.assumingMemoryBound(to: UInt8.self), self.asn1.count)
- })
- return rc == 1
- #else
- let hash = ecPublicKey.curve.digest(data: plaintext)
-
- // Memory storage for error from SecKeyVerifySignature
- var error: Unmanaged? = nil
- return SecKeyVerifySignature(ecPublicKey.nativeKey,
- ecPublicKey.curve.signingAlgorithm,
- hash as CFData,
- self.asn1 as CFData,
- &error)
- #endif
- }
- // ASN1 encode the r and s values.
- static func rsSigToASN1(r: Data, s: Data) throws -> Data {
-
- guard r.count == s.count, r.count == 32 || r.count == 48 || r.count == 66 else {
- throw ECError.invalidRSLength
- }
- // Convert r,s signature to ASN1 for SecKeyVerifySignature
- var asnSignature = Data()
- // r value is first 32 bytes
- var rSig = r
- // If first bit is 1, add a 00 byte to mark it as positive for ASN1
- if rSig[0] == 0 {
- rSig = rSig.advanced(by: 1)
- }
- if rSig[0].leadingZeroBitCount == 0 {
- rSig = Data(count: 1) + rSig
- }
- // r value is last 32 bytes
- var sSig = s
- // If first bit is 1, add a 00 byte to mark it as positive for ASN1
- if sSig[0] == 0 {
- sSig = sSig.advanced(by: 1)
- }
- if sSig[0].leadingZeroBitCount == 0 {
- sSig = Data(count: 1) + sSig
- }
- // Count Byte lengths for ASN1 length bytes
- let rLengthByte = UInt8(rSig.count)
- let sLengthByte = UInt8(sSig.count)
- // total bytes is r + s + rLengthByte + sLengthByte byte + Integer marking bytes
- let tLengthByte = rLengthByte + sLengthByte + 4
- // 0x30 means sequence, 0x02 means Integer
- if tLengthByte > 127 {
- asnSignature.append(contentsOf: [0x30, 0x81, tLengthByte])
- } else {
- asnSignature.append(contentsOf: [0x30, tLengthByte])
- }
- asnSignature.append(contentsOf: [0x02, rLengthByte])
- asnSignature.append(rSig)
- asnSignature.append(contentsOf: [0x02, sLengthByte])
- asnSignature.append(sSig)
- return asnSignature
- }
-
- static func asn1ToRSSig(asn1: Data) throws -> (Data, Data) {
-
- let signatureLength: Int
- if asn1.count < 96 {
- signatureLength = 64
- } else if asn1.count < 132 {
- signatureLength = 96
- } else {
- signatureLength = 132
- }
-
- // Parse ASN into just r,s data as defined in:
- // https://tools.ietf.org/html/rfc7518#section-3.4
- let (asnSig, _) = ASN1.toASN1Element(data: asn1)
- guard case let ASN1.ASN1Element.seq(elements: seq) = asnSig,
- seq.count >= 2,
- case let ASN1.ASN1Element.bytes(data: rData) = seq[0],
- case let ASN1.ASN1Element.bytes(data: sData) = seq[1]
- else {
- throw ECError.failedASN1Decoding
- }
- // ASN adds 00 bytes in front of negative Int to mark it as positive.
- // These must be removed to make r,a a valid EC signature
- let trimmedRData: Data
- let trimmedSData: Data
- let rExtra = rData.count - signatureLength/2
- if rExtra < 0 {
- trimmedRData = Data(count: 1) + rData
- } else {
- trimmedRData = rData.dropFirst(rExtra)
- }
- let sExtra = sData.count - signatureLength/2
- if sExtra < 0 {
- trimmedSData = Data(count: 1) + sData
- } else {
- trimmedSData = sData.dropFirst(sExtra)
- }
- return (trimmedRData, trimmedSData)
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/EllipticCurve.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/EllipticCurve.swift
deleted file mode 100644
index 004cc7eb..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/EllipticCurve.swift
+++ /dev/null
@@ -1,172 +0,0 @@
-// Copyright © 2019 IBM. All rights reserved.
-//
-// 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.
-//
-
-import Foundation
-
-#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS)
- import CommonCrypto
-#elseif os(Linux)
- import OpenSSL
-#endif
-
-/// An extensible list of elliptic curves supported by this repository.
-@available(macOS 10.13, iOS 11, watchOS 4.0, tvOS 11.0, *)
-public struct EllipticCurve: Equatable, CustomStringConvertible {
-
- private let internalRepresentation: InternalRepresentation
-
- // enum for faster comparisons
- private enum InternalRepresentation: String {
- case prime256v1, secp384r1, secp521r1
- }
-
- /// A prime256v1 curve.
- public static let prime256v1 = EllipticCurve.p256
-
- /// A secp384r1 curve.
- public static let secp384r1 = EllipticCurve.p384
-
- /// A secp521r1 curve.
- public static let secp521r1 = EllipticCurve.p521
-
- /// Checks if two Curves are equal, required for Equatable protocol.
- public static func == (lhs: EllipticCurve, rhs: EllipticCurve) -> Bool {
- return lhs.internalRepresentation == rhs.internalRepresentation
- }
-
- /// A String description of the Curve. Required for CustomStringConvertible protocol.
- public var description: String {
- return internalRepresentation.rawValue
- }
-
- #if os(Linux)
- typealias CC_LONG = size_t
- let signingAlgorithm: OpaquePointer?
- let nativeCurve: Int32
- let hashEngine = SHA256
- let hashLength = CC_LONG(SHA256_DIGEST_LENGTH)
- #else
- let signingAlgorithm: SecKeyAlgorithm
- let encryptionAlgorithm = SecKeyAlgorithm.eciesEncryptionStandardVariableIVX963SHA256AESGCM
- let hashEngine: (_ data: UnsafeRawPointer?, _ len: CC_LONG, _ md: UnsafeMutablePointer?) -> UnsafeMutablePointer?
- let hashLength: CC_LONG
- #endif
- let keySize: Int
-
- #if os(Linux)
- /// Secure Hash Algorithm 2 256-bit
- static let p256 = EllipticCurve(internalRepresentation: .prime256v1,
- signingAlgorithm: .init(EVP_sha256()),
- nativeCurve: NID_X9_62_prime256v1,
- keySize: 65)
-
- /// Secure Hash Algorithm 2 384-bit
- static let p384 = EllipticCurve(internalRepresentation: .secp384r1,
- signingAlgorithm: .init(EVP_sha384()),
- nativeCurve: NID_secp384r1,
- keySize: 97)
-
- /// Secure Hash Algorithm 512-bit
- static let p521 = EllipticCurve(internalRepresentation: .secp521r1,
- signingAlgorithm: .init(EVP_sha512()),
- nativeCurve: NID_secp521r1,
- keySize: 133)
- #else
- /// Secure Hash Algorithm 2 256-bit
- static let p256 = EllipticCurve(internalRepresentation: .prime256v1,
- signingAlgorithm: .ecdsaSignatureDigestX962SHA256,
- hashEngine: CC_SHA256,
- hashLength: CC_LONG(CC_SHA256_DIGEST_LENGTH),
- keySize: 65)
-
- /// Secure Hash Algorithm 2 384-bit
- static let p384 = EllipticCurve(internalRepresentation: .secp384r1,
- signingAlgorithm: .ecdsaSignatureDigestX962SHA384,
- hashEngine: CC_SHA384,
- hashLength: CC_LONG(CC_SHA384_DIGEST_LENGTH),
- keySize: 97)
-
- /// Secure Hash Algorithm 512-bit
- static let p521 = EllipticCurve(internalRepresentation: .secp521r1,
- signingAlgorithm: .ecdsaSignatureDigestX962SHA512,
- hashEngine: CC_SHA512,
- hashLength: CC_LONG(CC_SHA512_DIGEST_LENGTH),
- keySize: 133)
- #endif
-
- // Select the ECAlgorithm based on the object identifier (OID) extracted from the EC key.
- static func objectToCurve(ObjectIdentifier: Data) throws -> EllipticCurve {
-
- if [UInt8](ObjectIdentifier) == [0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07] {
- // p-256 (e.g: prime256v1, secp256r1) private key
- return .prime256v1
- } else if [UInt8](ObjectIdentifier) == [0x2B, 0x81, 0x04, 0x00, 0x22] {
- // p-384 (e.g: secp384r1) private key
- return .secp384r1
- } else if [UInt8](ObjectIdentifier) == [0x2B, 0x81, 0x04, 0x00, 0x23] {
- // p-521 (e.g: secp521r1) private key
- return .secp521r1
- } else {
- throw ECError.unsupportedCurve
- }
- }
-
- /// Return a digest of the data based on the hashEngine.
- func digest(data: Data) -> Data {
-
- var hash = [UInt8](repeating: 0, count: Int(self.hashLength))
- data.withUnsafeBytes { ptr in
- guard let baseAddress = ptr.baseAddress else { return }
- _ = self.hashEngine(baseAddress.assumingMemoryBound(to: UInt8.self), CC_LONG(data.count), &hash)
- }
- return Data(hash)
- }
-}
-
-extension String {
-
- ///
- /// Split a string to a specified length.
- ///
- /// - Parameters:
- /// - length: Length of each split string.
- ///
- /// - Returns: `[String]` containing each string.
- ///
- func split(to length: Int) -> [String] {
-
- var result = [String]()
- var collectedCharacters = [Character]()
- collectedCharacters.reserveCapacity(length)
- var count = 0
-
- for character in self {
- collectedCharacters.append(character)
- count += 1
- if count == length {
- // Reached the desired length
- count = 0
- result.append(String(collectedCharacters))
- collectedCharacters.removeAll(keepingCapacity: true)
- }
- }
-
- // Append the remainder
- if !collectedCharacters.isEmpty {
- result.append(String(collectedCharacters))
- }
- return result
- }
-}
diff --git a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/SSLPointerTricks.swift b/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/SSLPointerTricks.swift
deleted file mode 100644
index d986598d..00000000
--- a/Example/TestApplication/Pods/BlueECC/Sources/CryptorECC/SSLPointerTricks.swift
+++ /dev/null
@@ -1,100 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// This source file is taken from SwiftNIO open source project
-//
-// Copyright (c) 2017-2018 Apple Inc. and the SwiftNIO project authors
-// Licensed under Apache License v2.0
-//
-//===----------------------------------------------------------------------===//
-
-// MARK:- Awful code begins here
-// Hello dear reader. Let me explain what we're doing here.
-//
-// From OpenSSL 1.0 to OpenSSL 1.1 one of the major breaking changes was the so-called
-// "great opaquifiying". Essentially, OpenSSL took all of its public structures and made
-// them opaque, such that they cannot be introspected from client code. This is a great
-// forward step, and brings them more in line with modern C library practices.
-//
-// However, it's an *enormous* inconvenience from Swift code. This is because the Swift
-// translation of the C type `SSL_CTX *` changed from `UnsafeMutablePointer` to
-// `OpaquePointer`.
-//
-// This change exists for reasonable enough reasons in Swift land (see
-// https://forums.swift.org/t/opaque-pointers-in-swift/6875 for a discussion), but
-// nonetheless causes enormous problems in our codebase.
-//
-// Our cheap way out is to make everything an OpaquePointer, and then provide initializers
-// between OpaquePointer and the typed pointers. This allows us to tolerate either pointer
-// type in our Swift code by bridging them over to OpaquePointer and back, and lets the
-// compiler worry about how exactly to make that work.
-//
-// Now, in fact, Swift already has initializers between the pointer types. What it does
-// not have is self-initializers: the ability to create an `OpaquePointer` from an `OpaquePointer`,
-// or an `UnsafePointer` from an `UnsafePointer`. We add those two initializers here.
-// We also add a special "make" function that exists to handle the special case of optional pointer
-// values, which we mostly encounter in the ALPN callbacks.
-//
-// The *downside* of this approach is that we totally break the pointer type system. It becomes
-// trivially possible to alias a pointer of type T to type U through two calls to init. This
-// is not a thing we want to widely promote. For this reason, these extensions are hidden in
-// this file, where we can laugh and jeer at them and generally make them feel bad about
-// themselves.
-//
-// Hopefully, in time, these extensions can be removed.
-
-extension UnsafePointer {
- init(_ ptr: UnsafePointer) {
- self = ptr
- }
-
- static func make(optional ptr: UnsafePointer?) -> UnsafePointer? {
- return ptr.map(UnsafePointer.init)
- }
-
- static func make(optional ptr: OpaquePointer?) -> UnsafePointer? {
- return ptr.map(UnsafePointer.init)
- }
-}
-
-extension UnsafeMutablePointer {
- init(_ ptr: UnsafeMutableRawPointer) {
- let x = UnsafeMutablePointer(bitPattern: UInt(bitPattern: ptr))!
- self = x
- }
-
- static func make(optional ptr: UnsafeMutablePointer?) -> UnsafeMutablePointer? {
- return ptr.map(UnsafeMutablePointer.init)
- }
-
- static func make(optional ptr: UnsafeMutableRawPointer?) -> UnsafeMutablePointer? {
- return ptr.map(UnsafeMutablePointer.init)
- }
-
- static func make(optional ptr: OpaquePointer?) -> UnsafeMutablePointer? {
- return ptr.map(UnsafeMutablePointer.init)
- }
-}
-
-extension UnsafeMutableRawPointer {
- static func make(optional ptr: OpaquePointer?) -> UnsafeMutableRawPointer? {
- return ptr.map(UnsafeMutableRawPointer.init)
- }
-}
-
-extension OpaquePointer {
- init(_ ptr: OpaquePointer) {
- self = ptr
- }
-
- static func make(optional ptr: OpaquePointer?) -> OpaquePointer? {
- return ptr.map(OpaquePointer.init)
- }
-
- static func make(optional ptr: UnsafeMutableRawPointer?) -> OpaquePointer? {
- return ptr.map(OpaquePointer.init)
- }
-
- static func make(optional ptr: UnsafeMutablePointer?) -> OpaquePointer? {
- return ptr.map(OpaquePointer.init)
- }
-}
diff --git a/Example/TestApplication/Pods/Local Podspecs/Torus-fetchNodeDetails.podspec.json b/Example/TestApplication/Pods/Local Podspecs/Torus-fetchNodeDetails.podspec.json
new file mode 100644
index 00000000..a7f55312
--- /dev/null
+++ b/Example/TestApplication/Pods/Local Podspecs/Torus-fetchNodeDetails.podspec.json
@@ -0,0 +1,29 @@
+{
+ "name": "Torus-fetchNodeDetails",
+ "version": "0.0.10",
+ "platforms": {
+ "ios": "10.0"
+ },
+ "summary": "Fetches the node details from torus nodelist smart contract",
+ "homepage": "https://github.com/torusresearch/fetch-node-details-swift",
+ "license": "BSD 3.0",
+ "swift_versions": "5.0",
+ "authors": {
+ "Torus Labs": "rathishubham017@gmail.com"
+ },
+ "source": {
+ "git": "https://github.com/torusresearch/fetch-node-details-swift.git",
+ "tag": "0.0.10"
+ },
+ "source_files": [
+ "Sources/FetchNodeDetails/*.{swift,json}",
+ "Sources/FetchNodeDetails/**/*.{swift,json}"
+ ],
+ "module_name": "FetchNodeDetails",
+ "dependencies": {
+ "web3swift": [
+ "~> 2.2.0"
+ ]
+ },
+ "swift_version": "5.0"
+}
diff --git a/Example/TestApplication/Pods/Local Podspecs/Torus-utils.podspec.json b/Example/TestApplication/Pods/Local Podspecs/Torus-utils.podspec.json
index a36c6a2d..926bbcb9 100644
--- a/Example/TestApplication/Pods/Local Podspecs/Torus-utils.podspec.json
+++ b/Example/TestApplication/Pods/Local Podspecs/Torus-utils.podspec.json
@@ -21,13 +21,10 @@
],
"dependencies": {
"Torus-fetchNodeDetails": [
- "~> 0.0.8"
+ "~> 0.0.10"
],
"PromiseKit/Foundation": [
"~> 6.0"
- ],
- "BlueECC": [
- "~> 1.2.4"
]
},
"swift_version": "5.0"
diff --git a/Example/TestApplication/Pods/Manifest.lock b/Example/TestApplication/Pods/Manifest.lock
index 56cca651..d4d7ab2d 100644
--- a/Example/TestApplication/Pods/Manifest.lock
+++ b/Example/TestApplication/Pods/Manifest.lock
@@ -1,6 +1,5 @@
PODS:
- BigInt (4.0.0)
- - BlueECC (1.2.5)
- CryptoSwift (1.0.0)
- PromiseKit (6.8.5):
- PromiseKit/CorePromise (= 6.8.5)
@@ -13,12 +12,11 @@ PODS:
- PromiseKit/CorePromise
- secp256k1.c (0.1.2)
- Starscream (3.1.1)
- - Torus-fetchNodeDetails (0.0.8):
+ - Torus-fetchNodeDetails (0.0.10):
- web3swift (~> 2.2.0)
- Torus-utils (0.0.13):
- - BlueECC (~> 1.2.4)
- PromiseKit/Foundation (~> 6.0)
- - Torus-fetchNodeDetails (~> 0.0.8)
+ - Torus-fetchNodeDetails (= 0.0.10)
- web3swift (2.2.1):
- BigInt (~> 4.0)
- CryptoSwift (~> 1.0.0)
@@ -27,34 +25,39 @@ PODS:
- Starscream (~> 3.1.0)
DEPENDENCIES:
+ - Torus-fetchNodeDetails (from `https://github.com/torusresearch/fetch-node-details-swift`)
- Torus-utils (from `../../`)
SPEC REPOS:
trunk:
- BigInt
- - BlueECC
- CryptoSwift
- PromiseKit
- secp256k1.c
- Starscream
- - Torus-fetchNodeDetails
- web3swift
EXTERNAL SOURCES:
+ Torus-fetchNodeDetails:
+ :git: https://github.com/torusresearch/fetch-node-details-swift
Torus-utils:
:path: "../../"
+CHECKOUT OPTIONS:
+ Torus-fetchNodeDetails:
+ :commit: 979d7d8358cfc19d0c88afb1b98e0abade446d81
+ :git: https://github.com/torusresearch/fetch-node-details-swift
+
SPEC CHECKSUMS:
BigInt: 2aad1a9942dc932ec8b84290d2c564a3d76f97ab
- BlueECC: 0d18e93347d3ec6d41416de21c1ffa4d4cd3c2cc
CryptoSwift: d81eeaa59dc5a8d03720fe919a6fd07b51f7439f
PromiseKit: 9616b0afef31eae56ab9ce044c8ec2b8612a15cd
secp256k1.c: db47b726585d80f027423682eb369729e61b3b20
Starscream: 4bb2f9942274833f7b4d296a55504dcfc7edb7b0
- Torus-fetchNodeDetails: eb55b4b731c9e2484a83a032684679b29582da9a
- Torus-utils: 6e6d27b7d3dc08ab23a8a8449f4d8c14b43b7b56
+ Torus-fetchNodeDetails: 7e7286d4fc78e2de33e4605dedb796b5eea4cab5
+ Torus-utils: 5f4cd017f748cc4f639b5ca19f28a5448795a05b
web3swift: d79140b9d5fdd06a377072936b086bb7ae187157
-PODFILE CHECKSUM: 6956e5430da2c75937a14806f68bd36b2a5bf4a8
+PODFILE CHECKSUM: e6b17e4ed9978ef9cb9095a9e02c8d2f4b1c4046
COCOAPODS: 1.9.2
diff --git a/Example/TestApplication/Pods/Pods.xcodeproj/project.pbxproj b/Example/TestApplication/Pods/Pods.xcodeproj/project.pbxproj
index d706a4ed..01deb7ed 100644
--- a/Example/TestApplication/Pods/Pods.xcodeproj/project.pbxproj
+++ b/Example/TestApplication/Pods/Pods.xcodeproj/project.pbxproj
@@ -7,1038 +7,982 @@
objects = {
/* Begin PBXBuildFile section */
- 00212117751FEDEEB1C6118977E2383D /* Promise+Web3+Personal+UnlockAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC71C893615F12050888D02D6BEA84 /* Promise+Web3+Personal+UnlockAccount.swift */; };
- 002DF5BED1DE3B6A76DAE7DE7467B904 /* field.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F525F27D44E8B87B76780D89E088CEF /* field.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 00477461219F413FBA545EE8230D4FA8 /* ECError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34CBA8AA46D0BDD3F7C3222152A3D218 /* ECError.swift */; };
- 0049EB7DC74BEFCDC5740A4FFBE89170 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93714C3F0CCB743F0B84EB17AC59AFF1 /* Data+Extension.swift */; };
- 0095D5A117ACB279602EDF0CAA26C931 /* Web3+ERC1644.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F732A501D414565923DE40FA88FB1A /* Web3+ERC1644.swift */; };
- 00BCD406F6B4C9CCC6C932D8EE1CD445 /* scalar_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = D457FE000E7AEEB7110AE754F79ACC0E /* scalar_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 00C6A45F25B7C9567ABD4B6CEBB8F3A0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42724263292B57F8FBB10670EA33B0DD /* Utils.swift */; };
- 016D13EBDAE55E557C5FACEB05039B61 /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB59500D493EA8832763BC4A8B999C1 /* Dictionary+Extension.swift */; };
- 01858390C7EDA982ACA34E3E39EA1ECB /* Promise+Web3+Eth+Call.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D31B63A7A8B9EC5A77960952C7CE75 /* Promise+Web3+Eth+Call.swift */; };
- 02514EDA606EE05957ECDD8A3837C0B3 /* Web3+WebsocketProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC454CCD1FC5740A3FEE2A08650B3814 /* Web3+WebsocketProvider.swift */; };
- 025EED6A44FE486DD84DA9D38AC02AA0 /* Thenable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA02572F0D72D5A27F430497A40AD80D /* Thenable.swift */; };
- 027A11D4DC53330942D7E3BE96A474DB /* field_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C5175371BA7614F62CF7DAAABA81B0 /* field_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 02AF05F4CB0326DF1758D13C0151AF52 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 03709AD14905316720FA037F5775F935 /* Torus-fetchNodeDetails-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 28B31AD5CCD5E973139C85AFB2E6F121 /* Torus-fetchNodeDetails-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 041727344CB8243331EAD8D17DD6A97A /* eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = ACF0BB71BCC59D551D6082A4241DCC63 /* eckey.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 04C4B5D00750E2E4DFD4C4C7CC47283A /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB8B5E54120F129745BF84B5A1632C97 /* Bitwise Ops.swift */; };
- 0526AEB2FAAA1D80AC6245AB71BE994F /* BlockEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25769A3030927A3A9F55EEB2534DF920 /* BlockEncryptor.swift */; };
- 053EF1E9ADBEC060AEE15F16B7C29644 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 05958032576427EDBC47854025783311 /* Utils+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 357939F969E2F86A13AF7320974723E9 /* Utils+Foundation.swift */; };
- 068E5963381B58D7D8CD321462F567ED /* Compression.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3918097A24E7CB1200CFF2993A53033 /* Compression.swift */; };
- 06B0858F852D35B9763DDC55B1436916 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E92CC8C7A7558A1814E4AC5A1FB075D0 /* Extensions.swift */; };
- 0701E3DA3F883DADADC91AC632E5A8D8 /* Web3+BrowserFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8766D800B540A116F66FB1E62CDFAD2E /* Web3+BrowserFunctions.swift */; };
- 08AECD9AFB8C55484B7C1D7DD41EEB23 /* nodeDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4F57EBA437C8B260CD9C23A7AE9A62E /* nodeDetails.swift */; };
- 0963F88DEF863DBCD812E5862E6E67EB /* PromiseKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3A5773D3BD5EE27C74CFCC666E2C2AD /* PromiseKit.framework */; };
- 0D744D90E535FF1354A9400881C425AE /* eckey_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E7277D28BBF08FB9986AE787A992D9D /* eckey_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 0DE7C81540BEE5DD841DC328E0394B8B /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6235AEA3AB0A867DBB017AB61C9256E /* String+Extension.swift */; };
- 0DF63A4C8FA0E53FB630F5B5429FF066 /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 827436DC47945675DA9BE17F2994530B /* Exponentiation.swift */; };
- 0E4A6ABC45E17773C8B5DD22AFFA6BF6 /* ABIElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7C33E11F14E062C46E89C72E1D231CC /* ABIElements.swift */; };
- 0E6F0E8337D8928B164D18FC54D6C7F9 /* Bit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C992EBF7257C7C43EE5CD9FD29C3D1A /* Bit.swift */; };
- 1012BAE0A098D2517DF57DB2B90939C8 /* ASN1.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B6FBA5B44B8285E05743B236D7B1D5 /* ASN1.swift */; };
- 106346B30C14186F4A21745635B773C0 /* ECEncryptable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCDBA34D8E3A882520242F065B849E2D /* ECEncryptable.swift */; };
- 10DD3C1628891689B5075414CA9F76B1 /* BIP39+WordLists.swift in Sources */ = {isa = PBXBuildFile; fileRef = C97D23FD0942E1A28B8B6F14C24F7C40 /* BIP39+WordLists.swift */; };
- 111522477C7BD6EA62BF05120EA80296 /* Data+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AC989C7F31745A024E8F3DB51817938 /* Data+Extensions.swift */; };
- 1117D071792608582FDC590AA4FABAC9 /* ABIParameterTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 017F223FCC9234C6007F324797067C17 /* ABIParameterTypes.swift */; };
- 11E5816A8E02E4959023CFC5D454A6D1 /* Web3+ERC721x.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C6F349CA9DF4D609C73FCB93934213C /* Web3+ERC721x.swift */; };
- 13A4BA994DAE26C3B22F1842D5E186BD /* Padding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2E610857B21DBB87BE2592953CC50AD /* Padding.swift */; };
- 13E3E0FDEC38371DF8E3D31ED09483F7 /* EllipticCurve.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347B70344DBE5E12D7809A020D7A19A5 /* EllipticCurve.swift */; };
- 14B19F37A7C6A17E35D41363B42FD4D7 /* Promise+Web3+Eth+GetBlockNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE67C873434A9D578941B9DADD8EB8 /* Promise+Web3+Eth+GetBlockNumber.swift */; };
- 152270A233E0821366583BD4F34A437F /* BigInt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59978ED3BA0EA100DA9507ECA360AB7A /* BigInt.framework */; };
- 15901C26A398A72C746D1369042356B6 /* join.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B3393F47C0AE1C4EA243F653BEAA05 /* join.m */; };
- 1627E6FA0453D6DB472BA444F1D32AE7 /* SSLClientCertificate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14B86651EE1A26D23A8B1759635E887E /* SSLClientCertificate.swift */; };
- 16F71F20D31B7EEC6A60DB14135AB7A9 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DC7D89F98C9E0447B3DBF835938168 /* Comparable.swift */; };
- 17A97AFD5AFF94C140C5AF4738D7D5D9 /* ABIDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 795B3BBEFA665CE807AE29B90FD4585B /* ABIDecoding.swift */; };
- 17E4A43AFFB022741785460A34F7F9CC /* ecdsa_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = D560E10B3418B5F61C92219B34258E34 /* ecdsa_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 182B8B938C42D46318BADC3C046978BE /* Web3+ERC165.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEA1A905BF42FD6F95E107C67253E67C /* Web3+ERC165.swift */; };
- 18DF6A317CCB7F5BEE8D7AF5D79AEB38 /* PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 86E591576BE343F57875AC68E768CA7E /* PromiseKit-dummy.m */; };
- 1945166269C9C9AAD6A5E962BE28610F /* NonceMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4132313F5B41AF52383E70762F5D16E9 /* NonceMiddleware.swift */; };
- 1BBFDD3A27FB22D82904FA5E515B275E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 1C482705924CA6C3DF716EC60624900B /* Generics.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBA77538A9E906568915D88F36DC5F4 /* Generics.swift */; };
- 1C5D3593B983B9369EFCFDE7D4DE0D19 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46CD9CE3F0496A23484781AB300207EB /* Configuration.swift */; };
- 1D98AC0F5119ABFA08F38424AFEE3F33 /* num.h in Headers */ = {isa = PBXBuildFile; fileRef = 12D784074C40340BEFAD8DF75D8F7925 /* num.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 1DCE353B0DCB8193CEDAA9C9683FB384 /* web3swift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 574F6B75187261A4FBBD68381F7531E2 /* web3swift-dummy.m */; };
- 1DFFF811F8F0010B7B8624AA79E84D8C /* Pods-TestApplication-TestApplicationTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CEC31D6A49140A8533DE7811B519DB98 /* Pods-TestApplication-TestApplicationTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1E0582C40F4B0B893EA257821A8ECDD3 /* EthereumAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3E252A3436A000A91BF083B37A61964 /* EthereumAddress.swift */; };
- 1E6C33DE401D9AEFE660851A3E3394E6 /* NoPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17E334A91FB3B15261E1624DB977E118 /* NoPadding.swift */; };
- 1FD4261086B60D40314E467D2E341F49 /* Web3+Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10CDA17E2C80580AEC0395A99CC32192 /* Web3+Options.swift */; };
- 20456D23D8A518AE625C4DA44C19FE9D /* ABITypeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE170509CDBAFBB333A7DF7A9FC61E7C /* ABITypeParser.swift */; };
- 208EDAA1D258CAA2BD08E462359D4FFF /* when.m in Sources */ = {isa = PBXBuildFile; fileRef = 4848EA02B0AAEDA160301CCFE39AA804 /* when.m */; };
- 216F21022D2FC7A1D3235BD44041D114 /* Promise+Web3+Eth+GetTransactionReceipt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BAE5A5F632C0115564342CB3867704D /* Promise+Web3+Eth+GetTransactionReceipt.swift */; };
- 2228B8549F0F5445D1B2D346E12A20CD /* Floating Point Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = E27B0B6CC7CDBA3B6A177D27F501280C /* Floating Point Conversion.swift */; };
- 22B22377A5291E71454C70EFDC641EC3 /* PromiseKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3A5773D3BD5EE27C74CFCC666E2C2AD /* PromiseKit.framework */; };
- 23B2F8F46EC1F3B6664722DE36D7C4B2 /* hash_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 6910DFA872E646648C78D4382896F542 /* hash_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 279FDC06D67FE321BA76365A61BEB43A /* Decodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A04ED6C7236D5041902CA41A284BB742 /* Decodable+Extensions.swift */; };
- 27C270A5B2605C1212265D5D2759EBE0 /* ENSRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD840A6C46AE2478448C2E200060061A /* ENSRegistry.swift */; };
- 294C60E5E562CF3C2917335BDD910F42 /* Checksum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361A1BA59B41CBD2CDED6CC06A6DAF7A /* Checksum.swift */; };
- 294D61E8A195B6A1F6AEDCF0F73599A5 /* Starscream-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE6CCF5D92F4D2A6900E0F3B010E3723 /* Starscream-dummy.m */; };
- 29643F7A000899634C9174BCB8D1A1AB /* NSNotificationCenter+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB9E8113362FE4EAD220F2FA873294B5 /* NSNotificationCenter+Promise.swift */; };
- 2A2AC45CCB9AC366BF87A8727235A9D5 /* Web3+Structures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57DB4607EB3DB93D86851960FEF24793 /* Web3+Structures.swift */; };
- 2A5343C6ECA466B93E1F440B6C7F7410 /* Web3+ERC1633.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F0F4E990A63C129A0F2F139188489F4 /* Web3+ERC1633.swift */; };
- 2DD9959CD5493A978BCB3B3CC0D2EB49 /* ECB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15B1915A185346BF74E2DE837CC39859 /* ECB.swift */; };
- 2E2CB33BBCB54A58B5829DA3D7089867 /* RLP.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B079B65A2B2BBD56F9BCEF7E63FDC9 /* RLP.swift */; };
- 2E938A3C33EE9130C959EFA811DFB2EE /* Rabbit+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C9768E7A50FC1C419B3016EB09D7B15 /* Rabbit+Foundation.swift */; };
- 2FDD3DAC4E9D0C03A16D3F838A8E15F5 /* SHA2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A9EF71F152A4D6E4F70D7D69528A48 /* SHA2.swift */; };
- 2FFB40C41FD4E701743D43D53EFF5EEE /* ABIEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 353F7315FC38693C0DABBE39FE43CEF4 /* ABIEncoding.swift */; };
- 301B5F7669D2DC7E46384FBAC71B7C19 /* hang.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ACF51A726F3D25ECEC4A792D07D867A /* hang.m */; };
- 3208DDEB9CAC16AC7D2C7E9A7F057DC1 /* NSURLSession+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6EA8E9961E71F3FCB1032E4552C9FAB /* NSURLSession+Promise.swift */; };
- 3378C1EEFC149B899433AF30F147CE32 /* after.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6180543759D92D55BC052F8C2D5FCE1B /* after.swift */; };
- 33B79E4BFF8D25E1A705E2C469BBCA9B /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 7449C6EEA82F044E662F8A42D110BAA1 /* PromiseKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 33B7E14E34F65A8FA8A40387A4B60BA3 /* field_5x52_asm_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = D60EE72F8C53EB0A88E998090B699000 /* field_5x52_asm_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 33BA7FDE618341FA04057036BA48671C /* field_10x26.h in Headers */ = {isa = PBXBuildFile; fileRef = CF8B1674C9E99A2F930E6E8B819E7818 /* field_10x26.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 33E33BA9554D08ECD5ED712F3C618ADC /* Starscream.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BA3970FB657A0CF57563BBF5D6BAB4F /* Starscream.framework */; };
- 341B593A714AE4E075411499D7B0ADB3 /* Web3+Contract.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15CD57C38CDEE70FDDC8F8960D8165EA /* Web3+Contract.swift */; };
- 34AAF9CEBCA8EB30597B0721CB47B8AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 35D0CC77DD01CC8A6DF6E333E2E4DE8E /* scalar_low.h in Headers */ = {isa = PBXBuildFile; fileRef = 3969AE4DF78BAB2F484C0E6C492A127E /* scalar_low.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 3607067F46CCABE732B2E0078149F8B2 /* Array+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5EEF41E0F6B88D5DA424C85B7A49AFF /* Array+Foundation.swift */; };
- 3638C24D5ED49E889D889DC0DEB04861 /* Promise+Web3+Eth+GetTransactionCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE14A5044185B26F1B0EC7AF5F9DA03B /* Promise+Web3+Eth+GetTransactionCount.swift */; };
- 36EEC99C3B3DA241FA0A584CC56D9186 /* scalar.h in Headers */ = {isa = PBXBuildFile; fileRef = 768431191748CC66EC086990B260023A /* scalar.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 37018D3DC554A00E9B3E306A28296316 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E17E0F2B9BC854479E1EDA1AF91DDD /* Error.swift */; };
- 371991EAF7304015281761FF697A7DE8 /* BIP32Keystore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2BB7FFC39564E624DF899587B8233DC /* BIP32Keystore.swift */; };
- 3767AD80E5B1D0C99FBD10268816DB32 /* Promise+HttpProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25AC7EAA17B933E04E94456E4263AD26 /* Promise+HttpProvider.swift */; };
- 37DE3FC5248A600BE50E0E1E198CC689 /* Web3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CEC988ECFE32D9E56F263C2A8A02B4A /* Web3.swift */; };
- 38C2FD10A55635814C904F53EEA94718 /* Promise+Web3+Eth+GetBalance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90033204E4AFF0D31B94A27EDA3DA4A7 /* Promise+Web3+Eth+GetBalance.swift */; };
- 39137B0D7B8FB5BF554BDE012BD85061 /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = B162BDD424AC0AE67571E5ED0470EBDB /* Data Conversion.swift */; };
- 39A29DFF3EA3E6283245995CFDFB2E0B /* num_gmp_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = EE776D7DE70788FDF4CBC53CBC0B642A /* num_gmp_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 3A12FF4E643CEED1A9E4215D9E40C6B7 /* ecmult_gen_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = CE7B1CE88B177718E83A719A0E45B518 /* ecmult_gen_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 3A9E30AD9237381AB8F09CFE90E48254 /* Web3+InfuraProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70F419CBCBE60FE8C63566444633000B /* Web3+InfuraProviders.swift */; };
- 3AAE347ADDFEFAC7DDECBC744D1BD6AC /* NSTask+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = B403BB0C0753F9592DDA53E09C5471D8 /* NSTask+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3B308CFE296D31D7722683A77CF93773 /* group.h in Headers */ = {isa = PBXBuildFile; fileRef = E887065DED18D58EFC60392286768777 /* group.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 3B9A2601095A9A72843D76CA44B37782 /* Division.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7654BE534B3EE5C3DBC9DCF34760EECE /* Division.swift */; };
- 3C5B282E532C39B0DAD80EA508212F0D /* RIPEMD160+StackOveflow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C581A8E1E5857DB457F155257532935A /* RIPEMD160+StackOveflow.swift */; };
- 3E3FE29D83B6DB4B229CB38CCB4E1C86 /* CBCMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 782BC8732F770F7BCE9DD06FC5D71C1F /* CBCMAC.swift */; };
- 3EB5CB15AB8CB2C6F415F9401E13CA71 /* Promise+Web3+Personal+Sign.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C33B2E6F6FC8B3AAF5E9684C75907FB /* Promise+Web3+Personal+Sign.swift */; };
- 3F1C813F46339313F362020B09C9CADE /* Encodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77B7F94F5ADE579AFC40FB2F2C179F2C /* Encodable+Extensions.swift */; };
- 3F9DD7CE351A968272FD2011C01247CB /* Web3+ERC20.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CB3EE1ACABA50E005FA1086108000F6 /* Web3+ERC20.swift */; };
- 40971480F762DFFFC52299F814424D3B /* Torus-fetchNodeDetails-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9511A812F6005AACC24818A502225B5F /* Torus-fetchNodeDetails-dummy.m */; };
- 420C87B493B70746472899A82479242F /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B416C58D98BCFCFBB41FD2FB3916F3 /* String+Extension.swift */; };
- 42495A8941D9B42B07F032390AA2389F /* UIViewPropertyAnimator+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ACFB7A7E597C21FA67B85300CD2A33 /* UIViewPropertyAnimator+Promise.swift */; };
- 4362503059C68DFCDCB8621F4FD9E325 /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC977F26D1A63F826CDCA4E47E845C9E /* Square Root.swift */; };
- 438DAC7813FDB677252FB52A8FA3E708 /* Updatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78449ED2750AED1EB54CB9C3420DFBB7 /* Updatable.swift */; };
- 4418281931C4D1176F2C541CDD770F14 /* Catchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 403988EED5E437BB90841C4D5AD6AD84 /* Catchable.swift */; };
- 444CBC21BE04E423755F9B7839664E69 /* Promise+Web3+Personal+CreateAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90ECA9913CCC6C794FA8BC3C4CA43A37 /* Promise+Web3+Personal+CreateAccount.swift */; };
- 448506F29495E3B3BAB56D093D681C1A /* Authenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DE0AE40FC16BFA70D6A1AC87CC1063C /* Authenticator.swift */; };
- 45746D692A8E7F09C0EED2675231EF41 /* StreamEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15775417273962704570E53CCA5E0A9A /* StreamEncryptor.swift */; };
- 45C1651F8EF139F899EA5994EDB1C9BF /* Promise+Batching.swift in Sources */ = {isa = PBXBuildFile; fileRef = C91D527220D852FEFE4509A8EDC4F221 /* Promise+Batching.swift */; };
- 46C4120B8C66DBCBEEC55D09F043D618 /* race.m in Sources */ = {isa = PBXBuildFile; fileRef = E47E464E5A95A268A3359EAB50C320C3 /* race.m */; };
- 48A7B1CD48C811DC3B8B7BE7212159AF /* EIP67Code.swift in Sources */ = {isa = PBXBuildFile; fileRef = B67DE968E4E1C0F3061CB6E23BF0BF3E /* EIP67Code.swift */; };
- 48C628B5BD32C3192B9619C5067DD1BD /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A622C973D6CDE344C63681F95DDFB5B0 /* Data+Extension.swift */; };
- 49696DF6233801BF2D0F0BE214E56304 /* SecureBytes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F7038569AA8F4476E039801A0BB35ED /* SecureBytes.swift */; };
- 4981C37D541CDA8BCB7DE77E6607AC50 /* after.m in Sources */ = {isa = PBXBuildFile; fileRef = 318DEDBE5F61755B24C0739C0E964149 /* after.m */; };
- 49C8C4DFD859391ED9CB7EBC50DDBBD1 /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = F524A5B52A154F4AD4C31118EE6A7411 /* MD5.swift */; };
- 4A613C22671DE0E90BC4F1B70CB3B479 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 4A8B21596204A43258F4EC69A7AEC66E /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE77C9781C39D4108D5478B57E15D8F1 /* Hashable.swift */; };
- 4B20096E2A4C1FAFE75114D4D5DB7332 /* secp256k1.c-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EB66CF280178455AB18404505625D7C5 /* secp256k1.c-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4B7C651F6BFF3C91DA44A3303094D1CB /* Web3+EventParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A95A66D696FF5E8556E04C8A1710EF /* Web3+EventParser.swift */; };
- 4C2EC14B44D33EA1AC82396B5DB22E58 /* secp256k1_ec_mult_static_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E20B88D025CDBB4869F6EC4633DB495 /* secp256k1_ec_mult_static_context.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 4D58755B317F1EDFF34B4F37A9F4DCD0 /* EIP681.swift in Sources */ = {isa = PBXBuildFile; fileRef = 891D846A15273E333243B70F645C8589 /* EIP681.swift */; };
- 4D65C782220C5E27BF8A3B61EBBDAB3E /* Guarantee.swift in Sources */ = {isa = PBXBuildFile; fileRef = E506403B658B91E93A78A0C7C151F78A /* Guarantee.swift */; };
- 4D7A06D6B6409DE2A53FBE9F70800BE5 /* Torus-utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F5DD464C9D6D787E18B398D16875A327 /* Torus-utils-dummy.m */; };
- 4DF0684077F16112AEC8D9BE0B6FCB35 /* ABIParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0630A763DB3E2EAF7A212352A3F7A56 /* ABIParsing.swift */; };
- 4EC7BD8654B3587F1F725E812C9D828C /* race.swift in Sources */ = {isa = PBXBuildFile; fileRef = AADC9C11B85B1DA16F263ADBC7506FDD /* race.swift */; };
- 4F440F2BEDC459638F4761CE41B396B2 /* NativeTypesEncoding+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3EE2096BF4539278418DB26E8D91E77 /* NativeTypesEncoding+Extensions.swift */; };
- 50395AA647F4B2961FC6615328ADD9A4 /* Web3+ERC1376.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D7054416303B843F4DB2157DB24161 /* Web3+ERC1376.swift */; };
- 521C7681FE49BED6EE0BB9878DDA15BF /* abi.json in Sources */ = {isa = PBXBuildFile; fileRef = 0E3D7B020B429AA0602A28C2F0EAFF63 /* abi.json */; };
- 5240C9092D5E1505BCC4C53BC238C373 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC6EB3F15411AD687ECF01B3767041F /* Data+Extension.swift */; };
- 52F57EB35132E86D75FE9443258EFDBF /* UIView+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = DCECCD6A10964BB3188D24D40CEAD34E /* UIView+AnyPromise.m */; };
- 5300EB86348ED2DD35A9339104F21842 /* CBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7B5ED910D49D747F4613D435EE415BA /* CBC.swift */; };
- 54BDD3BC1B92330FEF7F64FA1660BB13 /* AES.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B7CA35F33C698F211581E3881FC95C /* AES.swift */; };
- 54EFB24890D869900A08C936C7A4ED8B /* Web3+ReadingTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE0DA77DDFF117EEBDFAEBEA1A946F1D /* Web3+ReadingTransaction.swift */; };
- 56D8783CBF33646ECBF610FCC8EFC43E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECCF00F8804551E6A375480A753F1D9E /* UIKit.framework */; };
- 5769FFB81B15B18A6BCAC5053CDE7431 /* Web3ERROR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B8E0E65694742F93279B9F7F3FD08E6 /* Web3ERROR.swift */; };
- 57E33C929E4E3CDCC3BF95C0B15F6871 /* ecdsa.h in Headers */ = {isa = PBXBuildFile; fileRef = BC0B552F0DD8E2374E471A0402535C51 /* ecdsa.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 5802BD2A7E671D3015BE4E98C13D10CB /* NSURLSession+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 78D6408D720432637B42CCDA6F93CA2B /* NSURLSession+AnyPromise.m */; };
- 584092B393CFE2159BFD0BF6B45F28C7 /* epochInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D339D09B50563EABB7DD8BE6032977 /* epochInfo.swift */; };
- 58AD203AF555F9B8416F7F9B4C7DA435 /* Rabbit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27D6E85356EF024A04B3E8F67DB2657A /* Rabbit.swift */; };
- 59261385C80B7254D3AAD4906A0271B2 /* ENSBaseRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D56FEC2A27ACB25240B4E3AE57D4D81 /* ENSBaseRegistrar.swift */; };
- 59AA176600E91A56BC244B381305060B /* UIView+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = F59731603519C256093C2A3A6019613F /* UIView+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 59CA7350E79A7AB195599BC08F775961 /* web3swift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F10130C53494990322B8FA5B6E5D0F3 /* web3swift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 59CB2BC19644CCDCE0A6B59528348FD1 /* UInt32+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 420D248ECC6449AD12E9F8F81EECCD08 /* UInt32+Extension.swift */; };
- 59D589FE51F032733D9C1508A1EB180D /* fetchNodeDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98888F446096083947A33AE32F5BCDCF /* fetchNodeDetails.swift */; };
- 5B5FB52445FF03A586072CE1A78E4059 /* Encodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ACF0BF4C9C14FBC95E11AF8D3A7109C /* Encodable+Extensions.swift */; };
- 5B8A5FDFCDA736C6929320348B66149D /* CMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 667D54AC8B5619ECB8E75774D216EE93 /* CMAC.swift */; };
- 5BDB04D0FCB3BF53D54A171BC7EC3D61 /* ecmult.h in Headers */ = {isa = PBXBuildFile; fileRef = CD9CABB5622835CCCB1D010E8C35DD8C /* ecmult.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 5BEA43498AC1568D503F425FE53E77DE /* util.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E53F184FB408509F980024ED9E95477 /* util.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 5CEFD4F8821A3A1BD6C78FFCBCC98DA4 /* AES+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF9C5D4D96361288FACD88EBD844356F /* AES+Foundation.swift */; };
- 5D2D358E754D92564B259BBACFBA8271 /* PMKFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CA0BAB18E485ED3802B61910E476341 /* PMKFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 5E2574B7162EED00A81237F56CDC0BE4 /* BigInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 513CE66E0B849F9F59D0E4CAB00C3921 /* BigInt.swift */; };
- 5E5EBD7039DC8763BFB20616B2AFE5F6 /* CryptoSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E498C49DD8E53962BCAC8A8C53A93A5 /* CryptoSwift-dummy.m */; };
- 5EA295AAA0A87C734724E733B049C3A2 /* SECP256k1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78FCDD9F28E7952E65EE0ECF673BFCD8 /* SECP256k1.swift */; };
- 5EA5725212CB1E649A2C4A99252C37EF /* Web3+MutatingTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3C4F69D79812E0FECFB79D282BA5754 /* Web3+MutatingTransaction.swift */; };
- 5EAC73560F55F16593043037806B3CB8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 5F4CBB1E93088D1ACA0C3658E6D56E00 /* Promise+Web3+Eth+SendRawTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16D3A26B815E188FBCD62E9438CEECFA /* Promise+Web3+Eth+SendRawTransaction.swift */; };
- 5FDAD3F1739595982080BE2DD789C697 /* CipherModeWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFA05A6E633CDF6CB6D40DAF046EF8EE /* CipherModeWorker.swift */; };
- 6002AD14210CBE9C34EB848031CFD7E6 /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 452B25602CCD5421AA6229258D8D96A5 /* Addition.swift */; };
- 60F874ED0F6234A4417CAFDE554D088D /* PMKUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FE36C74AD45364B742EA2820A4AD49B /* PMKUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 61330480364F92D57CB181E890C8896B /* Collection+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFCC8A8A2B9534EA362252D6D1C931B2 /* Collection+Extension.swift */; };
- 636A216DCBEBED81DA2DB1A12C7639E0 /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56CDF07CA7104369D637E0C98CF401D5 /* Operators.swift */; };
- 639C6438CD01AE7A36FE1E551F2E7A8F /* CryptoSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D966DBF1EE75DE02346B083A2CB1001F /* CryptoSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 643D0F8038BB13F0B5697F132166991F /* NameHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = F957ECE666B4529D451558AAAF9BD5C5 /* NameHash.swift */; };
- 661665933B776F847791E9CB8829B690 /* nodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5DD5DEF7EA0B98C5B96DC2E4FBAEA55 /* nodeInfo.swift */; };
- 68A92231E087567C6A9AD700359DAE80 /* AEADChaCha20Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB6C725BE8769366F5D7F1A558BEFFF /* AEADChaCha20Poly1305.swift */; };
- 694E630570AB4DB0BCDF003411CF2B63 /* SHA3.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE38466495DB39D07F8CB54D147CDDEE /* SHA3.swift */; };
- 69DBAB1E3A8EEBFCC466D95509DE7125 /* UIView+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07AF4ACC9B4C2B0CF5263D87C988B2E4 /* UIView+Promise.swift */; };
- 69E62D35A7043AEBAFF100D522F38A30 /* DigestType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60DBBB63E8E7038B0300DD373126AFA3 /* DigestType.swift */; };
- 6A039C3CDF35D4A39938D4F092986103 /* scalar_low_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 01E999FD332A9F088688E2516ABEEC85 /* scalar_low_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 6BB0AA566FB8777DA663B49B62A16B23 /* AbstractKeystore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D7AD6B5D53961F4FA9FD540CF75FDA5 /* AbstractKeystore.swift */; };
- 6BEFE0DFB38CFB623BCA7AC62C6CBC1F /* NSRegularExpressionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE40A37E6C4DA612524FA8B4D6C7D682 /* NSRegularExpressionExtension.swift */; };
- 6C7D85DA353D1F73D2811E03EC6A408B /* BigUInt+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F560D5B1674FCA2B32CE2D1767E25F4D /* BigUInt+Extensions.swift */; };
- 6CBE4BE64833C927E1D4233F5B188EFA /* CryptorECC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D91EBDD56789EA331B956D464237A0C1 /* CryptorECC.framework */; };
- 6D78DA2799A948EFEBBDDCDB21181B6E /* HMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821FCBEAAE27F6D9E160B9D306209760 /* HMAC.swift */; };
- 6DE830042E36FDE326546970CA90F9B6 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2351D60402D1483EC8B3E0F89E7A9A37 /* Promise.swift */; };
- 7007F1DBE37A3FB463E4889E2D7A869D /* PlainKeystore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 092C0016CF37F384FC09471CEAC22F0E /* PlainKeystore.swift */; };
- 70DB0D89A3ADD9FABBA9337FA178454A /* EthereumContract.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E25863316FC60568B74625FD1417782 /* EthereumContract.swift */; };
- 72C9FF7E4353C3F63C82572FC2DFE9F8 /* Web3+Eth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83F465F3A5DC719C85F9DCF1FCCCDDB2 /* Web3+Eth.swift */; };
- 73EA1C553B580637369E1D5A72A425B3 /* when.swift in Sources */ = {isa = PBXBuildFile; fileRef = F77B5BE06DFB07CB3341BF7BDFA3EC4E /* when.swift */; };
- 74AB05755E5660F00E04A045C56F15B9 /* Web3+ERC1400.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF82579687775D437EF0D88B73F2AD /* Web3+ERC1400.swift */; };
- 74FE26D059EBCB639EFE3A41C9B0CEF2 /* EthereumTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DD11B7142981D5C54FCEDC39164730 /* EthereumTransaction.swift */; };
- 753AF3B9A090019376ED2C360D60A5BE /* secp256k1.c in Sources */ = {isa = PBXBuildFile; fileRef = 3DC45F69E69CC6AAB1EBB37B95015553 /* secp256k1.c */; };
- 7594E3D6AD77086F1FF0F7A56730064B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 75A747C13EB8DE016DEFEF4138D20E65 /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = E931C6BAE7404AC697BC7AFAEF26C727 /* ENS.swift */; };
- 77760D1BE78A9A70664626A93E66CCD6 /* Promise+Web3+Eth+GetTransactionDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B4BF6D161FC88D12EFEBD8431D1D96A /* Promise+Web3+Eth+GetTransactionDetails.swift */; };
- 777BF612A196989B26F928A84081F79D /* Web3+JSONRPC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4BFB4710ED0329569508DF8C35D4C99 /* Web3+JSONRPC.swift */; };
- 78168CC5291CA7F77BDF34F6FFA660FA /* ECPublicKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 574F594A918FC814BF848E230D7CDDD4 /* ECPublicKey.swift */; };
- 78480DF1E63C5DF462AA03E03F1ABB38 /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DA8457793BBC5202302C2F942E38AE /* Dictionary+Extension.swift */; };
- 792AECF194FD9EEC68866D1499302916 /* BlockModeOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D063DABF7668F721D1F2B222B0E4783A /* BlockModeOptions.swift */; };
- 7997EAE951EAB362280E2CE750810231 /* Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAD82BE26CAA4D98B012160BA3120D9E /* Cryptors.swift */; };
- 799EF221CD3D1D66CD18900033D30D49 /* field_5x52_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 9163EA9E5D632B8DFD391D6742373CBD /* field_5x52_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 79F73BA854A7EC559E464EC446493D52 /* AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = B8525C927E383B485E987F44C8604989 /* AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 7CA1721C656795B5319ECBE969567FBC /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = C332C981A8A0796D27A2A0338C8BB138 /* Error.swift */; };
- 7CA57460C1D6652FD0CF4B62C596849B /* PCBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4532FB35D074B2AB9C75FA7EAD89D922 /* PCBC.swift */; };
- 7CF8388C6799539D0665EDD25702DD14 /* secp256k1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 704F7790929A37724ADB3A6147FE27E3 /* secp256k1.framework */; };
- 7E3E6309C4EB4C70BC8AF5EB9CA3B6FB /* Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = FABC42632BDA628D4066EFE50367216A /* Poly1305.swift */; };
- 7E6F4EFB85936E0B3EB9AD287F074C36 /* PKCS7.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D8567B0A3B8C5A5C1F09982C886CD32 /* PKCS7.swift */; };
- 7EECE9FCF5E07473E6D0FE80BFCB94C9 /* BigInt-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F58B9C9C41E52F226DEDBF2AB668880 /* BigInt-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8039DF4C1AE7378FB41921D22A44AEF7 /* UInt16+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA38C364F696881CF0F209E60CA302D7 /* UInt16+Extension.swift */; };
- 82CA8F56E622BBA462EE1A121976F614 /* scalar_4x64_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A90DAE53338233690DF81E89C3CC622 /* scalar_4x64_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 839354EB463B41F966FC084E2A0E2879 /* BIP39.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB19EFDED5677FB9335E37294EF3AC93 /* BIP39.swift */; };
- 844339F23BF4450B4DA2BD3916692ABB /* ENSReverseRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8E304E6C20E75586C19D2EDDC76173F /* ENSReverseRegistrar.swift */; };
- 84EFEE9757B170FC35740D52653595DF /* TorusUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D0B8EA93217BD348C67F84D56001553 /* TorusUtils.swift */; };
- 854AF7B141389D5512E8E73DF38FEBEA /* BlockMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9989BFD4E52F1770A8073D83CB344B01 /* BlockMode.swift */; };
- 8573D5547D4AC8CEE69AB545148A72B6 /* CCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A72349455B36A5DE9393ACBCC7C716C /* CCM.swift */; };
- 8599E23B2946C6F3F6DA3D63EC82C4A3 /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B269BEB42F70368C73B376AE48F2F9 /* Words and Bits.swift */; };
- 85B2EA411B27F976033FF08E78AA7828 /* ecmult_const.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FD829FFE319ADCE13F78FB4623916AB /* ecmult_const.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 86207C438F2D2F66B190252F508907BA /* Web3+ERC820.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F6B786C167BCFFF9CDF1C29B5EE1DA3 /* Web3+ERC820.swift */; };
- 8757F43F6E4C56BFC1088F7C3A2FCF2C /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD32D50CDF6DD1F8B0DEEA1670F43A93 /* Web3+ERC777.swift */; };
- 88E9A3C7477A8A0EFAF588B6F9FE25BF /* BIP32HDNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35ED2DFA6A7841AE65BB52359A213AD /* BIP32HDNode.swift */; };
- 897FA0050B7F522D7283F16C3011D29C /* JSONRPCRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8811685CCF83BD3013F3AE0D3F52E746 /* JSONRPCRequest.swift */; };
- 898C184841F0E19D1C544882BB9F4025 /* secp256k1.c-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0302575D849B6913E53929CE1B18B31E /* secp256k1.c-dummy.m */; };
- 8B3350D96B15B975184C8EE0819F9623 /* SSLSecurity.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2996FAE88452E31E18BD6F84E11595D /* SSLSecurity.swift */; };
- 8B514AA7EDC1D7A1813BA633FACCA5F6 /* scratch_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 16506DE07AA3CF4CB3FCF0D86C2AAC6C /* scratch_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 8BA1F28932565D0AEFB2E9ACFFA85B78 /* abi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67F96C17F68671D84BDC8C949CFFCA50 /* abi.swift */; };
- 8BDF7A02CC56BBE62EAF179A3F305E08 /* num_gmp.h in Headers */ = {isa = PBXBuildFile; fileRef = F9C009DBAD49900C0D668FBF9A7BE20F /* num_gmp.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 8C05403EC0F455CB86CFD8060C1C5DC2 /* Cryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BD0C761BB84DFF0B35A2D8B4AE72BF9 /* Cryptor.swift */; };
- 8D58B7BD460D20FFEC478698F7F52222 /* PKCS7Padding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CB400D49C10A1EF3990F23EC6D1EE0F /* PKCS7Padding.swift */; };
- 8E8DB0413F47528F1A30410B067B9C28 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 8ED7D4847260B4F398ECF4351280AB31 /* Digest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82269E9154A72943F118A4138AE3EEAE /* Digest.swift */; };
- 910E4284DDFB279D97E51B4890AA82E9 /* recovery_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = D575D70117B84289747EA67D0879482C /* recovery_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 91A59A657AB2118D4FFFC913EAD87EC9 /* BatchedCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657D3F8BC93FF0A13F866F52F6057723 /* BatchedCollection.swift */; };
- 924FF03854346A99B6B5C151EFAE455E /* Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 255E503D9199AA8C99D231695F18D3B2 /* Web3+TxPool.swift */; };
- 932AD7ABB2310ECEF155AB676A65F2D2 /* Pods-TestApplication-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F35ACAD54CA4C8BA1628EEC5C9C803A /* Pods-TestApplication-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 93DCCBD62A24AE4EB6F80A2C972536AF /* BlueECC-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 99A6EEB3AF744C1A17EDDC89966A7AC1 /* BlueECC-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9447BD0FB408B2A7C9BFDFF99BBE1EBE /* UIViewController+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = E97D2CD56607080DE88D44413968241A /* UIViewController+AnyPromise.m */; };
- 948E97B934535C2814845329C568176F /* Web3+HttpProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A120B3191C28BBD73FB606716BCA276 /* Web3+HttpProvider.swift */; };
- 968B5CC9B9B0A7E92FACEEBEA3C0DA13 /* PromiseKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 34A886B25C6BD5FCC865BD3B6E1BE58C /* PromiseKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 96D67F9A7630A34944B6EAAD47F785E3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- 9720CB7E7054EBD69A23554969C0B0CD /* torus+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF24D35116A94BE6128674C6D47493E6 /* torus+extension.swift */; };
- 997870D5F490326F024B4D8687FF18DC /* Resolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBDD5CC22C10442BEC0386D8433FB2EF /* Resolver.swift */; };
- 99EE8A649068210DF711EA2FFBE1C3BF /* PBKDF2.swift in Sources */ = {isa = PBXBuildFile; fileRef = F94985AEBC8AF3E91566DBACFE9FFD17 /* PBKDF2.swift */; };
- 99F35D362CDAA3F01D59E05FAB02907D /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA983CE1BD9114508FE7D7C33C69576D /* Strideable.swift */; };
- 9A4B6CD18DC2BF909C53CB18EF43AD5A /* Web3+ERC721.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BBEAA20529A2FFE2E4DE15AC498B699 /* Web3+ERC721.swift */; };
- 9A80311C79CED9486D2E9FA4DEC3D45A /* StreamDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1A60043AEC9AD9A3EDC668504DE261C /* StreamDecryptor.swift */; };
- 9B17D6AAE3D0F7E6BB79F2C4F0325BD8 /* Promise+Web3+Eth+GetBlockByHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFA6DE50149F224E2166656277EA78C /* Promise+Web3+Eth+GetBlockByHash.swift */; };
- 9B20B16C551E6597F63021A4F3758F2F /* EventFiltering.swift in Sources */ = {isa = PBXBuildFile; fileRef = 474A526CD650F97D55FD4CBBAC75EF42 /* EventFiltering.swift */; };
- 9B65647B927085E2366117D59DC1586D /* CustomStringConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBF422BB1A32E3347FA08BB8D942BA79 /* CustomStringConvertible.swift */; };
- 9BFE70DD7ECA3C6183B82DE691FE4491 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFAB0C3E3C9CCAC2D77CF9F7F8DEFFB8 /* Box.swift */; };
- 9BFEBDF7C05FE3E774F8BEFCA69A6EA4 /* Promise+Web3+Eth+GetGasPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AE1AD882F59ABBAA395712B573A3D67 /* Promise+Web3+Eth+GetGasPrice.swift */; };
- 9C0E548AFDDEC119E0E8494C08624660 /* ecmult_gen.h in Headers */ = {isa = PBXBuildFile; fileRef = 906E6BF581DB1366CD264370D7FF8B47 /* ecmult_gen.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 9D22006C799C6F6E9452B97B760F7CD1 /* UInt64+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 692C6ACA1D439187FB02D2A537287001 /* UInt64+Extension.swift */; };
- 9E4A5FD5306F96F9A321CF6434ECFD99 /* scratch.h in Headers */ = {isa = PBXBuildFile; fileRef = 2222B673FA2A455609673F9DAA0455A7 /* scratch.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 9EF1A16182359E8D56C981BE68909E78 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 35C103BD6C3673710F0CF62EC8A6E4F0 /* hash.h */; settings = {ATTRIBUTES = (Project, ); }; };
- A1E6C35C5B3ECB558FE1AF9B1FAAB53B /* AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = BBCB7D3A4C8A86BF63DCBC520DCA58BE /* AnyPromise.m */; };
- A1FEE6A8249F092EB9050D7FB86953B6 /* ethereumNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2974A923194C443EB5F4DDA6DDA76FF /* ethereumNetwork.swift */; };
- A24B41D7FC88D73196363354EAFBCE6C /* Web3+ERC1594.swift in Sources */ = {isa = PBXBuildFile; fileRef = 127E5D93CC274BD5C9491543B7A1EAEA /* Web3+ERC1594.swift */; };
- A4907B00D2FFBF3E161BB1D21F41D086 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- A5F5D7A20264221D4A7F489FB0060D34 /* afterlife.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A3E2B3FF94E027E3EE928ECE5C6996B /* afterlife.swift */; };
- A65BC55FFE138090EF77D9EC1F72A88B /* HKDF.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5997E64F8E3FD3B8F019FF27B5F1F405 /* HKDF.swift */; };
- A66684DE1E2A065DB08A246D522257F5 /* ecdh_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6CA55FBD56E7831EBADBAB29C4C0C3 /* ecdh_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- A6DE398BCD6088FF2BD94FA1E64398B5 /* KeystoreV3JSONStructure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31451781C8BB73FD0819FEB049AA75B9 /* KeystoreV3JSONStructure.swift */; };
- A74DB6D130E58531982D78C44C3B5B85 /* Promise+Web3+Eth+SendTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D0FB94E0E8095CE284B12F09045CBD6 /* Promise+Web3+Eth+SendTransaction.swift */; };
- A8271380CDEEE7647F4DC517FA53950D /* secp256k1-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D7BC3DED789E6BE4F3A92FC201EF9D2 /* secp256k1-config.h */; settings = {ATTRIBUTES = (Project, ); }; };
- A93275D5C1DAD3CA7CCC2A9586AC9ADE /* AEAD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42ECEE42C048578595D09D3B164DA9E7 /* AEAD.swift */; };
- AAA648FE58CC4A49EF39BFDBCBA7C1FA /* PBKDF1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7B7D18CDA128BA1AD09C4BB0A83D24 /* PBKDF1.swift */; };
- AAD9F9FABCC30FCBAE7982447F49A029 /* Web3+SecurityToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA04E13E275C5AA0FABC80AFB2D29233 /* Web3+SecurityToken.swift */; };
- ABF5E5F45D270B8B7CE386D4BB8E614D /* Int+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CE9AA826D53FC9A70D3BCB8AD176925 /* Int+Extension.swift */; };
- ABFCD83A1743C4D4DEE1368DA36D550B /* group_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A5F8713A242596D48EFFF4A5C44BFD70 /* group_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- AC4E061C6A2D21210122B471D8BCC81E /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4120625976C6424B096CBFCC24C77589 /* Random.swift */; };
- AC5722A74ED6CE50DCD7868AC4ED9A92 /* Promise+Web3+Eth+GetBlockByNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06DEE2DA2FD900252C7DC799DB2ABBE8 /* Promise+Web3+Eth+GetBlockByNumber.swift */; };
- AC7DBF3AD44B3E7644068E6F09F9EBF2 /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F95F338A7B5AD9A45B80CF23B2D3B4 /* BigUInt.swift */; };
- AD8D12B518E2A6BC7AEF814F514C7B86 /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21D6BFB29EFA0C581F71B1A7D1A63C2E /* ENSResolver.swift */; };
- ADE26A6317E68C1CB7FC86D68B4EB8BF /* RandomBytesSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3CFA7C4BCDE06E3C5B6C39A62864682 /* RandomBytesSequence.swift */; };
- AE242F808DE761641CF108E8844745D6 /* Cipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3FF29C9171EE87DD518594F145212C4 /* Cipher.swift */; };
- AEF0C55E3D29FBF1D80712BF19FAFF55 /* secp256k1.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D3144A2A8D762BD66949FE1713C6091 /* secp256k1.h */; settings = {ATTRIBUTES = (Public, ); }; };
- AF201248A122D45AEAB0FD7DE5553B0A /* scalar_8x32.h in Headers */ = {isa = PBXBuildFile; fileRef = 52E51EB87A19E313FB31D409083F10EA /* scalar_8x32.h */; settings = {ATTRIBUTES = (Project, ); }; };
- AF4B96BEC0B58EAF049401E4A7A22925 /* Web3+ERC1410.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05CEAE45B0C259423E295C2196DD2AFD /* Web3+ERC1410.swift */; };
- AFDF0E1B045DEB88C79AF2FB7B7B8E5A /* NSRegularExpressionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7DB1F478475069271B0B9A20B70652 /* NSRegularExpressionExtension.swift */; };
- B0B42BD42CFEB804A8D379E8ABF6EE86 /* NativeTypesEncoding+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94929D336C971AF0F7E0D1B03C000050 /* NativeTypesEncoding+Extensions.swift */; };
- B126804FD9555424F8160E247681AF8B /* torusNodePub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A929691BF163CA54EB3150CD55CD482 /* torusNodePub.swift */; };
- B15E0CD8A2E6D29E9849F092CD078773 /* GCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0215B65E045440078CEC250E0E95ACA3 /* GCM.swift */; };
- B1ED02A101C462F4F0FB9BF212CA2C7E /* ContractProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977672352E317B30A3F561EBE8D9D67E /* ContractProtocol.swift */; };
- B225A08E3FD81CD5ADA628598A92D219 /* ECDecryptable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF3A2A41C1E5AC401F07121E08311E /* ECDecryptable.swift */; };
- B32B73B41E4F29851E92AC39D6A23178 /* ecmult_const_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A2BAC61B8CA0F9845A76682993B23236 /* ecmult_const_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- B3842BBE7752AB21076EBD0E3DE46FF3 /* SECP256k1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 579D410D951D0E7FCCED612BD108CB27 /* SECP256k1.swift */; };
- B4A6283FDFA04E3A7B6FD0C13B6FEF32 /* Starscream-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 77B04B913B0F27190DE62258EAB312D7 /* Starscream-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B4E0F6805D68577613B95A18651FC167 /* Blowfish.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF5C5880B4FBEB4667111DEAA9A5E402 /* Blowfish.swift */; };
- B593B56495A204E756BAA753BA2D6E9C /* Deprecations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EF26D7911DEFEB5AC8B83716A9F9193 /* Deprecations.swift */; };
- B5D61DB0AF51657AFA8906EE352CB205 /* BIP32KeystoreJSONStructure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A67FCD013AF77B64C93DCD3C31A1402 /* BIP32KeystoreJSONStructure.swift */; };
- B5D9755482426166F42CF2A1E54DAADE /* field_5x52_int128_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FD712F593C096197EBDDDF72CC4AB6C /* field_5x52_int128_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- B665E60C13544B49E45B0F42FCE0A171 /* ecmult_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 67D60B8DBE3DA0FA485112E521AC1928 /* ecmult_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- B6B869E029E03DC78B140C459A05CEC8 /* EthereumFilterEncodingExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 682556E5FE764090C095698217BC7244 /* EthereumFilterEncodingExtensions.swift */; };
- B7188C573B2664712B1F929321DD4118 /* ECSignature.swift in Sources */ = {isa = PBXBuildFile; fileRef = F828B776C56233212A597632D81BFE03 /* ECSignature.swift */; };
- B758241FBF6592EFBE6283378D16F9FD /* NSObject+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E8EE69A2C8A897076BB9F424056221 /* NSObject+Promise.swift */; };
- B7F3FB9F7F01AABE77BE4ACEC3DC9918 /* Web3+Protocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67C2FC0B40C659C8877B9FB74CAB1026 /* Web3+Protocols.swift */; };
- B8A48AC2A36F695F42B2038E61BFC130 /* IBAN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27DDCD0ACB9B1C46FB9046E8DCEC72AD /* IBAN.swift */; };
- BA99EFAE1C88ADAAE63DAEB63DBF58C2 /* secp256k1_main.h in Headers */ = {isa = PBXBuildFile; fileRef = F8A24C452E2CF6D968555D2A840D9901 /* secp256k1_main.h */; settings = {ATTRIBUTES = (Project, ); }; };
- BAA052C302D45F8DAB72606E997CAD69 /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00F1D2F6B53DD8FDC9B8CAC2EA752C9 /* Subtraction.swift */; };
- BBDD3B4EF33643C3FC0A1EB7583193A2 /* Web3+Eth+Websocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 791FCA02E04DDC36B34C460746763571 /* Web3+Eth+Websocket.swift */; };
- BD5D10FE6017CEAD196B612DEE8EF991 /* ETHRegistrarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72E5FCEEBAF0C8EF42C790D1BCA28B1D /* ETHRegistrarController.swift */; };
- BE29AFA73FEDAFA471F35F8AB1C3EA99 /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F43A27DD698829BE0BA5434F28B74C8 /* Shifts.swift */; };
- BF813052745906E5942A30D005CBA23E /* Torus-utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C609B1B1531FC439B71DE72B523CF964 /* Torus-utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C02D9FEB295BDA1359D2F52C80F8E75A /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7328E7431FF2154C1D4DCC39059D3484 /* WebSocket.swift */; };
- C138FACCB027B81AE55814AA990543D5 /* OFB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A25FA3AF6871977BBC2C903589B2D6E /* OFB.swift */; };
- C157761ADD7D9EF9675264EE29A03AA4 /* ECSignable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C7DFD5A7C086D4A0020C44E57044B57 /* ECSignable.swift */; };
- C17E552920AF110E9DB7AB635C65A12D /* Scrypt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE6B54124DD1147802E544E2782DC69 /* Scrypt.swift */; };
- C2A05A712B32CAF621B4C3E039E41304 /* Web3+ST20.swift in Sources */ = {isa = PBXBuildFile; fileRef = D45E3F0EC415C900041316BDC7C8C6FA /* Web3+ST20.swift */; };
- C426E30A28E2545BCA2824DBCF90816F /* NSNotificationCenter+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = D070642EE7539AE4A265E815ED093540 /* NSNotificationCenter+AnyPromise.m */; };
- C4D2038554E2D2ACF9269CA18375956A /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47FF7DCB7DF23AB1573FB36DDE3DFF63 /* Array+Extension.swift */; };
- C52C19259CF788673268916ACCCDE92C /* EthereumKeystoreV3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C19D4B520B352EBF8C9900563FF0828 /* EthereumKeystoreV3.swift */; };
- C5EF8FBC11CA9E66100F6489B57E35A6 /* LogEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4642A5B5B69FA80611C1B83B3A370C2B /* LogEvent.swift */; };
- C63B18697014DB8313534E8367F3B760 /* scalar_4x64.h in Headers */ = {isa = PBXBuildFile; fileRef = 63E22DBC4B57A4D54C860356FA85FAE1 /* scalar_4x64.h */; settings = {ATTRIBUTES = (Project, ); }; };
- C680444C2E2E5076D981C2A8452AC067 /* CFB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68961B32E3BBDA68A11207D4965FEDD5 /* CFB.swift */; };
- C7ECF714064C1188A6D042C6ACFD9504 /* dispatch_promise.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B346EE9577056DC2FFE427803CBF54A /* dispatch_promise.m */; };
- C829EE08BBA51E4F85528D4D6B4D8DEB /* CTR.swift in Sources */ = {isa = PBXBuildFile; fileRef = D931140D35A92978FB76D8F1B77A0FEE /* CTR.swift */; };
- C85D324F85954EF954B59F38D4ADED45 /* web3swift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B84C4B65C0160FE71C909A4487DBDB9 /* web3swift.framework */; };
- C9A7A7C9193B264BC6A522828C65D306 /* Web3+Methods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8605BC4B4B84240C371B6C80B6525D9A /* Web3+Methods.swift */; };
- CA4013B75EB0930668A0EA75FF8E9390 /* CryptoExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30097934331E666533A790B38DA875FD /* CryptoExtensions.swift */; };
- CA5F0FF46E700A877E1ED5C9EF6BDECB /* BlockCipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5549C4D7BD083E8650E70BC962F65707 /* BlockCipher.swift */; };
- CAE71367149ABE43FD1EBD6C7CD1E3C7 /* num_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 7119134CDFDB6FFCE067AFEA3EB08739 /* num_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- CAF85E8FB862891DAC846E7DD27A97BD /* Web3+Eventloop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A27618272BD41FC3D80F31D74C734E1 /* Web3+Eventloop.swift */; };
- CB7FC47183DEB792549D0CA3673B5727 /* field_10x26_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 14EFE0E4082A8D1232A36B5037E83839 /* field_10x26_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- CC03E31F122F91A26DD22BEEF813D779 /* UInt128.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE68C906BAC2DBCDD8E26CE3BF99B3E /* UInt128.swift */; };
- D09A0121FBC915856921C3F28041E830 /* Web3+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22ACCA0229F000DEB39BE6F6FB97C3B0 /* Web3+Constants.swift */; };
- D0A16985D2DAB1D05FCC35A8AF8B40C6 /* BloomFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083D9E6BE5B0C8300A7EBA5AC38D1217 /* BloomFilter.swift */; };
- D1073931E320D32C327A7634872EA3F4 /* Pods-TestApplication-TestApplicationTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CA38481A10469E72124DD89F5DC85BDD /* Pods-TestApplication-TestApplicationTests-dummy.m */; };
- D11F5372419AF8AFCE3614A17BB6C5FC /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B2F433D2DEF799E9B3615B8F5A446DC /* CoreImage.framework */; };
- D144D26E6CF2E17CCC9D8E591E4344B8 /* CryptoExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F7377E1F4C420B0ABB0617809D2A635 /* CryptoExtensions.swift */; };
- D2D35E13A4E699663D726FC92D193559 /* Base58.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825FD93C259ABFE4CE81A42D0CF8A491 /* Base58.swift */; };
- D3E263F7E7DE0A0FA729195984ADF18D /* ComparisonExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E815CFCF235065A6DC029F64D02EBD88 /* ComparisonExtensions.swift */; };
- D42040E20D6D33765120E82B70034A98 /* ABI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63A6563852A89D72E9BC2B64EA3DC00B /* ABI.swift */; };
- D48A4410A7C8CE6B6A0787A0F4999DE5 /* Multiplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 727D895DFE7BCB6BE6FD90CFE95FCFB9 /* Multiplication.swift */; };
- D4C52546E7DEE38CEE04F2B6D61BB9E2 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = 2756F5808D215C0CC6FFB374FBAF4C14 /* fwd.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D56806BDCEFC05AB77B77796A8E10127 /* RIPEMD160+StackOveflow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BC6A9D58F693F61465A4F9607625BC3 /* RIPEMD160+StackOveflow.swift */; };
- D7139F0222B9943463388677945DC5EF /* Web3+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9B6E445C3E161EA09CFAA13DA9D3FBE /* Web3+Utils.swift */; };
- D820172C124F8B10D0C72B31F1819FDC /* String+FoundationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA1132FC0B212081A3F75E4982F91BD4 /* String+FoundationExtension.swift */; };
- D8C90AFD1D666460C3FE007172ED052E /* CompactMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58263F6DCC4C60CEFE12071024D1480E /* CompactMap.swift */; };
- D982F741C72EFC2A90BC409821B65875 /* Promise+Web3+Contract+GetIndexedEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956F81096D6676B81D2706AC53EE6C88 /* Promise+Web3+Contract+GetIndexedEvents.swift */; };
- DA5830F8370A4DCA48A3EB4EA3DD2E9E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2D36960128F07DD0E145340CA595DE9 /* Foundation.framework */; };
- DBCA1194814B520897C3D81C016F51DB /* BlockDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38B1562A1C4E0C4C8997FF1DF0B5B1F6 /* BlockDecryptor.swift */; };
- DBE9A6D9CB82D8605F4C25B9426B1557 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74883616FF3E70BB50D51C486927EEB4 /* Codable.swift */; };
- DBEF0F49E57B3321CC7067EEF33AB582 /* NSNotificationCenter+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 42E257E0B3BA9F49D5CFD076183E0088 /* NSNotificationCenter+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DC0E7B10ABDBAB6F44D1E4E7E59567C2 /* TransactionSigner.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8B282EB191F2AFD2CA5007D677F4E2E /* TransactionSigner.swift */; };
- DD7CAA2463A742FC740431ED674892FD /* ChaCha20.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681B01A23A52F6323AA146FDFD512CDC /* ChaCha20.swift */; };
- E0067342787B93C845546321EF1DC7D8 /* AES.Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EE16A3A35DD7F6AEFB5ACB9E77E39EF /* AES.Cryptors.swift */; };
- E0645970FFD52729D0BEEBFAA22D3E5F /* Web3+Wallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82B9F080F66A45C18545F4CE165B75B3 /* Web3+Wallet.swift */; };
- E0B84D75D0F7E7EA2E905C05774CC361 /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22C125FFA9E26C76C4D9DC15EAC00E4E /* Integer Conversion.swift */; };
- E1028DFCC61DFEBD3CEC5226D5FD39C7 /* fetchNodeDetails+promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = A463AFEC151B0A79A8D999F06E295E28 /* fetchNodeDetails+promise.swift */; };
- E1D02A3F3656EA9457FA0CAFCE828AE3 /* basic-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CC942D6E6D3A714B8DDDD046DDFDF35 /* basic-config.h */; settings = {ATTRIBUTES = (Project, ); }; };
- E27D0DDC45C054DEC87FD35F64F6B0C8 /* BigUInt+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 707B043DA45129D364DB8A51A1C87827 /* BigUInt+Extensions.swift */; };
- E3183B3DF00045F5D18500AF7227E1B2 /* Pods-TestApplication-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9480EC5419F2059D80BD085B2DBF2323 /* Pods-TestApplication-dummy.m */; };
- E33691163B86941359483ED2BD23B9BA /* Promise+Web3+Eth+GetAccounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54DF5A10461493C6C1B0291207E68E6C /* Promise+Web3+Eth+GetAccounts.swift */; };
- E38C676F4D6E9470A2E9E9E27D83A0F6 /* scalar_8x32_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 708B2156D15CB65FAC88A5E3C8991128 /* scalar_8x32_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
- E425FBEC27FF20E38E5F71856145D72C /* UIViewController+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DFB832C74BA084B2E6A89BC11DE35B0 /* UIViewController+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E567639BA2CA132D1849A951734DBEC7 /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 475DDFE6F56CADA5B80291282AA683AD /* CryptoSwift.framework */; };
- E766430078A9B33B8A26F572489BA987 /* Web3+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1209AC6173BF37B43F002765E7B28C5 /* Web3+Instance.swift */; };
- E8ABBB87CFEBE721FC2D14B71A719BC2 /* String Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5C3B6A7AC518D86C22A4B694AD214F3 /* String Conversion.swift */; };
- E8E45277CA5DEF2340B9655132A71B4F /* SSLPointerTricks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53AA823B8D60807682CCB0EE04792647 /* SSLPointerTricks.swift */; };
- E93CF504980B3D653BB4530E7F98E9F6 /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = D481A77C225556184B41CAFAA9390351 /* Prime Test.swift */; };
- EA95317C04FA46F08399A9F6DFE82119 /* Blowfish+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6AC21924C3E677FB09BEB151DD1C51 /* Blowfish+Foundation.swift */; };
- EAC994EA457048CA6AA49B82C9F05DF4 /* NSURLSession+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = CFF6DE2C165D9DA6477977189A15C612 /* NSURLSession+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EB097D98D32EB6F7082B50969A4AE3FC /* Decodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B60DC531E883521C1B39045F8D20323 /* Decodable+Extensions.swift */; };
- EC1F98C6E1424F6190176058FAA43C5A /* UInt8+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42B7362D4A75B845CA2FAAD5C55DC1EC /* UInt8+Extension.swift */; };
- EC5B62A6226B17DBF639080AD0DE1A4F /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F06B575714EE84D05BC7DB278F3C3440 /* Array+Extension.swift */; };
- ED4ED80104798E648B2B82A10DA586F1 /* HMAC+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7194C20F5F6307F41ACB04513822A1B /* HMAC+Foundation.swift */; };
- EDE8E74FE874A450157D7B265D638C4D /* Promise+Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B22CF2B34924F55FFBB74236976D4CB /* Promise+Web3+TxPool.swift */; };
- EE6AFCAC2B2085BDC8D8A80E5C95270E /* Promise+Web3+Eth+EstimateGas.swift in Sources */ = {isa = PBXBuildFile; fileRef = 764CB59084B44B61621F0B033DCEEDF1 /* Promise+Web3+Eth+EstimateGas.swift */; };
- EE78130B0BC4CF60DCCF11D02918D584 /* BlueECC-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9274EAEB98D447B58D24789283EF55C7 /* BlueECC-dummy.m */; };
- EF8241DFA90BCDBB97B8C504BB80D05C /* AnyPromise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F0CE97C8519335AF1A3D458582FEFB /* AnyPromise.swift */; };
- EF9BBCE851B820D4F5DA3163BF466A38 /* Process+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42DEE93C198BC92C8AF1FA5A884121EB /* Process+Promise.swift */; };
- F0366634CCA85B5660435BE9D2CA8999 /* PublicKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C367B3AFF6E63B3B341134C4D33E0EA /* PublicKey.swift */; };
- F0C5EC2293965BF34DD0395D4285C9A2 /* Web3+ERC1155.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCACDAF57BB2D2AD581DCF6EA1071ED1 /* Web3+ERC1155.swift */; };
- F13925E2206A7647AC326ECFA6ED2856 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3A4193B72493C0A768F95EA0313D9DA /* GCD.swift */; };
- F2AF87FBC0C98F762BB2B25B65C0D41C /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB324B5FDA98DEEB8DEB64A7D3800322 /* String+Extension.swift */; };
- F3B9FF17CD827482C5FCDE987FCBA026 /* SHA1.swift in Sources */ = {isa = PBXBuildFile; fileRef = D192BAB653AA7172862FF2022661213C /* SHA1.swift */; };
- F44208FA90F7B7118E5A3CA21AB37A84 /* PKCS5.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2EB4AD20F2BB4E086102E938E3075E9 /* PKCS5.swift */; };
- F486C6F9393461F901A46A74EA694C8D /* Base58.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF5D9E691312F0477F5BA45F2723A620 /* Base58.swift */; };
- F4DB8BAA8CC2482A2F0408BB78DC5636 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3D571B46F1FDF1A16BF9FAA633534D /* Array+Extension.swift */; };
- F4EB4FFB5BFE253769101209CBD7BA13 /* ChaCha20+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6D2FE227463D79EA31D6766919BE84 /* ChaCha20+Foundation.swift */; };
- F56D6FD418D2B83024C1DEEDC2F9AA36 /* Web3+ERC1643.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57486AF066217353A9331ECC93D0169 /* Web3+ERC1643.swift */; };
- F8B1843D161804825F0BF995E7249AF0 /* ECPrivateKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D2DC4687AFA91E264A021E89D12B3A7 /* ECPrivateKey.swift */; };
- F9349FF26E205128E634AACB4BC9C79E /* Web3+ERC888.swift in Sources */ = {isa = PBXBuildFile; fileRef = 922543427FB9FA412E1CCDE3475A2702 /* Web3+ERC888.swift */; };
- FAE32D703C83F6B0ACA78E4E593A5F99 /* field_5x52.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FFC13E9854F873DBCAF8A9047F7481 /* field_5x52.h */; settings = {ATTRIBUTES = (Project, ); }; };
- FB797FAA96B41ACE7474B8ADEF8107EC /* firstly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F9E81D5E33653084E4A6F1497FDE486 /* firstly.swift */; };
- FC380F439D913681D738F1BE7B739646 /* ZeroPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6AA8FE47F978455DD1A5AFED6A40456 /* ZeroPadding.swift */; };
- FCC6289AABA29BAE4003303B39E9A85D /* Web3+Personal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37CF362BDE2028F77BC4C366ADF290B5 /* Web3+Personal.swift */; };
- FDF12428281F08B3F5F2B7DB68E3925D /* NSTask+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = C29A78D9C866977BBABD58A3B1CEC698 /* NSTask+AnyPromise.m */; };
- FE79DC521A50F96429F5E54EC0CA7CE5 /* Torus_fetchNodeDetails.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15FA51C15A6F325AEFE9E6F42B249749 /* Torus_fetchNodeDetails.framework */; };
- FED8C9BB577D35DBB6E5347B750C184C /* hang.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE33CC403FA2D99EF3BB6DE38263FC28 /* hang.swift */; };
- FF3A89D52D91DE7E1380DB74C5DEEDAE /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1AA2BE485E323AB95985680080E7240 /* String.swift */; };
- FFDA6EB578F66F558556929C4685E1E2 /* KeystoreManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70E0AF44829414E7A44F36342C11CA91 /* KeystoreManager.swift */; };
- FFF7E224F5F3094210837EC8C7FE4960 /* BigInt-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 59966C5AD2CAF02007D1D4F1BF4174BB /* BigInt-dummy.m */; };
+ 0049EB7DC74BEFCDC5740A4FFBE89170 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = E377898FCE58F59C3D49C9FA685673DC /* Data+Extension.swift */; };
+ 00C6A45F25B7C9567ABD4B6CEBB8F3A0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5713F1A53A98DF197DCFA5617862A657 /* Utils.swift */; };
+ 025EED6A44FE486DD84DA9D38AC02AA0 /* Thenable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A36FD6F5ABA3597CEA4DDF16D3AA76D /* Thenable.swift */; };
+ 029A7CC18F34CE4C1CD91B443EF02C06 /* scalar_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 247715129B40E6C1D4C5F3B4E4C3E857 /* scalar_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 03F73F13A712A82D50609ADDD0A2B315 /* Web3+JSONRPC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0071B4B9CA0DDD402F7F9E4D76EC7BC7 /* Web3+JSONRPC.swift */; };
+ 03FDEB98A1F8EA9017863C96DE5900AC /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B17C15BCCA00B9E812FCDCD49E3C2E /* CoreImage.framework */; };
+ 04C4B5D00750E2E4DFD4C4C7CC47283A /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F2A61CB10844D503451E920C6B5746E /* Bitwise Ops.swift */; };
+ 04C83E4AC70790D4E1263DB7DE2A2A98 /* EthereumTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131E97EC1F80233BBBEEA152CED2375B /* EthereumTransaction.swift */; };
+ 0526AEB2FAAA1D80AC6245AB71BE994F /* BlockEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 931626D07ED948C47CDFA30F560792EF /* BlockEncryptor.swift */; };
+ 05958032576427EDBC47854025783311 /* Utils+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6E95A405B90C18A38C436F38570B6C0 /* Utils+Foundation.swift */; };
+ 05DB20F6BDF7D31571B792F4AC758322 /* Web3+Wallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F290F9E5C8E84E88496D7A5094DD301 /* Web3+Wallet.swift */; };
+ 063BBB2E97E859440E0C1653445224A7 /* Promise+Web3+Eth+GetGasPrice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378A5FD7EF699961502B1C5E0D0749EF /* Promise+Web3+Eth+GetGasPrice.swift */; };
+ 0658D619154DE5C4D471F06ABAA912F7 /* secp256k1.h in Headers */ = {isa = PBXBuildFile; fileRef = 8673A1347D912CF020D53268897316AC /* secp256k1.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 068E5963381B58D7D8CD321462F567ED /* Compression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3970226F99AFD2A6191DA974A46ADBF6 /* Compression.swift */; };
+ 0C0931623A412F51CEFCC740A7ADCC5D /* NativeTypesEncoding+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7523D93DAA4DF9851A8CCEB913C4D588 /* NativeTypesEncoding+Extensions.swift */; };
+ 0DF63A4C8FA0E53FB630F5B5429FF066 /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = F422A2419C7E4B425E5D5B10653F8F0D /* Exponentiation.swift */; };
+ 0E5DF4B4DE65F197023A69EC9DD8B60F /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = C96B62268EA206ABAA0E10EE5E9E0B34 /* hash.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 0E6F0E8337D8928B164D18FC54D6C7F9 /* Bit.swift in Sources */ = {isa = PBXBuildFile; fileRef = E40A9064F75349BACDDED1370059C533 /* Bit.swift */; };
+ 118127208E194C49B214D89342910BEB /* scalar_low.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F9E4E90B0A4D836C5E9263CBDA5D362 /* scalar_low.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 11EBB901CBF77ED7D16D0E692E8DE07A /* FetchNodeDetails.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49AD3B8C455F9118AFBF3008173879C5 /* FetchNodeDetails.framework */; };
+ 12E453E2F5939A806AFB041F5EA34A79 /* torusNodePub.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE07EAEE91411F2252AE38EFE9281866 /* torusNodePub.swift */; };
+ 134213E72D80D87A02B3B1B0FD9F59E6 /* fetchNodeDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0F44A48A73DEEC7E13EE70D84415AC2 /* fetchNodeDetails.swift */; };
+ 13A4BA994DAE26C3B22F1842D5E186BD /* Padding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04C519C969F931E051E4970F81C756FE /* Padding.swift */; };
+ 13E1438FFEE1786733A95E3FC7F686CE /* Web3+ERC1643.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F3671A673757A47810D7BE2E93A5CA5 /* Web3+ERC1643.swift */; };
+ 14CA02E4D11631E4DDE761C4757011AB /* NativeTypesEncoding+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3EE2096BF4539278418DB26E8D91E77 /* NativeTypesEncoding+Extensions.swift */; };
+ 15901C26A398A72C746D1369042356B6 /* join.m in Sources */ = {isa = PBXBuildFile; fileRef = 75F90685A4E4396C423683507A560DF5 /* join.m */; };
+ 15B7CB04C22B0509B592FE8547D47C5D /* Promise+Web3+Eth+GetBlockByHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12C414D282A1EAA64E5D29111F05EC90 /* Promise+Web3+Eth+GetBlockByHash.swift */; };
+ 1627E6FA0453D6DB472BA444F1D32AE7 /* SSLClientCertificate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D748E7EF722F6152D652D479481FC0 /* SSLClientCertificate.swift */; };
+ 16D30C7AA0C024EE016919D8F11BF3B5 /* Torus-utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F5DD464C9D6D787E18B398D16875A327 /* Torus-utils-dummy.m */; };
+ 16F71F20D31B7EEC6A60DB14135AB7A9 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C566C5AA3E8548DEAAC0B769C093F4B3 /* Comparable.swift */; };
+ 172BA39C44D44DDE0603E2761D4E5185 /* Web3+Protocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 720ACA72088A80964CF63A2327C103F8 /* Web3+Protocols.swift */; };
+ 1805366B980A934DC81745E7BF54091E /* Web3+Eth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 297DC18AAB993D7DCD9F5F7BA2ACA557 /* Web3+Eth.swift */; };
+ 188251FB63AB1D4022290F5DED58CE13 /* secp256k1-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 377E9A7CE9DF99AA0319505346BBAD1D /* secp256k1-config.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 18B046E69D8A6D6982DA8BFE4A8C7F6F /* Torus-utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C609B1B1531FC439B71DE72B523CF964 /* Torus-utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 18DF6A317CCB7F5BEE8D7AF5D79AEB38 /* PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47982AF68D00A817208CFF6D24882F02 /* PromiseKit-dummy.m */; };
+ 1B8D413D1080C530DA7420D053AB6F7A /* Encodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77B7F94F5ADE579AFC40FB2F2C179F2C /* Encodable+Extensions.swift */; };
+ 1C482705924CA6C3DF716EC60624900B /* Generics.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC612FC4B7C4EB4E4DB8B5E932C5DF54 /* Generics.swift */; };
+ 1C53F842BF95C8FC79D67CFE07E47F3F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 1C5D3593B983B9369EFCFDE7D4DE0D19 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36906EEAA4C1CCFB8309B5E6525AB7D7 /* Configuration.swift */; };
+ 1CBACCC47A01F728B5930322DFF72FAD /* Promise+Web3+Eth+SendRawTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F11C83DFE313CBEF2438110EC21BA8 /* Promise+Web3+Eth+SendRawTransaction.swift */; };
+ 1D1ADFD0DE383F380D640245F13929DD /* Web3+InfuraProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18BE1689AEEBBC10C162D133E2FB3041 /* Web3+InfuraProviders.swift */; };
+ 1DA1088EBF4B31D8FAB1BC9C68DC504A /* ABIEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B3B10C15F9BB97836857280BA865F7 /* ABIEncoding.swift */; };
+ 1E52FE3EDD590D80C3492326E1E26AE3 /* Web3+ERC888.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1412C225A0C2C4C81E048F5CA63BC6B /* Web3+ERC888.swift */; };
+ 1E6C33DE401D9AEFE660851A3E3394E6 /* NoPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DCEBA75FE8B2457CDF75D94DF52033F /* NoPadding.swift */; };
+ 1F403191CF12B4A743BB91C31CEDB413 /* util.h in Headers */ = {isa = PBXBuildFile; fileRef = 0877E723EB3AA27A7D21AA42ACD0878F /* util.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 208EDAA1D258CAA2BD08E462359D4FFF /* when.m in Sources */ = {isa = PBXBuildFile; fileRef = 516EB54A9EB735209B08B5A4F6D5407C /* when.m */; };
+ 209C4C8BE72F7339855DE895E45400C1 /* Web3+Eth+Websocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2DB67DD3A7459D6650DE9920CA7B85F /* Web3+Eth+Websocket.swift */; };
+ 20EC15B2D04F3D3A732CB9E2C0C4D095 /* Web3+ERC1410.swift in Sources */ = {isa = PBXBuildFile; fileRef = B79C885942769BAEBEC3F911F825AE75 /* Web3+ERC1410.swift */; };
+ 21A7A8B5D8F2F97DCEFDA93A527E292B /* field_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 661CB68E789A91D68BBB0720F432F28A /* field_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 2228B8549F0F5445D1B2D346E12A20CD /* Floating Point Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B323D665D8B076A9C9DB0F55C1FE39 /* Floating Point Conversion.swift */; };
+ 22ACB33FC06FBE7D21727BB708773FB2 /* scalar_4x64.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFDC99531CCC2C97473968B6EEF69D6 /* scalar_4x64.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 294C60E5E562CF3C2917335BDD910F42 /* Checksum.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4FA2E1F43D0A77E276AF618AA7ACCBD /* Checksum.swift */; };
+ 294D61E8A195B6A1F6AEDCF0F73599A5 /* Starscream-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5CEB9B7EE6EA40C3676BEFD2753DD /* Starscream-dummy.m */; };
+ 29643F7A000899634C9174BCB8D1A1AB /* NSNotificationCenter+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB5A4E88A7F7F8AC12833A4519E46818 /* NSNotificationCenter+Promise.swift */; };
+ 2A06A55349E71D7BC5FE4C0475EB03FA /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = C332C981A8A0796D27A2A0338C8BB138 /* Error.swift */; };
+ 2A96C7589A9B1C2FDC260ADB68766585 /* ContractProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BAF01307087E72BEA516AC7221EFBCF /* ContractProtocol.swift */; };
+ 2BAB6849DCBD578593DDBF2A332A2077 /* scalar_8x32_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B57E11568A6E0132B3678A3DC164151 /* scalar_8x32_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 2C2D8E2B60EF535E64C5CCDE912FE6D3 /* SECP256k1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4840269C6FAC1110501067A6F371BF30 /* SECP256k1.swift */; };
+ 2CF0DB74D5ECBF4829E2CE4A087F3B0C /* group.h in Headers */ = {isa = PBXBuildFile; fileRef = 735B8559AE6ED677A4E2830494784F35 /* group.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 2DD9959CD5493A978BCB3B3CC0D2EB49 /* ECB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE369068B749EE235ED5F5AA1F90061 /* ECB.swift */; };
+ 2E193CC4988E5CE3EBC32BBCD417EC6B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 2E938A3C33EE9130C959EFA811DFB2EE /* Rabbit+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 151955E45CC7160931371F2E03DFB4F3 /* Rabbit+Foundation.swift */; };
+ 2F8F9344997A8EE2CD1D65155CBEA5E4 /* fetchNodeDetails+promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EC41AE1F293D0C9A149E95AD3B5C0EF /* fetchNodeDetails+promise.swift */; };
+ 2FDD3DAC4E9D0C03A16D3F838A8E15F5 /* SHA2.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6CBE9B1ED26B7BFDACA2950AE8D647D /* SHA2.swift */; };
+ 301B5F7669D2DC7E46384FBAC71B7C19 /* hang.m in Sources */ = {isa = PBXBuildFile; fileRef = ED54D8F2DEE6E28EE9C012F37B13C465 /* hang.m */; };
+ 31FE45129EFC3CCCDF76CDAD4CBCCF87 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47FF7DCB7DF23AB1573FB36DDE3DFF63 /* Array+Extension.swift */; };
+ 3208DDEB9CAC16AC7D2C7E9A7F057DC1 /* NSURLSession+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75AE29519EE0C415726EA6C12B76C7F6 /* NSURLSession+Promise.swift */; };
+ 3378C1EEFC149B899433AF30F147CE32 /* after.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D29C9C138595DA93E0F1688B90FDCF3 /* after.swift */; };
+ 33B79E4BFF8D25E1A705E2C469BBCA9B /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 99862F932B6F210EC2E908DFC556357C /* PromiseKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 33E4F08A401D0EFF1A9DCF7B220AB2A1 /* Web3+ERC1594.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BE4746B567116E86B99E27D271BD0A /* Web3+ERC1594.swift */; };
+ 34A10C0FEFBBEDC7F4446BA898561345 /* web3swift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D7CCBE6C4312CBF426909D6CA61D794D /* web3swift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 355FC56172B17DF7251F237B07E90151 /* Promise+Web3+Eth+GetBlockByNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20385825730E505A29941B90E48CFE4C /* Promise+Web3+Eth+GetBlockByNumber.swift */; };
+ 356D85AE05521FA0C0530200FBA3853E /* ecmult_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BBF1B77CE728CFD8CF49FF449A40D42 /* ecmult_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 3607067F46CCABE732B2E0078149F8B2 /* Array+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DB56C647F36920C4995C519D4AF200 /* Array+Foundation.swift */; };
+ 37018D3DC554A00E9B3E306A28296316 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2B439FABFEA4E6093FFD0E9EB22E3FD /* Error.swift */; };
+ 39137B0D7B8FB5BF554BDE012BD85061 /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4890FE4BE03F677972A4CCB72DFC4196 /* Data Conversion.swift */; };
+ 3AAE347ADDFEFAC7DDECBC744D1BD6AC /* NSTask+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 418FB206F6ED149EAC1AEF0DFE3A788A /* NSTask+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3AB755C7D90794EEBA021D70FDE33C64 /* eckey_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = FD10892D11E93B6294A8EDE9324F472C /* eckey_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 3B9A2601095A9A72843D76CA44B37782 /* Division.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF11167B2455A32EEAD52D21BBA35B64 /* Division.swift */; };
+ 3D42EEB955442E43D945BEA5B66C59F1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 3E3FE29D83B6DB4B229CB38CCB4E1C86 /* CBCMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C6131D47614EFD53C98FD54797B4C4A /* CBCMAC.swift */; };
+ 3EEDEF5300B21540F1F36CD42E4864BC /* EthereumContract.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1923971B98159149BBCB95EF6928C895 /* EthereumContract.swift */; };
+ 3F13329E84C53877C53E8F85D9120290 /* Web3+ERC1633.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FE4E945EC573CD37694F57F321D121D /* Web3+ERC1633.swift */; };
+ 4001C9044CAB3D5BD960F0B392314E55 /* Pods-TestApplication-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9480EC5419F2059D80BD085B2DBF2323 /* Pods-TestApplication-dummy.m */; };
+ 420C87B493B70746472899A82479242F /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46DA9A29620E8DDE37A6116268E9B38A /* String+Extension.swift */; };
+ 422A0D59348BD4F30ED57A4150296ACB /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20C5E44269732327D2131A3035738322 /* Array+Extension.swift */; };
+ 42495A8941D9B42B07F032390AA2389F /* UIViewPropertyAnimator+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDFAA2898A8DDFCE7CBF1D6404A0CB40 /* UIViewPropertyAnimator+Promise.swift */; };
+ 42BF40667AD381D8EB34CF05C9243F78 /* RIPEMD160+StackOveflow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C581A8E1E5857DB457F155257532935A /* RIPEMD160+StackOveflow.swift */; };
+ 432C42F5F8339D883C5596F25A7A4377 /* Pods-TestApplication-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F35ACAD54CA4C8BA1628EEC5C9C803A /* Pods-TestApplication-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 4362503059C68DFCDCB8621F4FD9E325 /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4CB54B3D967131C5961E61BF312BCE7 /* Square Root.swift */; };
+ 436F8BE51D5F6BB39AFD9CDD871148A5 /* ecmult_const.h in Headers */ = {isa = PBXBuildFile; fileRef = 29293AE7DA5A7E32E6F6BF78F77D83C1 /* ecmult_const.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 438DAC7813FDB677252FB52A8FA3E708 /* Updatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28FECDFD564C2AC043A4F3423246F6FA /* Updatable.swift */; };
+ 439CF4658A6537FA91A1DBD7F970E97B /* SECP256k1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78FCDD9F28E7952E65EE0ECF673BFCD8 /* SECP256k1.swift */; };
+ 43F6C555EF9E3E83526105E411E94679 /* KeystoreManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2C7DBE5276FE10DFA71FF278CAC512A /* KeystoreManager.swift */; };
+ 4418281931C4D1176F2C541CDD770F14 /* Catchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F3760BCD4DA47B0801E2E92EBBF0CE /* Catchable.swift */; };
+ 448506F29495E3B3BAB56D093D681C1A /* Authenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CE427F7624AA8581A3C0FB5B40A23B8 /* Authenticator.swift */; };
+ 4513DB54C2A62C0A1B5117AB2B9D4B58 /* abi.json in Sources */ = {isa = PBXBuildFile; fileRef = 5D27C0FCC4D9FF36D935F9F6735DF777 /* abi.json */; };
+ 45746D692A8E7F09C0EED2675231EF41 /* StreamEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9706FBE3AED47CFE4BB968381BC7F5EA /* StreamEncryptor.swift */; };
+ 46C4120B8C66DBCBEEC55D09F043D618 /* race.m in Sources */ = {isa = PBXBuildFile; fileRef = 798A59187454779CC39E71EFE076A2D7 /* race.m */; };
+ 4837BDF1069E0D98D9027137D8B9C872 /* Web3+HttpProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 941391692500E58F1DA9744C9723E83D /* Web3+HttpProvider.swift */; };
+ 485BB236DBDF4AAF45C4BA8C1BD47BAC /* Web3+ERC1376.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F1E0D8E17D2799C927C210E1BB1F69A /* Web3+ERC1376.swift */; };
+ 48A9FC2654E5476B79C73C4243BB9507 /* BIP39+WordLists.swift in Sources */ = {isa = PBXBuildFile; fileRef = 913B37F36F25C962E5BF58138633E323 /* BIP39+WordLists.swift */; };
+ 49696DF6233801BF2D0F0BE214E56304 /* SecureBytes.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1CEE7FAC0C9C4E135669D452836095 /* SecureBytes.swift */; };
+ 4981C37D541CDA8BCB7DE77E6607AC50 /* after.m in Sources */ = {isa = PBXBuildFile; fileRef = FEC7FDBE619C8CBFB88E1E6BEA2A1EF8 /* after.m */; };
+ 49B62D6D8C03E61B2E20CBA8A41EBE1E /* EthereumAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D3D9A6B96F0D5A9E71BE766DD2B7C75 /* EthereumAddress.swift */; };
+ 49C8C4DFD859391ED9CB7EBC50DDBBD1 /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 826B94AFDB4CD470E86EB72C0265E1A6 /* MD5.swift */; };
+ 4A613C22671DE0E90BC4F1B70CB3B479 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 4A8B21596204A43258F4EC69A7AEC66E /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86CE834922CAFE1E04A9EA7126CFF5D6 /* Hashable.swift */; };
+ 4BAEA081FF4032BC619CF01C889EBC06 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB324B5FDA98DEEB8DEB64A7D3800322 /* String+Extension.swift */; };
+ 4CC1869600E147931105561D03377585 /* Promise+Web3+Eth+SendTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5B758DA7CB70E29855D6676AD3B243F /* Promise+Web3+Eth+SendTransaction.swift */; };
+ 4CC49D8FD2EB8F87B872DE0A09FD6C3F /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A866FEF44DAA52BA4EDF371E64C68DA /* ENSResolver.swift */; };
+ 4D63B2F48E2A1F63585459BC620F273C /* ABIParameterTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9E60B12A0CDCF6D49599D841C72F74B /* ABIParameterTypes.swift */; };
+ 4D65C782220C5E27BF8A3B61EBBDAB3E /* Guarantee.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA8CE035F3F130019714176C76B44BAA /* Guarantee.swift */; };
+ 4D8FCBDF48198F1385A3BE1A10E4E886 /* Web3+ERC1644.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17C04A3E750A7380B3BB9E80D8631895 /* Web3+ERC1644.swift */; };
+ 4EC7BD8654B3587F1F725E812C9D828C /* race.swift in Sources */ = {isa = PBXBuildFile; fileRef = E48545E93CD1545AF2978ACA040FC1CA /* race.swift */; };
+ 4ECDA8E4973B934DF663A9BAF9221F86 /* ecdh_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 4193D7FDE5D8D92188F365EA6442ACBF /* ecdh_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 51812B9531F31499DDFED65C5D2D023B /* ABIParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9BB01D83A502C72B61AE7B82C54542A /* ABIParsing.swift */; };
+ 52F57EB35132E86D75FE9443258EFDBF /* UIView+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 08EFA7DF0E5D16B3993B0D9578C23E3A /* UIView+AnyPromise.m */; };
+ 5300EB86348ED2DD35A9339104F21842 /* CBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D61C896261C4B47228AABF8CCD7256D /* CBC.swift */; };
+ 5413369DE05FB21A5208A9552A81F4CA /* Web3+ReadingTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 707A7039661D0432C2AE23CFD4506B46 /* Web3+ReadingTransaction.swift */; };
+ 54915095022C712ECBDBA7CFA639775A /* Pods-TestApplication-TestApplicationTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CEC31D6A49140A8533DE7811B519DB98 /* Pods-TestApplication-TestApplicationTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 54BDD3BC1B92330FEF7F64FA1660BB13 /* AES.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88A85235F06553A008F2B393ACE25096 /* AES.swift */; };
+ 56BE9F75457D1CCE0E8298427E733D7D /* secp256k1.c in Sources */ = {isa = PBXBuildFile; fileRef = 8F22C6C4039354E4BBA30C80C4B66534 /* secp256k1.c */; };
+ 56D8783CBF33646ECBF610FCC8EFC43E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D46EFB110C7963B60DC1863400738DE0 /* UIKit.framework */; };
+ 577818023493C85F80DBFCF9D6DE00EA /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AB59500D493EA8832763BC4A8B999C1 /* Dictionary+Extension.swift */; };
+ 578F1B5EC13C8F38C6F146523E303D99 /* field_5x52.h in Headers */ = {isa = PBXBuildFile; fileRef = 78E5C370C981CA6FA5A433F83582C547 /* field_5x52.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 5802BD2A7E671D3015BE4E98C13D10CB /* NSURLSession+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = CE102B72B60B10D0CCA17C9791E42FDE /* NSURLSession+AnyPromise.m */; };
+ 58AD203AF555F9B8416F7F9B4C7DA435 /* Rabbit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79B0E90A570AAF03C24160E7C16E8CC2 /* Rabbit.swift */; };
+ 59AA176600E91A56BC244B381305060B /* UIView+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 80DED8FF2D166DED089ABA84ADE221B4 /* UIView+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 59B82F17806AFF9DD6581E6E381B1696 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B50E3C30AEA0902D3773C4FEEEAE4731 /* Extensions.swift */; };
+ 59CB2BC19644CCDCE0A6B59528348FD1 /* UInt32+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F2546CC6EBB4A386098CBE7253830DF /* UInt32+Extension.swift */; };
+ 5B8A5FDFCDA736C6929320348B66149D /* CMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 287B8E54712602BFB3694D822EA03DB7 /* CMAC.swift */; };
+ 5BF4D89C267437617DB8791492E4650C /* num_gmp_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 027E70B47BCC0153B713FAB202E2487A /* num_gmp_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 5C96583D2FDA619ACE8F41816AF9ED6A /* ecdsa.h in Headers */ = {isa = PBXBuildFile; fileRef = 452B84AB1A45BC321F24CACE0CBC1833 /* ecdsa.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 5CEFD4F8821A3A1BD6C78FFCBCC98DA4 /* AES+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CFDD5869408C8D88CC8981B71D2EFBA /* AES+Foundation.swift */; };
+ 5D2D358E754D92564B259BBACFBA8271 /* PMKFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F3ABFBC4237CCC2022F62EB292FD83D /* PMKFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5E2574B7162EED00A81237F56CDC0BE4 /* BigInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5931D868F4B85B6020C4EA55F14B2FAF /* BigInt.swift */; };
+ 5E5EBD7039DC8763BFB20616B2AFE5F6 /* CryptoSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA63948F0FD9F42947C766A8237F374 /* CryptoSwift-dummy.m */; };
+ 5F7D7860E942ADC38C7A12FCE1BC4E40 /* CryptoExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F7377E1F4C420B0ABB0617809D2A635 /* CryptoExtensions.swift */; };
+ 5FDAD3F1739595982080BE2DD789C697 /* CipherModeWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC4B5E503790C51B7FE6755CC647CEE3 /* CipherModeWorker.swift */; };
+ 6002AD14210CBE9C34EB848031CFD7E6 /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A331E88415E2CDEAED4B22A95AE7D89 /* Addition.swift */; };
+ 60E2A8D9F764A622D9A574574ADDD767 /* Web3+Contract.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47E2165BF4CCAE8E47936910362822C /* Web3+Contract.swift */; };
+ 60F874ED0F6234A4417CAFDE554D088D /* PMKUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B8D4D8B47749AEFB144C14E5CFD3516A /* PMKUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 61330480364F92D57CB181E890C8896B /* Collection+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21E9AEC48FC4EFC3138BD2AFDAA2CFCF /* Collection+Extension.swift */; };
+ 636A216DCBEBED81DA2DB1A12C7639E0 /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 276A801B898DFAC2E46744B7FB301D0A /* Operators.swift */; };
+ 639C6438CD01AE7A36FE1E551F2E7A8F /* CryptoSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 10BDBA6B4C8219100AB6E894945F2CA8 /* CryptoSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 63AA286BA7911DBAC14B329BC7DB985D /* Web3+BrowserFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9ACBFB530B52ECD81FCE69D18CD7EF5B /* Web3+BrowserFunctions.swift */; };
+ 63B8FF342ADDE2244906A779994C7D0F /* NameHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481750D584F13F093DB9255BA800EC67 /* NameHash.swift */; };
+ 63E79E74FFD58B0F2CF6BEE37D85DA6D /* Promise+Web3+Eth+GetBalance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED59DC0B2832C20331BAB4FCF75CC0 /* Promise+Web3+Eth+GetBalance.swift */; };
+ 65DE571B0A682062FD35C82439779040 /* scalar_low_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 764D3252D99C42C89100360733DE0928 /* scalar_low_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 664C86D22AA5274C6B52FA60E38C4E46 /* ENSBaseRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F07E7D43079BFCE72CFE9F90C978ACD /* ENSBaseRegistrar.swift */; };
+ 6835A7C49329AC5FDA4858B33E0B4FC8 /* AbstractKeystore.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB70FA8F4F49BE5F5202B956066BEBD3 /* AbstractKeystore.swift */; };
+ 68A92231E087567C6A9AD700359DAE80 /* AEADChaCha20Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78A1BF472A70058555C4694A2EAFF13A /* AEADChaCha20Poly1305.swift */; };
+ 68BF24F97A9E4ECF8666F387D2BB83F6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 694E630570AB4DB0BCDF003411CF2B63 /* SHA3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91D4948373AB59AED62B61BAC3215AC9 /* SHA3.swift */; };
+ 697A14E125A1EDAE2A04383BA14F90C8 /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 806C903F7210C678D5DF4EB3952E1AE7 /* CryptoSwift.framework */; };
+ 69DBAB1E3A8EEBFCC466D95509DE7125 /* UIView+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26BCC48DCD93DFC7921525A57641CEE7 /* UIView+Promise.swift */; };
+ 69E62D35A7043AEBAFF100D522F38A30 /* DigestType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C3632D8B9C52CB3A6195495FFF0C38 /* DigestType.swift */; };
+ 6BC7A6F27128DCFAB9CF30CC16ADC7EB /* Web3+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD5AA529AC6D95FB9C5306623ECBABEB /* Web3+Instance.swift */; };
+ 6D78DA2799A948EFEBBDDCDB21181B6E /* HMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93C3EFDCA8E49126E06E491A24B85C3D /* HMAC.swift */; };
+ 6DE830042E36FDE326546970CA90F9B6 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01EC62F4E50244B98AFBF85EF6DE2E4C /* Promise.swift */; };
+ 6EFF6DC68E688CBB6D07105287A96B73 /* group_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = C04EF666A28AA0512208F6794236CFCF /* group_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 704805F207EC80A265E64BF6279A3884 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06B5B614A57680B350FAAA64F9FF24D9 /* Data+Extension.swift */; };
+ 720F912EEB6A04E821D380935D6653B7 /* Web3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8515606B80F0B6B3A189145182A54DEE /* Web3.swift */; };
+ 729F620FCDF9E3ACF9306ABB91A1979A /* Promise+Web3+Eth+GetBlockNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86623ECCFD88F3EC7A53382C6D71BEDB /* Promise+Web3+Eth+GetBlockNumber.swift */; };
+ 72DE41D3ACCEBD076822C6F7C0301767 /* Encodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49311B48DD477BCE76019FBEC7E46E2E /* Encodable+Extensions.swift */; };
+ 73EA1C553B580637369E1D5A72A425B3 /* when.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D4BC7B5883078EF1F3B3357FBF25BE1 /* when.swift */; };
+ 77DA201CE3BFCB47F57CDFC4111FB7BD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 784EBBF9C1215208B7A8CCDCA2BE21EB /* ENSReverseRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51B76AFA093D79E959FF8ACA94AD4B2F /* ENSReverseRegistrar.swift */; };
+ 792AECF194FD9EEC68866D1499302916 /* BlockModeOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BBFB6CCD645BC2E887CF405F8D1F3D9 /* BlockModeOptions.swift */; };
+ 79466125E09D1D2BF927109AFF1D9749 /* field.h in Headers */ = {isa = PBXBuildFile; fileRef = 28E030E5B4F070ED9B95A348D0B7E801 /* field.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 7997EAE951EAB362280E2CE750810231 /* Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C01B157B3FCD1627636905E74DE4BE9 /* Cryptors.swift */; };
+ 79F73BA854A7EC559E464EC446493D52 /* AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E1919101B0A72B0688328455885D44B /* AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7B610F29529F4361B808075FE7A832E6 /* field_5x52_int128_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 48CDA81D82A78CE94B024DBC63AB3A52 /* field_5x52_int128_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 7CA57460C1D6652FD0CF4B62C596849B /* PCBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C539FBE2EAB26E36BF1DB3B011C675B /* PCBC.swift */; };
+ 7CB349226C3B34F1A86FB19F2072A567 /* secp256k1.c-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 966BC7B32E8FFF08425B4F4C1B27354B /* secp256k1.c-dummy.m */; };
+ 7DB512E963EABCACC9F52E853B9E385F /* secp256k1_main.h in Headers */ = {isa = PBXBuildFile; fileRef = 9574895614DB543DFF4F991D4C25522E /* secp256k1_main.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 7E3E6309C4EB4C70BC8AF5EB9CA3B6FB /* Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCF4AA6B0B1B899F7D5FA52F2DB50BB7 /* Poly1305.swift */; };
+ 7E6F4EFB85936E0B3EB9AD287F074C36 /* PKCS7.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06E7E78E537158A035C0F75C14AAE06B /* PKCS7.swift */; };
+ 7EECE9FCF5E07473E6D0FE80BFCB94C9 /* BigInt-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DE064D9B6BF8A6F4226EAD54246787A5 /* BigInt-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8039DF4C1AE7378FB41921D22A44AEF7 /* UInt16+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0265C7F32AAC8A748A53363FE5EF89F /* UInt16+Extension.swift */; };
+ 8132B18E2FA496194CAA34A563A5057F /* secp256k1.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E630542E974650B1D8BCF2E5225363A /* secp256k1.framework */; };
+ 834AA5D2327B26CB90612DDFED7FD18B /* num_gmp.h in Headers */ = {isa = PBXBuildFile; fileRef = AC5843651A1C1FB7E4F6186668DF5DB2 /* num_gmp.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 84B8C10D1C4378991825883426CBC220 /* RIPEMD160+StackOveflow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 762A5143D7F35C5B8DA0E18A02951F67 /* RIPEMD160+StackOveflow.swift */; };
+ 85123392B5B33AFEC9385120F5D7824A /* ecmult_const_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 933A2B0E37DA34C56B3093D2BABA4AF5 /* ecmult_const_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 854AF7B141389D5512E8E73DF38FEBEA /* BlockMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B386825F575B0A60AD9656DFFA5D030 /* BlockMode.swift */; };
+ 8573D5547D4AC8CEE69AB545148A72B6 /* CCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1097687EF0922EBAAF77F05E3A52E83C /* CCM.swift */; };
+ 8599E23B2946C6F3F6DA3D63EC82C4A3 /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8FA6D42849085C32C7A9B5EF332DB5 /* Words and Bits.swift */; };
+ 892346F5B1D7BF8181EE12E0B42216CA /* secp256k1.c-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CEAAB074799649C6860AA641F85150C /* secp256k1.c-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8B09D96D06D95DA50A6EDF246700D327 /* PromiseKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C9A25C154DA98FE5889B22621B5A05B /* PromiseKit.framework */; };
+ 8B3350D96B15B975184C8EE0819F9623 /* SSLSecurity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 002B314804EFD9ACDEDA345E1D47314E /* SSLSecurity.swift */; };
+ 8C05403EC0F455CB86CFD8060C1C5DC2 /* Cryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 179A77641607AF0C4DC570BB659F3AEF /* Cryptor.swift */; };
+ 8C5E1B41BC5E8003CF34C4AAC6C81763 /* ecmult_gen_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA423AC964D4BCFF13C2D9EA7399941B /* ecmult_gen_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 8D58B7BD460D20FFEC478698F7F52222 /* PKCS7Padding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6241701C4453BC0488262B3DDFF6B7E4 /* PKCS7Padding.swift */; };
+ 8DE9DEBD5686A976EA7E0C6065BA976B /* Promise+Web3+Eth+EstimateGas.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080D615B900EB70CE7B25A6DF7C4E5CA /* Promise+Web3+Eth+EstimateGas.swift */; };
+ 8E8AB06B248F451742BD8C65FC04E080 /* Promise+Web3+Contract+GetIndexedEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0458D125F5E8C8B91C707CC84EB3D9A /* Promise+Web3+Contract+GetIndexedEvents.swift */; };
+ 8E8DB0413F47528F1A30410B067B9C28 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 8EA152D3E836DE243322F5238A7A5E54 /* field_10x26_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 26455F1744BDCD412885E6FDF26E3146 /* field_10x26_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 8ED7D4847260B4F398ECF4351280AB31 /* Digest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F114BB3837F863E709A6A8F473B85DD /* Digest.swift */; };
+ 8F2D6E523071433EB35C08C1CA950FFE /* BIP39.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ED1E082CC9ED8499243ECCF0D5313E5 /* BIP39.swift */; };
+ 913A5D221541C2CA199BF851C9E691DB /* Dictionary+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8276DC303C2ECBBB5DE42F97CD3D70E4 /* Dictionary+Extension.swift */; };
+ 91A59A657AB2118D4FFFC913EAD87EC9 /* BatchedCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C3C7F4D0E81863A10B2F79F75E12A9 /* BatchedCollection.swift */; };
+ 930D040081A647A1F45F755D51557F67 /* Web3+ERC721x.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5D95C545D36053DF59CBD4FD7A3264 /* Web3+ERC721x.swift */; };
+ 9447BD0FB408B2A7C9BFDFF99BBE1EBE /* UIViewController+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 26F269E4106B406687DC57DA15FF0245 /* UIViewController+AnyPromise.m */; };
+ 94CDAEF5C1E8EB3B93551530FF20F6A3 /* Torus-fetchNodeDetails-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BC9DDCCE46D03313AFE24C0105D7E517 /* Torus-fetchNodeDetails-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 95A173F1BA91EEC4EDA7EA755F101779 /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38966AA6D0DBF781DD324C2FCE96C71F /* String.swift */; };
+ 9624273E178BD044AD9F52DCC882E2CE /* Web3+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = A333DE5A022B6BB9F0E887AC133ADC19 /* Web3+Constants.swift */; };
+ 9642D730FD973C871F54D46D61CBACAB /* web3swift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 424DF34C18B1DEDF0D573AE6F7A0A620 /* web3swift.framework */; };
+ 9657164C95008A76F9038018189FE83E /* ABIDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E026237C81050E719B314126E949143 /* ABIDecoding.swift */; };
+ 968B5CC9B9B0A7E92FACEEBEA3C0DA13 /* PromiseKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FA2E09396FEC0CC4F85FC4781FCD36C5 /* PromiseKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 96D67F9A7630A34944B6EAAD47F785E3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ 9838E941A5B0D46EDA7D7B87D155BC71 /* Web3+ERC1155.swift in Sources */ = {isa = PBXBuildFile; fileRef = 341DC9A0E6CBDAC634260032311FD634 /* Web3+ERC1155.swift */; };
+ 991FF00519BA982FFBB0717FE6688916 /* Promise+Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6280C05AA9E6BDA04A991ADAF94A683 /* Promise+Web3+TxPool.swift */; };
+ 993EFE9B5A8D77873FA1141B92D6BBC5 /* Web3+Structures.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD4B549E50C975F887F11DA0F539FFE3 /* Web3+Structures.swift */; };
+ 997870D5F490326F024B4D8687FF18DC /* Resolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 500E6F7ED2FF50EC66896F524275286A /* Resolver.swift */; };
+ 99EE8A649068210DF711EA2FFBE1C3BF /* PBKDF2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 426634B0857D8E92D1DB1FA29688C7E4 /* PBKDF2.swift */; };
+ 99F35D362CDAA3F01D59E05FAB02907D /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A03B102F391CAD3F337E882B6E8015F /* Strideable.swift */; };
+ 9A80311C79CED9486D2E9FA4DEC3D45A /* StreamDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B027BABC2AC6B6A40C06841172054BC /* StreamDecryptor.swift */; };
+ 9B65647B927085E2366117D59DC1586D /* CustomStringConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E34322F8847C79474E0A30A9EDCC57C /* CustomStringConvertible.swift */; };
+ 9BFE70DD7ECA3C6183B82DE691FE4491 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = 052B782B389E75E102B937A06ED9BA6D /* Box.swift */; };
+ 9CA1836A7625F197FA4E8B29B52B74A3 /* Promise+Web3+Eth+GetTransactionCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF07A5184853B663B8DC62AB43177BB6 /* Promise+Web3+Eth+GetTransactionCount.swift */; };
+ 9D22006C799C6F6E9452B97B760F7CD1 /* UInt64+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51D56014D820B4A886C244FDB2D7A81F /* UInt64+Extension.swift */; };
+ 9D43ABE6DE49D5E8CCF6A1A2D33EE8A8 /* field_10x26.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FCBE27D8B2C9DE92EC9F7647B956FBF /* field_10x26.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 9D9F7711F11C249ADEE428F269FFC951 /* scratch.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B38AB6AF6DA5AD4D49E36DC4B1588A /* scratch.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 9FEA86C890DE257E5C333857037C3AC4 /* num_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 454D0E97BD0A49033EC6C54BEFFA9490 /* num_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ A08F6FCB7159B31A34F61E2E270953D8 /* TorusUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D0B8EA93217BD348C67F84D56001553 /* TorusUtils.swift */; };
+ A0D62D80A232C1F73D3900320E9527E1 /* scalar_8x32.h in Headers */ = {isa = PBXBuildFile; fileRef = D00F8F6ED5B9857406306A8BD6A17763 /* scalar_8x32.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ A0EB44B39FE896D974E3A6BC8E3D6731 /* Promise+Web3+Eth+GetTransactionDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BA853D6B5DC1948C9F20D73E1312D4F /* Promise+Web3+Eth+GetTransactionDetails.swift */; };
+ A10ABF66C781E9D8C69F7870EABD13D6 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = E80D22CAD68ADDCBF9A2BE9D149AF83B /* String+Extension.swift */; };
+ A1E6C35C5B3ECB558FE1AF9B1FAAB53B /* AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AF227E6E8C51345D611461E620D05E1 /* AnyPromise.m */; };
+ A5317B338FB174946AC9112624CB97CC /* PlainKeystore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B6D8C6E5CA0C51A8D507B116AF0E2A9 /* PlainKeystore.swift */; };
+ A5F5D7A20264221D4A7F489FB0060D34 /* afterlife.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DCDE4C51A10474C03CB89D470FD811 /* afterlife.swift */; };
+ A65BC55FFE138090EF77D9EC1F72A88B /* HKDF.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31492B0ACAAFF4C1921B3C79840F9A19 /* HKDF.swift */; };
+ A6821FF14E8186B45486C24C11B0D31B /* field_5x52_asm_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F58150D4945E954FD25CC5265D9A308 /* field_5x52_asm_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ A68AA863F8DD4DDA433D777ACA99A8DE /* Promise+Web3+Eth+GetTransactionReceipt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D32A9CE91D56119FFEAC4575FF84B47 /* Promise+Web3+Eth+GetTransactionReceipt.swift */; };
+ A7A92CB191008D7F63EA2200E5CDB71A /* Decodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A04ED6C7236D5041902CA41A284BB742 /* Decodable+Extensions.swift */; };
+ A88654701A4F7417EC688E20B265E85B /* Web3+SecurityToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39EB4057D49ED7C8CA5F4F0156AFDA25 /* Web3+SecurityToken.swift */; };
+ A93275D5C1DAD3CA7CCC2A9586AC9ADE /* AEAD.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEDB8E9E0F88E243F6F860203BAED9D8 /* AEAD.swift */; };
+ A9E1947F4C2A543A215E8A3F386A0F34 /* scratch_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D3C23B38C29A52BAB50135B9F3166F3 /* scratch_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ AAA648FE58CC4A49EF39BFDBCBA7C1FA /* PBKDF1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33864D4AAF3EA8144D57F7FCD75B8BFD /* PBKDF1.swift */; };
+ AB050117129D8F85DA8968C6F176BDCE /* recovery_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 97C3BBFDFB592A71190ED047090BB849 /* recovery_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ ABF5E5F45D270B8B7CE386D4BB8E614D /* Int+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF1471B1C4A68BCBAC3A134B316AB03 /* Int+Extension.swift */; };
+ AC4E061C6A2D21210122B471D8BCC81E /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86F9A0DF77689E557B9617774C370A7F /* Random.swift */; };
+ AC7DBF3AD44B3E7644068E6F09F9EBF2 /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 904D15142D12DA3A25470AB674E83EFF /* BigUInt.swift */; };
+ ACBFEEABC3937AE57FF72747EAA43D7F /* EthereumFilterEncodingExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A63CA77814FF01A9F46FB73383403D3 /* EthereumFilterEncodingExtensions.swift */; };
+ ADE26A6317E68C1CB7FC86D68B4EB8BF /* RandomBytesSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 611351298C748F409FA7C65B86929889 /* RandomBytesSequence.swift */; };
+ AE242F808DE761641CF108E8844745D6 /* Cipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 702EDD4BC3AD7A19099015A18A296CC8 /* Cipher.swift */; };
+ AEB3C8EF158F8ED7F3497245833E1323 /* ABITypeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC1DF60C78B53E196E99FC1D3830D32D /* ABITypeParser.swift */; };
+ AFA7D5C5E0778EDC23C26E950FD992B4 /* Promise+Web3+Personal+Sign.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3988CBB319BF10EA7A17D19C11AD2AB /* Promise+Web3+Personal+Sign.swift */; };
+ AFC5D67ED5FC6445B9164D9116223206 /* BigInt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEB013ED0EDEDD183263FEE2FF61D507 /* BigInt.framework */; };
+ B05EBD5F7FAC07944B6E368F41A1746A /* ABI.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4E161F000D70361BE459254C6FE7646 /* ABI.swift */; };
+ B0F8C8E2457CF32C9C4FFA92EEF080D1 /* Web3+ERC20.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10B8E3869773557C31CD376781DC01CA /* Web3+ERC20.swift */; };
+ B15E0CD8A2E6D29E9849F092CD078773 /* GCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31D755E9C55D4A109D127E68C2C22538 /* GCM.swift */; };
+ B21618ED48ADB3C9D84B043258EAC77B /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 120662CE355FC5BE537358276D9C23D2 /* ENS.swift */; };
+ B3D0EA70F561B88304643AB1CF206429 /* nodeDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C296CED6931043BAA1BBC100DBE3142 /* nodeDetails.swift */; };
+ B4A6283FDFA04E3A7B6FD0C13B6FEF32 /* Starscream-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD29F342DC9A4751A56D7794A18C9A6 /* Starscream-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B4C7094E24CC4B7ED3D72A09B2899E3C /* PromiseKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C9A25C154DA98FE5889B22621B5A05B /* PromiseKit.framework */; };
+ B4E0F6805D68577613B95A18651FC167 /* Blowfish.swift in Sources */ = {isa = PBXBuildFile; fileRef = 033990F3CB2918F215AF16591B3F0520 /* Blowfish.swift */; };
+ B593B56495A204E756BAA753BA2D6E9C /* Deprecations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7221A63829342A43344D57C14335E934 /* Deprecations.swift */; };
+ B5F2712E13F653375ED238D250CED288 /* ecmult.h in Headers */ = {isa = PBXBuildFile; fileRef = 68346DC09EF63BE1F07F92102BFA8162 /* ecmult.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ B66117B01BBD2FA338F1BAEA7C2411CE /* BloomFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8486CD1FA2079C816176E7D2314FEE /* BloomFilter.swift */; };
+ B758241FBF6592EFBE6283378D16F9FD /* NSObject+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = B899E8BF3ED4C2D51D886519F1C38866 /* NSObject+Promise.swift */; };
+ B7F137EF9B3853BA32AEAE7C11C4FED6 /* torus+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF24D35116A94BE6128674C6D47493E6 /* torus+extension.swift */; };
+ B90167499F2FD2AF78A1B992881A6D94 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A622C973D6CDE344C63681F95DDFB5B0 /* Data+Extension.swift */; };
+ BA1ECA78933F0697BF482F2C829455AA /* NonceMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836C93C634AA15EC0CB3B16D1BD8191B /* NonceMiddleware.swift */; };
+ BAA052C302D45F8DAB72606E997CAD69 /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B19F2996F93D657A989EF943CED9A222 /* Subtraction.swift */; };
+ BC1824654F9AB7C0728A9B38012DA066 /* Web3+Methods.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCDF5889034CDE4261607D837E88CB2F /* Web3+Methods.swift */; };
+ BC92068A32D8BC0CEF27BD5961A8BF36 /* Promise+HttpProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFFD9E34CA44566EFEAD98E34B2C3874 /* Promise+HttpProvider.swift */; };
+ BE29AFA73FEDAFA471F35F8AB1C3EA99 /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9741B94C8459FD9626BAA54EB6B7642D /* Shifts.swift */; };
+ BE5348E5E3C8BCCE72D4535C11F8576A /* BigUInt+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F560D5B1674FCA2B32CE2D1767E25F4D /* BigUInt+Extensions.swift */; };
+ BF1E1F4FFBE265DB702A232BD1125C39 /* Web3+WebsocketProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3653276D72A42655B2B0729B777BEF90 /* Web3+WebsocketProvider.swift */; };
+ C02D9FEB295BDA1359D2F52C80F8E75A /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15D30C2741A8F578B9CE300CCC0A7B9F /* WebSocket.swift */; };
+ C138FACCB027B81AE55814AA990543D5 /* OFB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B710E9EE47658B42C0F071E0A28E96 /* OFB.swift */; };
+ C17E552920AF110E9DB7AB635C65A12D /* Scrypt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 348D3A822056DA9F758CE88C8BCF4AFC /* Scrypt.swift */; };
+ C263B15E40166CB062B2FE724735E2FC /* num.h in Headers */ = {isa = PBXBuildFile; fileRef = 41A066E90ADF87147B3F46383031EE0C /* num.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ C317ADB044D5F5652D50A46D6FA74C87 /* ComparisonExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5410A477850E97033497FE36DE2CE6BD /* ComparisonExtensions.swift */; };
+ C3B5DE1DDC141D851BB68B9E9C3F61A3 /* EthereumKeystoreV3.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDD2742FB21EEDA55B50310F9CEEEAE4 /* EthereumKeystoreV3.swift */; };
+ C426E30A28E2545BCA2824DBCF90816F /* NSNotificationCenter+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = A4C13F506D17D19A61795B36A1077687 /* NSNotificationCenter+AnyPromise.m */; };
+ C4BEA5C748CA92B5DD3F54179942245A /* hash_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E53759C32B87F558E26DC855E7A0DD /* hash_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ C5A59CA6B32D1326C89CD314DCBF7EE0 /* Web3+Options.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3356AC96924C723752A9714D4264E8E6 /* Web3+Options.swift */; };
+ C5EF8FBC11CA9E66100F6489B57E35A6 /* LogEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2BEB1DF04ABD98F621646230BB61B4F /* LogEvent.swift */; };
+ C680444C2E2E5076D981C2A8452AC067 /* CFB.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7A37AE6BE269782F41366B7FC2FFEA3 /* CFB.swift */; };
+ C7D0CBB9A70178FD95C592E3B6CB7106 /* CryptoExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C179DA458DCEF8E7DEA026308108B83B /* CryptoExtensions.swift */; };
+ C7ECF714064C1188A6D042C6ACFD9504 /* dispatch_promise.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E9384976B128D1F5859489CCAEDDDA3 /* dispatch_promise.m */; };
+ C829EE08BBA51E4F85528D4D6B4D8DEB /* CTR.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7DD3115E7FF01ABCD7D6D9BDB3BB10B /* CTR.swift */; };
+ C87116E3C4ECB9DDD12949B79D912DBD /* Web3+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D4C4A563C6131B3E9B470931AD0F27 /* Web3+Utils.swift */; };
+ CA5F0FF46E700A877E1ED5C9EF6BDECB /* BlockCipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D107BD320D4200FF1B61B5120EAAF81 /* BlockCipher.swift */; };
+ CB7D72AA5DF809956535178E786841D6 /* EIP681.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20EE24A99B712B27B4AF87266A0EC273 /* EIP681.swift */; };
+ CBD7DD653BF883C7ADF28ADC8EF9AE63 /* basic-config.h in Headers */ = {isa = PBXBuildFile; fileRef = BAA0ACE7410A1ED2C9584FCE616FAE62 /* basic-config.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ CC03E008DF6514659F044A185A5E1B79 /* Web3+ERC165.swift in Sources */ = {isa = PBXBuildFile; fileRef = C48E1B2389ABD7719FB2E56B9FC913AB /* Web3+ERC165.swift */; };
+ CC03E31F122F91A26DD22BEEF813D779 /* UInt128.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56BA35DD02F0C1719DC7422CE73A71B4 /* UInt128.swift */; };
+ CD1D6AFF88C6CD5783078913FFF0AAB2 /* Starscream.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60ED77367B75C45DBB7A016033082BFE /* Starscream.framework */; };
+ CD644BE1BE3D1DC667C79F4CF90E63F8 /* BIP32HDNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08876CA8D7AA06120409D1F4EEF42729 /* BIP32HDNode.swift */; };
+ CF77FD620311C304213C2955157002DA /* scalar_4x64_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 524D37E0DBB6217C699DD2E270978775 /* scalar_4x64_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ D1B43EAF6D3BC8448AFBC88000E970E6 /* BIP32KeystoreJSONStructure.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD59BB8F5D771ACF4BD31D70E56854B3 /* BIP32KeystoreJSONStructure.swift */; };
+ D29ED3BC449767AF4EE92E66A7EDD9E7 /* Web3+EventParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C2CCE95868538C7138EA94BC2AB896 /* Web3+EventParser.swift */; };
+ D37F26400ECEBED535E3746D70FB5399 /* Web3+ERC721.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70767EFD562FD4D575C0ABD51B183FB0 /* Web3+ERC721.swift */; };
+ D48A4410A7C8CE6B6A0787A0F4999DE5 /* Multiplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418D85F33DE17BDCF62132D68EF1F913 /* Multiplication.swift */; };
+ D48F2F814342B7052BBB0A7659055304 /* Promise+Batching.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DD7295144C0DBB26561EBC4970E8904 /* Promise+Batching.swift */; };
+ D4A300AFA2F195EA9DEF250CFB4DBF8C /* ABIElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB3E5F6DC07278505A589C45BD5F2032 /* ABIElements.swift */; };
+ D4C52546E7DEE38CEE04F2B6D61BB9E2 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = B3D2E45AB678CABB9769AC9AD785A3B0 /* fwd.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D76E410CDEF078079EE821EDB31250A5 /* NSRegularExpressionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1684FC8741A3DFEFD7D6467867B6FCC6 /* NSRegularExpressionExtension.swift */; };
+ D78D40ADEA70FDF9AE2A98F5C5C40F53 /* eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = 75C57280A1F89D8C13C2D59A813424B8 /* eckey.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ D820172C124F8B10D0C72B31F1819FDC /* String+FoundationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0CDCA7FB6E57C41D6633113A74D89F /* String+FoundationExtension.swift */; };
+ D8C90AFD1D666460C3FE007172ED052E /* CompactMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FB3E84CB8245C0C94F09EB7CC49F744 /* CompactMap.swift */; };
+ D962AE186CFE0EC2FFC093704EB30A22 /* Decodable+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53EC0B0F41C9D356559A8A53B4332435 /* Decodable+Extensions.swift */; };
+ D9F9F7F946344C295BB8A2C627F6E22A /* Promise+Web3+Eth+GetAccounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87AFEFBDDD3D3BE68C415BDEF2F94499 /* Promise+Web3+Eth+GetAccounts.swift */; };
+ DA5830F8370A4DCA48A3EB4EA3DD2E9E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ DBCA1194814B520897C3D81C016F51DB /* BlockDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 877632C2B3EF50372E0A0313C06005A6 /* BlockDecryptor.swift */; };
+ DBE9A6D9CB82D8605F4C25B9426B1557 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE534CCC2AC32A43E038B88410C48C68 /* Codable.swift */; };
+ DBEF0F49E57B3321CC7067EEF33AB582 /* NSNotificationCenter+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 92F4F651152F668CA741F5AC4ACAD601 /* NSNotificationCenter+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DC8D3C5DB68B26511980490802C7A9EF /* KeystoreV3JSONStructure.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DC3A779718CD1E4051E2A669BE7C94 /* KeystoreV3JSONStructure.swift */; };
+ DCD17A2ECD8F142496C351592CF1C179 /* ecmult_gen.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C9CE25EDDFA5034DE9D742DBD58BF3F /* ecmult_gen.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ DCDBD4885BBE8D05ABBF8C3FE41C2E76 /* EventFiltering.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B34106F010D087143E51E6F6AE9163C /* EventFiltering.swift */; };
+ DD1070E8B4728E7043478F75AF80CA24 /* nodeInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95D971D341F9B80799015DB070845A32 /* nodeInfo.swift */; };
+ DD7CAA2463A742FC740431ED674892FD /* ChaCha20.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E5AE0999ECF0D359B67824EF629748 /* ChaCha20.swift */; };
+ DE051E080E5B534E3517AEE77967C87B /* ethereumNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CFF03FFBA5AC0FA69399A250650FCD4 /* ethereumNetwork.swift */; };
+ DE3A6A44C8476B673423CE3A44A2AC49 /* BigUInt+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E172837E36F574A56EF545CADC36D11 /* BigUInt+Extensions.swift */; };
+ E0067342787B93C845546321EF1DC7D8 /* AES.Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D736A970CA5F4A0DE25B1485A58A6A0 /* AES.Cryptors.swift */; };
+ E0B84D75D0F7E7EA2E905C05774CC361 /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1125524D95526A7BF6BAA2C10F247CEE /* Integer Conversion.swift */; };
+ E14652BF2080FCC82CD617BDA290E074 /* Web3+Eventloop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F11BD60838A693B918012537979FFEA /* Web3+Eventloop.swift */; };
+ E14D57CFA5B66112E58958716ADC4299 /* Web3+Personal.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBD009888EA62DDC38FE0952BC000EF2 /* Web3+Personal.swift */; };
+ E2C15FE087003C7CFD9A3243DBD97AE3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1AB6BB3213C659DC4E7871A60FDC3C /* Foundation.framework */; };
+ E2F28F4A44DDE5C26A4C5A662F95F3ED /* Pods-TestApplication-TestApplicationTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CA38481A10469E72124DD89F5DC85BDD /* Pods-TestApplication-TestApplicationTests-dummy.m */; };
+ E3E672F192E082DDFEA9C6655C46A498 /* Web3+ERC820.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDE046DBA6D69F2C17C06D6AA7AC8209 /* Web3+ERC820.swift */; };
+ E425FBEC27FF20E38E5F71856145D72C /* UIViewController+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E1F5C7B179FDBAC4E798BB04E640691 /* UIViewController+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E42F8F7F513AD8ED1D4A9AF625985EBB /* secp256k1_ec_mult_static_context.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BEFB349B1CB6DC3D3314D7A78B9AEB4 /* secp256k1_ec_mult_static_context.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ E48366F1E07D64929D5B2F4C64B51129 /* Base58.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8548EEDBF9337B961F67F59BED5937 /* Base58.swift */; };
+ E55DEEFF4DAD4D7EB7CA7BFD6BD8A940 /* abi.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD01C404A2DEAED30066627C0CCAED98 /* abi.swift */; };
+ E62EDEB8FBD9C349A7DBF5D883CA02FC /* ENSRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B2AB1F9DBFE8346779001FC9089F4E /* ENSRegistry.swift */; };
+ E6DEB47666EDD6291FA03FF479632D5C /* Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710E4F626E068B4DA8D82B7ECFFF45FC /* Web3+TxPool.swift */; };
+ E6F0186A6450F93DA6DECAEBF8E07490 /* TransactionSigner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90501E56F16A45E10FF5AD6EBAC63231 /* TransactionSigner.swift */; };
+ E7EAF3500E162033F621C371B234CD3D /* Promise+Web3+Personal+UnlockAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C509D623C6D494613908ACADE568B2D /* Promise+Web3+Personal+UnlockAccount.swift */; };
+ E829F18FDA5916348BC3C800F0AC94C4 /* BIP32Keystore.swift in Sources */ = {isa = PBXBuildFile; fileRef = FED42005FBCD3B10960346EFCB2CE0D5 /* BIP32Keystore.swift */; };
+ E8ABBB87CFEBE721FC2D14B71A719BC2 /* String Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9343E75375F71F74DF79E5837F7727 /* String Conversion.swift */; };
+ E93CF504980B3D653BB4530E7F98E9F6 /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361622BAEDB246B9ED9D2A9761C23953 /* Prime Test.swift */; };
+ EA95317C04FA46F08399A9F6DFE82119 /* Blowfish+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E1947D068746359F9156375E3588D66 /* Blowfish+Foundation.swift */; };
+ EAC994EA457048CA6AA49B82C9F05DF4 /* NSURLSession+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DEB8418AD24A3500EEE6565E4B0BA75 /* NSURLSession+AnyPromise.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ EB9FF6D137A784BED5727F705E95D6C1 /* Web3+ST20.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C35273E12E37C2A219BC4E20AD7280E /* Web3+ST20.swift */; };
+ EC1F98C6E1424F6190176058FAA43C5A /* UInt8+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 602D6CE424D551D2CF448436AC5EF89E /* UInt8+Extension.swift */; };
+ ED4ED80104798E648B2B82A10DA586F1 /* HMAC+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C33FDCA1A4A51C1C27EEEDE534E27810 /* HMAC+Foundation.swift */; };
+ EECCAB75875B123B1B55F235B7544EFF /* ecdsa_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 91166146F463B9D2683CF05B2B6FE11F /* ecdsa_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ EF2608C8A361055347E50D68B0F475EE /* ETHRegistrarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05161FF5C8464204D7F4F0055A80F007 /* ETHRegistrarController.swift */; };
+ EF2A9AA6B088237474A790687926DD2A /* PublicKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6ACFA49746A0BF38913CB23CD4252316 /* PublicKey.swift */; };
+ EF8241DFA90BCDBB97B8C504BB80D05C /* AnyPromise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 727DA4D37C78819C840FFC569AC5F869 /* AnyPromise.swift */; };
+ EF9BBCE851B820D4F5DA3163BF466A38 /* Process+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = D801E0DF7B2B3B49C0A3213C08B05C7E /* Process+Promise.swift */; };
+ EFA9DCD6E6301DD84CCD18F7276273A6 /* IBAN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3829511046BFE74550EFE6846AA144DE /* IBAN.swift */; };
+ F01D58F9C436D2FE023E9830F36FA4A0 /* EIP67Code.swift in Sources */ = {isa = PBXBuildFile; fileRef = 709FEDC71C2724D4089748F05D8FC059 /* EIP67Code.swift */; };
+ F13925E2206A7647AC326ECFA6ED2856 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0477CA0EC3CFA1FC34F687C39B6B5017 /* GCD.swift */; };
+ F2ECC28F037A8AB7F77F4B4886D40671 /* scalar.h in Headers */ = {isa = PBXBuildFile; fileRef = C0AC53BB5368BD7CB50EB10BF9F9C157 /* scalar.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ F3B9FF17CD827482C5FCDE987FCBA026 /* SHA1.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2CEAD49766B3CDBDA019FCB229083B1 /* SHA1.swift */; };
+ F44208FA90F7B7118E5A3CA21AB37A84 /* PKCS5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 333BAE98449BEBFEE2D097231554307E /* PKCS5.swift */; };
+ F4D7C8BC5F86863EB2B3BB5EB7A6C8F6 /* NSRegularExpressionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE40A37E6C4DA612524FA8B4D6C7D682 /* NSRegularExpressionExtension.swift */; };
+ F4DB8BAA8CC2482A2F0408BB78DC5636 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57A2E354D5D063A38BF19DB7F43A8622 /* Array+Extension.swift */; };
+ F4EB4FFB5BFE253769101209CBD7BA13 /* ChaCha20+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D34353602B6DFEA09807BA0545D7863C /* ChaCha20+Foundation.swift */; };
+ F5DAD08C684A315E58528FA2DDEFF803 /* Web3+ERC1400.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8509DCB1D462D37FC5CC7025C9AA99F2 /* Web3+ERC1400.swift */; };
+ F63631D42BD95FB94567632B935C278C /* Torus-fetchNodeDetails-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9621D2FAB1CD1F4B726C0BB65AD2B0A7 /* Torus-fetchNodeDetails-dummy.m */; };
+ F6737699BFFA0A269688EE7656ED46F3 /* RLP.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE455560A9B64F30271FC749F6CE0D9A /* RLP.swift */; };
+ F67E48B81E323CA1C9FDC920A087677B /* field_5x52_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = EC8E36447193103FA64C655B9642E8A0 /* field_5x52_impl.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ F7652BD09246D9A37B0544F79D6151E7 /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E6D486E39C6AE1FD91B33DB63B1457F /* Web3+ERC777.swift */; };
+ F8776D962B5C10219928259E01F60517 /* Promise+Web3+Personal+CreateAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69C2CE729F92161CB231EC5C98736B36 /* Promise+Web3+Personal+CreateAccount.swift */; };
+ F8D198B95C44BE1C4F8B47CCFCD88325 /* Base58.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF5D9E691312F0477F5BA45F2723A620 /* Base58.swift */; };
+ F929058932F58B384482845F19DD882C /* epochInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 666E2FEF244AFB2187052A9E2036EDFF /* epochInfo.swift */; };
+ FA3850DF41841E2438760B387B75697E /* Web3ERROR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B8E0E65694742F93279B9F7F3FD08E6 /* Web3ERROR.swift */; };
+ FB6A649C8B762C719C5767F49082EFA6 /* Promise+Web3+Eth+Call.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9F0D821499467233AD9987D96AF5FA1 /* Promise+Web3+Eth+Call.swift */; };
+ FB797FAA96B41ACE7474B8ADEF8107EC /* firstly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F1B9F99112E7C74389A003D1FE12CFE /* firstly.swift */; };
+ FC380F439D913681D738F1BE7B739646 /* ZeroPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 456349091EECB067F8B6A088ECADDC9B /* ZeroPadding.swift */; };
+ FCD3249624180FAD954F8E13D5BFB4D1 /* web3swift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E8448DCB3504FB29A8EFFBA42A928F21 /* web3swift-dummy.m */; };
+ FD1BFDE126C5C5ADEB1336BBD42285BA /* Web3+MutatingTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF8417C24BB41EF6C328D2D5C4F8A427 /* Web3+MutatingTransaction.swift */; };
+ FDF12428281F08B3F5F2B7DB68E3925D /* NSTask+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = E4FA17D6ED2072499ECFFEA5711E5081 /* NSTask+AnyPromise.m */; };
+ FED8C9BB577D35DBB6E5347B750C184C /* hang.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57BBB739C303C79C4CE56FC55B58540E /* hang.swift */; };
+ FEDB871A9D9F5D9C40399E80FB8E768A /* JSONRPCRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8811685CCF83BD3013F3AE0D3F52E746 /* JSONRPCRequest.swift */; };
+ FFF7E224F5F3094210837EC8C7FE4960 /* BigInt-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 264AE184523013AB1C2A219A7C1A4AC6 /* BigInt-dummy.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 0A8B432159221B17010F2BDE2283A126 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 9FF604BE1801EF6B67EED51EDA9D63C9;
- remoteInfo = BlueECC;
- };
- 19CAA1D70958EE392BA9FFC7BDF74254 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 99364D9FB07EF3FA5DFE1237001805EC;
- remoteInfo = web3swift;
- };
- 3BB06459EF40A005C7EDACF2B1FDD596 /* PBXContainerItemProxy */ = {
+ 0F70B91EF88C2FDCBCAD3630BD6F139E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 7C579CE66A1E7A9AA33CA5F97F9C22C5;
remoteInfo = PromiseKit;
};
- 4463F98B23D9C7690101366A02E9645C /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 3744C58A953D980BCF08B0FEAE449C91;
- remoteInfo = "Torus-fetchNodeDetails";
- };
- 4AB05AFBBC16D3C11B3F8CE350B155D4 /* PBXContainerItemProxy */ = {
+ 16AE42361FE4E4C791D425477A3723C9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 09DD83B7D075842A3A5105AD410BD38A;
- remoteInfo = BigInt;
+ remoteGlobalIDString = 7C579CE66A1E7A9AA33CA5F97F9C22C5;
+ remoteInfo = PromiseKit;
};
- 4DAD05ACD9C46EE7F309E5FC381C7067 /* PBXContainerItemProxy */ = {
+ 2DD4F73CEBB1020141946716EECE4C6B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 161C26511FC920CB146236AB7295D5E0;
- remoteInfo = secp256k1.c;
+ remoteGlobalIDString = 9B78EE4AF6AE03E79D88886319853FF7;
+ remoteInfo = Starscream;
};
- 4F78B9D71AE5A61CB4B444EA8ABE0F8C /* PBXContainerItemProxy */ = {
+ 35F1CF72D08258ECCB2A096056A2E280 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 3744C58A953D980BCF08B0FEAE449C91;
- remoteInfo = "Torus-fetchNodeDetails";
+ remoteGlobalIDString = 99364D9FB07EF3FA5DFE1237001805EC;
+ remoteInfo = web3swift;
};
- 503C2DEAB326372FD5F32A76430729B9 /* PBXContainerItemProxy */ = {
+ 42081465AAF9E8A825A5B28E194D18B0 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 9B78EE4AF6AE03E79D88886319853FF7;
remoteInfo = Starscream;
};
- 5690D58CDB19734B840F915C3B4EA640 /* PBXContainerItemProxy */ = {
+ 427BD88C6BFE5113D174EC5F96AB6E59 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 7C579CE66A1E7A9AA33CA5F97F9C22C5;
remoteInfo = PromiseKit;
};
- 5E2B877B727A788B4E093B62A33DD7B8 /* PBXContainerItemProxy */ = {
+ 448DCD7058A3CC085BEB189F6399A73D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 7C579CE66A1E7A9AA33CA5F97F9C22C5;
- remoteInfo = PromiseKit;
+ remoteGlobalIDString = 50BD5410DB90F893AE68CE9925FD066E;
+ remoteInfo = "Torus-utils";
};
- 666CD0116448BA04D23990960D559E2E /* PBXContainerItemProxy */ = {
+ 47DFAAA7D4FD82B2BDF8ED87061436B2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 09DD83B7D075842A3A5105AD410BD38A;
- remoteInfo = BigInt;
+ remoteGlobalIDString = 99313990C1D76A6D1D017868B6975CC8;
+ remoteInfo = CryptoSwift;
};
- 6865B7C4164FE1965F5CB212AC391A7D /* PBXContainerItemProxy */ = {
+ 53E8C8BCA9140E6FE5D005C07DF8ECEE /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 50BD5410DB90F893AE68CE9925FD066E;
- remoteInfo = "Torus-utils";
+ remoteGlobalIDString = 161C26511FC920CB146236AB7295D5E0;
+ remoteInfo = secp256k1.c;
};
- 70554CD6E4E13B94ACAF23654DC5F709 /* PBXContainerItemProxy */ = {
+ 69A40D56B895D1434FB5EA2934142F41 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 99313990C1D76A6D1D017868B6975CC8;
- remoteInfo = CryptoSwift;
+ remoteGlobalIDString = 3744C58A953D980BCF08B0FEAE449C91;
+ remoteInfo = "Torus-fetchNodeDetails";
};
- 7CA5952DFA47FDD277B8ADB52E9D3EFE /* PBXContainerItemProxy */ = {
+ 6DF74F2F2CDC5A62FBEF110780EF3BA0 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 7C579CE66A1E7A9AA33CA5F97F9C22C5;
- remoteInfo = PromiseKit;
+ remoteGlobalIDString = 99364D9FB07EF3FA5DFE1237001805EC;
+ remoteInfo = web3swift;
};
- 7E0D9ECC20F34468EB193BED3D23F241 /* PBXContainerItemProxy */ = {
+ 6FEBF83E6FAE7D0FB93E37C0270CA380 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 99313990C1D76A6D1D017868B6975CC8;
remoteInfo = CryptoSwift;
};
- 9435DE7DC0CD2FB8C4957431A331F8A6 /* PBXContainerItemProxy */ = {
+ 729B5B61D41B49F4D3883AB3BEDCC88C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 50BD5410DB90F893AE68CE9925FD066E;
- remoteInfo = "Torus-utils";
+ remoteGlobalIDString = 99364D9FB07EF3FA5DFE1237001805EC;
+ remoteInfo = web3swift;
};
- 9BC21926A219DD92A2420AEF06074BF7 /* PBXContainerItemProxy */ = {
+ 73B9D895557B65999B71C0FE8E3BBFBC /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 99313990C1D76A6D1D017868B6975CC8;
- remoteInfo = CryptoSwift;
+ remoteGlobalIDString = 161C26511FC920CB146236AB7295D5E0;
+ remoteInfo = secp256k1.c;
};
- 9CA32CCCAC85F5E0E5F0BFB4E62BFFE2 /* PBXContainerItemProxy */ = {
+ 949A9EBA4366C12A326009F43733D6DC /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 161C26511FC920CB146236AB7295D5E0;
- remoteInfo = secp256k1.c;
+ remoteGlobalIDString = 7C579CE66A1E7A9AA33CA5F97F9C22C5;
+ remoteInfo = PromiseKit;
};
- A56C525F28575CCBCE171BEA12591493 /* PBXContainerItemProxy */ = {
+ 9FF73BA81DF203429A1AEE752D141E52 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 9B78EE4AF6AE03E79D88886319853FF7;
- remoteInfo = Starscream;
+ remoteGlobalIDString = 3744C58A953D980BCF08B0FEAE449C91;
+ remoteInfo = "Torus-fetchNodeDetails";
};
- A64B4EB72578BDF541E41BA88AB5C34E /* PBXContainerItemProxy */ = {
+ A8DB6700482CEAD472F140EA60FE657A /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 09DD83B7D075842A3A5105AD410BD38A;
- remoteInfo = BigInt;
+ remoteGlobalIDString = 9B78EE4AF6AE03E79D88886319853FF7;
+ remoteInfo = Starscream;
};
- A66B79FFC09B7EEFB2A60DB2239E790F /* PBXContainerItemProxy */ = {
+ CBA5E3AD8F20EFA1DEDCB9E38604492E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 99364D9FB07EF3FA5DFE1237001805EC;
- remoteInfo = web3swift;
+ remoteGlobalIDString = 3744C58A953D980BCF08B0FEAE449C91;
+ remoteInfo = "Torus-fetchNodeDetails";
};
- B293CD9BE2EFCB864E7E4418D6B0D30A /* PBXContainerItemProxy */ = {
+ D5D590D6E50841912A764F3A94A596D3 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 99364D9FB07EF3FA5DFE1237001805EC;
- remoteInfo = web3swift;
+ remoteGlobalIDString = 161C26511FC920CB146236AB7295D5E0;
+ remoteInfo = secp256k1.c;
};
- B92A694257DDC708E14BD690B61FE72E /* PBXContainerItemProxy */ = {
+ D71D4602095EAED27BBC915DE0AD703B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 3744C58A953D980BCF08B0FEAE449C91;
- remoteInfo = "Torus-fetchNodeDetails";
+ remoteGlobalIDString = 09DD83B7D075842A3A5105AD410BD38A;
+ remoteInfo = BigInt;
};
- DCA842CDE65B5E7C3BC2F9588884A587 /* PBXContainerItemProxy */ = {
+ E31CEAB29F30DAD44A8502011015BDE8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 9B78EE4AF6AE03E79D88886319853FF7;
- remoteInfo = Starscream;
+ remoteGlobalIDString = 50BD5410DB90F893AE68CE9925FD066E;
+ remoteInfo = "Torus-utils";
};
- E9EA606D65392A219648AD8AFABB7C36 /* PBXContainerItemProxy */ = {
+ E5D59DE336E1877E6FE7E0DBC7D5792C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 9FF604BE1801EF6B67EED51EDA9D63C9;
- remoteInfo = BlueECC;
+ remoteGlobalIDString = 09DD83B7D075842A3A5105AD410BD38A;
+ remoteInfo = BigInt;
};
- EA1B901AC682439F1CF668259A018DE1 /* PBXContainerItemProxy */ = {
+ E849A881A7553112DE75257696F550A7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 9FF604BE1801EF6B67EED51EDA9D63C9;
- remoteInfo = BlueECC;
+ remoteGlobalIDString = 09DD83B7D075842A3A5105AD410BD38A;
+ remoteInfo = BigInt;
};
- FBCD094004C6A156BC29CD065A3CB4B9 /* PBXContainerItemProxy */ = {
+ FE4E11CE0540AC84973759377D2A13B5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 161C26511FC920CB146236AB7295D5E0;
- remoteInfo = secp256k1.c;
+ remoteGlobalIDString = 99313990C1D76A6D1D017868B6975CC8;
+ remoteInfo = CryptoSwift;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
- 002B1E88BA14EBF633CD66EBFBA107E9 /* PromiseKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PromiseKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 017F223FCC9234C6007F324797067C17 /* ABIParameterTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIParameterTypes.swift; path = Sources/web3swift/EthereumABI/ABIParameterTypes.swift; sourceTree = ""; };
- 01E999FD332A9F088688E2516ABEEC85 /* scalar_low_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_low_impl.h; path = secp256k1/scalar_low_impl.h; sourceTree = ""; };
- 0215B65E045440078CEC250E0E95ACA3 /* GCM.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GCM.swift; path = Sources/CryptoSwift/BlockMode/GCM.swift; sourceTree = ""; };
- 0302575D849B6913E53929CE1B18B31E /* secp256k1.c-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "secp256k1.c-dummy.m"; sourceTree = ""; };
- 03B3393F47C0AE1C4EA243F653BEAA05 /* join.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = join.m; path = Sources/join.m; sourceTree = ""; };
- 05CEAE45B0C259423E295C2196DD2AFD /* Web3+ERC1410.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC1410.swift"; path = "Sources/web3swift/Tokens/ERC1410/Web3+ERC1410.swift"; sourceTree = ""; };
- 06DEE2DA2FD900252C7DC799DB2ABBE8 /* Promise+Web3+Eth+GetBlockByNumber.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+Web3+Eth+GetBlockByNumber.swift"; path = "Sources/web3swift/Promises/Promise+Web3+Eth+GetBlockByNumber.swift"; sourceTree = ""; };
- 07AF4ACC9B4C2B0CF5263D87C988B2E4 /* UIView+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Promise.swift"; path = "Extensions/UIKit/Sources/UIView+Promise.swift"; sourceTree = ""; };
- 083D9E6BE5B0C8300A7EBA5AC38D1217 /* BloomFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BloomFilter.swift; path = Sources/web3swift/Transaction/BloomFilter.swift; sourceTree = ""; };
- 089D28C71BECA435560ED2DCB030658A /* web3swift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = web3swift.modulemap; sourceTree = ""; };
- 092C0016CF37F384FC09471CEAC22F0E /* PlainKeystore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlainKeystore.swift; path = Sources/web3swift/KeystoreManager/PlainKeystore.swift; sourceTree = ""; };
- 0A929691BF163CA54EB3150CD55CD482 /* torusNodePub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = torusNodePub.swift; path = Sources/FetchNodeDetails/torusNodePub.swift; sourceTree = ""; };
- 0AC989C7F31745A024E8F3DB51817938 /* Data+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Extensions.swift"; path = "Sources/CryptorECC/Data+Extensions.swift"; sourceTree = ""; };
+ 002B1E88BA14EBF633CD66EBFBA107E9 /* PromiseKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PromiseKit.framework; path = PromiseKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 002B314804EFD9ACDEDA345E1D47314E /* SSLSecurity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SSLSecurity.swift; path = Sources/Starscream/SSLSecurity.swift; sourceTree = ""; };
+ 0071B4B9CA0DDD402F7F9E4D76EC7BC7 /* Web3+JSONRPC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+JSONRPC.swift"; path = "Sources/web3swift/Web3/Web3+JSONRPC.swift"; sourceTree = ""; };
+ 00B17C15BCCA00B9E812FCDCD49E3C2E /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreImage.framework; sourceTree = DEVELOPER_DIR; };
+ 00B323D665D8B076A9C9DB0F55C1FE39 /* Floating Point Conversion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Floating Point Conversion.swift"; path = "Sources/Floating Point Conversion.swift"; sourceTree = ""; };
+ 01EC62F4E50244B98AFBF85EF6DE2E4C /* Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Promise.swift; path = Sources/Promise.swift; sourceTree = ""; };
+ 027E70B47BCC0153B713FAB202E2487A /* num_gmp_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = num_gmp_impl.h; path = secp256k1/num_gmp_impl.h; sourceTree = ""; };
+ 02DCDE4C51A10474C03CB89D470FD811 /* afterlife.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = afterlife.swift; path = Extensions/Foundation/Sources/afterlife.swift; sourceTree = ""; };
+ 033990F3CB2918F215AF16591B3F0520 /* Blowfish.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Blowfish.swift; path = Sources/CryptoSwift/Blowfish.swift; sourceTree = ""; };
+ 0477CA0EC3CFA1FC34F687C39B6B5017 /* GCD.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GCD.swift; path = Sources/GCD.swift; sourceTree = ""; };
+ 04C519C969F931E051E4970F81C756FE /* Padding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Padding.swift; path = Sources/CryptoSwift/Padding.swift; sourceTree = ""; };
+ 05161FF5C8464204D7F4F0055A80F007 /* ETHRegistrarController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ETHRegistrarController.swift; path = Sources/web3swift/Utils/ENS/ETHRegistrarController.swift; sourceTree = ""; };
+ 052B782B389E75E102B937A06ED9BA6D /* Box.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Box.swift; path = Sources/Box.swift; sourceTree = ""; };
+ 05B38AB6AF6DA5AD4D49E36DC4B1588A /* scratch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scratch.h; path = secp256k1/scratch.h; sourceTree = ""; };
+ 066014C0322DF710D11F3A1DE617E153 /* Torus-fetchNodeDetails.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Torus-fetchNodeDetails.modulemap"; sourceTree = ""; };
+ 06B5B614A57680B350FAAA64F9FF24D9 /* Data+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Extension.swift"; path = "Sources/web3swift/Convenience/Data+Extension.swift"; sourceTree = ""; };
+ 06E7E78E537158A035C0F75C14AAE06B /* PKCS7.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKCS7.swift; path = Sources/CryptoSwift/PKCS/PKCS7.swift; sourceTree = ""; };
+ 0779863889AD5743D2C2425EF944E55E /* Torus-fetchNodeDetails-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Torus-fetchNodeDetails-Info.plist"; sourceTree = ""; };
+ 08052E6516E9361E0AE9923936E59A25 /* web3swift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "web3swift-Info.plist"; sourceTree = ""; };
+ 080D615B900EB70CE7B25A6DF7C4E5CA /* Promise+Web3+Eth+EstimateGas.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+Web3+Eth+EstimateGas.swift"; path = "Sources/web3swift/Promises/Promise+Web3+Eth+EstimateGas.swift"; sourceTree = ""; };
+ 0877E723EB3AA27A7D21AA42ACD0878F /* util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = util.h; path = secp256k1/util.h; sourceTree = ""; };
+ 08876CA8D7AA06120409D1F4EEF42729 /* BIP32HDNode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BIP32HDNode.swift; path = Sources/web3swift/KeystoreManager/BIP32HDNode.swift; sourceTree = ""; };
+ 08EFA7DF0E5D16B3993B0D9578C23E3A /* UIView+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+AnyPromise.m"; path = "Extensions/UIKit/Sources/UIView+AnyPromise.m"; sourceTree = ""; };
+ 0A331E88415E2CDEAED4B22A95AE7D89 /* Addition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Addition.swift; path = Sources/Addition.swift; sourceTree = ""; };
0B8E0E65694742F93279B9F7F3FD08E6 /* Web3ERROR.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Web3ERROR.swift; sourceTree = ""; };
+ 0CD29F342DC9A4751A56D7794A18C9A6 /* Starscream-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Starscream-umbrella.h"; sourceTree = ""; };
0D0B8EA93217BD348C67F84D56001553 /* TorusUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TorusUtils.swift; path = Sources/TorusUtils/TorusUtils.swift; sourceTree = ""; };
- 0D70DFC8267CADB262B55400F170F597 /* Starscream-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Starscream-prefix.pch"; sourceTree = ""; };
- 0D7AD6B5D53961F4FA9FD540CF75FDA5 /* AbstractKeystore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AbstractKeystore.swift; path = Sources/web3swift/KeystoreManager/AbstractKeystore.swift; sourceTree = ""; };
- 0E3D7B020B429AA0602A28C2F0EAFF63 /* abi.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; name = abi.json; path = Sources/FetchNodeDetails/contract/abi.json; sourceTree = ""; };
- 0F6AC21924C3E677FB09BEB151DD1C51 /* Blowfish+Foundation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Blowfish+Foundation.swift"; path = "Sources/CryptoSwift/Foundation/Blowfish+Foundation.swift"; sourceTree = ""; };
- 0F9E81D5E33653084E4A6F1497FDE486 /* firstly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = firstly.swift; path = Sources/firstly.swift; sourceTree = ""; };
- 10CDA17E2C80580AEC0395A99CC32192 /* Web3+Options.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+Options.swift"; path = "Sources/web3swift/Web3/Web3+Options.swift"; sourceTree = ""; };
- 127E5D93CC274BD5C9491543B7A1EAEA /* Web3+ERC1594.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC1594.swift"; path = "Sources/web3swift/Tokens/ERC1594/Web3+ERC1594.swift"; sourceTree = ""; };
- 12D784074C40340BEFAD8DF75D8F7925 /* num.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = num.h; path = secp256k1/num.h; sourceTree = ""; };
- 1309AB894A3523D07B310E151F7FCF96 /* BlueECC-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BlueECC-Info.plist"; sourceTree = ""; };
+ 0D29C9C138595DA93E0F1688B90FDCF3 /* after.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = after.swift; path = Sources/after.swift; sourceTree = ""; };
+ 0D4BC7B5883078EF1F3B3357FBF25BE1 /* when.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = when.swift; path = Sources/when.swift; sourceTree = ""; };
+ 0D736A970CA5F4A0DE25B1485A58A6A0 /* AES.Cryptors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AES.Cryptors.swift; path = Sources/CryptoSwift/AES.Cryptors.swift; sourceTree = ""; };
+ 0E1919101B0A72B0688328455885D44B /* AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AnyPromise.h; path = Sources/AnyPromise.h; sourceTree = ""; };
+ 0F290F9E5C8E84E88496D7A5094DD301 /* Web3+Wallet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+Wallet.swift"; path = "Sources/web3swift/HookedFunctions/Web3+Wallet.swift"; sourceTree = ""; };
+ 1097687EF0922EBAAF77F05E3A52E83C /* CCM.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CCM.swift; path = Sources/CryptoSwift/BlockMode/CCM.swift; sourceTree = ""; };
+ 10B8E3869773557C31CD376781DC01CA /* Web3+ERC20.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC20.swift"; path = "Sources/web3swift/Tokens/ERC20/Web3+ERC20.swift"; sourceTree = ""; };
+ 10BDBA6B4C8219100AB6E894945F2CA8 /* CryptoSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CryptoSwift-umbrella.h"; sourceTree = ""; };
+ 1125524D95526A7BF6BAA2C10F247CEE /* Integer Conversion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Integer Conversion.swift"; path = "Sources/Integer Conversion.swift"; sourceTree = ""; };
+ 120662CE355FC5BE537358276D9C23D2 /* ENS.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ENS.swift; path = Sources/web3swift/Utils/ENS/ENS.swift; sourceTree = ""; };
+ 12C414D282A1EAA64E5D29111F05EC90 /* Promise+Web3+Eth+GetBlockByHash.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+Web3+Eth+GetBlockByHash.swift"; path = "Sources/web3swift/Promises/Promise+Web3+Eth+GetBlockByHash.swift"; sourceTree = ""; };
+ 131E97EC1F80233BBBEEA152CED2375B /* EthereumTransaction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EthereumTransaction.swift; path = Sources/web3swift/Transaction/EthereumTransaction.swift; sourceTree = ""; };
13A7C9F03F472D4F401960A589701AEA /* Torus-utils.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Torus-utils.modulemap"; sourceTree = ""; };
- 14B86651EE1A26D23A8B1759635E887E /* SSLClientCertificate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SSLClientCertificate.swift; path = Sources/Starscream/SSLClientCertificate.swift; sourceTree = ""; };
- 14EFE0E4082A8D1232A36B5037E83839 /* field_10x26_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_10x26_impl.h; path = secp256k1/field_10x26_impl.h; sourceTree = ""; };
- 15775417273962704570E53CCA5E0A9A /* StreamEncryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StreamEncryptor.swift; path = Sources/CryptoSwift/StreamEncryptor.swift; sourceTree = ""; };
- 15B1915A185346BF74E2DE837CC39859 /* ECB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ECB.swift; path = Sources/CryptoSwift/BlockMode/ECB.swift; sourceTree = ""; };
- 15CD57C38CDEE70FDDC8F8960D8165EA /* Web3+Contract.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+Contract.swift"; path = "Sources/web3swift/Web3/Web3+Contract.swift"; sourceTree = ""; };
- 15FA51C15A6F325AEFE9E6F42B249749 /* Torus_fetchNodeDetails.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Torus_fetchNodeDetails.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 16506DE07AA3CF4CB3FCF0D86C2AAC6C /* scratch_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scratch_impl.h; path = secp256k1/scratch_impl.h; sourceTree = ""; };
- 16D3A26B815E188FBCD62E9438CEECFA /* Promise+Web3+Eth+SendRawTransaction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+Web3+Eth+SendRawTransaction.swift"; path = "Sources/web3swift/Promises/Promise+Web3+Eth+SendRawTransaction.swift"; sourceTree = ""; };
+ 14BE4746B567116E86B99E27D271BD0A /* Web3+ERC1594.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC1594.swift"; path = "Sources/web3swift/Tokens/ERC1594/Web3+ERC1594.swift"; sourceTree = ""; };
+ 151955E45CC7160931371F2E03DFB4F3 /* Rabbit+Foundation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Rabbit+Foundation.swift"; path = "Sources/CryptoSwift/Foundation/Rabbit+Foundation.swift"; sourceTree = ""; };
+ 154BE5D486AEFE6808BEA04AC9A0FBC6 /* PromiseKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PromiseKit.modulemap; sourceTree = ""; };
+ 15D30C2741A8F578B9CE300CCC0A7B9F /* WebSocket.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebSocket.swift; path = Sources/Starscream/WebSocket.swift; sourceTree = ""; };
+ 1684FC8741A3DFEFD7D6467867B6FCC6 /* NSRegularExpressionExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSRegularExpressionExtension.swift; path = Sources/web3swift/Convenience/NSRegularExpressionExtension.swift; sourceTree = ""; };
1764C73C5A2BAF6D7920A5164D0CD86C /* Pods-TestApplication-TestApplicationTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-TestApplication-TestApplicationTests-frameworks.sh"; sourceTree = ""; };
- 17E334A91FB3B15261E1624DB977E118 /* NoPadding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NoPadding.swift; path = Sources/CryptoSwift/NoPadding.swift; sourceTree = ""; };
- 19CC71C893615F12050888D02D6BEA84 /* Promise+Web3+Personal+UnlockAccount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+Web3+Personal+UnlockAccount.swift"; path = "Sources/web3swift/Promises/Promise+Web3+Personal+UnlockAccount.swift"; sourceTree = ""; };
- 1A3E2B3FF94E027E3EE928ECE5C6996B /* afterlife.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = afterlife.swift; path = Extensions/Foundation/Sources/afterlife.swift; sourceTree = ""; };
- 1A72349455B36A5DE9393ACBCC7C716C /* CCM.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CCM.swift; path = Sources/CryptoSwift/BlockMode/CCM.swift; sourceTree = ""; };
- 1ACF0BF4C9C14FBC95E11AF8D3A7109C /* Encodable+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Encodable+Extensions.swift"; path = "Sources/web3swift/Convenience/Encodable+Extensions.swift"; sourceTree = ""; };
- 1BA3970FB657A0CF57563BBF5D6BAB4F /* Starscream.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Starscream.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 1D56FEC2A27ACB25240B4E3AE57D4D81 /* ENSBaseRegistrar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ENSBaseRegistrar.swift; path = Sources/web3swift/Utils/ENS/ENSBaseRegistrar.swift; sourceTree = ""; };
- 1DF591611649E57BAD4B7DC3765FB10E /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
- 1EF26D7911DEFEB5AC8B83716A9F9193 /* Deprecations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deprecations.swift; path = Sources/Deprecations.swift; sourceTree = ""; };
+ 179A77641607AF0C4DC570BB659F3AEF /* Cryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cryptor.swift; path = Sources/CryptoSwift/Cryptor.swift; sourceTree = ""; };
+ 17C04A3E750A7380B3BB9E80D8631895 /* Web3+ERC1644.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC1644.swift"; path = "Sources/web3swift/Tokens/ERC1644/Web3+ERC1644.swift"; sourceTree = ""; };
+ 18BE1689AEEBBC10C162D133E2FB3041 /* Web3+InfuraProviders.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+InfuraProviders.swift"; path = "Sources/web3swift/Web3/Web3+InfuraProviders.swift"; sourceTree = ""; };
+ 1923971B98159149BBCB95EF6928C895 /* EthereumContract.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EthereumContract.swift; path = Sources/web3swift/Contract/EthereumContract.swift; sourceTree = ""; };
+ 1D3C23B38C29A52BAB50135B9F3166F3 /* scratch_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scratch_impl.h; path = secp256k1/scratch_impl.h; sourceTree = ""; };
+ 1DF591611649E57BAD4B7DC3765FB10E /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; };
+ 1E026237C81050E719B314126E949143 /* ABIDecoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIDecoding.swift; path = Sources/web3swift/EthereumABI/ABIDecoding.swift; sourceTree = ""; };
1F35ACAD54CA4C8BA1628EEC5C9C803A /* Pods-TestApplication-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-TestApplication-umbrella.h"; sourceTree = ""; };
- 1F6B786C167BCFFF9CDF1C29B5EE1DA3 /* Web3+ERC820.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC820.swift"; path = "Sources/web3swift/Tokens/ERC820/Web3+ERC820.swift"; sourceTree = ""; };
- 21D6BFB29EFA0C581F71B1A7D1A63C2E /* ENSResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ENSResolver.swift; path = Sources/web3swift/Utils/ENS/ENSResolver.swift; sourceTree = ""; };
- 2222B673FA2A455609673F9DAA0455A7 /* scratch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scratch.h; path = secp256k1/scratch.h; sourceTree = ""; };
- 22ACCA0229F000DEB39BE6F6FB97C3B0 /* Web3+Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+Constants.swift"; path = "Sources/web3swift/Web3/Web3+Constants.swift"; sourceTree = ""; };
- 22C125FFA9E26C76C4D9DC15EAC00E4E /* Integer Conversion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Integer Conversion.swift"; path = "Sources/Integer Conversion.swift"; sourceTree = ""; };
- 2351D60402D1483EC8B3E0F89E7A9A37 /* Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Promise.swift; path = Sources/Promise.swift; sourceTree = ""; };
- 255E503D9199AA8C99D231695F18D3B2 /* Web3+TxPool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+TxPool.swift"; path = "Sources/web3swift/Web3/Web3+TxPool.swift"; sourceTree = ""; };
- 25769A3030927A3A9F55EEB2534DF920 /* BlockEncryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockEncryptor.swift; path = Sources/CryptoSwift/BlockEncryptor.swift; sourceTree = ""; };
- 25AC7EAA17B933E04E94456E4263AD26 /* Promise+HttpProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+HttpProvider.swift"; path = "Sources/web3swift/Promises/Promise+HttpProvider.swift"; sourceTree = ""; };
- 2756F5808D215C0CC6FFB374FBAF4C14 /* fwd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = Sources/fwd.h; sourceTree = ""; };
- 27D6E85356EF024A04B3E8F67DB2657A /* Rabbit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Rabbit.swift; path = Sources/CryptoSwift/Rabbit.swift; sourceTree = ""; };
- 27DDCD0ACB9B1C46FB9046E8DCEC72AD /* IBAN.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBAN.swift; path = Sources/web3swift/KeystoreManager/IBAN.swift; sourceTree = ""; };
- 28B31AD5CCD5E973139C85AFB2E6F121 /* Torus-fetchNodeDetails-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Torus-fetchNodeDetails-umbrella.h"; sourceTree = ""; };
- 29A9EF71F152A4D6E4F70D7D69528A48 /* SHA2.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SHA2.swift; path = Sources/CryptoSwift/SHA2.swift; sourceTree = ""; };
- 2B346EE9577056DC2FFE427803CBF54A /* dispatch_promise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = dispatch_promise.m; path = Sources/dispatch_promise.m; sourceTree = ""; };
- 2BBEAA20529A2FFE2E4DE15AC498B699 /* Web3+ERC721.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC721.swift"; path = "Sources/web3swift/Tokens/ERC721/Web3+ERC721.swift"; sourceTree = ""; };
- 2BD0C761BB84DFF0B35A2D8B4AE72BF9 /* Cryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cryptor.swift; path = Sources/CryptoSwift/Cryptor.swift; sourceTree = ""; };
- 2C6CA55FBD56E7831EBADBAB29C4C0C3 /* ecdh_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdh_impl.h; path = secp256k1/ecdh_impl.h; sourceTree = ""; };
- 2C992EBF7257C7C43EE5CD9FD29C3D1A /* Bit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bit.swift; path = Sources/CryptoSwift/Bit.swift; sourceTree = ""; };
- 2CB61285BB09A43EDCEA295B888D1838 /* Torus-fetchNodeDetails.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Torus-fetchNodeDetails.modulemap"; sourceTree = ""; };
- 2CB6C725BE8769366F5D7F1A558BEFFF /* AEADChaCha20Poly1305.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AEADChaCha20Poly1305.swift; path = Sources/CryptoSwift/AEAD/AEADChaCha20Poly1305.swift; sourceTree = ""; };
- 2E20B88D025CDBB4869F6EC4633DB495 /* secp256k1_ec_mult_static_context.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = secp256k1_ec_mult_static_context.h; path = secp256k1/secp256k1_ec_mult_static_context.h; sourceTree = ""; };
- 2F7038569AA8F4476E039801A0BB35ED /* SecureBytes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureBytes.swift; path = Sources/CryptoSwift/SecureBytes.swift; sourceTree = ""; };
- 2FD829FFE319ADCE13F78FB4623916AB /* ecmult_const.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult_const.h; path = secp256k1/ecmult_const.h; sourceTree = ""; };
- 2FE36C74AD45364B742EA2820A4AD49B /* PMKUIKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PMKUIKit.h; path = Extensions/UIKit/Sources/PMKUIKit.h; sourceTree = ""; };
- 30097934331E666533A790B38DA875FD /* CryptoExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CryptoExtensions.swift; path = Sources/web3swift/Convenience/CryptoExtensions.swift; sourceTree = ""; };
- 31451781C8BB73FD0819FEB049AA75B9 /* KeystoreV3JSONStructure.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeystoreV3JSONStructure.swift; path = Sources/web3swift/KeystoreManager/KeystoreV3JSONStructure.swift; sourceTree = ""; };
- 318DEDBE5F61755B24C0739C0E964149 /* after.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = after.m; path = Sources/after.m; sourceTree = ""; };
- 31D6F5C343AF02BC8B4FB487E0A350A8 /* Torus-fetchNodeDetails-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Torus-fetchNodeDetails-prefix.pch"; sourceTree = ""; };
- 32C5175371BA7614F62CF7DAAABA81B0 /* field_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_impl.h; path = secp256k1/field_impl.h; sourceTree = ""; };
- 32F0CE97C8519335AF1A3D458582FEFB /* AnyPromise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyPromise.swift; path = Sources/AnyPromise.swift; sourceTree = ""; };
- 332A47430CFF99501D563788C7AAF1D2 /* secp256k1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = secp256k1.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 33EED568EB191EAD2BCE3074EB9F6904 /* Starscream.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Starscream.debug.xcconfig; sourceTree = ""; };
+ 1FE369068B749EE235ED5F5AA1F90061 /* ECB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ECB.swift; path = Sources/CryptoSwift/BlockMode/ECB.swift; sourceTree = ""; };
+ 20385825730E505A29941B90E48CFE4C /* Promise+Web3+Eth+GetBlockByNumber.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+Web3+Eth+GetBlockByNumber.swift"; path = "Sources/web3swift/Promises/Promise+Web3+Eth+GetBlockByNumber.swift"; sourceTree = ""; };
+ 20C5E44269732327D2131A3035738322 /* Array+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Extension.swift"; path = "Sources/web3swift/Convenience/Array+Extension.swift"; sourceTree = ""; };
+ 20EE24A99B712B27B4AF87266A0EC273 /* EIP681.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EIP681.swift; path = Sources/web3swift/Utils/EIP/EIP681.swift; sourceTree = ""; };
+ 21E9AEC48FC4EFC3138BD2AFDAA2CFCF /* Collection+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Collection+Extension.swift"; path = "Sources/CryptoSwift/Collection+Extension.swift"; sourceTree = ""; };
+ 247715129B40E6C1D4C5F3B4E4C3E857 /* scalar_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_impl.h; path = secp256k1/scalar_impl.h; sourceTree = ""; };
+ 26455F1744BDCD412885E6FDF26E3146 /* field_10x26_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_10x26_impl.h; path = secp256k1/field_10x26_impl.h; sourceTree = ""; };
+ 264AE184523013AB1C2A219A7C1A4AC6 /* BigInt-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BigInt-dummy.m"; sourceTree = ""; };
+ 26BCC48DCD93DFC7921525A57641CEE7 /* UIView+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Promise.swift"; path = "Extensions/UIKit/Sources/UIView+Promise.swift"; sourceTree = ""; };
+ 26F269E4106B406687DC57DA15FF0245 /* UIViewController+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+AnyPromise.m"; path = "Extensions/UIKit/Sources/UIViewController+AnyPromise.m"; sourceTree = ""; };
+ 276A801B898DFAC2E46744B7FB301D0A /* Operators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Operators.swift; path = Sources/CryptoSwift/Operators.swift; sourceTree = ""; };
+ 287B8E54712602BFB3694D822EA03DB7 /* CMAC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CMAC.swift; path = Sources/CryptoSwift/CMAC.swift; sourceTree = ""; };
+ 28E030E5B4F070ED9B95A348D0B7E801 /* field.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field.h; path = secp256k1/field.h; sourceTree = ""; };
+ 28FECDFD564C2AC043A4F3423246F6FA /* Updatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Updatable.swift; path = Sources/CryptoSwift/Updatable.swift; sourceTree = ""; };
+ 29293AE7DA5A7E32E6F6BF78F77D83C1 /* ecmult_const.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult_const.h; path = secp256k1/ecmult_const.h; sourceTree = ""; };
+ 297DC18AAB993D7DCD9F5F7BA2ACA557 /* Web3+Eth.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+Eth.swift"; path = "Sources/web3swift/Web3/Web3+Eth.swift"; sourceTree = ""; };
+ 2B6D8C6E5CA0C51A8D507B116AF0E2A9 /* PlainKeystore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PlainKeystore.swift; path = Sources/web3swift/KeystoreManager/PlainKeystore.swift; sourceTree = ""; };
+ 2BAF01307087E72BEA516AC7221EFBCF /* ContractProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContractProtocol.swift; path = Sources/web3swift/Contract/ContractProtocol.swift; sourceTree = ""; };
+ 2C01B157B3FCD1627636905E74DE4BE9 /* Cryptors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cryptors.swift; path = Sources/CryptoSwift/Cryptors.swift; sourceTree = ""; };
+ 2ED1E082CC9ED8499243ECCF0D5313E5 /* BIP39.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BIP39.swift; path = Sources/web3swift/KeystoreManager/BIP39.swift; sourceTree = ""; };
+ 2F07E7D43079BFCE72CFE9F90C978ACD /* ENSBaseRegistrar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ENSBaseRegistrar.swift; path = Sources/web3swift/Utils/ENS/ENSBaseRegistrar.swift; sourceTree = ""; };
+ 2F0CDCA7FB6E57C41D6633113A74D89F /* String+FoundationExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+FoundationExtension.swift"; path = "Sources/CryptoSwift/Foundation/String+FoundationExtension.swift"; sourceTree = ""; };
+ 2F2546CC6EBB4A386098CBE7253830DF /* UInt32+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UInt32+Extension.swift"; path = "Sources/CryptoSwift/UInt32+Extension.swift"; sourceTree = ""; };
+ 2F58150D4945E954FD25CC5265D9A308 /* field_5x52_asm_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_5x52_asm_impl.h; path = secp256k1/field_5x52_asm_impl.h; sourceTree = ""; };
+ 31492B0ACAAFF4C1921B3C79840F9A19 /* HKDF.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HKDF.swift; path = Sources/CryptoSwift/HKDF.swift; sourceTree = ""; };
+ 31D755E9C55D4A109D127E68C2C22538 /* GCM.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GCM.swift; path = Sources/CryptoSwift/BlockMode/GCM.swift; sourceTree = ""; };
+ 32E5AE0999ECF0D359B67824EF629748 /* ChaCha20.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChaCha20.swift; path = Sources/CryptoSwift/ChaCha20.swift; sourceTree = ""; };
+ 332A47430CFF99501D563788C7AAF1D2 /* secp256k1.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = secp256k1.framework; path = secp256k1.c.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 333BAE98449BEBFEE2D097231554307E /* PKCS5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKCS5.swift; path = Sources/CryptoSwift/PKCS/PKCS5.swift; sourceTree = ""; };
+ 3356AC96924C723752A9714D4264E8E6 /* Web3+Options.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+Options.swift"; path = "Sources/web3swift/Web3/Web3+Options.swift"; sourceTree = ""; };
+ 33864D4AAF3EA8144D57F7FCD75B8BFD /* PBKDF1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PBKDF1.swift; path = Sources/CryptoSwift/PKCS/PBKDF1.swift; sourceTree = ""; };
+ 341DC9A0E6CBDAC634260032311FD634 /* Web3+ERC1155.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC1155.swift"; path = "Sources/web3swift/Tokens/ERC1155/Web3+ERC1155.swift"; sourceTree = ""; };
+ 34324D8D1EA9D27A655FD1E41B8BE0A6 /* secp256k1.c-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "secp256k1.c-prefix.pch"; sourceTree = ""; };
347717266D737AFAF6E73F6173B49C5F /* Torus-utils.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Torus-utils.debug.xcconfig"; sourceTree = ""; };
- 347B70344DBE5E12D7809A020D7A19A5 /* EllipticCurve.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EllipticCurve.swift; path = Sources/CryptorECC/EllipticCurve.swift; sourceTree = ""; };
- 34A886B25C6BD5FCC865BD3B6E1BE58C /* PromiseKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PromiseKit-umbrella.h"; sourceTree = ""; };
- 34CBA8AA46D0BDD3F7C3222152A3D218 /* ECError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ECError.swift; path = Sources/CryptorECC/ECError.swift; sourceTree = ""; };
- 353F7315FC38693C0DABBE39FE43CEF4 /* ABIEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIEncoding.swift; path = Sources/web3swift/EthereumABI/ABIEncoding.swift; sourceTree = ""; };
- 354B52678D6C5266575E8F313DC3E062 /* BigInt.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BigInt.debug.xcconfig; sourceTree = ""; };
- 357939F969E2F86A13AF7320974723E9 /* Utils+Foundation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Utils+Foundation.swift"; path = "Sources/CryptoSwift/Foundation/Utils+Foundation.swift"; sourceTree = ""; };
- 35C103BD6C3673710F0CF62EC8A6E4F0 /* hash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hash.h; path = secp256k1/hash.h; sourceTree = ""; };
- 361A1BA59B41CBD2CDED6CC06A6DAF7A /* Checksum.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Checksum.swift; path = Sources/CryptoSwift/Checksum.swift; sourceTree = ""; };
- 36B22267AF4D657854BDCBC896BAA6BE /* Torus_fetchNodeDetails.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Torus_fetchNodeDetails.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 37CF362BDE2028F77BC4C366ADF290B5 /* Web3+Personal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+Personal.swift"; path = "Sources/web3swift/Web3/Web3+Personal.swift"; sourceTree = ""; };
- 38B1562A1C4E0C4C8997FF1DF0B5B1F6 /* BlockDecryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockDecryptor.swift; path = Sources/CryptoSwift/BlockDecryptor.swift; sourceTree = ""; };
- 3936ADAF803ACF9C9AF43E3304CF7768 /* Torus_utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Torus_utils.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 3937FAAA2CAE397535601A422E318355 /* BlueECC.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BlueECC.release.xcconfig; sourceTree = ""; };
- 3969AE4DF78BAB2F484C0E6C492A127E /* scalar_low.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_low.h; path = secp256k1/scalar_low.h; sourceTree = ""; };
- 3B84C4B65C0160FE71C909A4487DBDB9 /* web3swift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = web3swift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 3BC6A9D58F693F61465A4F9607625BC3 /* RIPEMD160+StackOveflow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "RIPEMD160+StackOveflow.swift"; path = "Sources/web3swift/Convenience/RIPEMD160+StackOveflow.swift"; sourceTree = ""; };
- 3CC942D6E6D3A714B8DDDD046DDFDF35 /* basic-config.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "basic-config.h"; path = "secp256k1/basic-config.h"; sourceTree = ""; };
- 3D2DC4687AFA91E264A021E89D12B3A7 /* ECPrivateKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ECPrivateKey.swift; path = Sources/CryptorECC/ECPrivateKey.swift; sourceTree = ""; };
- 3D8567B0A3B8C5A5C1F09982C886CD32 /* PKCS7.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKCS7.swift; path = Sources/CryptoSwift/PKCS/PKCS7.swift; sourceTree = ""; };
- 3DC45F69E69CC6AAB1EBB37B95015553 /* secp256k1.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = secp256k1.c; path = secp256k1/secp256k1.c; sourceTree = ""; };
- 3DF300EAD593B09B24E20854FBD56A5D /* secp256k1.c.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = secp256k1.c.release.xcconfig; sourceTree = ""; };
- 3E7277D28BBF08FB9986AE787A992D9D /* eckey_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = eckey_impl.h; path = secp256k1/eckey_impl.h; sourceTree = ""; };
- 3EAB231ED96BE0C7F84E4A1599317BDF /* web3swift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = web3swift.release.xcconfig; sourceTree = ""; };
- 3FD712F593C096197EBDDDF72CC4AB6C /* field_5x52_int128_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_5x52_int128_impl.h; path = secp256k1/field_5x52_int128_impl.h; sourceTree = ""; };
- 403988EED5E437BB90841C4D5AD6AD84 /* Catchable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Catchable.swift; path = Sources/Catchable.swift; sourceTree = ""; };
- 40984850011F770E90D9AF1A2DFD10D9 /* CryptoSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CryptoSwift-prefix.pch"; sourceTree = ""; };
- 4120625976C6424B096CBFCC24C77589 /* Random.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Random.swift; path = Sources/Random.swift; sourceTree = ""; };
- 4132313F5B41AF52383E70762F5D16E9 /* NonceMiddleware.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NonceMiddleware.swift; path = Sources/web3swift/Utils/Hooks/NonceMiddleware.swift; sourceTree = ""; };
- 41E913A912014637E860121E30F483B3 /* web3swift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "web3swift-Info.plist"; sourceTree = ""; };
- 420D248ECC6449AD12E9F8F81EECCD08 /* UInt32+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UInt32+Extension.swift"; path = "Sources/CryptoSwift/UInt32+Extension.swift"; sourceTree = ""; };
+ 348D3A822056DA9F758CE88C8BCF4AFC /* Scrypt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scrypt.swift; path = Sources/CryptoSwift/Scrypt.swift; sourceTree = ""; };
+ 35C3632D8B9C52CB3A6195495FFF0C38 /* DigestType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DigestType.swift; path = Sources/CryptoSwift/DigestType.swift; sourceTree = ""; };
+ 361622BAEDB246B9ED9D2A9761C23953 /* Prime Test.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Prime Test.swift"; path = "Sources/Prime Test.swift"; sourceTree = ""; };
+ 3653276D72A42655B2B0729B777BEF90 /* Web3+WebsocketProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+WebsocketProvider.swift"; path = "Sources/web3swift/Web3/Web3+WebsocketProvider.swift"; sourceTree = ""; };
+ 36906EEAA4C1CCFB8309B5E6525AB7D7 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Sources/Configuration.swift; sourceTree = ""; };
+ 36B22267AF4D657854BDCBC896BAA6BE /* FetchNodeDetails.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FetchNodeDetails.framework; path = "Torus-fetchNodeDetails.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 377E9A7CE9DF99AA0319505346BBAD1D /* secp256k1-config.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "secp256k1-config.h"; path = "secp256k1/secp256k1-config.h"; sourceTree = ""; };
+ 378A5FD7EF699961502B1C5E0D0749EF /* Promise+Web3+Eth+GetGasPrice.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Promise+Web3+Eth+GetGasPrice.swift"; path = "Sources/web3swift/Promises/Promise+Web3+Eth+GetGasPrice.swift"; sourceTree = ""; };
+ 3829511046BFE74550EFE6846AA144DE /* IBAN.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IBAN.swift; path = Sources/web3swift/KeystoreManager/IBAN.swift; sourceTree = ""; };
+ 38966AA6D0DBF781DD324C2FCE96C71F /* String.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = String.swift; path = Sources/FetchNodeDetails/extensions/String.swift; sourceTree = ""; };
+ 3936ADAF803ACF9C9AF43E3304CF7768 /* Torus_utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Torus_utils.framework; path = "Torus-utils.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 3970226F99AFD2A6191DA974A46ADBF6 /* Compression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Compression.swift; path = Sources/Starscream/Compression.swift; sourceTree = ""; };
+ 398B00B6CA1DE96C5FB20FC231F827DB /* web3swift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = web3swift.modulemap; sourceTree = ""; };
+ 39EB4057D49ED7C8CA5F4F0156AFDA25 /* Web3+SecurityToken.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+SecurityToken.swift"; path = "Sources/web3swift/Tokens/ST20/Web3+SecurityToken.swift"; sourceTree = ""; };
+ 3AF227E6E8C51345D611461E620D05E1 /* AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AnyPromise.m; path = Sources/AnyPromise.m; sourceTree = ""; };
+ 3C8486CD1FA2079C816176E7D2314FEE /* BloomFilter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BloomFilter.swift; path = Sources/web3swift/Transaction/BloomFilter.swift; sourceTree = ""; };
+ 3C9A25C154DA98FE5889B22621B5A05B /* PromiseKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PromiseKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 3D3D9A6B96F0D5A9E71BE766DD2B7C75 /* EthereumAddress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EthereumAddress.swift; path = Sources/web3swift/EthereumAddress/EthereumAddress.swift; sourceTree = ""; };
+ 3F114BB3837F863E709A6A8F473B85DD /* Digest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Digest.swift; path = Sources/CryptoSwift/Digest.swift; sourceTree = ""; };
+ 3F3671A673757A47810D7BE2E93A5CA5 /* Web3+ERC1643.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Web3+ERC1643.swift"; path = "Sources/web3swift/Tokens/ERC1643/Web3+ERC1643.swift"; sourceTree = ""; };
+ 3F9E4E90B0A4D836C5E9263CBDA5D362 /* scalar_low.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_low.h; path = secp256k1/scalar_low.h; sourceTree = ""; };
+ 40E53759C32B87F558E26DC855E7A0DD /* hash_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hash_impl.h; path = secp256k1/hash_impl.h; sourceTree = ""; };
+ 418D85F33DE17BDCF62132D68EF1F913 /* Multiplication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Multiplication.swift; path = Sources/Multiplication.swift; sourceTree = ""; };
+ 418FB206F6ED149EAC1AEF0DFE3A788A /* NSTask+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTask+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSTask+AnyPromise.h"; sourceTree = ""; };
+ 4193D7FDE5D8D92188F365EA6442ACBF /* ecdh_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdh_impl.h; path = secp256k1/ecdh_impl.h; sourceTree = ""; };
+ 41A066E90ADF87147B3F46383031EE0C /* num.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = num.h; path = secp256k1/num.h; sourceTree = ""; };
+ 41B3B10C15F9BB97836857280BA865F7 /* ABIEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIEncoding.swift; path = Sources/web3swift/EthereumABI/ABIEncoding.swift; sourceTree = ""; };
421F491B9F8AB1BC9C6616B284D46A65 /* Pods-TestApplication.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TestApplication.release.xcconfig"; sourceTree = ""; };
- 42724263292B57F8FBB10670EA33B0DD /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Utils.swift; path = Sources/CryptoSwift/Utils.swift; sourceTree = ""; };
- 42B7362D4A75B845CA2FAAD5C55DC1EC /* UInt8+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UInt8+Extension.swift"; path = "Sources/CryptoSwift/UInt8+Extension.swift"; sourceTree = ""; };
- 42DEE93C198BC92C8AF1FA5A884121EB /* Process+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Process+Promise.swift"; path = "Extensions/Foundation/Sources/Process+Promise.swift"; sourceTree = ""; };
- 42E257E0B3BA9F49D5CFD076183E0088 /* NSNotificationCenter+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSNotificationCenter+AnyPromise.h"; sourceTree = ""; };
- 42ECEE42C048578595D09D3B164DA9E7 /* AEAD.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AEAD.swift; path = Sources/CryptoSwift/AEAD/AEAD.swift; sourceTree = "