Basic design to support bidirectional routers. From our perspective, we do not have a router entity, just inbound and outbound methods (which are still called routers), at the runtime level, we combine those methods under the same RouterId, later the gateway just handles those RouterIds transparently.
Changes
Added a new pallet: pallet-axelar-evm-router which is basically the same implementation as routers/axelar-evm but as a pallet, allowing to create configurations in the own pallet. It only supports outbound messages as before.
Slightly modidied axelar-precompile to be able to call the new MessageReceiver method.
The core of this change. Add a common/routing.rs module where our inbound and outbound methods for sending messages are joined under the same router Id.
Description
Basic design to support bidirectional routers. From our perspective, we do not have a router entity, just inbound and outbound methods (which are still called routers), at the runtime level, we combine those methods under the same
RouterId
, later the gateway just handles thoseRouterId
s transparently.Changes
Added a new pallet:
pallet-axelar-evm-router
which is basically the same implementation asrouters/axelar-evm
but as a pallet, allowing to create configurations in the own pallet. It only supports outbound messages as before.Slightly modidied
axelar-precompile
to be able to call the newMessageReceiver
method.The core of this change. Add a
common/routing.rs
module where our inbound and outbound methods for sending messages are joined under the same router Id.