Commit 78c42283 authored by Kevin Ho's avatar Kevin Ho Committed by GitHub

Update mock messengers (#46)

* start fixing mocks

* fix mock messenger

* update version, remove console import
parent 0bb89f9b
......@@ -34,7 +34,7 @@ contract OVM_BaseCrossDomainMessenger is iOVM_BaseCrossDomainMessenger {
function sendMessage(
address _target,
bytes memory _message,
uint256 _gasLimit
uint32 _gasLimit
)
override
public
......
// SPDX-License-Identifier: UNLICENSED
pragma solidity >0.5.0 <0.8.0;
pragma solidity >=0.5.0 <0.8.0;
pragma experimental ABIEncoderV2;
/**
......@@ -24,6 +24,6 @@ interface iOVM_BaseCrossDomainMessenger {
function sendMessage(
address _target,
bytes calldata _message,
uint256 _gasLimit
uint32 _gasLimit
) external;
}
......@@ -3,12 +3,12 @@ pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
/* Contract Imports */
import { OVM_BaseCrossDomainMessenger } from "../../OVM/bridge/OVM_BaseCrossDomainMessenger.sol";
import { iOVM_BaseCrossDomainMessenger } from "../../iOVM/bridge/iOVM_BaseCrossDomainMessenger.sol";
/**
* @title mockOVM_CrossDomainMessenger
*/
contract mockOVM_CrossDomainMessenger is OVM_BaseCrossDomainMessenger {
contract mockOVM_CrossDomainMessenger is iOVM_BaseCrossDomainMessenger {
/***********
* Structs *
......@@ -20,7 +20,7 @@ contract mockOVM_CrossDomainMessenger is OVM_BaseCrossDomainMessenger {
address sender;
bytes message;
uint256 messageNonce;
uint256 gasLimit;
uint32 gasLimit;
}
......@@ -32,6 +32,8 @@ contract mockOVM_CrossDomainMessenger is OVM_BaseCrossDomainMessenger {
address internal targetMessengerAddress;
uint256 internal lastRelayedMessage;
uint256 internal delay;
uint256 public messageNonce;
address override public xDomainMessageSender;
/***************
......@@ -78,6 +80,7 @@ contract mockOVM_CrossDomainMessenger is OVM_BaseCrossDomainMessenger {
bytes memory _message,
uint32 _gasLimit
)
override
public
{
mockOVM_CrossDomainMessenger targetMessenger = mockOVM_CrossDomainMessenger(
......@@ -120,7 +123,7 @@ contract mockOVM_CrossDomainMessenger is OVM_BaseCrossDomainMessenger {
bool _exists
)
{
return fullReceivedMessages.length < lastRelayedMessage;
return fullReceivedMessages.length > lastRelayedMessage;
}
/**
......@@ -129,18 +132,13 @@ contract mockOVM_CrossDomainMessenger is OVM_BaseCrossDomainMessenger {
function relayNextMessage()
public
{
if (hasNextMessage() == false) {
return;
}
require(hasNextMessage(), "No pending messages to relay");
ReceivedMessage memory nextMessage = fullReceivedMessages[lastRelayedMessage];
if (nextMessage.timestamp + delay > block.timestamp) {
return;
}
require(nextMessage.timestamp + delay < block.timestamp, "Message is not ready to be relayed. The delay period is not up yet!");
xDomainMessageSender = nextMessage.sender;
nextMessage.target.call{gas: nextMessage.gasLimit}(nextMessage.message);
(bool success,) = nextMessage.target.call{gas: nextMessage.gasLimit}(nextMessage.message);
require(success, "Cross-domain message call reverted. Did you set your gas limit high enough?");
lastRelayedMessage += 1;
}
}
{
"name": "@eth-optimism/contracts",
"version": "0.0.2-alpha.6",
"version": "0.0.2-alpha.7",
"main": "build/src/index.js",
"files": [
"build/**/*.js",
......
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