Release 3.0.0-beta.7
New features:
- OG-1026: Create
SingletonWhitelistPaymaster
Previously, the WhitelistPaymaster was only able to serve a single dapp operator, meaning everyone who wanted to use such a Paymaster had to deploy their own instance to the selected chain.
This change introduces a SingletonWhitelistPaymaster
that will be deployed on each chain together with the GSN contracts. It will allow dapp developers to sponsor transactions for specified senders, targets and methods on those targets, without having to deploy their own Paymaster. Currently only deployed on Goerli network.
- OG-1022: Publish the
PermitERC20UniswapV3Paymaster
An experimental Paymaster contract that uses ERC-20 tokens with meta-transaction support via a permit()
function to pay for gas.
The Paymaster maintains a positive cash-flow by converting the tokens on Uniswap v3. Currently only deployed on Goerli network.
- OG-1027: Publish the official Paymasters addresses as part of the GSN
Previously, the only way to find the official deployed addresses for GSN contracts was through the documentation page (https://docs.opengsn.org/networks/addresses.html).
Going forward, we will be adding all necessary addresses as part of the GSN NPM package. You can access the OfficialPaymasterDeployments
global object, or provide an enum value of PaymasterType
instead of a Paymaster address in the GSN configuration.
Warning - highly experimental feature.
Fixes and improvements:
- OG-1039: Fix "max priority fee per" exceeding "max fee per gas"
As part of adjusting its gas fees for the Relay Server's demands, the GSN provider could get itself into an invalid state.
- OG-1030: Make
RelayProvider
implementExternalProvider
interface
Now there is no TypeScript error when wrapping RelayProvider
instance with an ethers.Web3Provider
.
- OG-1031: Avoid calling to 'getAddress' on underlying provider
This issue prevented using the GSN with a JsonRpcProvider
and an Ephemeral Keypair. This must be resolved.
- OG-1029: If RelayHub address is "0x00..00" on the Paymaster throw an exception