[
  {
    "type": "function",
    "name": "acceptOwnership",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "activateWorkflow",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminBatchPauseWorkflows",
    "inputs": [
      {
        "name": "workflowIds",
        "type": "bytes32[]",
        "internalType": "bytes32[]"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminPauseAllByDON",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminPauseAllByOwner",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminPauseWorkflow",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "allowlistRequest",
    "inputs": [
      {
        "name": "requestDigest",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "expiryTimestamp",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "batchActivateWorkflows",
    "inputs": [
      {
        "name": "workflowIds",
        "type": "bytes32[]",
        "internalType": "bytes32[]"
      },
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "batchPauseWorkflows",
    "inputs": [
      {
        "name": "workflowIds",
        "type": "bytes32[]",
        "internalType": "bytes32[]"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "canLinkOwner",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "validityTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "proof",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "canUnlinkOwner",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "validityTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "deleteWorkflow",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "getAllowlistedRequests",
    "inputs": [
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "allowlistedRequests",
        "type": "tuple[]",
        "internalType": "struct WorkflowRegistry.OwnerAllowlistedRequest[]",
        "components": [
          {
            "name": "requestDigest",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "expiryTimestamp",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getCapabilitiesRegistry",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getConfig",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct WorkflowRegistry.Config",
        "components": [
          {
            "name": "maxNameLen",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "maxTagLen",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "maxUrlLen",
            "type": "uint8",
            "internalType": "uint8"
          },
          {
            "name": "maxAttrLen",
            "type": "uint16",
            "internalType": "uint16"
          },
          {
            "name": "maxExpiryLen",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getDonConfigs",
    "inputs": [
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "list",
        "type": "tuple[]",
        "internalType": "struct WorkflowRegistry.DonConfigView[]",
        "components": [
          {
            "name": "donHash",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "family",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "limit",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "limitEnabled",
            "type": "bool",
            "internalType": "bool"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getEvents",
    "inputs": [
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "list",
        "type": "tuple[]",
        "internalType": "struct WorkflowRegistry.EventRecord[]",
        "components": [
          {
            "name": "eventType",
            "type": "uint8",
            "internalType": "enum WorkflowRegistry.EventType"
          },
          {
            "name": "timestamp",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "payload",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getLinkedOwners",
    "inputs": [
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "owners",
        "type": "address[]",
        "internalType": "address[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getMaxWorkflowsPerDON",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [
      {
        "name": "maxWorkflows",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getMaxWorkflowsPerUserDON",
    "inputs": [
      {
        "name": "user",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getUserDONOverrides",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "list",
        "type": "tuple[]",
        "internalType": "struct WorkflowRegistry.UserOverrideView[]",
        "components": [
          {
            "name": "user",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "limit",
            "type": "uint32",
            "internalType": "uint32"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getWorkflow",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "workflowName",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "tag",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [
      {
        "name": "workflow",
        "type": "tuple",
        "internalType": "struct WorkflowRegistry.WorkflowMetadataView",
        "components": [
          {
            "name": "workflowId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "createdAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "status",
            "type": "uint8",
            "internalType": "enum WorkflowRegistry.WorkflowStatus"
          },
          {
            "name": "workflowName",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "binaryUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "configUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "tag",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "attributes",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "donFamily",
            "type": "string",
            "internalType": "string"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getWorkflowById",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "workflow",
        "type": "tuple",
        "internalType": "struct WorkflowRegistry.WorkflowMetadataView",
        "components": [
          {
            "name": "workflowId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "createdAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "status",
            "type": "uint8",
            "internalType": "enum WorkflowRegistry.WorkflowStatus"
          },
          {
            "name": "workflowName",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "binaryUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "configUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "tag",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "attributes",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "donFamily",
            "type": "string",
            "internalType": "string"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getWorkflowListByDON",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "list",
        "type": "tuple[]",
        "internalType": "struct WorkflowRegistry.WorkflowMetadataView[]",
        "components": [
          {
            "name": "workflowId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "createdAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "status",
            "type": "uint8",
            "internalType": "enum WorkflowRegistry.WorkflowStatus"
          },
          {
            "name": "workflowName",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "binaryUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "configUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "tag",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "attributes",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "donFamily",
            "type": "string",
            "internalType": "string"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getWorkflowListByOwner",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "list",
        "type": "tuple[]",
        "internalType": "struct WorkflowRegistry.WorkflowMetadataView[]",
        "components": [
          {
            "name": "workflowId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "createdAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "status",
            "type": "uint8",
            "internalType": "enum WorkflowRegistry.WorkflowStatus"
          },
          {
            "name": "workflowName",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "binaryUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "configUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "tag",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "attributes",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "donFamily",
            "type": "string",
            "internalType": "string"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getWorkflowListByOwnerAndName",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "workflowName",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "start",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "limit",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "list",
        "type": "tuple[]",
        "internalType": "struct WorkflowRegistry.WorkflowMetadataView[]",
        "components": [
          {
            "name": "workflowId",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "owner",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "createdAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "status",
            "type": "uint8",
            "internalType": "enum WorkflowRegistry.WorkflowStatus"
          },
          {
            "name": "workflowName",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "binaryUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "configUrl",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "tag",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "attributes",
            "type": "bytes",
            "internalType": "bytes"
          },
          {
            "name": "donFamily",
            "type": "string",
            "internalType": "string"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "getWorkflowOwnerConfig",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isAllowedSigner",
    "inputs": [
      {
        "name": "signer",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isOwnerLinked",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isRequestAllowlisted",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "requestDigest",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "linkOwner",
    "inputs": [
      {
        "name": "validityTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "proof",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "pauseWorkflow",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setCapabilitiesRegistry",
    "inputs": [
      {
        "name": "registry",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "chainSelector",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setConfig",
    "inputs": [
      {
        "name": "nameLen",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "tagLen",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "urlLen",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "attrLen",
        "type": "uint16",
        "internalType": "uint16"
      },
      {
        "name": "expiryLen",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setDONLimit",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "limit",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "enabled",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setUserDONOverride",
    "inputs": [
      {
        "name": "user",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "limit",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "enabled",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setWorkflowOwnerConfig",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "config",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "totalActiveWorkflowsByOwner",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "count",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "totalActiveWorkflowsOnDON",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [
      {
        "name": "count",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "totalAllowlistedRequests",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "totalEvents",
    "inputs": [],
    "outputs": [
      {
        "name": "count",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "totalLinkedOwners",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "to",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "typeAndVersion",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string",
        "internalType": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "unlinkOwner",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "validityTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "updateAllowedSigners",
    "inputs": [
      {
        "name": "signers",
        "type": "address[]",
        "internalType": "address[]"
      },
      {
        "name": "allowed",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "updateWorkflowDONFamily",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "newDonFamily",
        "type": "string",
        "internalType": "string"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "upsertWorkflow",
    "inputs": [
      {
        "name": "workflowName",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "tag",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "status",
        "type": "uint8",
        "internalType": "enum WorkflowRegistry.WorkflowStatus"
      },
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "binaryUrl",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "configUrl",
        "type": "string",
        "internalType": "string"
      },
      {
        "name": "attributes",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "keepAlive",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "event",
    "name": "AllowedSignersUpdated",
    "inputs": [
      {
        "name": "signers",
        "type": "address[]",
        "indexed": false,
        "internalType": "address[]"
      },
      {
        "name": "allowed",
        "type": "bool",
        "indexed": false,
        "internalType": "bool"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CapabilitiesRegistryUpdated",
    "inputs": [
      {
        "name": "oldAddr",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "newAddr",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "oldChainSelector",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "newChainSelector",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ConfigUpdated",
    "inputs": [
      {
        "name": "maxNameLen",
        "type": "uint8",
        "indexed": false,
        "internalType": "uint8"
      },
      {
        "name": "maxTagLen",
        "type": "uint8",
        "indexed": false,
        "internalType": "uint8"
      },
      {
        "name": "maxUrlLen",
        "type": "uint8",
        "indexed": false,
        "internalType": "uint8"
      },
      {
        "name": "maxAttrLen",
        "type": "uint16",
        "indexed": false,
        "internalType": "uint16"
      },
      {
        "name": "maxExpiryLen",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DONLimitSet",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "limit",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipLinkUpdated",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "proof",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "added",
        "type": "bool",
        "indexed": true,
        "internalType": "bool"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferRequested",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "from",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "to",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RequestAllowlisted",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "requestDigest",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "expiryTimestamp",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "UserDONLimitSet",
    "inputs": [
      {
        "name": "user",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "limit",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "UserDONLimitUnset",
    "inputs": [
      {
        "name": "user",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WorkflowActivated",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "workflowName",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WorkflowDeleted",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "workflowName",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WorkflowDonFamilyUpdated",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "oldDonFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "newDonFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WorkflowOwnerConfigUpdated",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "config",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WorkflowPaused",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "workflowName",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WorkflowRegistered",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "status",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum WorkflowRegistry.WorkflowStatus"
      },
      {
        "name": "workflowName",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WorkflowUpdated",
    "inputs": [
      {
        "name": "oldWorkflowId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "newWorkflowId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "owner",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      },
      {
        "name": "workflowName",
        "type": "string",
        "indexed": false,
        "internalType": "string"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "AttributesTooLong",
    "inputs": [
      {
        "name": "provided",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "maxAllowed",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "BinaryURLRequired",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CallerIsNotWorkflowOwner",
    "inputs": [
      {
        "name": "caller",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotTransferToSelf",
    "inputs": []
  },
  {
    "type": "error",
    "name": "CannotUpdateDONFamilyForPausedWorkflows",
    "inputs": []
  },
  {
    "type": "error",
    "name": "DonLimitNotSet",
    "inputs": [
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ]
  },
  {
    "type": "error",
    "name": "EmptyUpdateBatch",
    "inputs": []
  },
  {
    "type": "error",
    "name": "EnumerableMapNonexistentKey",
    "inputs": [
      {
        "name": "key",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "InvalidExpiryTimestamp",
    "inputs": [
      {
        "name": "requestDigest",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "expiryTimestamp",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "maxAllowed",
        "type": "uint32",
        "internalType": "uint32"
      }
    ]
  },
  {
    "type": "error",
    "name": "InvalidOwnershipLink",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "validityTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "proof",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      }
    ]
  },
  {
    "type": "error",
    "name": "InvalidSignature",
    "inputs": [
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "recoverErrorId",
        "type": "uint8",
        "internalType": "uint8"
      },
      {
        "name": "recoverErrorArg",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "LinkOwnerRequestExpired",
    "inputs": [
      {
        "name": "caller",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "currentTime",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "expiryTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "MaxWorkflowsPerUserDONExceeded",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "donFamily",
        "type": "string",
        "internalType": "string"
      }
    ]
  },
  {
    "type": "error",
    "name": "MustBeProposedOwner",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OnlyCallableByOwner",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OwnerCannotBeZero",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OwnershipLinkAlreadyExists",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "OwnershipLinkDoesNotExist",
    "inputs": [
      {
        "name": "owner",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "OwnershipProofAlreadyUsed",
    "inputs": [
      {
        "name": "caller",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "proof",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "URLTooLong",
    "inputs": [
      {
        "name": "provided",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "maxAllowed",
        "type": "uint8",
        "internalType": "uint8"
      }
    ]
  },
  {
    "type": "error",
    "name": "UnlinkOwnerRequestExpired",
    "inputs": [
      {
        "name": "caller",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "currentTime",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "expiryTimestamp",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "UserDONOverrideExceedsDONLimit",
    "inputs": []
  },
  {
    "type": "error",
    "name": "WorkflowDoesNotExist",
    "inputs": []
  },
  {
    "type": "error",
    "name": "WorkflowIDAlreadyExists",
    "inputs": [
      {
        "name": "workflowId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "WorkflowNameRequired",
    "inputs": []
  },
  {
    "type": "error",
    "name": "WorkflowNameTooLong",
    "inputs": [
      {
        "name": "provided",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "maxAllowed",
        "type": "uint8",
        "internalType": "uint8"
      }
    ]
  },
  {
    "type": "error",
    "name": "WorkflowTagRequired",
    "inputs": []
  },
  {
    "type": "error",
    "name": "WorkflowTagTooLong",
    "inputs": [
      {
        "name": "provided",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "maxAllowed",
        "type": "uint8",
        "internalType": "uint8"
      }
    ]
  },
  {
    "type": "error",
    "name": "ZeroAddressNotAllowed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ZeroWorkflowIDNotAllowed",
    "inputs": []
  }
]