@@ -899,8 +899,26 @@ impl WasmChallengeExecutor {
899899 ) -> Result < platform_challenge_sdk:: RouteResponse > {
900900 use platform_challenge_sdk:: RouteResponse ;
901901
902+ // Convert RouteRequest to WasmRouteRequest and serialize with bincode
903+ let wasm_request = platform_challenge_sdk_wasm:: WasmRouteRequest {
904+ method : request. method . clone ( ) ,
905+ path : request. path . clone ( ) ,
906+ params : request
907+ . params
908+ . iter ( )
909+ . map ( |( k, v) | ( k. clone ( ) , v. clone ( ) ) )
910+ . collect ( ) ,
911+ query : request
912+ . query
913+ . iter ( )
914+ . map ( |( k, v) | ( k. clone ( ) , v. clone ( ) ) )
915+ . collect ( ) ,
916+ body : serde_json:: to_vec ( & request. body ) . unwrap_or_default ( ) ,
917+ auth_hotkey : request. auth_hotkey . clone ( ) ,
918+ } ;
919+
902920 let request_data =
903- serde_json :: to_vec ( & request ) . context ( "Failed to serialize RouteRequest " ) ?;
921+ bincode :: serialize ( & wasm_request ) . context ( "Failed to serialize WasmRouteRequest " ) ?;
904922
905923 let network_policy = NetworkPolicy :: default ( ) ;
906924 let sandbox_policy = SandboxPolicy :: default ( ) ;
@@ -912,10 +930,23 @@ impl WasmChallengeExecutor {
912930 & request_data,
913931 ) ?;
914932
915- let response: RouteResponse = serde_json:: from_slice ( & response_data)
916- . context ( "Failed to deserialize RouteResponse" ) ?;
933+ // Deserialize WasmRouteResponse from bincode
934+ let wasm_response: platform_challenge_sdk_wasm:: WasmRouteResponse =
935+ bincode:: deserialize ( & response_data)
936+ . context ( "Failed to deserialize WasmRouteResponse" ) ?;
937+
938+ // Convert to RouteResponse
939+ let body: serde_json:: Value = if wasm_response. body . is_empty ( ) {
940+ serde_json:: Value :: Null
941+ } else {
942+ serde_json:: from_slice ( & wasm_response. body ) . unwrap_or ( serde_json:: Value :: Null )
943+ } ;
917944
918- Ok ( response)
945+ Ok ( RouteResponse {
946+ status : wasm_response. status ,
947+ headers : std:: collections:: HashMap :: new ( ) ,
948+ body,
949+ } )
919950 }
920951
921952 pub fn execute_get_weights ( & self , module_path : & str ) -> Result < Vec < ( u16 , u16 ) > > {
0 commit comments