Local Anvil registry omits TimeCurveBuyRouter after verify script — indexer drops BuyViaKumbaya #84

Closed
opened 2026-04-28 03:21:39 +00:00 by PlasticDigits · 14 comments
PlasticDigits commented 2026-04-28 03:21:39 +00:00 (Migrated from gitlab.com)

Summary

scripts/start-local-anvil-stack.sh writes contracts/deployments/local-anvil-registry.json with TimeCurve, RabbitTreasury, LeprechaunNFT, FeeRouter, PodiumPool, and ReferralRegistry, but not TimeCurveBuyRouter.

The indexer loads ADDRESS_REGISTRY_PATH at startup and only ingests BuyViaKumbaya when TimeCurveBuyRouter is present in that registry (issue #67). After running scripts/verify-timecurve-buy-router-anvil.sh with YIELDOMEGA_DEPLOY_KUMBAYA=1, the router is deployed and wired onchain, but the registry file is unchanged, so the indexer never learns the router address and BuyViaKumbaya events are dropped.

Workaround used in QA: manually add TimeCurveBuyRouter to local-anvil-registry.json and restart the indexer.

This is the same “derived config not updated after a second deploy step” family as the VITE_KUMBAYA_* env mirror gap noted around issue #83 (closed).

Acceptance criteria

  1. Registry parity after buy-router deploy: When a developer runs the default local stack and then deploys the Kumbaya / buy-router fixtures (e.g. YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/verify-timecurve-buy-router-anvil.sh), contracts/deployments/local-anvil-registry.json MUST contain contracts.TimeCurveBuyRouter with the same address as cast call <TimeCurve> "timeCurveBuyRouter()(address)", without manual JSON edits.

  2. Indexer visibility: With the indexer started via start-local-anvil-stack.sh (or equivalent ADDRESS_REGISTRY_PATH pointing at that file), after the verify script completes, restarting the indexer OR documenting a single command that refreshes the registry before indexer start MUST result in BuyViaKumbaya being decoded and correlated per issue #67 (no silent drop solely because the key was missing from the registry).

  3. Documented QA path: docs/integrations/kumbaya.md, docs/testing/invariants-and-business-logic.md (issue #78 section), and/or skills/verify-yo-timecurve-buy-router-anvil/SKILL.md MUST state the one-line flow so future QA does not rediscover the gap (minimal doc delta; align with whichever script owns the registry write).

  4. No regression for stacks without the router: If timeCurveBuyRouter() is still zero, the registry MUST either omit TimeCurveBuyRouter or document that the indexer correctly ignores an empty/zero entry (match existing ADDRESS_REGISTRY semantics in indexer/src/config.rs).

Preferred (small, explicit): Extend scripts/verify-timecurve-buy-router-anvil.sh so that whenever it learns a non-zero TimeCurveBuyRouter (from chain or immediately after DeployKumbayaAnvilFixtures), it merges TimeCurveBuyRouter into contracts/deployments/local-anvil-registry.json via jq (preserve existing keys and deployBlock). Print one line confirming the merge path. QA then re-runs the indexer (or restarts stack) once; no hand-editing.

Alternative / additive: Optionally gate start-local-anvil-stack.sh behind an env such as YIELDOMEGA_DEPLOY_KUMBAYA=1 to run DeployKumbayaAnvilFixtures and include TimeCurveBuyRouter in the initial registry write—heavier default; only do if product wants “router always on” local stacks.

Optional: Append VITE_KUMBAYA_TIMECURVE_BUY_ROUTER to frontend/.env.local when the router is non-zero, mirroring scripts/e2e-anvil.sh / anvil_deploy_dev.sh behavior (invariants — issue #78); only if we want full env parity in one shot.

Files likely to change

File Change
scripts/verify-timecurve-buy-router-anvil.sh After deploy or onchain read, jq-merge TimeCurveBuyRouter into contracts/deployments/local-anvil-registry.json when the file exists (default local QA path).
scripts/start-local-anvil-stack.sh Optional: env-gated fixture deploy + initial registry field; or leave unchanged if verify script owns the merge.
docs/integrations/kumbaya.md One paragraph: registry + indexer restart after verify script.
docs/testing/invariants-and-business-logic.md Issue #78 / localnet bullets: registry must include router for indexer BuyViaKumbaya.
skills/verify-yo-timecurve-buy-router-anvil/SKILL.md Step: confirm registry contains TimeCurveBuyRouter; restart indexer if needed.

References

  • Indexer: ADDRESS_REGISTRY, TimeCurveBuyRouter — issue #67
  • Anvil verify script / fork test — issue #78
  • Stack default omits DeployKumbayaAnvilFixtures — start-local-anvil-stack.sh header comments and guardrails skill item 21
## Summary `scripts/start-local-anvil-stack.sh` writes `contracts/deployments/local-anvil-registry.json` with **TimeCurve**, **RabbitTreasury**, **LeprechaunNFT**, **FeeRouter**, **PodiumPool**, and **ReferralRegistry**, but **not** **TimeCurveBuyRouter**. The indexer loads **`ADDRESS_REGISTRY_PATH`** at startup and only ingests **`BuyViaKumbaya`** when **TimeCurveBuyRouter** is present in that registry ([issue #67](https://gitlab.com/PlasticDigits/yieldomega/-/issues/67)). After running **`scripts/verify-timecurve-buy-router-anvil.sh`** with **`YIELDOMEGA_DEPLOY_KUMBAYA=1`**, the router is deployed and wired onchain, but the registry file is unchanged, so the indexer never learns the router address and **`BuyViaKumbaya`** events are dropped. **Workaround used in QA:** manually add **`TimeCurveBuyRouter`** to `local-anvil-registry.json` and restart the indexer. This is the same *“derived config not updated after a second deploy step”* family as the **`VITE_KUMBAYA_*`** env mirror gap noted around [issue #83](https://gitlab.com/PlasticDigits/yieldomega/-/issues/83) (closed). ## Acceptance criteria 1. **Registry parity after buy-router deploy:** When a developer runs the default local stack and then deploys the Kumbaya / buy-router fixtures (e.g. **`YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/verify-timecurve-buy-router-anvil.sh`**), **`contracts/deployments/local-anvil-registry.json`** MUST contain **`contracts.TimeCurveBuyRouter`** with the same address as **`cast call <TimeCurve> "timeCurveBuyRouter()(address)"`**, without manual JSON edits. 2. **Indexer visibility:** With the indexer started via **`start-local-anvil-stack.sh`** (or equivalent **`ADDRESS_REGISTRY_PATH`** pointing at that file), after the verify script completes, restarting the indexer OR documenting a single command that refreshes the registry before indexer start MUST result in **`BuyViaKumbaya`** being decoded and correlated per [issue #67](https://gitlab.com/PlasticDigits/yieldomega/-/issues/67) (no silent drop solely because the key was missing from the registry). 3. **Documented QA path:** **`docs/integrations/kumbaya.md`**, **`docs/testing/invariants-and-business-logic.md`** (issue #78 section), and/or **`skills/verify-yo-timecurve-buy-router-anvil/SKILL.md`** MUST state the one-line flow so future QA does not rediscover the gap (minimal doc delta; align with whichever script owns the registry write). 4. **No regression for stacks without the router:** If **`timeCurveBuyRouter()`** is still zero, the registry MUST either omit **`TimeCurveBuyRouter`** or document that the indexer correctly ignores an empty/zero entry (match existing **`ADDRESS_REGISTRY`** semantics in **`indexer/src/config.rs`**). ## Recommended fix **Preferred (small, explicit):** Extend **`scripts/verify-timecurve-buy-router-anvil.sh`** so that whenever it learns a non-zero **`TimeCurveBuyRouter`** (from chain **or** immediately after **`DeployKumbayaAnvilFixtures`**), it **merges** **`TimeCurveBuyRouter`** into **`contracts/deployments/local-anvil-registry.json`** via **`jq`** (preserve existing keys and **`deployBlock`**). Print one line confirming the merge path. QA then re-runs the indexer (or restarts stack) once; no hand-editing. **Alternative / additive:** Optionally gate **`start-local-anvil-stack.sh`** behind an env such as **`YIELDOMEGA_DEPLOY_KUMBAYA=1`** to run **`DeployKumbayaAnvilFixtures`** and include **`TimeCurveBuyRouter`** in the initial registry write—heavier default; only do if product wants “router always on” local stacks. **Optional:** Append **`VITE_KUMBAYA_TIMECURVE_BUY_ROUTER`** to **`frontend/.env.local`** when the router is non-zero, mirroring **`scripts/e2e-anvil.sh`** / **`anvil_deploy_dev.sh`** behavior ([invariants — issue #78](https://gitlab.com/PlasticDigits/yieldomega/-/issues/78)); only if we want full env parity in one shot. ## Files likely to change | File | Change | |------|--------| | `scripts/verify-timecurve-buy-router-anvil.sh` | After deploy or onchain read, **`jq`**-merge **`TimeCurveBuyRouter`** into `contracts/deployments/local-anvil-registry.json` when the file exists (default local QA path). | | `scripts/start-local-anvil-stack.sh` | *Optional:* env-gated fixture deploy + initial registry field; or leave unchanged if verify script owns the merge. | | `docs/integrations/kumbaya.md` | One paragraph: registry + indexer restart after verify script. | | `docs/testing/invariants-and-business-logic.md` | Issue #78 / localnet bullets: registry must include router for indexer **`BuyViaKumbaya`**. | | `skills/verify-yo-timecurve-buy-router-anvil/SKILL.md` | Step: confirm registry contains **`TimeCurveBuyRouter`**; restart indexer if needed. | ## References - Indexer: **`ADDRESS_REGISTRY`**, **`TimeCurveBuyRouter`** — [issue #67](https://gitlab.com/PlasticDigits/yieldomega/-/issues/67) - Anvil verify script / fork test — [issue #78](https://gitlab.com/PlasticDigits/yieldomega/-/issues/78) - Stack default omits **`DeployKumbayaAnvilFixtures`** — `start-local-anvil-stack.sh` header comments and guardrails skill item 21
PlasticDigits commented 2026-04-28 03:21:39 +00:00 (Migrated from gitlab.com)

assigned to @PlasticDigits

assigned to @PlasticDigits
PlasticDigits commented 2026-04-28 03:21:55 +00:00 (Migrated from gitlab.com)

mentioned in issue #75

mentioned in issue #75
PlasticDigits commented 2026-04-28 03:36:15 +00:00 (Migrated from gitlab.com)

mentioned in commit ac3d5964d8

mentioned in commit ac3d5964d835ac7d1ab017bb722dee2f07c205f3
PlasticDigits commented 2026-04-28 03:37:14 +00:00 (Migrated from gitlab.com)

Implemented on main (ac3d596)

Summary: scripts/verify-timecurve-buy-router-anvil.sh now jq-merges contracts.TimeCurveBuyRouter into contracts/deployments/local-anvil-registry.json when the router is non-zero (after onchain read or DeployKumbayaAnvilFixtures). When the broadcast log is available, it also merges the full Kumbaya VITE_* block into frontend/.env.local (same shape as e2e-anvil.sh); otherwise it sets/updates VITE_KUMBAYA_TIMECURVE_BUY_ROUTER only if .env.local exists.

Optional stack parity: YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/start-local-anvil-stack.sh runs DeployKumbayaAnvilFixtures after DeployDev, writes TimeCurveBuyRouter into the initial registry JSON, merges Kumbaya VITE_* into frontend/.env.local, then starts the indexer (so ADDRESS_REGISTRY_PATH already includes the router).

Helpers: scripts/lib/kumbaya_local_anvil_env.sh

Docs / cross-links: docs/integrations/kumbaya.md, docs/testing/invariants-and-business-logic.md (#78 table), skills/verify-yo-timecurve-buy-router-anvil/SKILL.md, skills/README.md, .cursor/skills/yieldomega-guardrails/SKILL.md (item 21).


cc @brouie — please verify when convenient.

Verification checklist

  1. Registry merge (verify script path): With the default stack (SKIP_ANVIL_RICH_STATE=1 recommended for live sale), run YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/verify-timecurve-buy-router-anvil.sh. Confirm jq -r '.contracts.TimeCurveBuyRouter' contracts/deployments/local-anvil-registry.json equals cast call <TimeCurve-proxy> "timeCurveBuyRouter()(address)".
  2. Indexer: Restart the indexer (or rely on YIELDOMEGA_DEPLOY_KUMBAYA=1 stack order) so ADDRESS_REGISTRY_PATH reload includes TimeCurveBuyRouter; confirm BuyViaKumbaya rows are no longer dropped solely due to a missing registry key ([ issue #67 ]).
  3. Vite parity: If frontend/.env.local exists, confirm VITE_KUMBAYA_TIMECURVE_BUY_ROUTER matches onchain; after a deploy-log path, confirm WETH/USDM/router/quoter lines match the fixture deploy.
  4. Stack opt-in: YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/start-local-anvil-stack.sh — confirm registry + .env.local include router + Kumbaya VITE_* before indexer startup.
  5. No-router regression: Without fixtures, TimeCurveBuyRouter remains absent from JSON (or empty); indexer must not require a zero address (indexer/src/config.rs index_addresses).

Issue left open for your sign-off.

## Implemented on `main` (ac3d596) **Summary:** `scripts/verify-timecurve-buy-router-anvil.sh` now **jq-merges** `contracts.TimeCurveBuyRouter` into `contracts/deployments/local-anvil-registry.json` when the router is non-zero (after onchain read or `DeployKumbayaAnvilFixtures`). When the broadcast log is available, it also merges the full **Kumbaya `VITE_*`** block into `frontend/.env.local` (same shape as `e2e-anvil.sh`); otherwise it sets/updates **`VITE_KUMBAYA_TIMECURVE_BUY_ROUTER`** only if `.env.local` exists. **Optional stack parity:** `YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/start-local-anvil-stack.sh` runs `DeployKumbayaAnvilFixtures` after DeployDev, writes **`TimeCurveBuyRouter`** into the initial registry JSON, merges **Kumbaya `VITE_*`** into `frontend/.env.local`, then starts the indexer (so `ADDRESS_REGISTRY_PATH` already includes the router). **Helpers:** `scripts/lib/kumbaya_local_anvil_env.sh` **Docs / cross-links:** `docs/integrations/kumbaya.md`, `docs/testing/invariants-and-business-logic.md` (#78 table), `skills/verify-yo-timecurve-buy-router-anvil/SKILL.md`, `skills/README.md`, `.cursor/skills/yieldomega-guardrails/SKILL.md` (item 21). --- cc @brouie — please verify when convenient. ### Verification checklist 1. **Registry merge (verify script path):** With the default stack (`SKIP_ANVIL_RICH_STATE=1` recommended for live sale), run `YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/verify-timecurve-buy-router-anvil.sh`. Confirm `jq -r '.contracts.TimeCurveBuyRouter' contracts/deployments/local-anvil-registry.json` equals `cast call <TimeCurve-proxy> "timeCurveBuyRouter()(address)"`. 2. **Indexer:** Restart the indexer (or rely on `YIELDOMEGA_DEPLOY_KUMBAYA=1` stack order) so `ADDRESS_REGISTRY_PATH` reload includes `TimeCurveBuyRouter`; confirm `BuyViaKumbaya` rows are no longer dropped solely due to a missing registry key ([ issue #67 ]). 3. **Vite parity:** If `frontend/.env.local` exists, confirm `VITE_KUMBAYA_TIMECURVE_BUY_ROUTER` matches onchain; after a deploy-log path, confirm WETH/USDM/router/quoter lines match the fixture deploy. 4. **Stack opt-in:** `YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/start-local-anvil-stack.sh` — confirm registry + `.env.local` include router + Kumbaya `VITE_*` before indexer startup. 5. **No-router regression:** Without fixtures, `TimeCurveBuyRouter` remains absent from JSON (or empty); indexer must not require a zero address ([`indexer/src/config.rs`](indexer/src/config.rs) `index_addresses`). Issue left **open** for your sign-off.
Brouie commented 2026-04-28 05:00:36 +00:00 (Migrated from gitlab.com)

Verified end-to-end on ac3d596 — both verify-script path and stack opt-in path work, no manual JSON / env edits needed anywhere.

Path A — verify script merge (checklist items 1, 2, 3)

Setup: fresh SKIP_ANVIL_RICH_STATE=1 stack with NO Kumbaya. Confirmed pre-condition gap: registry omitted TimeCurveBuyRouter, frontend/.env.local had zero KUMBAYA_* vars.

Then ran YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/verify-timecurve-buy-router-anvil.sh. Script printed two explicit GitLab #84 confirmation lines:

  • Merged contracts.TimeCurveBuyRouter=0x998abeb3E57409262aE5b751f60747921B33613E into /srv/qa/repos/yieldomega/contracts/deployments/local-anvil-registry.json (GitLab #84). Restart the indexer to ingest BuyViaKumbaya.
  • Merged Kumbaya VITE_* (incl. VITE_KUMBAYA_TIMECURVE_BUY_ROUTER) into /srv/qa/repos/yieldomega/frontend/.env.local (GitLab #84).

Plus [PASS] test_Forked_issue78_TimeCurveBuyRouter_checklist() — fork test green.

Post-merge state:

  • Registry: TimeCurveBuyRouter: 0x998abeb3E57409262aE5b751f60747921B33613E inserted, all prior keys preserved (TimeCurve, RabbitTreasury, LeprechaunNFT, FeeRouter, PodiumPool, ReferralRegistry), deployBlock: 1 preserved — proper jq merge, not a rewrite.
  • .env.local: full Kumbaya block (WETH, USDM, SWAP_ROUTER, QUOTER, TIMECURVE_BUY_ROUTER) appended idempotently, prior content preserved.
  • cast call <TimeCurve> "timeCurveBuyRouter()(address)" matches registry value exactly.

Restarted indexer + reset DB state, then live ETH single-tx buyViaKumbaya via Simple page. Indexer captured the BuyViaKumbaya event with no manual patch:

idx_timecurve_buy_router_kumbaya:

  • block_number: 13
  • tx_hash: 0xcc1bf30c4580ce74b15f3002589749e1639304ff2aaf9caaeb2f9e4ac1ea49b6
  • buyer: 0xf39fd6...2266
  • charm_wad: 1002230859254928839 (~1.002 CHARM)
  • gross_cl8y: 1003494087733781404 (~1.003 CL8Y)
  • pay_kind: 0 (PAY_ETH)

Path B — stack opt-in (checklist item 4)

Reset baseline: registry stripped of TimeCurveBuyRouter, .env.local Kumbaya lines removed, DB truncated.

Ran YIELDOMEGA_DEPLOY_KUMBAYA=1 SKIP_ANVIL_RICH_STATE=1 QA_USE_FIXED_INDEXER_PORT=1 bash scripts/start-local-anvil-stack.sh. Stack log shows the new step inline: === DeployKumbayaAnvilFixtures (YIELDOMEGA_DEPLOY_KUMBAYA=1 — GitLab #84) ===, then proceeds to write registry + .env.local + start indexer in that order.

Post-bringup state (BEFORE any QA action, BEFORE any restart):

  • Registry: TimeCurveBuyRouter: 0x998abeb3E57409262aE5b751f60747921B33613E already present
  • .env.local: all 5 Kumbaya VITE_* already present
  • cast call <TimeCurve> "timeCurveBuyRouter()(address)" matches registry value
  • Indexer running, schema up, max_indexed_block tracking the live chain

Live ETH single-tx buyViaKumbaya via Simple page (~2.9 CHARM at slider). Tx 0x8b6d3af74469c007e7c6df349f5d5f7acb5ac53b9b5787cd585cf42c5cfabf0e succeeded clean, +120s timer extension, indexer mirror:

idx_timecurve_buy_router_kumbaya:

  • block_number: 8
  • tx_hash: 0x8b6d3af7...bf0e
  • buyer: 0xf39fd6...2266
  • charm_wad: 2914386097984532330 (~2.914 CHARM)
  • gross_cl8y: 2915637529977995595 (~2.916 CL8Y)
  • pay_kind: 0 (PAY_ETH)

No manual registry edit, no indexer restart — registry was loaded with the router from the very first boot.

Forge fork test

test_Forked_issue78_TimeCurveBuyRouter_checklist() PASS on both paths.

One small UX observation

Hit the #82-flavor friendlyRevertFromUnknown once during early Path A repro at slider value of ~1.002 CHARM right at the lower band edge — bounds drifted in 1 block between submit-time re-quote and inclusion. Bumping the slider to ~1.0 CHARM (same nominal value, different chain block) succeeded, and a later 2.9 CHARM succeeded clean. Not a #84 issue — same #82 edge-case behavior, friendly revert message displayed correctly. Just flagging that band-edge slider values can occasionally need a retry.

Closing #84.

cc @PlasticDigits

Verified end-to-end on `ac3d596` — both verify-script path and stack opt-in path work, no manual JSON / env edits needed anywhere. ## Path A — verify script merge (checklist items 1, 2, 3) Setup: fresh `SKIP_ANVIL_RICH_STATE=1` stack with NO Kumbaya. Confirmed pre-condition gap: registry omitted `TimeCurveBuyRouter`, `frontend/.env.local` had zero `KUMBAYA_*` vars. Then ran `YIELDOMEGA_DEPLOY_KUMBAYA=1 bash scripts/verify-timecurve-buy-router-anvil.sh`. Script printed two explicit GitLab #84 confirmation lines: - `Merged contracts.TimeCurveBuyRouter=0x998abeb3E57409262aE5b751f60747921B33613E into /srv/qa/repos/yieldomega/contracts/deployments/local-anvil-registry.json (GitLab #84). Restart the indexer to ingest BuyViaKumbaya.` - `Merged Kumbaya VITE_* (incl. VITE_KUMBAYA_TIMECURVE_BUY_ROUTER) into /srv/qa/repos/yieldomega/frontend/.env.local (GitLab #84).` Plus `[PASS] test_Forked_issue78_TimeCurveBuyRouter_checklist()` — fork test green. Post-merge state: - Registry: `TimeCurveBuyRouter: 0x998abeb3E57409262aE5b751f60747921B33613E` inserted, all prior keys preserved (TimeCurve, RabbitTreasury, LeprechaunNFT, FeeRouter, PodiumPool, ReferralRegistry), `deployBlock: 1` preserved — proper jq merge, not a rewrite. - `.env.local`: full Kumbaya block (WETH, USDM, SWAP_ROUTER, QUOTER, TIMECURVE_BUY_ROUTER) appended idempotently, prior content preserved. - `cast call <TimeCurve> "timeCurveBuyRouter()(address)"` matches registry value exactly. Restarted indexer + reset DB state, then live ETH single-tx buyViaKumbaya via Simple page. Indexer captured the BuyViaKumbaya event with no manual patch: idx_timecurve_buy_router_kumbaya: - block_number: 13 - tx_hash: 0xcc1bf30c4580ce74b15f3002589749e1639304ff2aaf9caaeb2f9e4ac1ea49b6 - buyer: 0xf39fd6...2266 - charm_wad: 1002230859254928839 (~1.002 CHARM) - gross_cl8y: 1003494087733781404 (~1.003 CL8Y) - pay_kind: 0 (PAY_ETH) ## Path B — stack opt-in (checklist item 4) Reset baseline: registry stripped of `TimeCurveBuyRouter`, `.env.local` Kumbaya lines removed, DB truncated. Ran `YIELDOMEGA_DEPLOY_KUMBAYA=1 SKIP_ANVIL_RICH_STATE=1 QA_USE_FIXED_INDEXER_PORT=1 bash scripts/start-local-anvil-stack.sh`. Stack log shows the new step inline: `=== DeployKumbayaAnvilFixtures (YIELDOMEGA_DEPLOY_KUMBAYA=1 — GitLab #84) ===`, then proceeds to write registry + .env.local + start indexer in that order. Post-bringup state (BEFORE any QA action, BEFORE any restart): - Registry: `TimeCurveBuyRouter: 0x998abeb3E57409262aE5b751f60747921B33613E` already present - `.env.local`: all 5 Kumbaya VITE_* already present - `cast call <TimeCurve> "timeCurveBuyRouter()(address)"` matches registry value - Indexer running, schema up, max_indexed_block tracking the live chain Live ETH single-tx buyViaKumbaya via Simple page (~2.9 CHARM at slider). Tx 0x8b6d3af74469c007e7c6df349f5d5f7acb5ac53b9b5787cd585cf42c5cfabf0e succeeded clean, +120s timer extension, indexer mirror: idx_timecurve_buy_router_kumbaya: - block_number: 8 - tx_hash: 0x8b6d3af7...bf0e - buyer: 0xf39fd6...2266 - charm_wad: 2914386097984532330 (~2.914 CHARM) - gross_cl8y: 2915637529977995595 (~2.916 CL8Y) - pay_kind: 0 (PAY_ETH) No manual registry edit, no indexer restart — registry was loaded with the router from the very first boot. ## Forge fork test `test_Forked_issue78_TimeCurveBuyRouter_checklist()` PASS on both paths. ## One small UX observation Hit the #82-flavor `friendlyRevertFromUnknown` once during early Path A repro at slider value of ~1.002 CHARM right at the lower band edge — bounds drifted in 1 block between submit-time re-quote and inclusion. Bumping the slider to ~1.0 CHARM (same nominal value, different chain block) succeeded, and a later 2.9 CHARM succeeded clean. Not a #84 issue — same #82 edge-case behavior, friendly revert message displayed correctly. Just flagging that band-edge slider values can occasionally need a retry. Closing #84. cc @PlasticDigits
Brouie (Migrated from gitlab.com) closed this issue 2026-04-28 05:00:58 +00:00
Brouie commented 2026-04-28 08:08:46 +00:00 (Migrated from gitlab.com)

mentioned in issue #38

mentioned in issue #38
Brouie commented 2026-04-29 01:21:25 +00:00 (Migrated from gitlab.com)

mentioned in issue #82

mentioned in issue #82
Brouie commented 2026-04-29 01:30:18 +00:00 (Migrated from gitlab.com)

mentioned in issue #88

mentioned in issue #88
PlasticDigits commented 2026-04-30 05:25:10 +00:00 (Migrated from gitlab.com)

mentioned in issue #100

mentioned in issue #100
PlasticDigits commented 2026-05-01 06:11:33 +00:00 (Migrated from gitlab.com)

mentioned in issue #104

mentioned in issue #104
PlasticDigits commented 2026-05-05 05:45:58 +00:00 (Migrated from gitlab.com)

mentioned in issue #154

mentioned in issue #154
PlasticDigits commented 2026-05-05 05:48:20 +00:00 (Migrated from gitlab.com)

marked this issue as related to #154

marked this issue as related to #154
PlasticDigits commented 2026-05-05 13:57:31 +00:00 (Migrated from gitlab.com)

mentioned in issue #162

mentioned in issue #162
PlasticDigits commented 2026-05-29 08:24:35 +00:00 (Migrated from gitlab.com)

mentioned in issue #270

mentioned in issue #270
Sign in to join this conversation.
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#84
No description provided.