[
  {
    "type": "constructor",
    "inputs": [
      {
        "name": "safes_",
        "type": "address[4]",
        "internalType": "address[4]"
      },
      {
        "name": "settings_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "EXECUTION_WINDOW",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "act",
    "inputs": [
      {
        "name": "power",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.VetoPower"
      },
      {
        "name": "args",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "action",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct ISinjohGovernance.Action",
        "components": [
          {
            "name": "power",
            "type": "uint8",
            "internalType": "enum ISinjohGovernance.Power"
          },
          {
            "name": "proposer",
            "type": "uint8",
            "internalType": "enum ISinjohGovernance.Role"
          },
          {
            "name": "confirmer",
            "type": "uint8",
            "internalType": "enum ISinjohGovernance.Role"
          },
          {
            "name": "twoSafe",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "executed",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "cancelled",
            "type": "bool",
            "internalType": "bool"
          },
          {
            "name": "proposerEpoch",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "confirmerEpoch",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "proposedAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "readyAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "args",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "cancel",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "confirm",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "execute",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "isSafe",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "isVetoCallInForce",
    "inputs": [
      {
        "name": "vetoEpoch",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "filedAt",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "nonce",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "pendingTakeover",
    "inputs": [
      {
        "name": "hook",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "poolId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "p",
        "type": "tuple",
        "internalType": "struct ISinjohGovernance.PendingTakeover",
        "components": [
          {
            "name": "id",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "newCreator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "scheduledAt",
            "type": "uint64",
            "internalType": "uint64"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "perform",
    "inputs": [
      {
        "name": "power",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Power"
      },
      {
        "name": "args",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "propose",
    "inputs": [
      {
        "name": "power",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Power"
      },
      {
        "name": "args",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "roleEpoch",
    "inputs": [
      {
        "name": "role",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Role"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "safe",
    "inputs": [
      {
        "name": "role",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Role"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "schedule",
    "inputs": [
      {
        "name": "power",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Power"
      },
      {
        "name": "args",
        "type": "bytes",
        "internalType": "bytes"
      }
    ],
    "outputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "settings",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "status",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Status"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "veto",
    "inputs": [
      {
        "name": "target",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "vetoEpochEndedAt",
    "inputs": [
      {
        "name": "vetoEpoch",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "vetoState",
    "inputs": [
      {
        "name": "target",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "live",
        "type": "bool",
        "internalType": "bool"
      },
      {
        "name": "isFinal",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "waitOf",
    "inputs": [
      {
        "name": "",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Power"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "event",
    "name": "ActionCancelled",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "safe",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ActionConfirmed",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "confirmer",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ISinjohGovernance.Role"
      },
      {
        "name": "safe",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "readyAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "expiresAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ActionExecuted",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "power",
        "type": "uint8",
        "indexed": true,
        "internalType": "enum ISinjohGovernance.Power"
      },
      {
        "name": "safe",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ActionProposed",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "power",
        "type": "uint8",
        "indexed": true,
        "internalType": "enum ISinjohGovernance.Power"
      },
      {
        "name": "proposer",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ISinjohGovernance.Role"
      },
      {
        "name": "safe",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "confirmer",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ISinjohGovernance.Role"
      },
      {
        "name": "args",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "ActionScheduled",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "power",
        "type": "uint8",
        "indexed": true,
        "internalType": "enum ISinjohGovernance.Power"
      },
      {
        "name": "proposer",
        "type": "uint8",
        "indexed": false,
        "internalType": "enum ISinjohGovernance.Role"
      },
      {
        "name": "safe",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "readyAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "expiresAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "args",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "CreatorReplacementScheduled",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "hook",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "poolId",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "newCreator",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "readyAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "SafeReplaced",
    "inputs": [
      {
        "name": "role",
        "type": "uint8",
        "indexed": true,
        "internalType": "enum ISinjohGovernance.Role"
      },
      {
        "name": "oldSafe",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "newSafe",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "epoch",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "VetoActed",
    "inputs": [
      {
        "name": "power",
        "type": "uint8",
        "indexed": true,
        "internalType": "enum ISinjohGovernance.VetoPower"
      },
      {
        "name": "args",
        "type": "bytes",
        "indexed": false,
        "internalType": "bytes"
      },
      {
        "name": "vetoEpoch",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      },
      {
        "name": "filedAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Vetoed",
    "inputs": [
      {
        "name": "target",
        "type": "bytes32",
        "indexed": true,
        "internalType": "bytes32"
      },
      {
        "name": "vetoEpoch",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      },
      {
        "name": "filedAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      },
      {
        "name": "finalAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "ActionVetoed",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "AlreadyVetoed",
    "inputs": [
      {
        "name": "target",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "BadArgs",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BadSafe",
    "inputs": [
      {
        "name": "safe",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "CannotVetoVetoReplacement",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "Expired",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotApprovedHook",
    "inputs": [
      {
        "name": "hook",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotAwaitingConfirmation",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotDisabled",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NotPartyToPower",
    "inputs": [
      {
        "name": "power",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Power"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotQueued",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotReady",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "readyAt",
        "type": "uint64",
        "internalType": "uint64"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotRecordedKeeper",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotSafe",
    "inputs": [
      {
        "name": "role",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Role"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotVeto",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OnlyVetoCancels",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "ReentrancyGuardReentrantCall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TakeoverPending",
    "inputs": [
      {
        "name": "hook",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "poolId",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "UnknownAction",
    "inputs": [
      {
        "name": "id",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ]
  },
  {
    "type": "error",
    "name": "WrongMethod",
    "inputs": [
      {
        "name": "power",
        "type": "uint8",
        "internalType": "enum ISinjohGovernance.Power"
      }
    ]
  }
]
