[
    {
        "inputs": [{ "internalType": "contract RoleStore", "name": "_roleStore", "type": "address" }],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "inputs": [
            { "internalType": "address", "name": "msgSender", "type": "address" },
            { "internalType": "string", "name": "role", "type": "string" }
        ],
        "name": "Unauthorized",
        "type": "error"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "address", "name": "value", "type": "address" }
        ],
        "name": "addAddress",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "bytes32", "name": "value", "type": "bytes32" }
        ],
        "name": "addBytes32",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "addUint",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "", "type": "bytes32" },
            { "internalType": "uint256", "name": "", "type": "uint256" }
        ],
        "name": "addressArrayValues",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "name": "addressValues",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "int256", "name": "value", "type": "int256" }
        ],
        "name": "applyBoundedDeltaToUint",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "int256", "name": "value", "type": "int256" }
        ],
        "name": "applyDeltaToInt",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "int256", "name": "value", "type": "int256" },
            { "internalType": "string", "name": "errorMessage", "type": "string" }
        ],
        "name": "applyDeltaToUint",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "applyDeltaToUint",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "", "type": "bytes32" },
            { "internalType": "uint256", "name": "", "type": "uint256" }
        ],
        "name": "boolArrayValues",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "name": "boolValues",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "", "type": "bytes32" },
            { "internalType": "uint256", "name": "", "type": "uint256" }
        ],
        "name": "bytes32ArrayValues",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "name": "bytes32Values",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "address", "name": "value", "type": "address" }
        ],
        "name": "containsAddress",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "bytes32", "name": "value", "type": "bytes32" }
        ],
        "name": "containsBytes32",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "containsUint",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "int256", "name": "value", "type": "int256" }
        ],
        "name": "decrementInt",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "decrementUint",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getAddress",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getAddressArray",
        "outputs": [{ "internalType": "address[]", "name": "", "type": "address[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "setKey", "type": "bytes32" }],
        "name": "getAddressCount",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "uint256", "name": "start", "type": "uint256" },
            { "internalType": "uint256", "name": "end", "type": "uint256" }
        ],
        "name": "getAddressValuesAt",
        "outputs": [{ "internalType": "address[]", "name": "", "type": "address[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getBool",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getBoolArray",
        "outputs": [{ "internalType": "bool[]", "name": "", "type": "bool[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getBytes32",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getBytes32Array",
        "outputs": [{ "internalType": "bytes32[]", "name": "", "type": "bytes32[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "setKey", "type": "bytes32" }],
        "name": "getBytes32Count",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "uint256", "name": "start", "type": "uint256" },
            { "internalType": "uint256", "name": "end", "type": "uint256" }
        ],
        "name": "getBytes32ValuesAt",
        "outputs": [{ "internalType": "bytes32[]", "name": "", "type": "bytes32[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getInt",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getIntArray",
        "outputs": [{ "internalType": "int256[]", "name": "", "type": "int256[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getString",
        "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getStringArray",
        "outputs": [{ "internalType": "string[]", "name": "", "type": "string[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getUint",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "getUintArray",
        "outputs": [{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "setKey", "type": "bytes32" }],
        "name": "getUintCount",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "uint256", "name": "start", "type": "uint256" },
            { "internalType": "uint256", "name": "end", "type": "uint256" }
        ],
        "name": "getUintValuesAt",
        "outputs": [{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "int256", "name": "value", "type": "int256" }
        ],
        "name": "incrementInt",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "incrementUint",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "", "type": "bytes32" },
            { "internalType": "uint256", "name": "", "type": "uint256" }
        ],
        "name": "intArrayValues",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "name": "intValues",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "address", "name": "value", "type": "address" }
        ],
        "name": "removeAddress",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeAddress",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeAddressArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeBool",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeBoolArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "bytes32", "name": "value", "type": "bytes32" }
        ],
        "name": "removeBytes32",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeBytes32",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeBytes32Array",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeInt",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeIntArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeString",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeStringArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeUint",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "setKey", "type": "bytes32" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "removeUint",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "key", "type": "bytes32" }],
        "name": "removeUintArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "roleStore",
        "outputs": [{ "internalType": "contract RoleStore", "name": "", "type": "address" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "address", "name": "value", "type": "address" }
        ],
        "name": "setAddress",
        "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "address[]", "name": "value", "type": "address[]" }
        ],
        "name": "setAddressArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "bool", "name": "value", "type": "bool" }
        ],
        "name": "setBool",
        "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "bool[]", "name": "value", "type": "bool[]" }
        ],
        "name": "setBoolArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "bytes32", "name": "value", "type": "bytes32" }
        ],
        "name": "setBytes32",
        "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "bytes32[]", "name": "value", "type": "bytes32[]" }
        ],
        "name": "setBytes32Array",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "int256", "name": "value", "type": "int256" }
        ],
        "name": "setInt",
        "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "int256[]", "name": "value", "type": "int256[]" }
        ],
        "name": "setIntArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "string", "name": "value", "type": "string" }
        ],
        "name": "setString",
        "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "string[]", "name": "value", "type": "string[]" }
        ],
        "name": "setStringArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "uint256", "name": "value", "type": "uint256" }
        ],
        "name": "setUint",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "key", "type": "bytes32" },
            { "internalType": "uint256[]", "name": "value", "type": "uint256[]" }
        ],
        "name": "setUintArray",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "", "type": "bytes32" },
            { "internalType": "uint256", "name": "", "type": "uint256" }
        ],
        "name": "stringArrayValues",
        "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "name": "stringValues",
        "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "bytes32", "name": "", "type": "bytes32" },
            { "internalType": "uint256", "name": "", "type": "uint256" }
        ],
        "name": "uintArrayValues",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
        "name": "uintValues",
        "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
        "stateMutability": "view",
        "type": "function"
    }
]
