Message Proxy
This contract is an interface to be able push data or events to other chains. It is exposed to the rest of the system as a generic interface but currently relies entirely on Chainlinks CCIP. It is designed to support a couple core features:
Fan-out messaging. Given a sender and message type, send the provided data to one or many destination chains
Retries. The last message of a given sender+type can be re-sent to a destination. This serves a few purposes
Should CCIP ever be down and messages unable to be sent, we should be able to get the data off that we need when it comes back online
Our contract could be out of funds when the send is attempted. We need processes that send the message to continue without reverting, but we want to be able to send that message eventually
Seeding information when standing up the destination chain. Some messages have large delays between them being sent. This can make standing up dependent contracts on the destination difficult and time consuming. Being able to re-send the last message ensures we have the information we need as soon as we can.
Usage
Current usage is restricted to just the LST calculators through the LSTCalculatorBase. The stats related to LSTs are specific to their native chain.