Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e548039
doc: add schema specifications
fsamier Feb 12, 2026
eaeb875
feat: implement v2 input and resolved models
fsamier Feb 12, 2026
3c61cf7
feat: add v2 input to resolved converter
fsamier Feb 12, 2026
0d34a3a
feat: implement v2 linter
fsamier Feb 12, 2026
ab37c5b
test: add v2 converter tests
fsamier Feb 12, 2026
84e8b68
Update src/erc7730/convert/resolved/v2/parameters.py
fsamier Feb 12, 2026
c861ca8
Update src/erc7730/convert/resolved/v2/values.py
fsamier Feb 12, 2026
96eb0a4
fix: auto-detect v2 descriptors in lint command
lcastillo-ledger Feb 13, 2026
63adace
fix: filter out read-only functions from ABI lint warnings
lcastillo-ledger Feb 13, 2026
3b1807b
fix: use builtins.print for JSON output commands
lcastillo-ledger Feb 13, 2026
7420bef
feat: add v2 support to `erc7730 calldata` command
lcastillo-ledger Feb 13, 2026
f46bc44
feat: add v2 support to `resolve` command, guard `erc7730-to-eip712`
lcastillo-ledger Feb 13, 2026
80f93c9
feat: add v2 support to `erc7730 convert erc7730-to-eip712` command
lcastillo-ledger Feb 13, 2026
7fe1fb9
feat: simplify v2 EIP712Domain reconstruction and add salt support
lcastillo-ledger Feb 14, 2026
2e642fd
feat: add EIP712Domain field order validation to v1 linter
lcastillo-ledger Feb 14, 2026
fdff2bd
fix: resolve CI lint and docs build failures
lcastillo-ledger Feb 14, 2026
bee8160
fix: regenerate pdm.lock to match pyproject.toml
lcastillo-ledger Feb 14, 2026
1f2424d
fix: resolve mypy type errors in v2 converters and main
lcastillo-ledger Feb 15, 2026
80c1d09
fix: pin sphinx<8.2 to avoid roman-numerals import failure
lcastillo-ledger Feb 15, 2026
460f580
fix: patch sphinx_github_style lexer IndexError on last token
lcastillo-ledger Feb 15, 2026
3c858d7
fix: preserve EIP-55 address casing in v2 resolved token amount params
lcastillo-ledger Feb 16, 2026
579daca
fix: align v2 linter models with schema updates
lcastillo-ledger Feb 26, 2026
3f8fcca
chore: lint
fsamier Mar 2, 2026
9be22ab
fix: include read only functions in calldata conversion
fsamier Mar 2, 2026
e7eafa6
Merge branch 'main' into feat/model-v2
fsamier Mar 2, 2026
691802f
Merge remote-tracking branch 'origin/main' into feat/model-v2
fsamier Mar 4, 2026
4c0c010
chore: update submodule
fsamier Mar 4, 2026
b202f51
ci: Increase test timeout from 20 to 40 minutes
fsamier Mar 4, 2026
e1a68bd
feat: add skip option for ABI lint validation (#263)
lcastillo-ledger Mar 5, 2026
e98ffdb
Merge branch 'feat/model-v2' into apply-pr-255-on-main
lcastillo-ledger Mar 5, 2026
c61f4da
chore: update submodule
fsamier Mar 9, 2026
86ba236
test: simplify CI
fsamier Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
PRE_COMMIT_COLOR: always

- name: Test
timeout-minutes: 20
timeout-minutes: 40
run: pdm run test

- name: Publish test reports
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ tmp/
*.egg-info
docs/build
tests/**/*.xml
pyrightconfig.json
.env
29 changes: 29 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,35 @@

sys.path.insert(0, str(Path(__file__).parent / "src"))

# --- Monkey-patch sphinx_github_style lexer (upstream bug: IndexError on last token) -----------
import sphinx_github_style.lexer as _lexer
from pygments.lexers.python import PythonLexer as _PythonLexer
from pygments.token import Keyword, Name


def _patched_get_tokens_unprocessed(self, text): # type: ignore[no-untyped-def]
tokens = list(_PythonLexer.get_tokens_unprocessed(self, text))
last = len(tokens) - 1
for token_idx, (index, token, value) in enumerate(tokens):
if token is Name.Builtin and value in _lexer.BUILTINS["classes"]:
if token_idx < last and tokens[token_idx + 1][-1] == "(":
yield index, Name.Builtin, value
else:
yield index, Name.Builtin.Pseudo, value
elif token is Name:
if value[0].isupper():
yield index, Name.Class, value
elif token_idx < last and tokens[token_idx + 1][-1] == "(":
yield index, Keyword.Pseudo, value
else:
yield index, Name, value
else:
yield index, token, value


_lexer.GitHubLexer.get_tokens_unprocessed = _patched_get_tokens_unprocessed
# --- End monkey-patch --------------------------------------------------------------------------

nitpicky = True
project = "python-erc7730"
copyright = "2024, Ledger"
Expand Down
2 changes: 2 additions & 0 deletions docs/pages/usage_cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ checked 61 descriptor files, some errors found ❌

It can be called with single files or directories, in which case all descriptors will be checked.

Use `--skip-abi-validation` to disable external ABI comparisons against Etherscan (useful for offline runs or faster local checks).

### `erc7730 generate`

The `generate` command bootstraps a new descriptor file from ABIs or message schemas:
Expand Down
673 changes: 341 additions & 332 deletions pdm.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ dev = [
"pytest-unordered>=0.6.1",
"pytest-raises>=0.11",
"prettydiff[terminal]>=0.1.0",
"sphinx>=8.1.0",
"sphinx>=8.1.0,<8.2",
"sphinxcontrib-apidoc>=0.5.0",
"sphinxcontrib-typer>=0.5.0",
"sphinxcontrib-mermaid>=0.9.2",
Expand Down
Loading
Loading