@@ -26,15 +26,29 @@ use light_sdk::{cpi::CpiSigner, derive_light_cpi_signer};
26
26
pub const LIGHT_CPI_SIGNER : CpiSigner =
27
27
derive_light_cpi_signer ! ( "5p1t1GAaKtK1FKCh5Hd2Gu8JCu3eREhJm4Q2qYfTEPYK" ) ;
28
28
29
+ #[ derive( Clone , AnchorSerialize , AnchorDeserialize ) ]
30
+ pub struct TokenParams {
31
+ pub deposit_amount : u64 ,
32
+ pub depositing_token_metas : Vec < TokenAccountMeta > ,
33
+ pub mint : Pubkey ,
34
+ pub escrowed_token_meta : TokenAccountMeta ,
35
+ pub recipient_bump : u8 ,
36
+ }
37
+
38
+ #[ derive( Clone , AnchorSerialize , AnchorDeserialize ) ]
39
+ pub struct PdaParams {
40
+ pub account_meta : CompressedAccountMeta ,
41
+ pub existing_amount : u64 ,
42
+ }
43
+
29
44
#[ program]
30
45
pub mod sdk_token_test {
31
- use anchor_lang:: solana_program:: pubkey;
32
46
use light_sdk:: address:: v1:: derive_address;
33
47
use light_sdk_types:: CpiAccountsConfig ;
34
48
35
49
use crate :: {
36
50
process_create_compressed_account:: deposit_tokens,
37
- process_update_depost:: { deposit_additional_tokens , process_update_escrow_pda } ,
51
+ process_update_depost:: process_update_deposit ,
38
52
} ;
39
53
40
54
use super :: * ;
@@ -160,56 +174,19 @@ pub mod sdk_token_test {
160
174
proof : LightValidityProof ,
161
175
output_tree_index : u8 ,
162
176
output_tree_queue_index : u8 ,
163
- deposit_amount : u64 ,
164
- depositing_token_metas : Vec < TokenAccountMeta > ,
165
- mint : Pubkey ,
166
- escrowed_token_meta : TokenAccountMeta ,
167
177
system_accounts_start_offset : u8 ,
168
- account_meta : CompressedAccountMeta ,
169
- existing_amount : u64 ,
170
- recipient_bump : u8 ,
178
+ token_params : TokenParams ,
179
+ pda_params : PdaParams ,
171
180
) -> Result < ( ) > {
172
- // It makes sense to parse accounts once.
173
- let config = CpiAccountsConfig {
174
- cpi_signer : crate :: LIGHT_CPI_SIGNER ,
175
- // TODO: add sanity check that account is a cpi context account.
176
- cpi_context : true ,
177
- // TODO: add sanity check that account is a sol_pool_pda account.
178
- sol_pool_pda : false ,
179
- sol_compression_recipient : false ,
180
- } ;
181
-
182
- let ( _token_account_infos, system_account_infos) = ctx
183
- . remaining_accounts
184
- . split_at ( system_accounts_start_offset as usize ) ;
185
- // TODO: figure out why the offsets are wrong.
186
- // Could add with pre account infos Option<u8>
187
- let light_cpi_accounts = CpiAccounts :: try_new_with_config (
188
- ctx. accounts . signer . as_ref ( ) ,
189
- system_account_infos,
190
- config,
191
- )
192
- . unwrap ( ) ;
193
-
194
- let recipient = ctx. accounts . authority . key ( ) ;
195
- deposit_additional_tokens (
196
- light_cpi_accounts,
197
- depositing_token_metas,
198
- escrowed_token_meta,
181
+ process_update_deposit (
182
+ ctx,
199
183
output_tree_index,
200
184
output_tree_queue_index,
201
- mint,
202
- recipient,
203
- recipient_bump,
204
- deposit_amount,
205
- account_meta. address ,
206
- ctx. remaining_accounts ,
207
- ctx. accounts . authority . to_account_info ( ) ,
208
- existing_amount,
209
- account_meta,
210
185
proof,
211
- ) ?;
212
- Ok ( ( ) )
186
+ system_accounts_start_offset,
187
+ token_params,
188
+ pda_params,
189
+ )
213
190
}
214
191
}
215
192
0 commit comments