You are on page 1of 3

Decentralized-BANK Account

Deadline: 23-12-2022

Project summary
Fund_me is a web3 project that can allow users to fund a smart contract with MATIC tokens
based on real-time Dollar price feed with the possibility to withdraw their deposits later.

1. the brownie should be used as a smart contract development and testing framework.
2. Brownie project should be configured for local blockchain and public testnet
3. The minimum deposit is 50$.
4. The smart contract should be protected by the address owner
5. This project should be tested on the local blockchain and deployed using
MockV3Aggregator and Ganache.
6. Integer Underflow/Overflow should be protected by Safemath libraries from chainlink or
openzeppelin
7. AggregatorV3Interface should be used to get real-time on-chain price feed data.
8. Use alchemy as a blockchain as a service provider.
9. Install metamask as a wallet service.
10. get faucets from chainlink on the Mumbai network to be able to deploy smart contracts
and make transactions.

GOALS
1. Get introduced to solidity language for EVM smart contracts.
2. Get introduced to Chainlink oracle.
3. Get introduced to libraries from NPM and Solidity.
4. Get introduced to the development and testing framework targeting Ethereum Virtual
machine smart contracts
5. Get introduced to Blockchain as a service provider INFURA or Alchemy
6. Get introduced to faucets and wallet providers such as metamask
7. Get introduced to the local and personal blockchain using GANACHE.
8. Get introduced to a public blockchains like polygon and testnet like Mumbai

BIG STEPS
● Payable,msg.sender, msg.value, units of measure
● Chainlink Oracle
○ Decentralized Oracles Network Chainlink
■ Blockchains can’t make API calls
■ Centralized nodes are points of failure
○ data.chain.link
○ Getting External Data with chainlink Oracles
■ Chainlink
■ Faucet and Contract Addresses
● MUMBAI TESTNET
○ Alchemy & Infura
● Getting price information
■ Importing from NPM and Advanced Solidity
● Decimals / Floating point number in Solidity
● LatestRoundData
● Importing from NPM web3.js or Ethers.js
● Interfaces
○ Introduction to ABIs
● Getting price feed Adresses
● Get Price
● Tuples
○ Unused Tuple variables
● Matching units (WEI,GWEI,ETH)
● GetConversionRate
● SafeMath & Integer overflow
● Require
● Revert
● Withdraw function
● Transfer
● Balance
● this
● Contract owner
● Constructor
● ==
● Modifiers
● Resetting
● for loop
● Array Length
● Forcing a transaction
● Recap
○ Koubaib Maamouri +1 + 0.5 project;
○ Dhia Eddine LAKTI +0.5;

You might also like