forked from Qortal/qortal-ui
29 lines
752 B
JavaScript
29 lines
752 B
JavaScript
import { kdf } from './kdf'
|
|
import PhraseWallet from './PhraseWallet'
|
|
import Base58 from './deps/Base58'
|
|
import { decryptStoredWallet } from './decryptStoredWallet'
|
|
|
|
export const createWallet = async (sourceType, source, statusUpdateFn) => {
|
|
let version, seed
|
|
|
|
switch (sourceType) {
|
|
case 'phrase':
|
|
version = 2
|
|
seed = await kdf(source.seedPhrase, void 0, statusUpdateFn)
|
|
break
|
|
case 'seed':
|
|
version = 1
|
|
seed = Base58.decode(source.seed)
|
|
break
|
|
case 'storedWallet':
|
|
case 'backedUpSeed':
|
|
version = source.wallet.version
|
|
seed = await decryptStoredWallet(source.password, source.wallet, statusUpdateFn)
|
|
break
|
|
default:
|
|
throw 'sourceType ' + sourceType + ' not recognized'
|
|
}
|
|
|
|
return new PhraseWallet(seed, version)
|
|
}
|