@@ -11,9 +11,7 @@ use crate::{
1111 error:: { CommonError , SvmError } ,
1212 event:: FundsDeposited ,
1313 state:: { Route , State } ,
14- utils:: {
15- derive_seed_hash, get_current_time, get_unsafe_deposit_id, transfer_from, DepositNowSeedData , DepositSeedData ,
16- } ,
14+ utils:: { get_current_time, get_unsafe_deposit_id, transfer_from} ,
1715} ;
1816
1917#[ event_cpi]
@@ -25,7 +23,7 @@ use crate::{
2523 output_token: Pubkey ,
2624 input_amount: u64 ,
2725 output_amount: u64 ,
28- destination_chain_id: u64
26+ destination_chain_id: u64 ,
2927) ]
3028pub struct Deposit < ' info > {
3129 #[ account( mut ) ]
@@ -38,9 +36,6 @@ pub struct Deposit<'info> {
3836 ) ]
3937 pub state : Account < ' info , State > ,
4038
41- /// CHECK: PDA derived with seeds ["delegate", seed_hash]; used as a CPI signer.
42- pub delegate : UncheckedAccount < ' info > ,
43-
4439 #[ account(
4540 seeds = [ b"route" , input_token. as_ref( ) , state. seed. to_le_bytes( ) . as_ref( ) , destination_chain_id. to_le_bytes( ) . as_ref( ) ] ,
4641 bump,
@@ -88,14 +83,15 @@ pub fn _deposit(
8883 fill_deadline : u32 ,
8984 exclusivity_parameter : u32 ,
9085 message : Vec < u8 > ,
91- delegate_seed_hash : [ u8 ; 32 ] ,
9286) -> Result < ( ) > {
9387 let state = & mut ctx. accounts . state ;
88+
9489 let current_time = get_current_time ( state) ?;
9590
9691 if current_time. checked_sub ( quote_timestamp) . unwrap_or ( u32:: MAX ) > state. deposit_quote_time_buffer {
9792 return err ! ( CommonError :: InvalidQuoteTimestamp ) ;
9893 }
94+
9995 if fill_deadline > current_time + state. fill_deadline_buffer {
10096 return err ! ( CommonError :: InvalidFillDeadline ) ;
10197 }
@@ -105,20 +101,21 @@ pub fn _deposit(
105101 if exclusivity_deadline <= MAX_EXCLUSIVITY_PERIOD_SECONDS {
106102 exclusivity_deadline += current_time;
107103 }
104+
108105 if exclusive_relayer == Pubkey :: default ( ) {
109106 return err ! ( CommonError :: InvalidExclusiveRelayer ) ;
110107 }
111108 }
112109
113- // Depositor must have delegated input_amount to the delegate PDA
110+ // Depositor must have delegated input_amount to the state PDA.
114111 transfer_from (
115112 & ctx. accounts . depositor_token_account ,
116113 & ctx. accounts . vault ,
117114 input_amount,
118- & ctx. accounts . delegate ,
115+ state,
116+ ctx. bumps . state ,
119117 & ctx. accounts . mint ,
120118 & ctx. accounts . token_program ,
121- delegate_seed_hash,
122119 ) ?;
123120
124121 let mut applied_deposit_id = deposit_id;
@@ -162,22 +159,6 @@ pub fn deposit(
162159 exclusivity_parameter : u32 ,
163160 message : Vec < u8 > ,
164161) -> Result < ( ) > {
165- let seed_hash = derive_seed_hash (
166- & ( DepositSeedData {
167- depositor,
168- recipient,
169- input_token,
170- output_token,
171- input_amount,
172- output_amount,
173- destination_chain_id,
174- exclusive_relayer,
175- quote_timestamp,
176- fill_deadline,
177- exclusivity_parameter,
178- message : & message,
179- } ) ,
180- ) ;
181162 _deposit (
182163 ctx,
183164 depositor,
@@ -193,7 +174,6 @@ pub fn deposit(
193174 fill_deadline,
194175 exclusivity_parameter,
195176 message,
196- seed_hash,
197177 ) ?;
198178
199179 Ok ( ( ) )
@@ -215,22 +195,7 @@ pub fn deposit_now(
215195) -> Result < ( ) > {
216196 let state = & mut ctx. accounts . state ;
217197 let current_time = get_current_time ( state) ?;
218- let seed_hash = derive_seed_hash (
219- & ( DepositNowSeedData {
220- depositor,
221- recipient,
222- input_token,
223- output_token,
224- input_amount,
225- output_amount,
226- destination_chain_id,
227- exclusive_relayer,
228- fill_deadline_offset,
229- exclusivity_period,
230- message : & message,
231- } ) ,
232- ) ;
233- _deposit (
198+ deposit (
234199 ctx,
235200 depositor,
236201 recipient,
@@ -240,12 +205,10 @@ pub fn deposit_now(
240205 output_amount,
241206 destination_chain_id,
242207 exclusive_relayer,
243- ZERO_DEPOSIT_ID , // ZERO_DEPOSIT_ID informs internal function to use state.number_of_deposits as id.
244208 current_time,
245209 current_time + fill_deadline_offset,
246210 exclusivity_period,
247211 message,
248- seed_hash,
249212 ) ?;
250213
251214 Ok ( ( ) )
@@ -269,22 +232,6 @@ pub fn unsafe_deposit(
269232) -> Result < ( ) > {
270233 // Calculate the unsafe deposit ID as a [u8; 32]
271234 let deposit_id = get_unsafe_deposit_id ( ctx. accounts . signer . key ( ) , depositor, deposit_nonce) ;
272- let seed_hash = derive_seed_hash (
273- & ( DepositSeedData {
274- depositor,
275- recipient,
276- input_token,
277- output_token,
278- input_amount,
279- output_amount,
280- destination_chain_id,
281- exclusive_relayer,
282- quote_timestamp,
283- fill_deadline,
284- exclusivity_parameter,
285- message : & message,
286- } ) ,
287- ) ;
288235 _deposit (
289236 ctx,
290237 depositor,
@@ -300,7 +247,6 @@ pub fn unsafe_deposit(
300247 fill_deadline,
301248 exclusivity_parameter,
302249 message,
303- seed_hash,
304250 ) ?;
305251
306252 Ok ( ( ) )
0 commit comments