From 4b31ddf7c3a752ef47f408bc4473a8c5234b5eba Mon Sep 17 00:00:00 2001 From: thesn10 <38666407+thesn10@users.noreply.github.com> Date: Mon, 18 May 2026 23:13:15 +0200 Subject: [PATCH] use cpi context --- programs/descro/src/instructions/resolve.rs | 28 ++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/programs/descro/src/instructions/resolve.rs b/programs/descro/src/instructions/resolve.rs index 5377acb..a9e196c 100644 --- a/programs/descro/src/instructions/resolve.rs +++ b/programs/descro/src/instructions/resolve.rs @@ -1,8 +1,9 @@ -use anchor_lang::prelude::*; -use anchor_lang::solana_program::{program::invoke_signed, system_instruction}; -use descro_ext_resolvers::state::Ruling; -use crate::state::{EscrowAccount, EscrowState, Winner}; use crate::error::EscrowError; +use crate::state::{EscrowAccount, EscrowState, Winner}; +use anchor_lang::solana_program::{program::invoke_signed, system_instruction}; +use anchor_lang::system_program::Transfer; +use anchor_lang::{prelude::*, system_program}; +use descro_ext_resolvers::state::Ruling; #[derive(Accounts)] pub struct Resolve<'info> { @@ -78,17 +79,16 @@ pub fn handler(ctx: Context, winner: Winner) -> Result<()> { let vault_bump = ctx.accounts.escrow_account.vault_bump; let vault_balance = ctx.accounts.vault.to_account_info().lamports(); - invoke_signed( - &system_instruction::transfer( - ctx.accounts.vault.to_account_info().key, - ctx.accounts.winner.to_account_info().key, - vault_balance, + system_program::transfer( + CpiContext::new_with_signer( + system_program::ID, + Transfer { + from: ctx.accounts.vault.to_account_info(), + to: ctx.accounts.winner.to_account_info(), + }, + &[&[b"vault", escrow_key.as_ref(), &[vault_bump]]], ), - &[ - ctx.accounts.vault.to_account_info(), - ctx.accounts.winner.to_account_info(), - ], - &[&[b"vault", escrow_key.as_ref(), &[vault_bump]]], + vault_balance, )?; // Update resolver stats if the entry is registered in the registry