:warning: This project is deprecated. All development on the GSN has been moved to the OpenGSN organization. Please refer to the OpenGSN provider implementation (GSNv1 version here). We won't be developing new features nor addressing issues. Read here for more info.
A web3.js compatible provider for sending transactions via the Gas Station Network (GSN). This package wraps a modified version of the RelayClient
from tabookey-gasless
with a custom web3 Provider.
$ npm install @openzeppelin/gsn-provider
Create a GSNProvider
and use it as the provider for your web3 instance:
const Web3 = require("web3");
const { GSNProvider } = require("@openzeppelin/gsn-provider");
const web3 = new Web3(new GSNProvider("http://localhost:8545"));
Transactions sent to contracts will then be automatically routed through the GSN:
const myContract = new web3.eth.Contract(abi, address);
// Sends the transaction via the GSN
await myContract.methods.myFunction().send({ from });
// Disable GSN for a specific transaction
await myContract.methods.myFunction().send({ from, useGSN: false });
Released under the MIT License.