33
44use anchor_lang:: prelude:: * ;
55use 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]
1011pub 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}
0 commit comments