Skip to content

Commit

Permalink
Update DigiwillToken.sol
Browse files Browse the repository at this point in the history
Add function to block address to send and received tokens
Add function to know address block status
Add function to know address transfer allowance
  • Loading branch information
digiwills committed May 16, 2019
1 parent 6c34ac7 commit 832f0ff
Showing 1 changed file with 22 additions and 3 deletions.
25 changes: 22 additions & 3 deletions DigiwillToken.sol
Expand Up @@ -99,6 +99,7 @@ contract DigiWillToken is Ownable {
mapping (address => mapping (address => uint256)) public allowed;

mapping (address => bool) public allowedToTransfer;
mapping (address => bool) public blockedAddress;

///////////
// Constructor
Expand Down Expand Up @@ -151,7 +152,10 @@ contract DigiWillToken is Ownable {

require((_to != 0) && (_to != address(this)));
require(_amount <= balances[_from]);
require(enabledTokenTransfer == true || allowedToTransfer[msg.sender] == true);
require(enabledTokenTransfer == true || allowedToTransfer[_from] == true);

require(!blockedAddress[_from] || blockedAddress[_from] == false);
require(!blockedAddress[_to] || blockedAddress[_to] == false);

balances[_from] = balances[_from].sub(_amount);
balances[_to] = balances[_to].add(_amount);
Expand All @@ -163,6 +167,16 @@ contract DigiWillToken is Ownable {
function balanceOf(address _owner) public constant returns (uint256 balance) {
return balances[_owner];
}

// @return The lock status of targetAddress
function lockStatusOf(address targetAddress) public constant returns (bool state) {
return blockedAddress[targetAddress];
}

// @return The transfer allowance of targetAddress
function transferAllowanceOf(address targetAddress) public constant returns (bool state) {
return allowedToTransfer[targetAddress];
}

// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on
// its behalf. This is a modified version of the ERC20 approve function
Expand Down Expand Up @@ -216,8 +230,13 @@ contract DigiWillToken is Ownable {
enabledTokenTransfer = lockStatus;
}

function setAddressTransferAllowance(address targetWallet, bool lockStatus) public onlyOwner {
allowedToTransfer[targetWallet] = lockStatus;
function setAddressTransferAllowance(address targetAddress, bool lockStatus) public onlyOwner {
allowedToTransfer[targetAddress] = lockStatus;
}

function setAddressBlockState(address targetAddress, bool lockStatus) public onlyOwner {
require(targetAddress != owner);
blockedAddress[targetAddress] = lockStatus;
}

event Transfer(
Expand Down

0 comments on commit 832f0ff

Please sign in to comment.