@@ -47,4 +47,39 @@ class UtilitiesTests: XCTestCase {
4747 XCTAssertEqual ( test. input. decimals, test. output)
4848 }
4949 }
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+ }
5085}
0 commit comments