genvm-lint
Validate GenLayer intelligent contracts with the GenVM linter.
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
GenVM Lint
Validate intelligent contracts for safety, correctness, and SDK compliance.
Setup
Requires genvm-linter (included in requirements.txt for boilerplate projects):
pip install genvm-linter
Workflow
Always lint before testing. Run genvm-lint check after writing or modifying a contract. Fix all errors before running tests.
genvm-lint check contracts/my_contract.py
check runs both lint (AST safety) and validate (SDK semantics) in one pass.
Commands
check (recommended)
genvm-lint check contracts/my_contract.py
genvm-lint check contracts/my_contract.py --json # Machine-readable output
lint (fast AST checks only, ~50ms)
genvm-lint lint contracts/my_contract.py
Catches:
- Forbidden imports (
os,sys,subprocess,random, etc.) - Non-deterministic patterns (bare
floatusage) - Contract header structure issues
validate (SDK semantic checks, ~200ms)
genvm-lint validate contracts/my_contract.py
Validates:
- Types exist in SDK (
TreeMap,DynArray,Address, etc.) - Decorators correctly applied (
@gl.public.view,@gl.public.write) - Storage fields have valid types (no
dict/list) - Method signatures correct
schema (extract ABI)
genvm-lint schema contracts/my_contract.py
genvm-lint schema contracts/my_contract.py --json
genvm-lint schema contracts/my_contract.py --output abi.json
typecheck (Pyright/Pylance)
genvm-lint typecheck contracts/my_contract.py
genvm-lint typecheck contracts/my_contract.py --json
genvm-lint typecheck contracts/my_contract.py --strict
Runs Pyright with SDK paths auto-configured. Catches type mismatches, missing attributes, undefined variables.
download (pre-download GenVM artifacts)
genvm-lint download # Latest
genvm-lint download --version v0.2.12 # Specific
genvm-lint download --list # Show cached
Output Formats
Human (default)
✓ Lint passed (3 checks)
✓ Validation passed
Contract: MyContract
Methods: 8 (5 view, 3 write)
JSON (--json)
{"ok":true,"lint":{"ok":true,"passed":3},"validate":{"ok":true,"contract":"MyContract","methods":8,"view_methods":5,"write_methods":3,"ctor_params":2}}
Exit Codes
0— All checks passed1— Lint or validation errors found2— Contract file not found3— SDK download failed
Agent Workflow
When fixing lint errors iteratively:
- Run
genvm-lint check contract.py --json - Parse JSON for specific errors
- Fix each error in the contract
- Re-run check until
"ok": true - Proceed to tests
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
vendored/genlayer/genvm-lint/SKILL.md