Skip to content

Awesome smart contracts to become a better contract designer. Complete course: https://www.blocktrain.info/course

Notifications You must be signed in to change notification settings

0xblocktrain/smart-contract-course

Repository files navigation

Smart contracts

These contracts are meant for education only. Learn the design aspect of smart contracts.

Subsciption smart contract

This contract allows users to subscribe to the service by calling the subscribe function and providing their subscription rate. The contract then automatically charges the user's account on a regular basis, as specified by the subscription rate. Users can also unsubscribe from the service by calling the unsubscribe function. The contract also has a processPayments function that can be called on a regular basis to process the payments for all active subscriptions.

Ecommerce smart contract

This contract allows for the listing and purchasing of products. The contract maintains a record of the product listings and handles the transaction process when a product is purchased.

Votind smart contract

This contract allows for voting in an election, with each candidate being represented by their name. The contract keeps track of the number of votes received by each candidate, as well as a flag to indicate if the voting is ongoing. It also has functions to end the voting and get the results of the voting. The contract also emits an event when a vote is cast.

Auction smart contract

This contract allows for bidding on an item in an auction. The contract keeps track of the current highest bid and has a flag to indicate if the auction is ongoing. It also has a function to end the auction and award the item to the highest bidder. The contract also emits an event when a new bid is made.

Supply chain contract

This contract allows for the tracking of products in a supply chain. Each product is represented by a unique ID and has associated information, such as the current owner, previous owners, and history. The contract has functions to add a new product to the supply chain, transfer ownership of a product, and get the current owner, previous owners, and history of a product. The contract can be used as part of a larger supply chain system, where each step in the supply chain is represented by a separate contract that communicates with this contract to track the movement of goods.

Membership smart contract

This contract allows for the management of a membership system. Each member is represented by their address and has associated membership information, such as whether their membership is active and the perks associated with their membership. The contract has functions to join the membership system, add perks to a member's membership, and get the perks of a member's membership.

Escrow smart contract

This contract allows for the depositing of funds into an escrow contract, where they are held until the funds are released by the contract owner. The contract has a flag to indicate if the funds are currently locked in escrow, as well as a function to deposit funds and a function to release the funds from escrow. This contract can be used as part of a larger escrow service, where the conditions for releasing the funds are determined by the parties involved in the transaction.

Referall smart contract

This contract allows for the tracking of referral relationships and the rewarding of users for making referrals. Each user is represented by their address and has associated referral information, such as their referrer and the users they have referred. The contract has functions to join the referral system, get a user's referrer and referred users, and reward a user for making a referral. This contract can be used as part of a larger referral system, where the conditions for earning a reward and the amount of the reward are determined by the parties involved in the referral.

Insurance smart contract

This contract allows for the purchase of insurance policies and the making of claims on those policies. Each policy is represented by a unique ID and has associated information, such as the policy owner and the coverage amount. The contract also maintains a record of claims made on the policies, including the claim amount and whether the claim has been approved by the insurer. The contract has functions for purchasing a policy, making a claim, approving a claim, and getting the coverage amount for a policy.

Loan lending contract

This contract allows for the creation of loan listings, where a user can specify the amount they are willing to lend. Other users can then take out the loan by transferring the funds to the borrower. The contract maintains a record of the loans and their current status, such as the lender, borrower, and repaid status. The contract has functions for creating a loan listing, taking out a loan, repaying a loan, getting the borrower for a loan, and getting the repaid

Fundraising

This contract allows for fundraising, with the owner of the contract being the recipient of the funds raised. The contract keeps track of the total amount of funds raised and has a flag to indicate if the fundraiser is ongoing. It also has a function to end the fundraiser and send the funds to the owner. The contract also emits an event when a contribution is made.

Election smart contract

This contract allows for voting in an election, with each candidate being represented by their name. The contract keeps track of the number of votes received by each candidate, as well as a flag to indicate if the election is ongoing. It also has functions to end the election and get the winner of the election.

Staking smart contract

A staking smart contract on Uniswap or Curve finance would typically include the following elements:

  • The specific token that will be staked (for example, a particular cryptocurrency like Ether or a token created on the platform)
  • The minimum and maximum amount of tokens that can be staked
  • The duration of the staking period (for example, a fixed number of days or weeks)
  • The rewards that will be earned for staking (for example, a fixed amount of tokens or a percentage of the staked amount)
  • Any other terms and conditions of the staking, such as fees or penalties for early withdrawal

Flash loan contract

A flash loan is a type of smart contract on a blockchain that allows users to borrow a certain amount of funds for a short period of time without collateral. These loans are often used in complex financial transactions and require strict conditions to be met in order to ensure their safe and successful execution.

Ecommerce

This contract allows for the listing and purchasing of products. The contract maintains a record of the product listings and handles the transaction process when a product is purchased.

About

Awesome smart contracts to become a better contract designer. Complete course: https://www.blocktrain.info/course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published