@@ -11,9 +11,7 @@ use crate::{
11
11
error:: { CommonError , SvmError } ,
12
12
event:: FundsDeposited ,
13
13
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} ,
17
15
} ;
18
16
19
17
#[ event_cpi]
@@ -25,7 +23,7 @@ use crate::{
25
23
output_token: Pubkey ,
26
24
input_amount: u64 ,
27
25
output_amount: u64 ,
28
- destination_chain_id: u64
26
+ destination_chain_id: u64 ,
29
27
) ]
30
28
pub struct Deposit < ' info > {
31
29
#[ account( mut ) ]
@@ -38,9 +36,6 @@ pub struct Deposit<'info> {
38
36
) ]
39
37
pub state : Account < ' info , State > ,
40
38
41
- /// CHECK: PDA derived with seeds ["delegate", seed_hash]; used as a CPI signer.
42
- pub delegate : UncheckedAccount < ' info > ,
43
-
44
39
#[ account(
45
40
seeds = [ b"route" , input_token. as_ref( ) , state. seed. to_le_bytes( ) . as_ref( ) , destination_chain_id. to_le_bytes( ) . as_ref( ) ] ,
46
41
bump,
@@ -88,14 +83,15 @@ pub fn _deposit(
88
83
fill_deadline : u32 ,
89
84
exclusivity_parameter : u32 ,
90
85
message : Vec < u8 > ,
91
- delegate_seed_hash : [ u8 ; 32 ] ,
92
86
) -> Result < ( ) > {
93
87
let state = & mut ctx. accounts . state ;
88
+
94
89
let current_time = get_current_time ( state) ?;
95
90
96
91
if current_time. checked_sub ( quote_timestamp) . unwrap_or ( u32:: MAX ) > state. deposit_quote_time_buffer {
97
92
return err ! ( CommonError :: InvalidQuoteTimestamp ) ;
98
93
}
94
+
99
95
if fill_deadline > current_time + state. fill_deadline_buffer {
100
96
return err ! ( CommonError :: InvalidFillDeadline ) ;
101
97
}
@@ -105,20 +101,21 @@ pub fn _deposit(
105
101
if exclusivity_deadline <= MAX_EXCLUSIVITY_PERIOD_SECONDS {
106
102
exclusivity_deadline += current_time;
107
103
}
104
+
108
105
if exclusive_relayer == Pubkey :: default ( ) {
109
106
return err ! ( CommonError :: InvalidExclusiveRelayer ) ;
110
107
}
111
108
}
112
109
113
- // Depositor must have delegated input_amount to the delegate PDA
110
+ // Depositor must have delegated input_amount to the state PDA.
114
111
transfer_from (
115
112
& ctx. accounts . depositor_token_account ,
116
113
& ctx. accounts . vault ,
117
114
input_amount,
118
- & ctx. accounts . delegate ,
115
+ state,
116
+ ctx. bumps . state ,
119
117
& ctx. accounts . mint ,
120
118
& ctx. accounts . token_program ,
121
- delegate_seed_hash,
122
119
) ?;
123
120
124
121
let mut applied_deposit_id = deposit_id;
@@ -162,22 +159,6 @@ pub fn deposit(
162
159
exclusivity_parameter : u32 ,
163
160
message : Vec < u8 > ,
164
161
) -> 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
- ) ;
181
162
_deposit (
182
163
ctx,
183
164
depositor,
@@ -193,7 +174,6 @@ pub fn deposit(
193
174
fill_deadline,
194
175
exclusivity_parameter,
195
176
message,
196
- seed_hash,
197
177
) ?;
198
178
199
179
Ok ( ( ) )
@@ -215,22 +195,7 @@ pub fn deposit_now(
215
195
) -> Result < ( ) > {
216
196
let state = & mut ctx. accounts . state ;
217
197
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 (
234
199
ctx,
235
200
depositor,
236
201
recipient,
@@ -240,12 +205,10 @@ pub fn deposit_now(
240
205
output_amount,
241
206
destination_chain_id,
242
207
exclusive_relayer,
243
- ZERO_DEPOSIT_ID , // ZERO_DEPOSIT_ID informs internal function to use state.number_of_deposits as id.
244
208
current_time,
245
209
current_time + fill_deadline_offset,
246
210
exclusivity_period,
247
211
message,
248
- seed_hash,
249
212
) ?;
250
213
251
214
Ok ( ( ) )
@@ -269,22 +232,6 @@ pub fn unsafe_deposit(
269
232
) -> Result < ( ) > {
270
233
// Calculate the unsafe deposit ID as a [u8; 32]
271
234
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
- ) ;
288
235
_deposit (
289
236
ctx,
290
237
depositor,
@@ -300,7 +247,6 @@ pub fn unsafe_deposit(
300
247
fill_deadline,
301
248
exclusivity_parameter,
302
249
message,
303
- seed_hash,
304
250
) ?;
305
251
306
252
Ok ( ( ) )
0 commit comments