@@ -43,7 +43,7 @@ impl PackedUserOperation {
43
43
44
44
let account_gas_limits =
45
45
concat_u128_be ( user_op. verification_gas_limit , user_op. call_gas_limit ) ;
46
- let gas_fees = concat_u128_be ( user_op. max_fee_per_gas , user_op. max_priority_fee_per_gas ) ;
46
+ let gas_fees = concat_u128_be ( user_op. max_priority_fee_per_gas , user_op. max_fee_per_gas ) ;
47
47
48
48
let paymaster_and_data = if let Some ( paymaster) = user_op. paymaster {
49
49
let mut paymaster_and_data = paymaster. bytes ( ) . into_vec ( ) ;
@@ -262,7 +262,25 @@ mod tests {
262
262
let chain_id = U256 :: from ( 11155111u64 ) ;
263
263
let entry_point = Address :: from ( "0x0000000071727De22E5E9d8BAf0edAc6f37da032" ) ;
264
264
265
- let user_op = PackedUserOperation {
265
+ let user_op = UserOperationV0_7 {
266
+ sender : Address :: from ( "0xb292Cf4a8E1fF21Ac27C4f94071Cd02C022C414b" ) ,
267
+ nonce : U256 :: from_str ( "0xF83D07238A7C8814A48535035602123AD6DBFA63000000000000000000000001" ) . unwrap ( ) ,
268
+ factory : None ,
269
+ factory_data : Vec :: default ( ) ,
270
+ call_data : "e9ae5c530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001d8b292cf4a8e1ff21ac27c4f94071cd02c022c414b00000000000000000000000000000000000000000000000000000000000000009517e29f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ad6330089d9a1fe89f4020292e1afe9969a5a2fc00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018e2fbe8980000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002372912728f93ab3daaaebea4f87e6e28476d987000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000" . decode_hex ( ) . unwrap ( ) ,
271
+ call_gas_limit : 1231285u128 ,
272
+ verification_gas_limit : 70908u128 ,
273
+ pre_verification_gas : U256 :: from ( 48916u64 ) ,
274
+ max_fee_per_gas : 71308035098u128 ,
275
+ max_priority_fee_per_gas : 1380000000u128 ,
276
+ paymaster : None ,
277
+ paymaster_verification_gas_limit : 0 ,
278
+ paymaster_post_op_gas_limit : 0 ,
279
+ paymaster_data : Vec :: default ( ) ,
280
+ entry_point,
281
+ } ;
282
+
283
+ let packed_user_op = PackedUserOperation {
266
284
sender : Address :: from ( "0xb292Cf4a8E1fF21Ac27C4f94071Cd02C022C414b" ) ,
267
285
nonce : U256 :: from_str ( "0xF83D07238A7C8814A48535035602123AD6DBFA63000000000000000000000001" ) . unwrap ( ) ,
268
286
init_code : Vec :: default ( ) ,
@@ -273,14 +291,18 @@ mod tests {
273
291
paymaster_and_data : Vec :: default ( ) ,
274
292
} ;
275
293
276
- let encoded = hex:: encode ( user_op. encode ( ) , false ) ;
294
+ let encoded_from_user_op = hex:: encode ( user_op. encode ( chain_id) , false ) ;
295
+ let encoded_from_packed_user_op = hex:: encode ( packed_user_op. encode ( ) , false ) ;
277
296
let expected = "000000000000000000000000b292cf4a8e1ff21ac27c4f94071cd02c022c414bf83d07238a7c8814a48535035602123ad6dbfa63000000000000000000000001c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470f1b8863cae5d3c89d78ce8e239e0c416de4c9224226a78fbb6c4af63ed0eebf7000000000000000000000000000114fc0000000000000000000000000012c9b5000000000000000000000000000000000000000000000000000000000000bf14000000000000000000000000524121000000000000000000000000109a4a441ac5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" ;
278
- assert_eq ! ( encoded, expected) ;
297
+ assert_eq ! ( encoded_from_user_op, expected) ;
298
+ assert_eq ! ( encoded_from_packed_user_op, expected) ;
279
299
280
- let pre_hash = user_op. pre_hash ( chain_id, entry_point) ;
300
+ let pre_hash_from_user_op = user_op. pre_hash ( chain_id) ;
301
+ let pre_hash_from_packed_user_op = packed_user_op. pre_hash ( chain_id, entry_point) ;
281
302
let expected_pre_hash =
282
303
H256 :: from ( "e486401370d145766c3cf7ba089553214a1230d38662ae532c9b62eb6dadcf7e" ) ;
283
- assert_eq ! ( pre_hash, expected_pre_hash) ;
304
+ assert_eq ! ( pre_hash_from_user_op, expected_pre_hash) ;
305
+ assert_eq ! ( pre_hash_from_packed_user_op, expected_pre_hash) ;
284
306
}
285
307
286
308
#[ test]
0 commit comments