transaction placement dialog
This commit is contained in:
@@ -29,20 +29,21 @@
|
||||
<script setup>
|
||||
import {orderFuncs, useChartOrderStore} from "@/orderbuild.js";
|
||||
import {addSymbolChangedCallback, removeSymbolChangedCallback} from "@/charts/chart.js";
|
||||
import {computed, onBeforeUnmount, ref} from "vue";
|
||||
import {computed, onBeforeUnmount, ref, toRaw, watchEffect} from "vue";
|
||||
import {useOrderStore, useStore} from "@/store/store.js";
|
||||
|
||||
import {routeFinder} from "@/blockchain/route.js";
|
||||
import ChartOrder from "@/components/chart/ChartOrder.vue";
|
||||
import {useTheme} from "vuetify";
|
||||
import {pendOrder} from "@/blockchain/wallet.js";
|
||||
import {useWalletStore} from "@/blockchain/wallet.js";
|
||||
import ToolbarPane from "@/components/chart/ToolbarPane.vue";
|
||||
import NeedsChart from "@/components/NeedsChart.vue";
|
||||
import {nav} from "@/misc.js";
|
||||
import {PlaceOrderTransaction} from "@/blockchain/transaction.js";
|
||||
|
||||
const s = useStore()
|
||||
const co = useChartOrderStore()
|
||||
const os = useOrderStore()
|
||||
const ws = useWalletStore()
|
||||
|
||||
function changeSymbol(symbol) {
|
||||
console.log('changeSymbol', symbol)
|
||||
@@ -79,6 +80,32 @@ function cancelOrder() {
|
||||
showResetDialog.value = true
|
||||
}
|
||||
|
||||
watchEffect(()=>{
|
||||
const removable = []
|
||||
for (const order of ws.pendingOrders) {
|
||||
console.log('pend state', order.state)
|
||||
switch (order.state) {
|
||||
case PendingOrderState.Sent:
|
||||
break
|
||||
case PendingOrderState.Rejected:
|
||||
removable.push(order)
|
||||
break
|
||||
case PendingOrderState.Signing:
|
||||
break
|
||||
case PendingOrderState.Submitted:
|
||||
removable.push(order)
|
||||
break
|
||||
default:
|
||||
console.error('unknown pend state', order.state)
|
||||
}
|
||||
}
|
||||
if (removable.length>0) {
|
||||
if (ws.pendingOrders.length!==removable.length)
|
||||
console.error('Not all orders were rejected') // todo multiple orders / order group
|
||||
ws.pendingOrders = []
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
async function placeOrder() {
|
||||
const chartOrders = co.orders;
|
||||
@@ -90,13 +117,11 @@ async function placeOrder() {
|
||||
built.push(order)
|
||||
}
|
||||
console.log('place orders', built)
|
||||
if (built.length !== 1) {
|
||||
console.error('Multiple orders not supported')
|
||||
if (ws.transaction!==null) {
|
||||
console.error('Transaction already in progress')
|
||||
}
|
||||
else {
|
||||
await pendOrder(built[0])
|
||||
co.resetOrders()
|
||||
nav('Status')
|
||||
new PlaceOrderTransaction(s.chainId, toRaw(built[0])).submit()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user