File tree Expand file tree Collapse file tree 3 files changed +43
-10
lines changed Expand file tree Collapse file tree 3 files changed +43
-10
lines changed Original file line number Diff line number Diff line change 20
20
#[ cfg( feature = "std" ) ]
21
21
use std:: fmt;
22
22
23
- use crate :: traits:: { ExtendedBlock , ExtendedHeader } ;
23
+ use crate :: traits:: { DaHeaderProvider , ExtendedBlock , ExtendedHeader } ;
24
24
use codec:: { Codec , Decode , Encode } ;
25
25
#[ cfg( feature = "serde" ) ]
26
26
use serde:: { Deserialize , Serialize } ;
@@ -146,5 +146,24 @@ where
146
146
> ,
147
147
Extrinsic : Member + Codec + traits:: Extrinsic + MaybeSerializeDeserialize ,
148
148
{
149
- type Header = Header ;
149
+ type DaHeader = Header ;
150
+ }
151
+
152
+ impl < Header , Extrinsic , Extension >
153
+ DaHeaderProvider <
154
+ <Header as sp_runtime:: traits:: Header >:: Number ,
155
+ <Header as sp_runtime:: traits:: Header >:: Hash ,
156
+ sp_runtime:: Digest ,
157
+ Extension ,
158
+ > for DaBlock < Header , Extrinsic >
159
+ where
160
+ Header : HeaderT
161
+ + ExtendedHeader <
162
+ <Header as sp_runtime:: traits:: Header >:: Number ,
163
+ <Header as sp_runtime:: traits:: Header >:: Hash ,
164
+ sp_runtime:: Digest ,
165
+ Extension ,
166
+ > ,
167
+ {
168
+ type DaHeader = Header ;
150
169
}
Original file line number Diff line number Diff line change 1
1
use codec:: { Codec , Decode } ;
2
- use sp_arithmetic:: traits:: AtLeast32BitUnsigned ;
3
- use sp_arithmetic:: traits:: Saturating ;
2
+ use sp_arithmetic:: traits:: { AtLeast32BitUnsigned , Saturating } ;
4
3
use sp_core:: U256 ;
5
4
use sp_std:: { convert:: TryFrom , fmt:: Debug , hash:: Hash as StdHash } ;
6
5
@@ -10,7 +9,9 @@ pub use get_app_id::*;
10
9
pub mod extended_header;
11
10
pub use extended_header:: * ;
12
11
12
+ #[ cfg( feature = "runtime" ) ]
13
13
pub mod extended_block;
14
+ #[ cfg( feature = "runtime" ) ]
14
15
pub use extended_block:: * ;
15
16
16
17
/// Header block number trait.
Original file line number Diff line number Diff line change 1
- #[ cfg( feature = "runtime" ) ]
2
1
use crate :: traits:: ExtendedHeader ;
3
- #[ cfg( feature = "runtime" ) ]
4
2
use sp_runtime:: {
5
3
traits:: { Block , Header } ,
6
4
Digest ,
7
5
} ;
8
6
9
- /// Extended block trait that extends Block to include ExtendedHeader in the header
10
- #[ cfg( feature = "runtime" ) ]
11
- pub trait ExtendedBlock < Extension > : Block {
12
- type Header : Header < Hash = Self :: Hash >
7
+ /// Extended Block trait that extends substrate primitive Block to include ExtendedHeader in the header
8
+ pub trait ExtendedBlock < Extension > :
9
+ Block
10
+ + DaHeaderProvider <
11
+ <<Self as Block >:: Header as Header >:: Number ,
12
+ <<Self as Block >:: Header as Header >:: Hash ,
13
+ Digest ,
14
+ Extension ,
15
+ DaHeader = <Self as ExtendedBlock < Extension > >:: DaHeader ,
16
+ >
17
+ {
18
+ type DaHeader : Header < Hash = Self :: Hash >
13
19
+ ExtendedHeader <
14
20
<<Self as Block >:: Header as Header >:: Number ,
15
21
<<Self as Block >:: Header as Header >:: Hash ,
16
22
Digest ,
17
23
Extension ,
18
24
> ;
19
25
}
26
+
27
+ // Note: This is a workaround for a compiler bug (https://github.com/rust-lang/rust/issues/96634)
28
+ // and should be removed when the compiler bug is fixed.
29
+ pub trait DaHeaderProvider < Number , Hash , Digest , Extension > {
30
+ /// DaHeader type.
31
+ type DaHeader : ExtendedHeader < Number , Hash , Digest , Extension > ;
32
+ }
You can’t perform that action at this time.
0 commit comments