{
	"rules": {

		"imports-on-top": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that all import statements are on top of the file"
		},

		"variable-declarations": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that names 'l', 'O' & 'I' are not used for variables"
		},

		"array-declarations": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that array declarations don't have space between the type and brackets"
		},

		"operator-whitespace": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that operators are surrounded by a single space on either side"
		},

		"conditionals-whitespace": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that there is exactly one space between conditional operators and parenthetic blocks"
		},

		"comma-whitespace": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that there is no whitespace or comments between comma delimited elements and commas"
		},

		"semicolon-whitespace": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that there is no whitespace or comments before semicolons"
		},

		"function-whitespace": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure function calls and declaration have (or don't have) whitespace in appropriate locations"
		},

		"lbrace": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure correct positioning of the opening brace '{'"
		},

		"mixedcase": {
			"enabled": true,
			"recommended": false,
			"type": "warning",
			"description": "Ensure that all variable, function and parameter names follow the mixedCase naming convention"
		},

		"camelcase": {
			"enabled": true,
			"recommended": false,
			"type": "warning",
			"description": "Ensure that contract, library, modifier and struct names follow CamelCase notation"
		},

		"uppercase": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that all constants (and only constants) contain only upper case letters and underscore"
		},

		"no-with": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure no use of with statements in the code"
		},

		"no-empty-blocks": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that no empty blocks {} exist"
		},

		"no-unused-vars": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Flag all the variables that were declared but never used"
		},

		"double-quotes": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that string are quoted with double-quotes only"
		},

		"quotes": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure that all strings use only 1 style - either double quotes or single quotes."
		},

		"value-in-payable": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure 'msg.value' is only used in functions with the 'payable' modifier"
		},

		"no-experimental": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that experimental features are not used in production"
		},

		"blank-lines": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that there is exactly a 2-line gap between Contract and Funtion declarations"
		},

		"indentation": {
			"enabled": true,
			"recommended": false,
			"type": "warning",
			"description": "Ensure consistent indentation of 4 spaces per level"
		},

		"arg-overflow": {
			"enabled": true,
			"recommended": false,
			"type": "warning",
			"description": "In the case of 4+ elements in the same line require they are instead put on a single line each"
		},

		"whitespace": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Specify where whitespace is suitable and where it isn't"
		},

		"deprecated-suicide": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Suggest replacing deprecated 'suicide' for 'selfdestruct'"
		},

		"pragma-on-top": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure a) A PRAGMA directive exists and b) its on top of the file"
		},

		"function-order": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that functions in a contract are ordered according to their visibility"
		},

		"emit": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Use emit statements to trigger events"
		},

		"no-constant": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Use view instead of deprecated constant in function declaration"
		},

		"max-len": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that a line of code doesn't exceed the specified number of characters"
		},

		"error-reason": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that error message is provided for revert and require statements"
		},

		"constructor": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Suggest replacing deprecated contract name with 'constructor' for constructor function"
		},

		"visibility-first": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Ensure that the visibility modifier for a function should come before any custom modifiers"
		},

		"linebreak-style": {
			"enabled": true,
			"recommended": true,
			"type": "error",
			"description": "Ensure consistent linebreak style"
		},

		"no-trailing-whitespace": {
			"enabled": true,
			"recommended": true,
			"type": "warning",
			"description": "Disallow trailing spaces and tabs at the end of lines"
		}
	}
}
