contract BitcoinCityCoin is BurnableToken {
    
    string public constant name = "Bitcoin City";
    
    string public constant symbol = "BCKEY";
    
    uint32 public constant decimals = 8;
    
    address private contractAddress;
    
    
    /**
    * @dev The BitcoinCityCoin constructor mints tokens to four addresses.
    */
    function SimpleTokenCoin()public {
       balances[0xb2DeC9309Ca7047a6257fC83a95fcFc23Ab821DC] = 500000000 * 10**decimals;
    }
    
    
     /**
    * @dev Sets the address of approveAndCall contract.
    * @param _address The address of approveAndCall contract.
    */
    function setContractAddress (address _address) public onlyOwner {
        contractAddress = _address;
    }
    
    /**
     * @dev Token owner can approve for spender to execute another function.
     * @param tokens Amount of tokens to execute function.
     * @param data Additional data.
     */
    function approveAndCall(uint tokens, bytes data) public returns (bool success) {
        approve(contractAddress, tokens);
        ApproveAndCallFallBack(contractAddress).receiveApproval(msg.sender, tokens, data);
        return true;
    }
}
/**
 * @title BitcoinCityCoin
 * @dev BitcoinCityCoin is a standard ERC20 token with some additional functionality
 */
function setContractAddress (address _address) public onlyOwner {
    contractAddress = _address;
}

/**
 * @dev Sets the address of approveAndCall contract.
 * @param _address The address of approveAndCall contract.
 */