Skip to content

Commit

Permalink
Add .invalidBool to be used instead of .decodingError
Browse files Browse the repository at this point in the history
  • Loading branch information
DelevoXDG committed Apr 5, 2024
1 parent 759afd0 commit 28b288e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
7 changes: 4 additions & 3 deletions Sources/Starknet/Data/TypedData/StarknetTypedData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public enum StarknetTypedDataError: Error, Equatable {
case contextNotDefined
case parentNotDefined
case keyNotDefined
case invalidBool(StarknetTypedData.Element)
case invalidMerkleTree
case invalidShortString
case encodingError
Expand Down Expand Up @@ -451,18 +452,18 @@ extension StarknetTypedData {
switch element {
case let .felt(felt):
guard felt == .zero || felt == .one else {
throw StarknetTypedDataError.decodingError
throw StarknetTypedDataError.invalidBool(element)
}
return felt
case let .bool(bool):
return bool ? .one : .zero
case let .string(string):
guard let bool = Bool(string) else {
throw StarknetTypedDataError.decodingError
throw StarknetTypedDataError.invalidBool(element)
}
return bool ? .one : .zero
default:
throw StarknetTypedDataError.decodingError
throw StarknetTypedDataError.invalidBool(element)
}
}

Expand Down
10 changes: 10 additions & 0 deletions Tests/StarknetTests/Data/TypedDataTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,16 @@ final class TypedDataTests: XCTestCase {
}
}

func testEncodeInvalidBool() throws {
let cases: [any Encodable] = [2, "2", "0x123"]
for input in cases {
let element = try JSONDecoder().decode(StarknetTypedData.Element.self, from: JSONEncoder().encode(input))
XCTAssertThrowsError(try CasesRev1.td.encode(element: element, forType: "bool")) { error in
XCTAssertEqual(error as? StarknetTypedDataError, .invalidBool(element))
}
}
}

func testEncodeType() throws {
let cases: [(StarknetTypedData, String, String)] =
[
Expand Down

0 comments on commit 28b288e

Please sign in to comment.