@@ -24,20 +24,29 @@ extension UInt32 {
24
24
public class HDNode {
25
25
private static var maxIterationIndex = UInt32 ( 1 ) << 31
26
26
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.
27
29
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
35
47
}
36
- public static var publicPrefix : Data ? {
37
- HDversion ( ) . publicPrefix
38
- }
39
-
40
48
}
49
+
41
50
public var path : String ? = " m "
42
51
public var privateKey : Data ?
43
52
public var publicKey : Data
0 commit comments