@@ -295,8 +295,11 @@ pub mod pallet {
295295 path. extend_from_slice ( b"0x" ) ;
296296 path. extend_from_slice ( hex:: encode ( requester. encode ( ) ) . as_bytes ( ) ) ;
297297
298+ // CAIP-2 chain ID (e.g., "eip155:1" for Ethereum mainnet)
299+ let caip2_id = alloc:: format!( "eip155:{}" , tx. chain_id) ;
300+
298301 // Derive canonical request ID and compare with user-supplied one.
299- let req_id = Self :: generate_request_id ( & pallet_acc, & rlp, 60 , 0 , & path, ECDSA , ETHEREUM , b"" ) ;
302+ let req_id = Self :: generate_request_id ( & pallet_acc, & rlp, & caip2_id , 0 , & path, ECDSA , ETHEREUM , b"" ) ;
300303 ensure ! ( req_id == request_id, Error :: <T >:: InvalidRequestId ) ;
301304 ensure ! (
302305 UsedRequestIds :: <T >:: get( request_id) . is_none( ) ,
@@ -328,24 +331,22 @@ pub mod pallet {
328331 Preservation :: Expendable ,
329332 ) ?;
330333
331- let explorer_schema = Vec :: < u8 > :: new ( ) ;
332- let callback_schema =
334+ let output_deserialization_schema = Vec :: < u8 > :: new ( ) ;
335+ let respond_serialization_schema =
333336 serde_json:: to_vec ( & serde_json:: json!( "bool" ) ) . map_err ( |_| Error :: < T > :: Serialization ) ?;
334337
335338 // Submit signing request to SigNet.
336339 pallet_signet:: Pallet :: < T > :: sign_bidirectional (
337340 frame_system:: RawOrigin :: Signed ( pallet_acc. clone ( ) ) . into ( ) ,
338- BoundedVec :: < u8 , ConstU32 < 65536 > > :: try_from ( rlp) . map_err ( |_| Error :: < T > :: Serialization ) ?,
339- 60 ,
341+ BoundedVec :: try_from ( rlp) . map_err ( |_| Error :: < T > :: Serialization ) ?,
342+ BoundedVec :: try_from ( caip2_id . into_bytes ( ) ) . map_err ( |_| Error :: < T > :: Serialization ) ? ,
340343 0 ,
341344 BoundedVec :: try_from ( path) . map_err ( |_| Error :: < T > :: Serialization ) ?,
342345 BoundedVec :: try_from ( ECDSA . to_vec ( ) ) . map_err ( |_| Error :: < T > :: Serialization ) ?,
343346 BoundedVec :: try_from ( ETHEREUM . to_vec ( ) ) . map_err ( |_| Error :: < T > :: Serialization ) ?,
344- BoundedVec :: try_from ( Vec :: new ( ) ) . map_err ( |_| Error :: < T > :: Serialization ) ?,
345- pallet_signet:: SerializationFormat :: AbiJson ,
346- BoundedVec :: try_from ( explorer_schema) . map_err ( |_| Error :: < T > :: Serialization ) ?,
347- pallet_signet:: SerializationFormat :: Borsh ,
348- BoundedVec :: try_from ( callback_schema) . map_err ( |_| Error :: < T > :: Serialization ) ?,
347+ BoundedVec :: try_from ( vec ! [ ] ) . map_err ( |_| Error :: < T > :: Serialization ) ?,
348+ BoundedVec :: try_from ( output_deserialization_schema) . map_err ( |_| Error :: < T > :: Serialization ) ?,
349+ BoundedVec :: try_from ( respond_serialization_schema) . map_err ( |_| Error :: < T > :: Serialization ) ?,
349350 ) ?;
350351
351352 // Mark request ID as used and update tracked faucet balance.
@@ -426,7 +427,7 @@ pub mod pallet {
426427 /// Derive a deterministic request ID from the given parameters.
427428 ///
428429 /// The ID is computed as:
429- /// - Encode `(sender_ss58, transaction_data, slip44_chain_id , key_version,
430+ /// - Encode `(sender_ss58, transaction_data, caip2_id , key_version,
430431 /// path_str, algo_str, dest_str, params_str)` using Solidity's
431432 /// `abi_encode_packed`.
432433 /// - Apply `keccak256` to the result.
@@ -437,7 +438,7 @@ pub mod pallet {
437438 pub fn generate_request_id (
438439 sender : & T :: AccountId ,
439440 transaction_data : & [ u8 ] ,
440- slip44_chain_id : u32 ,
441+ caip2_id : & str ,
441442 key_version : u32 ,
442443 path : & [ u8 ] ,
443444 algo : & [ u8 ] ,
@@ -458,7 +459,7 @@ pub mod pallet {
458459 let encoded = (
459460 sender_ss58. as_str ( ) ,
460461 transaction_data,
461- slip44_chain_id ,
462+ caip2_id ,
462463 key_version,
463464 core:: str:: from_utf8 ( path) . unwrap_or ( "" ) ,
464465 core:: str:: from_utf8 ( algo) . unwrap_or ( "" ) ,
0 commit comments