#parachain #primitive #polkadot #pointers #validation #length #format

no-std polkadot-parachain-primitives

Types and utilities for creating and working with parachains (polkadot v1.12.0)

12 major breaking releases

new 12.0.0 May 23, 2024
11.0.0 Apr 30, 2024
10.0.0 Apr 8, 2024
9.0.0 Mar 18, 2024
0.0.0 Sep 8, 2023

#51 in Magic Beans

Download history 1320/week @ 2024-02-07 2005/week @ 2024-02-14 3079/week @ 2024-02-21 1937/week @ 2024-02-28 1531/week @ 2024-03-06 2112/week @ 2024-03-13 2218/week @ 2024-03-20 1842/week @ 2024-03-27 2312/week @ 2024-04-03 2714/week @ 2024-04-10 2315/week @ 2024-04-17 2183/week @ 2024-04-24 2199/week @ 2024-05-01 1718/week @ 2024-05-08 2034/week @ 2024-05-15 1902/week @ 2024-05-22

8,298 downloads per month
Used in 171 crates (44 directly)

GPL-3.0-only

22KB
279 lines

Defines primitive types for creating or validating a parachain.

When compiled with standard library support, this crate exports a wasm module that can be used to validate parachain WASM.

Parachain WASM

Polkadot parachain WASM is in the form of a module which imports a memory instance and exports a function validate_block.

validate accepts as input two i32 values, representing a pointer/length pair respectively, that encodes ValidationParams.

validate returns an u64 which is a pointer to an u8 array and its length. The data in the array is expected to be a SCALE encoded ValidationResult.

ASCII-diagram demonstrating the return data format:

[pointer][length]
  32bit   32bit
        ^~~ returned pointer & length

The wasm-api (enabled only when std feature is not enabled and wasm-api feature is enabled) provides utilities for setting up a parachain WASM module in Rust.

Dependencies

~17–29MB
~488K SLoC