Added new extrinsic for adding multi-routers, and 2 new storages for multi routers:
one storage that maps a router hash to a router.
the Router trait now has a hash() method that allows us to create a hash using certain router fields.
one storage that maps a domain to a bounded vec of router hashes.
Inbound/outbound message handing:
Message proofs
The LPEnconding trait has 2 new methods used for:
retrieving a message proof from a message proof message, if any.
converting a message to a message proof message.
Outbound
The OutboundMessageHandler implementation is now queueing one message using one router and message proofs using the remaining routers.
Inbound
Added 2 new storages for keeping track of inbound messages and message proofs.
The inbound message processing logic is checking that the required number of proofs are received before submitting the message to the InboundMessageHandler.
Checklist:
[ ] I have added Rust doc comments to structs, enums, traits and functions
[ ] I have made corresponding changes to the documentation
[ ] I have performed a self-review of my code
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Invalidate all message proofs if the routers for a domain change
Description
LP Gateway:
Multi-router
Added new extrinsic for adding multi-routers, and 2 new storages for multi routers:
Router
trait now has ahash()
method that allows us to create a hash using certain router fields.Inbound/outbound message handing:
Message proofs
The
LPEnconding
trait has 2 new methods used for:Outbound
The
OutboundMessageHandler
implementation is now queueing one message using one router and message proofs using the remaining routers.Inbound
Added 2 new storages for keeping track of inbound messages and message proofs.
The inbound message processing logic is checking that the required number of proofs are received before submitting the message to the
InboundMessageHandler
.Checklist: