mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-06-18 09:11:03 +00:00
chore: migrate git dependencies to Gitea mirror (git.pezkuwichain.io)
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about Bizinikiwi, the main blockchain framework used in the Pezkuwi ecosystem."><title>pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module bizinikiwi</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module bizinikiwi</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#bizinikiwi" title="Bizinikiwi">Bizinikiwi</a><ul><li><a href="#overview-philosophy" title="Overview, Philosophy">Overview, Philosophy</a></li><li><a href="#how-to-get-started" title="How to Get Started">How to Get Started</a></li><li><a href="#structure" title="Structure">Structure</a></li><li><a href="#teyrchain" title="Teyrchain?">Teyrchain?</a></li><li><a href="#where-to-go-next" title="Where To Go Next?">Where To Go Next?</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>bizinikiwi</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/bizinikiwi.rs.html#1-140">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about Bizinikiwi, the main blockchain framework used in the Pezkuwi ecosystem.</p>
|
||||
<h2 id="bizinikiwi"><a class="doc-anchor" href="#bizinikiwi">§</a>Bizinikiwi</h2>
|
||||
<p>Bizinikiwi is a Rust framework for building blockchains in a modular and extensible way. While
|
||||
in itself un-opinionated, it is the main engine behind the Pezkuwi ecosystem.</p>
|
||||
<h3 id="overview-philosophy"><a class="doc-anchor" href="#overview-philosophy">§</a>Overview, Philosophy</h3>
|
||||
<p>Bizinikiwi approaches blockchain development with an acknowledgement of a few self-evident
|
||||
truths:</p>
|
||||
<ol>
|
||||
<li>Society and technology evolves.</li>
|
||||
<li>Humans are fallible.</li>
|
||||
</ol>
|
||||
<p>This makes the task of designing a correct, safe and long-lasting blockchain system hard.</p>
|
||||
<p>Nonetheless, in strive towards achieving this goal, Bizinikiwi embraces the following:</p>
|
||||
<ol>
|
||||
<li>Use of <strong>Rust</strong> as a modern and safe programming language, which limits human error through
|
||||
various means, most notably memory and type safety.</li>
|
||||
<li>Bizinikiwi is written from the ground-up with a <em>generic, modular and extensible</em> design.
|
||||
This ensures that software components can be easily swapped and upgraded. Examples of this is
|
||||
multiple consensus mechanisms provided by Bizinikiwi, as listed below.</li>
|
||||
<li>Lastly, the final blockchain system created with the above properties needs to be
|
||||
upgradeable. In order to achieve this, Bizinikiwi is designed as a meta-protocol, whereby the
|
||||
application logic of the blockchain (called “Runtime”) is encoded as a WASM blob, and is
|
||||
stored in the state. The rest of the system (called “node”) acts as the executor of the WASM
|
||||
blob.</li>
|
||||
</ol>
|
||||
<p>In essence, the meta-protocol of all Bizinikiwi based chains is the “Runtime as WASM blob”
|
||||
accord. This enables the Runtime to become inherently upgradeable, crucially without <a href="https://en.wikipedia.org/wiki/Fork_(blockchain)">forks</a>. The
|
||||
upgrade is merely a matter of the WASM blob being changed in the state, which is, in principle,
|
||||
same as updating an account’s balance. Learn more about this in detail in
|
||||
<a href="../../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>crate::reference_docs::wasm_meta_protocol</code></a>.</p>
|
||||
<blockquote>
|
||||
<p>A great analogy for bizinikiwi is the following: Bizinikiwi node is a gaming console, and a
|
||||
WASM
|
||||
runtime, possibly created with FRAME is the game being inserted into the console.</p>
|
||||
</blockquote>
|
||||
<p><a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>, Bizinikiwi’s default runtime development library, takes the above safety practices
|
||||
even further by embracing a declarative programming model whereby correctness is enhanced and
|
||||
the system is highly configurable through parameterization. Learn more about this in
|
||||
<a href="../../reference_docs/trait_based_programming/index.html" title="mod pezkuwi_sdk_docs::reference_docs::trait_based_programming"><code>crate::reference_docs::trait_based_programming</code></a>.</p>
|
||||
<h3 id="how-to-get-started"><a class="doc-anchor" href="#how-to-get-started">§</a>How to Get Started</h3>
|
||||
<p>Bizinikiwi offers different options at the spectrum of technical freedom <-> development ease.</p>
|
||||
<ul>
|
||||
<li>The easiest way to use Bizinikiwi is to use one of the templates (some of which listed at
|
||||
<a href="../templates/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::templates"><code>crate::pezkuwi_sdk::templates</code></a>) and only tweak the parameters of the runtime or node. This
|
||||
allows you to launch a blockchain in minutes, but is limited in technical freedom.</li>
|
||||
<li>Next, most developers wish to develop their custom runtime modules, for which the de-facto way
|
||||
is <a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>.</li>
|
||||
<li>Finally, Bizinikiwi is highly configurable at the node side as well, but this is the most
|
||||
technically demanding.</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<p>A notable Bizinikiwi-based blockchain that has built both custom FRAME pallets and custom
|
||||
node-side components is <a href="https://github.com/Cardinal-Cryptography/aleph-node">https://github.com/Cardinal-Cryptography/aleph-node</a>.</p>
|
||||
</blockquote>
|
||||
<pre class="mermaid" style="text-align:center;background: transparent;">
|
||||
flowchart LR
|
||||
T[Using a Template] --> P[Writing Your Own FRAME-Based Pallet] --> C[Custom Node]
|
||||
|
||||
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: false,
|
||||
theme: 'dark',
|
||||
flowchart: { useMaxWidth: true, htmlLabels: true },
|
||||
suppressErrorRendering: true
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const elements = document.querySelectorAll('.mermaid');
|
||||
for (const el of elements) {
|
||||
const code = el.textContent;
|
||||
try {
|
||||
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
|
||||
el.innerHTML = svg;
|
||||
} catch (e) {
|
||||
// On error, show as styled code block
|
||||
el.style.fontFamily = 'monospace';
|
||||
el.style.whiteSpace = 'pre';
|
||||
el.style.background = '#1e293b';
|
||||
el.style.padding = '1rem';
|
||||
el.style.borderRadius = '8px';
|
||||
el.style.color = '#94a3b8';
|
||||
el.style.fontSize = '0.85rem';
|
||||
el.style.border = '1px solid #334155';
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<h3 id="structure"><a class="doc-anchor" href="#structure">§</a>Structure</h3>
|
||||
<p>Bizinikiwi contains a large number of crates, therefore it is useful to have an overview of what
|
||||
they are, and how they are organized. In broad terms, these crates are divided into three
|
||||
categories:</p>
|
||||
<ul>
|
||||
<li><code>sc-*</code> (short for <em>Bizinikiwi-client</em>) crates, located under <code>./client</code> folder. These are all
|
||||
the crates that lead to the node software. Notable examples are [<code>pezsc_network</code>], various
|
||||
consensus crates, RPC ([<code>pezsc_rpc_api</code>]) and database ([<code>pezsc_client_db</code>]), all of which are
|
||||
expected to reside in the node side.</li>
|
||||
<li><code>sp-*</code> (short for <em>bizinikiwi-primitives</em>) crates, located under <code>./primitives</code> folder. These
|
||||
are crates that facilitate both the node and the runtime, but are not opinionated about what
|
||||
framework is using for building the runtime. Notable examples are [<code>pezsp_api</code>] and
|
||||
[<code>pezsp_io</code>], which form the communication bridge between the node and runtime.</li>
|
||||
<li><code>pezpallet-*</code> and <code>frame-*</code> crates, located under <code>./frame</code> folder. These are the crates
|
||||
related to FRAME. See <a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a> for more information.</li>
|
||||
</ul>
|
||||
<h4 id="wasm-build"><a class="doc-anchor" href="#wasm-build">§</a>WASM Build</h4>
|
||||
<p>Many of the Bizinikiwi crates, such as entire <code>sp-*</code>, need to compile to both WASM (when a WASM
|
||||
runtime is being generated) and native (for example, when testing). To achieve this, Bizinikiwi
|
||||
follows the convention of the Rust community, and uses a <code>feature = "std"</code> to signify that a
|
||||
crate is being built with the standard library, and is built for native. Otherwise, it is built
|
||||
for <code>no_std</code>.</p>
|
||||
<p>This can be summarized in <code>#![cfg_attr(not(feature = "std"), no_std)]</code>, which you can often find
|
||||
in any Bizinikiwi-based runtime.</p>
|
||||
<p>Bizinikiwi-based runtimes use [<code>bizinikiwi_wasm_builder</code>] in their <code>build.rs</code> to automatically
|
||||
build their WASM files as a part of normal build command (e.g. <code>cargo build</code>). Once built, the
|
||||
wasm file is placed in <code>./target/{debug|release}/wbuild/{runtime_name}/{runtime_name}.wasm</code>.</p>
|
||||
<p>In order to ensure that the WASM build is <strong>deterministic</strong>, the <a href="https://github.com/paritytech/srtool">Bizinikiwi Runtime Toolbox (srtool)</a> can be used.</p>
|
||||
<h4 id="anatomy-of-a-binary-crate"><a class="doc-anchor" href="#anatomy-of-a-binary-crate">§</a>Anatomy of a Binary Crate</h4>
|
||||
<p>From the above, [<code>node_cli</code>]/[<code>pez_kitchensink_runtime</code>] and <code>node-template</code> are essentially
|
||||
blueprints of a Bizinikiwi-based project, as the name of the latter is implying. Each
|
||||
Bizinikiwi-based project typically contains the following:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Under <code>./runtime</code>, a <code>./runtime/src/lib.rs</code> which is the top level runtime amalgamator file.
|
||||
This file typically contains the [<code>pezframe::runtime::prelude::construct_runtime</code>] and
|
||||
[<code>pezframe::runtime::prelude::impl_runtime_apis</code>] macro calls, which is the final definition of a
|
||||
runtime.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Under <code>./node</code>, a <code>main.rs</code>, which is the starting point, and a <code>./service.rs</code>, which contains
|
||||
all the node side components. Skimming this file yields an overview of the networking,
|
||||
database, consensus and similar node side components.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<p>The above two are conventions, not rules.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>See <a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/241">https://github.com/pezkuwichain/pezkuwi-sdk/issues/241</a> for an update on how the node side
|
||||
components are being amalgamated.</p>
|
||||
</blockquote>
|
||||
<h3 id="teyrchain"><a class="doc-anchor" href="#teyrchain">§</a>Teyrchain?</h3>
|
||||
<p>As noted above, Bizinikiwi is the main engine behind the Pezkuwi ecosystem. One of the ways
|
||||
through which Pezkuwi can be utilized is by building “teyrchains”, blockchains that are
|
||||
connected to Pezkuwi’s shared security.</p>
|
||||
<p>To build a teyrchain, one could use <a href="../pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus">Pezcumulus</a>, the library on
|
||||
top of Bizinikiwi, empowering any bizinikiwi-based chain to be a Pezkuwi teyrchain.</p>
|
||||
<h3 id="where-to-go-next"><a class="doc-anchor" href="#where-to-go-next">§</a>Where To Go Next?</h3>
|
||||
<p>Additional noteworthy crates within bizinikiwi:</p>
|
||||
<ul>
|
||||
<li>RPC APIs of a Bizinikiwi node: [<code>pezsc_rpc_api</code>]/[<code>pezsc_rpc</code>]</li>
|
||||
<li>CLI Options of a Bizinikiwi node: [<code>pezsc_cli</code>]</li>
|
||||
<li>All of the consensus related crates provided by Bizinikiwi:
|
||||
<ul>
|
||||
<li>[<code>pezsc_consensus_aura</code>]</li>
|
||||
<li>[<code>pezsc_consensus_babe</code>]</li>
|
||||
<li>[<code>pezsc_consensus_grandpa</code>]</li>
|
||||
<li>[<code>pezsc_consensus_beefy</code>] (TODO: @adrian, add some high level docs <a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/305">https://github.com/pezkuwichain/pezkuwi-sdk/issues/305</a>)</li>
|
||||
<li>[<code>pezsc_consensus_manual_seal</code>]</li>
|
||||
<li>[<code>pezsc_consensus_pow</code>]</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {};
|
||||
@@ -0,0 +1,187 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about FRAME, the framework used to build Bizinikiwi runtimes."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module frame_runtime</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module frame_<wbr>runtime</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#frame" title="FRAME">FRAME</a><ul><li><a href="#introduction" title="Introduction">Introduction</a></li><li><a href="#pallets" title="Pallets">Pallets</a></li><li><a href="#runtime" title="Runtime">Runtime</a></li><li><a href="#more-examples" title="More Examples">More Examples</a></li><li><a href="#alternatives-" title="Alternatives 🌈">Alternatives 🌈</a></li></ul></li></ul><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>frame_<wbr>runtime</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#1-177">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about FRAME, the framework used to build Bizinikiwi runtimes.</p>
|
||||
<h2 id="frame"><a class="doc-anchor" href="#frame">§</a>FRAME</h2><div class="example-wrap"><pre class="language-no_compile"><code> ______ ______ ________ ___ __ __ ______
|
||||
/_____/\ /_____/\ /_______/\ /__//_//_/\ /_____/\
|
||||
\::::_\/_\:::_ \ \ \::: _ \ \\::\| \| \ \\::::_\/_
|
||||
\:\/___/\\:(_) ) )_\::(_) \ \\:. \ \\:\/___/\
|
||||
\:::._\/ \: __ `\ \\:: __ \ \\:.\-/\ \ \\::___\/_
|
||||
\:\ \ \ \ `\ \ \\:.\ \ \ \\. \ \ \ \\:\____/\
|
||||
\_\/ \_\/ \_\/ \__\/\__\/ \__\/ \__\/ \_____\/</code></pre></div>
|
||||
<blockquote>
|
||||
<p><strong>F</strong>ramework for <strong>R</strong>untime <strong>A</strong>ggregation of <strong>M</strong>odularized <strong>E</strong>ntities: Bizinikiwi’s
|
||||
State Transition Function (Runtime) Framework.</p>
|
||||
</blockquote>
|
||||
<h3 id="introduction"><a class="doc-anchor" href="#introduction">§</a>Introduction</h3>
|
||||
<p>As described in <a href="../../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>crate::reference_docs::wasm_meta_protocol</code></a>, at a high-level Bizinikiwi-based
|
||||
blockchains are composed of two parts:</p>
|
||||
<ol>
|
||||
<li>A <em>runtime</em> which represents the state transition function (i.e. “Business Logic”) of a
|
||||
blockchain, and is encoded as a WASM blob.</li>
|
||||
<li>A node whose primary purpose is to execute the given runtime.</li>
|
||||
</ol>
|
||||
<pre class="mermaid" style="text-align:center;background: transparent;">
|
||||
graph TB
|
||||
subgraph Bizinikiwi
|
||||
direction LR
|
||||
subgraph Node
|
||||
end
|
||||
subgraph Runtime
|
||||
end
|
||||
end
|
||||
|
||||
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: false,
|
||||
theme: 'dark',
|
||||
flowchart: { useMaxWidth: true, htmlLabels: true },
|
||||
suppressErrorRendering: true
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const elements = document.querySelectorAll('.mermaid');
|
||||
for (const el of elements) {
|
||||
const code = el.textContent;
|
||||
try {
|
||||
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
|
||||
el.innerHTML = svg;
|
||||
} catch (e) {
|
||||
// On error, show as styled code block
|
||||
el.style.fontFamily = 'monospace';
|
||||
el.style.whiteSpace = 'pre';
|
||||
el.style.background = '#1e293b';
|
||||
el.style.padding = '1rem';
|
||||
el.style.borderRadius = '8px';
|
||||
el.style.color = '#94a3b8';
|
||||
el.style.fontSize = '0.85rem';
|
||||
el.style.border = '1px solid #334155';
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<p><em>FRAME is the Bizinikiwi’s framework of choice to build a runtime.</em></p>
|
||||
<p>FRAME is composed of two major components, <strong>pallets</strong> and a <strong>runtime</strong>.</p>
|
||||
<h3 id="pallets"><a class="doc-anchor" href="#pallets">§</a>Pallets</h3>
|
||||
<p>A pezpallet is a unit of encapsulated logic. It has a clearly defined responsibility and can be
|
||||
linked to other pallets. In order to be reusable, pallets shipped with FRAME strive to only care
|
||||
about its own responsibilities and make as few assumptions about the general runtime as
|
||||
possible. A pezpallet is analogous to a <em>module</em> in the runtime.</p>
|
||||
<p>A pezpallet is defined as a <code>mod pezpallet</code> wrapped by the [<code>pezframe::pezpallet</code>] macro. Within
|
||||
this macro, pezpallet components/parts can be defined. Most notable of these parts are:</p>
|
||||
<ul>
|
||||
<li><a href="pezframe::pezpallet_macros::config">Config</a>, allowing a pezpallet to make itself configurable
|
||||
and generic over types, values and such.</li>
|
||||
<li><a href="pezframe::pezpallet_macros::storage">Storage</a>, allowing a pezpallet to define onchain storage.</li>
|
||||
<li><a href="pezframe::pezpallet_macros::call">Dispatchable function</a>, allowing a pezpallet to define
|
||||
extrinsics that are callable by end users, from the outer world.</li>
|
||||
<li><a href="pezframe::pezpallet_macros::event">Events</a>, allowing a pezpallet to emit events.</li>
|
||||
<li><a href="pezframe::pezpallet_macros::error">Errors</a>, allowing a pezpallet to emit well-formed errors.</li>
|
||||
</ul>
|
||||
<p>Some of these pezpallet components resemble the building blocks of a smart contract. While both
|
||||
models are programming state transition functions of blockchains, there are crucial differences
|
||||
between the two. See <a href="../../reference_docs/runtime_vs_smart_contract/index.html" title="mod pezkuwi_sdk_docs::reference_docs::runtime_vs_smart_contract"><code>crate::reference_docs::runtime_vs_smart_contract</code></a> for more.</p>
|
||||
<p>Most of these components are defined using macros, the full list of which can be found in
|
||||
[<code>pezframe::pezpallet_macros</code>].</p>
|
||||
<h4 id="example"><a class="doc-anchor" href="#example">§</a>Example</h4>
|
||||
<p>The following example showcases a minimal pezpallet.</p>
|
||||
|
||||
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="attr">#[pezframe::pezpallet(dev_mode)]
|
||||
</span><span class="kw">pub mod </span>pezpallet {
|
||||
<span class="kw">use </span>pezframe::prelude::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="doccomment">/// The configuration trait of a pezpallet. Mandatory. Allows a pezpallet to receive types at a
|
||||
/// later point from the runtime that wishes to contain it. It allows the pezpallet to be
|
||||
/// parameterized over both types and values.
|
||||
</span><span class="attr">#[pezpallet::config]
|
||||
</span><span class="kw">pub trait </span>Config: pezframe_system::Config {
|
||||
<span class="doccomment">/// A type that is not known now, but the runtime that will contain this pezpallet will
|
||||
/// know it later, therefore we define it here as an associated type.
|
||||
</span><span class="attr">#[allow(deprecated)]
|
||||
</span><span class="kw">type </span>RuntimeEvent: IsType<<<span class="self">Self </span><span class="kw">as </span>pezframe_system::Config>::RuntimeEvent>
|
||||
+ From<Event<<span class="self">Self</span>>>;
|
||||
|
||||
<span class="doccomment">/// A parameterize-able value that we receive later via the `Get<_>` trait.
|
||||
</span><span class="kw">type </span>ValueParameter: Get<u32>;
|
||||
|
||||
<span class="doccomment">/// Similar to [`Config::ValueParameter`], but using `const`. Both are functionally
|
||||
/// equal, but offer different tradeoffs.
|
||||
</span><span class="kw">const </span>ANOTHER_VALUE_PARAMETER: u32;
|
||||
}
|
||||
|
||||
<span class="doccomment">/// A mandatory struct in each pezpallet. All functions callable by external users (aka.
|
||||
/// transactions) must be attached to this type (see [`pezframe::pezpallet_macros::call`]). For
|
||||
/// convenience, internal (private) functions can also be attached to this type.
|
||||
</span><span class="attr">#[pezpallet::pezpallet]
|
||||
</span><span class="kw">pub struct </span>Pezpallet<T>(PhantomData<T>);
|
||||
|
||||
<span class="doccomment">/// The events that this pezpallet can emit.
|
||||
</span><span class="attr">#[pezpallet::event]
|
||||
</span><span class="kw">pub enum </span>Event<T: Config> {}
|
||||
|
||||
<span class="doccomment">/// A storage item that this pezpallet contains. This will be part of the state root trie
|
||||
/// of the blockchain.
|
||||
</span><span class="attr">#[pezpallet::storage]
|
||||
</span><span class="kw">pub type </span>Value<T> = StorageValue<Value = u32>;
|
||||
|
||||
<span class="doccomment">/// All *dispatchable* call functions (aka. transactions) are attached to `Pezpallet` in a
|
||||
/// `impl` block.
|
||||
</span><span class="attr">#[pezpallet::call]
|
||||
</span><span class="kw">impl</span><T: Config> Pezpallet<T> {
|
||||
<span class="doccomment">/// This will be callable by external users, and has two u32s as a parameter.
|
||||
</span><span class="kw">pub fn </span>some_dispatchable(
|
||||
_origin: OriginFor<T>,
|
||||
_param: u32,
|
||||
_other_para: u32,
|
||||
) -> DispatchResult {
|
||||
<span class="prelude-val">Ok</span>(())
|
||||
}
|
||||
}
|
||||
}</code></pre></div><h3 id="runtime"><a class="doc-anchor" href="#runtime">§</a>Runtime</h3>
|
||||
<p>A runtime is a collection of pallets that are amalgamated together. Each pezpallet typically has
|
||||
some configurations (exposed as a <code>trait Config</code>) that needs to be <em>specified</em> in the runtime.
|
||||
This is done with [<code>pezframe::runtime::prelude::construct_runtime</code>].</p>
|
||||
<p>A (real) runtime that actually wishes to compile to WASM needs to also implement a set of
|
||||
runtime-apis. These implementation can be specified using the
|
||||
[<code>pezframe::runtime::prelude::impl_runtime_apis</code>] macro.</p>
|
||||
<h4 id="example-1"><a class="doc-anchor" href="#example-1">§</a>Example</h4>
|
||||
<p>The following example shows a (test) runtime that is composing the pezpallet demonstrated above,
|
||||
next to the [<code>pezframe::prelude::pezframe_system</code>] pezpallet, into a runtime.</p>
|
||||
|
||||
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">pub mod </span>runtime {
|
||||
<span class="kw">use </span><span class="kw">super</span>::pezpallet <span class="kw">as </span>pezpallet_example;
|
||||
<span class="kw">use </span>pezframe::{prelude::<span class="kw-2">*</span>, testing_prelude::<span class="kw-2">*</span>};
|
||||
|
||||
<span class="comment">// The major macro that amalgamates pallets into `enum Runtime`
|
||||
</span><span class="macro">construct_runtime!</span>(
|
||||
<span class="kw">pub enum </span>Runtime {
|
||||
System: pezframe_system,
|
||||
Example: pezpallet_example,
|
||||
}
|
||||
);
|
||||
|
||||
<span class="comment">// These `impl` blocks specify the parameters of each pezpallet's `trait Config`.
|
||||
</span><span class="attr">#[derive_impl(pezframe_system::config_preludes::TestDefaultConfig)]
|
||||
</span><span class="kw">impl </span>pezframe_system::Config <span class="kw">for </span>Runtime {
|
||||
<span class="kw">type </span>Block = MockBlock<<span class="self">Self</span>>;
|
||||
}
|
||||
|
||||
<span class="kw">impl </span>pezpallet_example::Config <span class="kw">for </span>Runtime {
|
||||
<span class="kw">type </span>RuntimeEvent = RuntimeEvent;
|
||||
<span class="kw">type </span>ValueParameter = ConstU32<<span class="number">42</span>>;
|
||||
<span class="kw">const </span>ANOTHER_VALUE_PARAMETER: u32 = <span class="number">42</span>;
|
||||
}
|
||||
}</code></pre></div><h3 id="more-examples"><a class="doc-anchor" href="#more-examples">§</a>More Examples</h3>
|
||||
<p>You can find more FRAME examples that revolve around specific features at
|
||||
[<code>pezpallet_examples</code>].</p>
|
||||
<h3 id="alternatives-"><a class="doc-anchor" href="#alternatives-">§</a>Alternatives 🌈</h3>
|
||||
<p>There is nothing in the Bizinikiwi’s node side code-base that mandates the use of FRAME. While
|
||||
FRAME makes it very simple to write Bizinikiwi-based runtimes, it is by no means intended to be
|
||||
the only one. At the end of the day, any WASM blob that exposes the right set of runtime APIs is
|
||||
a valid Runtime form the point of view of a Bizinikiwi client (see
|
||||
<a href="../../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>crate::reference_docs::wasm_meta_protocol</code></a>). Notable examples are:</p>
|
||||
<ul>
|
||||
<li>writing a runtime in pure Rust, as done in <a href="https://github.com/JoshOrndorff/frameless-node-template">this template</a>.</li>
|
||||
<li>writing a runtime in AssemblyScript, as explored in <a href="https://github.com/LimeChain/subsembly">this project</a>.</li>
|
||||
</ul>
|
||||
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="pezpallet/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet">pezpallet</a></dt><dd>The <code>pezpallet</code> module in each FRAME pezpallet hosts the most important items needed
|
||||
to construct this pezpallet.</dd><dt><a class="mod" href="runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime">runtime</a></dt><dd>A simple runtime that contains the above pezpallet and <code>pezframe_system</code>, the mandatory
|
||||
pezpallet of all runtimes. This runtime is for testing, but it shares a lot of similarities with
|
||||
a <em>real</em> runtime.</dd></dl></section></div></main></body></html>
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This will be callable by external users, and has two u32s as a parameter."><title>some_dispatchable in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">some_dispatchable</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">some_<wbr>dispatchable</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#warning-doc-only" title="Warning: Doc-Only">Warning: Doc-Only</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet::<wbr>dispatchables</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../../index.html">pezkuwi_sdk</a>::<wbr><a href="../../index.html">frame_runtime</a>::<wbr><a href="../index.html">pezpallet</a>::<wbr><a href="index.html">dispatchables</a></div><h1>Function <span class="fn">some_<wbr>dispatchable</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#97">Source</a> </span></div><pre class="rust item-decl"><code>pub fn some_dispatchable<T: <a class="trait" href="../trait.Config.html" title="trait pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config">Config</a>>(_param: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>, _other_para: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>)</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This will be callable by external users, and has two u32s as a parameter.</p>
|
||||
<h2 id="warning-doc-only"><a class="doc-anchor" href="#warning-doc-only">§</a>Warning: Doc-Only</h2>
|
||||
<p>This function is an automatically generated, and is doc-only, uncallable
|
||||
stub. See the real version in
|
||||
<a href="../struct.Pezpallet.html#method.some_dispatchable" title="associated function pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet::some_dispatchable"><code>Pezpallet::some_dispatchable</code></a>.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Auto-generated docs-only module listing all defined dispatchables for this pezpallet."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module dispatchables</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module dispatchables</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#warning-doc-only" title="Warning: Doc-Only">Warning: Doc-Only</a></li></ul><h3><a href="#functions">Module Items</a></h3><ul class="block"><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../../index.html">pezkuwi_sdk</a>::<wbr><a href="../../index.html">frame_runtime</a>::<wbr><a href="../index.html">pezpallet</a></div><h1>Module <span>dispatchables</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#97">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Auto-generated docs-only module listing all defined dispatchables for this pezpallet.</p>
|
||||
<h2 id="warning-doc-only"><a class="doc-anchor" href="#warning-doc-only">§</a>Warning: Doc-Only</h2>
|
||||
<p>Members of this module cannot be used directly and are only provided for documentation
|
||||
purposes. To see the real version of each dispatchable, look for them in <a href="../struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet"><code>Pezpallet</code></a> or
|
||||
<a href="../enum.Call.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Call"><code>Call</code></a>.</p>
|
||||
</div></details><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.some_dispatchable.html" title="fn pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables::some_dispatchable">some_<wbr>dispatchable</a></dt><dd>This will be callable by external users, and has two u32s as a parameter.</dd></dl></section></div></main></body></html>
|
||||
+1
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"fn":["some_dispatchable"]};
|
||||
+238
File diff suppressed because one or more lines are too long
+222
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The `pezpallet` module in each FRAME pezpallet hosts the most important items needed to construct this pezpallet."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezpallet</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezpallet</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a></div><h1>Module <span>pezpallet</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#98">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <code>pezpallet</code> module in each FRAME pezpallet hosts the most important items needed
|
||||
to construct this pezpallet.</p>
|
||||
<p>The main components of this pezpallet are:</p>
|
||||
<ul>
|
||||
<li>[<code>Pezpallet</code>], which implements all of the dispatchable extrinsics of the pezpallet, among
|
||||
other public functions.
|
||||
<ul>
|
||||
<li>The subset of the functions that are dispatchable can be identified either in the
|
||||
[<code>dispatchables</code>] module or in the [<code>Call</code>] enum.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>[<code>storage_types</code>], which contains the list of all types that are representing a
|
||||
storage item. Otherwise, all storage items are listed among <a href="#types"><em>Type Definitions</em></a>.</li>
|
||||
<li>[<code>Config</code>], which contains the configuration trait of this pezpallet.</li>
|
||||
<li>[<code>Event</code>] and [<code>Error</code>], which are listed among the <a href="#enums"><em>Enums</em></a>.</li>
|
||||
</ul>
|
||||
<p>A FRAME based pezpallet. This <code>mod</code> is the entry point for everything else. All
|
||||
<code>#[pezpallet::xxx]</code> macros must be defined in this <code>mod</code>. Although, frame also provides an
|
||||
experimental feature to break these parts into different <code>mod</code>s. See [<code>pezpallet_examples</code>] for
|
||||
more.</p>
|
||||
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="dispatchables/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables">dispatchables</a></dt><dd>Auto-generated docs-only module listing all defined dispatchables for this pezpallet.</dd><dt><a class="mod" href="storage_types/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::storage_types">storage_<wbr>types</a></dt><dd>Auto-generated docs-only module listing all (public and private) defined storage types
|
||||
for this pezpallet.</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet">Pezpallet</a></dt><dd>A mandatory struct in each pezpallet. All functions callable by external users (aka.
|
||||
transactions) must be attached to this type (see [<code>pezframe::pezpallet_macros::call</code>]). For
|
||||
convenience, internal (private) functions can also be attached to this type.</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.Call.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Call">Call</a></dt><dd>All <em>dispatchable</em> call functions (aka. transactions) are attached to <code>Pezpallet</code> in a
|
||||
<code>impl</code> block.</dd><dt><a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a></dt><dd>The events that this pezpallet can emit.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.Config.html" title="trait pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config">Config</a></dt><dd>Configuration trait of this pezpallet.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.Module.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Module">Module</a><wbr><span class="stab deprecated" title="">Deprecated</span></dt><dd>Type alias to <code>Pezpallet</code>, to be used by <code>construct_runtime</code>.</dd><dt><a class="type" href="type.Value.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Value">Value</a></dt><dd>A storage item that this pezpallet contains. This will be part of the state root trie
|
||||
of the blockchain.</dd></dl></section></div></main></body></html>
|
||||
+1
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"enum":["Call","Event"],"mod":["dispatchables","storage_types"],"struct":["Pezpallet"],"trait":["Config"],"type":["Module","Value"]};
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Auto-generated docs-only module listing all (public and private) defined storage types for this pezpallet."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::storage_types - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module storage_types</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module storage_<wbr>types</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#warning-doc-only" title="Warning: Doc-Only">Warning: Doc-Only</a></li></ul><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../../index.html">pezkuwi_sdk</a>::<wbr><a href="../../index.html">frame_runtime</a>::<wbr><a href="../index.html">pezpallet</a></div><h1>Module <span>storage_<wbr>types</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#97">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Auto-generated docs-only module listing all (public and private) defined storage types
|
||||
for this pezpallet.</p>
|
||||
<h2 id="warning-doc-only"><a class="doc-anchor" href="#warning-doc-only">§</a>Warning: Doc-Only</h2>
|
||||
<p>Members of this module cannot be used directly and are only provided for documentation
|
||||
purposes.</p>
|
||||
<p>To see the actual storage type, find a struct with the same name at the root of the
|
||||
pezpallet, in the list of <a href="../index.html#types"><em>Type Definitions</em></a>.</p>
|
||||
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Value.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::storage_types::Value">Value</a></dt><dd>A storage item that this pezpallet contains. This will be part of the state root trie
|
||||
of the blockchain.</dd></dl></section></div></main></body></html>
|
||||
+1
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"struct":["Value"]};
|
||||
+158
File diff suppressed because one or more lines are too long
+192
File diff suppressed because one or more lines are too long
+19
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Configuration trait of this pezpallet."><title>Config in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Config</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Config</a></h2><h3><a href="#required-associated-consts">Required Associated Constants</a></h3><ul class="block"><li><a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" title="ANOTHER_VALUE_PARAMETER">ANOTHER_VALUE_PARAMETER</a></li></ul><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.RuntimeEvent" title="RuntimeEvent">RuntimeEvent</a></li><li><a href="#associatedtype.ValueParameter" title="ValueParameter">ValueParameter</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">pezpallet</a></div><h1>Trait <span class="trait">Config</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#105-118">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Config: Config + Config<RuntimeEvent: <a class="trait" href="https://doc.rust-lang.org/1.91.1/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a><Self>>> {
|
||||
type <a href="#associatedtype.RuntimeEvent" class="associatedtype">RuntimeEvent</a>: IsType<<Self as Config>::RuntimeEvent> + <a class="trait" href="https://doc.rust-lang.org/1.91.1/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a><Self>>;
|
||||
type <a href="#associatedtype.ValueParameter" class="associatedtype">ValueParameter</a>: Get<<a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>>;
|
||||
|
||||
const <a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" class="constant">ANOTHER_VALUE_PARAMETER</a>: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>;
|
||||
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Configuration trait of this pezpallet.</p>
|
||||
<p>The main purpose of this trait is to act as an interface between this pezpallet and the runtime in
|
||||
which it is embedded in. A type, function, or constant in this trait is essentially left to be
|
||||
configured by the runtime that includes this pezpallet.</p>
|
||||
<p>Consequently, a runtime that wants to include this pezpallet must implement this trait.
|
||||
The configuration trait of a pezpallet. Mandatory. Allows a pezpallet to receive types at a
|
||||
later point from the runtime that wishes to contain it. It allows the pezpallet to be
|
||||
parameterized over both types and values.</p>
|
||||
</div></details><h2 id="required-associated-consts" class="section-header">Required Associated Constants<a href="#required-associated-consts" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedconstant.ANOTHER_VALUE_PARAMETER" class="method"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#117">Source</a><h4 class="code-header">const <a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" class="constant">ANOTHER_VALUE_PARAMETER</a>: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a></h4></section></summary><div class="docblock"><p>Similar to <a href="trait.Config.html#associatedtype.ValueParameter" title="associated type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config::ValueParameter"><code>Config::ValueParameter</code></a>, but using <code>const</code>. Both are functionally
|
||||
equal, but offer different tradeoffs.</p>
|
||||
</div></details></div><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.RuntimeEvent" class="method"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#109-110">Source</a><h4 class="code-header">type <a href="#associatedtype.RuntimeEvent" class="associatedtype">RuntimeEvent</a>: IsType<<Self as Config>::RuntimeEvent> + <a class="trait" href="https://doc.rust-lang.org/1.91.1/core/convert/trait.From.html" title="trait core::convert::From">From</a><<a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a><Self>></h4></section></summary><div class="docblock"><p>A type that is not known now, but the runtime that will contain this pezpallet will
|
||||
know it later, therefore we define it here as an associated type.</p>
|
||||
</div></details><details class="toggle" open><summary><section id="associatedtype.ValueParameter" class="method"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#113">Source</a><h4 class="code-header">type <a href="#associatedtype.ValueParameter" class="associatedtype">ValueParameter</a>: Get<<a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>></h4></section></summary><div class="docblock"><p>A parameterize-able value that we receive later via the <code>Get<_></code> trait.</p>
|
||||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.91.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Config-for-Runtime" class="impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#172-176">Source</a><a href="#impl-Config-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Config.html" title="trait pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config">Config</a> for <a class="struct" href="../runtime/struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a></h3></section></summary><div class="impl-items"><section id="associatedconstant.ANOTHER_VALUE_PARAMETER-1" class="associatedconstant trait-impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#175">Source</a><a href="#associatedconstant.ANOTHER_VALUE_PARAMETER-1" class="anchor">§</a><h4 class="code-header">const <a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" class="constant">ANOTHER_VALUE_PARAMETER</a>: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a> = 42u32</h4></section><section id="associatedtype.RuntimeEvent-1" class="associatedtype trait-impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#173">Source</a><a href="#associatedtype.RuntimeEvent-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.RuntimeEvent" class="associatedtype">RuntimeEvent</a> = <a class="enum" href="../runtime/enum.RuntimeEvent.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeEvent">RuntimeEvent</a></h4></section><section id="associatedtype.ValueParameter-1" class="associatedtype trait-impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#174">Source</a><a href="#associatedtype.ValueParameter-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.ValueParameter" class="associatedtype">ValueParameter</a> = ConstU32<42></h4></section></div></details></div><script src="../../../../trait.impl/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime/pezpallet/trait.Config.js" async></script></section></div></main></body></html>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Type alias to `Pezpallet`, to be used by `construct_runtime`."><title>Module in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">pezpallet</a></div><h1>Type Alias <span class="type">Module</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#123">Source</a> </span></div><pre class="rust item-decl"><code>pub type Module<T> = <a class="struct" href="struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet">Pezpallet</a><T>;</code></pre><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use <code>Pezpallet</code> instead</span></div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Type alias to <code>Pezpallet</code>, to be used by <code>construct_runtime</code>.</p>
|
||||
<p>Generated by <code>pezpallet</code> attribute macro.</p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Module<T>(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime/pezpallet/struct.Pezpallet.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Module" async></script></section></div></main></body></html>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A storage item that this pezpallet contains. This will be part of the state root trie of the blockchain."><title>Value in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Value</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">pezpallet</a></div><h1>Type Alias <span class="type">Value</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#133">Source</a> </span></div><pre class="rust item-decl"><code>pub type Value<T> = StorageValue<_GeneratedPrefixForStorageValue<T>, <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>, OptionQuery, GetDefault>;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A storage item that this pezpallet contains. This will be part of the state root trie
|
||||
of the blockchain.</p>
|
||||
<p>Storage type is [<code>StorageValue</code>] with value type <code>u32</code>.</p>
|
||||
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Value<T>(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezframe_support/storage/types/value/struct.StorageValue.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Value" async></script></section></div></main></body></html>
|
||||
+212
File diff suppressed because one or more lines are too long
+228
File diff suppressed because one or more lines are too long
+195
File diff suppressed because one or more lines are too long
+211
File diff suppressed because one or more lines are too long
+208
File diff suppressed because one or more lines are too long
+208
File diff suppressed because one or more lines are too long
+208
File diff suppressed because one or more lines are too long
+208
File diff suppressed because one or more lines are too long
+208
File diff suppressed because one or more lines are too long
+211
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A simple runtime that contains the above pezpallet and `pezframe_system`, the mandatory pezpallet of all runtimes. This runtime is for testing, but it shares a lot of similarities with a real runtime."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module runtime</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module runtime</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a></div><h1>Module <span>runtime</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#154">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A simple runtime that contains the above pezpallet and <code>pezframe_system</code>, the mandatory
|
||||
pezpallet of all runtimes. This runtime is for testing, but it shares a lot of similarities with
|
||||
a <em>real</em> runtime.</p>
|
||||
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.PalletInfo.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::PalletInfo">Pallet<wbr>Info</a></dt><dd>Provides an implementation of <code>PalletInfo</code> to provide information
|
||||
about the pezpallet setup in the runtime.</dd><dt><a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a></dt><dt><a class="struct" href="struct.RuntimeGenesisConfig.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeGenesisConfig">Runtime<wbr>Genesis<wbr>Config</a></dt><dt><a class="struct" href="struct.RuntimeOrigin.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeOrigin">Runtime<wbr>Origin</a></dt><dd>The runtime origin type representing the origin of a call.</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.OriginCaller.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::OriginCaller">Origin<wbr>Caller</a></dt><dt><a class="enum" href="enum.RuntimeCall.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeCall">Runtime<wbr>Call</a></dt><dd>The aggregated runtime call type.</dd><dt><a class="enum" href="enum.RuntimeError.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeError">Runtime<wbr>Error</a></dt><dt><a class="enum" href="enum.RuntimeEvent.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeEvent">Runtime<wbr>Event</a></dt><dt><a class="enum" href="enum.RuntimeFreezeReason.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeFreezeReason">Runtime<wbr>Freeze<wbr>Reason</a></dt><dd>A reason for placing a freeze on funds.</dd><dt><a class="enum" href="enum.RuntimeHoldReason.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeHoldReason">Runtime<wbr>Hold<wbr>Reason</a></dt><dd>A reason for placing a hold on funds.</dd><dt><a class="enum" href="enum.RuntimeLockId.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeLockId">Runtime<wbr>Lock<wbr>Id</a></dt><dd>An identifier for each lock placed on funds.</dd><dt><a class="enum" href="enum.RuntimeSlashReason.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeSlashReason">Runtime<wbr>Slash<wbr>Reason</a></dt><dd>A reason for slashing funds.</dd><dt><a class="enum" href="enum.RuntimeTask.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeTask">Runtime<wbr>Task</a></dt><dd>An aggregation of all <code>Task</code> enums across all pallets included in the current runtime.</dd><dt><a class="enum" href="enum.RuntimeViewFunction.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeViewFunction">Runtime<wbr>View<wbr>Function</a></dt><dd>Runtime query type.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.AllPalletsWithSystem.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::AllPalletsWithSystem">AllPallets<wbr>With<wbr>System</a></dt><dd>All pallets included in the runtime as a nested tuple of types.</dd><dt><a class="type" href="type.AllPalletsWithoutSystem.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::AllPalletsWithoutSystem">AllPallets<wbr>Without<wbr>System</a></dt><dd>All pallets included in the runtime as a nested tuple of types.
|
||||
Excludes the System pezpallet.</dd><dt><a class="type" href="type.Example.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example">Example</a></dt><dt><a class="type" href="type.System.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::System">System</a></dt><dt><a class="type" href="type.SystemConfig.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::SystemConfig">System<wbr>Config</a></dt></dl></section></div></main></body></html>
|
||||
+1
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"enum":["OriginCaller","RuntimeCall","RuntimeError","RuntimeEvent","RuntimeFreezeReason","RuntimeHoldReason","RuntimeLockId","RuntimeSlashReason","RuntimeTask","RuntimeViewFunction"],"struct":["PalletInfo","Runtime","RuntimeGenesisConfig","RuntimeOrigin"],"type":["AllPalletsWithSystem","AllPalletsWithoutSystem","Example","System","SystemConfig"]};
|
||||
+155
File diff suppressed because one or more lines are too long
+180
File diff suppressed because one or more lines are too long
+166
File diff suppressed because one or more lines are too long
+168
File diff suppressed because one or more lines are too long
+2
@@ -0,0 +1,2 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="All pallets included in the runtime as a nested tuple of types."><title>AllPalletsWithSystem in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">AllPalletsWithSystem</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">AllPallets<wbr>With<wbr>System</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type AllPalletsWithSystem = (<a class="type" href="type.System.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::System">System</a>, <a class="type" href="type.Example.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example">Example</a>);</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>All pallets included in the runtime as a nested tuple of types.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="All pallets included in the runtime as a nested tuple of types. Excludes the System pezpallet."><title>AllPalletsWithoutSystem in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">AllPalletsWithoutSystem</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">AllPallets<wbr>Without<wbr>System</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type AllPalletsWithoutSystem = (<a class="type" href="type.Example.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example">Example</a>,);</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>All pallets included in the runtime as a nested tuple of types.
|
||||
Excludes the System pezpallet.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
+1
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Example` type in crate `pezkuwi_sdk_docs`."><title>Example in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Example</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Example</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">Example</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type Example = <a class="struct" href="../pezpallet/struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet">Pezpallet</a><<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>>;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Example(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime/pezpallet/struct.Pezpallet.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example" async></script></section></div></main></body></html>
|
||||
+1
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `System` type in crate `pezkuwi_sdk_docs`."><title>System in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">System</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">System</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">System</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type System = Pezpallet<<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>>;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct System(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezframe_system/pezpallet/struct.Pezpallet.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::System" async></script></section></div></main></body></html>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `SystemConfig` type in crate `pezkuwi_sdk_docs`."><title>SystemConfig in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">SystemConfig</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">System<wbr>Config</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3><h3><a href="#fields">Fields</a></h3><ul class="block field"><li><a href="#structfield._config" title="_config">_config</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">System<wbr>Config</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type SystemConfig = GenesisConfig<<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>>;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct SystemConfig {
|
||||
pub _config: <a class="struct" href="https://doc.rust-lang.org/1.91.1/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>>,
|
||||
}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield._config" class="structfield section-header"><a href="#structfield._config" class="anchor field">§</a><code>_config: <a class="struct" href="https://doc.rust-lang.org/1.91.1/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a><<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>></code></span><script src="../../../../type.impl/pezframe_system/pezpallet/struct.GenesisConfig.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::SystemConfig" async></script></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"mod":["pezpallet","runtime"]};
|
||||
@@ -0,0 +1,224 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="An introduction to the Pezkuwi SDK. Read this module to learn about the structure of the SDK, the tools that are provided as a part of it, and to gain a high level understanding of each."><title>pezkuwi_sdk_docs::pezkuwi_sdk - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezkuwi_sdk</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezkuwi_<wbr>sdk</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#pezkuwi-sdk" title="Pezkuwi SDK">Pezkuwi SDK</a><ul><li><a href="#getting-started" title="Getting Started">Getting Started</a></li><li><a href="#components" title="Components">Components</a></li><li><a href="#notable-upstream-crates" title="Notable Upstream Crates">Notable Upstream Crates</a></li><li><a href="#trophy-section-notable-downstream-projects" title="Trophy Section: Notable Downstream Projects">Trophy Section: Notable Downstream Projects</a></li></ul></li></ul><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate pezkuwi_<wbr>sdk_<wbr>docs</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">pezkuwi_sdk_docs</a></div><h1>Module <span>pezkuwi_<wbr>sdk</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/pezkuwi_sdk_docs/pezkuwi_sdk/mod.rs.html#1-158">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An introduction to the Pezkuwi SDK. Read this module to learn about the structure of the SDK,
|
||||
the tools that are provided as a part of it, and to gain a high level understanding of each.</p>
|
||||
<h2 id="pezkuwi-sdk"><a class="doc-anchor" href="#pezkuwi-sdk">§</a>Pezkuwi SDK</h2>
|
||||
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk">Pezkuwi SDK</a> provides the main resources needed to
|
||||
start building on the <a href="https://pezkuwichain.io/">Pezkuwi network</a>, a scalable, multi-chain
|
||||
blockchain platform that enables different blockchains to securely interoperate.</p>
|
||||
<p><a href="https://exchange.pezkuwichain.app/"><img src="https://img.shields.io/badge/StackExchange-Pezkuwi%20and%20Bizinikiwi-222222?logo=stackexchange" alt="StackExchange" /></a></p>
|
||||
<p><a href="https://github.com/Awsmdot/awesome-dot"><img src="https://img.shields.io/badge/pezkuwi-awesome-e6007a?logo=pezkuwi" alt="awesomeDot" /></a>
|
||||
<a href="https://wiki.network.pezkuwichain.io/"><img src="https://img.shields.io/badge/pezkuwi-wiki-e6007a?logo=pezkuwi" alt="wiki" /></a>
|
||||
<a href="https://forum.network.pezkuwichain.io/"><img src="https://img.shields.io/badge/pezkuwi-forum-e6007a?logo=pezkuwi" alt="forum" /></a></p>
|
||||
<p><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/rfcs"><img src="https://img.shields.io/badge/fellowship-RFCs-e6007a?logo=pezkuwi" alt="RFCs" /></a>
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes"><img src="https://img.shields.io/badge/fellowship-runtimes-e6007a?logo=pezkuwi" alt="Runtime" /></a>
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/manifesto/blob/main/manifesto.pdf"><img src="https://img.shields.io/badge/fellowship-manifesto-e6007a?logo=pezkuwi" alt="Manifesto" /></a></p>
|
||||
<h3 id="getting-started"><a class="doc-anchor" href="#getting-started">§</a>Getting Started</h3>
|
||||
<p>The primary way to get started with the Pezkuwi SDK is to start writing a FRAME-based runtime.
|
||||
See:</p>
|
||||
<ul>
|
||||
<li><a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>, to understand what is Pezkuwi as a development platform.</li>
|
||||
<li><a href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a>, for an overview of what Bizinikiwi as the main blockchain framework of Pezkuwi
|
||||
SDK.</li>
|
||||
<li><a href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>, to learn about how to write blockchain applications aka. “App Chains”.</li>
|
||||
<li>Continue with the <a href="../index.html#getting-started" title="mod pezkuwi_sdk_docs"><code>pezkuwi_sdk_docs</code>’s “getting started”</a>.</li>
|
||||
</ul>
|
||||
<h3 id="components"><a class="doc-anchor" href="#components">§</a>Components</h3><h5 id="bizinikiwi"><a class="doc-anchor" href="#bizinikiwi">§</a>Bizinikiwi</h5>
|
||||
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/LICENSE-APACHE2"><img src="https://img.shields.io/badge/License-GPL3%2FApache2.0-blue" alt="Bizinikiwi-license" /></a>
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi"><img src="https://img.shields.io/badge/github-bizinikiwi-2324CC85" alt="GitHub Repo" /></a></p>
|
||||
<p><a href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a> is the base blockchain framework used to power the Pezkuwi SDK. It is a full
|
||||
toolkit to create sovereign blockchains, including but not limited to those which connect to
|
||||
Pezkuwi as teyrchains.</p>
|
||||
<h5 id="frame"><a class="doc-anchor" href="#frame">§</a>FRAME</h5>
|
||||
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/LICENSE-APACHE2"><img src="https://img.shields.io/badge/License-Apache2.0-blue" alt="Bizinikiwi-license" /></a>
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/pezframe"><img src="https://img.shields.io/badge/github-frame-2324CC85" alt="GitHub Repo" /></a></p>
|
||||
<p><a href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a> is the framework used to create Bizinikiwi-based application logic, aka. runtimes.
|
||||
Learn more about the distinction of a runtime and node in
|
||||
<a href="../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>reference_docs::wasm_meta_protocol</code></a>.</p>
|
||||
<h5 id="pezcumulus"><a class="doc-anchor" href="#pezcumulus">§</a>Pezcumulus</h5>
|
||||
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezcumulus/LICENSE"><img src="https://img.shields.io/badge/License-GPL3-blue" alt="Pezcumulus-license" /></a>
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezcumulus"><img src="https://img.shields.io/badge/github-pezcumulus-white" alt="GitHub Repo" /></a></p>
|
||||
<p><a href="pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus"><code>pezcumulus</code></a> transforms FRAME-based runtimes into Pezkuwi-compatible teyrchain runtimes, and
|
||||
Bizinikiwi-based nodes into Pezkuwi/Teyrchain-compatible nodes.</p>
|
||||
<h5 id="xcm"><a class="doc-anchor" href="#xcm">§</a>XCM</h5>
|
||||
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/LICENSE"><img src="https://img.shields.io/badge/License-GPL3-blue" alt="XCM-license" /></a>
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/xcm"><img src="https://img.shields.io/badge/github-XCM-e6007a?logo=pezkuwi" alt="GitHub Repo" /></a></p>
|
||||
<p><a href="xcm/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::xcm"><code>xcm</code></a>, short for “cross consensus message”, is the primary format that is used for
|
||||
communication between teyrchains, but is intended to be extensible to other use cases as well.</p>
|
||||
<h5 id="pezkuwi"><a class="doc-anchor" href="#pezkuwi">§</a>Pezkuwi</h5>
|
||||
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/LICENSE"><img src="https://img.shields.io/badge/License-GPL3-blue" alt="Pezkuwi-license" /></a>
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi"><img src="https://img.shields.io/badge/github-pezkuwi-e6007a?logo=pezkuwi" alt="GitHub Repo" /></a></p>
|
||||
<p><a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a> is an implementation of a Pezkuwi node in Rust, by <code>@paritytech</code>. The Pezkuwi
|
||||
runtimes are located under the
|
||||
<a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes"><code>pezkuwi-fellows/runtimes</code></a> repository.</p>
|
||||
<h4 id="binaries"><a class="doc-anchor" href="#binaries">§</a>Binaries</h4>
|
||||
<p>The main binaries that are part of the Pezkuwi SDK are:</p>
|
||||
<ul>
|
||||
<li><a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>: The Pezkuwi relay chain node binary, as noted above.</li>
|
||||
<li><a href="https://crates.io/crates/pezkuwi-omni-node"><code>pezkuwi-omni-node</code></a>: A white-labeled teyrchain collator node. See more in
|
||||
<a href="../reference_docs/omni_node/index.html" title="mod pezkuwi_sdk_docs::reference_docs::omni_node"><code>crate::reference_docs::omni_node</code></a>.</li>
|
||||
<li><a href="https://crates.io/crates/pezkuwi-teyrchain-bin"><code>pezkuwi-teyrchain-bin</code></a>: The collator node used to run collators for all Pezkuwi system
|
||||
teyrchains.</li>
|
||||
<li><a href="https://crates.io/crates/frame-omni-bencher"><code>frame-omni-bencher</code></a>: a benchmarking tool for FRAME-based runtimes. Nodes typically contain
|
||||
a
|
||||
<code>benchmark</code> subcommand that does the same.</li>
|
||||
<li>[<code>chain_spec_builder</code>]: Utility to build chain-specs Nodes typically contain a <code>build-spec</code>
|
||||
subcommand that does the same.</li>
|
||||
<li>[<code>pez_subkey</code>]: Bizinikiwi’s key management utility.</li>
|
||||
<li><a href="node_cli"><code>bizinikiwi-node</code></a> is an extensive bizinikiwi node that contains the superset of
|
||||
all runtime and node side features. The corresponding runtime, called
|
||||
[<code>pez_kitchensink_runtime</code>] contains all of the modules that are provided with <code>FRAME</code>. This
|
||||
node and runtime is only used for testing and demonstration.</li>
|
||||
</ul>
|
||||
<h4 id="summary"><a class="doc-anchor" href="#summary">§</a>Summary</h4>
|
||||
<p>The following diagram summarizes how some of the components of Pezkuwi SDK work together:</p>
|
||||
<pre class="mermaid" style="text-align:center;background: transparent;">
|
||||
flowchart LR
|
||||
subgraph PezkuwiSDKChain[A Pezkuwi SDK-based blockchain]
|
||||
Node
|
||||
Runtime
|
||||
end
|
||||
|
||||
FRAME -.-> Runtime
|
||||
PezkuwiSDK[Pezkuwi SDK Node Libraries] -.-> Node
|
||||
|
||||
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: false,
|
||||
theme: 'dark',
|
||||
flowchart: { useMaxWidth: true, htmlLabels: true },
|
||||
suppressErrorRendering: true
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const elements = document.querySelectorAll('.mermaid');
|
||||
for (const el of elements) {
|
||||
const code = el.textContent;
|
||||
try {
|
||||
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
|
||||
el.innerHTML = svg;
|
||||
} catch (e) {
|
||||
// On error, show as styled code block
|
||||
el.style.fontFamily = 'monospace';
|
||||
el.style.whiteSpace = 'pre';
|
||||
el.style.background = '#1e293b';
|
||||
el.style.padding = '1rem';
|
||||
el.style.borderRadius = '8px';
|
||||
el.style.color = '#94a3b8';
|
||||
el.style.fontSize = '0.85rem';
|
||||
el.style.border = '1px solid #334155';
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<p>A Bizinikiwi-based chain is a blockchain composed of a runtime and a node. As noted above, the
|
||||
runtime is the application logic of the blockchain, and the node is everything else.
|
||||
See <a href="../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>reference_docs::wasm_meta_protocol</code></a> for an in-depth explanation of this. The
|
||||
former is built with <a href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>, and the latter is built with rest of Bizinikiwi.</p>
|
||||
<blockquote>
|
||||
<p>You can think of a Bizinikiwi-based chain as a white-labeled blockchain.</p>
|
||||
</blockquote>
|
||||
<pre class="mermaid" style="text-align:center;background: transparent;">
|
||||
flowchart LR
|
||||
|
||||
subgraph Pezkuwi[The Pezkuwi Relay Chain]
|
||||
PezkuwiNode[Pezkuwi Node]
|
||||
PezkuwiRuntime[Pezkuwi Runtime]
|
||||
end
|
||||
|
||||
FRAME -.-> PezkuwiRuntime
|
||||
PezkuwiSDK[Pezkuwi SDK Node Libraries] -.-> PezkuwiNode
|
||||
|
||||
|
||||
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: false,
|
||||
theme: 'dark',
|
||||
flowchart: { useMaxWidth: true, htmlLabels: true },
|
||||
suppressErrorRendering: true
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const elements = document.querySelectorAll('.mermaid');
|
||||
for (const el of elements) {
|
||||
const code = el.textContent;
|
||||
try {
|
||||
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
|
||||
el.innerHTML = svg;
|
||||
} catch (e) {
|
||||
// On error, show as styled code block
|
||||
el.style.fontFamily = 'monospace';
|
||||
el.style.whiteSpace = 'pre';
|
||||
el.style.background = '#1e293b';
|
||||
el.style.padding = '1rem';
|
||||
el.style.borderRadius = '8px';
|
||||
el.style.color = '#94a3b8';
|
||||
el.style.fontSize = '0.85rem';
|
||||
el.style.border = '1px solid #334155';
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<p>Pezkuwi is itself a Bizinikiwi-based chain, composed of the exact same two components. It has
|
||||
specialized logic in both the node and the runtime side, but it is not “special” in any way.</p>
|
||||
<p>A teyrchain is a “special” Bizinikiwi-based chain, whereby both the node and the runtime
|
||||
components have became “Pezkuwi-aware” using Pezcumulus.</p>
|
||||
<pre class="mermaid" style="text-align:center;background: transparent;">
|
||||
flowchart LR
|
||||
subgraph TeyrChain[A Pezkuwi TeyrChain]
|
||||
TeyrChainNode[TeyrChain Node]
|
||||
TeyrChainRuntime[TeyrChain Runtime]
|
||||
end
|
||||
|
||||
FRAME -.-> TeyrChainRuntime
|
||||
PezkuwiSDK[Pezkuwi SDK Node Libraries] -.-> TeyrChainNode
|
||||
|
||||
CumulusC[Pezcumulus Node Libraries] -.-> TeyrChainNode
|
||||
CumulusR[Pezcumulus Runtime Libraries] -.-> TeyrChainRuntime
|
||||
|
||||
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: false,
|
||||
theme: 'dark',
|
||||
flowchart: { useMaxWidth: true, htmlLabels: true },
|
||||
suppressErrorRendering: true
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const elements = document.querySelectorAll('.mermaid');
|
||||
for (const el of elements) {
|
||||
const code = el.textContent;
|
||||
try {
|
||||
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
|
||||
el.innerHTML = svg;
|
||||
} catch (e) {
|
||||
// On error, show as styled code block
|
||||
el.style.fontFamily = 'monospace';
|
||||
el.style.whiteSpace = 'pre';
|
||||
el.style.background = '#1e293b';
|
||||
el.style.padding = '1rem';
|
||||
el.style.borderRadius = '8px';
|
||||
el.style.color = '#94a3b8';
|
||||
el.style.fontSize = '0.85rem';
|
||||
el.style.border = '1px solid #334155';
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<h3 id="notable-upstream-crates"><a class="doc-anchor" href="#notable-upstream-crates">§</a>Notable Upstream Crates</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/pezkuwichain/parity-scale-codec"><code>parity-scale-codec</code></a></li>
|
||||
<li><a href="https://github.com/pezkuwichain/parity-db"><code>parity-db</code></a></li>
|
||||
<li><a href="https://github.com/paritytech/trie"><code>trie</code></a></li>
|
||||
<li><a href="https://github.com/paritytech/parity-common"><code>parity-common</code></a></li>
|
||||
</ul>
|
||||
<h3 id="trophy-section-notable-downstream-projects"><a class="doc-anchor" href="#trophy-section-notable-downstream-projects">§</a>Trophy Section: Notable Downstream Projects</h3>
|
||||
<p>A list of projects and tools in the blockchain ecosystem that one way or another use parts of
|
||||
the Pezkuwi SDK:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/availproject/avail">Avail</a></li>
|
||||
<li><a href="https://iohk.io/en/blog/posts/2023/11/03/partner-chains-are-coming-to-cardano/">Cardano Partner Chains</a></li>
|
||||
<li><a href="https://github.com/keep-starknet-strange/madara">Starknet’s Madara Sequencer</a></li>
|
||||
<li><a href="https://polymesh.network/">Polymesh</a></li>
|
||||
</ul>
|
||||
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi">bizinikiwi</a></dt><dd>Learn about Bizinikiwi, the main blockchain framework used in the Pezkuwi ecosystem.</dd><dt><a class="mod" href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">frame_<wbr>runtime</a></dt><dd>Learn about FRAME, the framework used to build Bizinikiwi runtimes.</dd><dt><a class="mod" href="pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus">pezcumulus</a></dt><dd>Learn about Pezcumulus, the framework that transforms <a href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a>-based chains into
|
||||
<a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>-enabled teyrchains.</dd><dt><a class="mod" href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi">pezkuwi</a></dt><dd>Learn about Pezkuwi as a platform.</dd><dt><a class="mod" href="smart_contracts/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::smart_contracts">smart_<wbr>contracts</a></dt><dd>Learn about different ways through which smart contracts can be utilized on top of Bizinikiwi,
|
||||
and in the Pezkuwi ecosystem.</dd><dt><a class="mod" href="templates/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::templates">templates</a></dt><dd>Index of all the templates that can act as first scaffold for a new project.</dd><dt><a class="mod" href="xcm/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::xcm">xcm</a></dt><dd>Learn about XCM, the de-facto communication language between different consensus systems.</dd></dl></section></div></main></body></html>
|
||||
@@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about Pezcumulus, the framework that transforms `bizinikiwi`-based chains into `pezkuwi`-enabled teyrchains."><title>pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezcumulus</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezcumulus</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#pezcumulus" title="Pezcumulus">Pezcumulus</a><ul><li><a href="#example-runtime" title="Example: Runtime">Example: Runtime</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>pezcumulus</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/pezcumulus.rs.html#1-130">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about Pezcumulus, the framework that transforms <a href="../bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a>-based chains into
|
||||
<a href="../pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>-enabled teyrchains.</p>
|
||||
<h2 id="pezcumulus"><a class="doc-anchor" href="#pezcumulus">§</a>Pezcumulus</h2>
|
||||
<p>Bizinikiwi provides a framework (<a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">FRAME</a>) through which a blockchain node and runtime can easily
|
||||
be created. Pezcumulus aims to extend the same approach to creation of Pezkuwi teyrchains.</p>
|
||||
<blockquote>
|
||||
<p>Pezcumulus clouds are shaped sort of like dots; together they form a system that is intricate,
|
||||
beautiful and functional.</p>
|
||||
</blockquote>
|
||||
<h3 id="example-runtime"><a class="doc-anchor" href="#example-runtime">§</a>Example: Runtime</h3>
|
||||
<p>A Pezcumulus-based runtime is fairly similar to other <a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">FRAME</a>-based runtimes. Most notably, the
|
||||
following changes are applied to a normal FRAME-based runtime to make it a Pezcumulus-based
|
||||
runtime:</p>
|
||||
<h5 id="pezcumulus-pallets"><a class="doc-anchor" href="#pezcumulus-pallets">§</a>Pezcumulus Pallets</h5>
|
||||
<p>A teyrchain runtime should use a number of pallets that are provided by Pezcumulus and
|
||||
Bizinikiwi. Notably:</p>
|
||||
<ul>
|
||||
<li><a href="pezframe::prelude::pezframe_system"><code>pezframe-system</code></a>, like all FRAME-based runtimes.</li>
|
||||
<li>[<code>pezcumulus_pezpallet_teyrchain_system</code>]</li>
|
||||
<li>[<code>teyrchain_info</code>]</li>
|
||||
</ul>
|
||||
|
||||
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">mod </span>system_pallets {
|
||||
<span class="kw">use super</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="attr">#[derive_impl(pezframe_system::config_preludes::TestDefaultConfig)]
|
||||
</span><span class="kw">impl </span>pezframe_system::Config <span class="kw">for </span>Runtime {
|
||||
<span class="kw">type </span>Block = MockBlock<<span class="self">Self</span>>;
|
||||
<span class="kw">type </span>OnSetCode = pezcumulus_pezpallet_teyrchain_system::TeyrchainSetCode<<span class="self">Self</span>>;
|
||||
}
|
||||
|
||||
<span class="kw">impl </span>pezcumulus_pezpallet_teyrchain_system::Config <span class="kw">for </span>Runtime {
|
||||
<span class="kw">type </span>RuntimeEvent = RuntimeEvent;
|
||||
<span class="kw">type </span>OnSystemEvent = ();
|
||||
<span class="kw">type </span>SelfParaId = teyrchain_info::Pezpallet<Runtime>;
|
||||
<span class="kw">type </span>OutboundXcmpMessageSource = ();
|
||||
<span class="kw">type </span>XcmpMessageHandler = ();
|
||||
<span class="kw">type </span>ReservedDmpWeight = ();
|
||||
<span class="kw">type </span>ReservedXcmpWeight = ();
|
||||
<span class="kw">type </span>CheckAssociatedRelayNumber =
|
||||
pezcumulus_pezpallet_teyrchain_system::RelayNumberMonotonicallyIncreases;
|
||||
<span class="kw">type </span>ConsensusHook = pezcumulus_pezpallet_aura_ext::FixedVelocityConsensusHook<
|
||||
Runtime,
|
||||
<span class="number">6000</span>, <span class="comment">// relay chain block time
|
||||
</span><span class="number">1</span>,
|
||||
<span class="number">1</span>,
|
||||
>;
|
||||
<span class="kw">type </span>WeightInfo = ();
|
||||
<span class="kw">type </span>DmpQueue = pezframe::traits::EnqueueWithOrigin<(), pezsp_core::ConstU8<<span class="number">0</span>>>;
|
||||
<span class="kw">type </span>RelayParentOffset = ConstU32<<span class="number">0</span>>;
|
||||
}
|
||||
|
||||
<span class="kw">impl </span>teyrchain_info::Config <span class="kw">for </span>Runtime {}
|
||||
}</code></pre></div>
|
||||
<p>Given that all Pezcumulus-based runtimes use a simple Aura-based consensus mechanism, the
|
||||
following pallets also need to be added:</p>
|
||||
<ul>
|
||||
<li>[<code>pezpallet_timestamp</code>]</li>
|
||||
<li>[<code>pezpallet_aura</code>]</li>
|
||||
<li>[<code>pezcumulus_pezpallet_aura_ext</code>]</li>
|
||||
</ul>
|
||||
|
||||
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">mod </span>consensus_pallets {
|
||||
<span class="kw">use super</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">impl </span>pezpallet_aura::Config <span class="kw">for </span>Runtime {
|
||||
<span class="kw">type </span>AuthorityId = AuraId;
|
||||
<span class="kw">type </span>DisabledValidators = ();
|
||||
<span class="kw">type </span>MaxAuthorities = ConstU32<<span class="number">100_000</span>>;
|
||||
<span class="kw">type </span>AllowMultipleBlocksPerSlot = ConstBool<<span class="bool-val">false</span>>;
|
||||
<span class="kw">type </span>SlotDuration = pezpallet_aura::MinimumPeriodTimesTwo<<span class="self">Self</span>>;
|
||||
}
|
||||
|
||||
<span class="attr">#[derive_impl(pezpallet_timestamp::config_preludes::TestDefaultConfig)]
|
||||
</span><span class="kw">impl </span>pezpallet_timestamp::Config <span class="kw">for </span>Runtime {}
|
||||
|
||||
<span class="kw">impl </span>pezcumulus_pezpallet_aura_ext::Config <span class="kw">for </span>Runtime {}
|
||||
}</code></pre></div>
|
||||
<p>Finally, a separate macro, similar to
|
||||
<a href="pezframe::runtime::prelude::impl_runtime_apis"><code>impl_runtime_api</code></a>, which creates the default set
|
||||
of runtime APIs, will generate the teyrchain runtime’s validation runtime API, also known as
|
||||
teyrchain validation function (PVF). Without this API, the relay chain is unable to validate
|
||||
blocks produced by our teyrchain.</p>
|
||||
|
||||
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="macro">pezcumulus_pezpallet_teyrchain_system::register_validate_block!</span> {
|
||||
Runtime = Runtime,
|
||||
BlockExecutor = pezcumulus_pezpallet_aura_ext::BlockExecutor::<Runtime, Executive>,
|
||||
}</code></pre></div>
|
||||
<hr />
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {};
|
||||
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about Pezkuwi as a platform."><title>pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezkuwi</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezkuwi</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#pezkuwi" title="Pezkuwi">Pezkuwi</a><ul><li><a href="#learn-more-and-get-involved" title="Learn More and Get Involved">Learn More and Get Involved</a></li><li><a href="#alternative-node-implementations-" title="Alternative Node Implementations 🌈">Alternative Node Implementations 🌈</a></li><li><a href="#platform" title="Platform">Platform</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>pezkuwi</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/pezkuwi.rs.html#1-96">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about Pezkuwi as a platform.</p>
|
||||
<h2 id="pezkuwi"><a class="doc-anchor" href="#pezkuwi">§</a>Pezkuwi</h2>
|
||||
<p>Implementation of the Pezkuwi node/host in Rust.</p>
|
||||
<h3 id="learn-more-and-get-involved"><a class="doc-anchor" href="#learn-more-and-get-involved">§</a>Learn More and Get Involved</h3>
|
||||
<ul>
|
||||
<li><a href="https://forum.network.pezkuwichain.io/">Pezkuwi Forum</a></li>
|
||||
<li><a href="https://teyrchains.info/">Pezkuwi Teyrchains</a></li>
|
||||
<li><a href="https://subscan.io/">Pezkuwi (multi-chain) Explorer: Subscan</a></li>
|
||||
<li>Pezkuwi Fellowship
|
||||
<ul>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/manifesto/blob/main/manifesto.pdf">Manifesto</a></li>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes">Runtimes</a></li>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/rfcs">RFCs</a></li>
|
||||
<li><a href="https://pezkuwi-fellows.github.io/dashboard/">Dashboard</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="http://spec.pezkuwi.network">Pezkuwi Specs</a></li>
|
||||
<li><a href="https://docs.pezkuwichain.io/sdk/book/">The Pezkuwi Teyrchain Host Implementers’ Guide</a></li>
|
||||
<li><a href="https://pezkuwichain.io/papers/">Pezkuwi papers</a></li>
|
||||
<li><a href="https://graypaper.com">JAM Graypaper</a></li>
|
||||
</ul>
|
||||
<h3 id="alternative-node-implementations-"><a class="doc-anchor" href="#alternative-node-implementations-">§</a>Alternative Node Implementations 🌈</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.rs/crate/smoldot-light/latest">Smoldot</a>. Pezkuwi light node/client.</li>
|
||||
<li><a href="https://github.com/qdrvm/kagome">KAGOME</a>. C++ implementation of the Pezkuwi host.</li>
|
||||
<li><a href="https://github.com/ChainSafe/gossamer">Gossamer</a>. Golang implementation of the Pezkuwi host.</li>
|
||||
</ul>
|
||||
<h3 id="platform"><a class="doc-anchor" href="#platform">§</a>Platform</h3>
|
||||
<p>In this section, we examine what platform Pezkuwi exactly provides to developers.</p>
|
||||
<h4 id="pezkuwi-white-paper"><a class="doc-anchor" href="#pezkuwi-white-paper">§</a>Pezkuwi White Paper</h4>
|
||||
<p>The original vision of Pezkuwi (everything in the whitepaper, which was eventually called
|
||||
<strong>Pezkuwi 1.0</strong>) revolves around the following arguments:</p>
|
||||
<ul>
|
||||
<li>Future is multi-chain, because we need different chains with different specialization to
|
||||
achieve widespread goals.</li>
|
||||
<li>In other words, no single chain is good enough to achieve all goals.</li>
|
||||
<li>A multi-chain future will inadvertently suffer from fragmentation of economic security.
|
||||
<ul>
|
||||
<li>This stake fragmentation will make communication over consensus system with varying security
|
||||
levels inherently unsafe.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Pezkuwi’s answer to the above is:</p>
|
||||
<blockquote>
|
||||
<p>The chains of the future must have a way to share their economic security, whilst maintaining
|
||||
their execution and governance sovereignty. These chains are called “Teyrchains”.</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li>Shared Security: The idea of shared economic security sits at the core of Pezkuwi. Pezkuwi
|
||||
enables different teyrchains to pool their economic security from Pezkuwi (i.e. “<em>Relay
|
||||
Chain</em>”).</li>
|
||||
<li>(heterogenous) Sharded Execution: Yet, each teyrchain is free to have its own execution logic
|
||||
(runtime), which also encompasses governance and sovereignty. Moreover, Pezkuwi ensures the
|
||||
correct execution of all teyrchains, without having all of its validators re-execute all
|
||||
teyrchain blocks. When seen from this perspective, Pezkuwi achieves the ability to verify
|
||||
the validity of the block execution of multiple teyrchains using the same set of validators as
|
||||
the Relay Chain. In practice, this means that the shards (teyrchains) share the same economic
|
||||
security as the Relay Chain.
|
||||
Learn about this process called <a href="https://pezkuwichain.io/blog/pezkuwi-v1-0-sharding-and-economic-security#approval-checking-and-finality">Approval Checking</a>.</li>
|
||||
<li>A framework to build blockchains: In order to materialize the ecosystem of teyrchains, an easy
|
||||
blockchain framework must exist. This is <a href="../bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi">Bizinikiwi</a>,
|
||||
<a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">FRAME</a> and <a href="../pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus">Pezcumulus</a>.</li>
|
||||
<li>A communication language between blockchains: In order for these blockchains to communicate,
|
||||
they need a shared language. <a href="../xcm/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::xcm">XCM</a> is one such language, and the one
|
||||
that is most endorsed in the Pezkuwi ecosystem.</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<p>Note that the interoperability promised by Pezkuwi is unparalleled in that any two teyrchains
|
||||
connected to Pezkuwi have the same security and can have much better guarantees about the
|
||||
security of the recipient of any message.
|
||||
Bridges enable transaction and information flow between different consensus systems, crucial
|
||||
for Pezkuwi’s multi-chain architecture. However, they can become the network’s most
|
||||
vulnerable points. If a bridge’s security measures are weaker than those of the connected
|
||||
blockchains, it poses a significant risk. Attackers might exploit these weaknesses to launch
|
||||
attacks such as theft or disruption of services.</p>
|
||||
</blockquote>
|
||||
<p>Pezkuwi delivers the above vision, alongside a flexible means for teyrchains to schedule
|
||||
themselves with the Relay Chain. To achieve this, Pezkuwi has been developed with an
|
||||
architecture similar to that of a computer. Pezkuwi Relay Chain has a number of “cores”. Each
|
||||
core is (in simple terms) capable of progressing 1 teyrchain at a time. For example, a teyrchain
|
||||
can schedule itself on a single core for 5 relay chain blocks.</p>
|
||||
<p>Within the scope of Pezkuwi 1.x, two main scheduling ways have been considered:</p>
|
||||
<ul>
|
||||
<li>Long term Teyrchains, obtained through locking a sum of HEZ in an auction system.</li>
|
||||
<li>On-demand Teyrchains, purchased through paying HEZ to the relay-chain whenever needed.</li>
|
||||
</ul>
|
||||
<h4 id="the-future"><a class="doc-anchor" href="#the-future">§</a>The Future</h4>
|
||||
<p>After delivering Pezkuwi 1.x, the future of Pezkuwi as a protocol and platform is in the hands
|
||||
of the community and the fellowship. This is happening most notable through the RFC process.
|
||||
Some of the RFCs that do alter Pezkuwi as a platform and have already passed are as follows:</p>
|
||||
<ul>
|
||||
<li>RFC#1: <a href="https://github.com/pezkuwichain/pezkuwi-fellows/RFCs/blob/main/text/0001-agile-coretime.md">Agile-coretime</a>:
|
||||
Agile periodic-sale-based model for assigning Coretime on the Pezkuwi Ubiquitous Computer.</li>
|
||||
<li>RFC#5: <a href="https://github.com/pezkuwichain/pezkuwi-fellows/RFCs/blob/main/text/0005-coretime-interface.md">Coretime-interface</a>:
|
||||
Interface for manipulating the usage of cores on the Pezkuwi Ubiquitous Computer.</li>
|
||||
</ul>
|
||||
<p>Learn more about <a href="https://wiki.network.pezkuwichain.io/docs/pezkuwi-direction#pezkuwi-as-a-computational-resource">Pezkuwi as a Computational Resource</a>.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {};
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"mod":["bizinikiwi","frame_runtime","pezcumulus","pezkuwi","smart_contracts","templates","xcm"]};
|
||||
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about different ways through which smart contracts can be utilized on top of Bizinikiwi, and in the Pezkuwi ecosystem."><title>pezkuwi_sdk_docs::pezkuwi_sdk::smart_contracts - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module smart_contracts</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module smart_<wbr>contracts</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#smart-contracts" title="Smart Contracts">Smart Contracts</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>smart_<wbr>contracts</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/smart_contracts.rs.html#1-9">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about different ways through which smart contracts can be utilized on top of Bizinikiwi,
|
||||
and in the Pezkuwi ecosystem.</p>
|
||||
<h2 id="smart-contracts"><a class="doc-anchor" href="#smart-contracts">§</a>Smart Contracts</h2>
|
||||
<p>TODO: @cmichi <a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/304">https://github.com/pezkuwichain/pezkuwi-sdk/issues/304</a></p>
|
||||
<ul>
|
||||
<li>WASM and EVM based, pezpallet-contracts and pezpallet-evm.</li>
|
||||
<li>single-daap-chain, transition from ink! to FRAME.</li>
|
||||
<li>Link to <code>use.ink</code></li>
|
||||
<li>Link to <a href="../../reference_docs/runtime_vs_smart_contract/index.html" title="mod pezkuwi_sdk_docs::reference_docs::runtime_vs_smart_contract"><code>crate::reference_docs::runtime_vs_smart_contract</code></a>.</li>
|
||||
<li><a href="https://use.ink/migrate-ink-contracts-to-pezkuwi-frame-teyrchain/">https://use.ink/migrate-ink-contracts-to-pezkuwi-frame-teyrchain/</a></li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {};
|
||||
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Index of all the templates that can act as first scaffold for a new project."><title>pezkuwi_sdk_docs::pezkuwi_sdk::templates - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module templates</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module templates</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#templates" title="Templates">Templates</a><ul><li><a href="#internal" title="Internal">Internal</a></li><li><a href="#openzeppelin" title="OpenZeppelin">OpenZeppelin</a></li><li><a href="#pop-cli" title="POP-CLI">POP-CLI</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>templates</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/templates.rs.html#1-44">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Index of all the templates that can act as first scaffold for a new project.</p>
|
||||
<h2 id="templates"><a class="doc-anchor" href="#templates">§</a>Templates</h2>
|
||||
<p>This document enumerates a non-exhaustive list of templates that one can use to get started with
|
||||
pezkuwi-sdk.</p>
|
||||
<blockquote>
|
||||
<p>Know more tools/templates that are not listed here? please contribute them by opening a PR.</p>
|
||||
</blockquote>
|
||||
<h3 id="internal"><a class="doc-anchor" href="#internal">§</a>Internal</h3>
|
||||
<p>The following templates are maintained as a part of the <code>pezkuwi-sdk</code> repository:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/195"><code>minimal-template</code></a>: A minimal
|
||||
template that contains the least amount of features to be a functioning blockchain. Suitable
|
||||
for learning and testing.</li>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/195"><code>solochain-template</code></a>: Formerly known
|
||||
as “bizinikiwi-node-template”, is a white-labeled bizinikiwi-based blockchain (aka. solochain)
|
||||
that contains moderate features, such as a basic consensus engine and some FRAME pallets. This
|
||||
template can act as a good starting point for those who want to launch a solochain.</li>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-sdk-teyrchain-template"><code>teyrchain-template</code></a>:
|
||||
A teyrchain template ready to be connected to a relay-chain, such as <a href="https://github.com/paseo-network/.github">Paseo</a>
|
||||
, Dicle or Pezkuwi.</li>
|
||||
</ul>
|
||||
<p>Note that these templates are mirrored automatically from <a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/templates">this</a>
|
||||
directory of pezkuwi-sdk, therefore any changes to them should be made as a PR to this repo.</p>
|
||||
<h3 id="openzeppelin"><a class="doc-anchor" href="#openzeppelin">§</a>OpenZeppelin</h3>
|
||||
<p>In June 2023, OpenZeppelin was awarded a grant from the Pezkuwi
|
||||
treasury for building a number of Pezkuwi-sdk
|
||||
based templates. These templates are a great starting point for developers and newcomers.
|
||||
So far OpenZeppelin has released two templates, which have been fully <a href="https://github.com/pezkuwichain/pezkuwi-runtime-templates/tree/main/audits">audited</a>:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-runtime-templates?tab=readme-ov-file#generic-runtime-template"><code>generic-runtime-template</code></a>:
|
||||
A minimal template that has all the common pallets that teyrchains use with secure defaults.</li>
|
||||
<li><a href="https://github.com/pezkuwichain/pezkuwi-runtime-templates/tree/main?tab=readme-ov-file#evm-template"><code>evm-runtime-template</code></a>:
|
||||
This template has EVM compatibility out of the box and allows migrating your solidity contracts
|
||||
or EVM compatible dapps easily. It also uses 20 byte addresses like Ethereum and has some
|
||||
Account Abstraction support.</li>
|
||||
</ul>
|
||||
<h3 id="pop-cli"><a class="doc-anchor" href="#pop-cli">§</a>POP-CLI</h3>
|
||||
<p>Is a CLI tool capable of scaffolding a new pezkuwi-sdk-based project, possibly removing the
|
||||
need for templates.</p>
|
||||
<ul>
|
||||
<li><a href="https://pop.r0gue.io/cli/">https://pop.r0gue.io/cli/</a></li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {};
|
||||
@@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about XCM, the de-facto communication language between different consensus systems."><title>pezkuwi_sdk_docs::pezkuwi_sdk::xcm - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module xcm</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module xcm</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#xcm" title="XCM">XCM</a><ul><li><a href="#overview" title="Overview">Overview</a></li><li><a href="#in-pezkuwi-sdk" title="In Pezkuwi SDK">In Pezkuwi SDK</a></li><li><a href="#implementation" title="Implementation">Implementation</a></li><li><a href="#example" title="Example">Example</a></li><li><a href="#get-started" title="Get started">Get started</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>xcm</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/xcm.rs.html#1-70">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about XCM, the de-facto communication language between different consensus systems.</p>
|
||||
<h2 id="xcm"><a class="doc-anchor" href="#xcm">§</a>XCM</h2>
|
||||
<p>XCM, or Cross-Consensus Messaging, is a <strong>language</strong> to communicate <strong>intentions</strong> between
|
||||
<strong>consensus systems</strong>.</p>
|
||||
<h3 id="overview"><a class="doc-anchor" href="#overview">§</a>Overview</h3>
|
||||
<p>XCM is a standard, specification of which lives in the <a href="https://github.com/pezkuwichain/pezkuwi-fellows/xcm-format">xcm format repo</a>.
|
||||
It’s agnostic both in programming language and blockchain platform, which means it could be used
|
||||
in Rust in Pezkuwi, or in Go or C++ in any other platform like Cosmos or Ethereum.</p>
|
||||
<p>It enables different consensus systems to communicate with each other in an expressive manner.
|
||||
Consensus systems include blockchains, smart contracts, and any other state machine that
|
||||
achieves consensus in some way.</p>
|
||||
<p>XCM is executed on a virtual machine called the XCVM.
|
||||
Scripts can be written with the XCM language, which are often called XCMs, messages or XCM
|
||||
programs. Each program is a series of instructions, which get executed one after the other by
|
||||
the virtual machine. These instructions aim to encompass all major things users typically do in
|
||||
consensus systems. There are instructions on asset transferring, teleporting, locking, among
|
||||
others. New instructions are added and changes to the XCVM are made via the <a href="https://github.com/paritytech/xcm-format/blob/master/proposals/0032-process.md">RFC process</a>.</p>
|
||||
<h3 id="in-pezkuwi-sdk"><a class="doc-anchor" href="#in-pezkuwi-sdk">§</a>In Pezkuwi SDK</h3>
|
||||
<p>The Pezkuwi SDK allows for easily deploying sovereign blockchains from scratch, all very
|
||||
customizable. Dealing with many heterogeneous blockchains can be cumbersome.
|
||||
XCM allows all these blockchains to communicate with an agreed-upon language.
|
||||
As long as an implementation of the XCVM is implemented, the same XCM program can be executed in
|
||||
all blockchains and perform the same task.</p>
|
||||
<h3 id="implementation"><a class="doc-anchor" href="#implementation">§</a>Implementation</h3>
|
||||
<p>A ready-to-use Rust implementation lives in the <a href="https://github.com/pezkuwichain/pezkuwi-sdk/tree/main/pezkuwi/xcm">pezkuwi-sdk repo</a>,
|
||||
but will be moved to its own repo in the future.</p>
|
||||
<p>Its main components are:</p>
|
||||
<ul>
|
||||
<li><a href="::xcm"><code>xcm</code></a>: The definition of the basic types and instructions.</li>
|
||||
<li>[<code>xcm_executor</code>]: An implementation of the virtual machine to execute instructions.</li>
|
||||
<li>[<code>pezpallet_xcm</code>]: A FRAME pezpallet for interacting with the executor.</li>
|
||||
<li>[<code>xcm_builder</code>]: A collection of types to configure the executor.</li>
|
||||
<li>[<code>xcm_pez_simulator</code>]: A playground for trying out different XCM programs and executor
|
||||
configurations.</li>
|
||||
</ul>
|
||||
<h3 id="example"><a class="doc-anchor" href="#example">§</a>Example</h3>
|
||||
<p>To perform the very usual operation of transferring assets, the following XCM program can be
|
||||
used:</p>
|
||||
|
||||
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="attr">#[test]
|
||||
</span><span class="kw">fn </span>example_transfer() {
|
||||
<span class="kw">let </span>_transfer_program = Xcm::<()>(<span class="macro">vec!</span>[
|
||||
WithdrawAsset((Here, <span class="number">100u128</span>).into()),
|
||||
BuyExecution { fees: (Here, <span class="number">100u128</span>).into(), weight_limit: Unlimited },
|
||||
DepositAsset {
|
||||
assets: All.into(),
|
||||
beneficiary: AccountId32 { id: [<span class="number">0u8</span>; <span class="number">32</span>].into(), network: <span class="prelude-val">None </span>}.into(),
|
||||
},
|
||||
]);
|
||||
}</code></pre></div><h3 id="get-started"><a class="doc-anchor" href="#get-started">§</a>Get started</h3>
|
||||
<p>To learn how it works and to get started, go to the <a href="xcm_pez_docs">XCM docs</a>.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {};
|
||||
Reference in New Issue
Block a user