contract Debt is ERC20, Ownable {
	string private _name;
	string private _symbol;
	uint8 private _decimals;
	string private _contractHash;
	string private _contractUrl;
	uint32 private _interestBPS;
	string private _maturityDate;

	constructor(
		string memory name,
		string memory symbol,
		uint8 decimals,
		string memory contractHash,
		string memory contractUrl,
		uint32 interestBPS,
		string memory maturityDate
	) public {
		_name = name;
		_symbol = symbol;
		_decimals = decimals;
		_contractHash = contractHash;
		_contractUrl = contractUrl;
		_interestBPS = interestBPS;
		_maturityDate = maturityDate;
	}

	/**
     * @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 the interest rate in Basis Points (BPS).
     */
	function interestBPS() public view returns (uint32) {
		return _interestBPS;
	}

	/**
     * @return the maturity date
     */
	function maturityDate() public view returns (string memory) {
		return _maturityDate;
	}

	/**
     * @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 interestBPS() public view returns (uint32) {
	return _interestBPS;
}

/**
 * @return the interest rate in Basis Points (BPS).
 */