From bd963e75f0670b9b280815ff365cbf59fba05455 Mon Sep 17 00:00:00 2001 From: Joaquim Verges Date: Thu, 17 Apr 2025 11:21:14 +1200 Subject: [PATCH] [thirdweb] Simplify RPC request handling --- .changeset/orange-icons-hide.md | 5 +++++ packages/thirdweb/src/rpc/fetch-rpc.ts | 22 ++-------------------- packages/thirdweb/src/rpc/rpc.ts | 6 +++++- 3 files changed, 12 insertions(+), 21 deletions(-) create mode 100644 .changeset/orange-icons-hide.md diff --git a/.changeset/orange-icons-hide.md b/.changeset/orange-icons-hide.md new file mode 100644 index 00000000000..344374b34e2 --- /dev/null +++ b/.changeset/orange-icons-hide.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +Simplify RPC request handling diff --git a/packages/thirdweb/src/rpc/fetch-rpc.ts b/packages/thirdweb/src/rpc/fetch-rpc.ts index 115f210cc7e..4d5524526bc 100644 --- a/packages/thirdweb/src/rpc/fetch-rpc.ts +++ b/packages/thirdweb/src/rpc/fetch-rpc.ts @@ -78,16 +78,7 @@ export async function fetchRpc( ); } - if (response.headers.get("Content-Type")?.startsWith("application/json")) { - return await response.json(); - } - const text = await response.text(); - try { - return JSON.parse(text); - } catch (err) { - console.error("Error parsing response", err, text); - throw err; - } + return await response.json(); } type FetchSingleRpcOptions = { @@ -121,14 +112,5 @@ export async function fetchSingleRpc( `RPC request failed with status ${response.status} - ${response.statusText}: ${error || "unknown error"}`, ); } - if (response.headers.get("Content-Type")?.startsWith("application/json")) { - return await response.json(); - } - const text = await response.text(); - try { - return JSON.parse(text); - } catch (err) { - console.error("Error parsing response", err, text); - throw err; - } + return await response.json(); } diff --git a/packages/thirdweb/src/rpc/rpc.ts b/packages/thirdweb/src/rpc/rpc.ts index c5dd367bc2b..b3d5bc6a520 100644 --- a/packages/thirdweb/src/rpc/rpc.ts +++ b/packages/thirdweb/src/rpc/rpc.ts @@ -144,7 +144,11 @@ export function getRpcClient( // No response. if (!response) { - inflight.reject(new Error("No response")); + inflight.reject( + new Error( + `No response for index ${index} - all responses: ${stringify(responses)}`, + ), + ); } // Response is an error or error string. else if (response instanceof Error) {