From b1cba02535ae8d2d2f02250edf13bbc66e660182 Mon Sep 17 00:00:00 2001 From: Roy Keene Date: Tue, 5 May 2026 15:08:52 -0500 Subject: [PATCH 1/3] Handle tokens with invalid decimal places better --- apps/web/src/libs/token-batcher.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/web/src/libs/token-batcher.ts b/apps/web/src/libs/token-batcher.ts index 5a6ffbf..8079f94 100644 --- a/apps/web/src/libs/token-batcher.ts +++ b/apps/web/src/libs/token-batcher.ts @@ -31,8 +31,9 @@ interface WaiterPromise { * Parsers */ function parseTokenMetadata(metadata: string | undefined): { decimalPlaces: number } { + let decimalPlaces = 0; if (!metadata) { - return({ decimalPlaces: 0 }); + return({ decimalPlaces }); } try { @@ -42,13 +43,14 @@ function parseTokenMetadata(metadata: string | undefined): { decimalPlaces: numb typeof parsedMetadata === 'object' && 'decimalPlaces' in parsedMetadata ) { - return({ - decimalPlaces: Number(parsedMetadata.decimalPlaces ?? 0) - }); + decimalPlaces = Number(parsedMetadata.decimalPlaces ?? 0); + if (Number.isNaN(decimalPlaces) || decimalPlaces < 0) { + decimalPlaces = 0; + } } } catch { /* Ignore */ } - return({ decimalPlaces: 0 }); + return({ decimalPlaces }); } export function parseTokenDetails(token: AccountInfo, baseToken: GenericAccount): TokenDetails { From 985b2a170097b3a23738d5673a1965112ff1ece6 Mon Sep 17 00:00:00 2001 From: Roy Keene Date: Tue, 5 May 2026 15:25:26 -0500 Subject: [PATCH 2/3] More safety! --- apps/web/src/libs/token-batcher.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/web/src/libs/token-batcher.ts b/apps/web/src/libs/token-batcher.ts index 8079f94..dbc1958 100644 --- a/apps/web/src/libs/token-batcher.ts +++ b/apps/web/src/libs/token-batcher.ts @@ -44,12 +44,17 @@ function parseTokenMetadata(metadata: string | undefined): { decimalPlaces: numb 'decimalPlaces' in parsedMetadata ) { decimalPlaces = Number(parsedMetadata.decimalPlaces ?? 0); - if (Number.isNaN(decimalPlaces) || decimalPlaces < 0) { - decimalPlaces = 0; - } } } catch { /* Ignore */ } + if (!Number.isInteger(decimalPlaces)) { + decimalPlaces = Math.floor(decimalPlaces); + } + + if (!Number.isFinite(decimalPlaces) || decimalPlaces < 0 || decimalPlaces > 1024) { + decimalPlaces = 0; + } + return({ decimalPlaces }); } From 4ca94227690176d7ebf6daf2fb4d0fc2eeeca546 Mon Sep 17 00:00:00 2001 From: Roy Keene Date: Tue, 5 May 2026 15:36:58 -0500 Subject: [PATCH 3/3] Explorer v0.1.2 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 6de2410..d16338e 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "explorer", - "version": "0.1.1", + "version": "0.1.2", "lockfileVersion": 3, "requires": true, "packages": { @@ -16,7 +16,7 @@ "node": ">=20.18.0", "npm": ">=9.8.1" }, - "version": "0.1.1" + "version": "0.1.2" }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.4", diff --git a/package.json b/package.json index deac97a..dfe08a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "explorer", - "version": "0.1.1", + "version": "0.1.2", "description": "", "author": "Keeta Token Genesis LLC", "private": true,