Credit-Card-System-smartcon.../contracts/Bank.sol
2023-06-05 22:52:32 +08:00

30 lines
747 B
Solidity

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;
import "@openzeppelin/contracts/utils/Counters.sol";
import "./SoulboundToken.sol";
contract Bank {
using Counters for Counters.Counter;
Counters.Counter private id_counter;
SoulboundToken SBT;
address owner;
mapping(address => uint) arrears;
mapping(address => uint) SBTNumbers;
constructor(address SBT_addr) {
SBT = SoulboundToken(SBT_addr);
}
modifier onlyBank {
require(msg.sender == owner, "Only the owner can access this function.");
_;
}
function register(uint number) public {
uint target = SBT.getAccountNumber(msg.sender);
require(target == number, "This is not your SBT number.");
SBTNumbers[msg.sender] = target;
}
}