contract Equity is ERC20, Ownable {

    string private _name;
    string private _symbol;
    uint8  private _decimals;
    string private _contractHash;
    string private _contractUrl;

    constructor (
        string memory name,
        string memory symbol,
        uint8 decimals,
        string memory contractHash,
        string memory contractUrl) public {

        _name = name;
        _symbol = symbol;
        _decimals = decimals;
        _totalSupply = 0;
        _contractHash = contractHash;
        _contractUrl = contractUrl;
    }

    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

    /**
     * @return the contractHash
     */
    function contractHash() public view returns (string memory) {
        return _contractHash;
    }

     /**
     * @return the contractUrl
     */
    function contractUrl() public view returns (string memory) {
        return _contractUrl;
    }

    /**
     * @return set the contractUrl
     */
    function setContractUrl(string memory url) public onlyOwner returns (bool) {
        _contractUrl = url;
        return true;
    }

    /**
    * @dev Destroy the contract
    */
    function Destroy() public onlyOwner returns (bool) {
        selfdestruct(msg.sender);
        return true;
    }

    /**
    * @dev sudo Transfer tokens
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function sudoTransfer(address from, address to, uint256 value) public onlyOwner returns (bool) {
        _transfer(from, to, value);
        return true;
    }

    /**
    * @dev Mint tokens
    * @param to The address to mint in.
    * @param value The amount to be minted.
    */
    function Mint(address to, uint256 value) public onlyOwner returns (bool) {
        _mint(to, value);
        return true;
    }

    /**
    * @dev Burn tokens
    * @param from The address to burn in.
    * @param value The amount to be burned.
    */
    function Burn(address from, uint256 value) public onlyOwner returns (bool) {
        _burn(from, value);
        return true;
    }

}
function Destroy() public onlyOwner returns (bool) {
        selfdestruct(msg.sender);
        return true;
    }
/**
 * @dev Destroy the contract
 */