From 7b11748282a305830873c8120104e03cd655c49e Mon Sep 17 00:00:00 2001 From: Ting-Jun Wang Date: Tue, 6 Jun 2023 23:28:04 +0800 Subject: [PATCH] feat: add some getter function --- contracts/Bank.sol | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/contracts/Bank.sol b/contracts/Bank.sol index 477f8a6..2f37738 100644 --- a/contracts/Bank.sol +++ b/contracts/Bank.sol @@ -3,15 +3,16 @@ pragma solidity >=0.4.22 <0.9.0; import "@openzeppelin/contracts/utils/Counters.sol"; import "./SoulboundToken.sol"; +struct Order { + bool isFinished; + uint amount; + address shop; +} + contract Bank { using Counters for Counters.Counter; Counters.Counter private id_counter; - struct Order { - bool isFinished; - uint amount; - } - SoulboundToken public sbt; address public owner; bool public recv = false; @@ -61,7 +62,7 @@ contract Bank { id_counter.increment(); uint id = id_counter.current(); arrears[msg.sender] += amount; - order_info[id] = Order(false, amount); + order_info[id] = Order(false, amount, shop); client_orders[msg.sender].push(id); payable(shop).transfer(amount); sbt.logBorrowing(msg.sender, id, amount); @@ -104,4 +105,20 @@ contract Bank { function stop_recv() public onlyBank { recv = false; } + + function getCredit(address client) public view onlySelfOrBank(client) returns (uint) { + return credits[client]; + } + + function getArrear(address client) public view onlySelfOrBank(client) return (uint) { + return arrears[client]; + } + + function getClientOrders(address client) public view onlySelfOrBank(client) returns (Order[] memory){ + Order[] memory orders = new Order[]( client_orders[client].length ); + for(uint i=0; i