Skip to content

Commit

Permalink
Merge pull request #1513 from ethereum-optimism/sc/del-only-relayer
Browse files Browse the repository at this point in the history
feat: remove onlyRelayer modifier
  • Loading branch information
tynes committed Oct 1, 2021
2 parents 4177f9b + d03be25 commit a5aac20
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 56 deletions.
6 changes: 6 additions & 0 deletions .changeset/tender-bees-jump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@eth-optimism/contracts': patch
'@eth-optimism/message-relayer': patch
---

Removes the onlyRelayer modifier from the L1CrossDomainMessenger
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ import { ReentrancyGuardUpgradeable } from
* Runtime target: EVM
*/
contract L1CrossDomainMessenger is
IL1CrossDomainMessenger,
Lib_AddressResolver,
OwnableUpgradeable,
PausableUpgradeable,
ReentrancyGuardUpgradeable
IL1CrossDomainMessenger,
Lib_AddressResolver,
OwnableUpgradeable,
PausableUpgradeable,
ReentrancyGuardUpgradeable
{

/**********
Expand Down Expand Up @@ -78,26 +78,6 @@ contract L1CrossDomainMessenger is
{}


/**********************
* Function Modifiers *
**********************/

/**
* Modifier to enforce that, if configured, only the OVM_L2MessageRelayer contract may
* successfully call a method.
*/
modifier onlyRelayer() {
address relayer = resolve("OVM_L2MessageRelayer");
if (relayer != address(0)) {
require(
msg.sender == relayer,
"Only OVM_L2MessageRelayer can relay L2-to-L1 messages."
);
}
_;
}


/********************
* Public Functions *
********************/
Expand Down Expand Up @@ -221,7 +201,6 @@ contract L1CrossDomainMessenger is
)
public
nonReentrant
onlyRelayer
whenNotPaused
{
bytes memory xDomainCalldata = Lib_CrossDomainUtils.encodeXDomainCalldata(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -521,21 +521,5 @@ describe('L1CrossDomainMessenger', () => {
).to.not.be.reverted
})
})

describe('onlyRelayer', () => {
it('when the OVM_L2MessageRelayer address is set, should revert if called by a different account', async () => {
// set to a random NON-ZERO address
await AddressManager.setAddress(
'OVM_L2MessageRelayer',
'0x1234123412341234123412341234123412341234'
)

await expect(
L1CrossDomainMessenger.relayMessage(target, sender, message, 0, proof)
).to.be.revertedWith(
'Only OVM_L2MessageRelayer can relay L2-to-L1 messages.'
)
})
})
})
})
14 changes: 0 additions & 14 deletions packages/message-relayer/src/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,20 +154,6 @@ export class MessageRelayerService extends BaseService<MessageRelayerOptions> {
await sleep(this.options.pollingInterval)

try {
// Check that the correct address is set in the address manager
const relayer = await this.state.Lib_AddressManager.getAddress(
'OVM_L2MessageRelayer'
)
// If it is address(0), then message relaying is not authenticated
if (relayer !== ethers.constants.AddressZero) {
const address = await this.options.l1Wallet.getAddress()
if (relayer !== address) {
throw new Error(
`OVM_L2MessageRelayer (${relayer}) is not set to message-passer EOA ${address}`
)
}
}

this.logger.info('Checking for newly finalized transactions...')
if (
!(await this._isTransactionFinalized(
Expand Down

0 comments on commit a5aac20

Please sign in to comment.