diff --git a/.changeset/spicy-swans-impress.md b/.changeset/spicy-swans-impress.md new file mode 100644 index 00000000..596d8554 --- /dev/null +++ b/.changeset/spicy-swans-impress.md @@ -0,0 +1,6 @@ +--- +"@treasure-dev/tdk-react": patch +"@treasure-dev/tdk-core": patch +--- + +Skip extra user session fetch on login diff --git a/packages/core/src/connect/login.ts b/packages/core/src/connect/login.ts index 75f10193..0a52b2e8 100644 --- a/packages/core/src/connect/login.ts +++ b/packages/core/src/connect/login.ts @@ -208,6 +208,7 @@ export const logIn = async (params: ConnectWalletConfig & ConnectConfig) => { wallet, chainId, tdk, + sessions: user.allActiveSigners, options: sessionOptions, }); } diff --git a/packages/core/src/connect/session.ts b/packages/core/src/connect/session.ts index 9e14ce97..80355b68 100644 --- a/packages/core/src/connect/session.ts +++ b/packages/core/src/connect/session.ts @@ -129,12 +129,14 @@ export const startUserSession = async ({ wallet, chainId, tdk, + sessions: userSessions, options, }: { client: TreasureConnectClient; wallet: Wallet | undefined; chainId: number; tdk: TDKAPI; + sessions?: Session[]; options: SessionOptions; }) => { // Skip session creation if not required by app @@ -146,7 +148,7 @@ export const startUserSession = async ({ const walletChainId = wallet?.getChain()?.id; // Skip session creation if user has an active session already - const sessions = await tdk.user.getSessions({ chainId }); + const sessions = userSessions ?? (await tdk.user.getSessions({ chainId })); const hasActiveSession = validateSession({ ...options, sessions, diff --git a/packages/react/src/contexts/treasure.tsx b/packages/react/src/contexts/treasure.tsx index 331990e6..7ed4b4a3 100644 --- a/packages/react/src/contexts/treasure.tsx +++ b/packages/react/src/contexts/treasure.tsx @@ -168,6 +168,7 @@ const TreasureProviderInner = ({ wallet, chainId: chain.id, tdk, + sessions: nextUser.allActiveSigners, options: sessionOptions, }); }