From cfcba95445cff415a4b07eada0c20b46e9a97b15 Mon Sep 17 00:00:00 2001 From: tim Date: Mon, 4 Nov 2024 14:39:43 -0400 Subject: [PATCH] buy/sell color change fix --- src/blockchain/token.js | 29 +++++++++++++++--------- src/components/chart/ChartOrder.vue | 3 +-- src/components/chart/DCABuilder.vue | 2 -- src/components/chart/DiagonalBuilder.vue | 1 - src/components/chart/RungBuilder.vue | 14 ++++++++++-- 5 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/blockchain/token.js b/src/blockchain/token.js index 2b12336..a4ab118 100644 --- a/src/blockchain/token.js +++ b/src/blockchain/token.js @@ -61,21 +61,28 @@ export async function addExtraToken(chainId, addr) { } else { if( provider===null ) { - console.log('warning: token lookup cancelled due to null provider', addr) + console.warn('warning: token lookup cancelled due to null provider', addr) resolve(null) } else { - const token = await newContract(addr, 'IERC20Metadata', provider) - Promise.all( [token.name(), token.symbol(), token.decimals()] ).then((name,symbol,decimals)=>{ - info = { - a: addr, - n: name, - s: symbol, - d: decimals, + for( let tries=1; tries<=5; tries++ ) { + try { + const token = await newContract(addr, 'IERC20Metadata', provider) + const [name, symbol, decimals] = await Promise.all([token.name(), token.symbol(), token.decimals()]) + info = { + a: addr, + n: name, + s: symbol, + d: decimals, + } + s.addToken(chainId, info) + resolve(info) + break } - s.addToken(chainId, info) - resolve(info) - }) + catch (e) { + console.warn(`Could not lookup token ${addr}`, e) + } + } } } }) diff --git a/src/components/chart/ChartOrder.vue b/src/components/chart/ChartOrder.vue index 3a531ae..77e4559 100644 --- a/src/components/chart/ChartOrder.vue +++ b/src/components/chart/ChartOrder.vue @@ -75,8 +75,7 @@ import {useTheme} from "vuetify"; import RowBar from "@/components/chart/RowBar.vue"; import ColorBand from "@/components/chart/ColorBand.vue"; import Color from "color"; -import {Exchange, newOrder} from "@/blockchain/orderlib.js"; -import {lookupSymbol} from "@/charts/datafeed.js"; +import {newOrder} from "@/blockchain/orderlib.js"; const props = defineProps(['order']) const s = useStore() diff --git a/src/components/chart/DCABuilder.vue b/src/components/chart/DCABuilder.vue index 7084a9b..b86bf90 100644 --- a/src/components/chart/DCABuilder.vue +++ b/src/components/chart/DCABuilder.vue @@ -42,7 +42,6 @@ import {builderDefaults, DEFAULT_SLIPPAGE, 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"; import {DISTANT_FUTURE, MAX_FRACTION, newTranche} from "@/blockchain/orderlib.js"; import RungBuilder from "@/components/chart/RungBuilder.vue"; @@ -54,7 +53,6 @@ import {DateTime} from "luxon"; const s = useStore() const os = useOrderStore() const co = useChartOrderStore() -const theme = useTheme().current const props = defineProps(['order', 'builder']) const emit = defineEmits(['update:builder']) diff --git a/src/components/chart/DiagonalBuilder.vue b/src/components/chart/DiagonalBuilder.vue index 9ba94e2..1f74a85 100644 --- a/src/components/chart/DiagonalBuilder.vue +++ b/src/components/chart/DiagonalBuilder.vue @@ -112,7 +112,6 @@ function computeDefaultColor() { } const defaultColor = computeDefaultColor() - const color = computed(()=>props.builder.color ? props.builder.color : defaultColor) // Fields must be defined in order to be reactive diff --git a/src/components/chart/RungBuilder.vue b/src/components/chart/RungBuilder.vue index 2c818a9..9f0f7d3 100644 --- a/src/components/chart/RungBuilder.vue +++ b/src/components/chart/RungBuilder.vue @@ -46,11 +46,13 @@ import {cancelDrawing} from "@/charts/chart.js"; import { devectorize, vectorAdd, - vectorDiv, vectorEquals, + vectorDiv, + vectorEquals, vectorIsNull, vectorIsZero, vectorize, - vectorMul, vectorNeg, + vectorMul, + vectorNeg, vectorSub } from "@/vector.js"; @@ -90,6 +92,14 @@ watchEffect(()=>{ // console.log('valid?', prev, props.builder.valid, rungs, valueA.value, valueB.value) }) +let lastBuy = null +watchEffect(()=>{ + if (props.order.buy!==lastBuy) { + lastBuy = props.order.buy + console.log('updating colors') + props.builder.color=computeDefaultColor() + } +}) function setEndpoints(a, b) { // console.log('rb setting endpoints', devectorize(a), devectorize(b))