1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#![cfg_attr(not(feature = "std"), no_std)]
use codec::{Decode, Encode};
pub use sp_application_crypto;
use sp_application_crypto::sr25519;
pub use sp_core::{hash::H256, RuntimeDebug};
use sp_runtime::traits::{BlakeTwo256, Extrinsic as ExtrinsicT, Verify};
#[derive(Clone, PartialEq, Eq, Encode, Decode, RuntimeDebug)]
#[cfg_attr(feature = "std", derive(parity_util_mem::MallocSizeOf))]
pub enum Extrinsic {
IncludeData(Vec<u8>),
StorageChange(Vec<u8>, Option<Vec<u8>>),
}
#[cfg(feature = "std")]
impl serde::Serialize for Extrinsic {
fn serialize<S>(&self, seq: S) -> Result<S::Ok, S::Error>
where
S: ::serde::Serializer,
{
self.using_encoded(|bytes| seq.serialize_bytes(bytes))
}
}
impl ExtrinsicT for Extrinsic {
type Call = Extrinsic;
type SignaturePayload = ();
fn is_signed(&self) -> Option<bool> {
if let Extrinsic::IncludeData(_) = *self {
Some(false)
} else {
Some(true)
}
}
fn new(call: Self::Call, _signature_payload: Option<Self::SignaturePayload>) -> Option<Self> {
Some(call)
}
}
pub type AccountSignature = sr25519::Signature;
pub type AccountId = <AccountSignature as Verify>::Signer;
pub type Hash = H256;
pub type BlockNumber = u64;
pub type Index = u64;
pub type DigestItem = sp_runtime::generic::DigestItem<H256>;
pub type Digest = sp_runtime::generic::Digest<H256>;
pub type Block = sp_runtime::generic::Block<Header, Extrinsic>;
pub type Header = sp_runtime::generic::Header<BlockNumber, BlakeTwo256>;
pub fn changes_trie_config() -> sp_core::ChangesTrieConfiguration {
sp_core::ChangesTrieConfiguration { digest_interval: 4, digest_levels: 2 }
}