Commit f4325fad authored by Kelvin Fichter's avatar Kelvin Fichter

Fixed up the bridge contract interfaces

parent 13827deb
...@@ -41,6 +41,32 @@ contract OVM_BaseCrossDomainMessenger is iOVM_BaseCrossDomainMessenger { ...@@ -41,6 +41,32 @@ contract OVM_BaseCrossDomainMessenger is iOVM_BaseCrossDomainMessenger {
targetMessengerAddress = _targetMessengerAddress; targetMessengerAddress = _targetMessengerAddress;
} }
/**
* Sends a cross domain message to the target messenger.
* @param _target Target contract address.
* @param _message Message to send to the target.
* @param _gasLimit Gas limit for the provided message.
*/
function sendMessage(
address _target,
bytes memory _message,
uint256 _gasLimit
)
override
public
{
bytes memory xDomainCalldata = _getXDomainCalldata(
_target,
msg.sender,
_message,
messageNonce
);
_sendXDomainMessage(xDomainCalldata, _gasLimit);
messageNonce += 1;
sentMessages[keccak256(xDomainCalldata)] = true;
}
/********************** /**********************
* Internal Functions * * Internal Functions *
...@@ -74,4 +100,19 @@ contract OVM_BaseCrossDomainMessenger is iOVM_BaseCrossDomainMessenger { ...@@ -74,4 +100,19 @@ contract OVM_BaseCrossDomainMessenger is iOVM_BaseCrossDomainMessenger {
_messageNonce _messageNonce
); );
} }
/**
* Sends a cross domain message.
* @param _message Message to send.
* @param _gasLimit Gas limit for the provided message.
*/
function _sendXDomainMessage(
bytes memory _message,
uint256 _gasLimit
)
virtual
internal
{
revert("Implement me in child contracts!");
}
} }
...@@ -95,31 +95,6 @@ contract OVM_L1CrossDomainMessenger is iOVM_L1CrossDomainMessenger, OVM_BaseCros ...@@ -95,31 +95,6 @@ contract OVM_L1CrossDomainMessenger is iOVM_L1CrossDomainMessenger, OVM_BaseCros
receivedMessages[keccak256(xDomainCalldata)] = true; receivedMessages[keccak256(xDomainCalldata)] = true;
} }
/**
* Sends a cross domain message to the target messenger.
* @inheritdoc iOVM_L1CrossDomainMessenger
*/
function sendMessage(
address _target,
bytes memory _message,
uint32 _gasLimit
)
override
public
{
bytes memory xDomainCalldata = _getXDomainCalldata(
_target,
msg.sender,
_message,
messageNonce
);
_sendXDomainMessage(xDomainCalldata, _gasLimit);
messageNonce += 1;
sentMessages[keccak256(xDomainCalldata)] = true;
}
/** /**
* Replays a cross domain message to the target messenger. * Replays a cross domain message to the target messenger.
* @inheritdoc iOVM_L1CrossDomainMessenger * @inheritdoc iOVM_L1CrossDomainMessenger
...@@ -255,8 +230,9 @@ contract OVM_L1CrossDomainMessenger is iOVM_L1CrossDomainMessenger, OVM_BaseCros ...@@ -255,8 +230,9 @@ contract OVM_L1CrossDomainMessenger is iOVM_L1CrossDomainMessenger, OVM_BaseCros
*/ */
function _sendXDomainMessage( function _sendXDomainMessage(
bytes memory _message, bytes memory _message,
uint32 _gasLimit uint256 _gasLimit
) )
override
internal internal
{ {
ovmL1ToL2TransactionQueue.enqueue( ovmL1ToL2TransactionQueue.enqueue(
......
...@@ -88,31 +88,6 @@ contract OVM_L2CrossDomainMessenger is iOVM_L2CrossDomainMessenger, OVM_BaseCros ...@@ -88,31 +88,6 @@ contract OVM_L2CrossDomainMessenger is iOVM_L2CrossDomainMessenger, OVM_BaseCros
receivedMessages[keccak256(xDomainCalldata)] = true; receivedMessages[keccak256(xDomainCalldata)] = true;
} }
/**
* Sends a cross domain message to the target messenger.
* @inheritdoc iOVM_L2CrossDomainMessenger
*/
function sendMessage(
address _target,
bytes memory _message,
uint256 _gasLimit
)
override
public
{
bytes memory xDomainCalldata = _getXDomainCalldata(
_target,
msg.sender,
_message,
messageNonce
);
_sendXDomainMessage(xDomainCalldata, _gasLimit);
messageNonce += 1;
sentMessages[keccak256(xDomainCalldata)] = true;
}
/********************** /**********************
* Internal Functions * * Internal Functions *
...@@ -142,6 +117,7 @@ contract OVM_L2CrossDomainMessenger is iOVM_L2CrossDomainMessenger, OVM_BaseCros ...@@ -142,6 +117,7 @@ contract OVM_L2CrossDomainMessenger is iOVM_L2CrossDomainMessenger, OVM_BaseCros
bytes memory _message, bytes memory _message,
uint256 _gasLimit uint256 _gasLimit
) )
override
internal internal
{ {
ovmL2ToL1MessagePasser.passMessageToL1(_message); ovmL2ToL1MessagePasser.passMessageToL1(_message);
......
...@@ -18,4 +18,16 @@ interface iOVM_BaseCrossDomainMessenger { ...@@ -18,4 +18,16 @@ interface iOVM_BaseCrossDomainMessenger {
function setTargetMessengerAddress( function setTargetMessengerAddress(
address _targetMessengerAddress address _targetMessengerAddress
) external; ) external;
/**
* Sends a cross domain message to the target messenger.
* @param _target Target contract address.
* @param _message Message to send to the target.
* @param _gasLimit Gas limit for the provided message.
*/
function sendMessage(
address _target,
bytes memory _message,
uint256 _gasLimit
) external;
} }
...@@ -46,18 +46,6 @@ interface iOVM_L1CrossDomainMessenger is iOVM_BaseCrossDomainMessenger { ...@@ -46,18 +46,6 @@ interface iOVM_L1CrossDomainMessenger is iOVM_BaseCrossDomainMessenger {
L2MessageInclusionProof memory _proof L2MessageInclusionProof memory _proof
) external; ) external;
/**
* Sends a cross domain message to the target messenger.
* @param _target Target contract address.
* @param _message Message to send to the target.
* @param _gasLimit Gas limit for the provided message.
*/
function sendMessage(
address _target,
bytes memory _message,
uint32 _gasLimit
) external;
/** /**
* Replays a cross domain message to the target messenger. * Replays a cross domain message to the target messenger.
* @param _target Target contract address. * @param _target Target contract address.
......
...@@ -27,16 +27,4 @@ interface iOVM_L2CrossDomainMessenger is iOVM_BaseCrossDomainMessenger { ...@@ -27,16 +27,4 @@ interface iOVM_L2CrossDomainMessenger is iOVM_BaseCrossDomainMessenger {
bytes memory _message, bytes memory _message,
uint256 _messageNonce uint256 _messageNonce
) external; ) external;
/**
* Sends a cross domain message to the target messenger.
* @param _target Target contract address.
* @param _message Message to send to the target.
* @param _gasLimit Gas limit for the provided message.
*/
function sendMessage(
address _target,
bytes memory _message,
uint256 _gasLimit
) external;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment