diff --git a/src/components/Vault.vue b/src/components/Vault.vue
index c8ef37d..ac62ab0 100644
--- a/src/components/Vault.vue
+++ b/src/components/Vault.vue
@@ -45,7 +45,7 @@
-->
- Please wait while your vault is being created. This should only take a few seconds.
+ Please wait while your vault is being created. This should only take a few seconds...
diff --git a/src/components/chart/ChartOrder.vue b/src/components/chart/ChartOrder.vue
index e574574..8f88d2a 100644
--- a/src/components/chart/ChartOrder.vue
+++ b/src/components/chart/ChartOrder.vue
@@ -43,7 +43,7 @@
import BuilderFactory from "@/components/chart/BuilderFactory.vue";
import {builderFuncs, newBuilder, orderFuncs, useChartOrderStore} from "@/orderbuild.js";
import {useOrderStore} from "@/store/store.js";
-import {computed, onMounted, onUnmounted, onUpdated, watch} from "vue";
+import {computed, onMounted, onUnmounted, onUpdated, watch, watchEffect} from "vue";
import {lightenColor, lightenColor2} from "@/misc.js";
import {useTheme} from "vuetify";
import RowBar from "@/components/chart/RowBar.vue";
@@ -66,9 +66,27 @@ function build(order, component, options={}) {
}
+// check order validity
+watchEffect(()=>{
+ let valid = props.order.amount
+ if (valid) {
+ for (const builder of builders.value) {
+ if (!builder.valid) {
+ valid = false
+ break
+ }
+ }
+ }
+ props.order.valid = valid
+})
+
+
function buildOrder() {
const order = props.order
console.log('buildOrder', order)
+
+ if (!order.amount) return null
+
// struct SwapOrder {
// address tokenIn;
// address tokenOut;
diff --git a/src/components/chart/ChartPlaceOrder.vue b/src/components/chart/ChartPlaceOrder.vue
index 7407275..5dc78f2 100644
--- a/src/components/chart/ChartPlaceOrder.vue
+++ b/src/components/chart/ChartPlaceOrder.vue
@@ -3,7 +3,7 @@
+ :color="orderColor" v-if="co.orders.length>0" :disabled="!valid">
Place Dexorder
Reset
@@ -60,13 +60,21 @@ const showResetDialog = ref(false)
const theme = useTheme().current
const orderColor = computed(()=>co.orders.length===0?null : co.orders[0].buy ? theme.value.colors.success:theme.value.colors.error)
+const valid = computed(()=>{
+ if (co.drawing)
+ return false
+ for ( const order of co.orders )
+ if (!order.valid)
+ return false
+ return true
+})
+
function cancelOrder() {
showResetDialog.value = true
}
async function placeOrder() {
- const co = useChartOrderStore();
const chartOrders = co.orders;
const built = []
for (const chartOrder of chartOrders) {
@@ -75,7 +83,6 @@ async function placeOrder() {
const order = buildOrder()
built.push(order)
}
- co.built = built
console.log('place orders', built)
if (built.length !== 1) {
console.error('Multiple orders not supported')
diff --git a/src/components/chart/LimitBuilder.vue b/src/components/chart/LimitBuilder.vue
index f874053..98e78ea 100644
--- a/src/components/chart/LimitBuilder.vue
+++ b/src/components/chart/LimitBuilder.vue
@@ -33,7 +33,7 @@
@@ -61,7 +61,7 @@