Skip to content

Release 3.0.0-beta.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@forshtat forshtat released this 19 Sep 11:54
· 67 commits to master since this release
13b69a6

Note: The GSN v3.0.0-beta.2 includes breaking changes and is not compatible with v3.0.0-beta.1.

Improvements:

  1. 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.

  2. 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 a preferredRelays value.

  3. 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.

  4. Made GsnDomainSeparatorType.name field configurable.
    Previously, customers of all dapps were seeing the GSN Relayed Transaction message in the MetaMask popup.
    Now you can configure it with a domainSeparatorName parameter for Relay Providers. Your application will have to register this type with the Forwarder contract.

  5. Support custom derivation paths for mnemonics and custom private keys in CLI commands.
    The new command-line parameters are: --mnemonic, --derivationPath, --derivationIndex, --privateKeyHex

  6. Improved WhitelistPaymaster.
    The WhitelistPaymaster allows you to configure a whitelist of senders, targets and methods on those targets.

  7. The new PermitERC20UniswapV3Paymaster c
    Previously, this Paymaster performed a Uniswap swap operation on every transaction. This caused it to be very expensive to use.
    Now, the Paymaster will only perform a swap periodically. This significantly decreases the overhead of using the GSN to pay for transactions in ERC-20 tokens.

Fixes:

  1. Removed calls to getNetworkType in ContractInteractor. This function works by requesting a hash of block #0, which is not available on many networks.

  2. Fixed bug where eth_getTransactionByHash would return an incorrect actualTransactionHash (by akkien).

  3. Fixed exception thrown in ContractInteractor in Promise.catch context meaning it was impossible to try/catch it.

  4. Fixed broken global npm installation of @opengsn/cli package.

  5. Fixed Relayer crashes if network supports EIP-1559 transactions but the RPC node does not support "eth_feeHistory" API.

  6. Node.js specific packages no longer required by the Relay Provider, simplifying configuration for Webpack.

  7. 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.

  8. 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.