There is a rising issue concerning the country’s financial sector. To solve this, the government decided to move its financial system to the Blockchain for better transparency and accountability.
The #G-Naira(gNGN) is a digital currency that uses the ERC-20 token standard.
The contract has a GOVERNOR who has the only right/access to:
- Mint new token currency
- Burn token currency
- Blacklist address/es to prevent them for sending and receiving tokens
The contract also has a Multi-Signature Wallet for secure Minting and Burning of Tokens
The contract was deployed on the sepolia-Testnet with a TotalSupply of 100000000 and Maximum Supply of 1000000000, using Hardhat as the dev environment and Alchemy as the node provider.
- 0x68073d37e4F50aF4346C3ADCDBa7A7a5F3a58B84
- 100000000
- 1000000000
The Replit url contains just the code.
- The G-Naira Decentralized Application is available online at:
- https://gnaira.vercel.app/
Only the Governor has access to execute major functions or EVM calls. For full interaction with the Dapp, I recommend you re-deploy the smart contract using your own Private Key and API and then copy the contract Address and ABI that is generated and replaced it with the contract Address and ABI inside the config.js file inside constants folder of the frontEnd.
The images below shows the various outputs and cases on the UI of Remix-IDE, when the contract is deployed and interacted with.
- This shows the Token-Name, Token-Symbol, Governor, Maximum Supply and TotalSupply
- This shows the output when the "Governor account" is executing the functions. All functions will be successful, since only the Governor has the right/access to execute them.
- This shows the output when the "non-Governor" is executing the functions. All functions will be reverted/unsuccessful.
- This shows the output of sending token currency to blacklisted account. The transaction will be reverted, since Blacklisted account cannot send or receive token currency
- This shows the output of sending token currency to non-blacklisted account. The transaction will not be reverted, since non-Blacklisted account is allowed by the Governor send or receive token currency
- This shows the output of Setting up Multi signature wallet and Minting and Burning using the MultiSig wallet. The transaction will be successful, if it is done and signed by the signatory to the contract account, knowns as the "Signers"
- This shows the output of Setting up Multi signature wallet and Minting and Burning using the MultiSig wallet. The transaction will be reverted.
This is the Mint token Currency Page, when I sent transaction and is still Mining (Sent to the Blockchain for confirmation by miners)
This is the Mint token Currency Page, when the transaction has been Mined (Block confirmations by miners)
This is the Burn Token Page, when I sent transaction and is still Mining
This is the Burn Token Page, when the transaction has been mined
This is the Blacklist Address Page when I sent transaction and is still Mining
This is the Blacklist Address Page, when the transaction has been mined.
This is the Blacklist Address Page when I sent transaction and is still Mining
This is the Blacklist Address Page, when the transaction has been mined.
This is the transfer token currency page, when I sent transaction and is still mining
This is the transfer token currency page, when the transaction has been mined.
This is the transaction log on etherscan for all the interactions i did so far on the G-Naira contract.
This project is subject to further improvements and addition of new features and upgrades.
-
Functions: More of the smart contract functions will be integrated to the FrontEnd
-
Security: More security features will be added to the Smart contract
-
UI features. more features will be added for the UI
-
Custom message: more custom message will be added to show the successful or error during transaction on the UI
-
And more
This Project is Open for Contribution by all, Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
- Fork this repository
- Clone your forked repository
- Add your scripts
- Commit and push
- Create a pull request
- Wait for pull request to merge
Give a ⭐️ if this project helped you!