diff --git a/specs/interop/predeploys.md b/specs/interop/predeploys.md index da3401213..8dc22c2a3 100644 --- a/specs/interop/predeploys.md +++ b/specs/interop/predeploys.md @@ -16,6 +16,7 @@ - [`Identifier` Getters](#identifier-getters) - [L2ToL2CrossDomainMessenger](#l2tol2crossdomainmessenger) - [`relayMessage` Invariants](#relaymessage-invariants) + - [`sendMessage` Invariants](#sendmessage-invariants) - [Message Versioning](#message-versioning) - [No Native Support for Cross Chain Ether Sends](#no-native-support-for-cross-chain-ether-sends) - [Interfaces](#interfaces) @@ -277,6 +278,12 @@ as well as domain binding, ie the executing transaction can only be valid on a s - The `Identifier.origin` MUST be `address(L2ToL2CrossDomainMessenger)` - The `_destination` chain id MUST be equal to the local chain id +- Messages MUST NOT be relayed more than once + +### `sendMessage` Invariants + +- Sent Messages MUST be uniquely identifiable +- It must emit the `SentMessage` event ### Message Versioning