if (seed != null && mnemonicPhrase != null) {
throw new Error('Seed or mnemonic phrase must be verified separately')
}
+ const expected = seed != null ? new Uint8Array(seed) : utf8.toBytes(mnemonicPhrase ?? '')
+ const actual = seed != null ? new Uint8Array(_seed) : new Uint8Array(_mnemonic ?? [])
let isVerified = false
- if (seed != null) {
- let diff = 0
- const userSeed = new Uint8Array(seed)
- const thisSeed = new Uint8Array(_seed)
- for (let i = 0; i < userSeed.byteLength; i++) {
- diff |= userSeed[i] ^ thisSeed[i]
- }
- isVerified = diff === 0
- }
- if (mnemonicPhrase != null) {
- let diff = 0
- const userMnemonic = utf8.toBytes(mnemonicPhrase)
- const thisMnemonic = new Uint8Array(_mnemonic ?? [])
- for (let i = 0; i < userMnemonic.byteLength; i++) {
- diff |= userMnemonic[i] ^ thisMnemonic[i]
- }
- isVerified = diff === 0
+ let diff = 0
+ for (let i = 0; i < expected.byteLength; i++) {
+ diff |= expected[i] ^ actual[i]
}
+ isVerified = diff === 0 && expected.byteLength === actual.byteLength
return Promise.resolve({ isVerified })
} catch (err) {
console.error(err)