auto market order fix
This commit is contained in:
@@ -2,7 +2,10 @@
|
||||
<div class="d-flex flex-column h-100">
|
||||
<toolbar>
|
||||
<v-btn variant="flat" prepend-icon="mdi-plus" @click="co.newOrder" v-if="co.orders.length===0">New Order</v-btn>
|
||||
<v-btn variant="text" prepend-icon="mdi-send" @click="placeOrder" :color="orderColor" v-if="co.orders.length>0">Place Order</v-btn>
|
||||
<v-btn variant="text" prepend-icon="mdi-send" @click="placeOrder"
|
||||
:color="orderColor" v-if="co.orders.length>0" :disabled="co.drawing">
|
||||
Place Order
|
||||
</v-btn>
|
||||
<v-btn variant="flat" prepend-icon="mdi-cancel" v-if="co.orders.length>0" @click="cancelOrder">Cancel</v-btn>
|
||||
</toolbar>
|
||||
<v-dialog v-model="showCancel" max-width="300">
|
||||
@@ -24,7 +27,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {builderFuncs, useChartOrderStore} from "@/orderbuild.js";
|
||||
import {builderFuncs, orderFuncs, useChartOrderStore} from "@/orderbuild.js";
|
||||
import {addSymbolChangedCallback, removeSymbolChangedCallback} from "@/charts/chart.js";
|
||||
import {computed, onBeforeUnmount, ref} from "vue";
|
||||
import {useOrderStore, useStore} from "@/store/store.js";
|
||||
@@ -61,38 +64,15 @@ function cancelOrder() {
|
||||
showCancel.value = true
|
||||
}
|
||||
|
||||
|
||||
async function placeOrder() {
|
||||
const co = useChartOrderStore();
|
||||
const chartOrders = co.orders;
|
||||
const built = []
|
||||
for (const chartOrder of chartOrders) {
|
||||
console.log('chartOrder', chartOrder)
|
||||
let tranches = []
|
||||
for (const builder of chartOrder.builders) {
|
||||
console.log('builder', builder)
|
||||
const ts = builderFuncs[builder.id]()
|
||||
console.log('tranches', ts)
|
||||
tranches = [...tranches, ...ts]
|
||||
}
|
||||
// struct SwapOrder {
|
||||
// address tokenIn;
|
||||
// address tokenOut;
|
||||
// Route route;
|
||||
// uint256 amount;
|
||||
// uint256 minFillAmount; // if a tranche has less than this amount available to fill, it is considered completed
|
||||
// bool amountIsInput;
|
||||
// bool outputDirectlyToOwner;
|
||||
// uint64 chainOrder; // use NO_CHAIN for no chaining. chainOrder index must be < than this order's index for safety (written first) and chainOrder state must be Template
|
||||
// Tranche[] tranches;
|
||||
// }
|
||||
const symbol = co.selectedSymbol
|
||||
const fee = co.selectedPool[1]
|
||||
const tokenIn = chartOrder.buy ^ symbol.inverted ? symbol.quote : symbol.base
|
||||
const tokenOut = chartOrder.buy ^ symbol.inverted ? symbol.base : symbol.quote
|
||||
const amountDec = chartOrder.amountIsTokenA ? symbol.base.d : symbol.quote.d
|
||||
const amount = BigInt(Math.trunc(chartOrder.amount * 10 ** amountDec))
|
||||
const amountIsInput = !!(chartOrder.amountIsTokenA ^ chartOrder.buy)
|
||||
const order = newOrder(tokenIn.a, tokenOut.a, Exchange.UniswapV3, fee, amount, amountIsInput, tranches)
|
||||
const buildOrder = orderFuncs[chartOrder.id]
|
||||
const order = buildOrder()
|
||||
built.push(order)
|
||||
}
|
||||
co.built = built
|
||||
|
||||
Reference in New Issue
Block a user