openzeppelin_governance
Fully qualified path: openzeppelin_governance
Modules
Modules
Modules
governor
Fully qualified path: openzeppelin_governance::governor
Modules
Re-exports:
| ProposalCore | Proposal state. |
| DefaultConfig | Implementation of the default Governor ImmutableConfig. See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation The DEFAULT_PARAMS… |
Modules
Modules
extensions
Fully qualified path: openzeppelin_governance::governor::extensions
Modules
| governor_core_execution | — |
| governor_counting_simple | — |
| governor_settings | — |
| governor_timelock_execution | — |
| governor_votes | — |
| governor_votes_quorum_fraction | — |
Re-exports:
| GovernorCoreExecutionComponent | … |
| GovernorCountingSimpleComponent | … |
| GovernorSettingsComponent | … |
| GovernorTimelockExecutionComponent | … |
| GovernorVotesComponent | … |
| GovernorVotesQuorumFractionComponent | … |
Modules
Modules
| governor_core_execution | — |
| governor_counting_simple | — |
| governor_settings | — |
| governor_timelock_execution | — |
| governor_votes | — |
| governor_votes_quorum_fraction | — |
governor_core_execution
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution
Modules
Modules
Modules
GovernorCoreExecutionComponent
GovernorCoreExecution Component
Extension of GovernorComponent providing an execution mechanism directly through the Governor itself. For a timelocked execution mechanism, see GovernorTimelockExecutionComponent.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent
Free functions
Structs
Enums
Traits
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
Storage
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::Storage
[storage]
pub struct Storage {}
ComponentState
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::Event
pub enum Event {}
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_governance::governor::extensions::governor_core_execution::GovernorCoreExecutionComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
governor_counting_simple
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple
Modules
Modules
Modules
GovernorCountingSimpleComponent
GovernorCountingSimple Component
Extension of GovernorComponent for simple vote counting with three options.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent
Modules
Free functions
Structs
Enums
Traits
Modules
Modules
Errors
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::Errors
Constants
Constants
Constants
ALREADY_CAST_VOTE
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::Errors::ALREADY_CAST_VOTE
pub const ALREADY_CAST_VOTE: felt252 = 22262504451487240676400251763458170647653;
INVALID_VOTE_TYPE
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::Errors::INVALID_VOTE_TYPE
pub const INVALID_VOTE_TYPE: felt252 = 24987442531777145766172188403588409159781;
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
Storage
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::Storage
[storage]
pub struct Storage {
pub Governor_proposals_votes: Map<felt252, ProposalVote>,
}
Members
Governor_proposals_votes
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::Storage::Governor_proposals_votes
pub Governor_proposals_votes: Map<felt252, ProposalVote>
ProposalVote
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::ProposalVote
[starknet::storage_node]
pub struct ProposalVote {
pub against_votes: u256,
pub for_votes: u256,
pub abstain_votes: u256,
pub has_voted: Map<ContractAddress, bool>,
}
Members
against_votes
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::ProposalVote::against_votes
pub against_votes: u256
for_votes
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::ProposalVote::for_votes
pub for_votes: u256
abstain_votes
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::ProposalVote::abstain_votes
pub abstain_votes: u256
has_voted
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::ProposalVote::has_voted
pub has_voted: Map<ContractAddress, bool>
ComponentState
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
VoteType
Supported vote types.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::VoteType
pub enum VoteType {
Against,
For,
Abstain,
}
Variants
Against
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::VoteType::Against
Against
For
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::VoteType::For
For
Abstain
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::VoteType::Abstain
Abstain
Event
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::Event
pub enum Event {}
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_governance::governor::extensions::governor_counting_simple::GovernorCountingSimpleComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
governor_settings
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings
Modules
Modules
Modules
GovernorSettingsComponent
GovernorSettings Component
Extension of GovernorComponent for settings that are updatable through governance.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent
Modules
| Errors | — |
| __external_GovernorSettingsAdminImpl | — |
| __l1_handler_GovernorSettingsAdminImpl | — |
| __constructor_GovernorSettingsAdminImpl | — |
Free functions
Structs
| Storage | — |
| VotingDelayUpdated | Emitted when Governor_voting_delay is updated. |
| VotingPeriodUpdated | Emitted when Governor_voting_period is updated. |
| ProposalThresholdUpdated | Emitted when Governor_proposal_threshold is updated. |
| ComponentState | — |
Enums
Traits
Modules
Modules
| Errors | — |
| __external_GovernorSettingsAdminImpl | — |
| __l1_handler_GovernorSettingsAdminImpl | — |
| __constructor_GovernorSettingsAdminImpl | — |
Errors
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Errors
Constants
Constants
Constants
INVALID_VOTING_PERIOD
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Errors::INVALID_VOTING_PERIOD
pub const INVALID_VOTING_PERIOD: felt252 = 107320248484662281825934412318490016555160658603876;
__external_GovernorSettingsAdminImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::__external_GovernorSettingsAdminImpl
__l1_handler_GovernorSettingsAdminImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::__l1_handler_GovernorSettingsAdminImpl
__constructor_GovernorSettingsAdminImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::__constructor_GovernorSettingsAdminImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| VotingDelayUpdated | Emitted when Governor_voting_delay is updated. |
| VotingPeriodUpdated | Emitted when Governor_voting_period is updated. |
| ProposalThresholdUpdated | Emitted when Governor_proposal_threshold is updated. |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Storage
[storage]
pub struct Storage {
pub Governor_voting_delay: u64,
pub Governor_voting_period: u64,
pub Governor_proposal_threshold: u256,
}
Members
Governor_voting_delay
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Storage::Governor_voting_delay
pub Governor_voting_delay: u64
Governor_voting_period
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Storage::Governor_voting_period
pub Governor_voting_period: u64
Governor_proposal_threshold
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Storage::Governor_proposal_threshold
pub Governor_proposal_threshold: u256
VotingDelayUpdated
Emitted when Governor_voting_delay is updated.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::VotingDelayUpdated
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct VotingDelayUpdated {
pub old_voting_delay: u64,
pub new_voting_delay: u64,
}
Members
old_voting_delay
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::VotingDelayUpdated::old_voting_delay
pub old_voting_delay: u64
new_voting_delay
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::VotingDelayUpdated::new_voting_delay
pub new_voting_delay: u64
VotingPeriodUpdated
Emitted when Governor_voting_period is updated.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::VotingPeriodUpdated
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct VotingPeriodUpdated {
pub old_voting_period: u64,
pub new_voting_period: u64,
}
Members
old_voting_period
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::VotingPeriodUpdated::old_voting_period
pub old_voting_period: u64
new_voting_period
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::VotingPeriodUpdated::new_voting_period
pub new_voting_period: u64
ProposalThresholdUpdated
Emitted when Governor_proposal_threshold is updated.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::ProposalThresholdUpdated
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct ProposalThresholdUpdated {
pub old_proposal_threshold: u256,
pub new_proposal_threshold: u256,
}
Members
old_proposal_threshold
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::ProposalThresholdUpdated::old_proposal_threshold
pub old_proposal_threshold: u256
new_proposal_threshold
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::ProposalThresholdUpdated::new_proposal_threshold
pub new_proposal_threshold: u256
ComponentState
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Event
pub enum Event {
VotingDelayUpdated: VotingDelayUpdated,
VotingPeriodUpdated: VotingPeriodUpdated,
ProposalThresholdUpdated: ProposalThresholdUpdated,
}
Variants
VotingDelayUpdated
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Event::VotingDelayUpdated
VotingDelayUpdated: VotingDelayUpdated
VotingPeriodUpdated
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Event::VotingPeriodUpdated
VotingPeriodUpdated: VotingPeriodUpdated
ProposalThresholdUpdated
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Event::ProposalThresholdUpdated
ProposalThresholdUpdated: ProposalThresholdUpdated
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::InternalTrait
pub trait InternalTrait<TContractState, +HasComponent<TContractState>, impl GovernorCountingTrait<TContractState>: GovernorCountingTrait<TContractState>, impl GovernorExecutionTrait<TContractState>: GovernorExecutionTrait<TContractState>, impl GovernorVotesTrait<TContractState>: GovernorVotesTrait<TContractState>, impl HasComponent<TContractState>: HasComponent<TContractState>, impl Governor: HasComponent<TContractState>, +Drop<TContractState>>
Trait functions
initializer
Initializes the component by setting the default values.
Requirements:
new_voting_periodmust be greater than 0.
Emits a VotingDelayUpdated, VotingPeriodUpdated, and ProposalThresholdUpdated
event.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::InternalTrait::initializer
fn initializer(
ref self: ComponentState<TContractState>,
new_voting_delay: u64,
new_voting_period: u64,
new_proposal_threshold: u256,
)
assert_only_governance
Wrapper for Governor::assert_only_governance.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::InternalTrait::assert_only_governance
fn assert_only_governance(self: @ComponentState<TContractState>)
_set_voting_delay
Internal function to update the voting delay.
NOTE: This function does not emit an event if the new voting delay is the same as the old one.
May emit a VotingDelayUpdated event.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::InternalTrait::_set_voting_delay
fn _set_voting_delay(ref self: ComponentState<TContractState>, new_voting_delay: u64)
_set_voting_period
Internal function to update the voting period.
Requirements:
new_voting_periodmust be greater than 0.
NOTE: This function does not emit an event if the new voting period is the same as the old one.
May emit a VotingPeriodUpdated event.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::InternalTrait::_set_voting_period
fn _set_voting_period(ref self: ComponentState<TContractState>, new_voting_period: u64)
_set_proposal_threshold
Internal function to update the proposal threshold.
NOTE: This function does not emit an event if the new proposal threshold is the same as the old one.
May emit a ProposalThresholdUpdated event.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::InternalTrait::_set_proposal_threshold
fn _set_proposal_threshold(ref self: ComponentState<TContractState>, new_proposal_threshold: u256)
UnsafeNewContractStateTraitForGovernorSettingsAdminImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::UnsafeNewContractStateTraitForGovernorSettingsAdminImpl
pub trait UnsafeNewContractStateTraitForGovernorSettingsAdminImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_settings::GovernorSettingsComponent::UnsafeNewContractStateTraitForGovernorSettingsAdminImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
governor_timelock_execution
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution
Modules
Modules
Modules
GovernorTimelockExecutionComponent
GovernorTimelockExecution Component
Extension of GovernorComponent that binds the execution process to an instance of a contract implementing TimelockControllerComponent. This adds a delay, enforced by the TimelockController to all successful proposals (in addition to the voting duration).
NOTE: The Governor needs the PROPOSER, EXECUTOR, and CANCELLER roles to work properly.
Using this model means the proposal will be operated by the TimelockController and not by the
Governor. Thus, the assets and permissions must be attached to the TimelockController. Any asset
sent to the Governor will be inaccessible from a proposal, unless executed via
Governor::relay.
WARNING: Setting up the TimelockController to have additional proposers or cancellers besides the governor is very risky, as it grants them the ability to: 1) execute operations as the timelock, and thus possibly performing operations or accessing funds that are expected to only be accessible through a vote, and 2) block governance proposals that have been approved by the voters, effectively executing a Denial of Service attack.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent
Modules
Free functions
Structs
| Storage | — |
| TimelockUpdated | Emitted when the timelock controller used for proposal execution is modified. |
| ComponentState | — |
Enums
Traits
Modules
Modules
Errors
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Errors
Constants
Constants
Constants
INVALID_TIMELOCK_CONTROLLER
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Errors::INVALID_TIMELOCK_CONTROLLER
pub const INVALID_TIMELOCK_CONTROLLER: felt252 =
30207964442802130652131156886795978221456167704787259247460902258;
__external_TimelockedImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::__external_TimelockedImpl
__l1_handler_TimelockedImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::__l1_handler_TimelockedImpl
__constructor_TimelockedImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::__constructor_TimelockedImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| TimelockUpdated | Emitted when the timelock controller used for proposal execution is modified. |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Storage
[storage]
pub struct Storage {
pub Governor_timelock_controller: ContractAddress,
pub Governor_timelock_ids: Map<felt252, felt252>,
}
Members
Governor_timelock_controller
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Storage::Governor_timelock_controller
pub Governor_timelock_controller: ContractAddress
Governor_timelock_ids
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Storage::Governor_timelock_ids
pub Governor_timelock_ids: Map<felt252, felt252>
TimelockUpdated
Emitted when the timelock controller used for proposal execution is modified.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::TimelockUpdated
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct TimelockUpdated {
pub old_timelock: ContractAddress,
pub new_timelock: ContractAddress,
}
Members
old_timelock
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::TimelockUpdated::old_timelock
pub old_timelock: ContractAddress
new_timelock
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::TimelockUpdated::new_timelock
pub new_timelock: ContractAddress
ComponentState
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Event
pub enum Event {
TimelockUpdated: TimelockUpdated,
}
Variants
TimelockUpdated
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Event::TimelockUpdated
TimelockUpdated: TimelockUpdated
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::InternalTrait
pub trait InternalTrait<TContractState, +HasComponent<TContractState>, impl GovernorSettingsTrait<TContractState>: GovernorSettingsTrait<TContractState>, impl GovernorCountingTrait<TContractState>: GovernorCountingTrait<TContractState>, impl GovernorVotesTrait<TContractState>: GovernorVotesTrait<TContractState>, impl HasComponent<TContractState>: HasComponent<TContractState>, impl Governor: HasComponent<TContractState>, +Drop<TContractState>>
Trait functions
initializer
Initializes the component by setting the timelock contract address.
Requirements:
timelock_controllermust not be zero.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::InternalTrait::initializer
fn initializer(ref self: ComponentState<TContractState>, timelock_controller: ContractAddress)
assert_only_governance
Wrapper for Governor::assert_only_governance.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::InternalTrait::assert_only_governance
fn assert_only_governance(self: @ComponentState<TContractState>)
timelock_salt
Computes the TimelockController operation salt as the XOR of
the governor address and description_hash. In the case of overflow, it is
reduced modulo P.
It is computed with the governor address itself to avoid collisions across governor instances using the same timelock.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::InternalTrait::timelock_salt
fn timelock_salt(self: @ComponentState<TContractState>, description_hash: felt252) -> felt252
get_timelock_dispatcher
Returns the timelock contract address wrapped in a ITimelockDispatcher.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::InternalTrait::get_timelock_dispatcher
fn get_timelock_dispatcher(self: @ComponentState<TContractState>) -> ITimelockDispatcher
_update_timelock
Updates the timelock contract address.
Emits a TimelockUpdated event.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::InternalTrait::_update_timelock
fn _update_timelock(ref self: ComponentState<TContractState>, new_timelock: ContractAddress)
UnsafeNewContractStateTraitForTimelockedImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::UnsafeNewContractStateTraitForTimelockedImpl
pub trait UnsafeNewContractStateTraitForTimelockedImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_timelock_execution::GovernorTimelockExecutionComponent::UnsafeNewContractStateTraitForTimelockedImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
governor_votes
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes
Modules
Modules
Modules
GovernorVotesComponent
GovernorVotes Component
Extension of GovernorComponent for voting weight extraction from a token with the Votes extension.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent
Modules
Free functions
Structs
Enums
Traits
Modules
Modules
Errors
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::Errors
Constants
Constants
Constants
INVALID_TOKEN
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::Errors::INVALID_TOKEN
pub const INVALID_TOKEN: felt252 = 1637577033762547024931860539240840025294464366;
__external_VotesTokenImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::__external_VotesTokenImpl
__l1_handler_VotesTokenImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::__l1_handler_VotesTokenImpl
__constructor_VotesTokenImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::__constructor_VotesTokenImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
Storage
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::Storage
[storage]
pub struct Storage {
pub Governor_token: ContractAddress,
}
Members
Governor_token
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::Storage::Governor_token
pub Governor_token: ContractAddress
ComponentState
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::Event
pub enum Event {}
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::InternalTrait
pub trait InternalTrait<TContractState, +HasComponent<TContractState>, impl HasComponent<TContractState>: HasComponent<TContractState>, impl GovernorVotesTrait<TContractState>: GovernorVotesTrait<TContractState>, +Drop<TContractState>>
Trait functions
initializer
Initializes the component by setting the votes token.
Requirements:
votes_tokenmust not be zero.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::InternalTrait::initializer
fn initializer(ref self: ComponentState<TContractState>, votes_token: ContractAddress)
UnsafeNewContractStateTraitForVotesTokenImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::UnsafeNewContractStateTraitForVotesTokenImpl
pub trait UnsafeNewContractStateTraitForVotesTokenImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes::GovernorVotesComponent::UnsafeNewContractStateTraitForVotesTokenImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
governor_votes_quorum_fraction
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction
Modules
Modules
Modules
GovernorVotesQuorumFractionComponent
GovernorVotesQuorumFraction Component
Extension of GovernorComponent for voting weight extraction from a token with the Votes extension and a quorum expressed as a fraction of the total supply.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent
Modules
| Errors | — |
| __external_QuorumFractionImpl | — |
| __l1_handler_QuorumFractionImpl | — |
| __constructor_QuorumFractionImpl | — |
Free functions
Structs
| Storage | — |
| QuorumNumeratorUpdated | Emitted when the quorum numerator is updated. |
| ComponentState | — |
Enums
Traits
Modules
Modules
| Errors | — |
| __external_QuorumFractionImpl | — |
| __l1_handler_QuorumFractionImpl | — |
| __constructor_QuorumFractionImpl | — |
Errors
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Errors
Constants
Constants
Constants
INVALID_QUORUM_FRACTION
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Errors::INVALID_QUORUM_FRACTION
pub const INVALID_QUORUM_FRACTION: felt252 =
7033339804690827301718597462522552828128581913957461870;
INVALID_TOKEN
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Errors::INVALID_TOKEN
pub const INVALID_TOKEN: felt252 = 1637577033762547024931860539240840025294464366;
__external_QuorumFractionImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::__external_QuorumFractionImpl
__l1_handler_QuorumFractionImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::__l1_handler_QuorumFractionImpl
__constructor_QuorumFractionImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::__constructor_QuorumFractionImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| QuorumNumeratorUpdated | Emitted when the quorum numerator is updated. |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Storage
[storage]
pub struct Storage {
pub Governor_token: ContractAddress,
pub Governor_quorum_numerator_history: Trace,
}
Members
Governor_token
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Storage::Governor_token
pub Governor_token: ContractAddress
Governor_quorum_numerator_history
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Storage::Governor_quorum_numerator_history
pub Governor_quorum_numerator_history: Trace
QuorumNumeratorUpdated
Emitted when the quorum numerator is updated.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::QuorumNumeratorUpdated
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct QuorumNumeratorUpdated {
pub old_quorum_numerator: u256,
pub new_quorum_numerator: u256,
}
Members
old_quorum_numerator
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::QuorumNumeratorUpdated::old_quorum_numerator
pub old_quorum_numerator: u256
new_quorum_numerator
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::QuorumNumeratorUpdated::new_quorum_numerator
pub new_quorum_numerator: u256
ComponentState
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Event
pub enum Event {
QuorumNumeratorUpdated: QuorumNumeratorUpdated,
}
Variants
QuorumNumeratorUpdated
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Event::QuorumNumeratorUpdated
QuorumNumeratorUpdated: QuorumNumeratorUpdated
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::InternalTrait
pub trait InternalTrait<TContractState, +HasComponent<TContractState>, impl GovernorVotesTrait<TContractState>: GovernorVotesTrait<TContractState>, impl Governor: HasComponent<TContractState>, +Drop<TContractState>>
Trait functions
initializer
Initializes the component by setting the votes token and the initial quorum numerator value.
Requirements:
votes_tokenmust not be zero.quorum_numeratormust be less thanquorum_denominator.
Emits a QuorumNumeratorUpdated event.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::InternalTrait::initializer
fn initializer(
ref self: ComponentState<TContractState>, votes_token: ContractAddress, quorum_numerator: u256,
)
update_quorum_numerator
Updates the quorum numerator.
NOTE: This function does not emit an event if the new quorum numerator is the same as the old one.
Requirements:
new_quorum_numeratormust be less thanquorum_denominator.
May emit a QuorumNumeratorUpdated event.
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::InternalTrait::update_quorum_numerator
fn update_quorum_numerator(ref self: ComponentState<TContractState>, new_quorum_numerator: u256)
UnsafeNewContractStateTraitForQuorumFractionImpl
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::UnsafeNewContractStateTraitForQuorumFractionImpl
pub trait UnsafeNewContractStateTraitForQuorumFractionImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::governor::extensions::governor_votes_quorum_fraction::GovernorVotesQuorumFractionComponent::UnsafeNewContractStateTraitForQuorumFractionImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
governor
Fully qualified path: openzeppelin_governance::governor::governor
Modules
Impls
| DefaultConfig | Implementation of the default Governor ImmutableConfig. See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation The DEFAULT_PARAMS… |
Modules
Modules
GovernorComponent
Governor Component
Core of the governance system.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent
Modules
Free functions
Structs
| Storage | — |
| ProposalCreated | Emitted when call is scheduled as part of operation id . |
| ProposalQueued | Emitted when a proposal is queued. |
| ProposalExecuted | Emitted when a proposal is executed. |
| ProposalCanceled | Emitted when a proposal is canceled. |
| VoteCast | Emitted when a vote is cast without params. |
| VoteCastWithParams | Emitted when a vote is cast with params. NOTE: support values should be seen as buckets. Their interpretation depends on the voting module used. params… |
| ComponentState | — |
Enums
Traits
| ImmutableConfig | Constants expected to be defined at the contract level used to configure the component behavior…. |
| GovernorSettingsTrait | — |
| GovernorQuorumTrait | — |
| GovernorCountingTrait | — |
| GovernorVotesTrait | — |
| GovernorExecutionTrait | — |
| HasComponent | — |
| InternalTrait | — |
| InternalExtendedTrait | — |
| UnsafeNewContractStateTraitForGovernorImpl | — |
Modules
Modules
Errors
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors
Constants
| EXECUTOR_ONLY | — |
| PROPOSER_ONLY | — |
| NONEXISTENT_PROPOSAL | — |
| EXISTENT_PROPOSAL | — |
| RESTRICTED_PROPOSER | — |
| INSUFFICIENT_PROPOSER_VOTES | — |
| UNEXPECTED_PROPOSAL_STATE | — |
| QUEUE_NOT_IMPLEMENTED | — |
| INVALID_SIGNATURE | — |
Constants
Constants
| EXECUTOR_ONLY | — |
| PROPOSER_ONLY | — |
| NONEXISTENT_PROPOSAL | — |
| EXISTENT_PROPOSAL | — |
| RESTRICTED_PROPOSER | — |
| INSUFFICIENT_PROPOSER_VOTES | — |
| UNEXPECTED_PROPOSAL_STATE | — |
| QUEUE_NOT_IMPLEMENTED | — |
| INVALID_SIGNATURE | — |
EXECUTOR_ONLY
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::EXECUTOR_ONLY
pub const EXECUTOR_ONLY: felt252 = 5504003985851522690581493869689;
PROPOSER_ONLY
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::PROPOSER_ONLY
pub const PROPOSER_ONLY: felt252 = 6373669013987707420509201132665;
NONEXISTENT_PROPOSAL
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::NONEXISTENT_PROPOSAL
pub const NONEXISTENT_PROPOSAL: felt252 = 447786279721322827064110475097525489609471123820;
EXISTENT_PROPOSAL
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::EXISTENT_PROPOSAL
pub const EXISTENT_PROPOSAL: felt252 = 23639538209908052828444086322521472983404;
RESTRICTED_PROPOSER
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::RESTRICTED_PROPOSER
pub const RESTRICTED_PROPOSER: felt252 = 1837498734415321675983055626448671942234039666;
INSUFFICIENT_PROPOSER_VOTES
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::INSUFFICIENT_PROPOSER_VOTES
pub const INSUFFICIENT_PROPOSER_VOTES: felt252 = 6396781404174968618341064636014939040146803;
UNEXPECTED_PROPOSAL_STATE
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::UNEXPECTED_PROPOSAL_STATE
pub const UNEXPECTED_PROPOSAL_STATE: felt252 =
536260558599490853407724593562672133152449371803561509352549;
QUEUE_NOT_IMPLEMENTED
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::QUEUE_NOT_IMPLEMENTED
pub const QUEUE_NOT_IMPLEMENTED: felt252 = 119051847145803658975802206826363178663641491989860;
INVALID_SIGNATURE
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Errors::INVALID_SIGNATURE
pub const INVALID_SIGNATURE: felt252 = 24987442531777145766116412176803132961381;
__external_GovernorImpl
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::__external_GovernorImpl
__l1_handler_GovernorImpl
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::__l1_handler_GovernorImpl
__constructor_GovernorImpl
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::__constructor_GovernorImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| ProposalCreated | Emitted when call is scheduled as part of operation id . |
| ProposalQueued | Emitted when a proposal is queued. |
| ProposalExecuted | Emitted when a proposal is executed. |
| ProposalCanceled | Emitted when a proposal is canceled. |
| VoteCast | Emitted when a vote is cast without params. |
| VoteCastWithParams | Emitted when a vote is cast with params. NOTE: support values should be seen as buckets. Their interpretation depends on the voting module used. params… |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Storage
[storage]
pub struct Storage {
pub Governor_proposals: Map<felt252, ProposalCore>,
pub Governor_nonces: Map<ContractAddress, felt252>,
}
Members
Governor_proposals
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Storage::Governor_proposals
pub Governor_proposals: Map<felt252, ProposalCore>
Governor_nonces
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Storage::Governor_nonces
pub Governor_nonces: Map<ContractAddress, felt252>
ProposalCreated
Emitted when call is scheduled as part of operation id.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct ProposalCreated {
pub proposal_id: felt252,
pub proposer: ContractAddress,
pub calls: Span<Call>,
pub signatures: Span<Span<felt252>>,
pub vote_start: u64,
pub vote_end: u64,
pub description: ByteArray,
}
Members
proposal_id
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated::proposal_id
pub proposal_id: felt252
proposer
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated::proposer
pub proposer: ContractAddress
calls
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated::calls
pub calls: Span<Call>
signatures
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated::signatures
pub signatures: Span<Span<felt252>>
vote_start
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated::vote_start
pub vote_start: u64
vote_end
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated::vote_end
pub vote_end: u64
description
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCreated::description
pub description: ByteArray
ProposalQueued
Emitted when a proposal is queued.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalQueued
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct ProposalQueued {
pub proposal_id: felt252,
pub eta_seconds: u64,
}
Members
proposal_id
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalQueued::proposal_id
pub proposal_id: felt252
eta_seconds
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalQueued::eta_seconds
pub eta_seconds: u64
ProposalExecuted
Emitted when a proposal is executed.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalExecuted
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct ProposalExecuted {
pub proposal_id: felt252,
}
Members
proposal_id
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalExecuted::proposal_id
pub proposal_id: felt252
ProposalCanceled
Emitted when a proposal is canceled.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCanceled
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct ProposalCanceled {
pub proposal_id: felt252,
}
Members
proposal_id
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ProposalCanceled::proposal_id
pub proposal_id: felt252
VoteCast
Emitted when a vote is cast without params.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCast
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct VoteCast {
pub voter: ContractAddress,
pub proposal_id: felt252,
pub support: u8,
pub weight: u256,
pub reason: ByteArray,
}
Members
voter
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCast::voter
pub voter: ContractAddress
proposal_id
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCast::proposal_id
pub proposal_id: felt252
support
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCast::support
pub support: u8
weight
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCast::weight
pub weight: u256
reason
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCast::reason
pub reason: ByteArray
VoteCastWithParams
Emitted when a vote is cast with params.
NOTE: support values should be seen as buckets. Their interpretation depends on the voting
module used. params are additional encoded parameters. Their interpretation also
depends on the voting module used.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCastWithParams
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct VoteCastWithParams {
pub voter: ContractAddress,
pub proposal_id: felt252,
pub support: u8,
pub weight: u256,
pub reason: ByteArray,
pub params: Span<felt252>,
}
Members
voter
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCastWithParams::voter
pub voter: ContractAddress
proposal_id
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCastWithParams::proposal_id
pub proposal_id: felt252
support
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCastWithParams::support
pub support: u8
weight
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCastWithParams::weight
pub weight: u256
reason
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCastWithParams::reason
pub reason: ByteArray
params
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::VoteCastWithParams::params
pub params: Span<felt252>
ComponentState
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Event
pub enum Event {
ProposalCreated: ProposalCreated,
ProposalQueued: ProposalQueued,
ProposalExecuted: ProposalExecuted,
ProposalCanceled: ProposalCanceled,
VoteCast: VoteCast,
VoteCastWithParams: VoteCastWithParams,
}
Variants
ProposalCreated
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Event::ProposalCreated
ProposalCreated: ProposalCreated
ProposalQueued
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Event::ProposalQueued
ProposalQueued: ProposalQueued
ProposalExecuted
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Event::ProposalExecuted
ProposalExecuted: ProposalExecuted
ProposalCanceled
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Event::ProposalCanceled
ProposalCanceled: ProposalCanceled
VoteCast
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Event::VoteCast
VoteCast: VoteCast
VoteCastWithParams
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::Event::VoteCastWithParams
VoteCastWithParams: VoteCastWithParams
Traits
Traits
| ImmutableConfig | Constants expected to be defined at the contract level used to configure the component behavior…. |
| GovernorSettingsTrait | — |
| GovernorQuorumTrait | — |
| GovernorCountingTrait | — |
| GovernorVotesTrait | — |
| GovernorExecutionTrait | — |
| HasComponent | — |
| InternalTrait | — |
| InternalExtendedTrait | — |
| UnsafeNewContractStateTraitForGovernorImpl | — |
ImmutableConfig
Constants expected to be defined at the contract level used to configure the component behavior.
DEFAULT_PARAMS: Default additional encoded parameters used by cast_vote methods that don’t include them.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ImmutableConfig
pub trait ImmutableConfig
Trait functions
DEFAULT_PARAMS
Defined as a function since constant Span is not supported.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::ImmutableConfig::DEFAULT_PARAMS
fn DEFAULT_PARAMS() -> Span<felt252>
GovernorSettingsTrait
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorSettingsTrait
pub trait GovernorSettingsTrait<TContractState>
Trait functions
voting_delay
See interface::IGovernor::voting_delay.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorSettingsTrait::voting_delay
fn voting_delay(self: @ComponentState<TContractState>) -> u64
voting_period
See interface::IGovernor::voting_period.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorSettingsTrait::voting_period
fn voting_period(self: @ComponentState<TContractState>) -> u64
proposal_threshold
See interface::IGovernor::proposal_threshold.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorSettingsTrait::proposal_threshold
fn proposal_threshold(self: @ComponentState<TContractState>) -> u256
GovernorQuorumTrait
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorQuorumTrait
pub trait GovernorQuorumTrait<TContractState>
Trait functions
quorum
See interface::IGovernor::quorum.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorQuorumTrait::quorum
fn quorum(self: @ComponentState<TContractState>, timepoint: u64) -> u256
GovernorCountingTrait
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorCountingTrait
pub trait GovernorCountingTrait<TContractState>
Trait functions
counting_mode
See interface::IGovernor::COUNTING_MODE.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorCountingTrait::counting_mode
fn counting_mode(self: @ComponentState<TContractState>) -> ByteArray
count_vote
Register a vote for proposal_id by account with a given support,
voting weight and voting params.
NOTE: Support is generic and can represent various things depending on the voting system used.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorCountingTrait::count_vote
fn count_vote(
ref self: ComponentState<TContractState>,
proposal_id: felt252,
account: ContractAddress,
support: u8,
total_weight: u256,
params: Span<felt252>,
) -> u256
has_voted
See interface::IGovernor::has_voted.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorCountingTrait::has_voted
fn has_voted(
self: @ComponentState<TContractState>, proposal_id: felt252, account: ContractAddress,
) -> bool
quorum_reached
Returns whether amount of votes already cast passes the threshold limit.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorCountingTrait::quorum_reached
fn quorum_reached(self: @ComponentState<TContractState>, proposal_id: felt252) -> bool
vote_succeeded
Returns whether the proposal is successful or not.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorCountingTrait::vote_succeeded
fn vote_succeeded(self: @ComponentState<TContractState>, proposal_id: felt252) -> bool
GovernorVotesTrait
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorVotesTrait
pub trait GovernorVotesTrait<TContractState>
Trait functions
clock
See ERC6372Clock::clock.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorVotesTrait::clock
fn clock(self: @ComponentState<TContractState>) -> u64
CLOCK_MODE
See ERC6372Clock::CLOCK_MODE.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorVotesTrait::CLOCK_MODE
fn CLOCK_MODE(self: @ComponentState<TContractState>) -> ByteArray
get_votes
See interface::IGovernor::get_votes.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorVotesTrait::get_votes
fn get_votes(
self: @ComponentState<TContractState>,
account: ContractAddress,
timepoint: u64,
params: Span<felt252>,
) -> u256
GovernorExecutionTrait
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorExecutionTrait
pub trait GovernorExecutionTrait<TContractState>
Trait functions
state
See interface::IGovernor::state.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorExecutionTrait::state
fn state(self: @ComponentState<TContractState>, proposal_id: felt252) -> ProposalState
executor
Address through which the governor executes action. Should be used to specify whether the module execute actions through another contract such as a timelock.
NOTE: MUST be the governor itself, or an instance of TimelockController with the governor as the only proposer, canceller, and executor.
WARNING: When the executor is not the governor itself (i.e. a timelock), it can call
functions that are restricted with the assert_only_governance guard, and also
potentially execute transactions on behalf of the governor. Because of this, this module
is designed to work with the TimelockController as the unique potential external
executor.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorExecutionTrait::executor
fn executor(self: @ComponentState<TContractState>) -> ContractAddress
execute_operations
Execution mechanism. Can be used to modify the way execution is performed (for example adding a vault/timelock).
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorExecutionTrait::execute_operations
fn execute_operations(
ref self: ComponentState<TContractState>,
proposal_id: felt252,
calls: Span<Call>,
description_hash: felt252,
)
queue_operations
Queuing mechanism. Can be used to modify the way queuing is performed (for example adding a vault/timelock).
Requirements:
- Must return a timestamp that describes the expected ETA for execution. If the returned
value is 0, the core will consider queueing did not succeed, and the public
queuefunction will revert.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorExecutionTrait::queue_operations
fn queue_operations(
ref self: ComponentState<TContractState>,
proposal_id: felt252,
calls: Span<Call>,
description_hash: felt252,
) -> u64
proposal_needs_queuing
See interface::IGovernor::proposal_needs_queuing.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorExecutionTrait::proposal_needs_queuing
fn proposal_needs_queuing(self: @ComponentState<TContractState>, proposal_id: felt252) -> bool
cancel_operations
Cancel mechanism. Can be used to modify the way canceling is performed (for example adding a vault/timelock).
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::GovernorExecutionTrait::cancel_operations
fn cancel_operations(
ref self: ComponentState<TContractState>, proposal_id: felt252, description_hash: felt252,
)
HasComponent
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::HasComponent::emit
fn emit<
S, impl IntoImp: Into<S, openzeppelin_governance::governor::governor::GovernorComponent::Event>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait
pub trait InternalTrait<
TContractState,
+HasComponent<TContractState>,
impl SRC5: HasComponent<TContractState>,
+Drop<TContractState>,
>
Trait functions
initializer
Initializes the contract by registering the supported interface id.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::initializer
fn initializer(ref self: ComponentState<TContractState>)
get_proposal
Returns the proposal object given its id.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::get_proposal
fn get_proposal(self: @ComponentState<TContractState>, proposal_id: felt252) -> ProposalCore
is_valid_description_for_proposer
Checks if the proposer is authorized to submit a proposal with the given description.
If the proposal description ends with #proposer=0x???, where 0x??? is an address
written as a hex string (case insensitive), then the submission of this proposal will
only be authorized to said address.
This is used for frontrunning protection. By adding this pattern at the end of their proposal, one can ensure that no other address can submit the same proposal. An attacker would have to either remove or change that part, which would result in a different proposal id.
NOTE: In Starknet, the Sequencer ensures the order of transactions, but frontrunning can still be achieved by nodes, and potentially other actors in the future with sequencer decentralization.
If the description does not match this pattern, it is unrestricted and anyone can submit it. This includes:
- If the
0x???part is not a valid hex string. - If the
0x???part is a valid hex string, but does not contain exactly 64 hex digits. - If it ends with the expected suffix followed by newlines or other whitespace.
- If it ends with some other similar suffix, e.g.
#other=abc. - If it does not end with any such suffix.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::is_valid_description_for_proposer
fn is_valid_description_for_proposer(
self: @ComponentState<TContractState>, proposer: ContractAddress, description: @ByteArray,
) -> bool
_hash_proposal
Returns a hash of the proposal using the Pedersen hashing algorithm.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::_hash_proposal
fn _hash_proposal(
self: @ComponentState<TContractState>, calls: Span<Call>, description_hash: felt252,
) -> felt252
_proposal_snapshot
Timepoint used to retrieve user’s votes and quorum. If using block number, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the beginning of the following block.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::_proposal_snapshot
fn _proposal_snapshot(self: @ComponentState<TContractState>, proposal_id: felt252) -> u64
_proposal_deadline
Timepoint at which votes close. If using block number, votes close at the end of this block, so it is possible to cast a vote during this block.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::_proposal_deadline
fn _proposal_deadline(self: @ComponentState<TContractState>, proposal_id: felt252) -> u64
_proposal_proposer
The account that created a proposal.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::_proposal_proposer
fn _proposal_proposer(
self: @ComponentState<TContractState>, proposal_id: felt252,
) -> ContractAddress
_proposal_eta
The time when a queued proposal becomes executable (“ETA”). Unlike proposal_snapshot
and proposal_deadline, this doesn’t use the governor clock, and instead relies on the
executor’s clock which may be different. In most cases this will be a timestamp.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalTrait::_proposal_eta
fn _proposal_eta(self: @ComponentState<TContractState>, proposal_id: felt252) -> u64
InternalExtendedTrait
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait
pub trait InternalExtendedTrait<TContractState, +HasComponent<TContractState>, impl HasComponent<TContractState>: HasComponent<TContractState>, +GovernorCountingTrait<TContractState>, +GovernorExecutionTrait<TContractState>, impl GovernorSettings: GovernorSettingsTrait<TContractState>, impl GovernorVotes: GovernorVotesTrait<TContractState>, +Drop<TContractState>>
Trait functions
assert_only_governance
Asserts that the caller is the governance executor.
WARNING: When the executor is not the governor itself (i.e. a timelock), it can call functions that are restricted with this modifier, and also potentially execute transactions on behalf of the governor. Because of this, this module is designed to work with the TimelockController as the unique potential external executor. The timelock MUST have the governor as the only proposer, canceller, and executor.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::assert_only_governance
fn assert_only_governance(self: @ComponentState<TContractState>)
validate_state
Validates that the proposal is in one of the expected states.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::validate_state
fn validate_state(
self: @ComponentState<TContractState>,
proposal_id: felt252,
allowed_states: Span<ProposalState>,
)
use_nonce
Consumes a nonce, returns the current value, and increments nonce.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::use_nonce
fn use_nonce(ref self: ComponentState<TContractState>, voter: ContractAddress) -> felt252
_get_votes
Internal wrapper for GovernorVotesTrait::get_votes.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::_get_votes
fn _get_votes(
self: @ComponentState<TContractState>,
account: ContractAddress,
timepoint: u64,
params: Span<felt252>,
) -> u256
_proposal_threshold
Internal wrapper for GovernorProposeTrait::proposal_threshold.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::_proposal_threshold
fn _proposal_threshold(self: @ComponentState<TContractState>) -> u256
_state
Returns the state of a proposal, given its id.
Requirements:
- The proposal must exist.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::_state
fn _state(self: @ComponentState<TContractState>, proposal_id: felt252) -> ProposalState
_propose
Internal propose mechanism. Returns the proposal id.
Requirements:
- The proposal must not already exist.
Emits a ProposalCreated event.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::_propose
fn _propose(
ref self: ComponentState<TContractState>,
calls: Span<Call>,
description: @ByteArray,
proposer: ContractAddress,
) -> felt252
_cancel
Internal cancel mechanism with minimal restrictions. A proposal can be cancelled in any state other than Canceled or Executed.
NOTE: Once cancelled, a proposal can’t be re-submitted.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::_cancel
fn _cancel(
ref self: ComponentState<TContractState>, proposal_id: felt252, description_hash: felt252,
)
_count_vote
Internal wrapper for GovernorCountingTrait::count_vote.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::_count_vote
fn _count_vote(
ref self: ComponentState<TContractState>,
proposal_id: felt252,
account: ContractAddress,
support: u8,
total_weight: u256,
params: Span<felt252>,
) -> u256
_cast_vote
Internal vote-casting mechanism.
Checks that the vote is pending and that it has not been cast yet.
This function retrieves the voting weight using get_votes and then calls
the _count_vote internal function.
Emits either:
VoteCastevent if no params are provided.VoteCastWithParamsevent otherwise.
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::InternalExtendedTrait::_cast_vote
fn _cast_vote(
ref self: ComponentState<TContractState>,
proposal_id: felt252,
voter: ContractAddress,
support: u8,
reason: ByteArray,
params: Span<felt252>,
) -> u256
UnsafeNewContractStateTraitForGovernorImpl
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::UnsafeNewContractStateTraitForGovernorImpl
pub trait UnsafeNewContractStateTraitForGovernorImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::governor::governor::GovernorComponent::UnsafeNewContractStateTraitForGovernorImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
Impls
Impls
| DefaultConfig | Implementation of the default Governor ImmutableConfig. See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation The DEFAULT_PARAMS… |
DefaultConfig
Implementation of the default Governor ImmutableConfig.
See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation
The DEFAULT_PARAMS is set to an empty span of felts.
Fully qualified path: openzeppelin_governance::governor::governor::DefaultConfig
pub impl DefaultConfig of ImmutableConfig;
Impl functions
DEFAULT_PARAMS
Fully qualified path: openzeppelin_governance::governor::governor::DefaultConfig::DEFAULT_PARAMS
fn DEFAULT_PARAMS() -> Span<felt252>
proposal_core
Fully qualified path: openzeppelin_governance::governor::proposal_core
Structs
| ProposalCore | Proposal state. |
Structs
Structs
| ProposalCore | Proposal state. |
ProposalCore
Proposal state.
Fully qualified path: openzeppelin_governance::governor::proposal_core::ProposalCore
[derive(Copy, Drop, Serde, PartialEq, Debug)]
pub struct ProposalCore {
pub proposer: ContractAddress,
pub vote_start: u64,
pub vote_duration: u64,
pub executed: bool,
pub canceled: bool,
pub eta_seconds: u64,
}
Members
proposer
Fully qualified path: openzeppelin_governance::governor::proposal_core::ProposalCore::proposer
pub proposer: ContractAddress
vote_start
Fully qualified path: openzeppelin_governance::governor::proposal_core::ProposalCore::vote_start
pub vote_start: u64
vote_duration
Fully qualified path: openzeppelin_governance::governor::proposal_core::ProposalCore::vote_duration
pub vote_duration: u64
executed
Fully qualified path: openzeppelin_governance::governor::proposal_core::ProposalCore::executed
pub executed: bool
canceled
Fully qualified path: openzeppelin_governance::governor::proposal_core::ProposalCore::canceled
pub canceled: bool
eta_seconds
Fully qualified path: openzeppelin_governance::governor::proposal_core::ProposalCore::eta_seconds
pub eta_seconds: u64
vote
Fully qualified path: openzeppelin_governance::governor::vote
Constants
Structs
Constants
Constants
VOTE_TYPE_HASH
Fully qualified path: openzeppelin_governance::governor::vote::VOTE_TYPE_HASH
pub const VOTE_TYPE_HASH: felt252 =
725086074905528818286057064447115658319371078818069988727085961453449186177;
VOTE_WITH_REASON_AND_PARAMS_TYPE_HASH
Fully qualified path: openzeppelin_governance::governor::vote::VOTE_WITH_REASON_AND_PARAMS_TYPE_HASH
pub const VOTE_WITH_REASON_AND_PARAMS_TYPE_HASH: felt252 =
884836110813927721873221814866501037558610336142253565359524245175899322699;
Structs
Structs
Vote
Fully qualified path: openzeppelin_governance::governor::vote::Vote
[derive(Copy, Drop, Hash)]
pub struct Vote {
pub verifying_contract: ContractAddress,
pub nonce: felt252,
pub proposal_id: felt252,
pub support: u8,
pub voter: ContractAddress,
}
Members
verifying_contract
Fully qualified path: openzeppelin_governance::governor::vote::Vote::verifying_contract
pub verifying_contract: ContractAddress
nonce
Fully qualified path: openzeppelin_governance::governor::vote::Vote::nonce
pub nonce: felt252
proposal_id
Fully qualified path: openzeppelin_governance::governor::vote::Vote::proposal_id
pub proposal_id: felt252
support
Fully qualified path: openzeppelin_governance::governor::vote::Vote::support
pub support: u8
voter
Fully qualified path: openzeppelin_governance::governor::vote::Vote::voter
pub voter: ContractAddress
VoteWithReasonAndParams
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams
[derive(Copy, Drop)]
pub struct VoteWithReasonAndParams {
pub verifying_contract: ContractAddress,
pub nonce: felt252,
pub proposal_id: felt252,
pub support: u8,
pub voter: ContractAddress,
pub reason_hash: felt252,
pub params: Span<felt252>,
}
Members
verifying_contract
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams::verifying_contract
pub verifying_contract: ContractAddress
nonce
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams::nonce
pub nonce: felt252
proposal_id
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams::proposal_id
pub proposal_id: felt252
support
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams::support
pub support: u8
voter
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams::voter
pub voter: ContractAddress
reason_hash
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams::reason_hash
pub reason_hash: felt252
params
Fully qualified path: openzeppelin_governance::governor::vote::VoteWithReasonAndParams::params
pub params: Span<felt252>
multisig
Fully qualified path: openzeppelin_governance::multisig
Modules
Re-exports:
Modules
Modules
multisig
Fully qualified path: openzeppelin_governance::multisig::multisig
Modules
Modules
Modules
MultisigComponent
Multisig Component
Component that implements a multi-signature mechanism to enhance the security and governance of smart contract transactions. It requires multiple registered signers to collectively approve and execute transactions, ensuring that no single signer can perform critical actions unilaterally.
By default, this component is self-administered, meaning modifications to signers or quorum must be performed by the contract itself through the multisig approval process. Only registered signers can submit, confirm, revoke, or execute transactions. A common use case is to secure important operations by requiring multiple approvals, such as in fund management or protocol governance.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent
Modules
Free functions
Structs
| Storage | — |
| SignerAdded | Emitted when a new signer is added. |
| SignerRemoved | Emitted when a signer is removed. |
| QuorumUpdated | Emitted when the quorum value is updated. |
| TransactionSubmitted | Emitted when a new transaction is submitted by a signer . |
| TransactionConfirmed | Emitted when a transaction is confirmed by a signer . |
| ConfirmationRevoked | Emitted when a signer revokes his confirmation. |
| TransactionExecuted | Emitted when a transaction is executed. |
| CallSalt | Emitted when a new transaction is submitted with non-zero salt. |
| ComponentState | — |
Enums
Traits
Modules
Modules
Errors
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors
Constants
Constants
Constants
UNAUTHORIZED
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::UNAUTHORIZED
pub const UNAUTHORIZED: felt252 = 28980735133710228569237587213461474776215379414508900;
NOT_A_SIGNER
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::NOT_A_SIGNER
pub const NOT_A_SIGNER: felt252 = 28980735133710228569237585048363487446986659776587122;
ALREADY_A_SIGNER
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::ALREADY_A_SIGNER
pub const ALREADY_A_SIGNER: felt252 =
124471309613323618845560282141163823132043530618172507669030258;
ALREADY_CONFIRMED
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::ALREADY_CONFIRMED
pub const ALREADY_CONFIRMED: felt252 =
31864655261010846424463432228137938721803143880836789374926284132;
HAS_NOT_CONFIRMED
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::HAS_NOT_CONFIRMED
pub const HAS_NOT_CONFIRMED: felt252 =
31864655261010846424463434595496793058698599549259553196380874084;
TX_ALREADY_EXISTS
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::TX_ALREADY_EXISTS
pub const TX_ALREADY_EXISTS: felt252 =
31864655261010846424463438709027797572833375938559821179128083571;
TX_NOT_FOUND
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::TX_NOT_FOUND
pub const TX_NOT_FOUND: felt252 = 28980735133710228569237586915758639845424376204062308;
TX_NOT_CONFIRMED
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::TX_NOT_CONFIRMED
pub const TX_NOT_CONFIRMED: felt252 =
124471309613323618845560307457140865165540135695436916542236004;
TX_ALREADY_EXECUTED
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::TX_ALREADY_EXECUTED
pub const TX_ALREADY_EXECUTED: felt252 =
2088282047185606831273635919234845741733208125509456440790871335789924;
ZERO_ADDRESS_SIGNER
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::ZERO_ADDRESS_SIGNER
pub const ZERO_ADDRESS_SIGNER: felt252 =
2088282047185606831273636051412104868533519736479712600171427759285618;
ZERO_QUORUM
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::ZERO_QUORUM
pub const ZERO_QUORUM: felt252 =
8157351746818776684662640047258508745439585914141865884190243102768;
QUORUM_TOO_HIGH
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Errors::QUORUM_TOO_HIGH
pub const QUORUM_TOO_HIGH: felt252 =
124471309613323618845560303455482616354973463089364470377837171;
__external_MultisigImpl
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::__external_MultisigImpl
__l1_handler_MultisigImpl
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::__l1_handler_MultisigImpl
__constructor_MultisigImpl
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::__constructor_MultisigImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| SignerAdded | Emitted when a new signer is added. |
| SignerRemoved | Emitted when a signer is removed. |
| QuorumUpdated | Emitted when the quorum value is updated. |
| TransactionSubmitted | Emitted when a new transaction is submitted by a signer . |
| TransactionConfirmed | Emitted when a transaction is confirmed by a signer . |
| ConfirmationRevoked | Emitted when a signer revokes his confirmation. |
| TransactionExecuted | Emitted when a transaction is executed. |
| CallSalt | Emitted when a new transaction is submitted with non-zero salt. |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Storage
[storage]
pub struct Storage {
pub Multisig_signers_info: SignersInfo,
pub Multisig_is_signer: Map<ContractAddress, bool>,
pub Multisig_signers_by_index: Map<u32, ContractAddress>,
pub Multisig_signers_indices: Map<ContractAddress, u32>,
pub Multisig_tx_info: Map<felt252, TxInfo>,
pub Multisig_tx_confirmed_by: Map<(felt252, ContractAddress), bool>,
}
Members
Multisig_signers_info
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Storage::Multisig_signers_info
pub Multisig_signers_info: SignersInfo
Multisig_is_signer
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Storage::Multisig_is_signer
pub Multisig_is_signer: Map<ContractAddress, bool>
Multisig_signers_by_index
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Storage::Multisig_signers_by_index
pub Multisig_signers_by_index: Map<u32, ContractAddress>
Multisig_signers_indices
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Storage::Multisig_signers_indices
pub Multisig_signers_indices: Map<ContractAddress, u32>
Multisig_tx_info
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Storage::Multisig_tx_info
pub Multisig_tx_info: Map<felt252, TxInfo>
Multisig_tx_confirmed_by
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Storage::Multisig_tx_confirmed_by
pub Multisig_tx_confirmed_by: Map<(felt252, ContractAddress), bool>
SignerAdded
Emitted when a new signer is added.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::SignerAdded
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct SignerAdded {
pub signer: ContractAddress,
}
Members
signer
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::SignerAdded::signer
pub signer: ContractAddress
SignerRemoved
Emitted when a signer is removed.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::SignerRemoved
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct SignerRemoved {
pub signer: ContractAddress,
}
Members
signer
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::SignerRemoved::signer
pub signer: ContractAddress
QuorumUpdated
Emitted when the quorum value is updated.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::QuorumUpdated
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct QuorumUpdated {
pub old_quorum: u32,
pub new_quorum: u32,
}
Members
old_quorum
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::QuorumUpdated::old_quorum
pub old_quorum: u32
new_quorum
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::QuorumUpdated::new_quorum
pub new_quorum: u32
TransactionSubmitted
Emitted when a new transaction is submitted by a signer.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionSubmitted
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct TransactionSubmitted {
pub id: felt252,
pub signer: ContractAddress,
}
Members
id
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionSubmitted::id
pub id: felt252
signer
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionSubmitted::signer
pub signer: ContractAddress
TransactionConfirmed
Emitted when a transaction is confirmed by a signer.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionConfirmed
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct TransactionConfirmed {
pub id: felt252,
pub signer: ContractAddress,
}
Members
id
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionConfirmed::id
pub id: felt252
signer
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionConfirmed::signer
pub signer: ContractAddress
ConfirmationRevoked
Emitted when a signer revokes his confirmation.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::ConfirmationRevoked
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct ConfirmationRevoked {
pub id: felt252,
pub signer: ContractAddress,
}
Members
id
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::ConfirmationRevoked::id
pub id: felt252
signer
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::ConfirmationRevoked::signer
pub signer: ContractAddress
TransactionExecuted
Emitted when a transaction is executed.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionExecuted
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct TransactionExecuted {
pub id: felt252,
}
Members
id
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::TransactionExecuted::id
pub id: felt252
CallSalt
Emitted when a new transaction is submitted with non-zero salt.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::CallSalt
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct CallSalt {
pub id: felt252,
pub salt: felt252,
}
Members
id
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::CallSalt::id
pub id: felt252
salt
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::CallSalt::salt
pub salt: felt252
ComponentState
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event
pub enum Event {
SignerAdded: SignerAdded,
SignerRemoved: SignerRemoved,
QuorumUpdated: QuorumUpdated,
TransactionSubmitted: TransactionSubmitted,
TransactionConfirmed: TransactionConfirmed,
TransactionExecuted: TransactionExecuted,
ConfirmationRevoked: ConfirmationRevoked,
CallSalt: CallSalt,
}
Variants
SignerAdded
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::SignerAdded
SignerAdded: SignerAdded
SignerRemoved
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::SignerRemoved
SignerRemoved: SignerRemoved
QuorumUpdated
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::QuorumUpdated
QuorumUpdated: QuorumUpdated
TransactionSubmitted
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::TransactionSubmitted
TransactionSubmitted: TransactionSubmitted
TransactionConfirmed
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::TransactionConfirmed
TransactionConfirmed: TransactionConfirmed
TransactionExecuted
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::TransactionExecuted
TransactionExecuted: TransactionExecuted
ConfirmationRevoked
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::ConfirmationRevoked
ConfirmationRevoked: ConfirmationRevoked
CallSalt
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::Event::CallSalt
CallSalt: CallSalt
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::HasComponent::emit
fn emit<
S, impl IntoImp: Into<S, openzeppelin_governance::multisig::multisig::MultisigComponent::Event>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait
pub trait InternalTrait<TContractState, +HasComponent<TContractState>, +Drop<TContractState>>
Trait functions
initializer
Initializes the Multisig component with the initial quorum and signers.
This function must be called during contract initialization to set up the initial state.
Requirements:
quorummust be non-zero and less than or equal to the number ofsigners.
Emits a SignerAdded event for each signer added.
Emits a QuorumUpdated event.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::initializer
fn initializer(
ref self: ComponentState<TContractState>, quorum: u32, signers: Span<ContractAddress>,
)
resolve_tx_state
Resolves and returns the current state of the transaction with the given id.
The possible states are:
NotFound: the transaction does not exist.Pending: the transaction exists but hasn’t reached the required confirmations.Confirmed: the transaction has reached the required confirmations but hasn’t been executed.Executed: the transaction has been executed.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::resolve_tx_state
fn resolve_tx_state(self: @ComponentState<TContractState>, id: felt252) -> TransactionState
assert_one_of_signers
Asserts that the caller is one of the registered signers.
Requirements:
- The
callermust be a registered signer.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::assert_one_of_signers
fn assert_one_of_signers(self: @ComponentState<TContractState>, caller: ContractAddress)
assert_tx_exists
Asserts that a transaction with the given id exists.
Requirements:
- The transaction with the given
idmust have been submitted.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::assert_tx_exists
fn assert_tx_exists(self: @ComponentState<TContractState>, id: felt252)
assert_only_self
Asserts that the caller is the contract itself.
Requirements:
- The caller must be the contract’s own address.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::assert_only_self
fn assert_only_self(self: @ComponentState<TContractState>)
_add_signers
Adds new signers and updates the quorum.
Requirements:
- Each signer address must be non-zero.
new_quorummust be non-zero and less than or equal to the total number of signers after addition.
Emits a SignerAdded event for each new signer added.
Emits a QuorumUpdated event if the quorum changes.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::_add_signers
fn _add_signers(
ref self: ComponentState<TContractState>,
new_quorum: u32,
signers_to_add: Span<ContractAddress>,
)
_remove_signers
Removes existing signers and updates the quorum.
Requirements:
new_quorummust be non-zero and less than or equal to the total number of signers after removal.
Emits a SignerRemoved event for each signer removed.
Emits a QuorumUpdated event if the quorum changes.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::_remove_signers
fn _remove_signers(
ref self: ComponentState<TContractState>,
new_quorum: u32,
signers_to_remove: Span<ContractAddress>,
)
_replace_signer
Replaces an existing signer with a new signer.
Requirements:
signer_to_removemust be an existing signer.signer_to_addmust not be an existing signer.signer_to_addmust be a non-zero address.
Emits a SignerRemoved event for the removed signer.
Emits a SignerAdded event for the new signer.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::_replace_signer
fn _replace_signer(
ref self: ComponentState<TContractState>,
signer_to_remove: ContractAddress,
signer_to_add: ContractAddress,
)
_change_quorum
Updates the quorum value to new_quorum if it differs from the current quorum.
Requirements:
new_quorummust be non-zero.new_quorummust be less than or equal to the total number of signers.
Emits a QuorumUpdated event if the quorum changes.
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::InternalTrait::_change_quorum
fn _change_quorum(ref self: ComponentState<TContractState>, new_quorum: u32)
UnsafeNewContractStateTraitForMultisigImpl
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::UnsafeNewContractStateTraitForMultisigImpl
pub trait UnsafeNewContractStateTraitForMultisigImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::multisig::multisig::MultisigComponent::UnsafeNewContractStateTraitForMultisigImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
storage_utils
Fully qualified path: openzeppelin_governance::multisig::storage_utils
Structs
| TxInfo | Helper struct for MultisigComponent that optimizes how transaction-related information is stored, including the transaction’s execution status and the block it was submitted in. |
| SignersInfo | Helper struct for MultisigComponent that optimizes how the quorum value and the total number of signers are stored. |
Impls
| TxInfoStorePacking | Packs a TxInfo entity into a u128 value. The packing is done as follows:… |
| SignersInfoStorePackingV2 | Packs a SignersInfo entity into a u128 value. The packing is done as follows:… |
Structs
Structs
| TxInfo | Helper struct for MultisigComponent that optimizes how transaction-related information is stored, including the transaction’s execution status and the block it was submitted in. |
| SignersInfo | Helper struct for MultisigComponent that optimizes how the quorum value and the total number of signers are stored. |
TxInfo
Helper struct for MultisigComponent that optimizes how transaction-related information
is stored, including the transaction’s execution status and the block it was submitted in.
Fully qualified path: openzeppelin_governance::multisig::storage_utils::TxInfo
[derive(Drop)]
pub struct TxInfo {
pub is_executed: bool,
pub submitted_block: u64,
}
Members
is_executed
Fully qualified path: openzeppelin_governance::multisig::storage_utils::TxInfo::is_executed
pub is_executed: bool
submitted_block
Fully qualified path: openzeppelin_governance::multisig::storage_utils::TxInfo::submitted_block
pub submitted_block: u64
SignersInfo
Helper struct for MultisigComponent that optimizes how the quorum
value and the total number of signers are stored.
Fully qualified path: openzeppelin_governance::multisig::storage_utils::SignersInfo
[derive(Drop)]
pub struct SignersInfo {
pub quorum: u32,
pub signers_count: u32,
}
Members
quorum
Fully qualified path: openzeppelin_governance::multisig::storage_utils::SignersInfo::quorum
pub quorum: u32
signers_count
Fully qualified path: openzeppelin_governance::multisig::storage_utils::SignersInfo::signers_count
pub signers_count: u32
Impls
Impls
| TxInfoStorePacking | Packs a TxInfo entity into a u128 value. The packing is done as follows:… |
| SignersInfoStorePackingV2 | Packs a SignersInfo entity into a u128 value. The packing is done as follows:… |
TxInfoStorePacking
Packs a TxInfo entity into a u128 value.
The packing is done as follows:
- The boolean
is_executedis stored as a single bit at the highest bit position (index 127). - The
submitted_blockvalue occupies 64 bits in the range 63..126.
Fully qualified path: openzeppelin_governance::multisig::storage_utils::TxInfoStorePacking
pub impl TxInfoStorePacking of StorePacking<TxInfo, u128>;
Impl functions
pack
Fully qualified path: openzeppelin_governance::multisig::storage_utils::TxInfoStorePacking::pack
fn pack(value: TxInfo) -> u128
unpack
Fully qualified path: openzeppelin_governance::multisig::storage_utils::TxInfoStorePacking::unpack
fn unpack(value: u128) -> TxInfo
SignersInfoStorePackingV2
Packs a SignersInfo entity into a u128 value.
The packing is done as follows:
quorumvalue occupies 32 bits in bit range 64..95.signers_countvalue occupies the highest 32 bits in bit range 96..127.- The 63rd bit indicates the packing version: 0 for V1 (legacy) and 1 for V2 (current).
WARNING: A bug in the original StorePacking trait for SignersInfo multiplied the quorum
value by 0xffffffff instead of 0x100000000. This affected only the case where signers_count
was 0xffffffff, resulting in an off-by-one quorum value and a signers_count of 0 after
unpacking. The issue is resolved in V2 of StorePacking. For backward compatibility, V2 can
still correctly unpack values from both V1 and V2 by checking the 63rd bit (0 for V1, 1 for V2).
Fully qualified path: openzeppelin_governance::multisig::storage_utils::SignersInfoStorePackingV2
pub impl SignersInfoStorePackingV2 of StorePacking<SignersInfo, u128>;
Impl functions
pack
Fully qualified path: openzeppelin_governance::multisig::storage_utils::SignersInfoStorePackingV2::pack
fn pack(value: SignersInfo) -> u128
unpack
Fully qualified path: openzeppelin_governance::multisig::storage_utils::SignersInfoStorePackingV2::unpack
fn unpack(value: u128) -> SignersInfo
timelock
Fully qualified path: openzeppelin_governance::timelock
Modules
Re-exports:
Modules
Modules
timelock_controller
Fully qualified path: openzeppelin_governance::timelock::timelock_controller
Modules
Modules
Modules
TimelockControllerComponent
TimelockController Component
Component that acts as a timelocked controller. When set as the owner of an Ownable smart
contract, it enforces a timelock on all only_owner maintenance operations. This gives time for
users of the controlled contract to exit before a potentially dangerous maintenance operation is
applied.
By default, this component is self administered, meaning administration tasks have to go through the timelock process. The proposer role is in charge of proposing operations. A common use case is to position the timelock controller as the owner of a smart contract, with a multi-sig or a DAO as the sole proposer.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent
Modules
| Errors | — |
| __external_TimelockImpl | — |
| __l1_handler_TimelockImpl | — |
| __constructor_TimelockImpl | — |
| __external_TimelockMixinImpl | — |
| __l1_handler_TimelockMixinImpl | — |
| __constructor_TimelockMixinImpl | — |
Constants
Free functions
Structs
| Storage | — |
| CallScheduled | Emitted when call is scheduled as part of operation id . |
| CallExecuted | Emitted when call is performed as part of operation id . |
| CallSalt | Emitted when a new proposal is scheduled with non-zero salt. |
| CallCancelled | Emitted when operation id is cancelled. |
| MinDelayChanged | Emitted when the minimum delay for future operations is modified. |
| ComponentState | — |
Enums
Traits
| HasComponent | — |
| InternalTrait | — |
| UnsafeNewContractStateTraitForTimelockImpl | — |
| UnsafeNewContractStateTraitForTimelockMixinImpl | — |
Modules
Modules
| Errors | — |
| __external_TimelockImpl | — |
| __l1_handler_TimelockImpl | — |
| __constructor_TimelockImpl | — |
| __external_TimelockMixinImpl | — |
| __l1_handler_TimelockMixinImpl | — |
| __constructor_TimelockMixinImpl | — |
Errors
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors
Constants
| INVALID_OPERATION_LEN | — |
| INSUFFICIENT_DELAY | — |
| EXPECTED_UNSET_OPERATION | — |
| EXPECTED_PENDING_OPERATION | — |
| EXPECTED_READY_OPERATION | — |
| UNEXECUTED_PREDECESSOR | — |
| UNAUTHORIZED_CALLER | — |
Constants
Constants
| INVALID_OPERATION_LEN | — |
| INSUFFICIENT_DELAY | — |
| EXPECTED_UNSET_OPERATION | — |
| EXPECTED_PENDING_OPERATION | — |
| EXPECTED_READY_OPERATION | — |
| UNEXECUTED_PREDECESSOR | — |
| UNAUTHORIZED_CALLER | — |
INVALID_OPERATION_LEN
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors::INVALID_OPERATION_LEN
pub const INVALID_OPERATION_LEN: felt252 =
149142786123133088059548017970228936285844585618085628618567453910126847342;
INSUFFICIENT_DELAY
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors::INSUFFICIENT_DELAY
pub const INSUFFICIENT_DELAY: felt252 =
8889602787681406024667502520690189257282797298883326216109860610425;
EXPECTED_UNSET_OPERATION
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors::EXPECTED_UNSET_OPERATION
pub const EXPECTED_UNSET_OPERATION: felt252 =
34725010889380492283857430373592962417870439180718862108563894128;
EXPECTED_PENDING_OPERATION
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors::EXPECTED_PENDING_OPERATION
pub const EXPECTED_PENDING_OPERATION: felt252 =
2275738313646439942314880556963788385017557102123813133454626827300720;
EXPECTED_READY_OPERATION
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors::EXPECTED_READY_OPERATION
pub const EXPECTED_READY_OPERATION: felt252 =
34725010889380492283857430373592962417870439180500136256239333232;
UNEXECUTED_PREDECESSOR
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors::UNEXECUTED_PREDECESSOR
pub const UNEXECUTED_PREDECESSOR: felt252 =
582589008293488625232609399723160697451040620433093421953529306198273906;
UNAUTHORIZED_CALLER
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Errors::UNAUTHORIZED_CALLER
pub const UNAUTHORIZED_CALLER: felt252 =
2275738313646439942314880912899505822360497764644535609168103673193842;
__external_TimelockImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::__external_TimelockImpl
__l1_handler_TimelockImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::__l1_handler_TimelockImpl
__constructor_TimelockImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::__constructor_TimelockImpl
__external_TimelockMixinImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::__external_TimelockMixinImpl
__l1_handler_TimelockMixinImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::__l1_handler_TimelockMixinImpl
__constructor_TimelockMixinImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::__constructor_TimelockMixinImpl
Constants
Constants
PROPOSER_ROLE
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::PROPOSER_ROLE
pub const PROPOSER_ROLE: felt252 =
273237946050858345628590045737694107205410417995850951630048913656897445057;
EXECUTOR_ROLE
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::EXECUTOR_ROLE
pub const EXECUTOR_ROLE: felt252 =
300468863893292893306738894280854375441360493536472852170483816561360936547;
CANCELLER_ROLE
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CANCELLER_ROLE
pub const CANCELLER_ROLE: felt252 =
629414745181218075209380536283997517164293846052958011745239685582828271491;
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| CallScheduled | Emitted when call is scheduled as part of operation id . |
| CallExecuted | Emitted when call is performed as part of operation id . |
| CallSalt | Emitted when a new proposal is scheduled with non-zero salt. |
| CallCancelled | Emitted when operation id is cancelled. |
| MinDelayChanged | Emitted when the minimum delay for future operations is modified. |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Storage
[storage]
pub struct Storage {
pub TimelockController_timestamps: Map<felt252, u64>,
pub TimelockController_min_delay: u64,
}
Members
TimelockController_timestamps
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Storage::TimelockController_timestamps
pub TimelockController_timestamps: Map<felt252, u64>
TimelockController_min_delay
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Storage::TimelockController_min_delay
pub TimelockController_min_delay: u64
CallScheduled
Emitted when call is scheduled as part of operation id.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallScheduled
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct CallScheduled {
pub id: felt252,
pub index: felt252,
pub call: Call,
pub predecessor: felt252,
pub delay: u64,
}
Members
id
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallScheduled::id
pub id: felt252
index
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallScheduled::index
pub index: felt252
call
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallScheduled::call
pub call: Call
predecessor
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallScheduled::predecessor
pub predecessor: felt252
delay
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallScheduled::delay
pub delay: u64
CallExecuted
Emitted when call is performed as part of operation id.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallExecuted
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct CallExecuted {
pub id: felt252,
pub index: felt252,
pub call: Call,
}
Members
id
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallExecuted::id
pub id: felt252
index
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallExecuted::index
pub index: felt252
call
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallExecuted::call
pub call: Call
CallSalt
Emitted when a new proposal is scheduled with non-zero salt.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallSalt
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct CallSalt {
pub id: felt252,
pub salt: felt252,
}
Members
id
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallSalt::id
pub id: felt252
salt
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallSalt::salt
pub salt: felt252
CallCancelled
Emitted when operation id is cancelled.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallCancelled
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct CallCancelled {
pub id: felt252,
}
Members
id
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::CallCancelled::id
pub id: felt252
MinDelayChanged
Emitted when the minimum delay for future operations is modified.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::MinDelayChanged
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct MinDelayChanged {
pub old_duration: u64,
pub new_duration: u64,
}
Members
old_duration
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::MinDelayChanged::old_duration
pub old_duration: u64
new_duration
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::MinDelayChanged::new_duration
pub new_duration: u64
ComponentState
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Event
pub enum Event {
CallScheduled: CallScheduled,
CallExecuted: CallExecuted,
CallSalt: CallSalt,
CallCancelled: CallCancelled,
MinDelayChanged: MinDelayChanged,
}
Variants
CallScheduled
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Event::CallScheduled
CallScheduled: CallScheduled
CallExecuted
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Event::CallExecuted
CallExecuted: CallExecuted
CallSalt
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Event::CallSalt
CallSalt: CallSalt
CallCancelled
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Event::CallCancelled
CallCancelled: CallCancelled
MinDelayChanged
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Event::MinDelayChanged
MinDelayChanged: MinDelayChanged
Traits
Traits
| HasComponent | — |
| InternalTrait | — |
| UnsafeNewContractStateTraitForTimelockImpl | — |
| UnsafeNewContractStateTraitForTimelockMixinImpl | — |
HasComponent
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait
pub trait InternalTrait<
TContractState,
+HasComponent<TContractState>,
impl SRC5: HasComponent<TContractState>,
impl AccessControl: HasComponent<TContractState>,
+Drop<TContractState>,
>
Trait functions
initializer
Initializes the contract by registering support for SRC5 and AccessControl.
This function also configures the contract with the following parameters:
min_delay: initial minimum delay in seconds for operations.proposers: accounts to be granted proposer and canceller roles.executors: accounts to be granted executor role.admin: optional account to be granted admin role; disable with zero address.
WARNING: The optional admin can aid with initial configuration of roles after deployment without being subject to delay, but this role should be subsequently renounced in favor of administration through timelocked proposals.
Emits two RoleGranted events for each account in proposers with PROPOSER_ROLE
and CANCELLER_ROLE roles.
Emits a RoleGranted event for each account in executors with EXECUTOR_ROLE role.
May emit a RoleGranted event for admin with DEFAULT_ADMIN_ROLE role (if admin is
not zero).
Emits MinDelayChanged event.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::initializer
fn initializer(
ref self: ComponentState<TContractState>,
min_delay: u64,
proposers: Span<ContractAddress>,
executors: Span<ContractAddress>,
admin: ContractAddress,
)
assert_only_role
Validates that the caller has the given role.
Otherwise it panics.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::assert_only_role
fn assert_only_role(self: @ComponentState<TContractState>, role: felt252)
assert_only_role_or_open_role
Validates that the caller has the given role.
If role is granted to the zero address, then this is considered an open role which
allows anyone to be the caller.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::assert_only_role_or_open_role
fn assert_only_role_or_open_role(self: @ComponentState<TContractState>, role: felt252)
assert_only_self
Validates that the caller is the timelock contract itself. Otherwise it panics.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::assert_only_self
fn assert_only_self(self: @ComponentState<TContractState>)
_before_call
Private function that checks before execution of an operation’s calls.
Requirements:
idmust be in theReadyOperationState.predecessormust either be zero or be in theDoneOperationState.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::_before_call
fn _before_call(self: @ComponentState<TContractState>, id: felt252, predecessor: felt252)
_after_call
Private function that checks after execution of an operation’s calls
and sets the OperationState of id to Done.
Requirements:
idmust be in theReadyOperationState.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::_after_call
fn _after_call(ref self: ComponentState<TContractState>, id: felt252)
_schedule
Private function that schedules an operation that is to become valid after a given
delay.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::_schedule
fn _schedule(ref self: ComponentState<TContractState>, id: felt252, delay: u64)
_execute
Private function that executes an operation’s calls.
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::InternalTrait::_execute
fn _execute(ref self: ComponentState<TContractState>, call: Call)
UnsafeNewContractStateTraitForTimelockImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::UnsafeNewContractStateTraitForTimelockImpl
pub trait UnsafeNewContractStateTraitForTimelockImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::UnsafeNewContractStateTraitForTimelockImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForTimelockMixinImpl
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::UnsafeNewContractStateTraitForTimelockMixinImpl
pub trait UnsafeNewContractStateTraitForTimelockMixinImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::timelock::timelock_controller::TimelockControllerComponent::UnsafeNewContractStateTraitForTimelockMixinImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
utils
Fully qualified path: openzeppelin_governance::utils
Modules
Modules
Modules
call_impls
Fully qualified path: openzeppelin_governance::utils::call_impls
Impls
Impls
Impls
HashCallImpl
Fully qualified path: openzeppelin_governance::utils::call_impls::HashCallImpl
pub impl HashCallImpl<S, +HashStateTrait<S>, +Drop<S>> of Hash<Call, S, + HashStateTrait<S>>;
Impl functions
update_state
Fully qualified path: openzeppelin_governance::utils::call_impls::HashCallImpl::update_state
fn update_state(mut state: S, value: Call) -> S
HashCallsImpl
Fully qualified path: openzeppelin_governance::utils::call_impls::HashCallsImpl
pub impl HashCallsImpl<S, +HashStateTrait<S>, +Drop<S>> of Hash<Span<Call>, S, + HashStateTrait<S>>;
Impl functions
update_state
Fully qualified path: openzeppelin_governance::utils::call_impls::HashCallsImpl::update_state
fn update_state(mut state: S, value: Span<Call>) -> S
CallPartialEq
Fully qualified path: openzeppelin_governance::utils::call_impls::CallPartialEq
pub impl CallPartialEq of PartialEq<Call>;
Impl functions
eq
Fully qualified path: openzeppelin_governance::utils::call_impls::CallPartialEq::eq
fn eq(lhs: @Call, rhs: @Call) -> bool
ne
Fully qualified path: openzeppelin_governance::utils::call_impls::CallPartialEq::ne
fn ne(lhs: @Call, rhs: @Call) -> bool
votes
Fully qualified path: openzeppelin_governance::votes
Modules
Re-exports:
Modules
Modules
delegation
Fully qualified path: openzeppelin_governance::votes::delegation
Constants
Structs
Constants
Constants
DELEGATION_TYPE_HASH
Fully qualified path: openzeppelin_governance::votes::delegation::DELEGATION_TYPE_HASH
pub const DELEGATION_TYPE_HASH: felt252 =
1166593738448701488539025986910998635615644239754284995914066903868502076751;
Structs
Structs
Delegation
Fully qualified path: openzeppelin_governance::votes::delegation::Delegation
[derive(Copy, Drop, Hash)]
pub struct Delegation {
pub verifying_contract: ContractAddress,
pub delegatee: ContractAddress,
pub nonce: felt252,
pub expiry: u64,
}
Members
verifying_contract
Fully qualified path: openzeppelin_governance::votes::delegation::Delegation::verifying_contract
pub verifying_contract: ContractAddress
delegatee
Fully qualified path: openzeppelin_governance::votes::delegation::Delegation::delegatee
pub delegatee: ContractAddress
nonce
Fully qualified path: openzeppelin_governance::votes::delegation::Delegation::nonce
pub nonce: felt252
expiry
Fully qualified path: openzeppelin_governance::votes::delegation::Delegation::expiry
pub expiry: u64
votes
Fully qualified path: openzeppelin_governance::votes::votes
Modules
Modules
Modules
VotesComponent
Votes Component
The Votes component provides a flexible system for tracking and delegating voting power. It is currently implemented for ERC20 and ERC721 tokens. An account can delegate their voting power to a representative, that will pool delegated voting units from different delegators and can then use it to vote in decisions. Voting power must be delegated to be counted, and an account must delegate to itself if it wishes to vote directly without a trusted representative.
When integrating the Votes component, the ´VotingUnitsTrait´ must be implemented to get the voting units for a given account as a function of the implementing contract. For simplicity, this module already provides two implementations for ERC20 and ERC721 tokens, which will work out of the box if the respective components are integrated.
NOTE: ERC20 and ERC721 tokens implementing this component must call ´transfer_voting_units´ whenever a transfer, mint, or burn operation is performed. Hooks can be leveraged for this purpose, as shown in the following ERC20 example:
See the documentation (https://docs.openzeppelin.com/contracts-cairo/3.0.0/governance.html#usage_2) for examples and more details.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent
Modules
Free functions
Structs
| Storage | — |
| DelegateChanged | Emitted when delegator delegates their votes from from_delegate to to_delegate . |
| DelegateVotesChanged | Emitted when delegate votes are updated from previous_votes to new_votes . |
| ComponentState | — |
Enums
Traits
| VotingUnitsTrait | A trait that must be implemented when integrating {VotesComponent} into a contract. It offers a mechanism to retrieve the number of voting units for a given account at the current time. |
| HasComponent | — |
| InternalTrait | — |
| UnsafeNewContractStateTraitForVotesImpl | — |
Modules
Modules
Errors
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Errors
Constants
Constants
Constants
FUTURE_LOOKUP
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Errors::FUTURE_LOOKUP
pub const FUTURE_LOOKUP: felt252 = 493458728554737271343947431258143419428107941232;
EXPIRED_SIGNATURE
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Errors::EXPIRED_SIGNATURE
pub const EXPIRED_SIGNATURE: felt252 = 2119389101068337925958216489287083020391074280737212822117;
INVALID_SIGNATURE
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Errors::INVALID_SIGNATURE
pub const INVALID_SIGNATURE: felt252 = 2119389101068337927306084668060731060221641785975082676837;
__external_VotesImpl
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::__external_VotesImpl
__l1_handler_VotesImpl
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::__l1_handler_VotesImpl
__constructor_VotesImpl
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::__constructor_VotesImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| DelegateChanged | Emitted when delegator delegates their votes from from_delegate to to_delegate . |
| DelegateVotesChanged | Emitted when delegate votes are updated from previous_votes to new_votes . |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Storage
[storage]
pub struct Storage {
pub Votes_delegatee: Map<ContractAddress, ContractAddress>,
pub Votes_delegate_checkpoints: Map<ContractAddress, Trace>,
pub Votes_total_checkpoints: Trace,
}
Members
Votes_delegatee
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Storage::Votes_delegatee
pub Votes_delegatee: Map<ContractAddress, ContractAddress>
Votes_delegate_checkpoints
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Storage::Votes_delegate_checkpoints
pub Votes_delegate_checkpoints: Map<ContractAddress, Trace>
Votes_total_checkpoints
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Storage::Votes_total_checkpoints
pub Votes_total_checkpoints: Trace
DelegateChanged
Emitted when delegator delegates their votes from from_delegate to to_delegate.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateChanged
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct DelegateChanged {
pub delegator: ContractAddress,
pub from_delegate: ContractAddress,
pub to_delegate: ContractAddress,
}
Members
delegator
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateChanged::delegator
pub delegator: ContractAddress
from_delegate
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateChanged::from_delegate
pub from_delegate: ContractAddress
to_delegate
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateChanged::to_delegate
pub to_delegate: ContractAddress
DelegateVotesChanged
Emitted when delegate votes are updated from previous_votes to new_votes.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateVotesChanged
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct DelegateVotesChanged {
pub delegate: ContractAddress,
pub previous_votes: u256,
pub new_votes: u256,
}
Members
delegate
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateVotesChanged::delegate
pub delegate: ContractAddress
previous_votes
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateVotesChanged::previous_votes
pub previous_votes: u256
new_votes
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::DelegateVotesChanged::new_votes
pub new_votes: u256
ComponentState
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Event
pub enum Event {
DelegateChanged: DelegateChanged,
DelegateVotesChanged: DelegateVotesChanged,
}
Variants
DelegateChanged
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Event::DelegateChanged
DelegateChanged: DelegateChanged
DelegateVotesChanged
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::Event::DelegateVotesChanged
DelegateVotesChanged: DelegateVotesChanged
Traits
Traits
| VotingUnitsTrait | A trait that must be implemented when integrating {VotesComponent} into a contract. It offers a mechanism to retrieve the number of voting units for a given account at the current time. |
| HasComponent | — |
| InternalTrait | — |
| UnsafeNewContractStateTraitForVotesImpl | — |
VotingUnitsTrait
A trait that must be implemented when integrating {VotesComponent} into a contract. It offers a mechanism to retrieve the number of voting units for a given account at the current time.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::VotingUnitsTrait
pub trait VotingUnitsTrait<TState>
Trait functions
get_voting_units
Returns the number of voting units for a given account. For ERC20, this is typically the token balance. For ERC721, this is typically the number of tokens owned.
WARNING: While any formula can be used as a measure of voting units, the internal vote
accounting of the contract may be compromised if voting units are transferred in any
external flow by following a different formula. For example, when implementing the hook
for ERC20, the number of voting units transferred should match the formula given by the
get_voting_units implementation.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::VotingUnitsTrait::get_voting_units
fn get_voting_units(self: @TState, account: ContractAddress) -> u256
HasComponent
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::HasComponent::emit
fn emit<S, impl IntoImp: Into<S, openzeppelin_governance::votes::votes::VotesComponent::Event>>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::InternalTrait
pub trait InternalTrait<TContractState, +HasComponent<TContractState>, +VotingUnitsTrait<ComponentState<TContractState>>, impl Clock: ERC6372Clock, impl HasComponent<TContractState>: HasComponent<TContractState>, +SNIP12Metadata, +Drop<TContractState>>
Trait functions
get_total_supply
Returns the current total supply of votes.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::InternalTrait::get_total_supply
fn get_total_supply(self: @ComponentState<TContractState>) -> u256
move_delegate_votes
Moves delegated votes from one delegate to another.
May emit one or two DelegateVotesChanged events.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::InternalTrait::move_delegate_votes
fn move_delegate_votes(
ref self: ComponentState<TContractState>,
from: ContractAddress,
to: ContractAddress,
amount: u256,
)
transfer_voting_units
Transfers, mints, or burns voting units.
To register a mint, from should be zero. To register a burn, to
should be zero. Total supply of voting units will be adjusted with mints and burns.
WARNING: If voting units are based on an underlying transferable asset (like a token), you must call this function every time the asset is transferred to keep the internal voting power accounting in sync. For ERC20 and ERC721 tokens, this is typically handled using hooks.
May emit one or two DelegateVotesChanged events.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::InternalTrait::transfer_voting_units
fn transfer_voting_units(
ref self: ComponentState<TContractState>,
from: ContractAddress,
to: ContractAddress,
amount: u256,
)
num_checkpoints
Returns the number of checkpoints for account.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::InternalTrait::num_checkpoints
fn num_checkpoints(self: @ComponentState<TContractState>, account: ContractAddress) -> u64
checkpoints
Returns the pos-th checkpoint for account.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::InternalTrait::checkpoints
fn checkpoints(
self: @ComponentState<TContractState>, account: ContractAddress, pos: u64,
) -> Checkpoint
_delegate
Delegates all of account’s voting units to delegatee.
Emits a DelegateChanged event.
May emit one or two DelegateVotesChanged events.
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::InternalTrait::_delegate
fn _delegate(
ref self: ComponentState<TContractState>, account: ContractAddress, delegatee: ContractAddress,
)
UnsafeNewContractStateTraitForVotesImpl
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::UnsafeNewContractStateTraitForVotesImpl
pub trait UnsafeNewContractStateTraitForVotesImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_governance::votes::votes::VotesComponent::UnsafeNewContractStateTraitForVotesImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState