From aa746a01638fa5b78b11a25da2905de7680963f6 Mon Sep 17 00:00:00 2001 From: Tim Olson <> Date: Wed, 27 Dec 2023 22:40:48 -0400 Subject: [PATCH] vault infinite loop fix --- src/blockchain/wallet.js | 21 ++++++++++----------- src/components/Vault.vue | 1 - 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/blockchain/wallet.js b/src/blockchain/wallet.js index 01be4c2..250ce8d 100644 --- a/src/blockchain/wallet.js +++ b/src/blockchain/wallet.js @@ -101,18 +101,10 @@ function discoverVaults(owner) { if( owner === null ) s.vaults = [] else - _discoverVaults(owner).then((result)=>{ - if( s.account === owner ) { // double-check the account since it could have changed during our await - s.vaults = result - if( pendingOrders.length ) - if( result.length ) - flushOrders(result[0]) - else - ensureVault2(s.chainId.value, owner, 0) - } - }) + doDiscoverVaults.invoke(owner) } +const doDiscoverVaults = new SingletonCoroutine(_discoverVaults, 50, false) async function _discoverVaults(owner) { console.log('_discoverVaults',owner) const result = [] @@ -135,7 +127,14 @@ async function _discoverVaults(owner) { catch (e) { console.log(`no vault ${num}`, e) } - return result + if( s.account === owner ) { // double-check the account since it could have changed during our await + s.vaults = result + if( pendingOrders.length ) + if( result.length ) + flushOrders(result[0]) + else + ensureVault2(s.chainId.value, owner, 0) + } } diff --git a/src/components/Vault.vue b/src/components/Vault.vue index 936aad3..7cba415 100644 --- a/src/components/Vault.vue +++ b/src/components/Vault.vue @@ -120,7 +120,6 @@ s.$subscribe((mutation, state)=>{ console.log('test') checkVault() }) -checkVault()