From 9c882ab2833e08a9e85e4d0c954b8cc71d884455 Mon Sep 17 00:00:00 2001 From: Tim Olson <> Date: Thu, 28 Dec 2023 18:26:58 -0400 Subject: [PATCH] vault creation loop bugfix --- src/blockchain/wallet.js | 2 +- src/misc.js | 10 ++++++---- src/socket.js | 10 ++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/blockchain/wallet.js b/src/blockchain/wallet.js index 32fe7f7..202ae7e 100644 --- a/src/blockchain/wallet.js +++ b/src/blockchain/wallet.js @@ -167,7 +167,7 @@ async function doEnsureVault(chainId, owner, num) { console.log(`requesting vault ${owner} ${num}`) socket.emit('ensureVault', chainId, owner, num) } - await sleep(5) + // await sleep(5000) // prevent this process from running more than once every 5 seconds } const ensureVaultRoutine = new SingletonCoroutine(doEnsureVault, 100, false) diff --git a/src/misc.js b/src/misc.js index a7c5862..2d53ad9 100644 --- a/src/misc.js +++ b/src/misc.js @@ -16,9 +16,9 @@ export class SingletonCoroutine { invoke(/*arguments*/) { this.args = arguments - if( this.timeout !== null ) - clearTimeout(this.timeout) - this.timeout = setTimeout(this.onTimeout, this.delay, this) + console.log('invoke', arguments) + if( this.timeout === null ) + this.timeout = setTimeout(this.onTimeout, this.delay, this) } async onTimeout(self) { @@ -26,8 +26,10 @@ export class SingletonCoroutine { await self.f(...self.args) } catch (e) { - if( self.retry ) + if( self.retry ) { + console.log('retrying', this.f, 'due to error', e) self.invoke(self.args) + } else console.error(e) } diff --git a/src/socket.js b/src/socket.js index f8738c8..1c41bfc 100644 --- a/src/socket.js +++ b/src/socket.js @@ -48,10 +48,12 @@ socket.on('vaults', (chainId, owner, vaults)=>{ console.log('vaults', vaults) if( s.chainId.value !== chainId || s.account !== owner ) return - s.vaults = vaults - if( vaults.length ) { - const vault = vaults[0] - flushOrders(vault) + if( vaults.length > s.vaults.length ) { + s.vaults = vaults + if( vaults.length ) { + const vault = vaults[0] + flushOrders(vault) + } } })