Joint work with:
Thomas Austin
Katerina Potika
May, 2023
tx.origin to make sure the notary's address is from an approved list of notaries.tx.origin to make sure the auditor was from an approved list of auditors.
createLoan(uint totalAmount, uint intRatePerMil,
uint numPayments, uint secondsBetweenPayments,
uint minCreditScore, uint fund_date) public returns (Loan)
findLoan method can be used by borrower's and lender's to search for Loan smart contracts according to desired criteria.borrow(uint amount) or invest method of Loan.getScore method to verify the credit score before the borrower is allowed to add.invest transfers funds into the smart contract. These funds cannot be accessed until after the fund_date.totalAmount of funds, triggers the funding of the Loan, and the timestamp of this is used to determine interest owed.isReady() to check if the Loan is ready, call get$$$ to get their funds once ready, and call makePayment to make a payment on their loan.fund_date, a lender can call the Loan smart contract's withdraw(uint amount) to
withdraw money from the account up to the smaller of the invested amount plus interest or the amount currently held in the smart contract.withdraw call, or if no such calls had been made, the loan fund time.getScore call for a borrower, involves first determining the `i` such that `2^i` and `2^{i+1}` bracket the duration of the loan, then looking through the list of all points
for the `k` nearest neighbors by Euclidean distance, and taking the weighted-by-distance average of their OSC-`2^i` scores.