案例业务:智能银行
需要实现的核心功能:
角色:
如何记录每个用户余额:
- 使用mapping关键字将用户地址与用户余额相关联;
具体示例代码如下:
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;
/* 1.3大核心功能;
2.bank name;
3.账本检测;
*/
contract bank_demo{
string public bankName; //银行名字
uint256 totalAmount; //银行总存款
address public admin; //柜员
mapping(address=>uint256)balances; //记录用户余额
constructor(string memory _name){
bankName=_name; //定义了银行的名字
admin=msg.sender;
}
function getBalance()public view returns(uint256,uint256){ //检查账本
return(address(this).balance,totalAmount);
}
function deposit(uint256 _amount)public payable{ //存款
require(_amount>0,"amount must>0");
require(_amount==msg.value,"msg.value must equal _amount");