44
55import Foundation
66
7- public struct KdfParamsV3 : Decodable , Encodable {
7+ public struct KdfParamsV3 : Codable {
88 var salt : String
99 var dklen : Int
1010 var n : Int ?
1111 var p : Int ?
1212 var r : Int ?
1313 var c : Int ?
1414 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+ }
1525}
1626
17- public struct CipherParamsV3 : Decodable , Encodable {
27+ public struct CipherParamsV3 : Codable {
1828 var iv : String
29+
30+ public init ( iv: String ) {
31+ self . iv = iv
32+ }
1933}
2034
21- public struct CryptoParamsV3 : Decodable , Encodable {
35+ public struct CryptoParamsV3 : Codable {
2236 var ciphertext : String
2337 var cipher : String
2438 var cipherparams : CipherParamsV3
2539 var kdf : String
2640 var kdfparams : KdfParamsV3
2741 var mac : String
2842 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+ }
2953}
3054
3155public protocol AbstractKeystoreParams : Codable {
3256 var crypto : CryptoParamsV3 { get }
3357 var id : String ? { get }
3458 var version : Int { get }
3559 var isHDWallet : Bool { get }
36-
3760}
3861
3962public 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+ }
4270}
4371
4472public struct KeystoreParamsBIP32 : AbstractKeystoreParams {
@@ -47,21 +75,7 @@ public struct KeystoreParamsBIP32: AbstractKeystoreParams {
4775 public var version : Int
4876 public var isHDWallet : Bool
4977
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 ]
6579 var rootPath : String ?
6680
6781 public init ( crypto cr: CryptoParamsV3 , id i: String , version ver: Int = 32 , rootPath: String ? = nil ) {
@@ -72,23 +86,20 @@ public struct KeystoreParamsBIP32: AbstractKeystoreParams {
7286 self . rootPath = rootPath
7387 self . isHDWallet = true
7488 }
75-
7689}
7790
7891public struct KeystoreParamsV3 : AbstractKeystoreParams {
92+ public var address : String ?
7993 public var crypto : CryptoParamsV3
8094 public var id : String ?
8195 public var version : Int
8296 public var isHDWallet : Bool
8397
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
91103 self . isHDWallet = false
92104 }
93-
94105}
0 commit comments