Skip to content

Commit 953785a

Browse files
author
Alex Vlasov
committed
binded synchronous functions to promises
fixed tests
1 parent 4ba4dea commit 953785a

27 files changed

+1234
-778
lines changed

web3swift/HookedFunctions/Classes/Web3+BrowserFunctions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ extension web3.BrowserFunctions {
9191
case .failure(_):
9292
return nil
9393
case .success(let res):
94-
return res
94+
return ["txhash": res.hash]
9595
}
9696
}
9797

web3swift/KeystoreManager/Classes/EthereumKeystoreV3.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ public class EthereumKeystoreV3: AbstractKeystore {
8484
let saltLen = 32;
8585
guard let saltData = Data.randomBytes(length: saltLen) else {throw AbstractKeystoreError.noEntropyError}
8686
guard let derivedKey = scrypt(password: password, salt: saltData, length: dkLen, N: N, R: R, P: P) else {throw AbstractKeystoreError.keyDerivationError}
87-
let last16bytes = derivedKey[(derivedKey.count - 16)...(derivedKey.count-1)]
88-
let encryptionKey = derivedKey[0...15]
87+
let last16bytes = Data(derivedKey[(derivedKey.count - 16)...(derivedKey.count-1)])
88+
let encryptionKey = Data(derivedKey[0...15])
8989
guard let IV = Data.randomBytes(length: 16) else {throw AbstractKeystoreError.noEntropyError}
9090
var aesCipher : AES?
9191
switch aesMode {
@@ -148,7 +148,7 @@ public class EthereumKeystoreV3: AbstractKeystore {
148148
default:
149149
hashVariant = nil
150150
}
151-
guard (hashVariant != nil) else {return nil}
151+
guard hashVariant != nil else {return nil}
152152
guard let c = keystoreParams.crypto.kdfparams.c else {return nil}
153153
guard let passData = password.data(using: .utf8) else {return nil}
154154
guard let derivedArray = try? PKCS5.PBKDF2(password: passData.bytes, salt: saltData.bytes, iterations: c, keyLength: derivedLen, variant: hashVariant!).calculate() else {return nil}
@@ -158,7 +158,7 @@ public class EthereumKeystoreV3: AbstractKeystore {
158158
}
159159
guard let derivedKey = passwordDerivedKey else {return nil}
160160
var dataForMAC = Data()
161-
let derivedKeyLast16bytes = derivedKey[(derivedKey.count - 16)...(derivedKey.count - 1)]
161+
let derivedKeyLast16bytes = Data(derivedKey[(derivedKey.count - 16)...(derivedKey.count - 1)])
162162
dataForMAC.append(derivedKeyLast16bytes)
163163
guard let cipherText = Data.fromHex(keystoreParams.crypto.ciphertext) else {return nil}
164164
if (cipherText.count != 32) {return nil}

web3swift/Promises/Classes/Promise+HttpProvider.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ extension Web3HttpProvider {
8787
return rp.promise.ensure(on: queue) {
8888
task = nil
8989
}.map(on: queue){ (data: Data) throws -> JSONRPCresponseBatch in
90-
// let debugValue = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions(rawValue: 0))
91-
// print(debugValue)
90+
let debugValue = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions(rawValue: 0))
91+
print(debugValue)
9292
let parsedResponse = try JSONDecoder().decode(JSONRPCresponseBatch.self, from: data)
9393
return parsedResponse
9494
}

web3swift/Promises/Classes/Promise+Web3+Contract+GetIndexedEvents.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ extension web3.web3contract {
2929
let request = JSONRPCRequestFabric.prepareRequest(.getLogs, parameters: [preEncoding])
3030
let fetchLogsPromise = self.web3.dispatch(request).map(on: queue) {response throws -> [EventParserResult] in
3131
guard let value: [EventLog] = response.getValue() else {
32+
if response.error != nil {
33+
throw Web3Error.nodeError(response.error!.message)
34+
}
3235
throw Web3Error.nodeError("Empty or malformed response")
3336
}
3437
let allLogs = value

web3swift/Promises/Classes/Promise+Web3+Eth+Call.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ extension web3.Eth {
2020
let rp = web3.dispatch(request)
2121
return rp.map(on: queue ) { response in
2222
guard let value: Data = response.getValue() else {
23+
if response.error != nil {
24+
throw Web3Error.nodeError(response.error!.message)
25+
}
2326
throw Web3Error.nodeError("Invalid value from Ethereum node")
2427
}
2528
return value

web3swift/Promises/Classes/Promise+Web3+Eth+EstimateGas.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ extension web3.Eth {
2121
let rp = web3.dispatch(request)
2222
return rp.map(on: queue ) { response in
2323
guard let value: BigUInt = response.getValue() else {
24+
if response.error != nil {
25+
throw Web3Error.nodeError(response.error!.message)
26+
}
2427
throw Web3Error.nodeError("Invalid value from Ethereum node")
2528
}
2629
return value

web3swift/Promises/Classes/Promise+Web3+Eth+GetAccounts.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ extension web3.Eth {
3030
let rp = web3.dispatch(request)
3131
return rp.map(on: queue ) { response in
3232
guard let value: [EthereumAddress] = response.getValue() else {
33+
if response.error != nil {
34+
throw Web3Error.nodeError(response.error!.message)
35+
}
3336
throw Web3Error.nodeError("Invalid value from Ethereum node")
3437
}
3538
return value

web3swift/Promises/Classes/Promise+Web3+Eth+GetBalance.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ extension web3.Eth {
2121
let queue = web3.requestDispatcher.queue
2222
return rp.map(on: queue ) { response in
2323
guard let value: BigUInt = response.getValue() else {
24+
if response.error != nil {
25+
throw Web3Error.nodeError(response.error!.message)
26+
}
2427
throw Web3Error.nodeError("Invalid value from Ethereum node")
2528
}
2629
return value

web3swift/Promises/Classes/Promise+Web3+Eth+GetBlockByHash.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ extension web3.Eth {
2222
let queue = web3.requestDispatcher.queue
2323
return rp.map(on: queue ) { response in
2424
guard let value: Block = response.getValue() else {
25+
if response.error != nil {
26+
throw Web3Error.nodeError(response.error!.message)
27+
}
2528
throw Web3Error.nodeError("Invalid value from Ethereum node")
2629
}
2730
return value
28-
// let reencoded = try JSONSerialization.data(withJSONObject: value, options: JSONSerialization.WritingOptions(rawValue: 0))
29-
// let details = try JSONDecoder().decode(Block.self, from: reencoded)
30-
// return details
3131
}
3232
}
3333
}

web3swift/Promises/Classes/Promise+Web3+Eth+GetBlockByNumber.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ extension web3.Eth {
2727
let queue = web3.requestDispatcher.queue
2828
return rp.map(on: queue ) { response in
2929
guard let value: Block = response.getValue() else {
30+
if response.error != nil {
31+
throw Web3Error.nodeError(response.error!.message)
32+
}
3033
throw Web3Error.nodeError("Invalid value from Ethereum node")
3134
}
3235
return value
33-
// let reencoded = try JSONSerialization.data(withJSONObject: value, options: JSONSerialization.WritingOptions(rawValue: 0))
34-
// let details = try JSONDecoder().decode(Block.self, from: reencoded)
35-
// return details
3636
}
3737
}
3838
}

0 commit comments

Comments
 (0)