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.