zoro9483 / ERC721-Tutorial

Simple tutorial for a customizable marketplace for buying and selling on OpenSea
1 stars 0 forks source link

Decentralized applications (dapps) #2

Open zoro9483 opened 2 years ago

zoro9483 commented 2 years ago

Decentralized applications (dapps) Applications using smart contracts for their processing and/or datastorage are called "decentralized applications", or "dapps"

The application itself can be hosted on a traditional web server or on a decentralized file service such as Swarm or IPFS.

zoro9483 commented 2 years ago

And what is the best way to create your own dapp, test it, and deploy it to an Ethereum network of your choice? With Truffle, of course.

zoro9483 commented 2 years ago

Local test networks The Ethereum blockchain can be simulated locally for development. Local test networks process transactions instantly and Ether can be distributed as desired. An array of Ethereum simulators exist; we recommend Ganache.

Public test networks Developers use public test networks (or testnets) to test Ethereum applications before final deployment to the main network. Ether on these networks is used for testing purposes only and has no value.

There are three public test networks in wide usage:

Ropsten: The official test network, created by The Ethereum Foundation. Its functionality is similar to the MainNet.

Kovan: A network that uses a consensus method called "proof-of-authority". This means its transactions are validated by select members, leading to a consistent four second block time. The supply of ether on this testnet is also controlled to mitigate spam attacks.

Rinkeby: A testnet also using proof-of-authority, created by The Ethereum Foundation.

zoro9483 commented 2 years ago

Building the Blockchain Ecosystem

https://www.b9lab.com/ https://www.callmegwei.com/crypto-resources/

zoro9483 commented 2 years ago

Welcome Ethernauts! This repo contains a list of challenges you may want to try to conquer while learning Solidity and Web3 development. Please feel free to PR new challenges, and share your solutions in our discord.

Challenge 1 - Diamond Hands Difficulty

Solidity: Easy dApp: n/a Objectives

Build a diamond hands contract that allows users to deposit ETH. Every time they deposit ETH, it will be locked for two years. After two years, they will be able to withdraw the ETH. Full unit test coverage: your implementation should run unit tests on the contract and actually confirm all of its functionality. Hints Use hardhat - it has everything you need to compile, run a local chain, run unit tests, skip forward in time, etc.

====== Challenge 2 - AAVE Ejector Difficulty

Solidity: Medium dApp: n/a Objectives

Build a contract that can help you close an AAVE position with multiple collateral and borrow asset types. You may use AAVE's "pay with collateral" feature, or flash loans. Ability to test your solution against any AAVE position via mainnet forking and account impersonation. Full unit test coverage: your implementation should run unit tests on the contract and actually confirm all of its functionality. Hints

Use hardhat - it has everything you need for this task.

================= Challenge 3 - Yield Farm Difficulty

Solidity: Medium dApp: Medium Objectives

Build a Yield Farm that allows anyone to deposit tokens and gain yield. The Yield Farm needs to implement at least one token that is not the governance token. Needs to contain at least 2 pools and 2 Farms. Full unit test coverage: your implementation should run unit tests on the contract and actually confirm all of its functionality. Hints

Use hardhat for unit testing You can use Pancake or Uniswap dApp models for the frontend


Challenge 4 - NFT staking Difficulty

Solidity: Easy dApp: n/a Objectives

Build an NFT Staking contract that will reward the users with a custom ERC20 token based on their staking period that they choose. Example: I can stake my NFT for 1 month and I get a reward of X%, I stake it for 6 months and I get a reward of 2X% and so on. The NFTs that are used for staking must be also present in a custom OpenSea collection. Full unit test coverage: your implementation should run unit tests on the contract and actually confirm all of its functionality. Hints

Use hardhat for unit testing Use Rinkeby for OpenSea testnet

zoro9483 commented 2 years ago

https://github.com/OpenZeppelin/ethernaut/pull/272/files