@@ -47,4 +47,39 @@ class UtilitiesTests: XCTestCase {
47
47
XCTAssertEqual ( test. input. decimals, test. output)
48
48
}
49
49
}
50
+
51
+ func testPublicKeyWithNoPrefixToAddress( ) throws {
52
+ var address = Utilities . publicToAddress ( Data . fromHex ( " 0x18ed2e1ec629e2d3dae7be1103d4f911c24e0c80e70038f5eb5548245c475f504c220d01e1ca419cb1ba4b3393b615e99dd20aa6bf071078f70fd949008e7411 " ) !) ? . address
53
+ XCTAssertEqual ( address, " 0x28828f43df370651AC5A6cFd02fBD0885Fbb3c00 " )
54
+ address = Utilities . publicToAddress ( Data . fromHex ( " 0x52972572d465d016d4c501887b8df303eee3ed602c056b1eb09260dfa0da0ab288742f4dc97d9edb6fd946babc002fdfb06f26caf117b9405ed79275763fdb1c " ) !) ? . address
55
+ XCTAssertEqual ( address, " 0x6eDBe1F6D48FbF1b053D6c9FA7997C710B84f55F " )
56
+ }
57
+
58
+ func testPublicKeyWithPrefixToAddress( ) throws {
59
+ var address = Utilities . publicToAddress ( Data . fromHex ( " 0x0418ed2e1ec629e2d3dae7be1103d4f911c24e0c80e70038f5eb5548245c475f504c220d01e1ca419cb1ba4b3393b615e99dd20aa6bf071078f70fd949008e7411 " ) !) ? . address
60
+ XCTAssertEqual ( address, " 0x28828f43df370651AC5A6cFd02fBD0885Fbb3c00 " )
61
+ address = Utilities . publicToAddress ( Data . fromHex ( " 0x0452972572d465d016d4c501887b8df303eee3ed602c056b1eb09260dfa0da0ab288742f4dc97d9edb6fd946babc002fdfb06f26caf117b9405ed79275763fdb1c " ) !) ? . address
62
+ XCTAssertEqual ( address, " 0x6eDBe1F6D48FbF1b053D6c9FA7997C710B84f55F " )
63
+ }
64
+
65
+ func testPublicKeyWithInvalidPrefixToAddress( ) throws {
66
+ var address = Utilities . publicToAddress ( Data . fromHex ( " 0x0318ed2e1ec629e2d3dae7be1103d4f911c24e0c80e70038f5eb5548245c475f504c220d01e1ca419cb1ba4b3393b615e99dd20aa6bf071078f70fd949008e7411 " ) !) ? . address
67
+ XCTAssertEqual ( address, nil )
68
+ address = Utilities . publicToAddress ( Data . fromHex ( " 0x0152972572d465d016d4c501887b8df303eee3ed602c056b1eb09260dfa0da0ab288742f4dc97d9edb6fd946babc002fdfb06f26caf117b9405ed79275763fdb1c " ) !) ? . address
69
+ XCTAssertEqual ( address, nil )
70
+ }
71
+
72
+ func testCompressedPublicKeyToAddress( ) throws {
73
+ var address = Utilities . publicToAddress ( Data . fromHex ( " 0x0318ed2e1ec629e2d3dae7be1103d4f911c24e0c80e70038f5eb5548245c475f50 " ) !) ? . address
74
+ XCTAssertEqual ( address, " 0x28828f43df370651AC5A6cFd02fBD0885Fbb3c00 " )
75
+ address = Utilities . publicToAddress ( Data . fromHex ( " 0x0252972572d465d016d4c501887b8df303eee3ed602c056b1eb09260dfa0da0ab2 " ) !) ? . address
76
+ XCTAssertEqual ( address, " 0x6eDBe1F6D48FbF1b053D6c9FA7997C710B84f55F " )
77
+ }
78
+
79
+ func testCompressedPublicKeyWithInvalidPrefixToAddress( ) throws {
80
+ var address = Utilities . publicToAddress ( Data . fromHex ( " 0x0718ed2e1ec629e2d3dae7be1103d4f911c24e0c80e70038f5eb5548245c475f50 " ) !) ? . address
81
+ XCTAssertEqual ( address, nil )
82
+ address = Utilities . publicToAddress ( Data . fromHex ( " 0x0852972572d465d016d4c501887b8df303eee3ed602c056b1eb09260dfa0da0ab2 " ) !) ? . address
83
+ XCTAssertEqual ( address, nil )
84
+ }
50
85
}
0 commit comments