From cf472b71183143c727fd5b0fd2c57844b8ae19ed Mon Sep 17 00:00:00 2001 From: "shuwen.wu" Date: Wed, 2 Sep 2026 18:04:25 +0800 Subject: [PATCH 1/4] fix: resolve logic bug and mutable default argument in getUserDataForFid - Remove redundant else branch that was overwriting acc[type] with the same value - Fix mutable default argument by creating requestOptions object fresh each time - Properly merge user-provided hubRequestOptions with default api_key header --- packages/frames.js/src/getUserDataForFid.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/frames.js/src/getUserDataForFid.ts b/packages/frames.js/src/getUserDataForFid.ts index 9d0af3b4..993791c4 100644 --- a/packages/frames.js/src/getUserDataForFid.ts +++ b/packages/frames.js/src/getUserDataForFid.ts @@ -16,16 +16,22 @@ export async function getUserDataForFid< }): Promise { const { hubHttpUrl = DEFAULT_HUB_API_URL, - hubRequestOptions = { - headers: { - api_key: DEFAULT_HUB_API_KEY, - }, - }, + hubRequestOptions = {}, } = options; + const requestHeaders = { + ...(hubRequestOptions.headers ?? {}), + api_key: DEFAULT_HUB_API_KEY, + }; + + const requestOptions = { + ...hubRequestOptions, + headers: requestHeaders, + }; + const userDataResponse = await fetch( `${hubHttpUrl}/v1/userDataByFid?fid=${fid}`, - hubRequestOptions + requestOptions ); const { messages } = (await userDataResponse @@ -61,8 +67,6 @@ export async function getUserDataForFid< if (foundValue && foundValue.timestamp < timestamp) { acc[type] = { value, timestamp }; - } else { - acc[type] = { value, timestamp }; } } catch (error) { // eslint-disable-next-line no-console -- provide feedback to user From 2bfc9ddc70125f21d5c65f6e0a5b19ea1fb88f08 Mon Sep 17 00:00:00 2001 From: "shuwen.wu" Date: Wed, 2 Sep 2026 18:05:06 +0800 Subject: [PATCH 2/4] fix: resolve mutable default argument in getAddressForFid Create fresh requestOptions object each time to avoid shared mutable default. Properly merge user-provided hubRequestOptions with default api_key header. --- packages/frames.js/src/getAddressForFid.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/frames.js/src/getAddressForFid.ts b/packages/frames.js/src/getAddressForFid.ts index 8360e89e..117dd372 100644 --- a/packages/frames.js/src/getAddressForFid.ts +++ b/packages/frames.js/src/getAddressForFid.ts @@ -21,16 +21,20 @@ export async function getAddressForFid< const { fallbackToCustodyAddress = true, hubHttpUrl = DEFAULT_HUB_API_URL, - hubRequestOptions = { - headers: { - api_key: DEFAULT_HUB_API_KEY, - }, - }, + hubRequestOptions = {}, } = options; + const requestOptions = { + ...hubRequestOptions, + headers: { + ...(hubRequestOptions.headers ?? {}), + api_key: DEFAULT_HUB_API_KEY, + }, + }; + const response = await fetch( `${hubHttpUrl}/v1/verificationsByFid?fid=${fid}`, - hubRequestOptions + requestOptions ); const { messages } = (await response .clone() From 96e311581c86ffa2bf4c4de6cbe62f027b3573e5 Mon Sep 17 00:00:00 2001 From: dajiaohuang Date: Fri, 4 Sep 2026 14:06:24 +0800 Subject: [PATCH 3/4] fix: retain first user data value --- packages/frames.js/src/getUserDataForFid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frames.js/src/getUserDataForFid.ts b/packages/frames.js/src/getUserDataForFid.ts index 993791c4..4d7b8f7d 100644 --- a/packages/frames.js/src/getUserDataForFid.ts +++ b/packages/frames.js/src/getUserDataForFid.ts @@ -65,7 +65,7 @@ export async function getUserDataForFid< const { type, value } = message.data.userDataBody; const foundValue = acc[type]; - if (foundValue && foundValue.timestamp < timestamp) { + if (!foundValue || foundValue.timestamp < timestamp) { acc[type] = { value, timestamp }; } } catch (error) { From 3c30b23f8c38aa54c8f4c03eaa249610b29f1ab0 Mon Sep 17 00:00:00 2001 From: dajiaohuang Date: Fri, 4 Sep 2026 14:36:58 +0800 Subject: [PATCH 4/4] fix: preserve custom hub API keys --- packages/frames.js/src/getUserDataForFid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frames.js/src/getUserDataForFid.ts b/packages/frames.js/src/getUserDataForFid.ts index 4d7b8f7d..943aba37 100644 --- a/packages/frames.js/src/getUserDataForFid.ts +++ b/packages/frames.js/src/getUserDataForFid.ts @@ -20,8 +20,8 @@ export async function getUserDataForFid< } = options; const requestHeaders = { - ...(hubRequestOptions.headers ?? {}), api_key: DEFAULT_HUB_API_KEY, + ...(hubRequestOptions.headers ?? {}), }; const requestOptions = {