Governance: Min tokens to create governance (#2203)
* feat: add min_community_tokens_to_create_governance to config * feat: add token owner record and governing mint to CreateAccountGovernance * feat: add token owner record and governing mint to CreateMinGovernance * feat: add token owner record and governing mint to CreateProgramGovernance * feat: add token owner record and governing mint to CreateTokenGovernance * feat: remove custodian * fix: remove mint and update comments * chore: make clippy happy * chore: make clippy happy
This commit is contained in:
parent
f7286134bb
commit
f6f5e9a619
|
@ -170,7 +170,7 @@ dependencies = [
|
|||
"arrayref",
|
||||
"borsh",
|
||||
"solana-program",
|
||||
"spl-token 3.1.1",
|
||||
"spl-token 3.2.0",
|
||||
"thiserror",
|
||||
"uint 0.8.5",
|
||||
]
|
||||
|
|
|
@ -50,7 +50,7 @@ pub enum GovernanceInstruction {
|
|||
/// 5. `[]` System
|
||||
/// 6. `[]` SPL Token
|
||||
/// 7. `[]` Sysvar Rent
|
||||
/// 8. `[]` Realm custodian - optional
|
||||
|
||||
/// 9. `[]` Council Token Mint - optional
|
||||
/// 10. `[writable]` Council Token Holding account - optional unless council is used. PDA seeds: ['governance',realm,council_mint]
|
||||
/// The account will be created with the Realm PDA as its owner
|
||||
|
@ -109,10 +109,11 @@ pub enum GovernanceInstruction {
|
|||
///
|
||||
/// 0. `[]` Realm account the created Governance belongs to
|
||||
/// 1. `[writable]` Account Governance account. PDA seeds: ['account-governance', realm, governed_account]
|
||||
/// 2. `[]` Account governed by this Governance account
|
||||
/// 3. `[signer]` Payer
|
||||
/// 4. `[]` System program
|
||||
/// 5. `[]` Sysvar Rent
|
||||
/// 2. `[]` Account governed by this Governance
|
||||
/// 3. `[]` Governing TokenOwnerRecord account
|
||||
/// 4. `[signer]` Payer
|
||||
/// 5. `[]` System program
|
||||
/// 6. `[]` Sysvar Rent
|
||||
CreateAccountGovernance {
|
||||
/// Governance config
|
||||
#[allow(dead_code)]
|
||||
|
@ -126,10 +127,11 @@ pub enum GovernanceInstruction {
|
|||
/// 2. `[]` Program governed by this Governance account
|
||||
/// 3. `[writable]` Program Data account of the Program governed by this Governance account
|
||||
/// 4. `[signer]` Current Upgrade Authority account of the Program governed by this Governance account
|
||||
/// 5. `[signer]` Payer
|
||||
/// 6. `[]` bpf_upgradeable_loader program
|
||||
/// 7. `[]` System program
|
||||
/// 8. `[]` Sysvar Rent
|
||||
/// 5. `[]` Governing TokenOwnerRecord account
|
||||
/// 6. `[signer]` Payer
|
||||
/// 7. `[]` bpf_upgradeable_loader program
|
||||
/// 8. `[]` System program
|
||||
/// 9. `[]` Sysvar Rent
|
||||
CreateProgramGovernance {
|
||||
/// Governance config
|
||||
#[allow(dead_code)]
|
||||
|
@ -310,10 +312,11 @@ pub enum GovernanceInstruction {
|
|||
/// 1. `[writable]` Mint Governance account. PDA seeds: ['mint-governance', realm, governed_mint]
|
||||
/// 2. `[writable]` Mint governed by this Governance account
|
||||
/// 3. `[signer]` Current Mint Authority
|
||||
/// 4. `[signer]` Payer
|
||||
/// 5. `[]` SPL Token program
|
||||
/// 6. `[]` System program
|
||||
/// 7. `[]` Sysvar Rent
|
||||
/// 4. `[]` Governing TokenOwnerRecord account
|
||||
/// 5. `[signer]` Payer
|
||||
/// 6. `[]` SPL Token program
|
||||
/// 7. `[]` System program
|
||||
/// 8. `[]` Sysvar Rent
|
||||
CreateMintGovernance {
|
||||
#[allow(dead_code)]
|
||||
/// Governance config
|
||||
|
@ -331,11 +334,12 @@ pub enum GovernanceInstruction {
|
|||
/// 0. `[]` Realm account the created Governance belongs to
|
||||
/// 1. `[writable]` Token Governance account. PDA seeds: ['token-governance', realm, governed_token]
|
||||
/// 2. `[writable]` Token account governed by this Governance account
|
||||
/// 3. `[signer]` Current Token account owner
|
||||
/// 4. `[signer]` Payer
|
||||
/// 5. `[]` SPL Token program
|
||||
/// 6. `[]` System program
|
||||
/// 7. `[]` Sysvar Rent
|
||||
/// 3. `[signer]` Current Token account
|
||||
/// 4. `[]` Governing TokenOwnerRecord account
|
||||
/// 5. `[signer]` Payer
|
||||
/// 6. `[]` SPL Token program
|
||||
/// 7. `[]` System program
|
||||
/// 8. `[]` Sysvar Rent
|
||||
CreateTokenGovernance {
|
||||
#[allow(dead_code)]
|
||||
/// Governance config
|
||||
|
@ -383,7 +387,7 @@ pub enum GovernanceInstruction {
|
|||
/// Sets realm config
|
||||
/// 0. `[writable]` Realm account
|
||||
/// 1. `[signer]` Realm authority
|
||||
/// 2. `[]` Realm custodian - optional
|
||||
|
||||
/// 3. `[]` Council Token Mint - optional
|
||||
/// Note: In the current version it's only possible to remove council mint (set it to None)
|
||||
/// After setting council to None it won't be possible to withdraw the tokens from the Realm any longer
|
||||
|
@ -405,10 +409,10 @@ pub fn create_realm(
|
|||
realm_authority: &Pubkey,
|
||||
community_token_mint: &Pubkey,
|
||||
payer: &Pubkey,
|
||||
realm_custodian: Option<Pubkey>,
|
||||
council_token_mint: Option<Pubkey>,
|
||||
// Args
|
||||
name: String,
|
||||
min_community_tokens_to_create_governance: u64,
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource,
|
||||
) -> Instruction {
|
||||
let realm_address = get_realm_address(program_id, &name);
|
||||
|
@ -426,13 +430,6 @@ pub fn create_realm(
|
|||
AccountMeta::new_readonly(sysvar::rent::id(), false),
|
||||
];
|
||||
|
||||
let use_custodian = if let Some(realm_custodian) = realm_custodian {
|
||||
accounts.push(AccountMeta::new_readonly(realm_custodian, false));
|
||||
true
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
||||
let use_council_mint = if let Some(council_token_mint) = council_token_mint {
|
||||
let council_token_holding_address =
|
||||
get_governing_token_holding_address(program_id, &realm_address, &council_token_mint);
|
||||
|
@ -447,7 +444,7 @@ pub fn create_realm(
|
|||
let instruction = GovernanceInstruction::CreateRealm {
|
||||
config_args: RealmConfigArgs {
|
||||
use_council_mint,
|
||||
use_custodian,
|
||||
min_community_tokens_to_create_governance,
|
||||
community_mint_max_vote_weight_source,
|
||||
},
|
||||
name,
|
||||
|
@ -582,6 +579,7 @@ pub fn create_account_governance(
|
|||
// Accounts
|
||||
realm: &Pubkey,
|
||||
governed_account: &Pubkey,
|
||||
token_owner_record: &Pubkey,
|
||||
payer: &Pubkey,
|
||||
// Args
|
||||
config: GovernanceConfig,
|
||||
|
@ -593,6 +591,7 @@ pub fn create_account_governance(
|
|||
AccountMeta::new_readonly(*realm, false),
|
||||
AccountMeta::new(account_governance_address, false),
|
||||
AccountMeta::new_readonly(*governed_account, false),
|
||||
AccountMeta::new_readonly(*token_owner_record, false),
|
||||
AccountMeta::new_readonly(*payer, true),
|
||||
AccountMeta::new_readonly(system_program::id(), false),
|
||||
AccountMeta::new_readonly(sysvar::rent::id(), false),
|
||||
|
@ -608,12 +607,14 @@ pub fn create_account_governance(
|
|||
}
|
||||
|
||||
/// Creates CreateProgramGovernance instruction
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub fn create_program_governance(
|
||||
program_id: &Pubkey,
|
||||
// Accounts
|
||||
realm: &Pubkey,
|
||||
governed_program: &Pubkey,
|
||||
governed_program_upgrade_authority: &Pubkey,
|
||||
token_owner_record: &Pubkey,
|
||||
payer: &Pubkey,
|
||||
// Args
|
||||
config: GovernanceConfig,
|
||||
|
@ -629,6 +630,7 @@ pub fn create_program_governance(
|
|||
AccountMeta::new_readonly(*governed_program, false),
|
||||
AccountMeta::new(governed_program_data_address, false),
|
||||
AccountMeta::new_readonly(*governed_program_upgrade_authority, true),
|
||||
AccountMeta::new_readonly(*token_owner_record, false),
|
||||
AccountMeta::new_readonly(*payer, true),
|
||||
AccountMeta::new_readonly(bpf_loader_upgradeable::id(), false),
|
||||
AccountMeta::new_readonly(system_program::id(), false),
|
||||
|
@ -647,13 +649,15 @@ pub fn create_program_governance(
|
|||
}
|
||||
}
|
||||
|
||||
/// Creates CreateMintGovernance instruction
|
||||
/// Creates CreateMintGovernance
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub fn create_mint_governance(
|
||||
program_id: &Pubkey,
|
||||
// Accounts
|
||||
realm: &Pubkey,
|
||||
governed_mint: &Pubkey,
|
||||
governed_mint_authority: &Pubkey,
|
||||
token_owner_record: &Pubkey,
|
||||
payer: &Pubkey,
|
||||
// Args
|
||||
config: GovernanceConfig,
|
||||
|
@ -666,6 +670,7 @@ pub fn create_mint_governance(
|
|||
AccountMeta::new(mint_governance_address, false),
|
||||
AccountMeta::new(*governed_mint, false),
|
||||
AccountMeta::new_readonly(*governed_mint_authority, true),
|
||||
AccountMeta::new_readonly(*token_owner_record, false),
|
||||
AccountMeta::new_readonly(*payer, true),
|
||||
AccountMeta::new_readonly(spl_token::id(), false),
|
||||
AccountMeta::new_readonly(system_program::id(), false),
|
||||
|
@ -685,12 +690,14 @@ pub fn create_mint_governance(
|
|||
}
|
||||
|
||||
/// Creates CreateTokenGovernance instruction
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub fn create_token_governance(
|
||||
program_id: &Pubkey,
|
||||
// Accounts
|
||||
realm: &Pubkey,
|
||||
governed_token: &Pubkey,
|
||||
governed_token_owner: &Pubkey,
|
||||
token_owner_record: &Pubkey,
|
||||
payer: &Pubkey,
|
||||
// Args
|
||||
config: GovernanceConfig,
|
||||
|
@ -703,6 +710,7 @@ pub fn create_token_governance(
|
|||
AccountMeta::new(token_governance_address, false),
|
||||
AccountMeta::new(*governed_token, false),
|
||||
AccountMeta::new_readonly(*governed_token_owner, true),
|
||||
AccountMeta::new_readonly(*token_owner_record, false),
|
||||
AccountMeta::new_readonly(*payer, true),
|
||||
AccountMeta::new_readonly(spl_token::id(), false),
|
||||
AccountMeta::new_readonly(system_program::id(), false),
|
||||
|
@ -1159,8 +1167,9 @@ pub fn set_realm_config(
|
|||
realm: &Pubkey,
|
||||
realm_authority: &Pubkey,
|
||||
council_token_mint: Option<Pubkey>,
|
||||
realm_custodian: Option<Pubkey>,
|
||||
|
||||
// Args
|
||||
min_community_tokens_to_create_governance: u64,
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource,
|
||||
) -> Instruction {
|
||||
let mut accounts = vec![
|
||||
|
@ -1168,13 +1177,6 @@ pub fn set_realm_config(
|
|||
AccountMeta::new_readonly(*realm_authority, true),
|
||||
];
|
||||
|
||||
let use_custodian = if let Some(realm_custodian) = realm_custodian {
|
||||
accounts.push(AccountMeta::new_readonly(realm_custodian, false));
|
||||
true
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
||||
let use_council_mint = if let Some(council_token_mint) = council_token_mint {
|
||||
let council_token_holding_address =
|
||||
get_governing_token_holding_address(program_id, realm, &council_token_mint);
|
||||
|
@ -1189,7 +1191,7 @@ pub fn set_realm_config(
|
|||
let instruction = GovernanceInstruction::SetRealmConfig {
|
||||
config_args: RealmConfigArgs {
|
||||
use_council_mint,
|
||||
use_custodian,
|
||||
min_community_tokens_to_create_governance,
|
||||
community_mint_max_vote_weight_source,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -29,10 +29,13 @@ pub fn process_create_account_governance(
|
|||
let realm_info = next_account_info(account_info_iter)?; // 0
|
||||
let account_governance_info = next_account_info(account_info_iter)?; // 1
|
||||
let governed_account_info = next_account_info(account_info_iter)?; // 2
|
||||
let payer_info = next_account_info(account_info_iter)?; // 3
|
||||
let system_info = next_account_info(account_info_iter)?; // 4
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 5
|
||||
let _token_owner_record_info = next_account_info(account_info_iter)?; // 3
|
||||
|
||||
let payer_info = next_account_info(account_info_iter)?; // 4
|
||||
let system_info = next_account_info(account_info_iter)?; // 5
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 6
|
||||
let rent = &Rent::from_account_info(rent_sysvar_info)?;
|
||||
|
||||
assert_valid_create_governance_args(program_id, &config, realm_info)?;
|
||||
|
|
|
@ -36,12 +36,14 @@ pub fn process_create_mint_governance(
|
|||
let governed_mint_info = next_account_info(account_info_iter)?; // 2
|
||||
let governed_mint_authority_info = next_account_info(account_info_iter)?; // 3
|
||||
|
||||
let payer_info = next_account_info(account_info_iter)?; // 4
|
||||
let spl_token_info = next_account_info(account_info_iter)?; // 5
|
||||
let _token_owner_record_info = next_account_info(account_info_iter)?; // 4
|
||||
|
||||
let system_info = next_account_info(account_info_iter)?; // 6
|
||||
let payer_info = next_account_info(account_info_iter)?; // 5
|
||||
let spl_token_info = next_account_info(account_info_iter)?; // 6
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 7
|
||||
let system_info = next_account_info(account_info_iter)?; // 7
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 8
|
||||
let rent = &Rent::from_account_info(rent_sysvar_info)?;
|
||||
|
||||
assert_valid_create_governance_args(program_id, &config, realm_info)?;
|
||||
|
|
|
@ -40,12 +40,14 @@ pub fn process_create_program_governance(
|
|||
let governed_program_data_info = next_account_info(account_info_iter)?; // 2
|
||||
let governed_program_upgrade_authority_info = next_account_info(account_info_iter)?; // 3
|
||||
|
||||
let payer_info = next_account_info(account_info_iter)?; // 4
|
||||
let bpf_upgrade_loader_info = next_account_info(account_info_iter)?; // 5
|
||||
let _token_owner_record_info = next_account_info(account_info_iter)?; // 4
|
||||
|
||||
let system_info = next_account_info(account_info_iter)?; // 6
|
||||
let payer_info = next_account_info(account_info_iter)?; // 5
|
||||
let bpf_upgrade_loader_info = next_account_info(account_info_iter)?; // 6
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 7
|
||||
let system_info = next_account_info(account_info_iter)?; // 7
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 8
|
||||
let rent = &Rent::from_account_info(rent_sysvar_info)?;
|
||||
|
||||
assert_valid_create_governance_args(program_id, &config, realm_info)?;
|
||||
|
|
|
@ -61,13 +61,6 @@ pub fn process_create_realm(
|
|||
rent,
|
||||
)?;
|
||||
|
||||
let realm_custodian = if config_args.use_custodian {
|
||||
let realm_custodian_info = next_account_info(account_info_iter)?;
|
||||
Some(*realm_custodian_info.key)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let council_token_mint_address = if config_args.use_council_mint {
|
||||
let council_token_mint_info = next_account_info(account_info_iter)?;
|
||||
let council_token_holding_info = next_account_info(account_info_iter)?;
|
||||
|
@ -100,9 +93,10 @@ pub fn process_create_realm(
|
|||
config: RealmConfig {
|
||||
council_mint: council_token_mint_address,
|
||||
reserved: [0; 8],
|
||||
custodian: realm_custodian,
|
||||
community_mint_max_vote_weight_source: config_args
|
||||
.community_mint_max_vote_weight_source,
|
||||
min_community_tokens_to_create_governance: config_args
|
||||
.min_community_tokens_to_create_governance,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -36,12 +36,14 @@ pub fn process_create_token_governance(
|
|||
let governed_token_info = next_account_info(account_info_iter)?; // 2
|
||||
let governed_token_owner_info = next_account_info(account_info_iter)?; // 3
|
||||
|
||||
let payer_info = next_account_info(account_info_iter)?; // 4
|
||||
let spl_token_info = next_account_info(account_info_iter)?; // 5
|
||||
let _token_owner_record_info = next_account_info(account_info_iter)?; // 4
|
||||
|
||||
let system_info = next_account_info(account_info_iter)?; // 6
|
||||
let payer_info = next_account_info(account_info_iter)?; // 5
|
||||
let spl_token_info = next_account_info(account_info_iter)?; // 6
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 7
|
||||
let system_info = next_account_info(account_info_iter)?; // 7
|
||||
|
||||
let rent_sysvar_info = next_account_info(account_info_iter)?; // 8
|
||||
let rent = &Rent::from_account_info(rent_sysvar_info)?;
|
||||
|
||||
assert_valid_create_governance_args(program_id, &config, realm_info)?;
|
||||
|
|
|
@ -32,13 +32,6 @@ pub fn process_set_realm_config(
|
|||
|
||||
assert_valid_realm_config_args(&config_args)?;
|
||||
|
||||
let realm_custodian = if config_args.use_custodian {
|
||||
let realm_custodian_info = next_account_info(account_info_iter)?;
|
||||
Some(*realm_custodian_info.key)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
if config_args.use_council_mint {
|
||||
let council_token_mint_info = next_account_info(account_info_iter)?;
|
||||
|
||||
|
@ -60,9 +53,10 @@ pub fn process_set_realm_config(
|
|||
realm_data.config.council_mint = None;
|
||||
}
|
||||
|
||||
realm_data.config.custodian = realm_custodian;
|
||||
realm_data.config.community_mint_max_vote_weight_source =
|
||||
config_args.community_mint_max_vote_weight_source;
|
||||
realm_data.config.min_community_tokens_to_create_governance =
|
||||
config_args.min_community_tokens_to_create_governance;
|
||||
|
||||
realm_data.serialize(&mut *realm_info.data.borrow_mut())?;
|
||||
|
||||
|
|
|
@ -562,9 +562,10 @@ mod test {
|
|||
config: RealmConfig {
|
||||
council_mint: Some(Pubkey::new_unique()),
|
||||
reserved: [0; 8],
|
||||
custodian: Some(Pubkey::new_unique()),
|
||||
|
||||
community_mint_max_vote_weight_source:
|
||||
MintMaxVoteWeightSource::FULL_SUPPLY_FRACTION,
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,9 +21,8 @@ pub struct RealmConfigArgs {
|
|||
/// If yes then council_mint account must also be passed to the instruction
|
||||
pub use_council_mint: bool,
|
||||
|
||||
/// Indicates whether custodian should be used
|
||||
/// If yes then custodian account must also be passed to the instruction
|
||||
pub use_custodian: bool,
|
||||
/// Min number of community tokens required to create a governance
|
||||
pub min_community_tokens_to_create_governance: u64,
|
||||
|
||||
/// The source used for community mint max vote weight source
|
||||
pub community_mint_max_vote_weight_source: MintMaxVoteWeightSource,
|
||||
|
@ -36,18 +35,14 @@ pub struct RealmConfig {
|
|||
/// Reserved space for future versions
|
||||
pub reserved: [u8; 8],
|
||||
|
||||
/// Min number of community tokens required to create a governance
|
||||
pub min_community_tokens_to_create_governance: u64,
|
||||
|
||||
/// The source used for community mint max vote weight source
|
||||
pub community_mint_max_vote_weight_source: MintMaxVoteWeightSource,
|
||||
|
||||
/// Optional council mint
|
||||
pub council_mint: Option<Pubkey>,
|
||||
|
||||
/// An authority tasked with non-critical and maintenance Realm operations
|
||||
/// For example custodian authority is required to add governances to the Realm
|
||||
/// There is no security risk with adding governances to the Realm but it should not be open for everybody
|
||||
/// to prevent unrelated entries and noise
|
||||
/// Note: This field is not used yet. It's reserved for future versions
|
||||
pub custodian: Option<Pubkey>,
|
||||
}
|
||||
|
||||
/// Governance Realm Account
|
||||
|
@ -77,7 +72,7 @@ pub struct Realm {
|
|||
|
||||
impl AccountMaxSize for Realm {
|
||||
fn get_max_size(&self) -> Option<usize> {
|
||||
Some(self.name.len() + 161)
|
||||
Some(self.name.len() + 136)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -239,8 +234,9 @@ mod test {
|
|||
config: RealmConfig {
|
||||
council_mint: Some(Pubkey::new_unique()),
|
||||
reserved: [0; 8],
|
||||
custodian: Some(Pubkey::new_unique()),
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::Absolute(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -16,15 +16,19 @@ async fn test_add_signatory() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -58,15 +62,19 @@ async fn test_add_signatory_with_owner_or_delegate_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -100,15 +108,19 @@ async fn test_add_signatory_with_invalid_proposal_owner_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -15,15 +15,19 @@ async fn test_cancel_proposal() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -54,15 +58,19 @@ async fn test_cancel_proposal_with_already_completed_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -96,15 +104,19 @@ async fn test_cancel_proposal_with_owner_or_delegate_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -19,15 +19,19 @@ async fn test_cast_vote() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -92,15 +96,19 @@ async fn test_cast_vote_with_invalid_governance_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -110,7 +118,11 @@ async fn test_cast_vote_with_invalid_governance_error() {
|
|||
let governed_account_cookie2 = governance_test.with_governed_account().await;
|
||||
|
||||
let account_governance_cookie2 = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie2)
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie2,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -134,15 +146,19 @@ async fn test_cast_vote_with_invalid_mint_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -170,15 +186,19 @@ async fn test_cast_vote_with_invalid_token_owner_record_mint_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -212,15 +232,19 @@ async fn test_cast_vote_with_invalid_token_owner_record_from_different_realm_err
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -253,15 +277,19 @@ async fn test_cast_vote_with_governance_authority_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -295,15 +323,19 @@ async fn test_cast_vote_with_vote_tipped_to_succeeded() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie1 = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie1,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie2 = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
@ -372,16 +404,20 @@ async fn test_cast_vote_with_vote_tipped_to_defeated() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// 100 votes
|
||||
let token_owner_record_cookie1 = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie1,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// 100 votes
|
||||
let token_owner_record_cookie2 = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
|
@ -457,19 +493,20 @@ async fn test_cast_vote_with_threshold_below_50_and_vote_not_tipped() {
|
|||
|
||||
governance_config.vote_threshold_percentage = VoteThresholdPercentage::YesVote(40);
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance_using_config(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
&governance_config,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
// Total 210 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 110)
|
||||
|
@ -503,15 +540,19 @@ async fn test_cast_vote_with_voting_time_expired_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -549,15 +590,19 @@ async fn test_cast_vote_with_cast_twice_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 200)
|
||||
.await;
|
||||
|
|
|
@ -14,9 +14,17 @@ async fn test_create_account_governance() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
// Act
|
||||
let account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -39,8 +47,16 @@ async fn test_create_account_governance_with_invalid_realm_error() {
|
|||
let mut realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -48,7 +64,11 @@ async fn test_create_account_governance_with_invalid_realm_error() {
|
|||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -66,13 +86,22 @@ async fn test_create_account_governance_with_invalid_config_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
// Arrange
|
||||
let mut config = governance_test.get_default_governance_config();
|
||||
config.vote_threshold_percentage = VoteThresholdPercentage::YesVote(0); // below 1% threshold
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_account_governance_using_config(&realm_cookie, &governed_account_cookie, &config)
|
||||
.with_account_governance_using_config(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
&config,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -87,7 +116,12 @@ async fn test_create_account_governance_with_invalid_config_error() {
|
|||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_account_governance_using_config(&realm_cookie, &governed_account_cookie, &config)
|
||||
.with_account_governance_using_config(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
&config,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
|
|
@ -16,9 +16,17 @@ async fn test_create_mint_governance() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
// Act
|
||||
let mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -47,10 +55,18 @@ async fn test_create_mint_governance_without_transferring_mint_authority() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_mint_cookie.transfer_mint_authority = false;
|
||||
// Act
|
||||
let mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -80,12 +96,20 @@ async fn test_create_mint_governance_without_transferring_mint_authority_with_in
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_mint_cookie.transfer_mint_authority = false;
|
||||
governed_mint_cookie.mint_authority = Keypair::new();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -103,6 +127,10 @@ async fn test_create_mint_governance_without_transferring_mint_authority_with_au
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_mint_cookie.transfer_mint_authority = false;
|
||||
|
||||
// Act
|
||||
|
@ -110,6 +138,7 @@ async fn test_create_mint_governance_without_transferring_mint_authority_with_au
|
|||
.with_mint_governance_using_instruction(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
|i| {
|
||||
i.accounts[3].is_signer = false; // governed_mint_authority
|
||||
},
|
||||
|
@ -131,11 +160,19 @@ async fn test_create_mint_governance_with_invalid_mint_authority_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_mint_cookie.mint_authority = Keypair::new();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -152,8 +189,16 @@ async fn test_create_mint_governance_with_invalid_realm_error() {
|
|||
let mut realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -162,7 +207,11 @@ async fn test_create_mint_governance_with_invalid_realm_error() {
|
|||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
|
|
@ -17,9 +17,17 @@ async fn test_create_program_governance() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_program_cookie = governance_test.with_governed_program().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
// Act
|
||||
let program_governance_cookie = governance_test
|
||||
.with_program_governance(&realm_cookie, &governed_program_cookie)
|
||||
.with_program_governance(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -50,11 +58,19 @@ async fn test_create_program_governance_without_transferring_upgrade_authority()
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_program_cookie = governance_test.with_governed_program().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_program_cookie.transfer_upgrade_authority = false;
|
||||
|
||||
// Act
|
||||
let program_governance_cookie = governance_test
|
||||
.with_program_governance(&realm_cookie, &governed_program_cookie)
|
||||
.with_program_governance(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -89,12 +105,20 @@ async fn test_create_program_governance_without_transferring_upgrade_authority_w
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_program_cookie = governance_test.with_governed_program().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_program_cookie.transfer_upgrade_authority = false;
|
||||
governed_program_cookie.upgrade_authority = Keypair::new();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_program_governance(&realm_cookie, &governed_program_cookie)
|
||||
.with_program_governance(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -112,6 +136,10 @@ async fn test_create_program_governance_without_transferring_upgrade_authority_w
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_program_cookie = governance_test.with_governed_program().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_program_cookie.transfer_upgrade_authority = false;
|
||||
|
||||
// Act
|
||||
|
@ -119,6 +147,7 @@ async fn test_create_program_governance_without_transferring_upgrade_authority_w
|
|||
.with_program_governance_using_instruction(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
|i| {
|
||||
i.accounts[4].is_signer = false; // governed_program_upgrade_authority
|
||||
},
|
||||
|
@ -140,11 +169,19 @@ async fn test_create_program_governance_with_incorrect_upgrade_authority_error()
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_program_cookie = governance_test.with_governed_program().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_program_cookie.upgrade_authority = Keypair::new();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_program_governance(&realm_cookie, &governed_program_cookie)
|
||||
.with_program_governance(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -161,8 +198,16 @@ async fn test_create_program_governance_with_invalid_realm_error() {
|
|||
let mut realm_cookie = governance_test.with_realm().await;
|
||||
let governed_program_cookie = governance_test.with_governed_program().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let program_governance_cookie = governance_test
|
||||
.with_program_governance(&realm_cookie, &governed_program_cookie)
|
||||
.with_program_governance(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -170,7 +215,11 @@ async fn test_create_program_governance_with_invalid_realm_error() {
|
|||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_program_governance(&realm_cookie, &governed_program_cookie)
|
||||
.with_program_governance(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
|
|
@ -17,15 +17,19 @@ async fn test_create_community_proposal() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Act
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
|
@ -54,15 +58,19 @@ async fn test_create_multiple_proposals() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let community_token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&community_token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let council_token_owner_record_cookie = governance_test
|
||||
.with_council_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
@ -115,15 +123,19 @@ async fn test_create_proposal_with_not_authorized_governance_authority_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
token_owner_record_cookie.governance_authority = Some(Keypair::new());
|
||||
|
||||
// Act
|
||||
|
@ -148,14 +160,19 @@ async fn test_create_proposal_with_governance_delegate_signer() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
governance_test
|
||||
.with_community_governance_delegate(&realm_cookie, &mut token_owner_record_cookie)
|
||||
.await;
|
||||
|
@ -185,22 +202,22 @@ async fn test_create_proposal_with_not_enough_community_tokens_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Set token deposit amount below the required threshold
|
||||
let token_amount = account_governance_cookie
|
||||
.account
|
||||
.config
|
||||
.min_community_tokens_to_create_proposal as u64
|
||||
- 1;
|
||||
let token_amount = 4;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit_amount(&realm_cookie, token_amount)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
|
@ -220,22 +237,22 @@ async fn test_create_proposal_with_not_enough_council_tokens_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Set token deposit amount below the required threshold
|
||||
let token_amount = account_governance_cookie
|
||||
.account
|
||||
.config
|
||||
.min_council_tokens_to_create_proposal as u64
|
||||
- 1;
|
||||
let token_amount = 1;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_council_token_deposit_amount(&realm_cookie, token_amount)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
|
@ -255,15 +272,19 @@ async fn test_create_proposal_with_owner_or_delegate_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let council_token_owner_record_cookie = governance_test
|
||||
.with_council_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
@ -298,15 +319,19 @@ async fn test_create_proposal_with_invalid_governing_token_mint_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_council_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Try to use mint which doesn't belong to the Realm
|
||||
token_owner_record_cookie.account.governing_token_mint = Pubkey::new_unique();
|
||||
|
||||
|
@ -329,15 +354,19 @@ async fn test_create_community_proposal_using_council_tokens() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut community_token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&community_token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let council_token_owner_record_cookie = governance_test
|
||||
.with_council_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
@ -379,15 +408,19 @@ async fn test_create_council_proposal_using_community_tokens() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut council_token_owner_record_cookie = governance_test
|
||||
.with_council_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&council_token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let community_token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
|
|
@ -30,8 +30,9 @@ async fn test_create_realm_with_non_default_config() {
|
|||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: false,
|
||||
use_custodian: false,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(1),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
// Act
|
||||
|
|
|
@ -16,9 +16,17 @@ async fn test_create_token_governance() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_token_cookie = governance_test.with_governed_token().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
// Act
|
||||
let token_governance_cookie = governance_test
|
||||
.with_token_governance(&realm_cookie, &governed_token_cookie)
|
||||
.with_token_governance(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -44,11 +52,19 @@ async fn test_create_token_governance_without_transferring_token_owner() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_token_cookie = governance_test.with_governed_token().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_token_cookie.transfer_token_owner = false;
|
||||
|
||||
// Act
|
||||
let token_governance_cookie = governance_test
|
||||
.with_token_governance(&realm_cookie, &governed_token_cookie)
|
||||
.with_token_governance(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -78,12 +94,20 @@ async fn test_create_token_governance_without_transferring_token_owner_with_inva
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_token_cookie = governance_test.with_governed_token().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_token_cookie.transfer_token_owner = false;
|
||||
governed_token_cookie.token_owner = Keypair::new();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_token_governance(&realm_cookie, &governed_token_cookie)
|
||||
.with_token_governance(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -101,6 +125,10 @@ async fn test_create_token_governance_without_transferring_token_owner_with_owne
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_token_cookie = governance_test.with_governed_token().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_token_cookie.transfer_token_owner = false;
|
||||
|
||||
// Act
|
||||
|
@ -108,6 +136,7 @@ async fn test_create_token_governance_without_transferring_token_owner_with_owne
|
|||
.with_token_governance_using_instruction(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
|i| {
|
||||
i.accounts[3].is_signer = false; // governed_token_owner
|
||||
},
|
||||
|
@ -129,11 +158,19 @@ async fn test_create_token_governance_with_invalid_token_owner_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let mut governed_token_cookie = governance_test.with_governed_token().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
governed_token_cookie.token_owner = Keypair::new();
|
||||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_token_governance(&realm_cookie, &governed_token_cookie)
|
||||
.with_token_governance(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
@ -150,8 +187,16 @@ async fn test_create_token_governance_with_invalid_realm_error() {
|
|||
let mut realm_cookie = governance_test.with_realm().await;
|
||||
let governed_token_cookie = governance_test.with_governed_token().await;
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let token_governance_cookie = governance_test
|
||||
.with_token_governance(&realm_cookie, &governed_token_cookie)
|
||||
.with_token_governance(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
@ -160,7 +205,11 @@ async fn test_create_token_governance_with_invalid_realm_error() {
|
|||
|
||||
// Act
|
||||
let err = governance_test
|
||||
.with_token_governance(&realm_cookie, &governed_token_cookie)
|
||||
.with_token_governance(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.err()
|
||||
.unwrap();
|
||||
|
|
|
@ -24,15 +24,19 @@ async fn test_execute_mint_instruction() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut mint_governance_cookie)
|
||||
.await
|
||||
|
@ -116,15 +120,19 @@ async fn test_execute_transfer_instruction() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_token_cookie = governance_test.with_governed_token().await;
|
||||
|
||||
let mut token_governance_cookie = governance_test
|
||||
.with_token_governance(&realm_cookie, &governed_token_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut token_governance_cookie = governance_test
|
||||
.with_token_governance(
|
||||
&realm_cookie,
|
||||
&governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut token_governance_cookie)
|
||||
.await
|
||||
|
@ -208,15 +216,19 @@ async fn test_execute_upgrade_program_instruction() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_program_cookie = governance_test.with_governed_program().await;
|
||||
|
||||
let mut program_governance_cookie = governance_test
|
||||
.with_program_governance(&realm_cookie, &governed_program_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut program_governance_cookie = governance_test
|
||||
.with_program_governance(
|
||||
&realm_cookie,
|
||||
&governed_program_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut program_governance_cookie)
|
||||
.await
|
||||
|
@ -328,15 +340,19 @@ async fn test_execute_instruction_with_invalid_state_errors() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut mint_governance_cookie)
|
||||
.await
|
||||
|
@ -486,15 +502,19 @@ async fn test_execute_instruction_for_other_proposal_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut mint_governance_cookie)
|
||||
.await
|
||||
|
@ -558,15 +578,19 @@ async fn test_execute_mint_instruction_twice_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut mint_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -23,19 +23,20 @@ async fn test_finalize_vote_to_succeeded() {
|
|||
|
||||
governance_config.vote_threshold_percentage = VoteThresholdPercentage::YesVote(40);
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance_using_config(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
&governance_config,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
// Total 210 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 110)
|
||||
|
@ -108,15 +109,19 @@ async fn test_finalize_vote_to_defeated() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Total 300 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 200)
|
||||
|
@ -171,15 +176,19 @@ async fn test_finalize_vote_with_invalid_mint_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Total 300 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 200)
|
||||
|
@ -226,15 +235,19 @@ async fn test_finalize_vote_with_invalid_governance_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Total 300 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 200)
|
||||
|
@ -261,7 +274,11 @@ async fn test_finalize_vote_with_invalid_governance_error() {
|
|||
let governed_account_cookie2 = governance_test.with_governed_account().await;
|
||||
|
||||
let account_governance_cookie2 = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie2)
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie2,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
|
|
@ -19,15 +19,19 @@ async fn test_execute_flag_instruction_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -101,15 +105,19 @@ async fn test_execute_instruction_after_flagged_with_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut mint_governance_cookie)
|
||||
.await
|
||||
|
@ -186,15 +194,19 @@ async fn test_execute_second_instruction_after_first_instruction_flagged_with_er
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut mint_governance_cookie)
|
||||
.await
|
||||
|
@ -267,15 +279,19 @@ async fn test_flag_instruction_error_with_instruction_already_executed_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_mint_cookie = governance_test.with_governed_mint().await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(&realm_cookie, &governed_mint_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut mint_governance_cookie = governance_test
|
||||
.with_mint_governance(
|
||||
&realm_cookie,
|
||||
&governed_mint_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut mint_governance_cookie)
|
||||
.await
|
||||
|
@ -347,15 +363,19 @@ async fn test_flag_instruction_error_with_owner_or_delegate_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -15,15 +15,19 @@ async fn test_insert_instruction() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -63,15 +67,19 @@ async fn test_insert_multiple_instructions() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -107,15 +115,19 @@ async fn test_insert_instruction_with_invalid_index_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -140,15 +152,19 @@ async fn test_insert_instruction_with_instruction_already_exists_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -182,15 +198,20 @@ async fn test_insert_instruction_with_invalid_hold_up_time_error() {
|
|||
|
||||
config.min_instruction_hold_up_time = 100;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance_using_config(&realm_cookie, &governed_account_cookie, &config)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance_using_config(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
&config,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -217,15 +238,19 @@ async fn test_insert_instruction_with_not_editable_proposal_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -253,15 +278,19 @@ async fn test_insert_instruction_with_owner_or_delegate_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -295,15 +324,19 @@ async fn test_insert_instruction_with_invalid_governance_for_proposal_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -313,7 +346,11 @@ async fn test_insert_instruction_with_invalid_governance_for_proposal_error() {
|
|||
let governed_account_cookie2 = governance_test.with_governed_account().await;
|
||||
|
||||
let account_governance_cookie2 = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie2)
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie2,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
|
|
@ -16,15 +16,19 @@ async fn test_relinquish_voted_proposal() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -73,15 +77,19 @@ async fn test_relinquish_active_yes_vote() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Total 300 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 200)
|
||||
|
@ -135,15 +143,19 @@ async fn test_relinquish_active_no_vote() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Total 300 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 200)
|
||||
|
@ -197,15 +209,19 @@ async fn test_relinquish_vote_with_invalid_mint_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -239,15 +255,19 @@ async fn test_relinquish_vote_with_governance_authority_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Total 300 tokens
|
||||
governance_test
|
||||
.mint_community_tokens(&realm_cookie, 200)
|
||||
|
@ -294,15 +314,19 @@ async fn test_relinquish_vote_with_invalid_vote_record_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie2 = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
@ -354,15 +378,19 @@ async fn test_relinquish_vote_with_already_relinquished_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -15,15 +15,19 @@ async fn test_remove_instruction() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -70,15 +74,19 @@ async fn test_replace_instruction() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -136,15 +144,19 @@ async fn test_remove_front_instruction() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -194,15 +206,19 @@ async fn test_remove_instruction_with_owner_or_delegate_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -245,15 +261,19 @@ async fn test_remove_instruction_with_proposal_not_editable_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -295,15 +315,19 @@ async fn test_remove_instruction_with_instruction_from_other_proposal_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -16,15 +16,19 @@ async fn test_remove_signatory() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -68,15 +72,19 @@ async fn test_remove_signatory_with_owner_or_delegate_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -119,15 +127,19 @@ async fn test_remove_signatory_with_invalid_proposal_owner_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -167,15 +179,19 @@ async fn test_remove_signatory_with_not_editable_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -222,15 +238,19 @@ async fn test_remove_signatory_with_already_signed_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -19,15 +19,19 @@ async fn test_set_governance_config() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -148,15 +152,19 @@ async fn test_set_governance_config_with_invalid_governance_authority_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let mut proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -171,7 +179,11 @@ async fn test_set_governance_config_with_invalid_governance_authority_error() {
|
|||
let governed_account_cookie2 = governance_test.with_governed_account().await;
|
||||
|
||||
let account_governance_cookie2 = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie2)
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie2,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@ async fn test_set_realm_config() {
|
|||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: true,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
// Act
|
||||
|
@ -48,8 +49,9 @@ async fn test_set_realm_config_with_authority_must_sign_error() {
|
|||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: true,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
// Act
|
||||
|
@ -78,8 +80,9 @@ async fn test_set_realm_config_with_no_authority_error() {
|
|||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: true,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
governance_test
|
||||
|
@ -113,8 +116,9 @@ async fn test_set_realm_config_with_invalid_authority_error() {
|
|||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: true,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
let realm_cookie2 = governance_test.with_realm().await;
|
||||
|
@ -134,34 +138,6 @@ async fn test_set_realm_config_with_invalid_authority_error() {
|
|||
assert_eq!(err, GovernanceError::InvalidAuthorityForRealm.into());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_set_realm_config_with_remove_custodian() {
|
||||
// Arrange
|
||||
let mut governance_test = GovernanceProgramTest::start_new().await;
|
||||
|
||||
let mut realm_cookie = governance_test.with_realm().await;
|
||||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: true,
|
||||
use_custodian: false,
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
};
|
||||
|
||||
// Act
|
||||
governance_test
|
||||
.set_realm_config(&mut realm_cookie, &config_args)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
// Assert
|
||||
let realm_account = governance_test
|
||||
.get_realm_account(&realm_cookie.address)
|
||||
.await;
|
||||
|
||||
assert_eq!(realm_cookie.account, realm_account);
|
||||
assert_eq!(None, realm_account.config.custodian);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_set_realm_config_with_remove_council() {
|
||||
// Arrange
|
||||
|
@ -171,8 +147,9 @@ async fn test_set_realm_config_with_remove_council() {
|
|||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: false,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
// Act
|
||||
|
@ -199,8 +176,9 @@ async fn test_set_realm_config_with_council_change_error() {
|
|||
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: true,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
// Try to replace council mint
|
||||
|
@ -229,8 +207,9 @@ async fn test_set_realm_config_with_council_restore_error() {
|
|||
|
||||
let mut config_args = RealmConfigArgs {
|
||||
use_council_mint: false,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::SupplyFraction(100),
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
governance_test
|
||||
|
|
|
@ -15,15 +15,19 @@ async fn test_sign_off_proposal() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
@ -69,15 +73,19 @@ async fn test_sign_off_proposal_with_signatory_must_sign_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -181,14 +181,17 @@ async fn test_withdraw_governing_tokens_with_unrelinquished_votes_error() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
|
@ -222,15 +225,19 @@ async fn test_withdraw_governing_tokens_after_relinquishing_vote() {
|
|||
let realm_cookie = governance_test.with_realm().await;
|
||||
let governed_account_cookie = governance_test.with_governed_account().await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(&realm_cookie, &governed_account_cookie)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let token_owner_record_cookie = governance_test
|
||||
.with_community_token_deposit(&realm_cookie)
|
||||
.await;
|
||||
|
||||
let mut account_governance_cookie = governance_test
|
||||
.with_account_governance(
|
||||
&realm_cookie,
|
||||
&governed_account_cookie,
|
||||
&token_owner_record_cookie,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
let proposal_cookie = governance_test
|
||||
.with_signed_off_proposal(&token_owner_record_cookie, &mut account_governance_cookie)
|
||||
.await
|
||||
|
|
|
@ -30,7 +30,7 @@ pub struct RealmCookie {
|
|||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct TokeOwnerRecordCookie {
|
||||
pub struct TokenOwnerRecordCookie {
|
||||
pub address: Pubkey,
|
||||
|
||||
pub account: TokenOwnerRecord,
|
||||
|
@ -46,7 +46,7 @@ pub struct TokeOwnerRecordCookie {
|
|||
pub governance_delegate: Keypair,
|
||||
}
|
||||
|
||||
impl TokeOwnerRecordCookie {
|
||||
impl TokenOwnerRecordCookie {
|
||||
pub fn get_governance_authority(&self) -> &Keypair {
|
||||
self.governance_authority
|
||||
.as_ref()
|
||||
|
|
|
@ -65,7 +65,7 @@ use self::{
|
|||
cookies::{
|
||||
GovernanceCookie, GovernedAccountCookie, GovernedMintCookie, GovernedProgramCookie,
|
||||
GovernedTokenCookie, ProposalCookie, ProposalInstructionCookie, RealmCookie,
|
||||
TokeOwnerRecordCookie, TokenAccountCookie, VoteRecordCookie,
|
||||
TokenAccountCookie, TokenOwnerRecordCookie, VoteRecordCookie,
|
||||
},
|
||||
tools::NopOverride,
|
||||
};
|
||||
|
@ -137,8 +137,9 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_realm(&mut self) -> RealmCookie {
|
||||
let config_args = RealmConfigArgs {
|
||||
use_council_mint: true,
|
||||
use_custodian: true,
|
||||
|
||||
community_mint_max_vote_weight_source: MintMaxVoteWeightSource::FULL_SUPPLY_FRACTION,
|
||||
min_community_tokens_to_create_governance: 10,
|
||||
};
|
||||
|
||||
self.with_realm_using_config_args(&config_args).await
|
||||
|
@ -199,16 +200,15 @@ impl GovernanceProgramTest {
|
|||
};
|
||||
|
||||
let realm_authority = Keypair::new();
|
||||
let realm_custodian = Keypair::new();
|
||||
|
||||
let create_realm_instruction = create_realm(
|
||||
&self.program_id,
|
||||
&realm_authority.pubkey(),
|
||||
&community_token_mint_keypair.pubkey(),
|
||||
&self.context.payer.pubkey(),
|
||||
Some(realm_custodian.pubkey()),
|
||||
council_token_mint_pubkey,
|
||||
name.clone(),
|
||||
config_args.min_community_tokens_to_create_governance,
|
||||
config_args.community_mint_max_vote_weight_source.clone(),
|
||||
);
|
||||
|
||||
|
@ -226,7 +226,9 @@ impl GovernanceProgramTest {
|
|||
config: RealmConfig {
|
||||
council_mint: council_token_mint_pubkey,
|
||||
reserved: [0; 8],
|
||||
custodian: Some(realm_custodian.pubkey()),
|
||||
|
||||
min_community_tokens_to_create_governance: config_args
|
||||
.min_community_tokens_to_create_governance,
|
||||
community_mint_max_vote_weight_source: config_args
|
||||
.community_mint_max_vote_weight_source
|
||||
.clone(),
|
||||
|
@ -255,17 +257,18 @@ impl GovernanceProgramTest {
|
|||
let council_mint = realm_cookie.account.config.council_mint.unwrap();
|
||||
|
||||
let realm_authority = Keypair::new();
|
||||
let realm_custodian = Keypair::new();
|
||||
|
||||
let community_mint_max_vote_weight_source = MintMaxVoteWeightSource::FULL_SUPPLY_FRACTION;
|
||||
let min_community_tokens_to_create_governance = 10;
|
||||
|
||||
let create_realm_instruction = create_realm(
|
||||
&self.program_id,
|
||||
&realm_authority.pubkey(),
|
||||
&realm_cookie.account.community_mint,
|
||||
&self.context.payer.pubkey(),
|
||||
Some(realm_custodian.pubkey()),
|
||||
Some(council_mint),
|
||||
name.clone(),
|
||||
min_community_tokens_to_create_governance,
|
||||
community_mint_max_vote_weight_source,
|
||||
);
|
||||
|
||||
|
@ -283,9 +286,10 @@ impl GovernanceProgramTest {
|
|||
config: RealmConfig {
|
||||
council_mint: Some(council_mint),
|
||||
reserved: [0; 8],
|
||||
custodian: Some(realm_authority.pubkey()),
|
||||
|
||||
community_mint_max_vote_weight_source:
|
||||
MintMaxVoteWeightSource::FULL_SUPPLY_FRACTION,
|
||||
min_community_tokens_to_create_governance,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -317,7 +321,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_community_token_deposit(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
) -> TokeOwnerRecordCookie {
|
||||
) -> TokenOwnerRecordCookie {
|
||||
self.with_initial_governing_token_deposit(
|
||||
&realm_cookie.address,
|
||||
&realm_cookie.account.community_mint,
|
||||
|
@ -332,7 +336,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
amount: u64,
|
||||
) -> TokeOwnerRecordCookie {
|
||||
) -> TokenOwnerRecordCookie {
|
||||
self.with_initial_governing_token_deposit(
|
||||
&realm_cookie.address,
|
||||
&realm_cookie.account.community_mint,
|
||||
|
@ -346,7 +350,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_subsequent_community_token_deposit(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
amount: u64,
|
||||
) {
|
||||
self.with_subsequent_governing_token_deposit(
|
||||
|
@ -363,7 +367,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_subsequent_council_token_deposit(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
amount: u64,
|
||||
) {
|
||||
self.with_subsequent_governing_token_deposit(
|
||||
|
@ -381,7 +385,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
amount: u64,
|
||||
) -> TokeOwnerRecordCookie {
|
||||
) -> TokenOwnerRecordCookie {
|
||||
self.with_initial_governing_token_deposit(
|
||||
&realm_cookie.address,
|
||||
&realm_cookie.account.config.council_mint.unwrap(),
|
||||
|
@ -395,7 +399,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_council_token_deposit(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
) -> TokeOwnerRecordCookie {
|
||||
) -> TokenOwnerRecordCookie {
|
||||
self.with_initial_governing_token_deposit(
|
||||
&realm_cookie.address,
|
||||
&realm_cookie.account.config.council_mint.unwrap(),
|
||||
|
@ -412,7 +416,7 @@ impl GovernanceProgramTest {
|
|||
governing_mint: &Pubkey,
|
||||
governing_mint_authority: &Keypair,
|
||||
amount: u64,
|
||||
) -> TokeOwnerRecordCookie {
|
||||
) -> TokenOwnerRecordCookie {
|
||||
let token_owner = Keypair::new();
|
||||
let token_source = Keypair::new();
|
||||
|
||||
|
@ -466,7 +470,7 @@ impl GovernanceProgramTest {
|
|||
|
||||
let governance_delegate = Keypair::from_base58_string(&token_owner.to_base58_string());
|
||||
|
||||
TokeOwnerRecordCookie {
|
||||
TokenOwnerRecordCookie {
|
||||
address: token_owner_record_address,
|
||||
account,
|
||||
|
||||
|
@ -504,7 +508,7 @@ impl GovernanceProgramTest {
|
|||
realm: &Pubkey,
|
||||
governing_token_mint: &Pubkey,
|
||||
governing_token_mint_authority: &Keypair,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
amount: u64,
|
||||
) {
|
||||
self.mint_tokens(
|
||||
|
@ -537,7 +541,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_community_governance_delegate(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &mut TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &mut TokenOwnerRecordCookie,
|
||||
) {
|
||||
self.with_governing_token_governance_delegate(
|
||||
realm_cookie,
|
||||
|
@ -551,7 +555,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_council_governance_delegate(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &mut TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &mut TokenOwnerRecordCookie,
|
||||
) {
|
||||
self.with_governing_token_governance_delegate(
|
||||
realm_cookie,
|
||||
|
@ -566,7 +570,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governing_token_mint: &Pubkey,
|
||||
token_owner_record_cookie: &mut TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &mut TokenOwnerRecordCookie,
|
||||
) {
|
||||
let new_governance_delegate = Keypair::new();
|
||||
|
||||
|
@ -586,7 +590,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn set_governance_delegate(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
signing_governance_authority: &Keypair,
|
||||
governing_token_mint: &Pubkey,
|
||||
new_governance_delegate: &Option<Pubkey>,
|
||||
|
@ -671,19 +675,12 @@ impl GovernanceProgramTest {
|
|||
None
|
||||
};
|
||||
|
||||
let realm_custodian = if config_args.use_custodian {
|
||||
let realm_custodian = Keypair::new();
|
||||
Some(realm_custodian.pubkey())
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let mut set_realm_config_ix = set_realm_config(
|
||||
&self.program_id,
|
||||
&realm_cookie.address,
|
||||
&realm_cookie.realm_authority.as_ref().unwrap().pubkey(),
|
||||
council_token_mint,
|
||||
realm_custodian,
|
||||
config_args.min_community_tokens_to_create_governance,
|
||||
config_args.community_mint_max_vote_weight_source.clone(),
|
||||
);
|
||||
|
||||
|
@ -692,7 +689,6 @@ impl GovernanceProgramTest {
|
|||
let default_signers = &[realm_cookie.realm_authority.as_ref().unwrap()];
|
||||
let signers = signers_override.unwrap_or(default_signers);
|
||||
|
||||
realm_cookie.account.config.custodian = realm_custodian;
|
||||
realm_cookie.account.config.council_mint = council_token_mint;
|
||||
realm_cookie
|
||||
.account
|
||||
|
@ -708,7 +704,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn withdraw_community_tokens(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<(), ProgramError> {
|
||||
self.withdraw_governing_tokens(
|
||||
realm_cookie,
|
||||
|
@ -723,7 +719,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn withdraw_council_tokens(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<(), ProgramError> {
|
||||
self.withdraw_governing_tokens(
|
||||
realm_cookie,
|
||||
|
@ -738,7 +734,7 @@ impl GovernanceProgramTest {
|
|||
async fn withdraw_governing_tokens(
|
||||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
governing_token_mint: &Pubkey,
|
||||
|
||||
governing_token_owner: &Keypair,
|
||||
|
@ -831,10 +827,16 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_account_cookie: &GovernedAccountCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
let config = self.get_default_governance_config();
|
||||
self.with_account_governance_using_config(realm_cookie, governed_account_cookie, &config)
|
||||
.await
|
||||
self.with_account_governance_using_config(
|
||||
realm_cookie,
|
||||
governed_account_cookie,
|
||||
token_owner_record_cookie,
|
||||
&config,
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
|
@ -842,12 +844,14 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_account_cookie: &GovernedAccountCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
governance_config: &GovernanceConfig,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
let create_account_governance_instruction = create_account_governance(
|
||||
&self.program_id,
|
||||
&realm_cookie.address,
|
||||
&governed_account_cookie.address,
|
||||
&token_owner_record_cookie.address,
|
||||
&self.context.payer.pubkey(),
|
||||
governance_config.clone(),
|
||||
);
|
||||
|
@ -953,10 +957,12 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_program_cookie: &GovernedProgramCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
self.with_program_governance_using_instruction(
|
||||
realm_cookie,
|
||||
governed_program_cookie,
|
||||
token_owner_record_cookie,
|
||||
NopOverride,
|
||||
None,
|
||||
)
|
||||
|
@ -968,6 +974,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_program_cookie: &GovernedProgramCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
instruction_override: F,
|
||||
signers_override: Option<&[&Keypair]>,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
|
@ -978,6 +985,7 @@ impl GovernanceProgramTest {
|
|||
&realm_cookie.address,
|
||||
&governed_program_cookie.address,
|
||||
&governed_program_cookie.upgrade_authority.pubkey(),
|
||||
&token_owner_record_cookie.address,
|
||||
&self.context.payer.pubkey(),
|
||||
config.clone(),
|
||||
governed_program_cookie.transfer_upgrade_authority,
|
||||
|
@ -1018,10 +1026,12 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_mint_cookie: &GovernedMintCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
self.with_mint_governance_using_instruction(
|
||||
realm_cookie,
|
||||
governed_mint_cookie,
|
||||
token_owner_record_cookie,
|
||||
NopOverride,
|
||||
None,
|
||||
)
|
||||
|
@ -1033,6 +1043,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_mint_cookie: &GovernedMintCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
instruction_override: F,
|
||||
signers_override: Option<&[&Keypair]>,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
|
@ -1043,6 +1054,7 @@ impl GovernanceProgramTest {
|
|||
&realm_cookie.address,
|
||||
&governed_mint_cookie.address,
|
||||
&governed_mint_cookie.mint_authority.pubkey(),
|
||||
&token_owner_record_cookie.address,
|
||||
&self.context.payer.pubkey(),
|
||||
config.clone(),
|
||||
governed_mint_cookie.transfer_mint_authority,
|
||||
|
@ -1083,10 +1095,12 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_token_cookie: &GovernedTokenCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
self.with_token_governance_using_instruction(
|
||||
realm_cookie,
|
||||
governed_token_cookie,
|
||||
&token_owner_record_cookie,
|
||||
NopOverride,
|
||||
None,
|
||||
)
|
||||
|
@ -1098,6 +1112,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
realm_cookie: &RealmCookie,
|
||||
governed_token_cookie: &GovernedTokenCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
instruction_override: F,
|
||||
signers_override: Option<&[&Keypair]>,
|
||||
) -> Result<GovernanceCookie, ProgramError> {
|
||||
|
@ -1108,6 +1123,7 @@ impl GovernanceProgramTest {
|
|||
&realm_cookie.address,
|
||||
&governed_token_cookie.address,
|
||||
&governed_token_cookie.token_owner.pubkey(),
|
||||
&token_owner_record_cookie.address,
|
||||
&self.context.payer.pubkey(),
|
||||
config.clone(),
|
||||
governed_token_cookie.transfer_token_owner,
|
||||
|
@ -1146,7 +1162,7 @@ impl GovernanceProgramTest {
|
|||
#[allow(dead_code)]
|
||||
pub async fn with_proposal(
|
||||
&mut self,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
governance_cookie: &mut GovernanceCookie,
|
||||
) -> Result<ProposalCookie, ProgramError> {
|
||||
self.with_proposal_using_instruction(
|
||||
|
@ -1160,7 +1176,7 @@ impl GovernanceProgramTest {
|
|||
#[allow(dead_code)]
|
||||
pub async fn with_signed_off_proposal(
|
||||
&mut self,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
governance_cookie: &mut GovernanceCookie,
|
||||
) -> Result<ProposalCookie, ProgramError> {
|
||||
let proposal_cookie = self
|
||||
|
@ -1180,7 +1196,7 @@ impl GovernanceProgramTest {
|
|||
#[allow(dead_code)]
|
||||
pub async fn with_proposal_using_instruction<F: Fn(&mut Instruction)>(
|
||||
&mut self,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
governance_cookie: &mut GovernanceCookie,
|
||||
instruction_override: F,
|
||||
) -> Result<ProposalCookie, ProgramError> {
|
||||
|
@ -1264,7 +1280,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_signatory(
|
||||
&mut self,
|
||||
proposal_cookie: &ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<SignatoryRecordCookie, ProgramError> {
|
||||
let signatory = Keypair::new();
|
||||
|
||||
|
@ -1309,7 +1325,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn remove_signatory(
|
||||
&mut self,
|
||||
proposal_cookie: &ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
signatory_record_cookie: &SignatoryRecordCookie,
|
||||
) -> Result<(), ProgramError> {
|
||||
let remove_signatory_instruction = remove_signatory(
|
||||
|
@ -1394,7 +1410,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn relinquish_vote(
|
||||
&mut self,
|
||||
proposal_cookie: &ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<(), ProgramError> {
|
||||
self.relinquish_vote_using_instruction(
|
||||
proposal_cookie,
|
||||
|
@ -1408,7 +1424,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn relinquish_vote_using_instruction<F: Fn(&mut Instruction)>(
|
||||
&mut self,
|
||||
proposal_cookie: &ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
instruction_override: F,
|
||||
) -> Result<(), ProgramError> {
|
||||
let mut relinquish_vote_instruction = relinquish_vote(
|
||||
|
@ -1436,7 +1452,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn cancel_proposal(
|
||||
&mut self,
|
||||
proposal_cookie: &ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<(), ProgramError> {
|
||||
let cancel_proposal_instruction = cancel_proposal(
|
||||
&self.program_id,
|
||||
|
@ -1458,7 +1474,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_cast_vote(
|
||||
&mut self,
|
||||
proposal_cookie: &ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
vote: Vote,
|
||||
) -> Result<VoteRecordCookie, ProgramError> {
|
||||
let vote_instruction = cast_vote(
|
||||
|
@ -1512,7 +1528,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_set_governance_config_instruction(
|
||||
&mut self,
|
||||
proposal_cookie: &mut ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
governance_config: &GovernanceConfig,
|
||||
) -> Result<ProposalInstructionCookie, ProgramError> {
|
||||
let mut set_governance_config_ix = set_governance_config(
|
||||
|
@ -1535,7 +1551,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
governed_mint_cookie: &GovernedMintCookie,
|
||||
proposal_cookie: &mut ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
index: Option<u16>,
|
||||
) -> Result<ProposalInstructionCookie, ProgramError> {
|
||||
let token_account_keypair = Keypair::new();
|
||||
|
@ -1570,7 +1586,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
governed_token_cookie: &GovernedTokenCookie,
|
||||
proposal_cookie: &mut ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
index: Option<u16>,
|
||||
) -> Result<ProposalInstructionCookie, ProgramError> {
|
||||
let token_account_keypair = Keypair::new();
|
||||
|
@ -1605,7 +1621,7 @@ impl GovernanceProgramTest {
|
|||
&mut self,
|
||||
governance_cookie: &GovernanceCookie,
|
||||
proposal_cookie: &mut ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
) -> Result<ProposalInstructionCookie, ProgramError> {
|
||||
let program_buffer_keypair = Keypair::new();
|
||||
let buffer_authority_keypair = Keypair::new();
|
||||
|
@ -1671,7 +1687,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_nop_instruction(
|
||||
&mut self,
|
||||
proposal_cookie: &mut ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
index: Option<u16>,
|
||||
) -> Result<ProposalInstructionCookie, ProgramError> {
|
||||
// Create NOP instruction as a placeholder
|
||||
|
@ -1695,7 +1711,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn with_instruction(
|
||||
&mut self,
|
||||
proposal_cookie: &mut ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
index: Option<u16>,
|
||||
instruction: &mut Instruction,
|
||||
) -> Result<ProposalInstructionCookie, ProgramError> {
|
||||
|
@ -1764,7 +1780,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn remove_instruction(
|
||||
&mut self,
|
||||
proposal_cookie: &mut ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
proposal_instruction_cookie: &ProposalInstructionCookie,
|
||||
) -> Result<(), ProgramError> {
|
||||
let remove_instruction_instruction = remove_instruction(
|
||||
|
@ -1808,7 +1824,7 @@ impl GovernanceProgramTest {
|
|||
pub async fn flag_instruction_error(
|
||||
&mut self,
|
||||
proposal_cookie: &ProposalCookie,
|
||||
token_owner_record_cookie: &TokeOwnerRecordCookie,
|
||||
token_owner_record_cookie: &TokenOwnerRecordCookie,
|
||||
proposal_instruction_cookie: &ProposalInstructionCookie,
|
||||
) -> Result<(), ProgramError> {
|
||||
let governance_authority = token_owner_record_cookie.get_governance_authority();
|
||||
|
|
Loading…
Reference in New Issue