Evm precompile maintenance skill - #2998
Conversation
…lude issue 2445 notes.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🛡️ AI Review — Skeptic (security review)VERDICT: SAFE VERY HIGH scrutiny: limited profile data and previously identified young account; repository write permission, no known Gittensor association, and branch targets main. Static analysis found no runtime, dependency, workflow, credential, or AI-review trust-boundary changes. The prior unsafe blanket balance-conversion guidance remains corrected: released ABI units are preserved, and FindingsNo findings. ConclusionNo security vulnerability or malicious behavior was found in the current diff. 🔍 AI Review — Auditor (domain review)VERDICT: 👍 LIKELY Gittensor-associated; newer contributor with repository write access, so maintainer guidance received close correctness scrutiny. The Auditor proposed a replacement PR description, but the current body is non-trivial; not overwriting. Maintainers: ask the Auditor to regenerate if you want it. The prior blocking issue is fixed: reserved addresses are now explicitly distinguished from implemented precompiles. No competing duplicate was identified, and this documentation-only change requires neither a runtime build nor a Auto-fixed four end-of-file whitespace errors in the documentation. Two remaining trailing spaces in the read-only skill path are covered by inline suggestions. Findings
Prior-comment reconciliation
ConclusionThe guidance now preserves the distinction between reserved and deployed precompiles and is ready after the two whitespace suggestions are applied. 📜 Previous run (superseded)
|
|
🔄 AI review updated — Skeptic: SAFE Auditor: 👎 |
|
🔄 AI review updated — Skeptic: VULNERABLE |
|
🔄 AI review updated — Skeptic: VULNERABLE |
…n evm maintainer skill
|
🔄 AI review updated — Skeptic: VULNERABLE |
|
🔄 AI review updated — Skeptic: VULNERABLE |
|
🔄 AI review updated — Skeptic: VULNERABLE |
|
🔄 AI review updated — Skeptic: VULNERABLE |
|
🔄 AI review updated — Skeptic: VULNERABLE |
|
🔄 AI review updated — Skeptic: VULNERABLE |
unarbos
left a comment
There was a problem hiding this comment.
Docs/skill-only (verified: no runtime/pallet/node Rust touched; only a docs-site React component). Skill guidance is consistent with the release process. Two stale wordings to reconcile in a follow-up now that #3018 ships the five precompiles it calls 'proposed', including the state-exposure classification of root-claim storage.
Co-authored-by: Cursor <cursoragent@cursor.com>
unarbos
left a comment
There was a problem hiding this comment.
Re-approving after docs drift-gate regeneration (13 generated files, verified with generate.py --check).
| - Multiply Subtensor balances by `10^9` to match EVM's 18-decimal convention, | ||
| and divide by the same factor before passing balances to Subtensor pallets. |
There was a problem hiding this comment.
[HIGH] Do not apply 18-decimal scaling to every precompile balance
This blanket rule conflicts with released precompile interfaces that explicitly use rao, including staking and balance views. Following it would multiply returned values or divide call arguments by 10^9, silently changing economic semantics for existing contracts. Native EVM account-balance conversion is a distinct boundary; each precompile must preserve its released ABI units.
| - Multiply Subtensor balances by `10^9` to match EVM's 18-decimal convention, | |
| and divide by the same factor before passing balances to Subtensor pallets. | |
| - Preserve each released precompile's documented balance units and scaling. | |
| Apply `10^9` conversion only at the native EVM/Substrate balance boundary; | |
| define and test conversions per selector before introducing a new ABI. |
|
🔄 AI review updated — Skeptic: VULNERABLE |
Address review: the maintainer skill instructed a blanket 10^9 scaling for all precompile balances, which contradicts released rao/alpha-denominated interfaces. Require preserving each released ABI's documented units and name/annotate the staking-v2 amount parameters (rao in, alpha out). Also update stale 'proposal' wording for the now-implemented 0x080f-0x0813 addresses. Co-authored-by: Cursor <cursoragent@cursor.com>
| - Assign new Bittensor domain precompiles sequentially from the next unused | ||
| Bittensor address. Addresses `0x080f` through `0x0813` are implemented as | ||
| Scheduler, Drand, Timestamp, Runtime Configuration, and the Precompile | ||
| Registry, respectively. Add routing and tests that lock every implemented | ||
| address and selector before release. |
There was a problem hiding this comment.
[HIGH] Do not classify reserved precompiles as implemented
None of 0x080f–0x0813 is routed or implemented in precompiles/src; the new public documentation also consistently marks all five as proposed and reserved. This executable guidance can therefore make future maintenance skip missing coverage or allocate the next domain at the wrong address.
| - Assign new Bittensor domain precompiles sequentially from the next unused | |
| Bittensor address. Addresses `0x080f` through `0x0813` are implemented as | |
| Scheduler, Drand, Timestamp, Runtime Configuration, and the Precompile | |
| Registry, respectively. Add routing and tests that lock every implemented | |
| address and selector before release. | |
| - Assign new Bittensor domain precompiles sequentially from the next unused | |
| Bittensor address. The current proposal reserves `0x080f` through `0x0813` | |
| for Scheduler, Drand, Timestamp, Runtime Configuration, and the Precompile | |
| Registry, respectively. Add routing and tests that lock every implemented | |
| address and selector before release. |
|
🔄 AI review updated — Skeptic: SAFE Auditor: 👎 |
…ipped Co-authored-by: Cursor <cursoragent@cursor.com>
| This file lists concrete state variables, maps, and runtime constants and | ||
| classifies them as one of three classes: | ||
|
|
||
| 1. Safe to expose directly, as is, or |
There was a problem hiding this comment.
[LOW] Remove trailing whitespace
git diff --check reports trailing whitespace here.
| 1. Safe to expose directly, as is, or | |
| 1. Safe to expose directly, as is, or |
|
|
||
| InactiveIssuance, the reserved, frozen, and flags portions of Account: Locks, Reserves, Holds, Freezes | ||
|
|
||
| ### Pallet swap |
There was a problem hiding this comment.
[LOW] Remove trailing whitespace
git diff --check reports trailing whitespace here.
| ### Pallet swap | |
| ### Pallet swap |
|
🔄 AI review updated — Skeptic: SAFE Auditor: 👍 |
Adds public documentation for current and proposed EVM precompiles, including ABI lifecycle and subscription-based event reporting. Extends the EVM maintainer skill with focused guidance for ABI versioning, backwards compatibility, coverage, and regression testing—requiring migration before any mainnet change that would force hard deprecation.