@@ -70,7 +70,6 @@ use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
70
70
use pallet_session:: historical as session_historical;
71
71
use pallet_transaction_payment:: { CurrencyAdapter , FeeDetails , RuntimeDispatchInfo } ;
72
72
use sp_core:: { ConstU128 , OpaqueMetadata , H256 } ;
73
- use sp_mmr_primitives as mmr;
74
73
use sp_runtime:: {
75
74
create_runtime_str, generic, impl_opaque_keys,
76
75
traits:: {
@@ -1281,6 +1280,16 @@ impl pallet_beefy::Config for Runtime {
1281
1280
pallet_beefy:: EquivocationReportSystem < Self , Offences , Historical , ReportLongevity > ;
1282
1281
}
1283
1282
1283
+ /// MMR helper types.
1284
+ mod mmr {
1285
+ use super :: Runtime ;
1286
+ pub use pallet_mmr:: primitives:: * ;
1287
+
1288
+ pub type Leaf = <<Runtime as pallet_mmr:: Config >:: LeafData as LeafDataProvider >:: LeafData ;
1289
+ pub type Hashing = <Runtime as pallet_mmr:: Config >:: Hashing ;
1290
+ pub type Hash = <Hashing as sp_runtime:: traits:: Hash >:: Output ;
1291
+ }
1292
+
1284
1293
impl pallet_mmr:: Config for Runtime {
1285
1294
const INDEXING_PREFIX : & ' static [ u8 ] = mmr:: INDEXING_PREFIX ;
1286
1295
type Hashing = Keccak256 ;
@@ -1314,7 +1323,7 @@ impl BeefyDataProvider<H256> for ParasProvider {
1314
1323
. filter_map ( |id| Paras :: para_head ( & id) . map ( |head| ( id. into ( ) , head. 0 ) ) )
1315
1324
. collect ( ) ;
1316
1325
para_heads. sort ( ) ;
1317
- binary_merkle_tree:: merkle_root :: < < Runtime as pallet_mmr :: Config > :: Hashing , _ > (
1326
+ binary_merkle_tree:: merkle_root :: < mmr :: Hashing , _ > (
1318
1327
para_heads. into_iter ( ) . map ( |pair| pair. encode ( ) ) ,
1319
1328
)
1320
1329
. into ( )
@@ -1731,8 +1740,6 @@ mod benches {
1731
1740
) ;
1732
1741
}
1733
1742
1734
- pub type MmrHashing = <Runtime as pallet_mmr:: Config >:: Hashing ;
1735
-
1736
1743
#[ cfg( not( feature = "disable-runtime-api" ) ) ]
1737
1744
sp_api:: impl_runtime_apis! {
1738
1745
impl sp_api:: Core <Block > for Runtime {
@@ -1972,8 +1979,8 @@ sp_api::impl_runtime_apis! {
1972
1979
}
1973
1980
1974
1981
#[ api_version( 2 ) ]
1975
- impl mmr:: MmrApi <Block , Hash , BlockNumber > for Runtime {
1976
- fn mmr_root( ) -> Result <Hash , mmr:: Error > {
1982
+ impl mmr:: MmrApi <Block , mmr :: Hash , BlockNumber > for Runtime {
1983
+ fn mmr_root( ) -> Result <mmr :: Hash , mmr:: Error > {
1977
1984
Ok ( Mmr :: mmr_root( ) )
1978
1985
}
1979
1986
@@ -1984,7 +1991,7 @@ sp_api::impl_runtime_apis! {
1984
1991
fn generate_proof(
1985
1992
block_numbers: Vec <BlockNumber >,
1986
1993
best_known_block_number: Option <BlockNumber >,
1987
- ) -> Result <( Vec <mmr:: EncodableOpaqueLeaf >, mmr:: Proof <Hash >) , mmr:: Error > {
1994
+ ) -> Result <( Vec <mmr:: EncodableOpaqueLeaf >, mmr:: Proof <mmr :: Hash >) , mmr:: Error > {
1988
1995
Mmr :: generate_proof( block_numbers, best_known_block_number) . map(
1989
1996
|( leaves, proof) | {
1990
1997
(
@@ -1998,24 +2005,23 @@ sp_api::impl_runtime_apis! {
1998
2005
)
1999
2006
}
2000
2007
2001
- fn verify_proof( leaves: Vec <mmr:: EncodableOpaqueLeaf >, proof: mmr:: Proof <Hash >)
2008
+ fn verify_proof( leaves: Vec <mmr:: EncodableOpaqueLeaf >, proof: mmr:: Proof <mmr :: Hash >)
2002
2009
-> Result <( ) , mmr:: Error >
2003
2010
{
2004
- pub type MmrLeaf = <<Runtime as pallet_mmr:: Config >:: LeafData as mmr:: LeafDataProvider >:: LeafData ;
2005
2011
let leaves = leaves. into_iter( ) . map( |leaf|
2006
2012
leaf. into_opaque_leaf( )
2007
2013
. try_decode( )
2008
- . ok_or( mmr:: Error :: Verify ) ) . collect:: <Result <Vec <MmrLeaf >, mmr:: Error >>( ) ?;
2014
+ . ok_or( mmr:: Error :: Verify ) ) . collect:: <Result <Vec <mmr :: Leaf >, mmr:: Error >>( ) ?;
2009
2015
Mmr :: verify_leaves( leaves, proof)
2010
2016
}
2011
2017
2012
2018
fn verify_proof_stateless(
2013
- root: Hash ,
2019
+ root: mmr :: Hash ,
2014
2020
leaves: Vec <mmr:: EncodableOpaqueLeaf >,
2015
- proof: mmr:: Proof <Hash >
2021
+ proof: mmr:: Proof <mmr :: Hash >
2016
2022
) -> Result <( ) , mmr:: Error > {
2017
2023
let nodes = leaves. into_iter( ) . map( |leaf|mmr:: DataOrHash :: Data ( leaf. into_opaque_leaf( ) ) ) . collect( ) ;
2018
- pallet_mmr:: verify_leaves_proof:: <MmrHashing , _>( root, nodes, proof)
2024
+ pallet_mmr:: verify_leaves_proof:: <mmr :: Hashing , _>( root, nodes, proof)
2019
2025
}
2020
2026
}
2021
2027
0 commit comments