diff options
Diffstat (limited to 'tools/ark/ln-e2e-test.js')
| -rw-r--r-- | tools/ark/ln-e2e-test.js | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/ark/ln-e2e-test.js b/tools/ark/ln-e2e-test.js index 4d31b56..f4b5856 100644 --- a/tools/ark/ln-e2e-test.js +++ b/tools/ark/ln-e2e-test.js @@ -18,11 +18,10 @@ import { sha256 } from '@noble/hashes/sha256'; import { ArkManager } from '../../src/ark/manager.js'; import { lnReceiveFee } from '../../src/ark/lightning.js'; +import { ALICE, aliceReady } from './alice.js'; const ARK = process.env.ARK_URL || 'http://127.0.0.1:3535'; const ESPLORA = process.env.ESPLORA_URL || 'http://127.0.0.1:30002'; -const BARK = `${process.env.HOME}/bark/target/debug/bark`; -const ALICE = `${BARK} --datadir ${process.env.HOME}/ark-regtest/alice`; const CLC = 'docker exec clc lightning-cli --regtest'; const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); @@ -45,6 +44,7 @@ const account = HDKey.fromMasterSeed(mnemonicToSeedSync(mnemonic)).derive("m/86' const mgr = await new ArkManager({ account, storage, arkUrl: ARK, esploraUrl: ESPLORA }).init(); console.log('\n[0] fund manager from alice'); +await aliceReady(); sh(`${ALICE} -q send ${mgr.address()} "25000 sat"`); for (let i = 0; i < 10 && !mgr.balance().spendableSat; i++) { await mgr.sync(); await sleep(1500); } check('funded 25000 sat', mgr.balance().spendableSat === 25000, JSON.stringify(mgr.balance())); @@ -99,6 +99,11 @@ check('alice +100 from tiny send', aliceAfter === aliceBefore + 100, `${aliceBef // --------------------------------------------------------------------------- console.log('\n[2] RECEIVE: clc pays a 4000-sat invoice minted by hal (hold flow)'); +// both CLN nodes must have caught up with blocks earlier tests mined, or the +// HTLC's cltv disagrees with the hold invoice (final_incorrect_cltv_expiry) +const tip = Number(sh('docker exec bc bitcoin-cli getblockcount')); +const synced = (node) => JSON.parse(sh(`docker exec ${node} lightning-cli --regtest getinfo`)).blockheight >= tip; +for (let i = 0; i < 40 && !(synced('clc') && synced('cln-ark')); i++) await sleep(500); const balBefore = mgr.balance().spendableSat; const recv = await mgr.createLnInvoice(4000, 'ark-e2e-receive'); console.log(' hal invoice:', recv.invoice.slice(0, 50) + '…'); |
