Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions configs/config_mainnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,15 @@
VEB_TWG_GATE_SEAL_EXPIRY_TIMESTAMP = 1789207187
VEB_TWG_SEAL_COMMITTEE = "0x8772E3a2D86B9347A2688f9bc1808A6d8917760C"

# CircuitBreaker
CIRCUIT_BREAKER = "0x6019CB557978296BA3C08a7B73225C0975DFB2F7"
CIRCUIT_BREAKER_MIN_PAUSE_DURATION = 432000 # 5 days
CIRCUIT_BREAKER_MAX_PAUSE_DURATION = 5184000 # 60 days
CIRCUIT_BREAKER_PAUSE_DURATION = 1814400 # 21 days
CIRCUIT_BREAKER_MIN_HEARTBEAT_INTERVAL = 2592000 # 30 days
CIRCUIT_BREAKER_MAX_HEARTBEAT_INTERVAL = 94608000 # 1095 days (~3 years)
CIRCUIT_BREAKER_HEARTBEAT_INTERVAL = 31536000 # 1 year (365 days)

# Aragon Permissions test
ACL_DEPLOY_BLOCK_NUMBER = 11473216

Expand Down
1 change: 1 addition & 0 deletions interfaces/CircuitBreaker.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"uint256","name":"_minPauseDuration","type":"uint256"},{"internalType":"uint256","name":"_maxPauseDuration","type":"uint256"},{"internalType":"uint256","name":"_minHeartbeatInterval","type":"uint256"},{"internalType":"uint256","name":"_maxHeartbeatInterval","type":"uint256"},{"internalType":"uint256","name":"_initialPauseDuration","type":"uint256"},{"internalType":"uint256","name":"_initialHeartbeatInterval","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AdminZero","type":"error"},{"inputs":[],"name":"HeartbeatExpired","type":"error"},{"inputs":[],"name":"HeartbeatIntervalAboveMax","type":"error"},{"inputs":[],"name":"HeartbeatIntervalBelowMin","type":"error"},{"inputs":[],"name":"MinHeartbeatIntervalExceedsMax","type":"error"},{"inputs":[],"name":"MinHeartbeatIntervalZero","type":"error"},{"inputs":[],"name":"MinPauseDurationExceedsMax","type":"error"},{"inputs":[],"name":"MinPauseDurationZero","type":"error"},{"inputs":[],"name":"PausableZero","type":"error"},{"inputs":[],"name":"PauseDurationAboveMax","type":"error"},{"inputs":[],"name":"PauseDurationBelowMin","type":"error"},{"inputs":[],"name":"PauseFailed","type":"error"},{"inputs":[],"name":"ReentrantCall","type":"error"},{"inputs":[],"name":"SenderNotAdmin","type":"error"},{"inputs":[],"name":"SenderNotPauser","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"},{"indexed":false,"internalType":"uint256","name":"minPauseDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxPauseDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minHeartbeatInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxHeartbeatInterval","type":"uint256"}],"name":"CircuitBreakerInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"previousHeartbeatInterval","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newHeartbeatInterval","type":"uint256"}],"name":"HeartbeatIntervalUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pauser","type":"address"},{"indexed":false,"internalType":"uint256","name":"newHeartbeatExpiry","type":"uint256"}],"name":"HeartbeatUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"previousPauseDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newPauseDuration","type":"uint256"}],"name":"PauseDurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pausable","type":"address"},{"indexed":true,"internalType":"address","name":"pauser","type":"address"},{"indexed":false,"internalType":"uint256","name":"pauseDuration","type":"uint256"}],"name":"PauseTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pausable","type":"address"},{"indexed":true,"internalType":"address","name":"previousPauser","type":"address"},{"indexed":true,"internalType":"address","name":"newPauser","type":"address"}],"name":"PauserSet","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_HEARTBEAT_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PAUSE_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_HEARTBEAT_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_PAUSE_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pauser","type":"address"}],"name":"getPausableCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPausables","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pausable","type":"address"}],"name":"getPauser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"heartbeat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pauser","type":"address"}],"name":"heartbeatExpiry","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"heartbeatInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pauser","type":"address"}],"name":"isPauserLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pausable","type":"address"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pauseDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pausable","type":"address"},{"internalType":"address","name":"_newPauser","type":"address"}],"name":"registerPauser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newHeartbeatInterval","type":"uint256"}],"name":"setHeartbeatInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPauseDuration","type":"uint256"}],"name":"setPauseDuration","outputs":[],"stateMutability":"nonpayable","type":"function"}]
118 changes: 118 additions & 0 deletions interfaces/IPausableUntilWithRoles.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
[
{
"inputs": [],
"name": "PAUSE_ROLE",
"outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RESUME_ROLE",
"outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isPaused",
"outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getResumeSinceTimestamp",
"outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PAUSE_INFINITELY",
"outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [{"internalType": "uint256", "name": "_duration", "type": "uint256"}],
"name": "pauseFor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "resume",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{"internalType": "bytes32", "name": "role", "type": "bytes32"},
{"internalType": "address", "name": "account", "type": "address"}
],
"name": "hasRole",
"outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{"internalType": "bytes32", "name": "role", "type": "bytes32"},
{"internalType": "uint256", "name": "index", "type": "uint256"}
],
"name": "getRoleMember",
"outputs": [{"internalType": "address", "name": "", "type": "address"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [{"internalType": "bytes32", "name": "role", "type": "bytes32"}],
"name": "getRoleMemberCount",
"outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{"internalType": "bytes32", "name": "role", "type": "bytes32"},
{"internalType": "address", "name": "account", "type": "address"}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{"internalType": "bytes32", "name": "role", "type": "bytes32"},
{"internalType": "address", "name": "account", "type": "address"}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{"indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32"},
{"indexed": true, "internalType": "address", "name": "account", "type": "address"},
{"indexed": true, "internalType": "address", "name": "sender", "type": "address"}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{"indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32"},
{"indexed": true, "internalType": "address", "name": "account", "type": "address"},
{"indexed": true, "internalType": "address", "name": "sender", "type": "address"}
],
"name": "RoleRevoked",
"type": "event"
}
]
Loading
Loading