//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.6;
contract NFTommo
{
address private owner;
uint256 private registerPrice;
mapping (address => bool) private userToRegistered;
constructor()
{
owner = msg.sender;
registerPrice = 0.1 ether;
}
//////////
// Getters
function getRegisterPrice() external view returns(uint256)
{
return(registerPrice);
}
function getOwner() external view returns(address)
{
return(owner);
}
function isAddressRegistered(address _account) external view returns(bool)
{
return(userToRegistered[_account]);
}
//////////
// Setters
function setOwner(address _owner) external
{
require(msg.sender == owner, "Function only callable by owner!");
owner = _owner;
}
function setRegisterPrice(uint256 _registerPrice) external
{
require(msg.sender == owner, "Function only callable by owner!");
registerPrice = _registerPrice;
}
/////////////////////
// Register functions
receive() external payable
{
register();
}
function register() public payable
{
require(!userToRegistered[msg.sender], "Address already registered!");
require(msg.value >= registerPrice);
userToRegistered[msg.sender] = true;
}
/////////////////
// Withdraw Ether
function withdraw(uint256 _amount, address _receiver) external
{
require(msg.sender == owner, "Function only callable by owner!");
payable(_receiver).transfer(_amount);
}
}
{
"compilationTarget": {
"NFTommo.sol": "NFTommo"
},
"evmVersion": "berlin",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegisterPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isAddressRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"register","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_registerPrice","type":"uint256"}],"name":"setRegisterPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]