Skip to content

Commit 7827f52

Browse files
davidtaikochagithub-advanced-security[bot]Copilot
authored
feat(taiko-client-rs): introduce Shasta driver rust crate (#20368)
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent d079a34 commit 7827f52

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+20980
-4374
lines changed

_typos.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ extend-ignore-identifiers-re = [
1111
"Groth",
1212
"groth",
1313
"GROTH",
14-
"J64QPL3oYpZ75230YMfbLfKcUEqlIyWW8"
14+
"J64QPL3oYpZ75230YMfbLfKcUEqlIyWW8",
1515
]
1616

1717
[files]
@@ -26,6 +26,7 @@ extend-exclude = [
2626
"packages/protocol/audit/code4rena-2024-03-taiko-final-report.md",
2727
"packages/protocol/contracts/layer1/automata-attestation/**",
2828
"packages/protocol/deployments/**",
29+
"packages/taiko-client-rs/crates/bindings/**",
2930
# TODO: fix typos and remove these
3031
"packages/taiko-client/**",
3132
]
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
{
2+
"env": {
3+
"CLAUDE_CODE_ENABLE_TELEMETRY": "0"
4+
},
5+
"includeCoAuthoredBy": false,
6+
"permissions": {
7+
"allow": [
8+
"Bash(~/.claude-code-docs/claude-docs-helper.sh:*)",
9+
"Bash(awk:*)",
10+
"Bash(biome:*)",
11+
"Bash(bulloak:*)",
12+
"Bash(bun:*)",
13+
"Bash(cargo:*)",
14+
"Bash(cat:*)",
15+
"Bash(cd:*)",
16+
"Bash(cp:*)",
17+
"Bash(curl:*)",
18+
"Bash(cut:*)",
19+
"Bash(echo:*)",
20+
"Bash(eza:*)",
21+
"Bash(find:*)",
22+
"Bash(fd:*)",
23+
"Bash(forge:*)",
24+
"Bash(gdate:*)",
25+
"Bash(gh:*)",
26+
"Bash(git:*)",
27+
"Bash(grep:*)",
28+
"Bash(head:*)",
29+
"Bash(just:*)",
30+
"Bash(ls:*)",
31+
"Bash(lsof:*)",
32+
"Bash(jq:*)",
33+
"Bash(mkdir:*)",
34+
"Bash(na:*)",
35+
"Bash(ni:*)",
36+
"Bash(nlx:*)",
37+
"Bash(npm:*)",
38+
"Bash(npx:*)",
39+
"Bash(node:*)",
40+
"Bash(nr:*)",
41+
"Bash(nun:*)",
42+
"Bash(pnpm:*)",
43+
"Bash(prettier:*)",
44+
"Bash(printf:*)",
45+
"Bash(pwd:*)",
46+
"Bash(qsv:*)",
47+
"Bash(rg:*)",
48+
"Bash(select:*)",
49+
"Bash(sort:*)",
50+
"Bash(tail:*)",
51+
"Bash(timeout:*)",
52+
"Bash(tree:*)",
53+
"Bash(touch:*)",
54+
"Bash(which:*)",
55+
"Bash(yarn:*)",
56+
"Glob",
57+
"Grep",
58+
"LS",
59+
"Read",
60+
"Task",
61+
"TodoWrite",
62+
"WebFetch",
63+
"WebSearch",
64+
"mcp__context7",
65+
"mcp__github",
66+
"mcp__magic",
67+
"mcp__morphllm-fast-apply",
68+
"mcp__playwright",
69+
"mcp__sequential-thinking",
70+
"mcp__serena"
71+
],
72+
"deny": [
73+
"Bash(> /dev/sda*)",
74+
"Bash(> /etc/*)",
75+
"Bash(chmod -R:*)",
76+
"Bash(chown -R:*)",
77+
"Bash(dd:*)",
78+
"Bash(doas:*)",
79+
"Bash(kill -9:*)",
80+
"Bash(killall:*)",
81+
"Bash(launchctl:*)",
82+
"Bash(mkfs:*)",
83+
"Bash(passwd:*)",
84+
"Bash(reboot:*)",
85+
"Bash(rm -rf /)",
86+
"Bash(rm -rf ~)",
87+
"Bash(rm -rf ~/)",
88+
"Bash(rm -rf ~/*)",
89+
"Bash(shutdown:*)",
90+
"Bash(su:*)",
91+
"Bash(sudo:*)",
92+
"Bash(systemctl:*)",
93+
"Bash(userdel:*)",
94+
"Bash(usermod:*)",
95+
"Read(./.env)",
96+
"Read(./.env.production)"
97+
],
98+
"defaultMode": "plan"
99+
},
100+
"hooks": {
101+
"Notification": [
102+
{
103+
"hooks": [
104+
{
105+
"type": "command",
106+
"command": "~/.claude/hooks/ccnotify/ccnotify.py Notification"
107+
}
108+
]
109+
}
110+
],
111+
"PreToolUse": [
112+
{
113+
"matcher": "Read",
114+
"hooks": [
115+
{
116+
"type": "command",
117+
"command": "~/.claude-code-docs/claude-docs-helper.sh hook-check"
118+
}
119+
]
120+
}
121+
],
122+
"Stop": [
123+
{
124+
"hooks": [
125+
{
126+
"type": "command",
127+
"command": "~/.claude/hooks/ccnotify/ccnotify.py Stop"
128+
}
129+
]
130+
}
131+
],
132+
"UserPromptSubmit": [
133+
{
134+
"hooks": [
135+
{
136+
"type": "command",
137+
"command": "~/.claude/hooks/ccnotify/ccnotify.py UserPromptSubmit"
138+
},
139+
{
140+
"type": "command",
141+
"command": "~/.claude/hooks/UserPromptSubmit/append-subagents.py"
142+
}
143+
]
144+
}
145+
]
146+
},
147+
"statusLine": {
148+
"type": "command",
149+
"command": "bunx -y ccstatusline@latest",
150+
"padding": 0
151+
}
152+
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
target/
22
**/target/
3-
Cargo.lock
3+
.bmad-core/
4+
.code/

packages/taiko-client-rs/AGENTS.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Repository Guidelines
2+
3+
## Project Structure & Module Organization
4+
- `bin/client/` hosts the CLI entry point; keep orchestration light and delegate protocol logic to the crates.
5+
- `crates/protocol`, `crates/proposer`, `crates/driver`, `crates/event-indexer`, and `crates/rpc` cover the core services. Document shared traits whenever exposing cross-crate APIs.
6+
- `crates/bindings/` is generated via `just gen_bindings`; never hand-edit or reformat files under `crates/bindings/src`.
7+
- `tests/` contains Docker-backed integration assets run through `tests/entrypoint.sh`. Place every end-to-end scenario here and note any extra prerequisites.
8+
- `script/` keeps repeatable maintenance scripts; extend them instead of duplicating ad-hoc helpers.
9+
10+
## Build, Test, and Development Commands
11+
- `cargo build --workspace` (add `--release` for production binaries).
12+
- `just fmt` installs toolchain `nightly-2025-09-27`, runs `cargo +nightly fmt`, then `cargo sort --workspace --grouped`. Use `just fmt-check` for CI parity.
13+
- `just clippy` maps to `cargo clippy --workspace --all-features --no-deps --exclude bindings -- -D warnings`; reserve `just clippy-fix` for mechanical cleanups.
14+
- `just gen_bindings` executes `script/gen_bindings.sh` to refresh contract bindings whenever ABIs change.
15+
16+
## Coding Style & Naming Conventions
17+
- Target MSRV 1.88 and gate newer features with `#[cfg]` as needed.
18+
- Follow idiomatic Rust naming: snake_case for modules and functions, PascalCase for types, `SCREAMING_SNAKE_CASE` for constants. Prefer explicit `pub(crate)` boundaries.
19+
- Respect the shared `rustfmt.toml`; never bulk-format `crates/bindings/src`. Document intentional deviations with a brief comment.
20+
21+
## Testing Guidelines
22+
- Run `just test` before submitting changes; it launches the Dockerized L1/L2 stack and executes `cargo nextest` across the workspace.
23+
- For focused suites, use `cargo nextest run -p <crate> --all-features` after exporting required RPC endpoints.
24+
- Name tests after observable behavior (e.g., `handles_invalid_proposal`) and capture container logs for any failing integration case.
25+
26+
## Commit & Pull Request Guidelines
27+
- Use Conventional Commit prefixes (`feat:`, `fix:`, `chore:`). Keep subject lines ≤72 characters with optional, meaningful scopes.
28+
- PR descriptions must summarize impact, link issues, and include command output or screenshots for operator-facing flows.
29+
- Confirm `just fmt`, `just clippy`, and `just test` pass locally; call out any follow-up work explicitly.
30+
31+
## Security & Environment Notes
32+
- Use only the ephemeral test keys bundled in scripts; never commit real credentials or `.env` files.
33+
- Ensure ports `18545` and `28545-28551` are free before running integration tests, and document deviations in your PR.

0 commit comments

Comments
 (0)