/gastoken

⛽ Tokenize gas on Ethereum with GasToken ⛽

Primary LanguagePython

GasToken is an Ethereum ERC20 smart contract that lets users tokenize gas, an internal resource used in Ethereum to pay for transactions. The idea is simple: store gas when gas prices are low, release it when gas prices are high and experience lower transaction fees. GasTokens can be traded like any other ERC20 token.

The details on how GasToken works can be found here: https://gastoken.io

This repository contains the Solidity code for two GasToken variants (GST1 and GST2) and exhaustive test suites of those contracts' functionalities. The contract/ folder contains our smart contracts, the test/ folder contains our pyethereum.tester based test suite.

Deployments

The contracts are deployed on Ethereum, Kovan (testnet), Rinkeby (testnet), Ropsten Revived (testnet), and Ethereum Classic.

Ethereum

Ropsten

Rinkeby

Kovan

Ethereum Classic

The GST2 code deployed on Ethereum Classic slightly differs from that on Ethereum and the testnets. For details, check out contract/GST2_ETC.sol

Dependencies

The code was tested using python 3.6.2 and Solidity Version: 0.4.18+commit.9cf6e910.Darwin.appleclang

Run

$ python -m pip install -r requirements.txt

to install the required dependencies.

Run Tests

To run the tests for the Storage-based GasToken (GST1), run

$ python -m test.test_GST1

To run the tests for the Contract-based GasToken (GST2), run

$ python -m test.test_GST2

To run tests for the RLP encoding used in GST2, run

$ python -m test.test_rlp

Authors

We are a team of blockchain researchers from around the world:

with advice, review, and support from Ari Juels (Cornell Tech, IC3, The Jacobs Institute).

We offer absolutely no support, guarantees, advice, or other help with GasToken. If you like it, use it.