Skip to content

The goal of this project is creating an app through which gas buyers can join a promotion of a specific gas station. After joining this promotion, customers earn points/tokens when buying gas. These points/tokens are stored in ITFS network Infura and can be exchanged for NFTs - “Oil stains” or donated. Gas station owner administrates the promoti…

License

Notifications You must be signed in to change notification settings

VladislavGlupak/Gas-Promotion-Smart-Contract

Repository files navigation

Contributors Forks Stargazers

Main

Gas-Promotion-Smart-Contract

This project repository represents a pay-to-earn promotion where a gas station owner can offer their customers rewards through gasoline purchases. Rewards can be accumulated, exchanged for unique NFT art ("Oil stains”), or donated to a non-profit of their choice. The NFT’s are kept in the IPFS network - Infura. The administrator manages the promotion and the customer decides how to use their rewards.


Table of Contents


Technologies and tools

This project leverages the following tools, API and libraries:

  • Solidity ^0.6.6 - programming language for implementing smart contracts.

  • Remix IDE - Remix IDE allows developing, deploying and administering smart contracts for Ethereum like blockchains.

  • Ganache - a personal Ethereum blockchain.

  • Metamask - is a software cryptocurrency wallet.

  • Infura - IPFS Api - an IPFS network.

  • Streamlit - is an open-source app framework for Machine Learning and Data Science teams.

  • Web3.py - is a Python library for interacting with Ethereum.

  • OpenZepplelin - ERC721 - set of interfaces, contracts, and utilities are all related to the ERC721 Non-Fungible Token Standard.

OpenZeppelin libraries:

ERC721 token:

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.0.0/contracts/token/ERC721/ERC721.sol"

App flows

Simple:

Simple Flows

Detailed:

Flows


Project structure