Skip to content

Commit

Permalink
AUDIT: correct expected writable accounts (#59)
Browse files Browse the repository at this point in the history
  • Loading branch information
coachchucksol authored Jan 17, 2025
1 parent 77e3cfe commit f0eac5d
Show file tree
Hide file tree
Showing 13 changed files with 34 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export type DistributeBaseNcnRewardRouteInstruction<
? WritableAccount<TAccountBaseRewardReceiver>
: TAccountBaseRewardReceiver,
TAccountNcnRewardRouter extends string
? WritableAccount<TAccountNcnRewardRouter>
? ReadonlyAccount<TAccountNcnRewardRouter>
: TAccountNcnRewardRouter,
TAccountNcnRewardReceiver extends string
? WritableAccount<TAccountNcnRewardReceiver>
Expand Down Expand Up @@ -203,7 +203,10 @@ export function getDistributeBaseNcnRewardRouteInstruction<
value: input.baseRewardReceiver ?? null,
isWritable: true,
},
ncnRewardRouter: { value: input.ncnRewardRouter ?? null, isWritable: true },
ncnRewardRouter: {
value: input.ncnRewardRouter ?? null,
isWritable: false,
},
ncnRewardReceiver: {
value: input.ncnRewardReceiver ?? null,
isWritable: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export type DistributeNcnVaultRewardsInstruction<
? ReadonlyAccount<TAccountOperator>
: TAccountOperator,
TAccountVault extends string
? WritableAccount<TAccountVault>
? ReadonlyAccount<TAccountVault>
: TAccountVault,
TAccountVaultAta extends string
? WritableAccount<TAccountVaultAta>
Expand Down Expand Up @@ -282,7 +282,7 @@ export function getDistributeNcnVaultRewardsInstruction<
config: { value: input.config ?? null, isWritable: false },
ncn: { value: input.ncn ?? null, isWritable: false },
operator: { value: input.operator ?? null, isWritable: false },
vault: { value: input.vault ?? null, isWritable: true },
vault: { value: input.vault ?? null, isWritable: false },
vaultAta: { value: input.vaultAta ?? null, isWritable: true },
operatorSnapshot: {
value: input.operatorSnapshot ?? null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export type InitializeOperatorSnapshotInstruction<
? ReadonlyAccount<TAccountNcnOperatorState>
: TAccountNcnOperatorState,
TAccountEpochSnapshot extends string
? WritableAccount<TAccountEpochSnapshot>
? ReadonlyAccount<TAccountEpochSnapshot>
: TAccountEpochSnapshot,
TAccountOperatorSnapshot extends string
? WritableAccount<TAccountOperatorSnapshot>
Expand Down Expand Up @@ -198,7 +198,7 @@ export function getInitializeOperatorSnapshotInstruction<
value: input.ncnOperatorState ?? null,
isWritable: false,
},
epochSnapshot: { value: input.epochSnapshot ?? null, isWritable: true },
epochSnapshot: { value: input.epochSnapshot ?? null, isWritable: false },
operatorSnapshot: {
value: input.operatorSnapshot ?? null,
isWritable: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ impl DistributeBaseNcnRewardRoute {
self.base_reward_receiver,
false,
));
accounts.push(solana_program::instruction::AccountMeta::new(
accounts.push(solana_program::instruction::AccountMeta::new_readonly(
self.ncn_reward_router,
false,
));
Expand Down Expand Up @@ -127,7 +127,7 @@ pub struct DistributeBaseNcnRewardRouteInstructionArgs {
/// 3. `[]` operator
/// 4. `[writable]` base_reward_router
/// 5. `[writable]` base_reward_receiver
/// 6. `[writable]` ncn_reward_router
/// 6. `[]` ncn_reward_router
/// 7. `[writable]` ncn_reward_receiver
/// 8. `[optional]` system_program (default to `11111111111111111111111111111111`)
#[derive(Clone, Debug, Default)]
Expand Down Expand Up @@ -396,7 +396,7 @@ impl<'a, 'b> DistributeBaseNcnRewardRouteCpi<'a, 'b> {
*self.base_reward_receiver.key,
false,
));
accounts.push(solana_program::instruction::AccountMeta::new(
accounts.push(solana_program::instruction::AccountMeta::new_readonly(
*self.ncn_reward_router.key,
false,
));
Expand Down Expand Up @@ -459,7 +459,7 @@ impl<'a, 'b> DistributeBaseNcnRewardRouteCpi<'a, 'b> {
/// 3. `[]` operator
/// 4. `[writable]` base_reward_router
/// 5. `[writable]` base_reward_receiver
/// 6. `[writable]` ncn_reward_router
/// 6. `[]` ncn_reward_router
/// 7. `[writable]` ncn_reward_receiver
/// 8. `[]` system_program
#[derive(Clone, Debug)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ impl DistributeNcnVaultRewards {
self.operator,
false,
));
accounts.push(solana_program::instruction::AccountMeta::new(
accounts.push(solana_program::instruction::AccountMeta::new_readonly(
self.vault, false,
));
accounts.push(solana_program::instruction::AccountMeta::new(
Expand Down Expand Up @@ -178,7 +178,7 @@ pub struct DistributeNcnVaultRewardsInstructionArgs {
/// 1. `[]` config
/// 2. `[]` ncn
/// 3. `[]` operator
/// 4. `[writable]` vault
/// 4. `[]` vault
/// 5. `[writable]` vault_ata
/// 6. `[writable]` operator_snapshot
/// 7. `[writable]` ncn_reward_router
Expand Down Expand Up @@ -576,7 +576,7 @@ impl<'a, 'b> DistributeNcnVaultRewardsCpi<'a, 'b> {
*self.operator.key,
false,
));
accounts.push(solana_program::instruction::AccountMeta::new(
accounts.push(solana_program::instruction::AccountMeta::new_readonly(
*self.vault.key,
false,
));
Expand Down Expand Up @@ -690,7 +690,7 @@ impl<'a, 'b> DistributeNcnVaultRewardsCpi<'a, 'b> {
/// 1. `[]` config
/// 2. `[]` ncn
/// 3. `[]` operator
/// 4. `[writable]` vault
/// 4. `[]` vault
/// 5. `[writable]` vault_ata
/// 6. `[writable]` operator_snapshot
/// 7. `[writable]` ncn_reward_router
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ impl InitializeOperatorSnapshot {
self.ncn_operator_state,
false,
));
accounts.push(solana_program::instruction::AccountMeta::new(
accounts.push(solana_program::instruction::AccountMeta::new_readonly(
self.epoch_snapshot,
false,
));
Expand Down Expand Up @@ -124,7 +124,7 @@ pub struct InitializeOperatorSnapshotInstructionArgs {
/// 2. `[]` ncn
/// 3. `[]` operator
/// 4. `[]` ncn_operator_state
/// 5. `[writable]` epoch_snapshot
/// 5. `[]` epoch_snapshot
/// 6. `[writable]` operator_snapshot
/// 7. `[writable, signer]` payer
/// 8. `[optional]` system_program (default to `11111111111111111111111111111111`)
Expand Down Expand Up @@ -370,7 +370,7 @@ impl<'a, 'b> InitializeOperatorSnapshotCpi<'a, 'b> {
*self.ncn_operator_state.key,
false,
));
accounts.push(solana_program::instruction::AccountMeta::new(
accounts.push(solana_program::instruction::AccountMeta::new_readonly(
*self.epoch_snapshot.key,
false,
));
Expand Down Expand Up @@ -436,7 +436,7 @@ impl<'a, 'b> InitializeOperatorSnapshotCpi<'a, 'b> {
/// 2. `[]` ncn
/// 3. `[]` operator
/// 4. `[]` ncn_operator_state
/// 5. `[writable]` epoch_snapshot
/// 5. `[]` epoch_snapshot
/// 6. `[writable]` operator_snapshot
/// 7. `[writable, signer]` payer
/// 8. `[]` system_program
Expand Down
6 changes: 3 additions & 3 deletions core/src/instruction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ pub enum TipRouterInstruction {
#[account(2, name = "ncn")]
#[account(3, name = "operator")]
#[account(4, name = "ncn_operator_state")]
#[account(5, writable, name = "epoch_snapshot")]
#[account(5, name = "epoch_snapshot")]
#[account(6, writable, name = "operator_snapshot")]
#[account(7, writable, signer, name = "payer")]
#[account(8, name = "system_program")]
Expand Down Expand Up @@ -316,7 +316,7 @@ pub enum TipRouterInstruction {
#[account(3, name = "operator")]
#[account(4, writable, name = "base_reward_router")]
#[account(5, writable, name = "base_reward_receiver")]
#[account(6, writable, name = "ncn_reward_router")]
#[account(6, name = "ncn_reward_router")]
#[account(7, writable, name = "ncn_reward_receiver")]
#[account(8, name = "system_program")]
DistributeBaseNcnRewardRoute{
Expand Down Expand Up @@ -353,7 +353,7 @@ pub enum TipRouterInstruction {
#[account(1, name = "config")]
#[account(2, name = "ncn")]
#[account(3, name = "operator")]
#[account(4, writable, name = "vault")]
#[account(4, name = "vault")]
#[account(5, writable, name = "vault_ata")]
#[account(6, writable, name = "operator_snapshot")]
#[account(7, writable, name = "ncn_reward_router")]
Expand Down
6 changes: 3 additions & 3 deletions idl/jito_tip_router.json
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@
},
{
"name": "epochSnapshot",
"isMut": true,
"isMut": false,
"isSigner": false
},
{
Expand Down Expand Up @@ -1259,7 +1259,7 @@
},
{
"name": "ncnRewardRouter",
"isMut": true,
"isMut": false,
"isSigner": false
},
{
Expand Down Expand Up @@ -1417,7 +1417,7 @@
},
{
"name": "vault",
"isMut": true,
"isMut": false,
"isSigner": false
},
{
Expand Down
2 changes: 1 addition & 1 deletion program/src/admin_set_tie_breaker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ pub fn process_admin_set_tie_breaker(

EpochState::load(program_id, ncn.key, epoch, epoch_state, true)?;
NcnConfig::load(program_id, ncn.key, ncn_config, false)?;
BallotBox::load(program_id, ncn.key, epoch, ballot_box, false)?;
BallotBox::load(program_id, ncn.key, epoch, ballot_box, true)?;
Ncn::load(&jito_restaking_program::id(), ncn, false)?;
load_signer(tie_breaker_admin, false)?;

Expand Down
4 changes: 2 additions & 2 deletions program/src/distribute_base_ncn_reward_route.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ pub fn process_distribute_base_ncn_reward_route(
ncn.key,
epoch,
ncn_reward_router,
true,
false,
)?;
BaseRewardReceiver::load(program_id, base_reward_receiver, ncn.key, epoch, true)?;
NcnRewardReceiver::load(
Expand All @@ -52,7 +52,7 @@ pub fn process_distribute_base_ncn_reward_route(
operator.key,
ncn.key,
epoch,
true,
false,
)?;

load_system_program(system_program)?;
Expand Down
2 changes: 1 addition & 1 deletion program/src/distribute_ncn_vault_rewards.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ pub fn process_distribute_ncn_vault_rewards(
EpochState::load(program_id, ncn.key, epoch, epoch_state, true)?;
Ncn::load(&jito_restaking_program::id(), ncn, false)?;
Operator::load(&jito_restaking_program::id(), operator, false)?;
Vault::load(&jito_vault_program::id(), vault, true)?;
Vault::load(&jito_vault_program::id(), vault, false)?;
OperatorSnapshot::load(
program_id,
operator.key,
Expand Down
3 changes: 1 addition & 2 deletions program/src/initialize_epoch_snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ pub fn process_initialize_epoch_snapshot(

load_system_account(epoch_snapshot, true)?;
load_system_program(system_program)?;
//TODO check that it is not writable
load_signer(payer, false)?;
load_signer(payer, true)?;

let current_slot = Clock::get()?.slot;
let ncn_epoch = epoch;
Expand Down
5 changes: 2 additions & 3 deletions program/src/initialize_operator_snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,11 @@ pub fn process_initialize_operator_snapshot(
operator,
false,
)?;
EpochSnapshot::load(program_id, ncn.key, epoch, epoch_snapshot, true)?;
EpochSnapshot::load(program_id, ncn.key, epoch, epoch_snapshot, false)?;

load_system_account(operator_snapshot, true)?;
load_system_program(system_program)?;
//TODO check that it is not writable
load_signer(payer, false)?;
load_signer(payer, true)?;

let (operator_snapshot_pubkey, operator_snapshot_bump, mut operator_snapshot_seeds) =
OperatorSnapshot::find_program_address(program_id, operator.key, ncn.key, epoch);
Expand Down

0 comments on commit f0eac5d

Please sign in to comment.