Skip to content

Commit 05424c4

Browse files
committed
Update migrator to do SOL transfer
1 parent 9d4516b commit 05424c4

2 files changed

Lines changed: 24 additions & 2 deletions

File tree

programs/autocrat_migrator/src/lib.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
44
use anchor_lang::prelude::*;
55
use anchor_spl::token::{transfer, Token, TokenAccount, Transfer};
6+
use anchor_lang::solana_program;
67

7-
declare_id!("8C4WEdr54tBPdtmeTPUBuZX5bgUMZw4XdvpNoNaQ6NwR");
8+
declare_id!("miqe4jQYw11JE9o5AbZGYXm1dsWYbCoiGqZSqkYK5sV");
89

910
#[program]
1011
pub mod autocrat_migrator {
@@ -35,6 +36,22 @@ pub mod autocrat_migrator {
3536
ctx.accounts.from1.amount,
3637
)?;
3738

39+
let rent = Rent::get()?;
40+
41+
let lamport_transfer = solana_program::system_instruction::transfer(
42+
&ctx.accounts.authority.key(),
43+
&ctx.accounts.lamport_receiver.key(),
44+
ctx.accounts.authority.get_lamports().saturating_sub(rent.minimum_balance(0)),
45+
);
46+
47+
solana_program::program::invoke(
48+
&lamport_transfer,
49+
&[
50+
ctx.accounts.authority.to_account_info(),
51+
ctx.accounts.lamport_receiver.to_account_info(),
52+
]
53+
)?;
54+
3855
Ok(())
3956
}
4057
}
@@ -52,4 +69,8 @@ pub struct MultiTransfer2<'info> {
5269
from1: Account<'info, TokenAccount>,
5370
#[account(mut)]
5471
to1: Account<'info, TokenAccount>,
72+
system_program: Program<'info, System>,
73+
/// CHECK: no r/w, just lamport sub
74+
#[account(mut)]
75+
lamport_receiver: UncheckedAccount<'info>,
5576
}

tests/migrator.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { assert } from "chai";
1010
import { startAnchor } from "solana-bankrun";
1111

1212
const AUTOCRAT_MIGRATOR_PROGRAM_ID = new PublicKey(
13-
"8C4WEdr54tBPdtmeTPUBuZX5bgUMZw4XdvpNoNaQ6NwR"
13+
"miqe4jQYw11JE9o5AbZGYXm1dsWYbCoiGqZSqkYK5sV"
1414
);
1515

1616
import { AutocratMigrator } from "../target/types/autocrat_migrator";
@@ -102,6 +102,7 @@ describe("autocrat_migrator", async function () {
102102
to0,
103103
from1,
104104
to1,
105+
lamportReceiver: receiver.publicKey,
105106
})
106107
.rpc();
107108

0 commit comments

Comments
 (0)