Contract detail
SbrTimelock
SbrTimelock is a verified Robinhood Chain smart contract at 0xbfffbd17…cb1a4b60 with 2 indexed transactions.
- Address type
- Smart contract
- Transactions
- 2
- First indexed block
- #28467612
- Latest indexed block
- #28468792
- Emitted events
- 11
- Verification
- Verified
- Compiler
- v0.8.26+commit.8a97fa7a
- Verification match
- full
- Creation transaction
- 0x1e18ad3d…ee59b915
- Created at block
- #28464913
- Language
- solidity
- EVM version
- paris
- License
- mit
- Compiler optimization
- Enabled · 200 runs
Related activity
Transactions
| Transaction | Block | From | To | Value (wei) |
|---|---|---|---|---|
| 0x0c8a00f6…8530bacd | #28468792 | 0xdb650642…9f638ad2 | 0xbfffbd17…cb1a4b60 | 0 |
| 0x384eec95…562c1a61 | #28467612 | 0xdb650642…9f638ad2 | 0xbfffbd17…cb1a4b60 | 0 |
Verified contract
Contract source code
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
/**
* @title SbrTimelock
* @notice The account that governs every SBR contract.
*
* This is OpenZeppelin's audited `TimelockController` with no behaviour added.
* A timelock is exactly the kind of security-critical primitive that should
* not be hand-rolled, and the same goes for the multisig that drives it:
* Gnosis Safe is already deployed on Robinhood Chain (singletons 1.3.0 and
* 1.4.1, both proxy factories), so the intended wiring is a Safe as proposer
* and this contract as the sole `governor` of the protocol contracts.
*
* What that buys, concretely: no single key can retune the fee split, install
* a reserve route or publish a rewards root. Every such change is announced
* on-chain and only becomes executable once `minDelay` has elapsed, which is
* the window in which holders can read the proposed call and leave if they
* dislike it.
*
* Deployment notes:
* - `proposers`: the Safe. `executors`: pass the zero address to let anyone
* execute once the delay has run, so a stalled Safe cannot freeze a change
* that already cleared its waiting period.
* - `admin`: pass the zero address. The contract self-administers, and any
* other value is a backdoor around the delay.
*/
contract SbrTimelock is TimelockController {
constructor(uint256 minDelay, address[] memory proposers, address[] memory executors, address admin)
TimelockController(minDelay, proposers, executors, admin)
{}
}