Indexer-first Arena display reads (#301) #446

Merged
PlasticDigits merged 4 commits from cursor/gitlab-issue-workflow-ce56 into main 2026-06-08 07:49:05 +00:00
PlasticDigits commented 2026-06-08 06:15:05 +00:00 (Migrated from gitlab.com)

Summary

Indexer-first Arena v2 display reads (#301): browsers no longer mirror podium/timer/sale-head state via wallet RPC when VITE_INDEXER_URL is set or unset. The indexer head poller batches Arena v2 sale-head fields on GET /v1/arena/timers; the frontend maps them through coreReadRowsFromArenaTimers and serves podiums exclusively from GET /v1/arena/podiums (including #302 prize preview fields merged from main).

Merge conflict resolution: rebased main (podium prize preview #302) into this branch — kept indexer-first policy while integrating PodiumVaults.activePoolBalance head reads and prize_places_doub_wad on /v1/arena/podiums.

Closes #301

Layers touched

  • indexer (indexer/)
  • frontend (frontend/)
  • docs only (docs/, skills/)

Verification

Layer Command Result
indexer clippy cd indexer && cargo clippy --all-targets -- -D warnings PASS
indexer tests cd indexer && env -u DATABASE_POOL_MAX cargo test PASS
frontend typecheck cd frontend && npm run typecheck PASS
frontend lint cd frontend && npm run lint PASS
frontend unit tests cd frontend && npm test PASS
indexer-first static gate included in npm test (indexerFirstDisplay.test.ts) PASS
MR mergeable glab mr view 76 → can_be_merged PASS

Licensing & compliance

  • New or changed original files remain AGPL-3.0.
  • No incompatible third-party code added.

Notes for reviewers

  • Invariant: INV-FRONTEND-301-INDEXER-FIRST-DISPLAY
  • Wallet RPC remains for writes and submit-time preflight only.
  • Security automation: 0 medium+ findings on prior commit.

Note

Medium Risk
Changes how live Arena UI gets head state (indexer outage = stale/empty UI, no RPC fallback) and expands the indexer timers contract; wallet writes and preflight RPC are unchanged.

Overview
Indexer-first Arena display (#301): recurring /arena head state (podiums, deadlines, hero timer, buy-hub sale head) comes only from the indexer when VITE_INDEXER_URL is set. Browser eth_call multicalls, public-client backfill, and WarBow useWatchContractEvent for display refresh are removed or disabled; unset URL shows a dev banner and empty placeholders instead of hidden RPC polling.

Indexer: the head poller batches Arena v2 sale-head fields (charm_price_wad, doub, referral registry, cooldowns, buy router, flat CRED) onto GET /v1/arena/timers (schema ≥ 2.6.0). Frontend: shared useArenaTimersQuery, coreReadRowsFromArenaTimers for Arena v2 useArenaSaleSession (core multicall enabled: false), and updated fetchLegacyArenaSaleState mapping.

Docs/skills add INV-FRONTEND-301-INDEXER-FIRST-DISPLAY, manual QA, and minimal vs full-stack E2E guidance. Wallet RPC stays for writes and submit-time preflight only.

Reviewed by Cursor Bugbot for commit cf7d2f6ca1. Bugbot is set up for automated code reviews on this repo. Configure here.

## Summary Indexer-first Arena v2 **display** reads ([#301](https://gitlab.com/PlasticDigits/yieldomega/-/issues/301)): browsers no longer mirror podium/timer/sale-head state via wallet RPC when `VITE_INDEXER_URL` is set or unset. The indexer head poller batches Arena v2 sale-head fields on `GET /v1/arena/timers`; the frontend maps them through `coreReadRowsFromArenaTimers` and serves podiums exclusively from `GET /v1/arena/podiums` (including [#302](https://gitlab.com/PlasticDigits/yieldomega/-/issues/302) prize preview fields merged from `main`). **Merge conflict resolution:** rebased `main` (podium prize preview #302) into this branch — kept indexer-first policy while integrating `PodiumVaults.activePoolBalance` head reads and `prize_places_doub_wad` on `/v1/arena/podiums`. ## Related issues Closes #301 ## Layers touched - [x] **indexer** (`indexer/`) - [x] **frontend** (`frontend/`) - [x] **docs only** (`docs/`, `skills/`) ## Verification | Layer | Command | Result | |-------|---------|--------| | indexer clippy | `cd indexer && cargo clippy --all-targets -- -D warnings` | PASS | | indexer tests | `cd indexer && env -u DATABASE_POOL_MAX cargo test` | PASS | | frontend typecheck | `cd frontend && npm run typecheck` | PASS | | frontend lint | `cd frontend && npm run lint` | PASS | | frontend unit tests | `cd frontend && npm test` | PASS | | indexer-first static gate | included in `npm test` (`indexerFirstDisplay.test.ts`) | PASS | | MR mergeable | `glab mr view 76` → `can_be_merged` | PASS | ## Licensing & compliance - [x] New or changed **original** files remain **AGPL-3.0**. - [x] No incompatible third-party code added. ## Notes for reviewers - Invariant: **`INV-FRONTEND-301-INDEXER-FIRST-DISPLAY`** - Wallet RPC remains for writes and submit-time preflight only. - Security automation: 0 medium+ findings on prior commit. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Changes how live Arena UI gets head state (indexer outage = stale/empty UI, no RPC fallback) and expands the indexer timers contract; wallet writes and preflight RPC are unchanged. > > **Overview** > **Indexer-first Arena display (#301):** recurring `/arena` head state (podiums, deadlines, hero timer, buy-hub sale head) comes only from the indexer when `VITE_INDEXER_URL` is set. Browser **eth_call** multicalls, public-client backfill, and WarBow **useWatchContractEvent** for display refresh are removed or disabled; unset URL shows a dev banner and empty placeholders instead of hidden RPC polling. > > **Indexer:** the head poller batches Arena v2 **sale-head** fields (`charm_price_wad`, `doub`, referral registry, cooldowns, buy router, flat CRED) onto **`GET /v1/arena/timers`** (schema ≥ 2.6.0). **Frontend:** shared **`useArenaTimersQuery`**, **`coreReadRowsFromArenaTimers`** for Arena v2 **`useArenaSaleSession`** (core multicall **`enabled: false`**), and updated **`fetchLegacyArenaSaleState`** mapping. > > Docs/skills add **`INV-FRONTEND-301-INDEXER-FIRST-DISPLAY`**, manual QA, and minimal vs full-stack E2E guidance. Wallet RPC stays for writes and submit-time preflight only. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cf7d2f6ca1fe519255a22a3fd55525fcb10602a9. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
PlasticDigits commented 2026-06-08 06:15:13 +00:00 (Migrated from gitlab.com)

mentioned in issue #301

mentioned in issue #301
ghost1 commented 2026-06-08 06:18:32 +00:00 (Migrated from gitlab.com)

Security review (automation)

Commit reviewed: a907b30e102fe28e041eb41e2e3eff157c646aa4
Scope: MR !446 — indexer-first Arena v2 display reads; removal of browser RPC fallbacks; indexer GET /v1/arena/timers sale-head fields; frontend hooks (usePodiumReads, useArenaHeroTimer, useArenaSaleSession, ArenaTimerChips).

Outcome: FINDINGS: 0 medium+

Summary

Reviewed added/modified runtime paths in frontend/ and indexer/ (docs/skills excluded from vuln triage). Traced attacker-controlled input to sinks:

Area Result
Indexer API (api_arena.rs, chain_timer.rs) New fields are server-side eth_call reads at pinned block; no user input, SQL, or SSRF surface added.
Frontend fetch (indexerApi.ts) Existing fetch to configured VITE_INDEXER_URL; no new secrets/logging.
Display rendering (podium winners, timers) React text nodes / AddressInline with isAddress checks; no dangerouslySetInnerHTML.
Buy/signing path (useArenaSaleSession) Arena v2 core display rows now come from indexer timers (not browser RPC). Buy txs still target env-configured TimeArena and wallet-signed calldata; resolveTimeArenaBuyRouterForKumbayaSingleTx still fail-closes when VITE_KUMBAYA_TIME_ARENA_BUY_ROUTER disagrees with the served router. Indexer compromise could mislead display (documented in threat model) but is an accepted ops trust boundary, not a new injectable/code flaw in this diff.
WarBow event watches disabled Indexer poll invalidation only; availability/latency change, not authz or fund movement.

No injection, authn/authz bypass, XSS, SSRF, secret leakage, or dependency supply-chain changes meeting medium+ bar were found in this diff.

Inline threads: none (no medium+ findings).


Cursor security-review automation

## Security review (automation) **Commit reviewed:** `a907b30e102fe28e041eb41e2e3eff157c646aa4` **Scope:** MR !446 — indexer-first Arena v2 display reads; removal of browser RPC fallbacks; indexer `GET /v1/arena/timers` sale-head fields; frontend hooks (`usePodiumReads`, `useArenaHeroTimer`, `useArenaSaleSession`, `ArenaTimerChips`). **Outcome:** `FINDINGS: 0` medium+ ### Summary Reviewed added/modified runtime paths in `frontend/` and `indexer/` (docs/skills excluded from vuln triage). Traced attacker-controlled input to sinks: | Area | Result | |------|--------| | Indexer API (`api_arena.rs`, `chain_timer.rs`) | New fields are server-side `eth_call` reads at pinned block; no user input, SQL, or SSRF surface added. | | Frontend fetch (`indexerApi.ts`) | Existing `fetch` to configured `VITE_INDEXER_URL`; no new secrets/logging. | | Display rendering (podium winners, timers) | React text nodes / `AddressInline` with `isAddress` checks; no `dangerouslySetInnerHTML`. | | Buy/signing path (`useArenaSaleSession`) | Arena v2 core display rows now come from indexer timers (not browser RPC). **Buy txs still target env-configured `TimeArena` and wallet-signed calldata**; `resolveTimeArenaBuyRouterForKumbayaSingleTx` still fail-closes when `VITE_KUMBAYA_TIME_ARENA_BUY_ROUTER` disagrees with the served router. Indexer compromise could mislead display (documented in threat model) but is an accepted ops trust boundary, not a new injectable/code flaw in this diff. | | WarBow event watches disabled | Indexer poll invalidation only; availability/latency change, not authz or fund movement. | No injection, authn/authz bypass, XSS, SSRF, secret leakage, or dependency supply-chain changes meeting medium+ bar were found in this diff. **Inline threads:** none (no medium+ findings). --- *Cursor security-review automation*
PlasticDigits commented 2026-06-08 06:54:06 +00:00 (Migrated from gitlab.com)

added 4 commits

  • a907b30e...68af94b6 - 3 commits from branch main
  • cbeb0db4 - merge(main): resolve conflicts with podium prize preview (#302)

Compare with previous version

added 4 commits <ul><li>a907b30e...68af94b6 - 3 commits from branch <code>main</code></li><li>cbeb0db4 - merge(main): resolve conflicts with podium prize preview (#302)</li></ul> [Compare with previous version](/PlasticDigits/yieldomega/-/merge_requests/76/diffs?diff_id=1838997813&start_sha=a907b30e102fe28e041eb41e2e3eff157c646aa4)
PlasticDigits commented 2026-06-08 06:54:34 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-08 06:55:18 +00:00 (Migrated from gitlab.com)

cursor review verbose=true

cursor review verbose=true
PlasticDigits commented 2026-06-08 07:35:42 +00:00 (Migrated from gitlab.com)

cursor review verbose=true

cursor review verbose=true
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:35:51 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:36:02 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:38:03 +00:00 (Migrated from gitlab.com)

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issues.

Reviewed by Cursor Bugbot for commit cbeb0db44e. Configure here.

<!-- BUGBOT_REVIEW --> Cursor Bugbot has reviewed your changes and found 2 potential issues. <!-- BUGBOT_FIX_ALL --> <a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9BTExfSU5fQ1VSU09SIiwiZGF0YSI6eyJyZWRpc0tleSI6ImJ1Z2JvdC1tdWx0aTowOWI3YjBhNy1jMTEzLTQ4YmUtOWNmNy1lMTBmYjFiOGY5MzgiLCJlbmNyeXB0aW9uS2V5IjoiblItenhSUzdidkpRbHFGYXJQOUJFM3R3MVZDTEMwUzBSSVJYTi1wdmQ1dyIsImJyYW5jaCI6ImN1cnNvci9naXRsYWItaXNzdWUtd29ya2Zsb3ctY2U1NiIsInJlcG9Pd25lciI6IlBsYXN0aWNEaWdpdHMiLCJyZXBvTmFtZSI6InlpZWxkb21lZ2EifX0" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix All in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a> <!-- /BUGBOT_FIX_ALL --> <!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_BEGIN --> <sup>Bugbot Autofix is [ON](https://www.cursor.com/dashboard/bugbot). A cloud agent has been kicked off to fix the reported issues. <!-- BUGBOT_AUTOFIX_AGENT_LINK --></sup> <!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_END --> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cbeb0db44e8750c4f589c51cf6e29ef95b190f11. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:38:05 +00:00 (Migrated from gitlab.com)

Wrong type in charm_price field

Low Severity

fetchLegacyArenaSaleState sets charm_price to the same decimal wad string as current_price_per_charm_wad, but ArenaSaleState.charm_price is an address used with addr() in coreReadRowsFromSaleState.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cbeb0db44e. Configure here.

### Wrong type in charm_price field **Low Severity** <!-- DESCRIPTION START --> `fetchLegacyArenaSaleState` sets `charm_price` to the same decimal wad string as `current_price_per_charm_wad`, but `ArenaSaleState.charm_price` is an address used with `addr()` in `coreReadRowsFromSaleState`. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 93996861-9eb8-420a-ae73-f690cdb61d36 --> <!-- LOCATIONS START frontend/src/lib/indexerApi.ts#L235-L237 LOCATIONS END --> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OmJlOGZmM2ZkLTdjYTMtNDgwZS1iODZhLThjYmUyMjBlYmU2ZiIsImVuY3J5cHRpb25LZXkiOiJWbkwzbTVFbTV6bEFIQ0tlWkVFWmhsSGJjdnUtTWk5Y1NMclNsMENYcWc4IiwiYnJhbmNoIjoiY3Vyc29yL2dpdGxhYi1pc3N1ZS13b3JrZmxvdy1jZTU2IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoieWllbGRvbWVnYSJ9fQ" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OmJlOGZmM2ZkLTdjYTMtNDgwZS1iODZhLThjYmUyMjBlYmU2ZiIsImVuY3J5cHRpb25LZXkiOiJWbkwzbTVFbTV6bEFIQ0tlWkVFWmhsSGJjdnUtTWk5Y1NMclNsMENYcWc4IiwiYnJhbmNoIjoiY3Vyc29yL2dpdGxhYi1pc3N1ZS13b3JrZmxvdy1jZTU2IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoieWllbGRvbWVnYSIsInByTnVtYmVyIjo3NiwiY29tbWl0U2hhIjoiY2JlYjBkYjQ0ZTg3NTBjNGY1ODljNTFjZjZlMjllZjk1YjE5MGYxMSIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cbeb0db44e8750c4f589c51cf6e29ef95b190f11. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:38:05 +00:00 (Migrated from gitlab.com)

Duplicate arena timers polling

Medium Severity

For Arena v2 with VITE_INDEXER_URL set, useArenaSaleSession mounts both useArenaSaleStateQuery and useArenaTimersQuery. Each polls about every 2s and both hit GET /v1/arena/timers, while v2 sale head reads only use the timers query path.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cbeb0db44e. Configure here.

### Duplicate arena timers polling **Medium Severity** <!-- DESCRIPTION START --> For Arena v2 with `VITE_INDEXER_URL` set, `useArenaSaleSession` mounts both `useArenaSaleStateQuery` and `useArenaTimersQuery`. Each polls about every 2s and both hit `GET /v1/arena/timers`, while v2 sale head reads only use the timers query path. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: a03b2dfa-61cb-4b1b-b199-ee36b15995b7 --> <!-- LOCATIONS START frontend/src/pages/arena/useArenaSaleSession.ts#L318-L321 frontend/src/pages/arena/useArenaSaleState.ts#L147-L161 frontend/src/pages/arena/useArenaSaleState.ts#L164-L178 LOCATIONS END --> <details> <summary>Additional Locations (2)</summary> - [`frontend/src/pages/arena/useArenaSaleState.ts#L147-L161`](https://gitlab.com/PlasticDigits/yieldomega/-//blob/cbeb0db44e8750c4f589c51cf6e29ef95b190f11/frontend/src/pages/arena/useArenaSaleState.ts#L147-L161) - [`frontend/src/pages/arena/useArenaSaleState.ts#L164-L178`](https://gitlab.com/PlasticDigits/yieldomega/-//blob/cbeb0db44e8750c4f589c51cf6e29ef95b190f11/frontend/src/pages/arena/useArenaSaleState.ts#L164-L178) </details> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjVlYTc3MGU5LWE5NzUtNGMyMC05OWJjLWY3ZDIyNjI2ZDQ3YiIsImVuY3J5cHRpb25LZXkiOiJ1S0FybjNpakpHYlJ3dlBfNjNrNUNJOXprUGNiRG85N0hHblNBSGtFSzVVIiwiYnJhbmNoIjoiY3Vyc29yL2dpdGxhYi1pc3N1ZS13b3JrZmxvdy1jZTU2IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoieWllbGRvbWVnYSJ9fQ" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjVlYTc3MGU5LWE5NzUtNGMyMC05OWJjLWY3ZDIyNjI2ZDQ3YiIsImVuY3J5cHRpb25LZXkiOiJ1S0FybjNpakpHYlJ3dlBfNjNrNUNJOXprUGNiRG85N0hHblNBSGtFSzVVIiwiYnJhbmNoIjoiY3Vyc29yL2dpdGxhYi1pc3N1ZS13b3JrZmxvdy1jZTU2IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoieWllbGRvbWVnYSIsInByTnVtYmVyIjo3NiwiY29tbWl0U2hhIjoiY2JlYjBkYjQ0ZTg3NTBjNGY1ODljNTFjZjZlMjllZjk1YjE5MGYxMSIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cbeb0db44e8750c4f589c51cf6e29ef95b190f11. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:39:05 +00:00 (Migrated from gitlab.com)

changed this line in version 3 of the diff

changed this line in [version 3 of the diff](/PlasticDigits/yieldomega/-/merge_requests/76/diffs?diff_id=1839072555&start_sha=cbeb0db44e8750c4f589c51cf6e29ef95b190f11#3b587b818438efd8cbf60f90ff8b9eb4da53e6ca_237_237)
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:39:06 +00:00 (Migrated from gitlab.com)

added 1 commit

  • cf7d2f6c - fix(arena): skip duplicate timers poll on v2 and fix charm_price mapping

Compare with previous version

added 1 commit <ul><li>cf7d2f6c - fix(arena): skip duplicate timers poll on v2 and fix charm_price mapping</li></ul> [Compare with previous version](/PlasticDigits/yieldomega/-/merge_requests/76/diffs?diff_id=1839072555&start_sha=cbeb0db44e8750c4f589c51cf6e29ef95b190f11)
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:39:21 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
project_80561744_bot_5118c68a88bff95eacb6ab1c47c19cae commented 2026-06-08 07:40:02 +00:00 (Migrated from gitlab.com)

resolved all threads

resolved all threads
PlasticDigits (Migrated from gitlab.com) merged commit 67196222d3 into main 2026-06-08 07:49:05 +00:00
PlasticDigits commented 2026-06-08 07:49:06 +00:00 (Migrated from gitlab.com)

mentioned in commit 67196222d3

mentioned in commit 67196222d3f71015639c11bb257d8eebb6b438fd
PlasticDigits commented 2026-06-08 08:45:14 +00:00 (Migrated from gitlab.com)

mentioned in commit a427ec4c30

mentioned in commit a427ec4c308e66e493dfca21c182d525b4f1ba10
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega!446
No description provided.