Skip to content

Commit 5014bc4

Browse files
chore: HDversion refactoring + documentation
1 parent d146895 commit 5014bc4

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

Sources/Web3Core/KeystoreManager/BIP32HDNode.swift

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,29 @@ extension UInt32 {
2424
public class HDNode {
2525
private static var maxIterationIndex = UInt32(1) << 31
2626

27+
/// Contains private and public prefixes for serialization.
28+
/// See [BIP-32's serialization format](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#serialization-format) for more info.
2729
public struct HDversion {
28-
// swiftlint:disable force_unwrapping
29-
public var privatePrefix: Data = Data.fromHex("0x0488ADE4")!
30-
public var publicPrefix: Data = Data.fromHex("0x0488B21E")!
31-
// swiftlint:enable force_unwrapping
32-
public init() {}
33-
public static var privatePrefix: Data? {
34-
HDversion().privatePrefix
30+
/// Mainnet public key prefix.
31+
/// Value `0x0488B21E` is a string `xpub` encoded as Base-58 and later as hexadecimal.
32+
public static let publicPrefix: Data! = Data.fromHex("0x0488B21E")
33+
34+
/// Mainnet private key prefix.
35+
/// Value `0x0488ADE4` is a string `xprv` encoded as Base-58 and later as hexadecimal.
36+
public static let privatePrefix: Data! = Data.fromHex("0x0488ADE4")
37+
38+
public let publicPrefix: Data
39+
public let privatePrefix: Data
40+
41+
/// Default values for `publicPrefix` and `privatePrefix` are
42+
/// `HDversion.publicPrefix` and `HDversion.privatePrefix` respectively.
43+
public init(public publicPrefix: Data = HDversion.publicPrefix,
44+
private privatePrefix: Data = HDversion.privatePrefix) {
45+
self.publicPrefix = publicPrefix
46+
self.privatePrefix = privatePrefix
3547
}
36-
public static var publicPrefix: Data? {
37-
HDversion().publicPrefix
38-
}
39-
4048
}
49+
4150
public var path: String? = "m"
4251
public var privateKey: Data?
4352
public var publicKey: Data

0 commit comments

Comments
 (0)