use cpi context
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
use anchor_lang::prelude::*;
|
||||
use anchor_lang::solana_program::{program::invoke_signed, system_instruction};
|
||||
use anchor_lang::system_program::{self, Transfer};
|
||||
use crate::state::{EscrowAccount, EscrowState};
|
||||
use crate::error::EscrowError;
|
||||
|
||||
@@ -42,17 +42,16 @@ pub fn handler(ctx: Context<Complete>) -> 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.seller.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.seller.to_account_info(),
|
||||
},
|
||||
&[&[b"vault", escrow_key.as_ref(), &[vault_bump]]],
|
||||
),
|
||||
&[
|
||||
ctx.accounts.vault.to_account_info(),
|
||||
ctx.accounts.seller.to_account_info(),
|
||||
],
|
||||
&[&[b"vault", escrow_key.as_ref(), &[vault_bump]]],
|
||||
vault_balance,
|
||||
)?;
|
||||
|
||||
Ok(())
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use anchor_lang::prelude::*;
|
||||
use anchor_lang::solana_program::{program::invoke, system_instruction};
|
||||
use anchor_lang::system_program::{self, Transfer};
|
||||
use crate::state::{EscrowAccount, EscrowState};
|
||||
use crate::error::EscrowError;
|
||||
|
||||
@@ -31,16 +31,15 @@ pub struct Deposit<'info> {
|
||||
pub fn handler(ctx: Context<Deposit>) -> Result<()> {
|
||||
let amount = ctx.accounts.escrow_account.amount;
|
||||
|
||||
invoke(
|
||||
&system_instruction::transfer(
|
||||
ctx.accounts.buyer.to_account_info().key,
|
||||
ctx.accounts.vault.to_account_info().key,
|
||||
amount,
|
||||
system_program::transfer(
|
||||
CpiContext::new(
|
||||
system_program::ID,
|
||||
Transfer {
|
||||
from: ctx.accounts.buyer.to_account_info(),
|
||||
to: ctx.accounts.vault.to_account_info(),
|
||||
},
|
||||
),
|
||||
&[
|
||||
ctx.accounts.buyer.to_account_info(),
|
||||
ctx.accounts.vault.to_account_info(),
|
||||
],
|
||||
amount,
|
||||
)?;
|
||||
|
||||
ctx.accounts.escrow_account.state = EscrowState::Active;
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
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 anchor_lang::system_program::{self, Transfer};
|
||||
use anchor_lang::prelude::*;
|
||||
use descro_ext_resolvers::state::Ruling;
|
||||
|
||||
#[derive(Accounts)]
|
||||
|
||||
Reference in New Issue
Block a user