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 66import Foundation
77import CryptoSwift
88
9- public enum BIP39Language {
9+ public enum BIP39Language : CaseIterable {
1010 case english
1111 case chinese_simplified
1212 case chinese_traditional
@@ -124,7 +124,7 @@ public class BIP39 {
124124 public static func generateMnemonicsFromEntropy( entropy: Data , language: BIP39Language = . english) -> String ? {
125125 guard entropy. count >= 16 , entropy. count & 4 == 0 else { return nil }
126126 let separator = language. separator
127- let wordList = generateMnemonicsFrom ( entropy: entropy)
127+ let wordList = generateMnemonicsFrom ( entropy: entropy, language : language )
128128 return wordList. joined ( separator: separator)
129129 }
130130
Original file line number Diff line number Diff line change @@ -11,6 +11,22 @@ import XCTest
1111
1212final class BIP39Tests : XCTestCase {
1313
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+
1430 func testBIP39( ) throws {
1531 var entropy = Data . fromHex ( " 00000000000000000000000000000000 " ) !
1632 var phrase = BIP39 . generateMnemonicsFromEntropy ( entropy: entropy)
You can’t perform that action at this time.
0 commit comments