Skip to content

3.0.0 party 6/6: contracts from dependency crates, CI fixes - #673

Closed
kubaplas wants to merge 3 commits into
party/5-late-featuresfrom
party/6-dependency-contracts-and-ci
Closed

kubaplas wants to merge 3 commits into
party/5-late-featuresfrom
party/6-dependency-contracts-and-ci

Conversation

@kubaplas

Copy link
Copy Markdown
Contributor

Layer 6 of 6 of the 3.0.0 party stack (bottom-up: 1 → 2 → 3 → 4 → 5 → 6, bottom is #668). Each layer targets the branch below; merge from the bottom. The top of the stack is the tree verified on OdraVM, CasperVM and NCTL; docs are in odradev/odradev.github.io#58 and #59, the migration guide covers every breaking change.

Closes #617, closes #321. Supersedes #664, which carried the whole party as one PR; the history here is the same commits, linearized (the two merges of release/3.0.0 dropped, the tree is identical).

Verification of the whole stack

Workspace clippy -D warnings and fmt; unit tests of every crate; odra-modules and examples suites on OdraVM and CasperVM; just test-livenet end to end on NCTL (livenet_tests, validators, upgrade, and the CLI deploy plus every scenario). All CI jobs green on the pre-stack branch.

🤖 Generated with Claude Code

kubaplas and others added 3 commits September 18, 2026 10:17
… only for the workspace template

odra-wasm-client's build script no longer panics when WASM_CLIENT_SK is unset:
the key is empty and signing fails with a clear error, so a workspace-wide
cargo clippy needs no secret; the lint job also exports the key like the other
jobs. cargo odra generate-client only supports workspace projects (cargo-odra
#104), so the template recipe runs it for the workspace template only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…odule cfg (#617, #321)

An Odra.toml entry whose first segment is a crate (fqn = "odra_modules::erc20::Erc20")
builds that crate's contract from the current project: ODRA_MODULE reaches every
Odra crate's build script, and the no_mangle entry points of a dependency link
into the host's build binary. The examples build Erc20 and Cep18 this way instead
of copying them from modules/wasm. The wasm parts are gated by
cfg(any(odra_module = "Struct", odra_module = "crate::Struct")) so cargo odra can
pass the crate-qualified name and same-named structs in two crates no longer
clash; odra_build::schema names the file from the struct part.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…aries

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@kubaplas kubaplas mentioned this pull request Sep 18, 2026
@kubaplas
kubaplas added this pull request to stack #674 September 18, 2026 08:24
@kubaplas
kubaplas removed this pull request from stack #674 September 18, 2026 08:57
@kubaplas

Copy link
Copy Markdown
Contributor Author

Closing: the 3.0.0 party goes back to a single pull request, #664. The commits here are the same work, so nothing is lost.

@kubaplas kubaplas closed this Sep 18, 2026
@kubaplas
kubaplas deleted the party/6-dependency-contracts-and-ci branch September 18, 2026 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant