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) + } } })