MyCryptoHeroes / Gum Gateway

GumGateway

0x4ae0ede482f825fb9cccce8f0fe089f0379eaa2a
DailyAction
function

updateTerm

nonpayable
Restricted (onlyOwner)

Inputs

ParameterTypeDescription
numuint256

Outputs

(void)
     function updateTerm(uint256 num) external onlyOwner() {
         term = num;
 
         emit UpdateTerm(
             term
         );
     }
 
function

requestDailyActionReward

nonpayable
Restricted (whenNotPaused)

Inputs

ParameterTypeDescription
referreraddress

Outputs

(void)
     function requestDailyActionReward(address referrer) external whenNotPaused() {
         require(!isInTerm(msg.sender), "this sender got daily reward within term");
 
         emit Action(
             msg.sender,
             referrer,
             block.timestamp
         );
 
         latestActionTime[msg.sender] = block.timestamp;
     }
 
function

isInTerm

view

Inputs

ParameterTypeDescription
senderaddress

Outputs

TypeDescription
bool
     function isInTerm(address sender) public view returns (bool) {
         if (latestActionTime[sender] == 0) {
             return false;
         } else if (block.timestamp >= latestActionTime[sender].add(term)) {
             return false;
         }
         return true;
     }
 
event

UpdateTerm

Inputs

ParameterTypeDescription
termuint256

Outputs

(void)
     event UpdateTerm(
         uint256 term
     );
 
event

Action

Inputs

ParameterTypeDescription
useraddress
referreraddress
atuint256

Outputs

(void)
     event Action(
         address indexed user,
         address indexed referrer,
         uint256 at
     );
 
GumGateway
function

updateMinimumAmount

nonpayable
Restricted (onlyOwner)

Inputs

ParameterTypeDescription
_newMinimumAmountuint256

Outputs

(void)
     function updateMinimumAmount(uint256 _newMinimumAmount) external onlyOwner() {
         minimumAmount = _newMinimumAmount;
     }
 
function

updateEthBackRate

nonpayable
Restricted (onlyOwner)

Inputs

ParameterTypeDescription
_newEthBackRateuint256

Outputs

(void)
     function updateEthBackRate(uint256 _newEthBackRate) external onlyOwner() {
         ethBackRate = _newEthBackRate;
     }
 
function

withdrawEther

nonpayable
Restricted (onlyOwner)

Inputs

(void)

Outputs

(void)
     function withdrawEther() external onlyOwner() {
         owner().transfer(address(this).balance);
     }
 
function

buy

payable
Restricted (whenNotPaused)

Inputs

ParameterTypeDescription
_referreraddress

Outputs

(void)
     function buy(address _referrer) external payable whenNotPaused() {
         require(msg.value >= minimumAmount, "msg.value should be more than minimum ether amount");
         
         address referrer;
         if (_referrer == msg.sender){
             referrer = address(0x0);
         } else {
             referrer = _referrer;
         }
         if ((referrer != address(0x0)) && isReferrer(referrer)) {
             referrer.transfer(msg.value.mul(ethBackRate).div(100));
         }
         emit Sold(
             msg.sender,
             referrer,
             msg.value,
             block.timestamp
         );
     }
 
function

getEthBackRate

view
Restricted (onlyOwner)

Inputs

(void)

Outputs

TypeDescription
uint256
     function getEthBackRate() external onlyOwner() view returns (uint256) {
         return ethBackRate;
     }
 
event

Sold

Inputs

ParameterTypeDescription
useraddress
referreraddress
valueuint256
atuint256

Outputs

(void)
     event Sold(
         address indexed user,
         address indexed referrer,
         uint256 value,
         uint256 at
     );
 
Ownable
function

transferOwnership

nonpayable
Restricted (onlyOwner)

Inputs

ParameterTypeDescription
newOwneraddress

Outputs

(void)
   function transferOwnership(address newOwner) public onlyOwner {
     _transferOwnership(newOwner);
   }
 
function

renounceOwnership

nonpayable
Restricted (onlyOwner)

Inputs

(void)

Outputs

(void)
   function renounceOwnership() public onlyOwner {
     emit OwnershipRenounced(_owner);
     _owner = address(0);
   }
 
function

isOwner

view

Inputs

(void)

Outputs

TypeDescription
bool
   function isOwner() public view returns(bool) {
     return msg.sender == _owner;
   }
 
function

owner

view

Inputs

(void)

Outputs

TypeDescription
address
   function owner() public view returns(address) {
     return _owner;
   }
 
event

OwnershipTransferred

Inputs

ParameterTypeDescription
previousOwneraddress
newOwneraddress

Outputs

(void)
   event OwnershipTransferred(
     address indexed previousOwner,
     address indexed newOwner
   );
 
event

OwnershipRenounced

Inputs

ParameterTypeDescription
previousOwneraddress

Outputs

(void)
   event OwnershipRenounced(address indexed previousOwner);
 
Pausable
function

pause

nonpayable
Restricted (onlyPauser, whenNotPaused)

Inputs

(void)

Outputs

(void)
   function pause() public onlyPauser whenNotPaused {
     _paused = true;
     emit Paused();
   }
 
function

unpause

nonpayable
Restricted (onlyPauser, whenPaused)

Inputs

(void)

Outputs

(void)
   function unpause() public onlyPauser whenPaused {
     _paused = false;
     emit Unpaused();
   }
 
function

paused

view

Inputs

(void)

Outputs

TypeDescription
bool
   function paused() public view returns(bool) {
     return _paused;
   }
 
event

Unpaused

Inputs

(void)

Outputs

(void)
   event Unpaused();
 
event

Paused

Inputs

(void)

Outputs

(void)
   event Paused();
 
PauserRole
function

addPauser

nonpayable
Restricted (onlyPauser)

Inputs

ParameterTypeDescription
accountaddress

Outputs

(void)
   function addPauser(address account) public onlyPauser {
     pausers.add(account);
     emit PauserAdded(account);
   }
 
function

renouncePauser

nonpayable

Inputs

(void)

Outputs

(void)
   function renouncePauser() public {
     pausers.remove(msg.sender);
   }
 
function

isPauser

view

Inputs

ParameterTypeDescription
accountaddress

Outputs

TypeDescription
bool
   function isPauser(address account) public view returns (bool) {
     return pausers.has(account);
   }
 
constructor

GumGateway

nonpayable

Inputs

(void)

Outputs

(void)
   constructor() public {
     pausers.add(msg.sender);
   }
 
event

PauserRemoved

Inputs

ParameterTypeDescription
accountaddress

Outputs

(void)
   event PauserRemoved(address indexed account);
 
event

PauserAdded

Inputs

ParameterTypeDescription
accountaddress

Outputs

(void)
   event PauserAdded(address indexed account);
 
ReferrerRole
function

addReferrer

nonpayable
Restricted (onlyOwner)

Inputs

ParameterTypeDescription
accountaddress

Outputs

(void)
     function addReferrer(address account) public onlyOwner() {
         referrers.add(account);
         emit ReferrerAdded(account);
     }
 
function

removeReferrer

nonpayable
Restricted (onlyOwner)

Inputs

ParameterTypeDescription
accountaddress

Outputs

(void)
     function removeReferrer(address account) public onlyOwner() {
         referrers.remove(account);
         emit ReferrerRemoved(account);
     }
 
function

isReferrer

view

Inputs

ParameterTypeDescription
accountaddress

Outputs

TypeDescription
bool
     function isReferrer(address account) public view returns (bool) {
         return referrers.has(account);
     }
 
event

ReferrerRemoved

Inputs

ParameterTypeDescription
accountaddress

Outputs

(void)
     event ReferrerRemoved(address indexed account);
 
event

ReferrerAdded

Inputs

ParameterTypeDescription
accountaddress

Outputs

(void)
     event ReferrerAdded(address indexed account);
 
function

latestActionTime

view

Inputs

ParameterTypeDescription
address

Outputs

TypeDescription
uint256
     mapping(address => uint256) public latestActionTime;
 
function

term

view

Inputs

(void)

Outputs

TypeDescription
uint256
     uint256 public term;