-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCuentaAhorro.sol
More file actions
64 lines (44 loc) · 1.6 KB
/
CuentaAhorro.sol
File metadata and controls
64 lines (44 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract CuentaAhorro{
//***CuentaAhorro
struct Persona{
string nombre;
uint8 edad;
uint saldo;
}
mapping (address => Persona) public personas;
function createPersona(string memory _nombre, uint8 _edad) public{
//1. Crear a la persona
Persona memory p1 = Persona(_nombre, _edad, 0);
//2. Agregarla al mapping de personas;
personas[msg.sender] = p1;
}
//Función que ingresa saldo
function store (uint _deposito) public{
//1. Consultar a la persona a la que le agregaremos el saldo
Persona memory p1 = personas[msg.sender];
//2. Agregar saldo
p1.saldo = p1.saldo + _deposito;
//3. Volver a agregar al mapping de personas
personas[msg.sender] = p1;
}
//Función que retira saldo
function retrieve (uint _retiro) public{
//1. Consultar a la persona a la que le retiramos el saldo
Persona memory p1 = personas[msg.sender];
//2. Verificar que el saldo sea mayor a lo que se quiere retirar
require(p1.saldo > _retiro, "Saldo insuficiente");
//2. retirar saldo
p1.saldo = p1.saldo - _retiro;
//3. Volver a agregar al mapping de personas
personas[msg.sender] = p1;
}
//Función que consulta saldo
function getSaldo() public view returns(uint){
//1. Consultar a la persona a la que le consultaremos el saldo
Persona memory p1 = personas[msg.sender];
//2. Regresar el saldo
return p1.saldo;
}
}