pragma solidity ^0.4.18; contract CreditScoring { /* address public owner; modifier onlyOwner() { require(msg.sender == owner); _; } */ modifier ownerOf(uint _paymentId) { require(msg.sender == paymentToOwner[_paymentId]); _; } struct Payment { uint paymentTime; bool onTime; uint amount; } Payment[] public payments; event NewPayment(uint paymentTime, bool onTime, uint amount); mapping (uint => address) private paymentToOwner; mapping (address => uint) public creditScore; function _setScore (uint _newCreditScore) public /*onlyOwner*/ { creditScore[msg.sender] = _newCreditScore; } /* function viewPayment (uint _paymentId) public ownerOf returns (uint, bool, uint) { return Payment.paymentTime[_paymentId]; } function _getScore () public view returns (uint) { return creditScore[msg.sender]; } */ function makePaymentOnTime (uint _amount) public { uint id = payments.push(Payment(uint64(now), true, _amount)) -1; paymentToOwner[id] = msg.sender; creditScore[msg.sender] += 10; } function makeLatePayment (uint _amount) public { uint id = payments.push(Payment(uint64(now), false, _amount)) -1; paymentToOwner[id] = msg.sender; creditScore[msg.sender] -= 10; } }
0.4.18