This a basic metacoin, with minimal modifications to support working through GSN, without the client paying for gas. You still need a wallet, but only for signing transactions, not paying for them.
See https://github.com/opengsn/gsn for the GSN project.
The Metacoin itself pays for all transactions.
Other than supporting GSN, the project added links to tenderly and etherscan, to ease seeing the various components on the blockchain
- Run
npm install
- Run
npm run ganache
to run local ethereum node - In another terminal, Run
npm run dev-with-gsn
to run metacoin demo onhttp://localhost:8080
- Run 1 and 2 as above.
- Run
npx gsn deploy-relay-hub
- deploys and configures the RelayHub.sol contract and its dependencies. - Run
npx gsn fund-paymaster
- Deposits funds in RelayHub for the paymaster's balance so it can be charged later for the relayed transactions. - In another terminal, run
npx gsn run-relayer --DevMode --Workdir <workdir> --RelayHubAddress <address>
where workdir could be any temporary dir i.e./tmp/server/
and hub address as output in 2. - Run
npx gsn register-relayer
- pings the relay url, stakes its manager address thus prompts it to register and serve user requests. - Run
npx truffle migrate && npm run dev
to deploy Metacoin.sol contract, webpack and run local site athttp://localhost:8080
.