Skip to content

Commit 8ea1555

Browse files
authored
Fix bridge issues (#63)
* Fix bridge issues * Remove bridge channel rpc from Cargo.toml
1 parent 2069e3e commit 8ea1555

File tree

8 files changed

+29
-138
lines changed

8 files changed

+29
-138
lines changed

Cargo.lock

-27
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ members = [
66
"pallets/*",
77
"pallets/leaf-provider/runtime-api",
88
"pallets/leaf-provider/rpc",
9-
"pallets/substrate-channel/rpc",
109
"pallets/beefy-light-client/runtime-api",
1110
"pallets/beefy-light-client/rpc",
1211
]

pallets/leaf-provider/src/lib.rs

+11-1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ pub mod pallet {
4747
use bridge_types::types::{AuxiliaryDigest, AuxiliaryDigestItem, LeafExtraData};
4848
use frame_support::pallet_prelude::*;
4949
use frame_support::traits::Randomness;
50+
use frame_system::pallet_prelude::*;
5051
use sp_beefy::mmr::BeefyDataProvider;
5152
use sp_runtime::traits;
5253
use sp_runtime::traits::Hash;
@@ -101,10 +102,19 @@ pub mod pallet {
101102
}
102103
}
103104

105+
#[pallet::hooks]
106+
impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
107+
/// Clear the latest digest. This pallet should be placed before any other pallets which is use AuxiliaryDigestHandler.
108+
fn on_initialize(_now: T::BlockNumber) -> Weight {
109+
LatestDigest::<T>::kill();
110+
<T as frame_system::Config>::DbWeight::get().writes(1)
111+
}
112+
}
113+
104114
impl<T: Config> BeefyDataProvider<LeafExtraData<HashOf<T>, RandomnessOutputOf<T>>> for Pallet<T> {
105115
fn extra_data() -> LeafExtraData<HashOf<T>, RandomnessOutputOf<T>> {
106116
let digest = AuxiliaryDigest {
107-
logs: LatestDigest::<T>::take().unwrap_or_default(),
117+
logs: LatestDigest::<T>::get().unwrap_or_default(),
108118
};
109119
let digest_encoded = digest.encode();
110120
let (random_seed, _) = T::Randomness::random(RANDOMNESS_SUBJECT);

pallets/substrate-channel/rpc/Cargo.toml

-22
This file was deleted.

pallets/substrate-channel/rpc/src/lib.rs

-80
This file was deleted.

pallets/substrate-channel/src/outbound/mod.rs

+16-5
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,10 @@
3131
//! Channel for passing messages from substrate to ethereum.
3232
3333
use bridge_types::substrate::BridgeMessage;
34-
use codec::Encode;
3534
use frame_support::ensure;
3635
use frame_support::traits::Get;
3736
use frame_support::weights::Weight;
3837
use sp_core::H256;
39-
use sp_io::offchain_index;
4038

4139
use bridge_types::types::MessageNonce;
4240
use bridge_types::SubNetworkId;
@@ -60,6 +58,7 @@ pub mod pallet {
6058
use bridge_types::traits::OutboundChannel;
6159
use bridge_types::traits::TimepointProvider;
6260
use bridge_types::types::AuxiliaryDigestItem;
61+
use bridge_types::types::GenericCommitmentWithBlock;
6362
use bridge_types::types::MessageId;
6463
use bridge_types::types::MessageStatus;
6564
use bridge_types::GenericNetworkId;
@@ -130,6 +129,19 @@ pub mod pallet {
130129
#[pallet::storage]
131130
pub type ChannelNonces<T: Config> = StorageMap<_, Identity, SubNetworkId, u64, ValueQuery>;
132131

132+
#[pallet::storage]
133+
pub type LatestCommitment<T: Config> = StorageMap<
134+
_,
135+
Identity,
136+
SubNetworkId,
137+
GenericCommitmentWithBlock<
138+
BlockNumberFor<T>,
139+
T::MaxMessagesPerCommit,
140+
T::MaxMessagePayloadSize,
141+
>,
142+
OptionQuery,
143+
>;
144+
133145
/// The current storage version.
134146
const STORAGE_VERSION: StorageVersion = StorageVersion::new(1);
135147

@@ -225,12 +237,11 @@ pub mod pallet {
225237
AuxiliaryDigestItem::Commitment(GenericNetworkId::Sub(network_id), commitment_hash);
226238
T::AuxiliaryDigestHandler::add_item(digest_item);
227239

228-
let key = bridge_types::utils::make_offchain_key(network_id.into(), batch_nonce);
229-
let offchain_data = bridge_types::types::BridgeOffchainData {
240+
let commitment = bridge_types::types::GenericCommitmentWithBlock {
230241
commitment,
231242
block_number: <frame_system::Pallet<T>>::block_number(),
232243
};
233-
offchain_index::set(&key, &offchain_data.encode());
244+
LatestCommitment::<T>::insert(network_id, commitment);
234245

235246
<T as Config>::WeightInfo::on_initialize(
236247
messages_count as u32,

pallets/substrate-channel/src/outbound/test.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
use super::*;
3232
use bridge_types::GenericNetworkId;
33-
use codec::{Decode, MaxEncodedLen};
33+
use codec::{Decode, Encode, MaxEncodedLen};
3434
use currencies::BasicCurrencyAdapter;
3535

3636
use bridge_types::traits::{OutboundChannel, TimepointProvider};

pallets/types/src/types.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ pub struct RawAssetInfo {
337337
deserialize = "BlockNumber: Deserialize<'de>"
338338
))
339339
)]
340-
pub struct BridgeOffchainData<BlockNumber, MaxMessages: Get<u32>, MaxPayload: Get<u32>> {
340+
pub struct GenericCommitmentWithBlock<BlockNumber, MaxMessages: Get<u32>, MaxPayload: Get<u32>> {
341341
pub block_number: BlockNumber,
342342
pub commitment: crate::GenericCommitment<MaxMessages, MaxPayload>,
343343
}

0 commit comments

Comments
 (0)