File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed
Sources/Web3Core/KeystoreManager
Tests/web3swiftTests/localTests Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change 6
6
import Foundation
7
7
import CryptoSwift
8
8
9
- public enum BIP39Language {
9
+ public enum BIP39Language : CaseIterable {
10
10
case english
11
11
case chinese_simplified
12
12
case chinese_traditional
@@ -124,7 +124,7 @@ public class BIP39 {
124
124
public static func generateMnemonicsFromEntropy( entropy: Data , language: BIP39Language = . english) -> String ? {
125
125
guard entropy. count >= 16 , entropy. count & 4 == 0 else { return nil }
126
126
let separator = language. separator
127
- let wordList = generateMnemonicsFrom ( entropy: entropy)
127
+ let wordList = generateMnemonicsFrom ( entropy: entropy, language : language )
128
128
return wordList. joined ( separator: separator)
129
129
}
130
130
Original file line number Diff line number Diff line change @@ -11,6 +11,22 @@ import XCTest
11
11
12
12
final class BIP39Tests : XCTestCase {
13
13
14
+ func testAllLanguageMnemonics( ) throws {
15
+ for language in BIP39Language . allCases {
16
+ guard let newMnemonics = try BIP39 . generateMnemonics ( bitsOfEntropy: 128 , language: language) else {
17
+ XCTFail ( " Failed to generate BIP39 mnemonics phrase " )
18
+ return
19
+ }
20
+ let wordsOfNewMnemonic = newMnemonics. split ( separator: language. separator) . map { String ( $0) }
21
+ for word in wordsOfNewMnemonic {
22
+ guard language. words. contains ( word) else {
23
+ XCTFail ( " Given word is not contained in the list of words of selected language available for mnemonics generation: \( word) ; \( language) " )
24
+ return
25
+ }
26
+ }
27
+ }
28
+ }
29
+
14
30
func testBIP39( ) throws {
15
31
var entropy = Data . fromHex ( " 00000000000000000000000000000000 " ) !
16
32
var phrase = BIP39 . generateMnemonicsFromEntropy ( entropy: entropy)
You can’t perform that action at this time.
0 commit comments