Uniswap Governor Bravo

Ethereum

0x408ed6354d4973f66138c91495f2f2fcbd8724c3

Proxy implementation: 0x53a328f4086d7c0f1fa19e594c9b842125263026

Solidity v0.5.16+commit.9c3226ce

🤖
Query this contract from your AI
Reference: 0x408ed6354d4973f66138c91495f2f2fcbd8724c3
Sample prompt: “Tell me the current state of eth/0x408ed6354d4973f66138c91495f2f2fcbd8724c3”
No AI wired up yet? → mcp.smarts.md

Admin & Risk

Who can change the rules?

Block #25,170,493

Detected upgradeable controls from the verified ABI.

Upgradeable

Current controls

Admin
0x1a9c8182c09f50c8318d769245bea52c32be35bc ↗ Etherscan → smarts
Implementation
0x53a328f4086d7c0f1fa19e594c9b842125263026 ↗ Etherscan → smarts

Overview

Read Functions
26
Write Functions
14
Events
11

Read Functions

Block #25,170,493 · just now
BALLOT_TYPEHASH() view → 0x150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f

Returns

Name Type Description
bytes32
DOMAIN_TYPEHASH() view → 0x8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866

Returns

Name Type Description
bytes32
MAX_PROPOSAL_THRESHOLD() view → 10,000,000,000,000,000,000,000,000

Returns

Name Type Description
uint256
MAX_VOTING_DELAY() view → 40,320

Returns

Name Type Description
uint256
MAX_VOTING_PERIOD() view → 80,640

Returns

Name Type Description
uint256
MIN_PROPOSAL_THRESHOLD() view → 1,000,000,000,000,000,000,000,000

Returns

Name Type Description
uint256
MIN_VOTING_DELAY() view → 1

Returns

Name Type Description
uint256
MIN_VOTING_PERIOD() view → 5,760

Returns

Name Type Description
uint256
admin() view → 0x1a9c8182c09f50c8318d769245bea52c32be35bc

Returns

Name Type Description
address
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 → 0x53a328f4086d7c0f1fa19e594c9b842125263026

Returns

Name Type Description
address
initialProposalId() view → 8

Returns

Name Type Description
uint256
latestProposalIds(address) view

Parameters

Name Type Description
address

Returns

Name Type Description
uint256
name() view → Uniswap Governor Bravo

Returns

Name Type Description
string
pendingAdmin() view → 0x0000000000000000000000000000000000000000

Returns

Name Type Description
address
proposalCount() view → 97

The total number of proposals

Returns

Name Type Description
uint256
proposalMaxOperations() view → 10

Returns

Name Type Description
uint256
proposalThreshold() view → 1,000,000,000,000,000,000,000,000

Returns

Name Type Description
uint256
proposals(uint256) view

Parameters

Name Type Description
uint256

Returns

Name Type Description
id uint256
proposer address
eta uint256
startBlock uint256
endBlock uint256
forVotes uint256
againstVotes uint256
abstainVotes uint256
canceled bool
executed bool
quorumVotes() view → 40,000,000,000,000,000,000,000,000

Returns

Name Type Description
uint256
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 → 0x1a9c8182c09f50c8318d769245bea52c32be35bc

Returns

Name Type Description
address
uni() view → 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984

Returns

Name Type Description
address
votingDelay() view → 13,140

Returns

Name Type Description
uint256
votingPeriod() view → 40,320

Returns

Name Type Description
uint256

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