Skip to content

Commit 1c1083f

Browse files
svyatonikbkontur
authored andcommitted
Change LaneId underlying type from [u8; 4] to H256 (#2221)
* change LaneId underlying type from [u8; 4] to H256 * fixed typo * added some tests * spelling * started fixing testnets * uncommented call size test * changed RewardsAccountParams encoding + added values separator when computing LaneId * review suggestions
1 parent d3ccc4f commit 1c1083f

30 files changed

Lines changed: 369 additions & 228 deletions

File tree

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@
1919
//! with calls that are: delivering new message and all necessary underlying headers
2020
//! (parachain or relay chain).
2121
22-
use crate::messages_call_ext::{
23-
CallHelper as MessagesCallHelper, CallInfo as MessagesCallInfo, MessagesCallSubType,
22+
use crate::{
23+
messages_call_ext::{
24+
CallHelper as MessagesCallHelper, CallInfo as MessagesCallInfo, MessagesCallSubType,
25+
},
26+
messages_xcm_extension::LaneIdFromChainId,
2427
};
2528
use bp_messages::{ChainWithMessages, LaneId, MessageNonce};
2629
use bp_relayers::{ExplicitOrAccountParams, RewardsAccountOwner, RewardsAccountParams};
@@ -92,15 +95,15 @@ pub trait RefundableMessagesLaneId {
9295
}
9396

9497
/// Default implementation of `RefundableMessagesLaneId`.
95-
pub struct RefundableMessagesLane<Instance, Id>(PhantomData<(Instance, Id)>);
98+
pub struct RefundableMessagesLane<Runtime, Instance>(PhantomData<(Runtime, Instance)>);
9699

97-
impl<Instance, Id> RefundableMessagesLaneId for RefundableMessagesLane<Instance, Id>
100+
impl<Runtime, Instance> RefundableMessagesLaneId for RefundableMessagesLane<Runtime, Instance>
98101
where
102+
Runtime: MessagesConfig<Instance>,
99103
Instance: 'static,
100-
Id: Get<LaneId>,
101104
{
102105
type Instance = Instance;
103-
type Id = Id;
106+
type Id = LaneIdFromChainId<Runtime, Instance>;
104107
}
105108

106109
/// Refund calculator.
@@ -968,14 +971,14 @@ pub(crate) mod tests {
968971
};
969972

970973
parameter_types! {
971-
pub TestLaneId: LaneId = TEST_LANE_ID;
974+
TestParachain: u32 = 1000;
972975
pub MsgProofsRewardsAccount: RewardsAccountParams = RewardsAccountParams::new(
973-
TEST_LANE_ID,
976+
test_lane_id(),
974977
TEST_BRIDGED_CHAIN_ID,
975978
RewardsAccountOwner::ThisChain,
976979
);
977980
pub MsgDeliveryProofsRewardsAccount: RewardsAccountParams = RewardsAccountParams::new(
978-
TEST_LANE_ID,
981+
test_lane_id(),
979982
TEST_BRIDGED_CHAIN_ID,
980983
RewardsAccountOwner::BridgedChain,
981984
);
@@ -985,7 +988,7 @@ pub(crate) mod tests {
985988

986989
type TestMessagesExtensionProvider = RefundBridgedMessages<
987990
TestRuntime,
988-
RefundableMessagesLane<(), TestLaneId>,
991+
RefundableMessagesLane<TestRuntime, ()>,
989992
ActualFeeRefund<TestRuntime>,
990993
ConstU64<1>,
991994
StrTestExtension,
@@ -994,7 +997,7 @@ pub(crate) mod tests {
994997
type TestGrandpaExtensionProvider = RefundBridgedGrandpaMessages<
995998
TestRuntime,
996999
(),
997-
RefundableMessagesLane<(), TestLaneId>,
1000+
RefundableMessagesLane<TestRuntime, ()>,
9981001
ActualFeeRefund<TestRuntime>,
9991002
ConstU64<1>,
10001003
StrTestExtension,
@@ -1003,7 +1006,7 @@ pub(crate) mod tests {
10031006
type TestExtensionProvider = RefundBridgedParachainMessages<
10041007
TestRuntime,
10051008
RefundableParachain<(), BridgedUnderlyingParachain>,
1006-
RefundableMessagesLane<(), TestLaneId>,
1009+
RefundableMessagesLane<TestRuntime, ()>,
10071010
ActualFeeRefund<TestRuntime>,
10081011
ConstU64<1>,
10091012
StrTestExtension,
@@ -1060,7 +1063,7 @@ pub(crate) mod tests {
10601063
};
10611064
pallet_bridge_parachains::ParasInfo::<TestRuntime>::insert(para_id, para_info);
10621065

1063-
let lane_id = TestLaneId::get();
1066+
let lane_id = test_lane_id();
10641067
let in_lane_data =
10651068
InboundLaneData { last_confirmed_nonce: best_message, ..Default::default() };
10661069
pallet_bridge_messages::InboundLanes::<TestRuntime>::insert(lane_id, in_lane_data);
@@ -1145,9 +1148,9 @@ pub(crate) mod tests {
11451148
proof: Box::new(FromBridgedChainMessagesProof {
11461149
bridged_header_hash: Default::default(),
11471150
storage: Default::default(),
1148-
lane: TestLaneId::get(),
1151+
lane: test_lane_id(),
11491152
nonces_start: pallet_bridge_messages::InboundLanes::<TestRuntime>::get(
1150-
TEST_LANE_ID,
1153+
test_lane_id(),
11511154
)
11521155
.unwrap()
11531156
.last_delivered_nonce() +
@@ -1164,7 +1167,7 @@ pub(crate) mod tests {
11641167
proof: FromBridgedChainMessagesDeliveryProof {
11651168
bridged_header_hash: Default::default(),
11661169
storage_proof: Default::default(),
1167-
lane: TestLaneId::get(),
1170+
lane: test_lane_id(),
11681171
},
11691172
relayers_state: UnrewardedRelayersState {
11701173
last_delivered_nonce: best_message,
@@ -1321,7 +1324,7 @@ pub(crate) mod tests {
13211324
},
13221325
MessagesCallInfo::ReceiveMessagesProof(ReceiveMessagesProofInfo {
13231326
base: BaseMessagesProofInfo {
1324-
lane_id: TEST_LANE_ID,
1327+
lane_id: test_lane_id(),
13251328
bundled_range: 101..=200,
13261329
best_stored_nonce: 100,
13271330
},
@@ -1363,7 +1366,7 @@ pub(crate) mod tests {
13631366
},
13641367
MessagesCallInfo::ReceiveMessagesDeliveryProof(ReceiveMessagesDeliveryProofInfo(
13651368
BaseMessagesProofInfo {
1366-
lane_id: TEST_LANE_ID,
1369+
lane_id: test_lane_id(),
13671370
bundled_range: 101..=200,
13681371
best_stored_nonce: 100,
13691372
},
@@ -1393,7 +1396,7 @@ pub(crate) mod tests {
13931396
},
13941397
MessagesCallInfo::ReceiveMessagesProof(ReceiveMessagesProofInfo {
13951398
base: BaseMessagesProofInfo {
1396-
lane_id: TEST_LANE_ID,
1399+
lane_id: test_lane_id(),
13971400
bundled_range: 101..=200,
13981401
best_stored_nonce: 100,
13991402
},
@@ -1429,7 +1432,7 @@ pub(crate) mod tests {
14291432
},
14301433
MessagesCallInfo::ReceiveMessagesDeliveryProof(ReceiveMessagesDeliveryProofInfo(
14311434
BaseMessagesProofInfo {
1432-
lane_id: TEST_LANE_ID,
1435+
lane_id: test_lane_id(),
14331436
bundled_range: 101..=200,
14341437
best_stored_nonce: 100,
14351438
},
@@ -1457,7 +1460,7 @@ pub(crate) mod tests {
14571460
},
14581461
MessagesCallInfo::ReceiveMessagesProof(ReceiveMessagesProofInfo {
14591462
base: BaseMessagesProofInfo {
1460-
lane_id: TEST_LANE_ID,
1463+
lane_id: test_lane_id(),
14611464
bundled_range: 101..=200,
14621465
best_stored_nonce: 100,
14631466
},
@@ -1484,7 +1487,7 @@ pub(crate) mod tests {
14841487
},
14851488
MessagesCallInfo::ReceiveMessagesDeliveryProof(ReceiveMessagesDeliveryProofInfo(
14861489
BaseMessagesProofInfo {
1487-
lane_id: TEST_LANE_ID,
1490+
lane_id: test_lane_id(),
14881491
bundled_range: 101..=200,
14891492
best_stored_nonce: 100,
14901493
},
@@ -1499,7 +1502,7 @@ pub(crate) mod tests {
14991502
call_info: CallInfo::Msgs(MessagesCallInfo::ReceiveMessagesProof(
15001503
ReceiveMessagesProofInfo {
15011504
base: BaseMessagesProofInfo {
1502-
lane_id: TEST_LANE_ID,
1505+
lane_id: test_lane_id(),
15031506
bundled_range: 101..=200,
15041507
best_stored_nonce: 100,
15051508
},
@@ -1519,7 +1522,7 @@ pub(crate) mod tests {
15191522
relayer: relayer_account_at_this_chain(),
15201523
call_info: CallInfo::Msgs(MessagesCallInfo::ReceiveMessagesDeliveryProof(
15211524
ReceiveMessagesDeliveryProofInfo(BaseMessagesProofInfo {
1522-
lane_id: TEST_LANE_ID,
1525+
lane_id: test_lane_id(),
15231526
bundled_range: 101..=200,
15241527
best_stored_nonce: 100,
15251528
}),
@@ -2883,7 +2886,7 @@ pub(crate) mod tests {
28832886
.unwrap();
28842887

28852888
// allow empty message delivery transactions
2886-
let lane_id = TestLaneId::get();
2889+
let lane_id = test_lane_id();
28872890
let in_lane_data = InboundLaneData {
28882891
state: LaneState::Opened,
28892892
last_confirmed_nonce: 0,

bridges/bin/runtime-common/src/messages_call_ext.rs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -361,26 +361,28 @@ mod tests {
361361
};
362362
use sp_std::ops::RangeInclusive;
363363

364-
const TEST_LANE_ID: LaneId = LaneId([0, 0, 0, 0]);
364+
fn test_lane_id() -> LaneId {
365+
LaneId::new(1, 2)
366+
}
365367

366368
fn fill_unrewarded_relayers() {
367369
let mut inbound_lane_state =
368-
pallet_bridge_messages::InboundLanes::<TestRuntime>::get(TEST_LANE_ID).unwrap();
370+
pallet_bridge_messages::InboundLanes::<TestRuntime>::get(test_lane_id()).unwrap();
369371
for n in 0..BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX {
370372
inbound_lane_state.relayers.push_back(UnrewardedRelayer {
371373
relayer: Default::default(),
372374
messages: DeliveredMessages { begin: n + 1, end: n + 1 },
373375
});
374376
}
375377
pallet_bridge_messages::InboundLanes::<TestRuntime>::insert(
376-
TEST_LANE_ID,
378+
test_lane_id(),
377379
inbound_lane_state,
378380
);
379381
}
380382

381383
fn fill_unrewarded_messages() {
382384
let mut inbound_lane_state =
383-
pallet_bridge_messages::InboundLanes::<TestRuntime>::get(TEST_LANE_ID).unwrap();
385+
pallet_bridge_messages::InboundLanes::<TestRuntime>::get(test_lane_id()).unwrap();
384386
inbound_lane_state.relayers.push_back(UnrewardedRelayer {
385387
relayer: Default::default(),
386388
messages: DeliveredMessages {
@@ -389,14 +391,14 @@ mod tests {
389391
},
390392
});
391393
pallet_bridge_messages::InboundLanes::<TestRuntime>::insert(
392-
TEST_LANE_ID,
394+
test_lane_id(),
393395
inbound_lane_state,
394396
);
395397
}
396398

397399
fn deliver_message_10() {
398400
pallet_bridge_messages::InboundLanes::<TestRuntime>::insert(
399-
TEST_LANE_ID,
401+
test_lane_id(),
400402
bp_messages::InboundLaneData {
401403
state: LaneState::Opened,
402404
relayers: Default::default(),
@@ -418,7 +420,7 @@ mod tests {
418420
proof: Box::new(FromBridgedChainMessagesProof {
419421
bridged_header_hash: Default::default(),
420422
storage: Default::default(),
421-
lane: TEST_LANE_ID,
423+
lane: test_lane_id(),
422424
nonces_start,
423425
nonces_end,
424426
}),
@@ -431,11 +433,11 @@ mod tests {
431433
fn run_test<T>(test: impl Fn() -> T) -> T {
432434
sp_io::TestExternalities::new(Default::default()).execute_with(|| {
433435
pallet_bridge_messages::InboundLanes::<TestRuntime>::insert(
434-
TEST_LANE_ID,
436+
test_lane_id(),
435437
InboundLaneData::opened(),
436438
);
437439
pallet_bridge_messages::OutboundLanes::<TestRuntime>::insert(
438-
TEST_LANE_ID,
440+
test_lane_id(),
439441
OutboundLaneData::opened(),
440442
);
441443
test()
@@ -537,7 +539,7 @@ mod tests {
537539

538540
fn confirm_message_10() {
539541
pallet_bridge_messages::OutboundLanes::<TestRuntime>::insert(
540-
TEST_LANE_ID,
542+
test_lane_id(),
541543
bp_messages::OutboundLaneData {
542544
state: LaneState::Opened,
543545
oldest_unpruned_nonce: 0,
@@ -553,7 +555,7 @@ mod tests {
553555
proof: FromBridgedChainMessagesDeliveryProof {
554556
bridged_header_hash: Default::default(),
555557
storage_proof: Default::default(),
556-
lane: TEST_LANE_ID,
558+
lane: test_lane_id(),
557559
},
558560
relayers_state: UnrewardedRelayersState {
559561
last_delivered_nonce,
@@ -611,7 +613,7 @@ mod tests {
611613
CallHelper::<TestRuntime, ()>::was_successful(&CallInfo::ReceiveMessagesProof(
612614
ReceiveMessagesProofInfo {
613615
base: BaseMessagesProofInfo {
614-
lane_id: TEST_LANE_ID,
616+
lane_id: test_lane_id(),
615617
bundled_range,
616618
best_stored_nonce: 0, // doesn't matter for `was_successful`
617619
},
@@ -671,7 +673,7 @@ mod tests {
671673
fn was_message_confirmation_successful(bundled_range: RangeInclusive<MessageNonce>) -> bool {
672674
CallHelper::<TestRuntime, ()>::was_successful(&CallInfo::ReceiveMessagesDeliveryProof(
673675
ReceiveMessagesDeliveryProofInfo(BaseMessagesProofInfo {
674-
lane_id: TEST_LANE_ID,
676+
lane_id: test_lane_id(),
675677
bundled_range,
676678
best_stored_nonce: 0, // doesn't matter for `was_successful`
677679
}),

0 commit comments

Comments
 (0)