βοΈ
π For our graduation project our team: Natalia Burrey, Jonah Leggett, Miguel Ortega and Samuel Yang - assumed a role of a Fintech professional and very exited to introduce a blockchain-based solution for a real world problem
In the 21st century we are finally witnessing the legalization of CANNABIS. America has led the charge to decriminalize medical and recreational use of marijuana.
Cannabis is now legal in 19 states- but not on the federal level. This means that small business owners such as dispensaries, manufacturers, & vendors cannot legally have a bank account or credit line. Cannabis customers must withdraw cash from their bank accounts to make a purchase. Cannabis business owners have to operate solely with cash. This is a complex problem and has to be addressed on a federal level. In the meantime we would like to introduce a FinTech solution: BUDDY Token - Ethereum based cryptocurrency .
We use the crypto to attract new type of customer, who is more engaged and spends more
Programmable money is a transparent, secure way to control the capital
Moreover Etherium is an investable asset- which grows over time, offers a hedge for inflation.
-
Repository BUDDY TOKEN was created on a GitHub.
-
Our team made sure files were frequently committed to repository.
-
Commit messages with appropriate level of detail included with each commit.
-
Repository organized, relevant information about the project files included.
Remix IDE used to interact with Etherium blockchain, create and deploy smart contracts. Remix - Ethereum IDE is an open source web and desktop application. It fosters a fast development cycle and has a rich set of plugins with intuitive GUIs. Remix is used for the entire journey of contract development as well as being a playground for learning and teaching Ethereum.
OpenZeppelin provides security products to build, automate, and operate decentralized applications. We also protect leading organizations by performing security audits on their systems and products.
MetaMask allows users to store and manage account keys, broadcast transactions, send and receive Ethereum-based cryptocurrencies and tokens, and securely connect to decentralized applications through a compatible web browser or the mobile app's built-in browser. For the purpose of challange we will create an environment and use paper trade Etherium to showcase crowdsale of our Token
Ganache allows us to quickly fire up a personal Ethereum blockchain which you can use to run tests, execute commands, and inspect state while controlling how the chain operates. we will use it in this challenge to create a personal blockchain for rapid Ethereum distributed application development and test our crowdsale contract in a safe and deterministic environment.
IPFS The InterPlanetary File System is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.
- Streamlit application created. You can find a demonstration following link
https://www.youtube.com/watch?v=ltaTwjhq5u8
- 2 Solidity smart contracts created:
Buddy (BUD) Token Smart Contract
-
Creates a fungible token using the ERC-20 standard
-
Solidity Contract from the OpenZeppelin library
-
This contract manages the entire purchase process, allowing users to send ETH to the contract and in return receive BUD tokens.
-
Automatically mints BUD Tokens during purchase flow
-
Includes an Oracle to make API call for current ETH/BUD prices
Buddy NFT Coupon Smart Contract
Creates NFT Coupons to disperse to customers for marketing purposes
Allows Owner to mint new NFT coupons, and transfer to any wallet
Users can transfer between each other
NFT's stored on IPFS for decentralized storage (reduce gas fees)
NFT data stored to view coupon history (owners, usage, etc.)
Screen.Recording.2021-09-02.at.8.04.05.PM.mov
And this is the final version of an NFT coupon:
BUDCoupon.mp4
We used following Open Zeppelin lib, some of them was not covered in the class
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v2.5.0/contracts/token/ERC721/ERC721Full.sol"
-
You can find Code written in Solidity, well commented with concise, relevant notes.
-
GitHub README.md file includes a concise project overview. We followed step by step Technical requirements for grading team convenience.
-
GitHub README.md file includes detailed usage and installation instructions How to install
-
GitHub README.md file includes examples of deployment, the application .
- Save remote repo from GitHub to your computer (Desktop): in Terminal type:
cd desktop
git clone https://github.com/JonahLeggett/Buddy_Token.git
Now you can find repo on your desktop
π© Jonah Leggett *βοΈ +1(415) 430-8265 π§ [email protected] π© Miguel Ortega *βοΈ +1(209) 417-7944 π§ [email protected] π© Natalia Burrey *βοΈ +1(805)722-2619 π§ [email protected] π© Samuel Yang *βοΈ +1(714) 609-8073 π§ [email protected]
β MIT LICENSE