Skip to content

Commit bf8c04a

Browse files
authored
CLI: Fix create_and_add_test_vault command (#164)
- `InitializeVault` instruction require some more accounts
1 parent ccdddf4 commit bf8c04a

File tree

3 files changed

+67
-34
lines changed

3 files changed

+67
-34
lines changed

cli/src/args.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,13 @@ pub enum ProgramCommand {
418418
help = "Reward fee BPS"
419419
)]
420420
reward_fee_bps: u16,
421+
#[arg(
422+
long,
423+
env = "INITIALIZE_TOKEN_AMOUNT",
424+
default_value_t = 100,
425+
help = "Initialize token amount"
426+
)]
427+
initialize_token_amount: u64,
421428
},
422429
}
423430

cli/src/handler.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -870,9 +870,16 @@ impl CliHandler {
870870
deposit_fee_bps,
871871
withdrawal_fee_bps,
872872
reward_fee_bps,
873+
initialize_token_amount,
873874
} => {
874-
create_and_add_test_vault(self, deposit_fee_bps, withdrawal_fee_bps, reward_fee_bps)
875-
.await
875+
create_and_add_test_vault(
876+
self,
877+
deposit_fee_bps,
878+
withdrawal_fee_bps,
879+
reward_fee_bps,
880+
initialize_token_amount,
881+
)
882+
.await
876883
}
877884
}
878885
}

cli/src/instructions.rs

Lines changed: 51 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ use jito_vault_client::{
7575
types::WithdrawalAllocationMethod,
7676
};
7777
use jito_vault_core::{
78-
config::Config as VaultConfig, vault::Vault, vault_ncn_ticket::VaultNcnTicket,
79-
vault_operator_delegation::VaultOperatorDelegation,
78+
burn_vault::BurnVault, config::Config as VaultConfig, vault::Vault,
79+
vault_ncn_ticket::VaultNcnTicket, vault_operator_delegation::VaultOperatorDelegation,
8080
vault_update_state_tracker::VaultUpdateStateTracker,
8181
};
8282
use log::info;
@@ -96,7 +96,9 @@ use solana_sdk::{
9696
system_program,
9797
transaction::Transaction,
9898
};
99-
use spl_associated_token_account::get_associated_token_address;
99+
use spl_associated_token_account::{
100+
get_associated_token_address, instruction::create_associated_token_account_idempotent,
101+
};
100102
use switchboard_on_demand_client::{CrossbarClient, FetchUpdateParams, PullFeed, QueueAccountData};
101103
use tokio::time::sleep;
102104

@@ -3039,16 +3041,17 @@ pub async fn create_test_ncn(handler: &CliHandler) -> Result<()> {
30393041
let (config, _, _) = RestakingConfig::find_program_address(&handler.restaking_program_id);
30403042

30413043
let mut ix_builder = InitializeNcnBuilder::new();
3042-
ix_builder
3044+
let mut ix = ix_builder
30433045
.config(config)
30443046
.admin(keypair.pubkey())
30453047
.base(base.pubkey())
30463048
.ncn(ncn)
30473049
.instruction();
3050+
ix.program_id = handler.restaking_program_id;
30483051

30493052
send_and_log_transaction(
30503053
handler,
3051-
&[ix_builder.instruction()],
3054+
&[ix],
30523055
&[&base],
30533056
"Created Test Ncn",
30543057
&[format!("NCN: {:?}", ncn)],
@@ -3143,6 +3146,7 @@ pub async fn create_and_add_test_vault(
31433146
deposit_fee_bps: u16,
31443147
withdrawal_fee_bps: u16,
31453148
reward_fee_bps: u16,
3149+
initialize_token_amount: u64,
31463150
) -> Result<()> {
31473151
let keypair = handler.keypair();
31483152

@@ -3209,42 +3213,57 @@ pub async fn create_and_add_test_vault(
32093213
)
32103214
.await?;
32113215

3216+
let vault_st_token_account = get_associated_token_address(&vault, &token_mint.pubkey());
3217+
3218+
let (burn_vault, _, _) =
3219+
BurnVault::find_program_address(&handler.vault_program_id, &base.pubkey());
3220+
3221+
let burn_vault_vrt_token_account =
3222+
get_associated_token_address(&burn_vault, &vrt_mint.pubkey());
3223+
32123224
// -------------- Initialize Vault --------------
3213-
let initialize_vault_ix = InitializeVaultBuilder::new()
3225+
let mut initialize_vault_ix_builder = InitializeVaultBuilder::new();
3226+
initialize_vault_ix_builder
32143227
.config(vault_config)
3215-
.admin(keypair.pubkey())
3216-
.base(base.pubkey())
32173228
.vault(vault)
32183229
.vrt_mint(vrt_mint.pubkey())
32193230
.st_mint(token_mint.pubkey())
3231+
.admin(keypair.pubkey())
3232+
.base(base.pubkey())
3233+
.admin_st_token_account(admin_ata)
3234+
.vault_st_token_account(vault_st_token_account)
3235+
.burn_vault(burn_vault)
3236+
.burn_vault_vrt_token_account(burn_vault_vrt_token_account)
3237+
.associated_token_program(spl_associated_token_account::id())
32203238
.reward_fee_bps(reward_fee_bps)
32213239
.withdrawal_fee_bps(withdrawal_fee_bps)
32223240
.decimals(9)
32233241
.deposit_fee_bps(deposit_fee_bps)
32243242
.system_program(system_program::id())
3225-
.instruction();
3243+
.initialize_token_amount(initialize_token_amount);
3244+
let mut initialize_vault_ix = initialize_vault_ix_builder.instruction();
3245+
initialize_vault_ix.program_id = handler.vault_program_id;
32263246

3227-
let create_vault_ata_ix =
3228-
spl_associated_token_account::instruction::create_associated_token_account_idempotent(
3229-
&keypair.pubkey(),
3230-
&vault,
3231-
&token_mint.pubkey(),
3232-
&handler.token_program_id,
3233-
);
3234-
let create_admin_vrt_ata_ix =
3235-
spl_associated_token_account::instruction::create_associated_token_account_idempotent(
3236-
&keypair.pubkey(),
3237-
&keypair.pubkey(),
3238-
&vrt_mint.pubkey(),
3239-
&handler.token_program_id,
3240-
);
3241-
let create_vault_vrt_ata_ix =
3242-
spl_associated_token_account::instruction::create_associated_token_account_idempotent(
3243-
&keypair.pubkey(),
3244-
&vault,
3245-
&vrt_mint.pubkey(),
3246-
&handler.token_program_id,
3247-
);
3247+
let create_admin_vrt_ata_ix = create_associated_token_account_idempotent(
3248+
&keypair.pubkey(),
3249+
&keypair.pubkey(),
3250+
&vrt_mint.pubkey(),
3251+
&handler.token_program_id,
3252+
);
3253+
3254+
let admin_st_token_account_ix = create_associated_token_account_idempotent(
3255+
&keypair.pubkey(),
3256+
&keypair.pubkey(),
3257+
&token_mint.pubkey(),
3258+
&spl_token::ID,
3259+
);
3260+
3261+
let vault_st_token_account_ix = create_associated_token_account_idempotent(
3262+
&keypair.pubkey(),
3263+
&vault,
3264+
&token_mint.pubkey(),
3265+
&spl_token::ID,
3266+
);
32483267

32493268
let vault_token_ata = get_associated_token_address(&vault, &token_mint.pubkey());
32503269
let admin_token_ata = get_associated_token_address(&keypair.pubkey(), &token_mint.pubkey());
@@ -3266,10 +3285,10 @@ pub async fn create_and_add_test_vault(
32663285
send_and_log_transaction(
32673286
handler,
32683287
&[
3288+
admin_st_token_account_ix,
3289+
vault_st_token_account_ix,
32693290
initialize_vault_ix,
3270-
create_vault_ata_ix,
32713291
create_admin_vrt_ata_ix,
3272-
create_vault_vrt_ata_ix,
32733292
mint_to_ix,
32743293
],
32753294
&[&base, &vrt_mint],

0 commit comments

Comments
 (0)