Skip to content

Commit d600712

Browse files
committed
fix: use bincode for WASM route serialization
1 parent d516d80 commit d600712

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

bins/validator-node/src/wasm_executor.rs

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)