Skip to content

Commit 7b9ebcd

Browse files
committed
Merge witness entry ABI v2 into nightly 0.23
2 parents 4c02e21 + db15dba commit 7b9ebcd

99 files changed

Lines changed: 37555 additions & 23916 deletions

File tree

Some content is hidden

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

‎.github/workflows/release.yml‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,8 @@ jobs:
7777
7878
- name: Install pinned CKB build toolchain
7979
run: |
80-
CKB_TOOLCHAIN="$(python3 - <<'PY'
81-
import tomllib
82-
from pathlib import Path
83-
print(tomllib.loads(Path('../ckb/rust-toolchain.toml').read_text(encoding='utf-8'))['toolchain']['channel'])
84-
PY
85-
)"
80+
CKB_TOOLCHAIN="$(sed -n 's/^channel = "\(.*\)"$/\1/p' ../ckb/rust-toolchain.toml | head -n 1)"
81+
test -n "$CKB_TOOLCHAIN"
8682
rustup toolchain install "$CKB_TOOLCHAIN" --profile minimal
8783
8884
- name: Resolve release version

‎.github/workflows/website-build.yml‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,6 @@ jobs:
1717
with:
1818
submodules: recursive
1919

20-
- name: Set up Python
21-
uses: actions/setup-python@v5
22-
with:
23-
python-version: "3.12"
24-
2520
- name: Set up Node.js
2621
uses: actions/setup-node@v4
2722
with:

‎.gitignore‎

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ editors/vscode-cellscript/dist/
88
.idea/
99
.vscode/
1010
.cap/
11+
.zcode/
1112
.playwright-mcp/
1213
.wrangler/
13-
__pycache__/
14-
*.py[cod]
1514
*.swp
1615
*.swo
1716

@@ -55,14 +54,12 @@ proposals/novaseal/v0-mvp-skeleton/build/
5554
proposals/novaseal/**/.cell/
5655
proposals/novaseal/v0-mvp-skeleton/target/
5756
proposals/novaseal/v0-mvp-skeleton/src/.cell/
58-
proposals/novaseal/v0-mvp-skeleton/scripts/__pycache__/
5957
proposals/novaseal/v0-mvp-skeleton/verifier/**/target/
6058
proposals/novaseal/v0-mvp-skeleton/harness/**/target/
6159
proposals/novaseal/agreement-profile-v0/target/
6260
proposals/novaseal/agreement-profile-v0/harness/**/target/
6361
proposals/novaseal/agreement-profile-v0/src/.cell/
6462
proposals/novaseal/agreement-profile-v0/harness/**/.cell/
65-
proposals/novaseal/agreement-profile-v0/scripts/__pycache__/
6663
proposals/novaseal/fungible-xudt-profile-v0/target/
6764
proposals/novaseal/fungible-xudt-profile-v0/src/.cell/
6865
proposals/novaseal/rwa-receipt-profile-v0/target/
@@ -77,18 +74,14 @@ proposals/novaseal/fiber-candidate-profile-v0/target/
7774
proposals/novaseal/fiber-candidate-profile-v0/src/.cell/
7875
proposals/novaseal/**/.DS_Store
7976
proposals/novaseal/**/.cap/
80-
proposals/novaseal/**/__pycache__/
81-
proposals/novaseal/**/*.py[cod]
8277
proposals/novaseal/**/*.s
8378
proposals/novaseal/**/*.elf
8479
proposals/novaseal/**/*.meta.json
8580
proposals/evolving-dob/evolving-dob-profile-v1/build/
8681
proposals/evolving-dob/evolving-dob-profile-v1/target/
8782
proposals/evolving-dob/evolving-dob-profile-v1/.cell/
8883
proposals/evolving-dob/evolving-dob-profile-v1/src/.cell/
89-
proposals/evolving-dob/evolving-dob-profile-v1/scripts/__pycache__/
9084
proposals/evolving-dob/evolving-dob-profile-v1/.DS_Store
91-
proposals/evolving-dob/evolving-dob-profile-v1/**/*.py[cod]
9285
proposals/evolving-dob/evolving-dob-profile-v1/**/*.s
9386
proposals/evolving-dob/evolving-dob-profile-v1/**/*.elf
9487
proposals/evolving-dob/evolving-dob-profile-v1/**/*.meta.json

‎AGENTS.md‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ require extra tooling.
8888

8989
| Mode | What it does |
9090
| --- | --- |
91-
| `dev` | Explicit workspace-package formatting and checks for the compiler, Fiber adapter, CKB adapter, WASM crate, and CKB SDK builder example; strict backend audit (quick); syntax combo audit (quick); forbidden tracked-file check; `git diff --check`. Run before committing. |
92-
| `ci` | `dev` coverage plus tests and clippy for every workspace package, full package contents check, website build check (requires `npm`), shell + Python syntax check, and trailing-whitespace check. Run before claiming merge-readiness. |
91+
| `dev` | Explicit workspace-package formatting and checks for the compiler, Fiber adapter, CKB adapter, WASM crate, CKB SDK builder example, and `cellscript-tools`; strict backend audit (quick); syntax combo audit (quick); parity-gated skill-pack freshness; forbidden tracked-file check; `git diff --check`. Run before committing. |
92+
| `ci` | `dev` coverage plus tests and clippy for every workspace package, including `cellscript-tools`; full package contents check, website build check (requires `npm`), shell + Python syntax check, parity-gated skill-pack freshness, and trailing-whitespace check. Run before claiming merge-readiness. |
9393
| `backend` | For IR / codegen / assembler / ABI / ELF / RISC-V changes: explicit workspace-package format checking, `cargo check --locked -p cellscript --all-targets`, `cargo test --locked -p cellscript`, `cargo clippy ... -D warnings`, strict backend audit (full, which itself fires the CKB stateful-scenarios harness via `cellscript_ckb_stateful_scenarios.sh`), `git diff --check`. |
9494
| `release` / `release-quick` | Everything `ci` does plus release-auxiliary checks (CKB acceptance, NovaSeal pinning, NovaSeal Rust tooling for RISC-V, fresh WASM + VS Code packaging, CKB tx measure tool, etc.) and the CKB acceptance harness (`scripts/ckb_cellscript_acceptance.sh`). These modes need the pinned sibling CKB checkout from `scripts/ckb_acceptance_pin.json`, the NovaSeal submodule, a sibling `ckb-sdk-rust` checkout at tag `v5.1.0`, Docker for the canonical Linux/amd64 WASM build, and `riscv64imac-unknown-none-elf` for NovaSeal verifier builds. Do not run them casually. |
9595

@@ -116,6 +116,7 @@ The root `Cargo.toml` declares a virtual workspace with these members:
116116
- `.` (the `cellscript` library + `cellc` bin at `src/main.rs`)
117117
- `crates/cellscript-ckb-adapter`
118118
- `crates/cellscript-fiber-adapter`
119+
- `crates/cellscript-tools`
119120
- `crates/cellscript-wasm`
120121
- `examples/ckb-sdk-builder`
121122

@@ -125,6 +126,12 @@ Excluded from the workspace (still buildable through their own manifests):
125126
defines its own `[workspace]` (no parent) because it pulls `ckb-jsonrpc-types`
126127
and `ckb-types` from a sibling CKB checkout (`../ckb`).
127128

129+
The 0.23 Python-to-Rust tooling migration is intentionally staged. Only
130+
`check-skill-pack` and `validate-tooling-release` are currently implemented in
131+
`cellscript-tools`; `scripts/dev/dual_run_tools.sh` requires their stdout and
132+
exit codes to match the retained Python implementations. Keep every other
133+
Python tool authoritative until its own port has equivalent parity evidence.
134+
128135
Features (root crate):
129136

130137
- `default = ["cli", "lsp"]`

‎CHANGELOG.md‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@
77
to the active script group, decode the `CSARGv1` payload from
88
`WitnessArgs.input_type`, preserve wallet/multisig ownership of `lock`, reject
99
malformed or wrongly placed payloads, and retain group-relative raw-v1
10-
compatibility. A canonical multisig-v2 CKB-VM regression covers a type group
11-
whose first input is not transaction input zero.
10+
compatibility. Builders place `input_type` before SDK signing because the
11+
complete `WitnessArgs` is signed. A canonical signed multisig-v2 CKB-VM
12+
regression covers a type group whose first input is not transaction input
13+
zero and rejects post-signing witness mutation. The Rust-native v0.23
14+
transaction recipes are rebound to the resulting audited ELF data hashes so
15+
the production stateful gate cannot silently replay stale code identities.
1216

1317
## 0.22.0 - 2026-07-19
1418

‎CODING_STYLE.md‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,10 @@ sub-module (e.g. `assembler.rs`, `runtime.rs`, `abi.rs`):
152152
4. **Delete from back to front.** When removing code by line number with `sed`,
153153
delete later ranges first to keep earlier line numbers stable.
154154

155-
5. **Brace-count after every deletion.** Use `python3 -c` to verify brace
156-
balance before attempting compilation. Off-by-one `sed` ranges can leave
157-
orphaned lines or eat closing braces.
155+
5. **Check delimiters after every deletion.** Run `cargo fmt --check`, then the
156+
focused `cargo check --locked -p cellscript --all-targets` before the next
157+
extraction. Off-by-one deletion ranges can leave orphaned lines or consume
158+
closing braces.
158159

159160
### Module Boundary: Schema vs Cell Operations vs Orchestration
160161

0 commit comments

Comments
 (0)