From: Chris Duncan Date: Sun, 26 Apr 2026 21:23:07 +0000 (-0700) Subject: Merge branch 'main' into next/user-activation X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=0f4d09c7a9c363220eca80b3b7fb32ecd5befc7a;p=libnemo.git Merge branch 'main' into next/user-activation --- 0f4d09c7a9c363220eca80b3b7fb32ecd5befc7a diff --cc test/test.blocks.mjs index 4a71806,f392d2f..b7c371d --- a/test/test.blocks.mjs +++ b/test/test.blocks.mjs @@@ -122,51 -117,27 +122,63 @@@ await Promise.all( await test('sign open block with BIP-44 wallet', async () => { const wallet = await Wallet.load('BIP-44', PASSWORD, BIP39_SEED) await assert.resolves(wallet.unlock(PASSWORD)) - const block = new Block(ADDRESS_0, '0', OPEN_BLOCK.previous, OPEN_BLOCK.representative) .receive(OPEN_BLOCK.link, OPEN_BLOCK.balance) - await wallet.sign(0, block) + + await assert.resolves(async () => { + await click( + 'Sign with BIP-44', + async () => wallet.sign(0, block) + ) + }) assert.ok(await block.verify(PUBLIC_0)) - await wallet.destroy() + await assert.resolves(wallet.destroy()) + }) + + await test('sign open block with Exodus wallet', async () => { + const wallet = await Wallet.load('Exodus', PASSWORD, EXODUS.BIP39_SEED_0) + await assert.resolves(wallet.unlock(PASSWORD)) + const block = new Block(EXODUS.ADDRESS_0, '0', OPEN_BLOCK.previous, OPEN_BLOCK.representative) + .receive(OPEN_BLOCK.link, OPEN_BLOCK.balance) + + await assert.resolves(async () => { + await click( + 'Sign with Exodus', + async () => wallet.sign(0, block) + ) + }) + assert.ok(await block.verify(EXODUS.PUBLIC_0)) + + await assert.resolves(wallet.destroy()) + }) + + await test('fail to sign open block with wallet without user activation', async () => { + const wallet = await Wallet.load('BIP-44', PASSWORD, BIP39_SEED) + await assert.resolves(wallet.unlock(PASSWORD)) + const block = new Block(ADDRESS_0, '0', OPEN_BLOCK.previous, OPEN_BLOCK.representative) + .receive(OPEN_BLOCK.link, OPEN_BLOCK.balance) + + console.log('Waiting 6 seconds...') + await new Promise(r => setTimeout(r, 6000)) + await assert.rejects(wallet.sign(0, block)) + assert.ok(block.signature === undefined) + + await assert.resolves(wallet.destroy()) }) + await test('sign open block with Exodus wallet', async () => { + const wallet = await Wallet.load('Exodus', PASSWORD, EXODUS.BIP39_SEED_0) + await assert.resolves(wallet.unlock(PASSWORD)) + + const block = new Block(EXODUS.ADDRESS_0, '0', OPEN_BLOCK.previous, OPEN_BLOCK.representative) + .receive(OPEN_BLOCK.link, OPEN_BLOCK.balance) + await wallet.sign(0, block) + assert.ok(await block.verify(EXODUS.PUBLIC_0)) + + await wallet.destroy() + }) + await test('fail to sign open block with wallet when locked', async () => { const wallet = await Wallet.load('BIP-44', PASSWORD, BIP39_SEED) const block = new Block(ADDRESS_0, '0', OPEN_BLOCK.previous, OPEN_BLOCK.representative)