Repository navigation
docs: v6.7.0 catch-up - #95
Conversation
…trics for FlatKV state-commit, state-store, and receipt-store Pebble DBs, plus exposes FlatKV config fields in the server config template. (sei-protocol/sei-chain#3566)
…node's `mode` config field, adds a new `max_inbound_fullnode_peers` config field, moves the `autobahn-config-file` key to top-level in config.toml, and changes the `evmrpc` field in autobahn.json to be required on every validator. (sei-protocol/sei-chain#3525)
…er of calls allowed in an `eth_estimateGasAfterCalls` request, defaulting to 100. (sei-protocol/sei-chain#3631)
…, enabling runtime write-mode migration transitions without restarts, with important operator warnings about never using it on flatkv_only nodes. (sei-protocol/sei-chain#3581)
… cap concurrent logs subscriptions (default 1000), beyond which new logs subscriptions are rejected. (sei-protocol/sei-chain#3621)
…store configuration, adding a LittDB-based receipt store with a pebble tag index for eth_getLogs filtering. (sei-protocol/sei-chain#3620)
…st rate limiter and can reject requests with a 'server busy' error when the limit is exceeded. (sei-protocol/sei-chain#3646)
…lets operators disable the HashVault app-hash equivocation guard, and introduces HashVault recovery guidance for startup panics involving hash mismatches. (sei-protocol/sei-chain#3602)
…ilter-parallelism` (default 16) that bounds how many blocks a single eth_getLogs query scans concurrently in the littidx backend. (sei-protocol/sei-chain#3652)
…gured TraceTimeout and caps retained per-module state-access payload at 4 MiB (adding a 'truncated' field to the response), changing behavior to prevent OOM and unbounded traces. (sei-protocol/sei-chain#3653)
…max_concurrent_request_bytes) plus a new Prometheus metric to bound JSON-RPC request body sizes and concurrent request memory via pre-decode admission control. (sei-protocol/sei-chain#3648)
…with five new app.toml config fields (sc-hash-logger-*), enabled by default, for recording named block hashes for debugging/forensics. (sei-protocol/sei-chain#3647)
… with a durable gc-watermark file, adding six new config fields, changing the default GC period, and removing the CacheAwareGet API. (sei-protocol/sei-chain#3645)
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
…ble that selects the config manager for seid; unset/'legacy' uses the existing path, 'v2' is a not-yet-implemented stub that errors, and invalid values fail hard. (sei-protocol/sei-chain#3671)
…ze, max-open-connections, keepalive/connection-age settings) with bounded defaults applied even when absent from older config files. (sei-protocol/sei-chain#3641)
…sh-only, --read-limit-mb) for computing/verifying lattice hashes and throttling scan throughput, and --output-dir is no longer required when using --lthash-only. (sei-protocol/sei-chain#3665)
… on every emitted metric series, which affects dashboards and alerting queries for node operators. (sei-protocol/sei-chain#3692)
…sus-unsafe binary variant using a lenient tx decoder (no body-bloat rejection) for replaying historical blocks. (sei-protocol/sei-chain#3691)
…` that caps retained struct-logger output per traced transaction on default debug_trace* endpoints, defaulting to 32 MiB (0 = unlimited). (sei-protocol/sei-chain#3677)
…block` and `compare` subcommands for inspecting and diffing hash log archives produced by the hashlogger. (sei-protocol/sei-chain#3676)
…osmos_only" value from v6.4/v6.5 app.toml files, mapping it to the current "memiavl_only" routing for backward-compatible upgrades. (sei-protocol/sei-chain#3704)
…annelSize, AutoFlushByteThreshold, KeymapManagerMaxBatchBytes, MetricsServeEndpoint) and tightens the maximum value size to 2^32-1 bytes (~4 GiB), rejecting larger values that previously could span the boundary. (sei-protocol/sei-chain#3683)
…ies them to baseapp, enabling pruning configuration (e.g., --pruning) to actually take effect. (sei-protocol/sei-chain#3725)
…, max_state_override_slots) that cap the size of state overrides in eth_call, eth_estimateGas, eth_estimateGasAfterCalls, and debug_traceCall, with correct go-ethereum SetStorage overlay semantics. (sei-protocol/sei-chain#3722)
…d global label and new metrics subsystems were added; internal metrics APIs were refactored to use global registries (not user-facing). (sei-protocol/sei-chain#3682)
…ckend, a new --memiavl-open-mode flag (snapshot/replay), and new --flatkv-dir/--memiavl-dir flags for comparing EVM logical state across backends on a migrating node. (sei-protocol/sei-chain#3711)
…g (last 256 blocks) plus a process-local cache, making the BLOCKHASH opcode return correct historical block hashes for the previous 256 blocks. (sei-protocol/sei-chain#3811)
…g_no_block` behavior so `eth_getLogs` now errors (instead of silently truncating) when a bounded or open-ended query exceeds the matched-log count or estimated heap-byte budget. (sei-protocol/sei-chain#3759)
…a before decoding it, so calls that supply too little gas are rejected and gas costs for existing precompile calls have increased slightly. (sei-protocol/sei-chain#3737)
…tartup on bind failure), the metrics server gains read/write/idle timeouts, and the max-open-connections config field's behavior is clarified. (sei-protocol/sei-chain#3819)
…ic gas model, changing how gas is metered and charged for these on-chain precompile calls (notably p256 now uses a fixed 3450 gas verification cost per RIP-7212). (sei-protocol/sei-chain#3813)
…eys (including recursive validation of nested multisig keys with depth and signature-count limits) before deriving addresses or persisting them, rejecting malformed pubkeys and deeply nested multisigs. (sei-protocol/sei-chain#3791)
…lRewards) are now read-only and no longer mutate validator-period state as of v6.7.0, making them idempotent. (sei-protocol/sei-chain#3738)
…sei-config-backed manager that performs advisory config validation (logging warnings for invalid fields) while booting identically to legacy; previously v2 was an unimplemented stub that errored. (sei-protocol/sei-chain#3678)
…allowing a validator operator to unjail their validator via the EVM precompile at the slashing precompile address. (sei-protocol/sei-chain#3825)
…onfig (max_request_body_bytes, max_concurrent_request_bytes) and adds a new ws_admission_timeout config field, with the WS frame size default dropping from 10 MiB to 5 MiB requiring operator action. (sei-protocol/sei-chain#3818)
PR SummaryLow Risk Overview EVM / JSON-RPC: Documents that Precompiles: Adds nav and new pages for Auth, Authz, Evidence, Mint, Params, Slashing, and Upgrade (v6.7.0). Updates Governance (query methods), Bank (extra queries), Distribution (read-only Node ops: FlatKV EVM migration is described as governance-driven with default Reviewed by Cursor Bugbot for commit c844bcd. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
This large automated v6.7.0 docs catch-up has several issues that block merging. It adds a Feegrant precompile page and nav entry for a precompile that isn't registered at the tag, and it documents a nonexistent sc-keys-to-migrate-per-block app.toml key. It also has an unmatched </Note> that can break MDX compilation, a pruning TOML sample under the wrong table, and misplaced evm-logical-digest flags. The PR's own "Failed final verification" section lists several of these and says they must be resolved before merging, and verification never finished for four pages.
Findings: 10 blocking | 9 non-blocking | 11 posted inline
Blockers
- The PR body's "Failed final verification against the release tag" section is unresolved. The Feegrant precompile, the slashing "all view" note and
sc-keys-to-migrate-per-blockcontradict the v6.7.0 tag, so this PR must not merge until those items are fixed. - Claim-by-claim verification never completed for
evm/reference.mdx,node/advanced-config-monitoring.mdx,node/technical-reference.mdxandnode/troubleshooting.mdx(verifier turn/time budget ran out). Someone needs to check these pages against the release by hand before merge. docs.jsonaddsevm/precompiles/feegrantto the navigation. Feegrant isn't registered at v6.7.0 (TestFeegrantPrecompileIsNotRegistered), so remove the nav entry along with the page.- 7 blocking issue(s) flagged inline on specific lines.
Non-blocking
- The Cursor review pass produced no output (
cursor-review.mdis empty).REVIEW_GUIDELINES.mdis also empty, so this review applied the AGENTS.md conventions instead. - Generated prose leaks internal source-PR references such as
(#3618),(#3818)and(#)into reader-facing copy:evm/reference.mdx:1173,node/advanced-config-monitoring.mdx:586,node/node-operators.mdx:818,evm/precompiles/distribution.mdx:265. Several of these also cite the wrong PR (#3618 is used for the pruning change, which came from #3725). Strip them. - The new precompile pages (auth, authz, evidence, mint, params, slashing, upgrade) are versioned at v6.6/v6.7. Add an availability or version note, and check that
@sei-js/precompilesexports the matching ABIs before any TS examples reference them. - The
eth_getLogschange from truncating to erroring may break clients. The benchmark innode/advanced-config-monitoring.mdxthat checkslogsCount === 10000should probably check for the new error instead. - The WebSocket frame-size default drops from 10 MiB to 5 MiB, which requires operator action. Make sure
websocket.mdxpresents this as an upgrade<Warning>, not plain prose. - 4 suggestion(s)/nit(s) flagged inline on specific lines.
Inline comments (could not post inline; listed here)
node/node-operators.mdx:831(RIGHT) -- [blocker] This</Note>has no matching opener because the previous<Note>already closes at line 812. Unbalanced JSX will fail MDX compilation. Either remove this tag or wrap the new "Cosmos SDK state pruning" section in its own<Note>. Also drop the(#3618)reference at line 818; it's an internal PR link and points at the wrong PR (the pruning change is #3725).evm/precompiles/feegrant.mdx:13(RIGHT) -- [blocker] No Feegrant precompile ships at v6.7.0.precompiles/setup.gohas no feegrant entry, andsetup_test.goexplicitly asserts that0x…1010is NOT registered.IFeegrant,allowance,allowancesandallowancesByGranterdon't exist either. Delete this page, remove it fromdocs.jsonnav, and don't publish it until the precompile actually ships (AGENTS.md: no speculation about unreleased features).evm/precompiles/example-usage.mdx:28(RIGHT) -- [blocker] Remove the Feegrant row. Nothing is registered at0x…1010in v6.7.0.node/giga-storage-migration.mdx:322(RIGHT) -- [blocker]sc-keys-to-migrate-per-blockisn't an app.toml key at the tag. The[state-commit]template renders onlysc-write-modeandsc-write-mode-enable-auto. The drain rate comes from the governance paramNumKeysToMigratePerBlock, which defaults to 0 and has no node-local fallback. Operators who copy the sample at line 332 would set a key that is never read. Rewrite this section to describe the governance param, or remove it.evm/precompiles/slashing.mdx:177(RIGHT) -- [blocker] This contradicts theunjail()section on the same page.unjail(plusgrantUnjail,unjailWithAuthzandrevokeUnjailperslashing.goIsTransaction) isnonpayableand changes state. TheISlashinginterface (lines 26-60) also leaves outunjail(), so anyone calling through that interface can't invoke it. Add it to the interface, and update this note and the intro on line 6, which says "read-only queries".node/technical-reference.mdx:505(RIGHT) -- [blocker] These pruning keys come after[state-store], so TOML parses them asstate-store.pruning, etc., not top-level settings. Movepruning,pruning-keep-recentandpruning-intervalabove the first table header, for example next tominimum-gas-prices.node/technical-reference.mdx:289(RIGHT) -- [blocker] This block lists theevm-logical-digestflags (--backend,--db-dir,--flatkv-dir,--memiavl-open-mode, …), but it sits in the newhashlog comparesection. It also repeats the "The command accepts these flags:" lead-in from line 279, so readers will take these as hashlog flags. Move lines 289-305 back under theevm-logical-digestsection (around line 180-200).evm/precompiles/p256-precompile.mdx:167(RIGHT) -- [suggestion] This line now says 3,450 gas, but "Performance considerations" (line 441) still says 48,000 gas per verification. Update line 441 to match.evm/evm-parity/evm-compatibility.mdx:55(RIGHT) -- [suggestion]/node/node-operators/rpc-configurationhas no page and no redirect indocs.json, so this link is broken. Point it at an existing page or anchor, such as the filter/subscription limits section inevm/reference.mdx. Runmint broken-linksto confirm.evm/precompiles/distribution.mdx:265(RIGHT) -- [suggestion] Two problems here. The(#)placeholder leaked into copy. The<Info>also sits between the### rewardsheading/description and the method signature, which interrupts the method docs. Remove(#)and move the callout below the signature block.evm/differences-with-ethereum.mdx:104(RIGHT) -- [nit] "Before this change" is changelog wording that won't make sense to readers later; say "Before v6.7.0" instead. The BeginBlock/ring/cache/staking-fallback details are implementation internals; consider trimming to the user-visible behavior (a 256-block window, zero outside it). Also remove the stray JSX comment at line 106.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
There are 3 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a41747d. Configure here.
There was a problem hiding this comment.
This automated v6.7.0 catch-up adds a lot of useful material, but it can't merge as is. It documents a Feegrant precompile that the PR's own release-tag check says doesn't exist, it adds an MDX tag with no matching opening tag, and several insertions break page structure (tables, flag lists) or contradict text elsewhere on the same page.
Findings: 9 blocking | 21 non-blocking | 19 posted inline
Blockers
- The PR description's own 'Failed final verification against the release tag' section lists contradictions that are still unresolved: the Feegrant precompile (0x...1010) is not registered at v6.7.0 (TestFeegrantPrecompileIsNotRegistered), and the Slashing page's 'all methods are view' note is false. The description says these must be resolved before merging.
- Verification never finished for evm/reference.mdx, node/advanced-config-monitoring.mdx, node/technical-reference.mdx, and node/troubleshooting.mdx (it ran out of turns or time). A human needs to check the new config keys, defaults, and error strings against v6.7.0 before publishing.
- evm/precompiles/governance.mdx: the intro (around line 9, outside the diff) still says the ABI is write-only and sends readers elsewhere for queries. That now contradicts the new 'Query functions' section. The source-PR notes call this the highest-priority correction.
- 6 blocking issue(s) flagged inline on specific lines.
Non-blocking
- evm/precompiles/p256-precompile.mdx: the 'Performance considerations' section (outside the diff, around line 441) still says 48,000 gas per verification. The updated 'Gas costs' section now says 3,450.
- node/giga-storage-migration.mdx: the existing sc-keys-to-migrate-per-block app.toml knob (unchanged context) was flagged by the release-tag check as nonexistent. The per-block rate is a governance param that defaults to 0. Consider fixing it in this catch-up.
- The hashlog and HashVault content is duplicated almost word for word across node/giga-storage-migration.mdx, node/technical-reference.mdx, and node/troubleshooting.mdx. Keep one canonical section and link to it from the others to avoid drift.
- evm/transactions.mdx gains a Cosmos ante-handler pubkey section. Cosmos-SDK content is deprecated (SIP-3) and new content should target EVM, so consider dropping it or adding a deprecation note.
- Several insertions leave stray runs of blank lines (two to four) before and after the added sections. Tidy them up.
- Run
mint broken-linksandnode scripts/check-redirects.mjs. At least one new link (/node/node-operators/rpc-configuration) appears to have no destination. - REVIEW_GUIDELINES.md was empty, so no repo-specific guidelines were applied beyond AGENTS.md.
- The Cursor second-opinion review (cursor-review.md) was empty, so that pass produced no output. Codex's findings are included above.
- 13 suggestion(s)/nit(s) flagged inline on specific lines.
Inline comments (could not post inline; listed here)
evm/precompiles/feegrant.mdx:13(RIGHT) -- [blocker] Per the PR's own release-tag verification, nothing is registered at 0x...1010 in v6.7.0. GetCustomPrecompiles has no feegrant entry, and setup_test.go asserts the address is NOT registered. There is also no IFeegrant ABI and no allowancesByGranter method. Remove this page, or hold it until the precompile actually ships.docs.json:205(RIGHT) -- [blocker] Remove the evm/precompiles/feegrant nav entry along with the page. That precompile isn't registered at v6.7.0.evm/precompiles/example-usage.mdx:28(RIGHT) -- [blocker] The Feegrant row lists a precompile that isn't registered at v6.7.0. Remove it.node/node-operators.mdx:1002(RIGHT) -- [blocker] This closing</Note>has no opening tag. The preceding Note already closes at line 983, so this breaks MDX compilation for the page. Remove it.evm/precompiles/slashing.mdx:177(RIGHT) -- [blocker] This is false.unjail()(documented above) is a nonpayable, state-mutating transaction. Per the release-tag check, grantUnjail, unjailWithAuthz, and revokeUnjail are transactions too. Reword the note, and update the intro on line 6, which also calls the page read-only.evm/precompiles/slashing.mdx:26(RIGHT) -- [suggestion] TheISlashinginterface leaves outunjail(), so callers can't use the documented method through this interface. Addfunction unjail() external returns (bool success);. Also consider documenting the other transaction methods that ship in the ABI (grantUnjail, unjailWithAuthz, revokeUnjail).node/technical-reference.mdx:291(RIGHT) -- [blocker] The dump-flatkv and hashlog sections were inserted between theevm-logical-digestintro and its flag list. The original 'The command accepts these flags:' at line 229 now introduces the dump-flatkv flags. This duplicated heading, under 'Inspecting hash log archives', now presents the evm-logical-digest flags (--backend composite, --memiavl-open-mode, and so on) as if they were hashlog flags. Move the evm-logical-digest flag list back under its own section, and put the new sections after it.evm/tracing/index.mdx:60(RIGHT) -- [suggestion] This<Note>(and the blank line before it) splits the methods table. Thedebug_traceTransactionProfilerow after it will render as plain pipe-delimited text. Move the note below the table.node/advanced-config-monitoring.mdx:763(RIGHT) -- [suggestion] Theselitt_compression_*rows come after a blank line, so they're cut off from the LittDB metrics table and have no header row. They'll render as plain text. Remove the blank line on line 762 so they join the table above.evm/evm-parity/evm-compatibility.mdx:55(RIGHT) -- [suggestion]/node/node-operators/rpc-configurationhas no page and no redirect in docs.json, so this link is broken. Link to the log-filter limits in/evm/referenceor to an existing node-config page instead.evm/evm-parity/evm-compatibility.mdx:55(RIGHT) -- [nit] This cell holds four sentences. Consider trimming it to a short summary that links to the limits section in evm/reference.mdx, which already explains the details.evm/precompiles/p256-precompile.mdx:166(RIGHT) -- [suggestion] This now says 3,450 gas, but 'Performance considerations' further down the page still says '48,000 gas per verification'. Update that section too. Also check that 'Up to 60x more efficient' still holds at the new price.node/node-operators.mdx:989(RIGHT) -- [nit] Stray(#3618)PR reference in reader-facing copy. It's also the wrong number: the pruning change is sei-chain#3725. Remove it.evm/reference.mdx:1173(RIGHT) -- [nit] Stray(#3618)PR reference. The tracer-gating change is #3718. Remove it from reader-facing copy.node/advanced-config-monitoring.mdx:586(RIGHT) -- [nit] Remove the internal(#3818)PR reference from the metric description.evm/precompiles/distribution.mdx:265(RIGHT) -- [nit] Leftover(#)placeholder in the callout title. Also, this Info block sits between therewardsdescription and its Solidity signature. Move it below the signature block.evm/tracing/troubleshooting.mdx:147(RIGHT) -- [suggestion] This tracer-allowlist subsection is inserted directly under '### 4. Network and connection issues'. That separates the heading from its existingconnection refusedcontent and files the tracer error under networking. Move it to its own numbered section.node/technical-reference.mdx:215(RIGHT) -- [nit] These examples use-d /.sei/data/...(a path at the filesystem root). Other examples use$HOME/.sei/data/...; use that here too.evm/transactions.mdx:295(RIGHT) -- [nit] This section covers Cosmos transaction ante handling, which is deprecated under SIP-3. Per AGENTS.md, new content should target EVM. Consider dropping it or adding an explicit deprecation note.
This commit updates the documentation set to reflect the v6.7 Sei EVM behavior and operational changes. It removes the deprecated `eth_getProof` and feegrant pages, adds a redirect to the new proof-verification section, updates EVM compatibility and RPC docs, and rewrites the precompile pages for the newer query APIs and gas behavior. It also refreshes tracing, monitoring, node migration, and Autobahn guidance to match the current config, retention, and HashVault behavior.
There was a problem hiding this comment.
This large v6.7.0 catch-up looks well structured, and it fixes the items that failed verification at the release tag. The Feegrant page/row is gone, the false read-only note on the slashing page is gone, sc-keys-to-migrate-per-block is removed, the P256 48,000-gas figure is replaced, the distribution <Info> now sits after the signature, and the state-proofs redirect anchor exists. Before merge, a human should confirm several behavior claims that no source PR backs, plus four pages that the bot could not finish checking.
Findings: 0 blocking | 9 non-blocking | 3 posted inline
Blockers
- None at the file/PR level.
Non-blocking
- The bot could not finish checking four pages against the v6.7.0 tag:
evm/reference.mdx,node/advanced-config-monitoring.mdx,node/technical-reference.mdxandnode/troubleshooting.mdx. It ran out of tool turns or time budget. These pages make up most of the operator-facing changes, so a maintainer should spot-check them against the tag before merging. - Several significant changes have no source PR in the description table: (1)
eth_getProofbecomes 'Not supported' andevm/evm-parity/state-proofs.mdxis deleted; (2)sei_getTransactionReceiptis removed from the legacysei_*allowlist; (3) the SC migration becomes governance-driven, with the defaultautomode, theNumKeysToMigratePerBlockgov param andsc-write-mode-enable-auto; (4)enable-pebble-metricsis no longer applied. Link each one to the sei-chain PR it comes from, or confirm it at the tag. Deleting a whole page on an unverified claim is risky. - The PR description still has a '⛔ Failed final verification … must be resolved before merging' section. The diff appears to resolve those items, so update the description to keep reviewers from assuming the PR is blocked.
- The state-proofs page removal is handled correctly: it is dropped from the nav, a redirect points to
/evm/evm-parity/evm-compatibility#proof-verification(that heading exists), andlearn/sei-giga-developers.mdxis relinked. Runnode scripts/check-redirects.mjsandmint broken-linksto confirm. - Codex reported no material issues and said the redirect validation check passed. The Cursor review file (
cursor-review.md) was empty, so that pass produced no output. REVIEW_GUIDELINES.mdwas empty. I applied theAGENTS.mdconventions instead.- 3 suggestion(s)/nit(s) flagged inline on specific lines.
Inline comments (could not post inline; listed here)
node/giga-storage-migration.mdx:250(RIGHT) -- [suggestion] This is a v6.7.0 catch-up, but this sentence describes v6.7.1 behavior: refusing to start on a pinned mode that disagrees with the on-disk state. If v6.7.1 hasn't shipped, this is a claim about an unreleased version, whichAGENTS.mddoesn't allow. If it has shipped, confirm the behavior against that tag. Otherwise, drop the sentence or reword it for v6.7.0.node/node-operators.mdx:1694(RIGHT) -- [nit] The comment just above says the node runs inautoby default and ignoressc-write-mode. The sample still setssc-write-mode = "memiavl_only"with nosc-write-mode-enable-autoline, so readers may think it does something. Consider commenting this line out, or showing it withsc-write-mode-enable-auto = falsenext to it.evm/precompiles/auth.mdx:17(RIGHT) -- [nit] The address literals use inconsistent hex casing across the new pages:100Dhere, and lowercase100e/100fin Authz/Evidence. Solidity rejects mixed-case address literals that fail the EIP-55 checksum. Confirm each*_PRECOMPILE_ADDRESSliteral compiles as written, ideally by copying the checksummed form from sei-chain's interface files.
Align claims with sei-chain v6.7.1. EVM: - Params returns an empty string for an unknown key instead of reverting - P256 and JSON fees come on top of the calldata charge - Autobahn fullnodes forward pending nonce queries to the shard owner; validators forward transactions there (enable_evm_proxy) - newPendingTransactions and eth_newPendingTransactionFilter are not supported; the pending nonce includes mempool transactions - Fix the @sei-js note, log filter block range, legacy sei_* removal timing, Bank/Authz/Slashing revert conditions, and muxTracer error - Point Governance, Distribution, Staking, and P256 ABI links to v6.7.1 Node: - Fix the hash logger path and file size default, auto write mode and sc-write-mode handling, evm store proofs during migration, littidx receipt backend, lattice hash output, BlockDB flags, and Autobahn and rejected-request metrics Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
This is a large, well-structured v6.7.0 catch-up, and the failures listed in the PR description look fixed in the final diff: the Feegrant page is gone, the slashing note and the sc-keys-to-migrate-per-block sample are corrected, the P256 page now says 3,450 gas, and the distribution <Info> has moved. Nothing blocks the merge, but a few claims need source confirmation and four heavily edited pages never finished the bot's claim-by-claim verification.
Findings: 0 blocking | 10 non-blocking | 2 posted inline
Blockers
- None at the file/PR level.
Non-blocking
- The 'Failed final verification' section in the PR description is stale. Its items appear fixed in the diff: no Feegrant page, docs.json entry, or table row remains; the slashing 'all view' note is gone; the
sc-keys-to-migrate-per-blocksample is replaced; and the P256 48,000-gas text is updated. Update the description so a reviewer doesn't block on resolved items. - Four pages never finished the bot's tag verification:
evm/reference.mdx,node/advanced-config-monitoring.mdx,node/technical-reference.mdx, andnode/troubleshooting.mdx. These hold most of the new config keys, defaults, and error strings (for examplemax_log_bytes,ws_admission_timeout, thesc-hash-logger-*keys, the[grpc]defaults,max-search-scan-budget, and thedump-flatkvflags). A human should spot-check them against the v6.7.0 tag before merging. - Several user-facing behavior changes don't map to any source PR in the description's table. These include:
eth_getProofnow always returns-32000, which deletes the state-proofs page; removal ofsei_getTransactionReceipt;eth_newPendingTransactionFilterandnewPendingTransactionsnow always fail; and neweth_getTransactionCount("pending")mempool semantics. Confirm which sei-chain PRs and release these come from (for example #3927), because they reverse what the docs said before. - The new precompile pages say 'available since v6.7.0', but the bot's own note on #3767 says these precompiles are 'versioned at v6.6'. Confirm the correct version and whether they are live on Sei Mainnet before publishing.
- Several links and claims point to v6.7.1 in a v6.7.0 catch-up: the ABI links in distribution, governance, staking, and p256, the precompiles tree link, and the 'Since v6.7.1, a node also refuses to start…' sentence in giga-storage-migration. Confirm the v6.7.1 tag exists and that mixing versions is intended.
example-usage.mdxsays v6.7 added methods to Staking. However,staking.mdxonly gets an updated ABI link and doesn't document any new query methods, unlike Bank, Governance, and Distribution.llms.txtandllms-full.txtstill link to the deleted/evm/evm-parity/state-proofs. The redirect covers this, and the weekly regenerate workflow should refresh the files, but consider triggering it manually after merge.- Second opinions: Codex reported 'No material issues found'. The Cursor review file was empty, so that pass produced no output.
REVIEW_GUIDELINES.mdwas also empty, so this review used no repo-specific guidelines beyond AGENTS.md. - 2 suggestion(s)/nit(s) flagged inline on specific lines.
Comments that couldn't be anchored to the diff
evm/evm-parity/evm-compatibility.mdx:208-- [suggestion] This turnseth_getProoffrom 'Supported with differences' into 'Not supported', and the PR deletes the state-proofs page. None of the source PRs in the description cover this change. Please link the sei-chain change that madeeth_getProofreturn-32000at v6.7.0, so reviewers can confirm the exact error message and release.
Inline comments (could not post inline; listed here)
evm/precompiles/authz.mdx:17(RIGHT) -- [suggestion] The address literal casing is inconsistent across the new pages.auth.mdxuses...100D, whileauthz.mdx(...100e) andevidence.mdx(...100f) use lowercase. The page headers use uppercase. Solidity rejects 40-hex-digit literals that fail the EIP-55 checksum, so a non-checksummed literal makes the copy-paste interface fail to compile. Check each constant against its EIP-55 checksum, or copy the literal from the sei-chain.solinterface. Use the canonical casing everywhere.node/node-operators.mdx:1702(RIGHT) -- [nit] The comment says the node runs inautoand ignores this value, yet the sample still setssc-write-mode = "memiavl_only". Readers may think they are pinningmemiavl_only, which the giga-storage-migration page warns makes the node diverge once governance starts the migration. Consider showing the value thatseid initnow generates, or adding an explicit note that this line has no effect unlesssc-write-mode-enable-auto = false.

Documentation catch-up for v6.7.0.
41 source PR(s) produced changes across 41 commit(s). Each source PR is a separate commit, so this reviews commit-by-commit.
node/advanced-config-monitoring.mdxevm/reference.mdxmodeconfig field, adds a newmax_inbound_fullnode_peersconfig field, moves theautobahn-config-filekey to top-level in config.toml, and changes theevmrpcfield in autobahn.json to be required on every validator.evm/reference.mdxevm.max_estimate_gas_callslimits the number of calls allowed in aneth_estimateGasAfterCallsrequest, defaulting to 100.node/giga-storage-migration.mdxevm/reference.mdxevm.max_subscriptions_logsto cap concurrent logs subscriptions (default 1000), beyond which new logs subscriptions are rejected.node/giga-storage-migration.mdx,node/node-operators.mdxevm/reference.mdxnode/technical-reference.mdx,node/troubleshooting.mdxhash-vault-disabled-unsafethat lets operators disable the HashVault app-hash equivocation guard, and introduces HashVault recovery guidance for startup panics involving hash mismatches.node/advanced-config-monitoring.mdxreceipt-store.log-filter-parallelism(default 16) that bounds how many blocks a single eth_getLogs query scans concurrently in the littidx backend.evm/reference.mdx,evm/tracing/index.mdxnode/advanced-config-monitoring.mdxnode/advanced-config-monitoring.mdxnode/advanced-config-monitoring.mdxnode/technical-reference.mdxnode/technical-reference.mdxnode/technical-reference.mdx,node/troubleshooting.mdxnode/advanced-config-monitoring.mdxchain_idconstant label on every emitted metric series, which affects dashboards and alerting queries for node operators.node/technical-reference.mdxevm/tracing/index.mdxevm.max_trace_struct_log_bytesthat caps retained struct-logger output per traced transaction on default debug_trace* endpoints, defaulting to 32 MiB (0 = unlimited).node/giga-storage-migration.mdx,node/technical-reference.mdxhashlogcommand group to the seidb tool withget-blockandcomparesubcommands for inspecting and diffing hash log archives produced by the hashlogger.node/giga-storage-migration.mdxnode/advanced-config-monitoring.mdxnode/node-operators.mdx,node/technical-reference.mdxevm/reference.mdxnode/advanced-config-monitoring.mdxnode/technical-reference.mdx,node/troubleshooting.mdxevm/reference.mdx,evm/tracing/index.mdx,evm/tracing/javascript-tracers.mdx,evm/tracing/troubleshooting.mdxnode/advanced-config-monitoring.mdxnode/technical-reference.mdxmax-search-scan-budget(default 100,000) that bounds the total KV index entries all in-flight tx_search/block_search requests may visit, returning an error when the process-wide budget is exceeded.node/technical-reference.mdxdocs.json,evm/precompiles/auth.mdx,evm/precompiles/authz.mdx,evm/precompiles/cosmwasm-precompiles/addr.mdx,evm/precompiles/cosmwasm-precompiles/bank.mdx,evm/precompiles/evidence.mdx+7 moreevm/differences-with-ethereum.mdxevm/evm-parity/evm-compatibility.mdx,evm/reference.mdxmax_log_bytesEVM config field and changesmax_log_no_blockbehavior soeth_getLogsnow errors (instead of silently truncating) when a bounded or open-ended query exceeds the matched-log count or estimated heap-byte budget.evm/evm-parity/gas-and-fees.mdxnode/advanced-config-monitoring.mdx,node/node-operators.mdx,node/node-types.mdxevm/evm-parity/gas-and-fees.mdx,evm/precompiles/json.mdx,evm/precompiles/p256-precompile.mdxevm/transactions.mdxevm/precompiles/distribution.mdxnode/technical-reference.mdxevm/precompiles/example-usage.mdx,evm/precompiles/slashing.mdxevm/evm-parity/websocket.mdx,node/advanced-config-monitoring.mdx⛔ Failed final verification against the release tag
Each touched page was re-checked claim-by-claim against the
v6.7.0checkout after all commits were assembled. The items below contradict what actually ships at the tag and must be resolved before merging.evm/precompiles/example-usage.mdx(Available precompiles table, new 'Feegrant' row) — Feegrant is an available precompile at0x0000000000000000000000000000000000001010for querying fee allowancesevm/precompiles/feegrant.mdx(Address section / entire page) — The Feegrant precompile exists and is located at the fixed address 0x0000000000000000000000000000000000001010evm/precompiles/feegrant.mdx(Interface section) — Solidity interface IFeegrant with constants FEEGRANT_PRECOMPILE_ADDRESS / FEEGRANT_CONTRACT existsevm/precompiles/feegrant.mdx(Methods section) — Methods allowance(address,address), allowances(address,bytes), and allowancesByGranter(address,bytes) are exposed by the precompileevm/precompiles/feegrant.mdx(Interface / Methods / Notes sections) — Grant and AllowancesResponse structs, JSON-encoded allowance field, pagination via pageKey/nextKey, revert-on-value behaviourevm/precompiles/slashing.mdx(Final block at the bottom of the page) — All methods on the Slashing precompile are read-onlyviewqueries. Sending value to any of them reverts.unjail(line 201) with stateMutabilitynonpayable(line 209), and other nonpayable entries at lines 23, 82, 228. The page's ownunjailsection even states it 'is a state-mutating transaction'. Thus the claim that ALL methods are read-onlyviewqueries is false.evm/reference.mdx— verification could not complete: verifier exceeded 30 tool turnsnode/advanced-config-monitoring.mdx— verification could not complete: verifier exceeded 30 tool turnsnode/giga-storage-migration.mdx(### Operator-facing knobs — thesc-keys-to-migrate-per-blockparagraph and itstomlsample ([state-commit]/ sc-write-mode = "migrate_evm" / sc-keys-to-migrate-per-block = 1024)) —sc-keys-to-migrate-per-blockis anapp.toml[state-commit]config key that controls the per-block migration drain rate, with a default of1024and a constraint that the value must be> 0; shown in a TOML sample assc-keys-to-migrate-per-block = 1024.sc-keys-to-migrate-per-block,keys-to-migrate, andmigrate-per-blockall return no matches, and the[state-commit]template in sei-db/config/toml.go (lines 9–95) renders onlysc-write-modeandsc-write-mode-enable-auto, not this key. The drain rate is a governance parameter, not an app.toml knob: app/abci.go:64-93 readsmigration.NumKeysToMigratePerBlockfrom chain state (applyMigrationBatchSize), and app/migration/params.go:34-37 setsDefaultNumKeysToMigratePerBlock uint64 = 0(not 1024), with the comment that this gov param 'is the sole source of the per-block rate' and 'there is no node-local fallback'. An operator copying the sample sets a key that is never read.node/technical-reference.mdx— verification could not complete: not verified — run time budget exhausted mid-checknode/troubleshooting.mdx— verification could not complete: not verified — run time budget exhausted mid-checkReviewer notes
logsCount === 10000as a limit sentinel — reviewers may want to confirm whether that example should be updated to detect the new error response, but it is illustrative rather than authoritative. No migration step is required; defaults preserve prior count behavior (10000) and add a 64 MiB byte cap.rewards()view query, which is documented in evm/precompiles/distribution.mdx. The gRPC/legacy querier endpoints (DelegationRewards/DelegationTotalRewards) are not covered by a dedicated sei-docs page, so no other page needs updating. The old mutating behavior is preserved only for re-tracing pre-v6.7 blocks via debug_trace*, which could optionally be mentioned in evm/tracing/index.mdx, but this is an edge-case replay detail and likely not worth adding there. No migration step is required.Flagged by a review of every touched page's final text. Each source PR was analysed in isolation, so these were invisible to the per-PR checks. Verify before merging — the checker cannot tell which side of a contradiction is correct.
evm/evm-parity/evm-compatibility.mdx, the insertedeth_getLogsnote links to/node/node-operators/rpc-configuration;evm/evm-parity/gas-and-fees.mdxlinks to a non-existentrpc-configurationpage too — but more concretely, theeth_getLogsnote referencesmax_log_bytes/max_log_no_blockwhich matchesevm/reference.mdx, so no contradiction there. (Not a reportable category.)evm/precompiles/p256-precompile.mdx: the updated "Gas costs" section says the verification cost is a fixedP256VerifyGas = 3450gas, but the untouched "Performance considerations" section still states "Gas efficiency: 48,000 gas per verification". These describe the same cost two different ways on the same page.evm/reference.mdx(untouched "Filter and subscription limits") andevm/evm-parity/evm-compatibility.mdxboth usemax_log_no_block(default 10000), consistent. But the gas-and-fees SSTORE value stays 72,000 across pages — consistent. (No issue.)eth_getLogsbyte-limit identifier: the inserted compatibility-matrix note andevm/reference.mdxboth namemax_log_bytes— consistent. (No issue.)evm/precompiles/distribution.mdx: the inserted "Read-only as of v6.7.0"<Info>block sits between the### rewardsheading (and its sentence "Returns the reward information for a delegator across all validators.") and the method's Solidity signature code block, interrupting the heading's own content.Generated by sei-docs-bridge. Every change is a proposal — verify against the source PRs before merging.