v2.2.1 Release
This is the latest version deployed on the Ethereum mainnet, including contracts, client and relay servers.
The audits
folder includes the security audit reports by Least Authority and Chainsafe.
This is the first release with a monorepo project structure. The old @opengsn/gsn
package is now deprecated, instead every component is published separately on npm:
@opengsn/contracts
@opengsn/provider
@opengsn/relay
@opengsn/cli
Client Changes
A client must import the @opengsn/provider
package instead of @opengsn/gsn
.
Relay Server Changes
The relayer code is published as @opengsn/relay
The opengsn/jsrelay
docker container we maintain is still the recommended way to run the relay server.
The Relay Server now needs to know its owner in advance. Its configuration must have a new item:
"ownerAddress": "0x..."
CLI changes
The gsn relayer-register
tool now verifies that the relayer it attempts to register indeed has the correct owner address, and refuses to send funds to it otherwise.
Experimental gsn status
command is created.
Contract Changes
- The import statements for Recipients and Paymasters smart-contracts should be changed to:
import "@opengsn/contracts/src/BaseRelayRecipient.sol";
import "@opengsn/contracts/src/BasePaymaster.sol";
In the version string (versionRecipient
or versionPaymaster
), the version string must conform to SemVer and start with "2.2."
- Solidity compiler version bumped to 0.7.6
- Staking for relay on
StakeManager
now has to be authorized by the Relay Server. - Penalization of illegal transactions now uses a commit-reveal scheme to prevent front-running. Penalization of EIP-2930 transaction types added in Berlin is now supported.