pragma solidity >= 0.5.0< 0.7.0;
contract PROCASH {
address owner;
address payable donde;
uint[] ident;
mapping(uint => username) usuarios;
struct username{
uint id;
string name;
address payable dir;
}
modifier valida_user(uint _id){
require(usuarios[_id].id != _id);
_;
}
constructor() public{
owner = msg.sender;
}
event RegisterUserEvent(address indexed _dire, string indexed name , uint time);
event Recarga_pay(address indexed user, uint indexed amount, uint time);
event set_transfer(address indexed user,address indexed referrer,uint indexed amount, uint time);
function fondos_contract(uint256 amount) public payable{
require(msg.value == amount);
emit Recarga_pay(msg.sender, amount, now);
}
function Register(uint _id, address payable dire, string memory _name ) payable public valida_user(_id){
ident.push(_id);
usuarios[_id] = username({
id: _id,
name: _name,
dir: dire
});
emit RegisterUserEvent( dire , _name , now );
}
function update_register(uint _id, address payable dire, string memory _name) public payable{
require(owner == msg.sender);
usuarios[_id] = username({
id: _id,
name: _name,
dir: dire
});
}
function pay_now(uint[] memory valor, uint256[] memory monto) public payable {
uint i;
uint256 pagar;
for ( i = 0; i < valor.length ; i++)
{
donde = usuarios[valor[i]].dir;
pagar = monto[i];
pagar_cuenta(donde, pagar);
}
}
function pagar_cuenta(address payable _dire, uint256 _monto) payable public {
require(owner == msg.sender);
_dire.transfer(_monto);
emit set_transfer(msg.sender, _dire, _monto, now );
}
function total_register() public view returns(uint){
require(owner == msg.sender);
return ident.length;
}
function mi_user(uint valor) public view returns(string memory) {
return usuarios[valor].name;
}
function mi_wallet(uint valor) public view returns(address payable) {
return usuarios[valor].dir;
}
}
{
"compilationTarget": {
"browser/teset_final.sol": "PROCASH"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"Recarga_pay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_dire","type":"address"},{"indexed":true,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"RegisterUserEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"set_transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address payable","name":"dire","type":"address"},{"internalType":"string","name":"_name","type":"string"}],"name":"Register","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fondos_contract","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"valor","type":"uint256"}],"name":"mi_user","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"valor","type":"uint256"}],"name":"mi_wallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_dire","type":"address"},{"internalType":"uint256","name":"_monto","type":"uint256"}],"name":"pagar_cuenta","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"valor","type":"uint256[]"},{"internalType":"uint256[]","name":"monto","type":"uint256[]"}],"name":"pay_now","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"total_register","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address payable","name":"dire","type":"address"},{"internalType":"string","name":"_name","type":"string"}],"name":"update_register","outputs":[],"stateMutability":"payable","type":"function"}]