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

no-std polkadot-parachain-primitives

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

14 major breaking releases

new 14.0.0 Jul 18, 2024
13.0.0 Jun 21, 2024
12.0.0 May 23, 2024
11.0.0 Apr 30, 2024
0.0.0 Sep 8, 2023

#1539 in Magic Beans

Download history 1918/week @ 2024-03-28 2884/week @ 2024-04-04 2449/week @ 2024-04-11 2073/week @ 2024-04-18 2590/week @ 2024-04-25 1851/week @ 2024-05-02 1688/week @ 2024-05-09 1825/week @ 2024-05-16 2308/week @ 2024-05-23 2046/week @ 2024-05-30 1623/week @ 2024-06-06 1405/week @ 2024-06-13 2409/week @ 2024-06-20 1704/week @ 2024-06-27 889/week @ 2024-07-04 2037/week @ 2024-07-11

7,138 downloads per month
Used in 169 crates (45 directly)

GPL-3.0-only

21KB
292 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–30MB
~490K SLoC