@@ -43,7 +43,7 @@ impl PackedUserOperation {
4343
4444        let  account_gas_limits =
4545            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 ) ; 
4747
4848        let  paymaster_and_data = if  let  Some ( paymaster)  = user_op. paymaster  { 
4949            let  mut  paymaster_and_data = paymaster. bytes ( ) . into_vec ( ) ; 
@@ -262,7 +262,25 @@ mod tests {
262262        let  chain_id = U256 :: from ( 11155111u64 ) ; 
263263        let  entry_point = Address :: from ( "0x0000000071727De22E5E9d8BAf0edAc6f37da032" ) ; 
264264
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  { 
266284            sender :  Address :: from ( "0xb292Cf4a8E1fF21Ac27C4f94071Cd02C022C414b" ) , 
267285            nonce :  U256 :: from_str ( "0xF83D07238A7C8814A48535035602123AD6DBFA63000000000000000000000001" ) . unwrap ( ) , 
268286            init_code :  Vec :: default ( ) , 
@@ -273,14 +291,18 @@ mod tests {
273291            paymaster_and_data :  Vec :: default ( ) , 
274292        } ; 
275293
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 ) ; 
277296        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) ; 
279299
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) ; 
281302        let  expected_pre_hash =
282303            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) ; 
284306    } 
285307
286308    #[ test]  
0 commit comments