NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Step 1 - Smart contract implementation

This is a basic Solidity smart contract for a lending system that allows the owner to lend money to borrowers, receive repayments, and keep track of the total amount of money lent.

The contract has a state variable owner, which is an address payable and will be set to the address of the contract creator when the contract is deployed.

There is also a mapping loans that maps an address to the amount of money they have borrowed. This is a public mapping, which means that anyone can read the amount borrowed by any borrower.

The contract has four functions:

constructor() is a constructor function that sets the owner variable to the address of the contract creator.

lend(address borrower, uint256 amount) is a function that allows the owner to lend money to a borrower. The function checks that the caller is the owner and that the amount being lent is greater than 0. It then adds the amount to the loans mapping for the specified borrower and updates the totalLent variable.

repay(address borrower, uint256 amount) is a function that allows a borrower to repay a loan. The function checks that the borrower has borrowed at least the specified amount, then deducts the amount from the loans mapping for the specified borrower and updates the totalLent variable. Finally, the owner receives the repayment amount through the transfer function.

getLoan(address borrower) is a view function that returns the amount of money that a borrower has borrowed.

getTotalLent() is a view function that returns the total amount of money that has been lent.

transferOwnership(address payable newOwner) is a function that allows the owner to transfer ownership of the contract to a new owner. The function checks that the caller is the owner, then updates the owner variable to the address of the newOwner.

The contract uses the payable modifier on some functions to indicate that they can receive Ether. In particular,the lend and repay functions can receive Ether as part of the transaction.

Step 2 - Testing the smart contract

First open the terminal and type ganache-cli.
You can see 10 dummy addresses in it.
In another terminal type truffle-test.
Don’t close the ganache-cli terminal.
You can see the passing and failing tests here
Type sh score.sh it will generate 2 files .
One is the block history(ganache.txt) and the other one is your test results (log.txt).
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.