assert.ok('mnemonic' in wallet)\r
assert.ok('seed' in wallet)\r
assert.ok(account instanceof Account)\r
- assert.throws(() => wallet.mnemonic)\r
- assert.equal(wallet.seed, NANO_TEST_VECTORS.BIP39_SEED)\r
+ assert.ok(wallet.mnemonic === undefined)\r
+ assert.ok(await wallet.verify(NANO_TEST_VECTORS.BIP39_SEED))\r
assert.equal(account.publicKey, NANO_TEST_VECTORS.PUBLIC_0)\r
assert.equal(account.address, NANO_TEST_VECTORS.ADDRESS_0)\r
\r
})\r
\r
await test('Trezor-derived BIP-44 entropy for 12-word mnemonic', async () => {\r
- const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_0)\r
+ const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.MNEMONIC_0)\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const account = await wallet.account()\r
\r
- assert.equal(wallet.mnemonic, CUSTOM_TEST_VECTORS.MNEMONIC_0)\r
- assert.equal(wallet.seed, CUSTOM_TEST_VECTORS.SEED_0)\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.MNEMONIC_0))\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.SEED_0))\r
assert.equal(account.publicKey, CUSTOM_TEST_VECTORS.PUBLIC_0)\r
assert.equal(account.address, CUSTOM_TEST_VECTORS.ADDRESS_0)\r
\r
})\r
\r
await test('Trezor-derived BIP-44 entropy for 15-word mnemonic', async () => {\r
- const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_1)\r
+ const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.MNEMONIC_1)\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const account = await wallet.account()\r
\r
- assert.equal(wallet.mnemonic, CUSTOM_TEST_VECTORS.MNEMONIC_1)\r
- assert.equal(wallet.seed, CUSTOM_TEST_VECTORS.SEED_1)\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.MNEMONIC_1))\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.SEED_1))\r
assert.equal(account.publicKey, CUSTOM_TEST_VECTORS.PUBLIC_1)\r
assert.equal(account.address, CUSTOM_TEST_VECTORS.ADDRESS_1)\r
\r
})\r
\r
await test('Trezor-derived BIP-44 entropy for 18-word mnemonic', async () => {\r
- const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_2)\r
+ const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.MNEMONIC_2)\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const account = await wallet.account()\r
\r
- assert.equal(wallet.mnemonic, CUSTOM_TEST_VECTORS.MNEMONIC_2)\r
- assert.equal(wallet.seed, CUSTOM_TEST_VECTORS.SEED_2)\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.MNEMONIC_2))\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.SEED_2))\r
assert.equal(account.publicKey, CUSTOM_TEST_VECTORS.PUBLIC_2)\r
assert.equal(account.address, CUSTOM_TEST_VECTORS.ADDRESS_2)\r
\r
})\r
\r
await test('Trezor-derived BIP-44 entropy for 21-word mnemonic', async () => {\r
- const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_3)\r
+ const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.MNEMONIC_3)\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const account = await wallet.account()\r
\r
- assert.equal(wallet.mnemonic, CUSTOM_TEST_VECTORS.MNEMONIC_3)\r
- assert.equal(wallet.seed, CUSTOM_TEST_VECTORS.SEED_3)\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.MNEMONIC_3))\r
+ assert.ok(await wallet.verify(CUSTOM_TEST_VECTORS.SEED_3))\r
assert.equal(account.publicKey, CUSTOM_TEST_VECTORS.PUBLIC_3)\r
assert.equal(account.address, CUSTOM_TEST_VECTORS.ADDRESS_3)\r
\r
})\r
\r
await test('BIP-44 zero-string entropy', async () => {\r
- const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0, TREZOR_TEST_VECTORS.PASSWORD)\r
+ const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_0, TREZOR_TEST_VECTORS.PASSWORD)\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const accounts = await wallet.accounts(0, 3)\r
\r
assert.ok('mnemonic' in wallet)\r
assert.ok('seed' in wallet)\r
- assert.equal(wallet.mnemonic, TREZOR_TEST_VECTORS.MNEMONIC_0)\r
- assert.equal(wallet.seed, TREZOR_TEST_VECTORS.SEED_0.toUpperCase())\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.MNEMONIC_0))\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.SEED_0))\r
assert.equal(accounts.length, 4)\r
\r
for (let i = 0; i < accounts.length; i++) {\r
})\r
\r
await test('BLAKE2b zero-string seed', async () => {\r
- const wallet = await Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0)\r
+ const wallet = await Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_0)\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const accounts = await wallet.accounts(0, 3)\r
\r
assert.ok('mnemonic' in wallet)\r
assert.ok('seed' in wallet)\r
- assert.equal(wallet.mnemonic, TREZOR_TEST_VECTORS.MNEMONIC_0)\r
- assert.equal(wallet.seed, TREZOR_TEST_VECTORS.ENTROPY_0)\r
+ assert.ok(wallet.mnemonic === undefined)\r
+ assert.ok(wallet.seed === undefined)\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.MNEMONIC_0))\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.ENTROPY_0))\r
assert.equal(accounts.length, 4)\r
\r
for (let i = 0; i < accounts.length; i++) {\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const accounts = await wallet.accounts(0, 1)\r
\r
- assert.ok('mnemonic' in wallet)\r
- assert.ok('seed' in wallet)\r
- assert.equal(wallet.mnemonic, TREZOR_TEST_VECTORS.MNEMONIC_1)\r
- assert.equal(wallet.seed, TREZOR_TEST_VECTORS.ENTROPY_1)\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.MNEMONIC_1))\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.ENTROPY_1))\r
\r
assert.ok(accounts[0] instanceof Account)\r
assert.equal(accounts[0].publicKey, TREZOR_TEST_VECTORS.BLAKE2B_1_PUBLIC_0)\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const walletAccount = await wallet.account()\r
\r
- assert.ok('mnemonic' in wallet)\r
- assert.ok('seed' in wallet)\r
- assert.exists(walletAccount)\r
- assert.equal(wallet.mnemonic, TREZOR_TEST_VECTORS.MNEMONIC_2)\r
- assert.equal(wallet.seed, TREZOR_TEST_VECTORS.ENTROPY_2)\r
+ assert.equal(await wallet.verify(TREZOR_TEST_VECTORS.MNEMONIC_2), false)\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.ENTROPY_2))\r
\r
const imported = await Wallet.import('BLAKE2b', TREZOR_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_2)\r
await imported.unlock(TREZOR_TEST_VECTORS.PASSWORD)\r
const importedAccount = await imported.account()\r
\r
- assert.equal(imported.mnemonic, wallet.mnemonic)\r
- assert.equal(imported.seed, wallet.seed)\r
+ assert.ok(await imported.verify(TREZOR_TEST_VECTORS.MNEMONIC_2))\r
+ assert.ok(await imported.verify(TREZOR_TEST_VECTORS.ENTROPY_2))\r
assert.equal(importedAccount.publicKey, walletAccount.publicKey)\r
\r
await assert.resolves(wallet.destroy())\r
await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
const account = await wallet.account()\r
\r
- assert.ok('mnemonic' in wallet)\r
- assert.ok('seed' in wallet)\r
assert.ok(account instanceof Account)\r
- assert.equal(wallet.mnemonic, TREZOR_TEST_VECTORS.MNEMONIC_3)\r
- assert.equal(wallet.seed, TREZOR_TEST_VECTORS.ENTROPY_3)\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.MNEMONIC_3))\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.ENTROPY_3))\r
assert.equal(account.publicKey, TREZOR_TEST_VECTORS.BLAKE2B_3_PUBLIC_0)\r
assert.equal(account.address, TREZOR_TEST_VECTORS.BLAKE2B_3_ADDRESS_0)\r
\r
await assert.resolves(wallet.destroy())\r
})\r
\r
- await test('Reject invalid entropy', async () => {\r
+ await test('Reject invalid seed', async () => {\r
await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, '6CAF5A42BB8074314AAE20295975ECE663BE7AAD945A73613D193B0CC41C797'))\r
await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, '6CAF5A42BB8074314AAE20295975ECE663BE7AAD945A73613D193B0CC41C79701'))\r
await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0.replaceAll(/./g, 'x')))\r
\r
assert.ok('mnemonic' in wallet)\r
assert.ok('seed' in wallet)\r
- assert.throws(() => wallet.mnemonic)\r
- assert.throws(() => wallet.seed)\r
+ assert.ok(wallet.mnemonic === undefined)\r
+ assert.ok(wallet.seed === undefined)\r
+ await assert.rejects(wallet.verify(NANO_TEST_VECTORS.MNEMONIC))\r
+ await assert.rejects(wallet.verify(NANO_TEST_VECTORS.BIP39_SEED))\r
\r
const unlockResult = await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
\r
assert.equal(unlockResult, true)\r
- assert.ok('mnemonic' in wallet)\r
- assert.ok('seed' in wallet)\r
- assert.equal(wallet.mnemonic, NANO_TEST_VECTORS.MNEMONIC)\r
- assert.equal(wallet.seed, NANO_TEST_VECTORS.BIP39_SEED)\r
+ assert.ok(await wallet.verify(NANO_TEST_VECTORS.MNEMONIC))\r
+ assert.ok(await wallet.verify(NANO_TEST_VECTORS.BIP39_SEED))\r
\r
await assert.resolves(wallet.destroy())\r
})\r
\r
assert.ok('mnemonic' in wallet)\r
assert.ok('seed' in wallet)\r
- assert.throws(() => wallet.mnemonic)\r
- assert.throws(() => wallet.seed)\r
+ assert.ok(wallet.mnemonic === undefined)\r
+ assert.ok(wallet.seed === undefined)\r
+ await assert.rejects(wallet.verify(TREZOR_TEST_VECTORS.MNEMONIC_0))\r
+ await assert.rejects(wallet.verify(TREZOR_TEST_VECTORS.SEED_0))\r
\r
const unlockResult = await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
\r
assert.equal(unlockResult, true)\r
- assert.ok('mnemonic' in wallet)\r
- assert.ok('seed' in wallet)\r
- assert.equal(wallet.mnemonic, TREZOR_TEST_VECTORS.MNEMONIC_0)\r
- assert.equal(wallet.seed, TREZOR_TEST_VECTORS.ENTROPY_0)\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.MNEMONIC_0))\r
+ assert.ok(await wallet.verify(TREZOR_TEST_VECTORS.ENTROPY_0))\r
\r
await assert.resolves(wallet.destroy())\r
})\r
await test('export wallet IDs from storage and reimport them', async () => {\r
const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
const backups = await Wallet.export()\r
-\r
- assert.ok(backups.some(id => id === wallet.id))\r
+ debugger\r
+ assert.ok(backups.some(record => record.id === wallet.id))\r
\r
const restored = await Wallet.restore(wallet.id)\r
\r
assert.ok('mnemonic' in restored)\r
assert.ok('seed' in restored)\r
- assert.throws(() => restored.mnemonic)\r
- assert.throws(() => restored.seed)\r
+ assert.ok(restored.mnemonic === undefined)\r
+ assert.ok(restored.seed === undefined)\r
\r
const unlockResult = await restored.unlock(NANO_TEST_VECTORS.PASSWORD)\r
\r
assert.equal(unlockResult, true)\r
- assert.ok('mnemonic' in restored)\r
- assert.ok('seed' in restored)\r
- assert.equal(restored.mnemonic, NANO_TEST_VECTORS.MNEMONIC)\r
- assert.equal(restored.seed, NANO_TEST_VECTORS.BIP39_SEED)\r
+ assert.ok(await restored.verify(NANO_TEST_VECTORS.MNEMONIC))\r
+ assert.ok(await restored.verify(NANO_TEST_VECTORS.BIP39_SEED))\r
\r
await assert.resolves(wallet.destroy())\r
await assert.resolves(restored.destroy())\r