mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
pragma solidity >=0.0;
 | 
						|
 | 
						|
import "./safeMath.sol";
 | 
						|
import "./owned.sol";
 | 
						|
 | 
						|
contract tokenDB is safeMath, ownedDB {
 | 
						|
 | 
						|
    struct allowance_s {
 | 
						|
        uint256 amount;
 | 
						|
        uint256 nonce;
 | 
						|
    }
 | 
						|
 | 
						|
    mapping(address => mapping(address => allowance_s)) public allowance;
 | 
						|
    mapping (address => uint256) public balanceOf;
 | 
						|
    uint256 public totalSupply;
 | 
						|
 | 
						|
    function increase(address owner, uint256 value) external returns(bool success) {
 | 
						|
        /*
 | 
						|
            Increase of balance of the address in database. Only owner can call it.
 | 
						|
 | 
						|
            @owner          Address
 | 
						|
            @value          Quantity
 | 
						|
 | 
						|
            @success        Was the Function successful?
 | 
						|
        */
 | 
						|
        require( isOwner() );
 | 
						|
        balanceOf[owner] = safeAdd(balanceOf[owner], value);
 | 
						|
        totalSupply = safeAdd(totalSupply, value);
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    function decrease(address owner, uint256 value) external returns(bool success) {
 | 
						|
        /*
 | 
						|
            Decrease of balance of the address in database. Only owner can call it.
 | 
						|
 | 
						|
            @owner          Address
 | 
						|
            @value          Quantity
 | 
						|
 | 
						|
            @success        Was the Function successful?
 | 
						|
        */
 | 
						|
        require( isOwner() );
 | 
						|
        balanceOf[owner] = safeSub(balanceOf[owner], value);
 | 
						|
        totalSupply = safeSub(totalSupply, value);
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    function setAllowance(address owner, address spender, uint256 amount, uint256 nonce) external returns(bool success) {
 | 
						|
        /*
 | 
						|
            Set allowance in the database. Only owner can call it.
 | 
						|
 | 
						|
            @owner          Owner address
 | 
						|
            @spender        Spender address
 | 
						|
            @amount         Amount to set
 | 
						|
            @nonce          Transaction count
 | 
						|
 | 
						|
            @success        Was the Function successful?
 | 
						|
        */
 | 
						|
        require( isOwner() );
 | 
						|
        allowance[owner][spender].amount = amount;
 | 
						|
        allowance[owner][spender].nonce = nonce;
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    function getAllowance(address owner, address spender) public view returns(bool success, uint256 remaining, uint256 nonce) {
 | 
						|
        /*
 | 
						|
            Get allowance from the database.
 | 
						|
 | 
						|
            @owner          Owner address
 | 
						|
            @spender        Spender address
 | 
						|
 | 
						|
            @success        Was the Function successful?
 | 
						|
            @remaining      Remaining amount of the allowance
 | 
						|
            @nonce          Transaction count
 | 
						|
        */
 | 
						|
        return ( true, allowance[owner][spender].amount, allowance[owner][spender].nonce );
 | 
						|
    }
 | 
						|
}
 |