diff --git a/src/blockchain/contract.js b/src/blockchain/contract.js index c2f9356..5f8c289 100644 --- a/src/blockchain/contract.js +++ b/src/blockchain/contract.js @@ -5,8 +5,7 @@ import {useStore} from "@/store/store.js"; export function vaultAddress( owner, num=0) { const s = useStore() - console.log('vaultAddress', owner, s.factory, s.vaultInitCodeHash) - if( !owner ) + if( !owner || !s.factory || !s.vaultInitCodeHash ) return null const salt = ethers.solidityPackedKeccak256(['address','uint8'],[owner,num]) return ethers.getCreate2Address(s.factory, salt, s.vaultInitCodeHash) diff --git a/src/blockchain/wallet.js b/src/blockchain/wallet.js index 6c1139b..302da72 100644 --- a/src/blockchain/wallet.js +++ b/src/blockchain/wallet.js @@ -106,13 +106,21 @@ function discoverVaults(owner) { const doDiscoverVaults = new SingletonCoroutine(_discoverVaults, 50, false) async function _discoverVaults(owner) { - console.log('_discoverVaults',owner) const result = [] + const s = useStore() + if( !owner || !s.chainId || !s.account) { + s.vaults = [] + return + } // todo multi-vault scan + // console.log('_discoverVaults',owner) const num = 0 const addr = vaultAddress(owner, num) - console.log(`vault ${num} at`, addr) - const s = useStore() + // console.log(`vault ${num} at`, addr) + if( addr === null ) { + s.vaults = [] + return + } const vault = new ethers.Contract(addr, vaultAbi, s.provider) let version = -1 try { @@ -127,7 +135,7 @@ async function _discoverVaults(owner) { catch (e) { console.log(`no vault ${num}`) } - if( s.account === owner ) { // double-check the account since it could have changed during our await + 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 ) diff --git a/src/components/Footer.vue b/src/components/Footer.vue new file mode 100644 index 0000000..7e3f844 --- /dev/null +++ b/src/components/Footer.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/components/PairPrice.vue b/src/components/PairPrice.vue index 24b1dd3..d437cb8 100644 --- a/src/components/PairPrice.vue +++ b/src/components/PairPrice.vue @@ -26,7 +26,7 @@ function invert() { prefs.inverted[k] = !prefs.inverted[k] } -const adjValue = computed(() => !base.value || !quote.value ? null : pairPrice(base.value, quote.value, props.value, props.decimals).toPrecision(5)) +const adjValue = computed(() => props.value === null || props.value === undefined || !base.value || !quote.value ? null : pairPrice(base.value, quote.value, props.value, props.decimals).toPrecision(5)) const pair = computed(() => { const inToken = props.baseToken ? props.baseToken : token(props.baseAddr) diff --git a/src/layouts/default/Default.vue b/src/layouts/default/Layout.vue similarity index 55% rename from src/layouts/default/Default.vue rename to src/layouts/default/Layout.vue index a12712b..3f44c90 100644 --- a/src/layouts/default/Default.vue +++ b/src/layouts/default/Layout.vue @@ -1,16 +1,18 @@ diff --git a/src/layouts/default/View.vue b/src/layouts/default/MainView.vue similarity index 100% rename from src/layouts/default/View.vue rename to src/layouts/default/MainView.vue diff --git a/src/misc.js b/src/misc.js index 2d53ad9..f40e97a 100644 --- a/src/misc.js +++ b/src/misc.js @@ -28,6 +28,7 @@ export class SingletonCoroutine { catch (e) { if( self.retry ) { console.log('retrying', this.f, 'due to error', e) + self.timeout = null self.invoke(self.args) } else diff --git a/src/router/index.js b/src/router/index.js index e57c2e2..6fd6670 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -4,7 +4,7 @@ import { createRouter, createWebHistory } from 'vue-router' const routes = [ { path: '/', - component: () => import('@/layouts/default/Default.vue'), + component: () => import('@/layouts/default/Layout.vue'), children: [ { path: '', diff --git a/src/store/store.js b/src/store/store.js index aa7689b..a1ea67a 100644 --- a/src/store/store.js +++ b/src/store/store.js @@ -2,9 +2,6 @@ import { defineStore } from 'pinia' import {knownTokens} from "@/knownTokens.js"; import {computed, ref} from "vue"; -import {ethers} from "ethers"; -import {onChainChanged} from "@/blockchain/wallet.js"; - // USING THE STORE: // @@ -141,7 +138,7 @@ export const useOrderStore = defineStore('order', ()=> { // Order Input Forms // const tokenA = ref(null) // defined at top // const tokenB = ref(null) - const buy = ref(false) + const buy = ref(true) const inverted = ref(false) const amount = ref(100) // todo adjust default const amountIsTokenA = ref(false) // todo adjust default diff --git a/src/views/Home.vue b/src/views/Home.vue index 7399f2a..3f7b003 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,6 +1,6 @@