From a9d0aa90866cd4a78ca0162998f132fb0715f57a Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sat, 17 Jan 2026 11:36:50 +0100 Subject: [PATCH 1/8] fix trip value change calc for boosted trips --- packages/client/src/lib/components/Admin/helpers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/lib/components/Admin/helpers.ts b/packages/client/src/lib/components/Admin/helpers.ts index 6e690312..e5deae7b 100644 --- a/packages/client/src/lib/components/Admin/helpers.ts +++ b/packages/client/src/lib/components/Admin/helpers.ts @@ -59,7 +59,7 @@ export function calculateProfitLossForTrip( const previousOutcome = tripOutcomes[i - 1] const outcomeTime = new Date(outcome._createdAt).getTime() - const previousOutcomeValue = previousOutcome?.tripValue || Number(trip.tripCreationCost) // Value from the previous trip, and if it's the first outcome, creation cost of the trip + const previousOutcomeValue = previousOutcome?.tripValue ?? outcome.oldTripValue ?? Number(trip.tripCreationCost) // Value from the previous trip, or oldTripValue (accounts for boosts), or creation cost const currentTripValue = outcome.tripValue || 0 const valueChange = currentTripValue - previousOutcomeValue From 5ef14a03a81d8d87298736bf73d5021cd6d4f92c Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sat, 17 Jan 2026 11:49:51 +0100 Subject: [PATCH 2/8] add typescript check workflow for PRs --- .github/workflows/typecheck.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/typecheck.yml diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml new file mode 100644 index 00000000..7d121c81 --- /dev/null +++ b/.github/workflows/typecheck.yml @@ -0,0 +1,33 @@ +name: TypeScript Check + +on: + pull_request: + branches: [main] + +jobs: + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + + - uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'pnpm' + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build contracts + run: pnpm --filter 'contracts' run build + + - name: Build libs + run: pnpm build:libs + + - name: TypeScript check + run: pnpm check From dd66608474d81c70863710e6f09c6730d3f518e5 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sat, 17 Jan 2026 12:05:35 +0100 Subject: [PATCH 3/8] skip broken packages in typecheck until env vars configured --- .github/workflows/typecheck.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 7d121c81..7d8ac646 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -30,4 +30,5 @@ jobs: run: pnpm build:libs - name: TypeScript check - run: pnpm check + # TODO: re-enable claim-frontend and exchange-frontend once env vars are configured for CI + run: pnpm --filter '@ratfun/shared-ui' --filter 'client' --filter 'auction-frontend' --filter 'server' --filter 'websocket-server' --filter 'query-server' run check From 55fb2a940c79598bb542cb5521a683342b044367 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sat, 17 Jan 2026 12:08:06 +0100 Subject: [PATCH 4/8] copy .env.example files for CI typecheck --- .github/workflows/typecheck.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 7d8ac646..dfd93e29 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -20,6 +20,14 @@ jobs: - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 + - name: Setup env files + run: | + for pkg in packages/*/; do + if [ -f "$pkg.env.example" ]; then + cp "$pkg.env.example" "$pkg.env" + fi + done + - name: Install dependencies run: pnpm install --frozen-lockfile @@ -30,5 +38,4 @@ jobs: run: pnpm build:libs - name: TypeScript check - # TODO: re-enable claim-frontend and exchange-frontend once env vars are configured for CI - run: pnpm --filter '@ratfun/shared-ui' --filter 'client' --filter 'auction-frontend' --filter 'server' --filter 'websocket-server' --filter 'query-server' run check + run: pnpm check From 05271928ecec4d18c9b577386796c5b6bd21457d Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sat, 17 Jan 2026 12:11:55 +0100 Subject: [PATCH 5/8] exclude deprecated claim-frontend from typecheck --- .github/workflows/typecheck.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index dfd93e29..49180476 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -38,4 +38,5 @@ jobs: run: pnpm build:libs - name: TypeScript check - run: pnpm check + # claim-frontend excluded - depends on merkle-tree-airdrop which is deprecated post-airdrop + run: pnpm --filter '!claim-frontend' check From 2a14db703e25d83b16ef277db2932e4e11ffdb0d Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sat, 17 Jan 2026 12:15:30 +0100 Subject: [PATCH 6/8] exclude deprecated auction-frontend from typecheck --- .github/workflows/typecheck.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 49180476..b70b2d38 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -38,5 +38,5 @@ jobs: run: pnpm build:libs - name: TypeScript check - # claim-frontend excluded - depends on merkle-tree-airdrop which is deprecated post-airdrop - run: pnpm --filter '!claim-frontend' check + # claim-frontend, auction-frontend: deprecated, events over + run: pnpm --filter '!claim-frontend' --filter '!auction-frontend' check From 1ef6eec62fe256f318771394217569bbe4d7fe22 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sat, 17 Jan 2026 12:21:39 +0100 Subject: [PATCH 7/8] build query-server before typecheck --- .github/workflows/typecheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index b70b2d38..e96aef68 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -35,7 +35,7 @@ jobs: run: pnpm --filter 'contracts' run build - name: Build libs - run: pnpm build:libs + run: pnpm build:libs && pnpm --filter 'query-server' run build - name: TypeScript check # claim-frontend, auction-frontend: deprecated, events over From 78043d7dc160fd1407c89d3a00b69627ac8181f8 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Sun, 18 Jan 2026 01:16:44 +0100 Subject: [PATCH 8/8] remove forge console import, add uint128 overflow check --- packages/contracts/src/external/swap-router/RatRouter.sol | 1 + packages/contracts/src/systems/RatSystem.sol | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/contracts/src/external/swap-router/RatRouter.sol b/packages/contracts/src/external/swap-router/RatRouter.sol index e4180c3a..92e33000 100644 --- a/packages/contracts/src/external/swap-router/RatRouter.sol +++ b/packages/contracts/src/external/swap-router/RatRouter.sol @@ -127,6 +127,7 @@ contract RatRouter { amountOutMinimum: 0 }) ); + require(amountOut <= type(uint128).max, "amount overflow"); return uint128(amountOut); } diff --git a/packages/contracts/src/systems/RatSystem.sol b/packages/contracts/src/systems/RatSystem.sol index 364e4361..801c520a 100644 --- a/packages/contracts/src/systems/RatSystem.sol +++ b/packages/contracts/src/systems/RatSystem.sol @@ -14,7 +14,6 @@ import { } from "../codegen/index.sol"; import { System } from "@latticexyz/world/src/System.sol"; import { LibUtils, LibRat, LibWorld } from "../libraries/Libraries.sol"; -import { console2 as console } from "forge-std/console2.sol"; contract RatSystem is System { /**