Uniswap Governor Bravo

Ethereum Browse chains

0x53a328f4086d7c0f1fa19e594c9b842125263026

Solidity v0.5.16+commit.9c3226ce

🤖
Query this contract from your AI
Reference: 0x53a328f4086d7c0f1fa19e594c9b842125263026
Sample prompt: "Tell me the current state of eth/0x53a328f4086d7c0f1fa19e594c9b842125263026"
No AI wired up yet? → mcp.smarts.md · Browse chains

Admin & Risk

Who can change the rules?

Block #25,494,728

Detected upgradeable controls from the verified ABI.

Upgradeable

Current controls

Admin
0x0000000000000000000000000000000000000000 (none)
Implementation
0x0000000000000000000000000000000000000000 (none)

Overview

Read Functions
26
Write Functions
14
Events
11

Read Functions

Block #25,494,728 · just now
BALLOT_TYPEHASH() view → 0x150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f

Returns the EIP-712 ballot type hash used to build vote signatures.✨ AI

Returns

Name Type Description
bytes32 The bytes32 type hash used to encode ballot structs for EIP-712 signing.✨ AI
DOMAIN_TYPEHASH() view → 0x8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866

Returns the EIP-712 domain typehash used by the governor for signature verification.✨ AI

Returns

Name Type Description
bytes32 The EIP-712 domain typehash as a bytes32 value used when hashing and verifying typed signatures.✨ AI
MAX_PROPOSAL_THRESHOLD() view → 10,000,000,000,000,000,000,000,000

Returns the maximum allowed proposal threshold used to determine eligibility to create a governance proposal.✨ AI

Returns

Name Type Description
uint256 Maximum proposal threshold (uint256): the highest allowed voting power required to create a proposal.✨ AI
MAX_VOTING_DELAY() view → 40,320

Returns the maximum allowed voting delay for proposals.✨ AI

Returns

Name Type Description
uint256 Maximum allowed voting delay, in blocks.✨ AI
MAX_VOTING_PERIOD() view → 80,640

Provides the maximum allowed voting period for proposals.✨ AI

Returns

Name Type Description
uint256 Maximum voting period for proposals, expressed in blocks.✨ AI
MIN_PROPOSAL_THRESHOLD() view → 1,000,000,000,000,000,000,000,000

Returns the minimum number of votes required to create a proposal.✨ AI

Returns

Name Type Description
uint256 The minimum vote threshold (uint256) required to submit a proposal.✨ AI
MIN_VOTING_DELAY() view → 1

Returns the protocol's minimum voting delay in blocks.✨ AI

Returns

Name Type Description
uint256 Minimum voting delay expressed as a number of blocks before voting on a proposal can start.✨ AI
MIN_VOTING_PERIOD() view → 5,760

Returns the minimum number of blocks a proposal must remain open for voting.✨ AI

Returns

Name Type Description
uint256 Minimum voting period expressed in number of blocks.✨ AI
admin() view → 0x0000000000000000000000000000000000000000

Return the current admin address of the GovernorBravoDelegate contract.✨ AI

Returns

Name Type Description
address The address that holds administrative privileges for governance (can perform upgrades and admin actions).✨ AI
getActions(proposalId: uint256) view

Gets actions of a proposal

Parameters

Name Type Description
proposalId uint256 the id of the proposal

Returns

Name Type Description
targets address[] Targets, values, signatures, and calldatas of the proposal actions
values uint256[]
signatures string[]
calldatas bytes[]
getReceipt(proposalId: uint256, voter: address) view

Gets the receipt for a voter on a given proposal

Parameters

Name Type Description
proposalId uint256 the id of proposal
voter address The address of the voter

Returns

Name Type Description
tuple The voting receipt
implementation() view → 0x0000000000000000000000000000000000000000

Return the current implementation address used by this governor contract.✨ AI

Returns

Name Type Description
address The current implementation contract address that this delegate forwards calls to.✨ AI
initialProposalId() view → 0

Return the initial proposal id used to assign proposal identifiers.✨ AI

Returns

Name Type Description
uint256 The initial proposal id as a uint256 value representing the starting proposal identifier.✨ AI
latestProposalIds(address) view

Return the id of the latest proposal created by the given proposer.✨ AI

Parameters

Name Type Description
address

Returns

Name Type Description
uint256 Latest proposal id created by the address (0 if none).✨ AI
name() view → Uniswap Governor Bravo

Returns the governor contract's name.✨ AI

Returns

Name Type Description
string The human-readable name of the governor contract.✨ AI
pendingAdmin() view → 0x0000000000000000000000000000000000000000

View the address currently designated to become the contract admin but not yet accepted.✨ AI

Returns

Name Type Description
address The address proposed as pending admin; this account can accept the admin role.✨ AI
proposalCount() view → 0

The total number of proposals

Returns

Name Type Description
uint256
proposalMaxOperations() view → 10

Returns the maximum number of operations allowed in a single proposal.✨ AI

Returns

Name Type Description
uint256 Maximum number of operations (actions) permitted in a single proposal as a uint256.✨ AI
proposalThreshold() view → 0

Return the current proposal threshold — the minimum votes required to create a proposal.✨ AI

Returns

Name Type Description
uint256 The proposal threshold as a uint256: minimum number of votes required to submit a proposal.✨ AI
proposals(uint256) view

Returns the stored proposal details for the specified proposal id.✨ AI

Parameters

Name Type Description
uint256

Returns

Name Type Description
id uint256 The proposal's unique identifier.✨ AI
proposer address Address of the account that created the proposal.✨ AI
eta uint256 ETA timestamp when the queued proposal becomes executable (0 if not queued).✨ AI
startBlock uint256 Block number when voting on the proposal begins.✨ AI
endBlock uint256 Block number when voting on the proposal ends.✨ AI
forVotes uint256 Total number of votes in favor.✨ AI
againstVotes uint256 Total number of votes against.✨ AI
abstainVotes uint256 Total number of abstain votes.✨ AI
canceled bool True if the proposal has been canceled.✨ AI
executed bool True if the proposal has been executed.✨ AI
quorumVotes() view → 40,000,000,000,000,000,000,000,000

Returns the current number of votes required for a proposal to reach quorum.✨ AI

Returns

Name Type Description
uint256 The minimum number of votes required for a proposal to reach quorum, expressed in raw voting units (uint256).✨ AI
state(proposalId: uint256) view

Gets the state of a proposal

Parameters

Name Type Description
proposalId uint256 The id of the proposal

Returns

Name Type Description
uint8 Proposal state
timelock() view → 0x0000000000000000000000000000000000000000

Returns the address of the timelock contract that the governor uses to execute delayed actions.✨ AI

Returns

Name Type Description
address The timelock contract address used to schedule and execute governance transactions.✨ AI
uni() view → 0x0000000000000000000000000000000000000000

Returns the address of the UNI token contract tracked by the governor.✨ AI

Returns

Name Type Description
address The UNI token contract address used by the GovernorBravoDelegate for governance operations.✨ AI
votingDelay() view → 0

Returns the number of blocks that must elapse before voting starts on a proposal.✨ AI

Returns

Name Type Description
uint256 The voting delay expressed as a number of blocks before voting begins.✨ AI
votingPeriod() view → 0

Returns the current voting period length in blocks.✨ AI

Returns

Name Type Description
uint256 The voting period duration expressed as a number of blocks.✨ AI

Write Functions

_acceptAdmin() nonpayable

Accepts transfer of admin rights. msg.sender must be pendingAdmin

dev: Admin function for pending admin to accept role and update admin
_initiate(proposalCount: uint256) nonpayable

Initiate the GovernorBravo contract

dev: Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count

Parameters

Name Type Description
proposalCount uint256 proposal id to initialize from
_setPendingAdmin(newPendingAdmin: address) nonpayable

Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.

dev: Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.

Parameters

Name Type Description
newPendingAdmin address New pending admin.
_setProposalThreshold(newProposalThreshold: uint256) nonpayable

Admin function for setting the proposal threshold

dev: newProposalThreshold must be greater than the hardcoded min

Parameters

Name Type Description
newProposalThreshold uint256 new proposal threshold
_setVotingDelay(newVotingDelay: uint256) nonpayable

Admin function for setting the voting delay

Parameters

Name Type Description
newVotingDelay uint256 new voting delay, in blocks
_setVotingPeriod(newVotingPeriod: uint256) nonpayable

Admin function for setting the voting period

Parameters

Name Type Description
newVotingPeriod uint256 new voting period, in blocks
cancel(proposalId: uint256) nonpayable

Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold

Parameters

Name Type Description
proposalId uint256 The id of the proposal to cancel
castVote(proposalId: uint256, support: uint8) nonpayable

Cast a vote for a proposal

Parameters

Name Type Description
proposalId uint256 The id of the proposal to vote on
support uint8 The support value for the vote. 0=against, 1=for, 2=abstain
castVoteBySig(proposalId: uint256, support: uint8, v: uint8, r: bytes32, s: bytes32) nonpayable

Cast a vote for a proposal by signature

dev: External function that accepts EIP-712 signatures for voting on proposals.

Parameters

Name Type Description
proposalId uint256
support uint8
v uint8
r bytes32
s bytes32
castVoteWithReason(proposalId: uint256, support: uint8, reason: string) nonpayable

Cast a vote for a proposal with a reason

Parameters

Name Type Description
proposalId uint256 The id of the proposal to vote on
support uint8 The support value for the vote. 0=against, 1=for, 2=abstain
reason string The reason given for the vote by the voter
execute(proposalId: uint256) payable

Executes a queued proposal if eta has passed

Parameters

Name Type Description
proposalId uint256 The id of the proposal to execute
initialize(timelock_: address, uni_: address, votingPeriod_: uint256, votingDelay_: uint256, proposalThreshold_: uint256) nonpayable

Used to initialize the contract during delegator contructor

Parameters

Name Type Description
timelock_ address The address of the Timelock
uni_ address The address of the Uni token
votingPeriod_ uint256 The initial voting period
votingDelay_ uint256 The initial voting delay
proposalThreshold_ uint256 The initial proposal threshold
propose(targets: address[], values: uint256[], signatures: string[], calldatas: bytes[], description: string) nonpayable

Function used to propose a new proposal. Sender must have delegates above the proposal threshold

Parameters

Name Type Description
targets address[] Target addresses for proposal calls
values uint256[] Eth values for proposal calls
signatures string[] Function signatures for proposal calls
calldatas bytes[] Calldatas for proposal calls
description string String description of the proposal

Returns

Name Type Description
uint256 Proposal id of new proposal
queue(proposalId: uint256) nonpayable

Queues a proposal of state succeeded

Parameters

Name Type Description
proposalId uint256 The id of the proposal to queue

Events

NewAdmin(oldAdmin: address, newAdmin: address)

Emitted when pendingAdmin is accepted, which means admin is updated

Name Type Indexed Description
oldAdmin address
newAdmin address
NewImplementation(oldImplementation: address, newImplementation: address)

Emitted when implementation is changed

Name Type Indexed Description
oldImplementation address
newImplementation address
NewPendingAdmin(oldPendingAdmin: address, newPendingAdmin: address)

Emitted when pendingAdmin is changed

Name Type Indexed Description
oldPendingAdmin address
newPendingAdmin address
ProposalCanceled(id: uint256)

An event emitted when a proposal has been canceled

Name Type Indexed Description
id uint256
ProposalCreated(id: uint256, proposer: address, targets: address[], values: uint256[], signatures: string[], calldatas: bytes[], startBlock: uint256, endBlock: uint256, description: string)

An event emitted when a new proposal is created

Name Type Indexed Description
id uint256
proposer address
targets address[]
values uint256[]
signatures string[]
calldatas bytes[]
startBlock uint256
endBlock uint256
description string
ProposalExecuted(id: uint256)

An event emitted when a proposal has been executed in the Timelock

Name Type Indexed Description
id uint256
ProposalQueued(id: uint256, eta: uint256)

An event emitted when a proposal has been queued in the Timelock

Name Type Indexed Description
id uint256
eta uint256
ProposalThresholdSet(oldProposalThreshold: uint256, newProposalThreshold: uint256)

Emitted when proposal threshold is set

Name Type Indexed Description
oldProposalThreshold uint256
newProposalThreshold uint256
VoteCast(voter: address, proposalId: uint256, support: uint8, votes: uint256, reason: string)

An event emitted when a vote has been cast on a proposal

Name Type Indexed Description
voter address The address which casted a vote
proposalId uint256 The proposal id which was voted on
support uint8 Support value for the vote. 0=against, 1=for, 2=abstain
votes uint256 Number of votes which were cast by the voter
reason string The reason given for the vote by the voter
VotingDelaySet(oldVotingDelay: uint256, newVotingDelay: uint256)

An event emitted when the voting delay is set

Name Type Indexed Description
oldVotingDelay uint256
newVotingDelay uint256
VotingPeriodSet(oldVotingPeriod: uint256, newVotingPeriod: uint256)

An event emitted when the voting period is set

Name Type Indexed Description
oldVotingPeriod uint256
newVotingPeriod uint256