Skip to content

Commit e016500

Browse files
PR fixups.
Add Web3Error.clientError(code: Int)
1 parent ef740e4 commit e016500

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Sources/Core/EthereumNetwork/Request/APIRequest+Methods.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,13 @@ extension APIRequest {
2626
public static func send<Result>(uRLRequest: URLRequest, with session: URLSession) async throws -> APIResponse<Result> {
2727
let (data, response) = try await session.data(for: uRLRequest)
2828

29-
guard 200 ..< 400 ~= response.statusCode else { throw Web3Error.serverError(code: response.statusCode) }
29+
guard 200 ..< 400 ~= response.statusCode else {
30+
if 400 ..< 500 ~= response.statusCode {
31+
throw Web3Error.clientError(code: response.statusCode)
32+
} else {
33+
throw Web3Error.serverError(code: response.statusCode)
34+
}
35+
}
3036

3137
/// This bit of code is purposed to work with literal types that comes in Response in hexString type.
3238
/// Currently it's just `Data` and any kind of Integers `(U)Int`, `Big(U)Int`.

Sources/Core/Web3Error/Web3Error.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public enum Web3Error: Error {
1515
case typeError
1616
case valueError
1717
case serverError(code: Int)
18+
case clientError(code: Int)
1819

1920
case walletError
2021
case inputError(desc: String)
@@ -52,6 +53,8 @@ public enum Web3Error: Error {
5253
return "Unsupported type"
5354
case let .serverError(code: code):
5455
return "Server error: \(code)"
56+
case let .clientError(code: code):
57+
return "Client error: \(code)"
5558
case .valueError:
5659
return "You're passing value that doesn't supported by this method."
5760
}

0 commit comments

Comments
 (0)