4
4
5
5
import Foundation
6
6
7
- public struct KdfParamsV3 : Decodable , Encodable {
7
+ public struct KdfParamsV3 : Codable {
8
8
var salt : String
9
9
var dklen : Int
10
10
var n : Int ?
11
11
var p : Int ?
12
12
var r : Int ?
13
13
var c : Int ?
14
14
var prf : String ?
15
+
16
+ public init ( salt: String , dklen: Int , n: Int ? = nil , p: Int ? = nil , r: Int ? = nil , c: Int ? = nil , prf: String ? = nil ) {
17
+ self . salt = salt
18
+ self . dklen = dklen
19
+ self . n = n
20
+ self . p = p
21
+ self . r = r
22
+ self . c = c
23
+ self . prf = prf
24
+ }
15
25
}
16
26
17
- public struct CipherParamsV3 : Decodable , Encodable {
27
+ public struct CipherParamsV3 : Codable {
18
28
var iv : String
29
+
30
+ public init ( iv: String ) {
31
+ self . iv = iv
32
+ }
19
33
}
20
34
21
- public struct CryptoParamsV3 : Decodable , Encodable {
35
+ public struct CryptoParamsV3 : Codable {
22
36
var ciphertext : String
23
37
var cipher : String
24
38
var cipherparams : CipherParamsV3
25
39
var kdf : String
26
40
var kdfparams : KdfParamsV3
27
41
var mac : String
28
42
var version : String ?
43
+
44
+ public init ( ciphertext: String , cipher: String , cipherparams: CipherParamsV3 , kdf: String , kdfparams: KdfParamsV3 , mac: String , version: String ? = nil ) {
45
+ self . ciphertext = ciphertext
46
+ self . cipher = cipher
47
+ self . cipherparams = cipherparams
48
+ self . kdf = kdf
49
+ self . kdfparams = kdfparams
50
+ self . mac = mac
51
+ self . version = version
52
+ }
29
53
}
30
54
31
55
public protocol AbstractKeystoreParams : Codable {
32
56
var crypto : CryptoParamsV3 { get }
33
57
var id : String ? { get }
34
58
var version : Int { get }
35
59
var isHDWallet : Bool { get }
36
-
37
60
}
38
61
39
62
public struct PathAddressPair : Codable {
40
- let path : String
41
- let address : String
63
+ public let path : String
64
+ public let address : String
65
+
66
+ public init ( path: String , address: String ) {
67
+ self . path = path
68
+ self . address = address
69
+ }
42
70
}
43
71
44
72
public struct KeystoreParamsBIP32 : AbstractKeystoreParams {
@@ -47,21 +75,7 @@ public struct KeystoreParamsBIP32: AbstractKeystoreParams {
47
75
public var version : Int
48
76
public var isHDWallet : Bool
49
77
50
- @available ( * , deprecated, message: " Please use pathAddressPairs instead " )
51
- var pathToAddress : [ String : String ] {
52
- get {
53
- return self . pathAddressPairs. reduce ( into: [ String: String] ( ) ) {
54
- $0 [ $1. path] = $1. address
55
- }
56
- }
57
- set {
58
- for pair in newValue {
59
- self . pathAddressPairs. append ( PathAddressPair ( path: pair. 0 , address: pair. 1 ) )
60
- }
61
- }
62
- }
63
-
64
- var pathAddressPairs : [ PathAddressPair ]
78
+ public internal( set) var pathAddressPairs : [ PathAddressPair ]
65
79
var rootPath : String ?
66
80
67
81
public init ( crypto cr: CryptoParamsV3 , id i: String , version ver: Int = 32 , rootPath: String ? = nil ) {
@@ -72,23 +86,20 @@ public struct KeystoreParamsBIP32: AbstractKeystoreParams {
72
86
self . rootPath = rootPath
73
87
self . isHDWallet = true
74
88
}
75
-
76
89
}
77
90
78
91
public struct KeystoreParamsV3 : AbstractKeystoreParams {
92
+ public var address : String ?
79
93
public var crypto : CryptoParamsV3
80
94
public var id : String ?
81
95
public var version : Int
82
96
public var isHDWallet : Bool
83
97
84
- var address : String ?
85
-
86
- public init ( address ad: String ? , crypto cr: CryptoParamsV3 , id i: String , version ver: Int ) {
87
- address = ad
88
- self . crypto = cr
89
- self . id = i
90
- self . version = ver
98
+ public init ( address: String ? , crypto: CryptoParamsV3 , id: String , version: Int ) {
99
+ self . address = address
100
+ self . crypto = crypto
101
+ self . id = id
102
+ self . version = version
91
103
self . isHDWallet = false
92
104
}
93
-
94
105
}
0 commit comments