@@ -9,7 +9,12 @@ pub mod tools;
9
9
10
10
// Export current SDK types for downstream users building with a different SDK version
11
11
pub use solana_program;
12
- use solana_program:: { instruction:: Instruction , program_pack:: Pack , pubkey:: Pubkey } ;
12
+ use solana_program:: {
13
+ instruction:: { AccountMeta , Instruction } ,
14
+ program_pack:: Pack ,
15
+ pubkey:: Pubkey ,
16
+ sysvar,
17
+ } ;
13
18
14
19
solana_program:: declare_id!( "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" ) ;
15
20
@@ -62,17 +67,28 @@ fn get_associated_token_address_and_bump_seed_internal(
62
67
/// 5. `[]` SPL Token program
63
68
///
64
69
#[ deprecated(
65
- since = "1.0.4 " ,
70
+ since = "1.0.5 " ,
66
71
note = "please use `instruction::create_associated_token_account` instead"
67
72
) ]
68
73
pub fn create_associated_token_account (
69
74
funding_address : & Pubkey ,
70
75
wallet_address : & Pubkey ,
71
76
spl_token_mint_address : & Pubkey ,
72
77
) -> Instruction {
73
- instruction:: create_associated_token_account (
74
- funding_address,
75
- wallet_address,
76
- spl_token_mint_address,
77
- )
78
+ let associated_account_address =
79
+ get_associated_token_address ( wallet_address, spl_token_mint_address) ;
80
+
81
+ Instruction {
82
+ program_id : id ( ) ,
83
+ accounts : vec ! [
84
+ AccountMeta :: new( * funding_address, true ) ,
85
+ AccountMeta :: new( associated_account_address, false ) ,
86
+ AccountMeta :: new_readonly( * wallet_address, false ) ,
87
+ AccountMeta :: new_readonly( * spl_token_mint_address, false ) ,
88
+ AccountMeta :: new_readonly( solana_program:: system_program:: id( ) , false ) ,
89
+ AccountMeta :: new_readonly( spl_token:: id( ) , false ) ,
90
+ AccountMeta :: new_readonly( sysvar:: rent:: id( ) , false ) ,
91
+ ] ,
92
+ data : vec ! [ ] ,
93
+ }
78
94
}
0 commit comments