@@ -24,20 +24,29 @@ extension UInt32 {
2424public 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