Release 3.0.0-beta.2
Pre-releaseNote: The GSN v3.0.0-beta.2
includes breaking changes and is not compatible with v3.0.0-beta.1
.
Improvements:
-
The Relay Servers now return the range of the gas fees they support in the "Ping Response"
Previously, the users were forced to sign the same transaction multiple times only to see their requests rejected.
Now, the Relay Clients will no longer send transactions to Relays whose acceptable gas fee ranges are invalid. -
Enable the private RelayServer registration.
Previously, the Relay Server would refuse to start without a configured URL, and the clients were unable to handle such servers anyway.
Now, configuring a Relay Server without a URL is allowed and will make it invisible to the rest of the GSN network. However the Relay Clients can use the servers URL or IP address as apreferredRelays
value. -
More control over addresses your Relay Server will serve exclusively and ability to deny service to some contracts.
Previously, the GSN Relay Servers supported only Paymasters blacklist.
Now, the new configuration parameters are:whitelistedPaymasters
,blacklistedPaymasters
,whitelistedRecipients
,blacklistedRecipients
. -
Made
GsnDomainSeparatorType.name
field configurable.
Previously, customers of all dapps were seeing theGSN Relayed Transaction
message in the MetaMask popup.
Now you can configure it with adomainSeparatorName
parameter for Relay Providers. Your application will have to register this type with the Forwarder contract. -
Support custom derivation paths for mnemonics and custom private keys in CLI commands.
The new command-line parameters are:--mnemonic
,--derivationPath
,--derivationIndex
,--privateKeyHex
-
Improved WhitelistPaymaster.
TheWhitelistPaymaster
allows you to configure a whitelist of senders, targets and methods on those targets. -
The new
PermitERC20UniswapV3Paymaster
c
Previously, this Paymaster performed a Uniswapswap
operation on every transaction. This caused it to be very expensive to use.
Now, the Paymaster will only perform aswap
periodically. This significantly decreases the overhead of using the GSN to pay for transactions in ERC-20 tokens.
Fixes:
-
Removed calls to
getNetworkType
inContractInteractor
. This function works by requesting a hash of block #0, which is not available on many networks. -
Fixed bug where
eth_getTransactionByHash
would return an incorrectactualTransactionHash
(byakkien
). -
Fixed exception thrown in
ContractInteractor
inPromise.catch
context meaning it was impossible totry
/catch
it. -
Fixed broken global npm installation of
@opengsn/cli
package. -
Fixed Relayer crashes if network supports EIP-1559 transactions but the RPC node does not support "eth_feeHistory" API.
-
Node.js specific packages no longer required by the Relay Provider, simplifying configuration for Webpack.
-
Reduced the number of RPC calls the Relay Server performs when idle. This will help with Relay Servers reaching their API key quotas and halting.
-
Fixed the parameters for 'getFeeHistory' query to be configurable and default to a correct values (5 blocks, 50%) instead of incorrect (1 block, 0.5%). This might have affected your Relay Server causing it to refuse legitimate transactions due to gas fees range being incorrect.
And a lot of more minor bug fixes.