spam log removal; mobile share fixes

This commit is contained in:
tim
2025-04-26 17:51:20 -04:00
parent 916c23e092
commit a1bbb17b5d
19 changed files with 77 additions and 46 deletions

View File

@@ -14,6 +14,7 @@
<link href="https://fonts.googleapis.com/css2?family=Orbitron&family=Saira+Semi+Condensed&display=swap" rel="stylesheet">
</head>
<body>
<script src="/src/debug_console.js"></script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-L6F3Z6SBC7"></script>
<script>

View File

@@ -21,7 +21,6 @@
"flexsearch": "^0.7.43",
"lru-cache": "^11.0.2",
"luxon": "^3.4.4",
"lz-string": "^1.5.0",
"pinia": "2.1.6",
"pinia-plugin-persistedstate": "^4.1.3",
"roboto-fontface": "*",

View File

@@ -10,7 +10,7 @@ export function subOHLC( chainId, pool, period ) {
// console.log('subOHLC', chainId, pool, period, ckey, ohlcSubCounts[ckey])
if (!(ckey in ohlcSubCounts) || ohlcSubCounts[ckey] === 0) {
ohlcSubCounts[ckey] = 1
console.log('subscribing OHLCs', chainId, key)
// console.log('subscribing OHLCs', chainId, key)
socket.emit('subOHLCs', chainId, [key])
} else
ohlcSubCounts[ckey]++
@@ -30,7 +30,7 @@ export function refreshOHLCSubs() {
}
keys.push(`${pool}|${period}`)
}
console.log('refreshing OHLC subs', keys)
// console.log('refreshing OHLC subs', keys)
socket.emit('subOHLCs', chainId, keys)
}
@@ -45,7 +45,7 @@ export function unsubOHLC( chainId, pool, period ) {
} else {
ohlcSubCounts[ckey]--
if (ohlcSubCounts[ckey] === 0) {
console.log('unsubscribing OHLCs', chainId, key)
// console.log('unsubscribing OHLCs', chainId, key)
// noinspection JSCheckFunctionSignatures
socket.emit('unsubOHLCs', chainId, [key])
}

View File

@@ -27,11 +27,11 @@ export function removeSymbolChangedCallback(cb) {
function symbolChanged(symbol) {
const info = symbol===null ? (defaultSymbol===null?'default':defaultSymbol) : lookupSymbol(symbol.ticker)
co.selectedSymbol = info
console.log('setting prefs ticker', info.ticker)
// console.log('setting prefs ticker', info.ticker)
prefs.selectedTicker = info.ticker
symbolChangedCbs.forEach((cb) => cb(info))
updateFeeDropdown()
console.log('symbol changed', info)
// console.log('symbol changed', info)
}
@@ -74,7 +74,7 @@ export function changeIntervalSecs(secs) {
function dataLoaded() {
const range = chartMeanRange()
console.log('new mean range', range,)
// console.log('new mean range', range,)
co.meanRange = range
}
@@ -212,7 +212,7 @@ let chartInitCbs = []
function initChart() {
console.log('init chart')
// console.log('init chart')
chart = widget.activeChart()
const themeName = useStore().theme;
widget.changeTheme(themeName).catch((e)=>console.warn(`Could not change theme to ${themeName}`, e))
@@ -240,7 +240,7 @@ function initChart() {
cb(widget, chart)
chartInitCbs = []
}, 1)
console.log('chart ready')
// console.log('chart ready')
}
@@ -285,7 +285,7 @@ let drawingCallbacks = null
export function drawShape(shapeType, ...callbacks) {
// puts the chart into a line-drawing mode for a new shape
console.log('drawShape', callbacks, shapeType.name, shapeType.code)
// console.log('drawShape', callbacks, shapeType.name, shapeType.code)
if( drawingCallbacks )
invokeCallbacks(drawingCallbacks, 'onUndraw')
drawingCallbacks = callbacks
@@ -351,7 +351,7 @@ const shapeCallbacks = {}
function onSelectedLineToolChanged() {
const tool = widget.selectedLineTool();
console.log('line tool changed', tool)
// console.log('line tool changed', tool)
if (drawingTool===null)
drawingTool = tool
else if (tool!==drawingTool && co.drawing)

View File

@@ -140,7 +140,7 @@ function addSymbol(chainId, p, base, quote, inverted) {
// console.log(`invertedDefault(${symbolInfo.base.s}, ${symbolInfo.quote.s})`,invertedDefault(symbolInfo.base.a, symbolInfo.quote.a))
// }
if (defaultSymbol===null && !invertedDefault(symbolInfo.base.a, symbolInfo.quote.a)) {
console.log('setting default symbol', symbolInfo.base.s, symbolInfo.quote.s, symbolInfo.base.a, symbolInfo.quote.a)
// console.log('setting default symbol', symbolInfo.base.s, symbolInfo.quote.s, symbolInfo.base.a, symbolInfo.quote.a)
defaultSymbol = _symbols[ticker]
}
log('new symbol', ticker, _symbols[ticker])
@@ -381,7 +381,7 @@ export const DataFeed = {
onResolveErrorCallback,
extension
) {
console.log('[resolveSymbol]: Method call', symbolName);
// console.log('[resolveSymbol]: Method call', symbolName);
const symbols = getAllSymbols();
const symbolItem = symbolName === 'default' ? defaultSymbol : symbols[symbolName]
if (!symbolItem) {
@@ -451,7 +451,7 @@ export const DataFeed = {
// volume_precision: 2,
data_status: 'streaming',
};
console.log('[resolveSymbol]: Symbol resolved', symbolName);
// console.log('[resolveSymbol]: Symbol resolved', symbolName);
onSymbolResolvedCallback(symbolInfo)
},

View File

@@ -52,7 +52,7 @@ function addDay(timestamp) {
function addMonth(timestamp) {
const date = new Date(timestamp*1000)
const result = Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate()) / 1000
console.log('addMonth', timestamp, result, new Date(timestamp*1000), new Date(result*1000))
// console.log('addMonth', timestamp, result, new Date(timestamp*1000), new Date(result*1000))
return result
}
@@ -137,7 +137,7 @@ async function getUrl(url) {
export async function loadOHLC (symbol, contract, from, to, tvRes) {
console.log('loadOHLC', tvRes, new Date(1000*from), new Date(1000*to), symbol, contract);
// console.log('loadOHLC', tvRes, new Date(1000*from), new Date(1000*to), symbol, contract);
let chainId
let bars = [];
let inverted = false;
@@ -179,7 +179,7 @@ export async function loadOHLC (symbol, contract, from, to, tvRes) {
if (response.length) {
const [start,end,price] = response.split(',')
seriesStarts[baseUrl] = parseInt(start)
console.log(`Series ${baseUrl} starts at ${new Date(start*1000)}`)
// console.log(`Series ${baseUrl} starts at ${new Date(start*1000)}`)
}
else {
console.error(`Bad response while fetching ${baseUrl+'quote.csv'}`)

View File

@@ -85,7 +85,6 @@ const tokenOut = computed(()=>props.order.buy ? co.baseToken : co.quoteToken)
const builtAny = ref(false)
console.log('order', props.order)
function build(order, component, options={}) {
track('build', {builder:component})
builtAny.value = true

View File

@@ -80,7 +80,7 @@ const os = useOrderStore()
const ws = useWalletStore()
function changeSymbol(symbol) {
console.log('changeSymbol', symbol)
// console.log('changeSymbol', symbol)
os.tokenA = symbol.base
os.tokenB = symbol.quote
// routeFinder.invoke()

View File

@@ -55,7 +55,7 @@ const s = useStore()
const co = useChartOrderStore()
const theme = useTheme().current
console.log('theme', theme.value)
// console.log('theme', theme.value)
const sideColor = computed(()=>new Color(props.order.buy?theme.value.colors.success:theme.value.colors.error).darken(0.2).string())
const switchModel = computed({
get() {return !props.order.buy},

View File

@@ -7,11 +7,20 @@
import {loadShareUrl} from "@/share.js";
import {router} from "@/router/router.js";
import {useRoute} from "vue-router";
import {socket} from "@/socket.js";
const route = useRoute()
const code = route.params.code
loadShareUrl(code).then(()=> router.replace('/order')).catch((e)=> {console.error(e); router.replace('/order')})
loadShareUrl(code).then((ok)=> {
if (ok) {
console.log('loaded share data',code)
router.replace('/order');
}
else {
console.log('failed to load share data',code)
}
}).catch((e)=> {
console.error(e)
})
</script>
<style scoped lang="scss">

View File

@@ -1,19 +1,20 @@
import {getToken} from "@/blockchain/token.js";
let native = false // whether native browser notifications are allowed
let notificationsAllowed = false // whether native browser notifications are allowed
if ('Notification' in window) {
Notification.requestPermission()
.then(permission => {
console.log(`notification permission: ${permission}`);
native = permission === 'granted'
notificationsAllowed = permission === 'granted'
if (!notificationsAllowed)
console.log(`notification permission denied: ${permission}`);
})
.catch(error => {console.error(`notification permission error: ${error}`);});
}
export function notify(title, message=null) {
if (native) {
if (notificationsAllowed) {
const options = {
renotify: true,
tag: title,

View File

@@ -18,7 +18,6 @@ export function newBuilder( component, options = {}) {
}
}
console.log('new default order')
// Orders hold an amount and builders
// noinspection JSUnusedLocalSymbols
const Order = {
@@ -26,7 +25,6 @@ const Order = {
amount: 0,
builders: [],
}
console.log('new default order completed')
// the key is order.id and the value is a function() that returns an order

View File

@@ -53,7 +53,7 @@ function makeColors(isLight) {
"on-warning": ink,
"on-error": ink,
}
console.log('colors', isLight?'light':'dark', colors)
// console.log('colors', isLight?'light':'dark', colors)
return colors;
}

View File

@@ -1,4 +1,3 @@
import { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from 'lz-string';
import {useChartOrderStore} from "@/orderbuild.js";
import {changeIntervalSecs, onChartReady, setSymbol, widget} from "@/charts/chart.js";
import {usePrefStore, useStore} from "@/store/store.js";
@@ -37,16 +36,31 @@ export async function getShareUrl() {
}
export async function loadShareUrl(code) {
const data = await new Promise((resolve)=>socket.emit('shared', code, resolve))
// console.log('loading share url', code)
const data = await new Promise((resolve, reject) => {
// Set a timeout (e.g., 8 seconds)
const timeout = setTimeout(() => {
reject(new Error('Timed out waiting for response from server'));
}, 8000);
socket.emit('shared', code, (response) => {
clearTimeout(timeout);
resolve(response);
});
}).catch(err => {
// Optional: show error to user or log it
console.error('Failed to load shared URL:', err.message);
return null;
});
if (data===null) return false
console.log('loaded shared orders data', data)
if (data===null) return
const co = useChartOrderStore();
const s = useStore()
const ticker = `${data.chainId}|${data.symbol.route.exchange}|${data.symbol.base.a}|${data.symbol.quote.a}|${data.symbol.route.fee}`;
const symbol = lookupSymbol(ticker)
if (symbol===null) {
console.error('could not find symbol for ticker', ticker)
return
return false
}
s.chainId = data.chainId
const prefs = usePrefStore()
@@ -65,6 +79,7 @@ export async function loadShareUrl(code) {
})
track('shared')
console.log('loaded orders', s.chainId, co.orders)
return true;
}
export async function takeSnapshot() {

View File

@@ -1,7 +1,7 @@
import {io} from "socket.io-client";
const socketOptions = {
transports: ["websocket"],
transport: ['polling', 'websocket'],
pingInterval: 25000, // PING every 25 seconds
pingTimeout: 60000 // Timeout if no PONG in 60 seconds
}

View File

@@ -7,7 +7,7 @@ import {notifyFillEvent} from "@/notify.js";
import {refreshOHLCSubs} from "@/blockchain/ohlcs.js";
socket.on('connect', () => {
console.log(new Date(), 'ws connected')
console.log('ws connected')
const s = useStore();
s.connected = true
if (s.chainId && s.account)
@@ -16,7 +16,17 @@ socket.on('connect', () => {
})
socket.on('disconnect', () => {
console.log(new Date(), 'ws disconnected')
console.log('ws disconnected')
useStore().connected = false
})
socket.on('connect_error', (err) => {
console.log('ws connect error', err)
useStore().connected = false
})
socket.on('error', (err) => {
console.log('ws error', err)
useStore().connected = false
})
@@ -151,3 +161,5 @@ socket.on( 'of', (chainId, vault, orderIndex, filled)=>{
console.log('apply fills completed', status)
})
console.log('initialized socketio')

View File

@@ -1,9 +1,11 @@
export let tracking_enabled = window.gtag !== undefined
if(tracking_enabled)
console.log('gtag', tracking_enabled)
else
if(tracking_enabled) {
// console.log('gtag', tracking_enabled)
}
else {
console.log('tracking disabled')
}
export function track(...args) {
if (tracking_enabled) {

View File

@@ -16,9 +16,9 @@ const versionPromise = fetch('/contract/version.json').then(_json('version.json'
const metadataPromise = fetch('/metadata.json').then(_json('metadata.json'))
export const version = await versionPromise
console.log('version', version)
// console.log('version', version)
export const metadata = await metadataPromise
console.log('metadata', metadata)
// console.log('metadata', metadata)
export function dexorderAddress(chainId) { return version['chainInfo'][chainId]['dexorder'] }
export function factoryAddress(chainId) { return version['chainInfo'][chainId]['factory'] }

View File

@@ -1633,11 +1633,6 @@ luxon@^3.4.4:
resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.5.0.tgz#6b6f65c5cd1d61d1fd19dbf07ee87a50bf4b8e20"
integrity sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==
lz-string@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
magic-string@^0.30.11, magic-string@^0.30.17:
version "0.30.17"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453"