https://github.com/openzeppelin/gsn-site
The Ethereum Gas Station Network Alliance Landing Page and Tools
https://github.com/openzeppelin/gsn-site
Last synced: 10 months ago
JSON representation
The Ethereum Gas Station Network Alliance Landing Page and Tools
- Host: GitHub
- URL: https://github.com/openzeppelin/gsn-site
- Owner: OpenZeppelin
- License: mit
- Created: 2019-07-02T23:30:32.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-04-29T21:31:27.000Z (almost 3 years ago)
- Last Synced: 2023-08-13T00:11:01.948Z (over 2 years ago)
- Language: JavaScript
- Size: 3.38 MB
- Stars: 11
- Watchers: 15
- Forks: 15
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
:warning: This project is in **maintenance mode**. All development on the GSN has been moved to the [OpenGSN](https://github.com/opengsn) organization. Please refer to the [OpenGSN site implementation](https://github.com/opengsn/gsn-site). We will only be releasing fixes for high severity issues for this project until July 2020. Read [here](https://forum.openzeppelin.com/t/doubling-down-in-security/2712) for more info.
# Gas Station Network Site
The official front end for the [Gas Station Network](https://gasstation.network). The staging site is [here](https://gsn-staging.netlify.com).
## GSN Test Environment
The Gas Station Network is currently deployed to Rinkeby. The addresses are:
| Role | Address | Description |
| ---- | ------- | ----------- |
| RelayHub | [0xd216153c06e857cd7f72665e0af1d7d82172f494](https://gsn-staging.netlify.com/relay-hubs/0x4FC8ac0210527bCA8c5C66a595Da78B428862276) | Main RelayHub contract |
| SampleRecipient | [0x9C7bd19648BF9538eE9986b0E2BF18daaA80601c](https://gsn-staging.netlify.com/recipients/0x9C7bd19648BF9538eE9986b0E2BF18daaA80601c) | Example contract that handles meta tx |
| Relay | [0xeE90C66Ed6Aaafbf2DBcd34c84c395905B5C8f20](https://gsn-staging.netlify.com/relay-hubs/0x4FC8ac0210527bCA8c5C66a595Da78B428862276/relay?relayUrl=https://rinkeby-01.gsn.openzeppelin.org) | Relay deployed to https://rinkeby-01.gsn.openzeppelin.org |
# Local Setup
The GSN site can be run locally using just a few commands:
```
# install dependencies
yarn
```
```
# Setup environment variables. See the file for more info.
cp .envrc.example .envrc
# allow environment variables
direnv allow
```
```
# Start up the local server
yarn dev
```
Now navigate to [localhost:3000](http://localhost:3000) in your browser. You'll be able to build against test nets such as Rinkeby.
For full control over the smart contracts you'll want to setup the Gas Station Network locally.
## Gas Station Network Local Test Environment
Setup a local clone of [tabookey-gasless](https://github.com/tabookey/tabookey-gasless).
Once the dependencies are set up you can run:
```
./restart-relay.sh
```
This will start up a local ganache, deploy the contracts, create a sample recipient, and create a relay. You may need to run this command a couple of times; it was a little flakey at the time of this writing.
To mint Ether to yourself on the ganache instance, use the command:
```
./scripts/ganache-fund.js 10 0x1234...
```
Replace `0x1234...` with your address.
In your browser simply use the network `Localhost 8545`. You may need to reset the account.
You'll find Tabookey has cleverly deployed consistent addresses.
| Role | Address | Description |
| ---- | ------- | ----------- |
| RelayHub | [0xCfEB869F69431e42cdB54A4F4f105C19C080A601](http://localhost:3000/relay-hubs/0xCfEB869F69431e42cdB54A4F4f105C19C080A601) | Main RelayHub contract |
| SampleRecipient | [0x254dffcd3277C0b1660F6d42EFbB754edaBAbC2B](http://localhost:3000/recipients/0x254dffcd3277C0b1660F6d42EFbB754edaBAbC2B) | Example contract that handles meta tx |
| Relay | [0xeE90C66Ed6Aaafbf2DBcd34c84c395905B5C8f20](http://localhost:3000/relay-hubs/0xCfEB869F69431e42cdB54A4F4f105C19C080A601/relay?relayAddress=0xeE90C66Ed6Aaafbf2DBcd34c84c395905B5C8f20) | Relay deployed to http://localhost:8090 |
# Production Deployment
The app can currently be deployed to Netlify. Url re-write rules are required so that static pages can serve dynamic urls. The url re-write configuration lives in `netlify.toml`.
To build the production version of the site run:
```
$ yarn dist
```
# Configuring the built-in RelayHub addresses
The directory `networks` contains a configuration file for each network the contracts are deployed to. Network files are named according to the network id: contracts for mainnet live in `networks/1.json`, contracts for rinkeby live in `networks/4.json` etc.
Network files are JSON formatted and the expected structure is an array of objects. For example:
```
[
{
"contractName": "RelayHub",
"address": "0x4FC8ac0210527bCA8c5C66a595Da78B428862276"
}
]
```
You can add and edit the network config files to add new RelayHubs. Only one RelayHub per network is supported by the application.
##### Made with :heart: by [Delta Camp](https://delta.camp)