Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit 851efed

Browse files
authored
Governance: Rename AccountGovernance to Governance (#2836)
* chore: rename AccountGovernance to Governance * chore: make governed_account optional * chore: rename account_governance to governance
1 parent 5850973 commit 851efed

27 files changed

+456
-492
lines changed

governance/chat/program/tests/program_test/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ use solana_program_test::{processor, ProgramTest};
66
use solana_sdk::{signature::Keypair, signer::Signer};
77
use spl_governance::{
88
instruction::{
9-
create_account_governance, create_proposal, create_realm, create_token_owner_record,
9+
create_governance, create_proposal, create_realm, create_token_owner_record,
1010
deposit_governing_tokens,
1111
},
1212
state::{
1313
enums::{MintMaxVoteWeightSource, VoteThresholdPercentage},
14-
governance::{get_account_governance_address, GovernanceConfig},
14+
governance::{get_governance_address, GovernanceConfig},
1515
proposal::{get_proposal_address, VoteType},
1616
realm::get_realm_address,
1717
token_owner_record::get_token_owner_record_address,
@@ -220,7 +220,7 @@ impl GovernanceChatProgramTest {
220220
None
221221
};
222222

223-
let create_account_governance_ix = create_account_governance(
223+
let create_governance_ix = create_governance(
224224
&self.governance_program_id,
225225
&realm_address,
226226
&governed_account_address,
@@ -232,13 +232,13 @@ impl GovernanceChatProgramTest {
232232
);
233233

234234
self.bench
235-
.process_transaction(&[create_account_governance_ix], Some(&[&token_owner]))
235+
.process_transaction(&[create_governance_ix], Some(&[&token_owner]))
236236
.await
237237
.unwrap();
238238

239239
// Create Proposal
240240

241-
let governance_address = get_account_governance_address(
241+
let governance_address = get_governance_address(
242242
&self.governance_program_id,
243243
&realm_address,
244244
&governed_account_address,

governance/program/src/instruction.rs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use crate::{
44
state::{
55
enums::MintMaxVoteWeightSource,
66
governance::{
7-
get_account_governance_address, get_mint_governance_address,
8-
get_program_governance_address, get_token_governance_address, GovernanceConfig,
7+
get_governance_address, get_mint_governance_address, get_program_governance_address,
8+
get_token_governance_address, GovernanceConfig,
99
},
1010
native_treasury::get_native_treasury_address,
1111
program_metadata::get_program_metadata_address,
@@ -107,19 +107,20 @@ pub enum GovernanceInstruction {
107107
new_governance_delegate: Option<Pubkey>,
108108
},
109109

110-
/// Creates Account Governance account which can be used to govern an arbitrary account
110+
/// Creates Governance account which can be used to govern any arbitrary Solana account or asset
111111
///
112112
/// 0. `[]` Realm account the created Governance belongs to
113113
/// 1. `[writable]` Account Governance account. PDA seeds: ['account-governance', realm, governed_account]
114114
/// 2. `[]` Account governed by this Governance
115+
/// Note: The account doesn't have to exist and can be only used as a unique identifier for the Governance account
115116
/// 3. `[]` Governing TokenOwnerRecord account (Used only if not signed by RealmAuthority)
116117
/// 4. `[signer]` Payer
117118
/// 5. `[]` System program
118119
/// 6. `[]` Sysvar Rent
119120
/// 7. `[signer]` Governance authority
120121
/// 8. `[]` Realm Config
121122
/// 9. `[]` Optional Voter Weight Record
122-
CreateAccountGovernance {
123+
CreateGovernance {
123124
/// Governance config
124125
#[allow(dead_code)]
125126
config: GovernanceConfig,
@@ -682,27 +683,33 @@ pub fn set_governance_delegate(
682683
}
683684
}
684685

685-
/// Creates CreateAccountGovernance instruction using optional voter weight addin
686+
/// Creates CreateGovernance instruction using optional voter weight addin
686687
#[allow(clippy::too_many_arguments)]
687-
pub fn create_account_governance(
688+
pub fn create_governance(
688689
program_id: &Pubkey,
689690
// Accounts
690691
realm: &Pubkey,
691-
governed_account: &Pubkey,
692+
governed_account: Option<&Pubkey>,
692693
token_owner_record: &Pubkey,
693694
payer: &Pubkey,
694695
create_authority: &Pubkey,
695696
voter_weight_record: Option<Pubkey>,
696697
// Args
697698
config: GovernanceConfig,
698699
) -> Instruction {
699-
let account_governance_address =
700-
get_account_governance_address(program_id, realm, governed_account);
700+
let governed_account_address = if let Some(governed_account) = governed_account {
701+
*governed_account
702+
} else {
703+
// If the governed account is not provided then generate a unique identifier for the Governance account
704+
Pubkey::new_unique()
705+
};
706+
707+
let governance_address = get_governance_address(program_id, realm, &governed_account_address);
701708

702709
let mut accounts = vec![
703710
AccountMeta::new_readonly(*realm, false),
704-
AccountMeta::new(account_governance_address, false),
705-
AccountMeta::new_readonly(*governed_account, false),
711+
AccountMeta::new(governance_address, false),
712+
AccountMeta::new_readonly(governed_account_address, false),
706713
AccountMeta::new_readonly(*token_owner_record, false),
707714
AccountMeta::new(*payer, true),
708715
AccountMeta::new_readonly(system_program::id(), false),
@@ -712,7 +719,7 @@ pub fn create_account_governance(
712719

713720
with_realm_config_accounts(program_id, &mut accounts, realm, voter_weight_record, None);
714721

715-
let instruction = GovernanceInstruction::CreateAccountGovernance { config };
722+
let instruction = GovernanceInstruction::CreateGovernance { config };
716723

717724
Instruction {
718725
program_id: *program_id,

governance/program/src/processor/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
mod process_add_signatory;
44
mod process_cancel_proposal;
55
mod process_cast_vote;
6-
mod process_create_account_governance;
6+
mod process_create_governance;
77
mod process_create_mint_governance;
88
mod process_create_native_treasury;
99
mod process_create_program_governance;
@@ -32,7 +32,7 @@ use crate::instruction::GovernanceInstruction;
3232
use process_add_signatory::*;
3333
use process_cancel_proposal::*;
3434
use process_cast_vote::*;
35-
use process_create_account_governance::*;
35+
use process_create_governance::*;
3636
use process_create_mint_governance::*;
3737
use process_create_native_treasury::*;
3838
use process_create_program_governance::*;
@@ -134,8 +134,8 @@ pub fn process_instruction(
134134
transfer_account_authorities,
135135
),
136136

137-
GovernanceInstruction::CreateAccountGovernance { config } => {
138-
process_create_account_governance(program_id, accounts, config)
137+
GovernanceInstruction::CreateGovernance { config } => {
138+
process_create_governance(program_id, accounts, config)
139139
}
140140

141141
GovernanceInstruction::CreateProposal {

governance/program/src/processor/process_create_account_governance.rs renamed to governance/program/src/processor/process_create_governance.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use crate::state::{
44
enums::GovernanceAccountType,
55
governance::{
6-
assert_valid_create_governance_args, get_account_governance_address_seeds, Governance,
6+
assert_valid_create_governance_args, get_governance_address_seeds, Governance,
77
GovernanceConfig,
88
},
99
realm::get_realm_data,
@@ -18,16 +18,16 @@ use solana_program::{
1818

1919
use spl_governance_tools::account::create_and_serialize_account_signed;
2020

21-
/// Processes CreateAccountGovernance instruction
22-
pub fn process_create_account_governance(
21+
/// Processes CreateGovernance instruction
22+
pub fn process_create_governance(
2323
program_id: &Pubkey,
2424
accounts: &[AccountInfo],
2525
config: GovernanceConfig,
2626
) -> ProgramResult {
2727
let account_info_iter = &mut accounts.iter();
2828

2929
let realm_info = next_account_info(account_info_iter)?; // 0
30-
let account_governance_info = next_account_info(account_info_iter)?; // 1
30+
let governance_info = next_account_info(account_info_iter)?; // 1
3131
let governed_account_info = next_account_info(account_info_iter)?; // 2
3232

3333
let token_owner_record_info = next_account_info(account_info_iter)?; // 3
@@ -52,8 +52,8 @@ pub fn process_create_account_governance(
5252
account_info_iter, // 8, 9
5353
)?;
5454

55-
let account_governance_data = Governance {
56-
account_type: GovernanceAccountType::AccountGovernance,
55+
let governance_data = Governance {
56+
account_type: GovernanceAccountType::Governance,
5757
realm: *realm_info.key,
5858
governed_account: *governed_account_info.key,
5959
config,
@@ -63,9 +63,9 @@ pub fn process_create_account_governance(
6363

6464
create_and_serialize_account_signed::<Governance>(
6565
payer_info,
66-
account_governance_info,
67-
&account_governance_data,
68-
&get_account_governance_address_seeds(realm_info.key, governed_account_info.key),
66+
governance_info,
67+
&governance_data,
68+
&get_governance_address_seeds(realm_info.key, governed_account_info.key),
6969
program_id,
7070
system_info,
7171
rent,

governance/program/src/state/enums.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ pub enum GovernanceAccountType {
1515
/// Token Owner Record for given governing token owner within a Realm
1616
TokenOwnerRecord,
1717

18-
/// Generic Account Governance account
19-
AccountGovernance,
18+
/// Governance account
19+
Governance,
2020

2121
/// Program Governance account
2222
ProgramGovernance,

governance/program/src/state/governance.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub struct GovernanceConfig {
5050
#[repr(C)]
5151
#[derive(Clone, Debug, PartialEq, BorshDeserialize, BorshSerialize, BorshSchema)]
5252
pub struct Governance {
53-
/// Account type. It can be Uninitialized, AccountGovernance or ProgramGovernance
53+
/// Account type. It can be Uninitialized, Governance, ProgramGovernance, TokenGovernance or MintGovernance
5454
pub account_type: GovernanceAccountType,
5555

5656
/// Governance Realm
@@ -81,7 +81,7 @@ impl AccountMaxSize for Governance {}
8181

8282
impl IsInitialized for Governance {
8383
fn is_initialized(&self) -> bool {
84-
self.account_type == GovernanceAccountType::AccountGovernance
84+
self.account_type == GovernanceAccountType::Governance
8585
|| self.account_type == GovernanceAccountType::ProgramGovernance
8686
|| self.account_type == GovernanceAccountType::MintGovernance
8787
|| self.account_type == GovernanceAccountType::TokenGovernance
@@ -92,8 +92,8 @@ impl Governance {
9292
/// Returns Governance PDA seeds
9393
pub fn get_governance_address_seeds(&self) -> Result<[&[u8]; 3], ProgramError> {
9494
let seeds = match self.account_type {
95-
GovernanceAccountType::AccountGovernance => {
96-
get_account_governance_address_seeds(&self.realm, &self.governed_account)
95+
GovernanceAccountType::Governance => {
96+
get_governance_address_seeds(&self.realm, &self.governed_account)
9797
}
9898
GovernanceAccountType::ProgramGovernance => {
9999
get_program_governance_address_seeds(&self.realm, &self.governed_account)
@@ -217,8 +217,8 @@ pub fn get_token_governance_address<'a>(
217217
.0
218218
}
219219

220-
/// Returns AccountGovernance PDA seeds
221-
pub fn get_account_governance_address_seeds<'a>(
220+
/// Returns Governance PDA seeds
221+
pub fn get_governance_address_seeds<'a>(
222222
realm: &'a Pubkey,
223223
governed_account: &'a Pubkey,
224224
) -> [&'a [u8]; 3] {
@@ -229,14 +229,14 @@ pub fn get_account_governance_address_seeds<'a>(
229229
]
230230
}
231231

232-
/// Returns AccountGovernance PDA address
233-
pub fn get_account_governance_address<'a>(
232+
/// Returns Governance PDA address
233+
pub fn get_governance_address<'a>(
234234
program_id: &Pubkey,
235235
realm: &'a Pubkey,
236236
governed_account: &'a Pubkey,
237237
) -> Pubkey {
238238
Pubkey::find_program_address(
239-
&get_account_governance_address_seeds(realm, governed_account),
239+
&get_governance_address_seeds(realm, governed_account),
240240
program_id,
241241
)
242242
.0
@@ -250,7 +250,7 @@ pub fn assert_is_valid_governance(
250250
assert_is_valid_account2(
251251
governance_info,
252252
&[
253-
GovernanceAccountType::AccountGovernance,
253+
GovernanceAccountType::Governance,
254254
GovernanceAccountType::ProgramGovernance,
255255
GovernanceAccountType::TokenGovernance,
256256
GovernanceAccountType::MintGovernance,

governance/program/tests/process_add_signatory.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ async fn test_add_signatory() {
2121
.await
2222
.unwrap();
2323

24-
let mut account_governance_cookie = governance_test
25-
.with_account_governance(
24+
let mut governance_cookie = governance_test
25+
.with_governance(
2626
&realm_cookie,
2727
&governed_account_cookie,
2828
&token_owner_record_cookie,
@@ -31,7 +31,7 @@ async fn test_add_signatory() {
3131
.unwrap();
3232

3333
let proposal_cookie = governance_test
34-
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
34+
.with_proposal(&token_owner_record_cookie, &mut governance_cookie)
3535
.await
3636
.unwrap();
3737

@@ -68,8 +68,8 @@ async fn test_add_signatory_with_owner_or_delegate_must_sign_error() {
6868
.await
6969
.unwrap();
7070

71-
let mut account_governance_cookie = governance_test
72-
.with_account_governance(
71+
let mut governance_cookie = governance_test
72+
.with_governance(
7373
&realm_cookie,
7474
&governed_account_cookie,
7575
&token_owner_record_cookie,
@@ -78,7 +78,7 @@ async fn test_add_signatory_with_owner_or_delegate_must_sign_error() {
7878
.unwrap();
7979

8080
let proposal_cookie = governance_test
81-
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
81+
.with_proposal(&token_owner_record_cookie, &mut governance_cookie)
8282
.await
8383
.unwrap();
8484

@@ -116,8 +116,8 @@ async fn test_add_signatory_with_invalid_proposal_owner_error() {
116116
.await
117117
.unwrap();
118118

119-
let mut account_governance_cookie = governance_test
120-
.with_account_governance(
119+
let mut governance_cookie = governance_test
120+
.with_governance(
121121
&realm_cookie,
122122
&governed_account_cookie,
123123
&token_owner_record_cookie,
@@ -126,7 +126,7 @@ async fn test_add_signatory_with_invalid_proposal_owner_error() {
126126
.unwrap();
127127

128128
let proposal_cookie = governance_test
129-
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
129+
.with_proposal(&token_owner_record_cookie, &mut governance_cookie)
130130
.await
131131
.unwrap();
132132

0 commit comments

Comments
 (0)