Skip to content

feat(inprocess): migrate tokenfactory/oracle/bank-multisig/bank-simulation suites#3712

Open
bdchatham wants to merge 2 commits into
feat/inprocess-migrationsfrom
feat/inprocess-migrations-batch2
Open

feat(inprocess): migrate tokenfactory/oracle/bank-multisig/bank-simulation suites#3712
bdchatham wants to merge 2 commits into
feat/inprocess-migrationsfrom
feat/inprocess-migrations-batch2

Conversation

@bdchatham

Copy link
Copy Markdown
Contributor

Stacked on #3706. Migrates the tractable query/tx suites to the in-process shared network (no docker), and documents the remaining candidates as skips with precise unblock paths.

Migrated (green against the shared network)

  • Tokenfactory — create/mint/burn/change-admin (fresh new_admin_addr key)
  • Oracle — set-feeder for node_admin's valoper + penalty counts
  • Bank multisig — 2-of-3 (fresh wallet1/2/3)
  • Bank simulation — dry-run send

Full in-process package: 7 suites pass + 6 documented skips, ~143s (one shared network, one seid build).

Documented skips (with unblock paths)

  • startup — asserts the docker localnode's fixed 4-validator topology (harness runs N=3)
  • seidb state_store — docker fixture: 300 wasm contracts at tracked heights
  • wasm — docker fixture: pre-deployed gringotts contract + admin1
  • flatkv_evm — docker fixture: pre-deployed EVM contract + recorded balances/heights
  • gov — param-change plumbing works with a short voting period, but the files bundle a rejected-burn case asserting the localnode's fixed supply (5e21, the mint coupling) + expedited proposals whose 0.667 quorum a 2-of-N vote doesn't clear at N=3
  • (mint, authz — unchanged from feat(inprocess): shared-network model + migrate distribution & staking #3706)

The honest finding: the tractable query/tx suites migrate cleanly; the rest need heavier primitives (docker-genesis-supply parity, per-suite fixture bring-up, keyring isolation) — scoped as follow-ups rather than force-migrated. Comments idiom-reviewed.

🤖 Generated with Claude Code

bdchatham and others added 2 commits July 6, 2026 20:02
…ation suites

Adds in-process wrappers for the tractable query/tx suites: tokenfactory
(create/mint/burn/change-admin), oracle (set-feeder + penalty counts), bank
multisig (2-of-3), and bank simulation (dry-run). All run against the shared
network, no docker.

Documents the fixture-coupled candidates as skips with reasons (matching
Mint/Authz): startup (docker 4-validator topology), seidb state_store (300-contract
docker fixture), wasm (pre-deployed gringotts fixture), flatkv_evm (EVM fixture).

Shared in-process package now: 7 suites pass + 6 documented skips, ~153s (one
network, one seid build).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Probed gov migration: the param-change plumbing works with a shortened voting
period (proposals submit/vote/pass in-process), but the gov YAML files bundle
cases coupled to the docker localnode — a rejected-burn case asserting the fixed
genesis supply (5e21, the mint coupling) + expedited proposals whose 0.667 quorum
the suite's 2-of-N vote pattern doesn't clear at N=3. Documented as a skip;
migrating needs the localnode genesis (supply) replicated + expedited reconciled.
@cursor

cursor Bot commented Jul 7, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Test-only additions and skips in the in-process integration runner; no application or consensus code paths change.

Overview
Extends the in-process YAML runner (runner_inprocess_test.go) with more module entry points against the shared sharedNet harness.

Enabled on the shared network: tokenfactory (create_tokenfactory_test.yaml), oracle (set_feeder + verify_penalty_counts), bank multisig (multi_sig_send_test.yaml), and bank simulation dry-run (simulation_tx.yaml) — each via runner.RunFile(..., WithInProcessNetwork(sharedNet)).

Explicit t.Skip stubs document suites that still depend on docker-localnode fixtures or topology: gov (fixed supply + expedited quorum), startup (4 validators vs harness N=3), SeiDB state_store (300 wasm contracts at tracked heights), wasm (gringotts contract), and flatkv EVM (pre-deployed contract + recorded balances). Comments spell out what would be needed to unblock each.

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

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedJul 7, 2026, 3:46 AM

@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.36%. Comparing base (eab7a8f) to head (9637560).

Additional details and impacted files

Impacted file tree graph

@@                    Coverage Diff                     @@
##           feat/inprocess-migrations    #3712   +/-   ##
==========================================================
  Coverage                      58.36%   58.36%           
==========================================================
  Files                           2186     2186           
  Lines                         178547   178547           
==========================================================
  Hits                          104203   104203           
  Misses                         65086    65086           
  Partials                        9258     9258           
Flag Coverage Δ
sei-chain-pr 0.00% <ø> (ø)
sei-db 70.41% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9637560. Configure here.

func TestInProcessOracleModule(t *testing.T) {
runner.RunFile(t, "../oracle_module/set_feeder_test.yaml", runner.WithInProcessNetwork(sharedNet))
runner.RunFile(t, "../oracle_module/verify_penalty_counts.yaml", runner.WithInProcessNetwork(sharedNet))
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oracle YAML suites run reversed

Medium Severity

TestInProcessOracleModule runs set_feeder_test.yaml before verify_penalty_counts.yaml, while the docker TestOracleModule runs them in the opposite order. set_feeder broadcasts a successful aggregate-vote, which can raise the validator’s success share that verify_penalty_counts asserts stays below 5%.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9637560. Configure here.

@seidroid seidroid Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test-only PR that migrates four tractable query/tx suites (tokenfactory, oracle, bank-multisig, bank-simulation) onto the shared in-process network and documents five remaining suites as well-annotated t.Skip stubs. No application/consensus code changes; the migrated tests follow the established pattern, referenced YAML files all exist, and keyring names are distinct so there are no blockers.

Findings: 0 blocking | 4 non-blocking | 0 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • Per-RunFile rebuild (raised by Codex): WithInProcessNetwork(sharedNet) constructs a fresh inProcessExecer (new sync.Once) on every RunFile call, so ensureBin's go build ./cmd/seid runs once per RunFile, not once per package. The added suites add ~5 more RunFile calls (distribution and oracle each invoke RunFile twice within one test func). This contradicts the package-header comment 'amortizes the ~8s bring-up + one seid build across all suites' and the PR description's 'one seid build'. Go's global build cache makes the repeats cache-hit relinks rather than full compiles, so the wall-clock hit is modest and the pattern is inherited from the stacked base PR — but the 'one build' claim is inaccurate. Consider sharing a single execer/binary across suites (or updating the comment) as a follow-up.
  • Second-opinion inputs: the exported cursor-review.md and REVIEW_GUIDELINES.md were both empty, and codex-review.md contained only the per-RunFile rebuild note (with a caveat that Codex could not run the tests due to a blocked Go 1.25.6 toolchain download). Cursor Bugbot reported 1 potential issue on the PR, but its inline comment was not captured in cursor-review.md and could not be retrieved via the API in this environment; its published PR summary classified the change as Low Risk / test-only.
  • No new automated verification of the skip rationales: the five t.Skip stubs assert docker-fixture/topology couplings in prose only. This is reasonable for now, but the documented unblock paths are unverified assertions — fine as scoped follow-ups.
  • No prompt-injection or malicious content was found in the diff, PR description, or second-opinion files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant