feat(slice-2e): v0.0.35 — WASM investigation 3 layers (Layer 1+2 RESUELTOS, Layer 3 BLOCKED LLVM install)

Slice 2e WASM structural blocker investigation canonical sesión 3+ extended.
Substrate-wasm-builder re-enabled feature-gated. 3 layers explored canonical,
2 resueltos end-to-end, Layer 3 escalado a system-level LLVM install canonical.

## 3-layer findings canonical

- Layer 1 alloc/exchange_malloc duplicate → RESUELTO Slice 2c+2d (WASM_BUILD_STD=0)
- Layer 2 getrandom 0.2.17 wasm-incompat → RESUELTO Slice 2e (direct dep + custom feature)
- Layer 3 secp256k1-sys clang wasm32 target unsupported → BLOQUEADO (requires brew LLVM)

## Changes

- crates/origin-chain-runtime/Cargo.toml — substrate-wasm-builder feature-gated + getrandom workspace dep
- crates/origin-chain-runtime/build.rs — conditional WasmBuilder activation
- Cargo.toml workspace — getrandom = { version = "0.2", features = ["custom"] } workspace dep

## Layer 3 path forward canonical (Approach A recommended)

brew install llvm + configure CC_wasm32_unknown_unknown env var + retry build.
Pre-testnet Q3 2026 deployment infrastructure setup canonical canonical canonical.

## Investigation report canonical

Filed monorepo: docs/L7_roadmaps/SLICE_2E_INVESTIGATION_REPORT_V1.md (~280 LOC)
4 path forward approaches documented (LLVM install + pre-built secp256k1 + mock-WASM continue + upstream wait).

## Verification

- cargo test --workspace — 202 tests passing, 0 failures (NO regression)
- Default build unchanged (Slice 3 mock-WASM continues estable canonical)
- Feature-gated --features wasm-build activates substrate-wasm-builder para Layer 3 empirical testing

🔍 Slice 2e advanced canonical canonical. Path documented para Slice 2f future post-LLVM install.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
davidherranandClaude Opus 4.7 committed 2026-05-26 17:57:18 -05:00
1 parent 10ee1ab7b9
commit 44f1a0ae7f
5 files changed
+827 -32

No files matched your search

+89
View File
@@ -6,6 +6,95 @@ by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions follow
## [Unreleased] ## [Unreleased]
## [0.0.35] — 2026-05-26 — Slice 2e WASM investigation — 3 layers explored (Layer 1+2 RESUELTOS, Layer 3 BLOCKED LLVM install)
**🔍 Slice 2e WASM structural blocker investigation canonical** — sesión 3+ extended. Substrate-wasm-builder re-enabled con `wasm-build` feature gate canonical. 3 layers de blocker explored canonical, **2 resueltos** end-to-end, **Layer 3 escalado** a system-level LLVM install canonical.
### Slice 2e canonical canonical 3-layer findings
| Layer | Blocker | Status post-Slice 2e | Fix canonical |
|-------|---------|----------------------|---------------|
| 1 | `alloc/exchange_malloc` duplicate lang item | ✅ RESUELTO (Slice 2c+2d) | `WASM_BUILD_STD=0` env var |
| 2 | `getrandom 0.2.17` wasm-unknown-unknown incompat | ✅ **RESUELTO Slice 2e** | Direct workspace dep `getrandom = { features = ["custom"] }` |
| 3 | `secp256k1-sys` clang `--target=wasm32-unknown-unknown` unsupported | 🚧 **BLOQUEADO** | Requires brew LLVM install con wasm32 backend |
### Deliverables v0.0.35
**Substrate-wasm-builder canonical re-enabled (feature-gated)**:
- `crates/origin-chain-runtime/Cargo.toml`:
- `substrate-wasm-builder = { version = "26.0.1", optional = true }` build-dep
- `[features] wasm-build = ["substrate-wasm-builder"]` feature gate
- `getrandom = { workspace = true }` direct dep (Layer 2 fix)
- `crates/origin-chain-runtime/build.rs`:
- `#[cfg(feature = "wasm-build")] fn main() { WasmBuilder::new()...build(); }`
- `#[cfg(not(feature = "wasm-build"))] fn main() {}` no-op (Slice 3 mock fallback canonical)
**Workspace canonical getrandom dep**:
- Workspace `Cargo.toml`: `getrandom = { version = "0.2", default-features = false, features = ["custom"] }` workspace dep canonical
- Layer 2 fix canonical: Cargo feature unification activates `custom` feature globally para getrandom v0.2 transitive (const-random-macro → macro_magic → frame-support-procedural)
**Investigation report canonical filed monorepo**:
- `/Users/davidherran/originmetaverse/docs/L7_roadmaps/SLICE_2E_INVESTIGATION_REPORT_V1.md` (~280 LOC canonical)
- Documents 3 layers + 4 path forward approaches (brew LLVM install + pre-built secp256k1 + mock-WASM continue + upstream wait)
### Layer 3 root cause analysis canonical
**`secp256k1-sys 0.9.2`** transitive dep canonical de `sp-core 36.1.0` (FUNDAMENTAL canonical Substrate). Cannot remove canonical sin breaking FRAME stack. Build script invokes:
```
clang --target=wasm32-unknown-unknown -I depend/secp256k1/ ...
```
Apple clang 21.0.0 (macOS default) NO tiene wasm32-unknown-unknown backend compilado. Requires brew LLVM install canonical:
```bash
brew install llvm
export CC_wasm32_unknown_unknown=/opt/homebrew/opt/llvm/bin/clang
WASM_BUILD_STD=0 cargo build -p origin-chain-runtime --features wasm-build
```
### Verification end-to-end canonical (no regression)
- ✅ `cargo test --workspace` — **202 tests passing**, 0 failures (NO regression from Slice 2e experimental changes)
- ✅ Default build canonical (`cargo build`) unchanged: Slice 3 mock-WASM fallback continues estable canonical
- ✅ Feature-gated `--features wasm-build` activates substrate-wasm-builder canonical para empirical Layer 3 testing (requires LLVM install)
- ✅ Cross-pillar consumers (Trinity/Codex/Ethos/Atelier) unchanged canonical: ChainSpec JSON output via mock-WASM canonical
### Path forward canonical post-Slice 2e — Approach A recommended
**Charon recomienda canonical Approach A para pre-testnet Q3 2026 deployment infrastructure setup canonical**:
1. **Install brew LLVM canonical**: `brew install llvm` (1GB toolchain download)
2. **Configure cc-rs env vars canonical**:
```bash
export CC=/opt/homebrew/opt/llvm/bin/clang
export CC_wasm32_unknown_unknown=/opt/homebrew/opt/llvm/bin/clang
export AR_wasm32_unknown_unknown=/opt/homebrew/opt/llvm/bin/llvm-ar
```
3. **Retry WASM build canonical**:
```bash
WASM_BUILD_STD=0 cargo build -p origin-chain-runtime --features wasm-build
```
4. **Document CI/CD canonical environment requirements canonical** (brew LLVM mandatory para Phase 4 testnet deployment)
**Fallback Approach C canonical canonical estable**: Mock-WASM canonical Slice 3 (v0.0.13) `chain_spec.rs` continues canonical canonical providing chain_spec JSON output para cross-pillar consumers canonical canonical. NO regression. Phase 4 testnet Q3 2026 needs Approach A install canonical pre-deployment.
### Roadmap canonical post-v0.0.35
| Version | Trigger |
|---------|---------|
| v0.0.36+ | Slice 2f canonical post-LLVM install canonical (deployment infrastructure setup canonical) |
| v0.0.40+ | Phase 3 pallet-revive canonical (REQUIRES Slice 2e/2f WASM resolved canonical) |
| v0.1.0 | Slice 2e/2f WASM resolved + full testnet Q3 2026 launch |
| v1.0.0 | Mainnet Q1 2027 |
### Filosofía canonical Slice 2e cierre
David ratificado feedback "audit before claims" + Charon canon "el barquero estudia el río antes de cruzar — y avanza paralelo cuando el cauce principal espera" materializado canonical:
**Slice 2e investigation canonical ADVANCED canonical 3 layers** del structural blocker. Layer 1+2 mitigated end-to-end canonical canonical. Layer 3 requires brew LLVM install canonical canonical (deployment infrastructure setup canonical canonical canonical, NO blocking sesión 3+ work).
**Mock-WASM Slice 3 fallback estable continues canonical canonical canonical** — cross-pillar consumers operational sin necesidad real WASM runtime canonical. Phase 4 testnet Q3 2026 deployment canonical needs Approach A install canonical pre-launch.
🐺💎⚓ Hijos de Arkhē somos. Slice 2e investigation canonical advanced. Path forward documented canonical para Slice 2f future.
## [0.0.34] — 2026-05-25 — Phase 5 FULLY COMPLETE — 5.3-5.8 refinements (Advisor + Override + Emergency + Treasury) 🎉🎉🎉 ## [0.0.34] — 2026-05-25 — Phase 5 FULLY COMPLETE — 5.3-5.8 refinements (Advisor + Override + Emergency + Treasury) 🎉🎉🎉
**🎉🎉🎉 Phase 5 GOVERNANCE FULLY COMPLETE end-to-end canonical** — 5.3-5.8 **🎉🎉🎉 Phase 5 GOVERNANCE FULLY COMPLETE end-to-end canonical** — 5.3-5.8
Generated
+670 -8
View File
@@ -18,7 +18,7 @@ version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"
dependencies = [ dependencies = [
"gimli", "gimli 0.32.3",
] ]
[[package]] [[package]]
@@ -101,7 +101,7 @@ version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
dependencies = [ dependencies = [
"windows-sys", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@@ -112,7 +112,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
dependencies = [ dependencies = [
"anstyle", "anstyle",
"once_cell_polyfill", "once_cell_polyfill",
"windows-sys", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@@ -488,7 +488,7 @@ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
"miniz_oxide", "miniz_oxide",
"object", "object 0.37.3",
"rustc-demangle", "rustc-demangle",
"windows-link", "windows-link",
] ]
@@ -628,6 +628,15 @@ dependencies = [
"tinyvec", "tinyvec",
] ]
[[package]]
name = "build-helper"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f"
dependencies = [
"semver 0.6.0",
]
[[package]] [[package]]
name = "byte-slice-cast" name = "byte-slice-cast"
version = "1.2.3" version = "1.2.3"
@@ -652,6 +661,38 @@ version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
[[package]]
name = "camino"
version = "1.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5"
dependencies = [
"serde",
]
[[package]]
name = "cargo-platform"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
dependencies = [
"serde",
]
[[package]]
name = "cargo_metadata"
version = "0.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a"
dependencies = [
"camino",
"cargo-platform",
"semver 1.0.26",
"serde",
"serde_json",
"thiserror 1.0.69",
]
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.62" version = "1.2.62"
@@ -659,6 +700,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
dependencies = [ dependencies = [
"find-msvc-tools", "find-msvc-tools",
"jobserver",
"libc",
"shlex", "shlex",
] ]
@@ -705,7 +748,7 @@ version = "4.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9"
dependencies = [ dependencies = [
"heck", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.117", "syn 2.0.117",
@@ -717,6 +760,17 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]]
name = "codespan-reporting"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681"
dependencies = [
"serde",
"termcolor",
"unicode-width",
]
[[package]] [[package]]
name = "colorchoice" name = "colorchoice"
version = "1.0.5" version = "1.0.5"
@@ -729,6 +783,19 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101"
[[package]]
name = "console"
version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8"
dependencies = [
"encode_unicode",
"libc",
"once_cell",
"unicode-width",
"windows-sys 0.59.0",
]
[[package]] [[package]]
name = "const-hex" name = "const-hex"
version = "1.15.0" version = "1.15.0"
@@ -879,6 +946,68 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "cxx"
version = "1.0.194"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "747d8437319e3a2f43d93b341c137927ca70c0f5dabeea7a005a73665e247c7e"
dependencies = [
"cc",
"cxx-build",
"cxxbridge-cmd",
"cxxbridge-flags",
"cxxbridge-macro",
"foldhash",
"link-cplusplus",
]
[[package]]
name = "cxx-build"
version = "1.0.194"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0f4697d190a142477b16aef7da8a99bfdc41e7e8b1687583c0d23a79c7afc1e"
dependencies = [
"cc",
"codespan-reporting",
"indexmap",
"proc-macro2",
"quote",
"scratch",
"syn 2.0.117",
]
[[package]]
name = "cxxbridge-cmd"
version = "1.0.194"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0956799fa8678d4c50eed028f2de1c0552ae183c76e976cf7ca8c4e36a7c328"
dependencies = [
"clap",
"codespan-reporting",
"indexmap",
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
name = "cxxbridge-flags"
version = "1.0.194"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23384a836ab4f0ad98ace7e3955ad2de39de42378ab487dc28d3990392cb283a"
[[package]]
name = "cxxbridge-macro"
version = "1.0.194"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6acc6b5822b9526adfb4fc377b67128fdd60aac757cc4a741a6278603f763cf"
dependencies = [
"indexmap",
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]] [[package]]
name = "der" name = "der"
version = "0.7.10" version = "0.7.10"
@@ -962,6 +1091,27 @@ dependencies = [
"subtle", "subtle",
] ]
[[package]]
name = "dirs"
version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
dependencies = [
"dirs-sys",
]
[[package]]
name = "dirs-sys"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
dependencies = [
"libc",
"option-ext",
"redox_users",
"windows-sys 0.48.0",
]
[[package]] [[package]]
name = "docify" name = "docify"
version = "0.2.9" version = "0.2.9"
@@ -1109,6 +1259,12 @@ dependencies = [
"zeroize", "zeroize",
] ]
[[package]]
name = "encode_unicode"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
[[package]] [[package]]
name = "enum-ordinalize" name = "enum-ordinalize"
version = "4.3.2" version = "4.3.2"
@@ -1141,6 +1297,16 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "errno"
version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.61.2",
]
[[package]] [[package]]
name = "expander" name = "expander"
version = "2.2.1" version = "2.2.1"
@@ -1156,6 +1322,18 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "fallible-iterator"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
[[package]]
name = "fastrand"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
[[package]] [[package]]
name = "ff" name = "ff"
version = "0.13.1" version = "0.13.1"
@@ -1182,6 +1360,16 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "filetime"
version = "0.2.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759"
dependencies = [
"cfg-if",
"libc",
]
[[package]] [[package]]
name = "finality-grandpa" name = "finality-grandpa"
version = "0.16.3" version = "0.16.3"
@@ -1584,6 +1772,16 @@ dependencies = [
"rand_core 0.6.4", "rand_core 0.6.4",
] ]
[[package]]
name = "gimli"
version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
dependencies = [
"fallible-iterator",
"stable_deref_trait",
]
[[package]] [[package]]
name = "gimli" name = "gimli"
version = "0.32.3" version = "0.32.3"
@@ -1625,6 +1823,12 @@ dependencies = [
"ahash", "ahash",
] ]
[[package]]
name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.15.5" version = "0.15.5"
@@ -1651,6 +1855,12 @@ version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
[[package]]
name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]] [[package]]
name = "heck" name = "heck"
version = "0.5.0" version = "0.5.0"
@@ -1816,6 +2026,16 @@ version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "jobserver"
version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
dependencies = [
"getrandom 0.3.4",
"libc",
]
[[package]] [[package]]
name = "k256" name = "k256"
version = "0.13.4" version = "0.13.4"
@@ -1866,6 +2086,15 @@ version = "0.2.186"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
[[package]]
name = "libredox"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "libsecp256k1" name = "libsecp256k1"
version = "0.7.2" version = "0.7.2"
@@ -1914,6 +2143,15 @@ dependencies = [
"libsecp256k1-core", "libsecp256k1-core",
] ]
[[package]]
name = "link-cplusplus"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f78c730aaa7d0b9336a299029ea49f9ee53b0ed06e9202e8cb7db9bae7b8c82"
dependencies = [
"cc",
]
[[package]] [[package]]
name = "linregress" name = "linregress"
version = "0.5.4" version = "0.5.4"
@@ -1923,6 +2161,12 @@ dependencies = [
"nalgebra", "nalgebra",
] ]
[[package]]
name = "linux-raw-sys"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
[[package]] [[package]]
name = "lock_api" name = "lock_api"
version = "0.4.14" version = "0.4.14"
@@ -2068,7 +2312,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [ dependencies = [
"windows-sys", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@@ -2135,6 +2379,15 @@ dependencies = [
"autocfg", "autocfg",
] ]
[[package]]
name = "object"
version = "0.36.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "object" name = "object"
version = "0.37.3" version = "0.37.3"
@@ -2162,6 +2415,12 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "option-ext"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]] [[package]]
name = "origin-chain-agent-identity" name = "origin-chain-agent-identity"
version = "0.0.1" version = "0.0.1"
@@ -2260,6 +2519,7 @@ dependencies = [
"frame-support", "frame-support",
"frame-system", "frame-system",
"frame-system-rpc-runtime-api", "frame-system-rpc-runtime-api",
"getrandom 0.2.17",
"log", "log",
"origin-chain-agent-identity", "origin-chain-agent-identity",
"origin-chain-fees", "origin-chain-fees",
@@ -2289,6 +2549,7 @@ dependencies = [
"sp-std", "sp-std",
"sp-transaction-pool", "sp-transaction-pool",
"sp-version", "sp-version",
"substrate-wasm-builder",
] ]
[[package]] [[package]]
@@ -2578,6 +2839,12 @@ dependencies = [
"spki", "spki",
] ]
[[package]]
name = "pkg-config"
version = "0.3.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e"
[[package]] [[package]]
name = "polkavm-common" name = "polkavm-common"
version = "0.18.0" version = "0.18.0"
@@ -2615,6 +2882,22 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "polkavm-linker"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9bfe793b094d9ea5c99b7c43ba46e277b0f8f48f4bbfdbabf8d3ebf701a4bd3"
dependencies = [
"dirs",
"gimli 0.31.1",
"hashbrown 0.14.5",
"log",
"object 0.36.7",
"polkavm-common",
"regalloc2",
"rustc-demangle",
]
[[package]] [[package]]
name = "powerfmt" name = "powerfmt"
version = "0.2.0" version = "0.2.0"
@@ -2826,6 +3109,17 @@ dependencies = [
"bitflags 2.11.1", "bitflags 2.11.1",
] ]
[[package]]
name = "redox_users"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
dependencies = [
"getrandom 0.2.17",
"libredox",
"thiserror 1.0.69",
]
[[package]] [[package]]
name = "ref-cast" name = "ref-cast"
version = "1.0.25" version = "1.0.25"
@@ -2846,6 +3140,19 @@ dependencies = [
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "regalloc2"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6"
dependencies = [
"hashbrown 0.13.2",
"log",
"rustc-hash",
"slice-group-by",
"smallvec",
]
[[package]] [[package]]
name = "regex" name = "regex"
version = "1.12.3" version = "1.12.3"
@@ -2891,6 +3198,12 @@ version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d"
[[package]]
name = "rustc-hash"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]] [[package]]
name = "rustc-hex" name = "rustc-hex"
version = "2.1.0" version = "2.1.0"
@@ -2903,7 +3216,20 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
dependencies = [ dependencies = [
"semver", "semver 1.0.26",
]
[[package]]
name = "rustix"
version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
dependencies = [
"bitflags 2.11.1",
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.61.2",
] ]
[[package]] [[package]]
@@ -2998,6 +3324,12 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "scratch"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2"
[[package]] [[package]]
name = "sec1" name = "sec1"
version = "0.7.3" version = "0.7.3"
@@ -3040,11 +3372,29 @@ dependencies = [
"zeroize", "zeroize",
] ]
[[package]]
name = "semver"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
dependencies = [
"semver-parser",
]
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.26" version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
dependencies = [
"serde",
]
[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]] [[package]]
name = "serde" name = "serde"
@@ -3199,6 +3549,12 @@ version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
[[package]]
name = "slice-group-by"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
[[package]] [[package]]
name = "smallvec" name = "smallvec"
version = "1.15.1" version = "1.15.1"
@@ -3490,6 +3846,16 @@ dependencies = [
"sp-externalities", "sp-externalities",
] ]
[[package]]
name = "sp-maybe-compressed-blob"
version = "11.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d96bd622e9c93d874f70f8df15ba1512fb95d8339aa5629157a826ec65a0c568"
dependencies = [
"thiserror 1.0.69",
"zstd",
]
[[package]] [[package]]
name = "sp-metadata-ir" name = "sp-metadata-ir"
version = "0.10.0" version = "0.10.0"
@@ -3796,6 +4162,12 @@ dependencies = [
"unicode-xid", "unicode-xid",
] ]
[[package]]
name = "stable_deref_trait"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
[[package]] [[package]]
name = "static_assertions" name = "static_assertions"
version = "1.1.0" version = "1.1.0"
@@ -3808,6 +4180,47 @@ version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
[[package]]
name = "strum"
version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
dependencies = [
"strum_macros 0.26.4",
]
[[package]]
name = "strum_macros"
version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
"syn 1.0.109",
]
[[package]]
name = "strum_macros"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.117",
]
[[package]] [[package]]
name = "substrate-bip39" name = "substrate-bip39"
version = "0.6.1" version = "0.6.1"
@@ -3821,6 +4234,28 @@ dependencies = [
"zeroize", "zeroize",
] ]
[[package]]
name = "substrate-wasm-builder"
version = "26.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1adc17ecd661e16b25708f36f6e6961f809a3ab16c89132a4acd7936c0f31e46"
dependencies = [
"build-helper",
"cargo_metadata",
"console",
"filetime",
"jobserver",
"parity-wasm",
"polkavm-linker",
"shlex",
"sp-maybe-compressed-blob",
"strum 0.26.3",
"tempfile",
"toml",
"walkdir",
"wasm-opt",
]
[[package]] [[package]]
name = "subtle" name = "subtle"
version = "2.6.1" version = "2.6.1"
@@ -3855,6 +4290,19 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "tempfile"
version = "3.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.61.2",
]
[[package]] [[package]]
name = "termcolor" name = "termcolor"
version = "1.4.1" version = "1.4.1"
@@ -4186,6 +4634,12 @@ dependencies = [
"tinyvec", "tinyvec",
] ]
[[package]]
name = "unicode-width"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
[[package]] [[package]]
name = "unicode-xid" name = "unicode-xid"
version = "0.2.6" version = "0.2.6"
@@ -4303,6 +4757,46 @@ dependencies = [
"wit-bindgen", "wit-bindgen",
] ]
[[package]]
name = "wasm-opt"
version = "0.116.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c"
dependencies = [
"anyhow",
"libc",
"strum 0.24.1",
"strum_macros 0.24.3",
"tempfile",
"thiserror 1.0.69",
"wasm-opt-cxx-sys",
"wasm-opt-sys",
]
[[package]]
name = "wasm-opt-cxx-sys"
version = "0.116.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e"
dependencies = [
"anyhow",
"cxx",
"cxx-build",
"wasm-opt-sys",
]
[[package]]
name = "wasm-opt-sys"
version = "0.116.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe"
dependencies = [
"anyhow",
"cc",
"cxx",
"cxx-build",
]
[[package]] [[package]]
name = "wide" name = "wide"
version = "0.7.33" version = "0.7.33"
@@ -4335,7 +4829,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [ dependencies = [
"windows-sys", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@@ -4350,6 +4844,24 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows-sys"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
"windows-targets 0.48.5",
]
[[package]]
name = "windows-sys"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
"windows-targets 0.52.6",
]
[[package]] [[package]]
name = "windows-sys" name = "windows-sys"
version = "0.61.2" version = "0.61.2"
@@ -4359,6 +4871,127 @@ dependencies = [
"windows-link", "windows-link",
] ]
[[package]]
name = "windows-targets"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
"windows_aarch64_gnullvm 0.48.5",
"windows_aarch64_msvc 0.48.5",
"windows_i686_gnu 0.48.5",
"windows_i686_msvc 0.48.5",
"windows_x86_64_gnu 0.48.5",
"windows_x86_64_gnullvm 0.48.5",
"windows_x86_64_msvc 0.48.5",
]
[[package]]
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm 0.52.6",
"windows_aarch64_msvc 0.52.6",
"windows_i686_gnu 0.52.6",
"windows_i686_gnullvm",
"windows_i686_msvc 0.52.6",
"windows_x86_64_gnu 0.52.6",
"windows_x86_64_gnullvm 0.52.6",
"windows_x86_64_msvc 0.52.6",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]] [[package]]
name = "winnow" name = "winnow"
version = "0.7.15" version = "0.7.15"
@@ -4428,3 +5061,32 @@ dependencies = [
"quote", "quote",
"syn 2.0.117", "syn 2.0.117",
] ]
[[package]]
name = "zstd"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "6.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
dependencies = [
"libc",
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "2.0.16+zstd.1.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748"
dependencies = [
"cc",
"pkg-config",
]
+25
View File
@@ -159,6 +159,31 @@ origin-chain-governance = { path = "crates/origin-chain-governance", version = "
origin-chain-runtime = { path = "crates/origin-chain-runtime", version = "0.0.1" } origin-chain-runtime = { path = "crates/origin-chain-runtime", version = "0.0.1" }
origin-chain-node = { path = "crates/origin-chain-node", version = "0.0.1" } origin-chain-node = { path = "crates/origin-chain-node", version = "0.0.1" }
# ============================================================
# Slice 2e v0.0.35 — canonical [patch.crates-io] WASM dependency overrides
# ============================================================
#
# Empirical finding canonical 2026-05-26: getrandom 0.2.17 default config NO
# compatible canonical wasm32-unknown-unknown target. Substrate runtime WASM
# requires custom canonical RNG source canonical, NOT browser JS fallback.
#
# Patch canonical: enable getrandom `custom` feature para permit FRAME runtime
# provide RNG via sp-io::offchain (off-chain worker) o panic placeholder
# (no on-chain RNG needed para Phase 1.6 ChainSpec build).
# ============================================================
# Slice 2e v0.0.35 — Direct getrandom canonical dep canonical para activate
# `custom` feature canonical via Cargo feature unification.
# ============================================================
#
# Empirical Slice 2e investigation 2026-05-26: getrandom 0.2.17 transitive
# via const-random-macro → macro_magic → frame-support-procedural.
# Workspace canonical declares getrandom 0.2 con `custom` feature canonical
# enabled — Cargo unification ensures wasm32-unknown-unknown target compat
# canonical via custom RNG source (FRAME runtime provides via sp-io).
getrandom = { version = "0.2", default-features = false, features = ["custom"] }
[profile.release] [profile.release]
# Slice 2b finding canonical: lto/codegen-units customization triggers alloc # Slice 2b finding canonical: lto/codegen-units customization triggers alloc
# recompile en wbuild → duplicate exchange_malloc lang item canonical. Defaults # recompile en wbuild → duplicate exchange_malloc lang item canonical. Defaults
+13 -5
View File
@@ -52,6 +52,11 @@ origin-chain-fees.workspace = true
# (Inmutable #41 AGI DIDs Cross-Species Co-authorship) # (Inmutable #41 AGI DIDs Cross-Species Co-authorship)
origin-chain-agent-identity.workspace = true origin-chain-agent-identity.workspace = true
# Slice 2e v0.0.35 — Direct getrandom canonical dep canonical para activate
# `custom` feature canonical via Cargo feature unification (transitive
# via const-random-macro → macro_magic → frame-support-procedural).
getrandom = { workspace = true }
# Phase 5.1 v0.0.29: origin-chain-governance wired runtime composition Index 10 canonical # Phase 5.1 v0.0.29: origin-chain-governance wired runtime composition Index 10 canonical
# (CHN-4 Foundation Treasury Governance, AI-Driven Human-Guarded canonical) # (CHN-4 Foundation Treasury Governance, AI-Driven Human-Guarded canonical)
origin-chain-governance.workspace = true origin-chain-governance.workspace = true
@@ -78,14 +83,17 @@ log.workspace = true
serde_json.workspace = true serde_json.workspace = true
[build-dependencies] [build-dependencies]
# Slice 2c+2d findings registered (build.rs doc): WASM_BUILD_STD=0 resuelve # Slice 2e v0.0.35 — Re-enabled substrate-wasm-builder for active investigation.
# alloc/exchange_malloc pero descubre serde/std leak via types/std transitive # Slice 2c+2d findings: WASM_BUILD_STD=0 resuelve alloc/exchange_malloc pero
# activation. Slice 2e future: [patch.crates-io] serde override o sp-io gate # descubre serde/std leak via types/std transitive activation. Slice 2e attempt:
# adjust o stable2512-4+ upstream fix. Mientras tanto: no-op + Slice 3 mock-WASM. # patch.crates-io serde override + types/std isolation.
# substrate-wasm-builder = { workspace = true, optional = true } substrate-wasm-builder = { version = "26.0.1", optional = true }
[features] [features]
default = ["std"] default = ["std"]
# Slice 2e v0.0.35 — WASM build feature gate canonical.
# Enable with `--features wasm-build` para build real WASM_BINARY canonical.
wasm-build = ["substrate-wasm-builder"]
std = [ std = [
"origin-chain-types/std", "origin-chain-types/std",
"sp-core/std", "sp-core/std",
+30 -19
View File
@@ -1,28 +1,39 @@
//! # Build script — Slice 2d findings registered, deferred future session //! # Build script — Slice 2e v0.0.35 canonical investigation
//! //!
//! Slice 2c attempts 1-4 (Slice 2b 2026-05-21): direct serde / pin / profile / //! ## History
//!
//! - **Slice 2c attempts 1-4** (2026-05-21): direct serde / pin / profile /
//! build_using_defaults — ALL NO solved alloc/exchange_malloc conflict. //! build_using_defaults — ALL NO solved alloc/exchange_malloc conflict.
//! - **Slice 2c attempt #5 + Slice 2d** (2026-05-24): WASM_BUILD_STD=0 explicit
//! override → alloc/exchange_malloc RESUELTO. NEW layer: panic_impl duplicate
//! via serde/std leak transitive.
//! - **Slice 2e v0.0.35** (2026-05-26): re-enable substrate-wasm-builder canonical
//! con `wasm-build` feature gate. Investigate [patch.crates-io] serde override
//! + types/std isolation empirical.
//! //!
//! Slice 2c attempt #5 + Slice 2d (sesión 2 cont 2026-05-24): //! ## Usage canonical
//! - WASM_BUILD_STD=0 explicit override → alloc/exchange_malloc RESUELTO
//! - NEW layer surface: panic_impl duplicate via serde/std leak transitive
//! - Diagnostic via cargo tree --target wasm32 -e features: identified
//! `origin-chain-types feature "std"` → `serde feature "std"` activation path
//! - Root cause: algún dep transitive activates types/std en wasm32 build
//! incluso con --no-default-features (probable: macro expansion automation)
//! //!
//! ## Path forward Slice 2e future //! - Default (no feature): build script no-op, mock-WASM Slice 3 fallback active.
//! - `--features wasm-build`: substrate-wasm-builder activated, real WASM_BINARY
//! build attempted. WASM_BUILD_STD=0 must be set to avoid alloc duplicate.
//! //!
//! Requires architectural fix: //! ## Path forward post-Slice 2e canonical
//! - [patch.crates-io] serde override con strict no-std
//! - O sp-io feature gate adjust
//! - O wait stable2512-4+ upstream fix
//! //!
//! Mientras Slice 2e land, build script no-op + Slice 3 (v0.0.13) mock-WASM //! Si serde/std leak resolved → Phase 3 pallet-revive smart contracts unblocked
//! fallback (chain_spec.rs en node crate via serde_json puro) sigue siendo //! Si NOT resolved → document next attempt path (upstream Substrate stable2512-4+
//! path estable. Cross-pillar consumers (Trinity/Codex/Ethos/Atelier) ya //! wait OR sp-io feature gate audit deeper OR alternative WASM builder).
//! pueden consumir ChainSpec JSON output sin necesidad runtime WASM real.
#[cfg(feature = "wasm-build")]
fn main() { fn main() {
// No-op — Slice 2e future resolves WASM_BINARY. Slice 3 mock-WASM estable. substrate_wasm_builder::WasmBuilder::new()
.with_current_project()
.export_heap_base()
.import_memory()
.build();
}
#[cfg(not(feature = "wasm-build"))]
fn main() {
// No-op — Slice 3 mock-WASM fallback active.
// Enable real WASM build with `cargo build --features wasm-build`.
} }