[
  {
    "type": "constructor",
    "inputs": [
      {
        "name": "long_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "short_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "admin_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "guardian_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "bootstrap_",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "error",
    "name": "AccessBootstrapClosed",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AccessGuardianReserved",
    "inputs": [
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "AccessGuardianRotationNotReady",
    "inputs": [
      {
        "name": "acceptableAt",
        "type": "uint64",
        "internalType": "uint64"
      }
    ]
  },
  {
    "type": "error",
    "name": "AccessNotAdminSafe",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AccessNotBootstrapAuthority",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AccessNotGuardianOrAdmin",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AccessNotLongTimelock",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AccessNotShortTimelock",
    "inputs": []
  },
  {
    "type": "error",
    "name": "AccessZeroAddress",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidSession",
    "inputs": [
      {
        "name": "day",
        "type": "uint32",
        "internalType": "uint32"
      }
    ]
  },
  {
    "type": "error",
    "name": "NotContiguous",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NotCovered",
    "inputs": [
      {
        "name": "ts",
        "type": "uint64",
        "internalType": "uint64"
      }
    ]
  },
  {
    "type": "event",
    "name": "AccessBootstrapFinalized",
    "inputs": [
      {
        "name": "caller",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "AccessGuardianProposed",
    "inputs": [
      {
        "name": "pending",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "acceptableAt",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "AccessGuardianSet",
    "inputs": [
      {
        "name": "previous",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      },
      {
        "name": "guardian",
        "type": "address",
        "indexed": true,
        "internalType": "address"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DayClosed",
    "inputs": [
      {
        "name": "day",
        "type": "uint32",
        "indexed": true,
        "internalType": "uint32"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "DaysSet",
    "inputs": [
      {
        "name": "firstDay",
        "type": "uint32",
        "indexed": true,
        "internalType": "uint32"
      },
      {
        "name": "count",
        "type": "uint32",
        "indexed": false,
        "internalType": "uint32"
      },
      {
        "name": "coveredUntil",
        "type": "uint64",
        "indexed": false,
        "internalType": "uint64"
      }
    ],
    "anonymous": false
  },
  {
    "type": "function",
    "name": "GUARDIAN_ROTATION_DELAY",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "acceptGuardian",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "adminSafe",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "bootstrapAdmin",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "bootstrapped",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "closeDay",
    "inputs": [
      {
        "name": "day",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "coveredUntil",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "dayInfo",
    "inputs": [
      {
        "name": "day",
        "type": "uint32",
        "internalType": "uint32"
      }
    ],
    "outputs": [
      {
        "name": "openMinute",
        "type": "uint16",
        "internalType": "uint16"
      },
      {
        "name": "closeMinute",
        "type": "uint16",
        "internalType": "uint16"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "finalizeBootstrap",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "guardian",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "lastSessionCloseAtOrBefore",
    "inputs": [
      {
        "name": "ts",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "outputs": [
      {
        "name": "closeAt",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "longTimelock",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "pendingGuardian",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "pendingGuardianAt",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "proposeGuardian",
    "inputs": [
      {
        "name": "next",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "sessionAt",
    "inputs": [
      {
        "name": "ts",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "outputs": [
      {
        "name": "open",
        "type": "bool",
        "internalType": "bool"
      },
      {
        "name": "openAt",
        "type": "uint64",
        "internalType": "uint64"
      },
      {
        "name": "closeAt",
        "type": "uint64",
        "internalType": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "setDays",
    "inputs": [
      {
        "name": "firstDay",
        "type": "uint32",
        "internalType": "uint32"
      },
      {
        "name": "packed",
        "type": "uint32[]",
        "internalType": "uint32[]"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setGuardian",
    "inputs": [
      {
        "name": "newGuardian",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "shortTimelock",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  }
]
