ordershape fixes

This commit is contained in:
tim
2024-09-23 02:44:57 -04:00
parent b82171dfb0
commit bc443172a1
9 changed files with 113 additions and 96 deletions

View File

@@ -80,68 +80,77 @@
<!-- </btn>-->
<!-- </template>-->
<template v-slot:expanded-row="{item}">
<tr v-for="(t, i) in item.order.tranches">
<td class="text-right" colspan="2">
Tranche {{ i + 1 }}
<div class="text-right">
<div v-if="s.clock < item.trancheStatus[i].startTime">
Activates {{timestampString(item.trancheStatus[i].startTime)}}
<template v-for="(t, i) in item.order.tranches">
<tr>
<td class="text-right" colspan="2">
Tranche {{ i + 1 }}
<div class="text-right">
<div v-if="s.clock < item.trancheStatus[i].startTime">
Activates {{ timestampString(item.trancheStatus[i].startTime) }}
</div>
<div v-if="item.trancheStatus[i].endTime<DISTANT_FUTURE">
Expires {{ timestampString(item.trancheStatus[i].endTime) }}
</div>
</div>
<div v-if="item.trancheStatus[i].endTime<DISTANT_FUTURE">
Expires {{timestampString(item.trancheStatus[i].endTime)}}
<div>
<div class="mx-3" v-if="t.marketOrder">market order</div>
<line-price class="mx-3" v-if="!t.marketOrder"
:base="item.order.tokenIn" :quote="item.order.tokenOut"
:b="t.minLine.intercept" :m="t.minLine.slope" :is-min="true"
:show-btn="false"/>
<line-price class="mx-3" v-if="!t.marketOrder"
:base="item.order.tokenIn" :quote="item.order.tokenOut"
:b="t.maxLine.intercept" :m="t.maxLine.slope" :is-min="false"
:show-btn="false"/>
</div>
</div>
<div>
<div class="mx-3" v-if="t.marketOrder">market order</div>
<line-price class="mx-3" v-if="!t.marketOrder"
:base="item.order.tokenIn" :quote="item.order.tokenOut"
:b="t.minLine.intercept" :m="t.minLine.slope" :is-min="true"
:show-btn="false"/>
<line-price class="mx-3" v-if="!t.marketOrder"
:base="item.order.tokenIn" :quote="item.order.tokenOut"
:b="t.maxLine.intercept" :m="t.maxLine.slope" :is-min="false"
:show-btn="false"/>
</div>
</td>
<td class="text-right">
<suspense>
</td>
<td class="text-right">
<suspense>
<span v-if="item.state > OrderState.Signing">
<pulse :touch="item.trancheStatus[i].filledIn">
<token-amount :chain-id="item.chainId" :addr="item.order.tokenIn" :amount="item.trancheStatus[i].filledIn" :raw="true"/>
<token-amount :chain-id="item.chainId" :addr="item.order.tokenIn"
:amount="item.trancheStatus[i].filledIn" :raw="true"/>
</pulse>
</span>
</suspense>
<suspense>
</suspense>
<suspense>
<span v-if="item.order.amountIsInput">
/
<token-amount :chain-id="item.chainId" :addr="item.amountToken" :amount="item.order.amount*BigInt(t.fraction)/65535n"/>
<token-amount :chain-id="item.chainId" :addr="item.amountToken"
:amount="item.order.amount*BigInt(t.fraction)/65535n"/>
</span>
</suspense>
</td>
<td class="text-right w-33">
<suspense>
</suspense>
</td>
<td class="text-right w-33">
<suspense>
<span v-if="item.state > OrderState.Signing">
<pulse :touch="item.trancheStatus[i].filledOut">
<token-amount :chain-id="item.chainId" :addr="item.order.tokenOut" :amount="item.trancheStatus[i].filledOut" :raw="true"/>
<token-amount :chain-id="item.chainId" :addr="item.order.tokenOut"
:amount="item.trancheStatus[i].filledOut" :raw="true"/>
</pulse>
<token-symbol :addr="item.order.tokenOut"/>
</span>
</suspense>
<suspense>
</suspense>
<suspense>
<span v-if="!item.order.amountIsInput">
/
<token-amount :chain-id="item.chainId" :addr="item.amountToken" :amount="item.order.amount*BigInt(t.fraction)/65535n"/>
<token-amount :chain-id="item.chainId" :addr="item.amountToken"
:amount="item.order.amount*BigInt(t.fraction)/65535n"/>
</span>
</suspense>
</td>
<td class="text-right">
<suspense>
<pair-price :base="item.order.tokenIn" :quote="item.order.tokenOut" :value="item.trancheStatus[i].avg" :show-btn="false"/>
</suspense>
</td>
<td>{{ item.trancheStatus[i].status }}<!--todo:tranche status--></td>
</tr>
</suspense>
</td>
<td class="text-right">
<suspense>
<pair-price :base="item.order.tokenIn" :quote="item.order.tokenOut" :value="item.trancheStatus[i].avg"
:show-btn="false"/>
</suspense>
</td>
<td>{{ item.trancheStatus[i].status }}<!--todo:tranche status--></td>
</tr>
<tr>
</tr>
</template>
</template>
</v-data-table>
</div>

View File

@@ -39,8 +39,8 @@
</template>
<script setup>
import {allocationText, builderDefaults, MIN_EXECUTION_TIME, useChartOrderStore} from "@/orderbuild.js";
import {VLine} from "@/charts/shape.js";
import {builderDefaults, MIN_EXECUTION_TIME, useChartOrderStore} from "@/orderbuild.js";
import {allocationText, VLine} from "@/charts/shape.js";
import {sideColor} from "@/misc.js";
import {useTheme} from "vuetify";
import {useOrderStore, useStore} from "@/store/store.js";

View File

@@ -92,12 +92,12 @@
</template>
<script setup>
import {allocationText, applyLinePoints, builderDefaults, useChartOrderStore} from "@/orderbuild.js";
import {applyLinePoints, builderDefaults, useChartOrderStore} from "@/orderbuild.js";
import {sideColor} from "@/misc.js";
import {MAX_FRACTION, newTranche} from "@/blockchain/orderlib.js";
import RungBuilder from "@/components/chart/RungBuilder.vue";
import {computed, ref} from "vue";
import {DLine} from "@/charts/shape.js";
import {allocationText, DLine} from "@/charts/shape.js";
import {vectorEquals, vectorInterpolate} from "@/vector.js";
import AbsoluteTimeEntry from "@/components/AbsoluteTimeEntry.vue";
@@ -345,7 +345,7 @@ const amountSymbol = computed(()=>props.order.amountIsTokenA ? co.selectedSymbol
const allocationTexts = computed(()=>weights.value.map((w)=>allocationText(w, w*props.order.amount, amountSymbol.value)))
const stdWidth = computed(()=>[0, 2 * co.meanRange, 0, 2 * co.meanRange])
const stdWidth = computed(()=>[0, co.meanRange, 0, co.meanRange])
function getModelValue(model) {

View File

@@ -41,13 +41,13 @@
</template>
<script setup>
import {allocationText, applyLinePoint, builderDefaults, useChartOrderStore} from "@/orderbuild.js";
import {applyLinePoint, builderDefaults, useChartOrderStore} from "@/orderbuild.js";
import {sideColor} from "@/misc.js";
import {useOrderStore, useStore} from "@/store/store.js";
import {MAX_FRACTION, newTranche} from "@/blockchain/orderlib.js";
import RungBuilder from "@/components/chart/RungBuilder.vue";
import {computed, ref} from "vue";
import {HLine} from "@/charts/shape.js";
import {allocationText, HLine} from "@/charts/shape.js";
const s = useStore()
const os = useOrderStore()
@@ -194,7 +194,7 @@ const allocationTexts = computed(()=>weights.value.map((w)=>allocationText(w, w*
const color = computed(()=>props.builder.color ? props.builder.color : defaultColor)
const stdWidth = computed(()=>2*co.meanRange)
const stdWidth = computed(()=>co.meanRange)
function getModelValue(model) {