@@ -8,17 +8,28 @@ import Web3Core
8
8
@testable import web3swift
9
9
10
10
final class BIP44Tests : LocalTestCase {
11
-
12
- private let mnemonic = " fruit wave dwarf banana earth journey tattoo true farm silk olive fence "
13
11
14
- func testBIP44DeriveWithoutWarningIfChildNodeHasPreviousChildsWithTransactions( ) async throws {
15
- let seed = try XCTUnwrap ( BIP39 . seedFromMmemonics ( mnemonic, password: " " ) )
16
- let rootNode = try XCTUnwrap ( HDNode ( seed: seed) )
12
+ func testDeriveNoWarn( ) async throws {
13
+ let rootNode = try rootNode ( )
17
14
18
- let optChildNode = try await rootNode. derive ( path: " m/44'/60'/1'/0/1 " , warns: false )
19
- let childNode = try XCTUnwrap ( optChildNode)
15
+ let childNode = try await rootNode. derive ( path: " m/44'/60'/8096'/0/1 " , warns: false )
20
16
21
- XCTAssertEqual ( childNode. publicKey. toHexString ( ) , " 03fe5fad1740a0c749c3c976c9b37f337204bf3df1d73d78da282dd365a7d47ad9 " )
22
- XCTAssertEqual ( Utilities . publicToAddress ( childNode. publicKey) ? . address, " 0x73C13e421eF367c4F55BBC02a8e2a2b12e82f717 " )
17
+ XCTAssertEqual ( try XCTUnwrap ( childNode) . publicKey. toHexString ( ) , " 035785d4918449c87892371c0f9ccf6e4eda40a7fb0f773f1254c064d3bba64026 " )
18
+ }
19
+
20
+ func testAccountZeroCanBeDerived( ) async throws {
21
+ let rootNode = try rootNode ( )
22
+
23
+ let childNode = try await rootNode. derive ( path: " m/44'/60'/0'/0/255 " , warns: true )
24
+
25
+ XCTAssertEqual ( try XCTUnwrap ( childNode) . publicKey. toHexString ( ) , " 0262fba1af8f149258123265318114066decf50d16c1222a9d657b7de2296c2734 " )
26
+ }
27
+
28
+ // MARK: - private
29
+
30
+ private func rootNode( ) throws -> HDNode {
31
+ let mnemonic = " fruit wave dwarf banana earth journey tattoo true farm silk olive fence "
32
+ let seed = try XCTUnwrap ( BIP39 . seedFromMmemonics ( mnemonic, password: " " ) )
33
+ return try XCTUnwrap ( HDNode ( seed: seed) )
23
34
}
24
35
}
0 commit comments