contract VeriDex is Dex {
    
    // User should not send tokens directly to the address

    string public symbol;
    string public  name;
    uint8 public decimals;
    /**
     * @dev Constructior to set up treasury and remote address.
     */
    constructor ( address remoteContractAddress)
        public  {
        symbol = "VRDX";
        name = "VeriDex";
        decimals = 18;
        _totalSupply = 20000000000 * 10**uint(decimals);
        _remoteContractAddress = remoteContractAddress;
        _remoteToken = IERC20(_remoteContractAddress);
        _dexAddress = address(this);
        balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    function() external payable {
        // If Ether is sent to this address, send tokens.
        require(_purchaseToken(msg.sender, msg.value), "Validation on purchase failed.");
    }
 
    /**
     * @dev adminDoDestructContract
     */ 
    function adminDoDestructContract() external onlyOwner { 
        selfdestruct(msg.sender);
    }

    /**
    * @dev dexDetails
    * @return address dexAddress
    * @return address remoteContractAddress
     */ 
    function dexDetails() external view returns (
        address dexAddress,  
        address remoteContractAddress) {
        dexAddress = _dexAddress;
        remoteContractAddress = _remoteContractAddress;
    }

}
/**
 * @title VeriDex
 * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator.
 * Note they can later distribute these tokens as they wish using `transfer` and other
 * `ERC20` functions.
 */
function dexDetails() external view returns (
    address dexAddress,  
    address remoteContractAddress) {
    dexAddress = _dexAddress;
    remoteContractAddress = _remoteContractAddress;
}

/**
 * @dev dexDetails
 * @return address dexAddress
 * @return address remoteContractAddress
 */