mcp-bytesmith 0.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mcp_bytesmith-0.0.1/.github/FUNDING.yml +11 -0
- mcp_bytesmith-0.0.1/.github/ISSUE_TEMPLATE/bug_report.md +26 -0
- mcp_bytesmith-0.0.1/.github/ISSUE_TEMPLATE/config.yml +1 -0
- mcp_bytesmith-0.0.1/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
- mcp_bytesmith-0.0.1/.github/PULL_REQUEST_TEMPLATE.md +14 -0
- mcp_bytesmith-0.0.1/.github/workflows/ci.yml +35 -0
- mcp_bytesmith-0.0.1/.github/workflows/release.yml +45 -0
- mcp_bytesmith-0.0.1/.gitignore +36 -0
- mcp_bytesmith-0.0.1/LICENSE +674 -0
- mcp_bytesmith-0.0.1/PKG-INFO +93 -0
- mcp_bytesmith-0.0.1/README.md +62 -0
- mcp_bytesmith-0.0.1/TODO +503 -0
- mcp_bytesmith-0.0.1/plan.txt +640 -0
- mcp_bytesmith-0.0.1/pyproject.toml +52 -0
- mcp_bytesmith-0.0.1/scripts/test.sh +16 -0
- mcp_bytesmith-0.0.1/src/mcp_bytesmith/__init__.py +26 -0
- mcp_bytesmith-0.0.1/src/mcp_bytesmith/__main__.py +40 -0
- mcp_bytesmith-0.0.1/src/mcp_bytesmith/core.py +1315 -0
- mcp_bytesmith-0.0.1/src/mcp_bytesmith/eth.py +1039 -0
- mcp_bytesmith-0.0.1/src/mcp_bytesmith/server.py +63 -0
- mcp_bytesmith-0.0.1/src/mcp_bytesmith/wordlists/eff_large.txt +7776 -0
- mcp_bytesmith-0.0.1/tests/test_abi_codec.py +280 -0
- mcp_bytesmith-0.0.1/tests/test_bytes_edit.py +184 -0
- mcp_bytesmith-0.0.1/tests/test_charset_transcode.py +145 -0
- mcp_bytesmith-0.0.1/tests/test_data_uri.py +162 -0
- mcp_bytesmith-0.0.1/tests/test_decode.py +260 -0
- mcp_bytesmith-0.0.1/tests/test_encode.py +245 -0
- mcp_bytesmith-0.0.1/tests/test_eth_address_case.py +106 -0
- mcp_bytesmith-0.0.1/tests/test_eth_hash.py +165 -0
- mcp_bytesmith-0.0.1/tests/test_eth_selector.py +130 -0
- mcp_bytesmith-0.0.1/tests/test_eth_storage_slot.py +160 -0
- mcp_bytesmith-0.0.1/tests/test_eth_tx_codec.py +297 -0
- mcp_bytesmith-0.0.1/tests/test_hash.py +178 -0
- mcp_bytesmith-0.0.1/tests/test_info.py +57 -0
- mcp_bytesmith-0.0.1/tests/test_num_convert.py +138 -0
- mcp_bytesmith-0.0.1/tests/test_package.py +47 -0
- mcp_bytesmith-0.0.1/tests/test_random.py +175 -0
- mcp_bytesmith-0.0.1/tests/test_rlp_codec.py +203 -0
- mcp_bytesmith-0.0.1/tests/test_server.py +80 -0
- mcp_bytesmith-0.0.1/tests/test_string_escape.py +145 -0
- mcp_bytesmith-0.0.1/tests/test_string_unescape.py +166 -0
- mcp_bytesmith-0.0.1/tests/test_unicode_normalize.py +127 -0
- mcp_bytesmith-0.0.1/uv.lock +1556 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# GitHub Sponsors / funding configuration.
|
|
2
|
+
# This enables the "Sponsor" button on the repository.
|
|
3
|
+
# Sponsorship tiers (and their perks) are configured in the GitHub Sponsors
|
|
4
|
+
# dashboard, not in this file.
|
|
5
|
+
|
|
6
|
+
github: [laszlopere]
|
|
7
|
+
|
|
8
|
+
# Other funding platforms are also supported, e.g.:
|
|
9
|
+
# ko_fi: your_kofi_name
|
|
10
|
+
# liberapay: your_liberapay_name
|
|
11
|
+
# custom: ["https://example.com/donate"]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report something that doesn't work as expected
|
|
4
|
+
title: ""
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**What happened**
|
|
10
|
+
A clear description of the bug.
|
|
11
|
+
|
|
12
|
+
**What you expected**
|
|
13
|
+
What you expected to happen instead.
|
|
14
|
+
|
|
15
|
+
**Reproduction**
|
|
16
|
+
Steps or a minimal tool call / input that triggers it (please include the tool
|
|
17
|
+
name, e.g. `encode`, `hash`, `eth_hash`, and the exact arguments).
|
|
18
|
+
|
|
19
|
+
**Environment**
|
|
20
|
+
- mcp-bytesmith version: <!-- the installed package version, e.g. `pip show mcp-bytesmith` -->
|
|
21
|
+
- Python version: <!-- `python --version` -->
|
|
22
|
+
- Installed extras: <!-- e.g. ethereum / crypto / ids / validate / encoding / none -->
|
|
23
|
+
- OS: <!-- e.g. Ubuntu 24.04 -->
|
|
24
|
+
|
|
25
|
+
**Logs / output**
|
|
26
|
+
Any relevant error output (please redact secrets).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
blank_issues_enabled: true
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an improvement or a new capability
|
|
4
|
+
title: ""
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**The problem**
|
|
10
|
+
What are you trying to do that's hard or impossible today?
|
|
11
|
+
|
|
12
|
+
**Proposed solution**
|
|
13
|
+
What you'd like to see — a new tool, an option on an existing tool, a behavior
|
|
14
|
+
change, etc.
|
|
15
|
+
|
|
16
|
+
**Alternatives considered**
|
|
17
|
+
Other approaches you've thought about, including chaining existing tools.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Anything else relevant (which toolset/extra it belongs to, input/output
|
|
21
|
+
examples, links to the relevant spec or standard).
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!-- Thanks for contributing to mcp-bytesmith! -->
|
|
2
|
+
|
|
3
|
+
**What this changes**
|
|
4
|
+
A short description of the change and why.
|
|
5
|
+
|
|
6
|
+
**Related issues**
|
|
7
|
+
Closes #<!-- issue number -->, if applicable.
|
|
8
|
+
|
|
9
|
+
**Checklist**
|
|
10
|
+
- [ ] `uv run ruff check .` passes
|
|
11
|
+
- [ ] `uv run ruff format --check .` passes
|
|
12
|
+
- [ ] `uv run pytest` passes
|
|
13
|
+
- [ ] Docs/README updated if behavior or tools changed
|
|
14
|
+
- [ ] New tools/options gate correctly on their toolset extra (ethereum / crypto / ids / validate / encoding)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master, main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
# §8.2 — run on a current Python (3.12+).
|
|
15
|
+
python-version: ["3.12", "3.13"]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v6
|
|
19
|
+
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v7
|
|
22
|
+
|
|
23
|
+
- name: Install the project
|
|
24
|
+
# Let uv manage a project venv; installing into the runner's system
|
|
25
|
+
# Python fails under PEP 668 (externally managed).
|
|
26
|
+
run: uv sync --all-extras --python ${{ matrix.python-version }}
|
|
27
|
+
|
|
28
|
+
- name: Lint (ruff)
|
|
29
|
+
run: uv run ruff check .
|
|
30
|
+
|
|
31
|
+
- name: Format check (ruff)
|
|
32
|
+
run: uv run ruff format --check .
|
|
33
|
+
|
|
34
|
+
- name: Test (pytest)
|
|
35
|
+
run: uv run pytest -v
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
# Publishes to PyPI via Trusted Publishing (OIDC) on a version tag, e.g. v0.2.0.
|
|
4
|
+
# No API tokens are stored: PyPI verifies the GitHub OIDC identity instead.
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
tags: ["v*"]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v6
|
|
14
|
+
|
|
15
|
+
- name: Install uv
|
|
16
|
+
uses: astral-sh/setup-uv@v7
|
|
17
|
+
|
|
18
|
+
- name: Build sdist and wheel
|
|
19
|
+
run: uv build
|
|
20
|
+
|
|
21
|
+
- name: Check distributions
|
|
22
|
+
run: uvx twine check dist/*
|
|
23
|
+
|
|
24
|
+
- name: Upload dist artifact
|
|
25
|
+
uses: actions/upload-artifact@v4
|
|
26
|
+
with:
|
|
27
|
+
name: dist
|
|
28
|
+
path: dist/
|
|
29
|
+
|
|
30
|
+
publish:
|
|
31
|
+
needs: build
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
# The trusted publisher on PyPI is bound to this environment name.
|
|
34
|
+
environment: pypi
|
|
35
|
+
permissions:
|
|
36
|
+
id-token: write # required for OIDC
|
|
37
|
+
steps:
|
|
38
|
+
- name: Download dist artifact
|
|
39
|
+
uses: actions/download-artifact@v4
|
|
40
|
+
with:
|
|
41
|
+
name: dist
|
|
42
|
+
path: dist/
|
|
43
|
+
|
|
44
|
+
- name: Publish to PyPI
|
|
45
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Distribution / packaging
|
|
7
|
+
.Python
|
|
8
|
+
build/
|
|
9
|
+
dist/
|
|
10
|
+
*.egg-info/
|
|
11
|
+
*.egg
|
|
12
|
+
wheels/
|
|
13
|
+
|
|
14
|
+
# Virtual environments
|
|
15
|
+
.venv/
|
|
16
|
+
venv/
|
|
17
|
+
env/
|
|
18
|
+
|
|
19
|
+
# uv
|
|
20
|
+
.uv/
|
|
21
|
+
|
|
22
|
+
# Testing / coverage
|
|
23
|
+
.pytest_cache/
|
|
24
|
+
.mypy_cache/
|
|
25
|
+
.ruff_cache/
|
|
26
|
+
.coverage
|
|
27
|
+
.coverage.*
|
|
28
|
+
htmlcov/
|
|
29
|
+
.tox/
|
|
30
|
+
|
|
31
|
+
# Editor / OS
|
|
32
|
+
*.swp
|
|
33
|
+
*.swo
|
|
34
|
+
.idea/
|
|
35
|
+
.vscode/
|
|
36
|
+
.DS_Store
|