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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
pub use pallet_bridge_messages::{
Instance1 as WithPangoroMessages, Instance2 as WithPangolinParachainMessages,
Instance3 as WithPangolinParachainAlphaMessages,
};
use crate::*;
use bp_messages::MessageNonce;
use bp_runtime::{
ChainId, PANGOLIN_PARACHAIN_ALPHA_CHAIN_ID, PANGOLIN_PARACHAIN_CHAIN_ID, PANGORO_CHAIN_ID,
};
use pallet_bridge_messages::Config;
use pallet_fee_market::s2s::{
FeeMarketMessageAcceptedHandler, FeeMarketMessageConfirmedHandler, FeeMarketPayment,
};
frame_support::parameter_types! {
pub const MaxMessagesToPruneAtOnce: MessageNonce = 8;
pub const PangoroChainId: ChainId = PANGORO_CHAIN_ID;
pub const PangoroMaxUnconfirmedMessagesAtInboundLane: MessageNonce =
bp_pangoro::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
pub const PangoroMaxUnrewardedRelayerEntriesAtInboundLane: MessageNonce =
bp_pangoro::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX;
pub const PangolinParachainChainId: ChainId = PANGOLIN_PARACHAIN_CHAIN_ID;
pub const PangolinParachainAlphaChainId: ChainId = PANGOLIN_PARACHAIN_ALPHA_CHAIN_ID;
pub const PangolinParachainMaxUnconfirmedMessagesAtInboundLane: MessageNonce =
bp_pangolin_parachain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
pub const PangolinParachainMaxUnrewardedRelayerEntriesAtInboundLane: MessageNonce =
bp_pangolin_parachain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX;
}
impl Config<WithPangoroMessages> for Runtime {
type AccountIdConverter = bp_pangolin::AccountIdConverter;
type BridgedChainId = PangoroChainId;
type Event = Event;
type InboundMessageFee = bp_pangoro::Balance;
type InboundPayload = bm_pangoro::FromPangoroMessagePayload;
type InboundRelayer = bp_pangoro::AccountId;
type LaneMessageVerifier = bm_pangoro::ToPangoroMessageVerifier;
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
type MaxUnconfirmedMessagesAtInboundLane = PangoroMaxUnconfirmedMessagesAtInboundLane;
type MaxUnrewardedRelayerEntriesAtInboundLane = PangoroMaxUnrewardedRelayerEntriesAtInboundLane;
type MessageDeliveryAndDispatchPayment = FeeMarketPayment<Self, WithPangoroFeeMarket, Ring>;
type MessageDispatch = bm_pangoro::FromPangoroMessageDispatch;
type OnDeliveryConfirmed = FeeMarketMessageConfirmedHandler<Self, WithPangoroFeeMarket>;
type OnMessageAccepted = FeeMarketMessageAcceptedHandler<Self, WithPangoroFeeMarket>;
type OutboundMessageFee = bp_pangolin::Balance;
type OutboundPayload = bm_pangoro::ToPangoroMessagePayload;
type Parameter = bm_pangoro::PangolinToPangoroMessagesParameter;
type SourceHeaderChain = bm_pangoro::Pangoro;
type TargetHeaderChain = bm_pangoro::Pangoro;
type WeightInfo = ();
}
impl Config<WithPangolinParachainMessages> for Runtime {
type AccountIdConverter = bp_pangolin::AccountIdConverter;
type BridgedChainId = PangolinParachainChainId;
type Event = Event;
type InboundMessageFee = bp_pangolin_parachain::Balance;
type InboundPayload = bm_pangolin_parachain::FromPangolinParachainMessagePayload;
type InboundRelayer = bp_pangolin_parachain::AccountId;
type LaneMessageVerifier = bm_pangolin_parachain::ToPangolinParachainMessageVerifier;
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
type MaxUnconfirmedMessagesAtInboundLane = PangolinParachainMaxUnconfirmedMessagesAtInboundLane;
type MaxUnrewardedRelayerEntriesAtInboundLane =
PangolinParachainMaxUnrewardedRelayerEntriesAtInboundLane;
type MessageDeliveryAndDispatchPayment =
FeeMarketPayment<Self, WithPangolinParachainFeeMarket, Ring>;
type MessageDispatch = bm_pangolin_parachain::FromPangolinParachainMessageDispatch;
type OnDeliveryConfirmed = (
ToPangolinParachainBacking,
FeeMarketMessageConfirmedHandler<Self, WithPangolinParachainFeeMarket>,
);
type OnMessageAccepted = FeeMarketMessageAcceptedHandler<Self, WithPangolinParachainFeeMarket>;
type OutboundMessageFee = bp_pangolin::Balance;
type OutboundPayload = bm_pangolin_parachain::ToPangolinParachainMessagePayload;
type Parameter = bm_pangolin_parachain::PangolinToPangolinParachainParameter;
type SourceHeaderChain = bm_pangolin_parachain::PangolinParachain;
type TargetHeaderChain = bm_pangolin_parachain::PangolinParachain;
type WeightInfo = ();
}
impl Config<WithPangolinParachainAlphaMessages> for Runtime {
type AccountIdConverter = bp_pangolin::AccountIdConverter;
type BridgedChainId = PangolinParachainAlphaChainId;
type Event = Event;
type InboundMessageFee = bp_pangolin_parachain::Balance;
type InboundPayload = bm_pangolin_parachain_alpha::FromPangolinParachainAlphaMessagePayload;
type InboundRelayer = bp_pangolin_parachain::AccountId;
type LaneMessageVerifier = bm_pangolin_parachain_alpha::ToPangolinParachainAlphaMessageVerifier;
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
type MaxUnconfirmedMessagesAtInboundLane = PangolinParachainMaxUnconfirmedMessagesAtInboundLane;
type MaxUnrewardedRelayerEntriesAtInboundLane =
PangolinParachainMaxUnrewardedRelayerEntriesAtInboundLane;
type MessageDeliveryAndDispatchPayment =
FeeMarketPayment<Self, WithPangolinParachainAlphaFeeMarket, Ring>;
type MessageDispatch = bm_pangolin_parachain_alpha::FromPangolinParachainAlphaMessageDispatch;
type OnDeliveryConfirmed = (
ToPangolinParachainBacking,
FeeMarketMessageConfirmedHandler<Self, WithPangolinParachainAlphaFeeMarket>,
);
type OnMessageAccepted =
FeeMarketMessageAcceptedHandler<Self, WithPangolinParachainAlphaFeeMarket>;
type OutboundMessageFee = bp_pangolin::Balance;
type OutboundPayload = bm_pangolin_parachain_alpha::ToPangolinParachainAlphaMessagePayload;
type Parameter = bm_pangolin_parachain_alpha::PangolinToPangolinParachainAlphaParameter;
type SourceHeaderChain = bm_pangolin_parachain_alpha::PangolinParachainAlpha;
type TargetHeaderChain = bm_pangolin_parachain_alpha::PangolinParachainAlpha;
type WeightInfo = ();
}