pragma solidity ^0.4.20; contract ArichToken { struct Account { uint256 last_balance; bool freeze; bool burn; string f_reason; string b_reason; } // Mapping Wallet for all accounts mapping (address => Account) public walletOf; /* Freeze an Account */ function freezeAccount(address _to) public returns(bool success) { require(msg.sender == owner); require(!walletOf[_to].freeze); require(balanceOf[_to] > 0); walletOf[_to].freeze = true; walletOf[_to].last_balance = balanceOf[_to]; walletOf[_to].f_reason = "Freezed by the owner"; emit Freezed(_to); return true; } /* Unfreeze an Account */ function unfreezeAccount(address _to) public returns(bool success) { require(msg.sender == owner); require(walletOf[_to].freeze); walletOf[_to].freeze = false; balanceOf[_to] = walletOf[_to].last_balance; walletOf[_to].f_reason = "Unfreezed by the owner"; emit Unfreezed(_to); return true; } }
0.4.25