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:
-
Sending a transaction via API or using the defender-relay-client with the
maxFeePerGas
andmaxPriorityFeePerGas
parameters specified -
Sending a transaction via UI or with the defender-relay-client using the
speed
parameter instead of a fixed gas pricing values and having theEIP1559Pricing
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.