Defender Release: EIP1559 support, Access Control in Admin, Optimism Goerli and Arbitrum Goerli, and more!

Hi community! It's been a while since we announced Defender releases here, but they have been happening nevertheless. So let's catch up on all the new stuff we added to Defender in the last ~50 days:

EIP1559 support

Defender Relay now has support for sending EIP1559 transactions (type 2) on selected networks, which allows the relayer to have more granular control over the fees paid to the network. It comes along with a new relayer policy that you can enable to make your relayer send EIP1559 transactions by default.

You can send an EIP1559 transaction in two ways:

  1. Sending a transaction via API or using the defender-relay-client with the maxFeePerGas and maxPriorityFeePerGas parameters specified

  2. Sending a transaction via UI or with the defender-relay-client using the speed parameter instead of a fixed gas pricing values and having the EIP1559Pricing policy enabled

EIP1559 support is enabled only for the following networks

  • Ethereum Mainnet

  • Rinkeby

  • Ropsten

  • Goerli

  • Kovan

  • Polygon

  • Mumbai

  • Avalanche C-Chain

  • Fuji C-Chain

  • Moonbeam

  • Moonriver

  • Moonbase

  • xDai

  • Sokol

List proposals via External API

You can now list all your Admin proposals using the defender-admin-client package.

const resp = await client.listProposals();

You should receive a response similar to this:

[
  {
    proposalId: '32e9bc05-05d8-4d92-b9d6-f0a7a44eaa80',
    contractId: 'rinkeby-0x56fef350A5a51d11B1B93c26d5CC694816d73b1D',
    createdAt: '2022-06-07T11:06:31.518Z',
    title: 'Set Liquidity Fee to 3',
    type: 'custom',
    via: '0xF58097A67e91Cd510D0Fda4AD7dB2618c917CD30',
    viaType: 'EOA',
    functionInputs: [ '3' ],
    description: 'I want to increase the liquidity fee from 2 to 3.',
    metadata: { sendValue: '0' },
    functionInterface: { name: 'setLiquidityFee', inputs: [Array] },
    contract: {
      name: 'My Contract Name',
      address: '0x56fef350A5a51d11B1B93c26d5CC694816d73b1D',
      network: 'rinkeby'
    },
    isActive: true,
    url: 'https://defender.openzeppelin.com/#/admin/contracts/rinkeby-0x56fef350A5a51d11B1B93c26d5CC694816d73b1D/proposals/32e9bc05-05d8-4d92-b9d6-f0a7a44eaa80'
  },
  ...
]

The property isActive lets you know if your proposal hasn't been yet resolved. Archived proposals are not included in the response.

Create an Admin proposal to be executed by another account

When creating a new Proposal to be executed by an Externally Owned Account (EOA), you can now create the proposal for an EOA you don't control. This opens the door to a flow where an engineer can set up a complex action to be reviewed and executed by a separate stakeholder. And to avoid any mix ups, we default to the currently connected account.

Show NatSpec comments in Admin

Now you can view NatSpec comments for your contracts on Admin, while creating a new Admin Action or reviewing the contract state, allowing your proposals to have a better description of their parameters and effects.

This feature is enabled through contract verification on Sourcify if it's verified and contains comments on its metadata.

Forta Local Mode Sentinels

You can now monitor Forta Alerts published from your Forta Scanner Nodes running in Local Mode with Sentinels. Just enter the address of your Scanner Node when creating a sentinel and then set the webhook URI from your newly created Sentinel in your Scanner Node configuration. You can find more information about Local Mode nodes at the Forta Docs.

Manage and Inspect Access Control

When importing a contract that's compliant with OpenZeppelin's Role Based Access Control, you will now be able to create a access control change proposals.

These new type of proposal lets you easily grant and revoke access to any of your contract roles, replacing most of the complexity involved in properly configuring the underlying contract calls (to grantRole and revokeRole) with a simple point and click interface.

Support for speed up transactions in Admin

Defender Admin now supports sped up transactions. Before, under certain circumstances, if you sped up a transaction while interacting with Admin, Defender could lose track of the replacement. From now on, this scenario is transparently handled for you.

Support for Optimism Goerli and Arbitrum Goerli

Defender now supports Optimism Goerli and Arbitrum Goerli, with all Defender components enabled in both networks.

4 Likes