@use-glyph/sdk-react 2.0.1-rc.5 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"PrivyStrategy.js","sources":["../src/context/strategies/PrivyStrategy.tsx"],"sourcesContent":["import {\n SignTypedDataParams,\n UnsignedTransactionRequest,\n useCrossAppAccounts,\n usePrivy,\n WalletWithMetadata\n} from \"@privy-io/react-auth\";\nimport react, { memo, useCallback, useEffect, useState } from \"react\";\nimport { useChainId, useConfig } from \"wagmi\";\nimport { GLYPH_PRIVY_APP_ID, STAGING_GLYPH_PRIVY_APP_ID, WIDGET_API_BASE_URL } from \"../../lib/constants\";\nimport { createLogger, isEthereumAddress } from \"../../lib/utils\";\nimport { BaseGlyphProviderOptions } from \"../../types\";\nimport { createApiFetch, GlyphApiFetch, GlyphContext } from \"../GlyphContext\";\n\nconst logger = createLogger(\"PrivyStrategy\");\n\nconst PrivyStrategy: react.FC<BaseGlyphProviderOptions> = ({\n children,\n glyphUrl,\n onLogin,\n onLogout,\n useStagingTenant\n}) => {\n const [loading, setLoading] = useState<boolean>(true);\n const [apiFetch, setApiFetch] = useState<GlyphApiFetch | null>(null);\n const [walletAddress, setWalletAddress] = useState<string | null>(null);\n const [usesCrossapp, setUsesCrossapp] = useState<boolean>(false);\n const chainId = useChainId();\n\n const {\n ready: privyReady,\n authenticated: privyAuthenticated,\n user: privyUser,\n getAccessToken: getPrivyAccessToken,\n login: privyLogin,\n logout: privyLogout,\n signMessage: privySignMessage,\n signTypedData: privySignTypedData,\n sendTransaction: privySendTransaction,\n } = usePrivy();\n\n const {\n signMessage: crossAppSignMessage,\n signTypedData: crossAppSignTypedData,\n sendTransaction: crossAppSendTransaction\n } = useCrossAppAccounts();\n\n logger.debug(privyReady, privyAuthenticated, !!privyUser);\n\n useEffect(() => {\n // If Privy is not ready, reset widget state (loading: true)\n if (!privyReady) {\n setApiFetch(null);\n setLoading(true);\n return;\n }\n\n // If user is not authenticated, reset widget state (loading: false)\n if (!privyAuthenticated || !privyUser) {\n setApiFetch(null);\n setLoading(false);\n return;\n }\n\n let address: string | undefined;\n\n const privyEvmWallet = privyUser!.linkedAccounts?.find(\n (w) => w.type === \"wallet\" && w.chainType === \"ethereum\" && w.walletClientType === \"privy\"\n ) as WalletWithMetadata | undefined;\n\n const hasPrivyEvmWallet = privyEvmWallet && isEthereumAddress(privyEvmWallet.address);\n if (hasPrivyEvmWallet) logger.debug(\"Privy (main) EVM embedded wallet\", privyEvmWallet.address);\n\n logger.debug(\"finding cross-app accounts...\");\n // Cross-app accounts are always EVM addresses\n const crossAppAccounts = privyUser!.linkedAccounts?.filter?.((account) => account.type === \"cross_app\") || [];\n\n const otherAccounts = crossAppAccounts.filter(\n (account) =>\n account.providerApp?.id !== (useStagingTenant ? STAGING_GLYPH_PRIVY_APP_ID : GLYPH_PRIVY_APP_ID)\n );\n logger.debug(\"linked accounts - non-Glyph\", { accounts: otherAccounts });\n const otherAddresses = otherAccounts.map((account) => account.embeddedWallets[0].address);\n if (otherAddresses.length > 0) {\n address = otherAddresses[0];\n logger.log(\"using cross_app (non-Glyph) account\");\n if (otherAddresses.length > 1) {\n logger.warn(\"too many cross_app accounts\");\n }\n }\n\n const glyphAccounts = crossAppAccounts.filter(\n (account) =>\n account.providerApp?.id === (useStagingTenant ? STAGING_GLYPH_PRIVY_APP_ID : GLYPH_PRIVY_APP_ID)\n );\n logger.debug(\"linked accounts - Glyph\", { accounts: glyphAccounts });\n const glyphAddresses = glyphAccounts.map((account) => account.embeddedWallets[0].address);\n if (glyphAddresses.length > 0) {\n address = glyphAddresses[0];\n logger.log(\"using cross_app (Glyph) account\");\n if (glyphAddresses.length > 1) {\n logger.warn(\"too many cross_app accounts\");\n }\n }\n\n if (address) {\n setUsesCrossapp(true);\n logger.log(\"using cross_app account\", address);\n } else if (hasPrivyEvmWallet) {\n address = privyEvmWallet.address;\n logger.log(\"using Privy (main) EVM embedded wallet\", address);\n }\n\n setWalletAddress(address ?? null);\n\n // Fetch user data from Glyph API\n const fetchUserData = async () => {\n // If no address is found, stop here\n if (!address) {\n logger.error(\"user has no wallet\");\n return;\n }\n\n const glyphApiFetch = createApiFetch(\n glyphUrl || WIDGET_API_BASE_URL,\n async () => (await getPrivyAccessToken())!,\n { \"x-evm-address\": address }\n );\n setApiFetch(() => glyphApiFetch);\n setLoading(false);\n };\n\n fetchUserData();\n }, [\n glyphUrl,\n privyAuthenticated,\n privyReady,\n privyUser,\n useStagingTenant,\n usesCrossapp,\n walletAddress,\n getPrivyAccessToken,\n privyLogout\n ]);\n\n const authenticate = useCallback(async () => {\n await privyLogin();\n onLogin?.();\n }, [onLogin, privyLogin]);\n\n const logout = useCallback(async () => {\n privyLogout();\n onLogout?.();\n }, [onLogout, privyLogout]);\n\n const signMessage = useCallback(\n async ({ message }: { message: string }) => {\n if (!walletAddress) throw new Error(\"No wallet address found\");\n\n return usesCrossapp\n ? crossAppSignMessage(message, { address: walletAddress })\n : (await privySignMessage({ message })).signature;\n },\n [walletAddress, usesCrossapp, crossAppSignMessage, privySignMessage]\n );\n\n const signTypedData = useCallback(\n async ({ data }: { data: SignTypedDataParams }) => {\n if (!walletAddress) throw new Error(\"No wallet address found\");\n return usesCrossapp\n ? crossAppSignTypedData(data, { address: walletAddress })\n : (await privySignTypedData(data)).signature;\n },\n [walletAddress, usesCrossapp, crossAppSignTypedData, privySignTypedData]\n );\n\n const sendTransaction = useCallback(\n async ({ transaction }: { transaction: UnsignedTransactionRequest }) => {\n if (!walletAddress) throw new Error(\"No wallet address found\");\n const tx = { ...transaction, chainId: transaction.chainId || chainId };\n\n return usesCrossapp\n ? crossAppSendTransaction(tx, { address: walletAddress })\n : (await privySendTransaction(tx, { address: walletAddress })).hash;\n },\n [chainId, usesCrossapp, walletAddress, crossAppSendTransaction, privySendTransaction]\n );\n\n\n return (\n <GlyphContext.Provider\n value={{\n ready: privyReady && !loading,\n authenticated: privyReady && privyAuthenticated,\n glyphUrl: glyphUrl as string, // Pass as string to avoid type error (we are passing fallback value in useGlyph hook at a common place)\n login: authenticate,\n logout,\n signMessage,\n signTypedData,\n sendTransaction,\n apiFetch: apiFetch!\n }}\n >\n {children}\n </GlyphContext.Provider>\n );\n};\n\nexport default memo(PrivyStrategy);\n"],"names":["logger","createLogger","PrivyStrategy","children","glyphUrl","onLogin","onLogout","useStagingTenant","loading","setLoading","useState","apiFetch","setApiFetch","walletAddress","setWalletAddress","usesCrossapp","setUsesCrossapp","chainId","useChainId","privyReady","privyAuthenticated","privyUser","getPrivyAccessToken","privyLogin","privyLogout","privySignMessage","privySignTypedData","privySendTransaction","usePrivy","crossAppSignMessage","crossAppSignTypedData","crossAppSendTransaction","useCrossAppAccounts","useEffect","address","privyEvmWallet","w","hasPrivyEvmWallet","isEthereumAddress","crossAppAccounts","account","otherAccounts","STAGING_GLYPH_PRIVY_APP_ID","GLYPH_PRIVY_APP_ID","otherAddresses","glyphAccounts","glyphAddresses","glyphApiFetch","createApiFetch","WIDGET_API_BASE_URL","authenticate","useCallback","logout","signMessage","message","signTypedData","data","sendTransaction","transaction","tx","jsx","GlyphContext","PrivyStrategy$1","memo"],"mappings":"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"}
1
+ {"version":3,"file":"PrivyStrategy.js","sources":["../src/context/strategies/PrivyStrategy.tsx"],"sourcesContent":["import {\n SignTypedDataParams,\n UnsignedTransactionRequest,\n useCrossAppAccounts,\n usePrivy,\n WalletWithMetadata\n} from \"@privy-io/react-auth\";\nimport react, { memo, useCallback, useEffect, useState } from \"react\";\nimport { useChainId } from \"wagmi\";\nimport { GLYPH_PRIVY_APP_ID, STAGING_GLYPH_PRIVY_APP_ID, WIDGET_API_BASE_URL } from \"../../lib/constants\";\nimport { createLogger, isEthereumAddress } from \"../../lib/utils\";\nimport { BaseGlyphProviderOptions } from \"../../types\";\nimport { createApiFetch, GlyphApiFetch, GlyphContext } from \"../GlyphContext\";\n\nconst logger = createLogger(\"PrivyStrategy\");\n\nconst PrivyStrategy: react.FC<BaseGlyphProviderOptions> = ({\n children,\n glyphUrl,\n onLogin,\n onLogout,\n useStagingTenant\n}) => {\n const [loading, setLoading] = useState<boolean>(true);\n const [apiFetch, setApiFetch] = useState<GlyphApiFetch | null>(null);\n const [walletAddress, setWalletAddress] = useState<string | null>(null);\n const [usesCrossapp, setUsesCrossapp] = useState<boolean>(false);\n const chainId = useChainId();\n\n const {\n ready: privyReady,\n authenticated: privyAuthenticated,\n user: privyUser,\n getAccessToken: getPrivyAccessToken,\n login: privyLogin,\n logout: privyLogout,\n signMessage: privySignMessage,\n signTypedData: privySignTypedData,\n sendTransaction: privySendTransaction\n } = usePrivy();\n\n const {\n signMessage: crossAppSignMessage,\n signTypedData: crossAppSignTypedData,\n sendTransaction: crossAppSendTransaction\n } = useCrossAppAccounts();\n\n logger.debug(privyReady, privyAuthenticated, !!privyUser);\n\n useEffect(() => {\n // If Privy is not ready, reset widget state (loading: true)\n if (!privyReady) {\n setApiFetch(null);\n setLoading(true);\n return;\n }\n\n // If user is not authenticated, reset widget state (loading: false)\n if (!privyAuthenticated || !privyUser) {\n setApiFetch(null);\n setLoading(false);\n return;\n }\n\n let address: string | undefined;\n\n const privyEvmWallet = privyUser!.linkedAccounts?.find(\n (w) => w.type === \"wallet\" && w.chainType === \"ethereum\" && w.walletClientType === \"privy\"\n ) as WalletWithMetadata | undefined;\n\n const hasPrivyEvmWallet = privyEvmWallet && isEthereumAddress(privyEvmWallet.address);\n if (hasPrivyEvmWallet) logger.debug(\"Privy (main) EVM embedded wallet\", privyEvmWallet.address);\n\n logger.debug(\"finding cross-app accounts...\");\n // Cross-app accounts are always EVM addresses\n const crossAppAccounts = privyUser!.linkedAccounts?.filter?.((account) => account.type === \"cross_app\") || [];\n\n const otherAccounts = crossAppAccounts.filter(\n (account) =>\n account.providerApp?.id !== (useStagingTenant ? STAGING_GLYPH_PRIVY_APP_ID : GLYPH_PRIVY_APP_ID)\n );\n logger.debug(\"linked accounts - non-Glyph\", { accounts: otherAccounts });\n const otherAddresses = otherAccounts.map((account) => account.embeddedWallets[0].address);\n if (otherAddresses.length > 0) {\n address = otherAddresses[0];\n logger.log(\"using cross_app (non-Glyph) account\");\n if (otherAddresses.length > 1) {\n logger.warn(\"too many cross_app accounts\");\n }\n }\n\n const glyphAccounts = crossAppAccounts.filter(\n (account) =>\n account.providerApp?.id === (useStagingTenant ? STAGING_GLYPH_PRIVY_APP_ID : GLYPH_PRIVY_APP_ID)\n );\n logger.debug(\"linked accounts - Glyph\", { accounts: glyphAccounts });\n const glyphAddresses = glyphAccounts.map((account) => account.embeddedWallets[0].address);\n if (glyphAddresses.length > 0) {\n address = glyphAddresses[0];\n logger.log(\"using cross_app (Glyph) account\");\n if (glyphAddresses.length > 1) {\n logger.warn(\"too many cross_app accounts\");\n }\n }\n\n if (address) {\n setUsesCrossapp(true);\n logger.log(\"using cross_app account\", address);\n } else if (hasPrivyEvmWallet) {\n address = privyEvmWallet.address;\n logger.log(\"using Privy (main) EVM embedded wallet\", address);\n }\n\n setWalletAddress(address ?? null);\n\n // Fetch user data from Glyph API\n const fetchUserData = async () => {\n // If no address is found, stop here\n if (!address) {\n logger.error(\"user has no wallet\");\n return;\n }\n\n const glyphApiFetch = createApiFetch(\n glyphUrl || WIDGET_API_BASE_URL,\n async () => (await getPrivyAccessToken())!,\n { \"x-evm-address\": address }\n );\n setApiFetch(() => glyphApiFetch);\n setLoading(false);\n };\n\n fetchUserData();\n }, [\n glyphUrl,\n privyAuthenticated,\n privyReady,\n privyUser,\n useStagingTenant,\n usesCrossapp,\n walletAddress,\n getPrivyAccessToken,\n privyLogout\n ]);\n\n const authenticate = useCallback(async () => {\n await privyLogin();\n onLogin?.();\n }, [onLogin, privyLogin]);\n\n const logout = useCallback(async () => {\n privyLogout();\n onLogout?.();\n }, [onLogout, privyLogout]);\n\n const signMessage = useCallback(\n async ({ message }: { message: string }) => {\n if (!walletAddress) throw new Error(\"No wallet address found\");\n\n return usesCrossapp\n ? crossAppSignMessage(message, { address: walletAddress })\n : (await privySignMessage({ message })).signature;\n },\n [walletAddress, usesCrossapp, crossAppSignMessage, privySignMessage]\n );\n\n const signTypedData = useCallback(\n async ({ data }: { data: SignTypedDataParams }) => {\n if (!walletAddress) throw new Error(\"No wallet address found\");\n return usesCrossapp\n ? crossAppSignTypedData(data, { address: walletAddress })\n : (await privySignTypedData(data)).signature;\n },\n [walletAddress, usesCrossapp, crossAppSignTypedData, privySignTypedData]\n );\n\n const sendTransaction = useCallback(\n async ({ transaction }: { transaction: UnsignedTransactionRequest }) => {\n if (!walletAddress) throw new Error(\"No wallet address found\");\n const tx = { ...transaction, chainId: transaction.chainId || chainId };\n\n return usesCrossapp\n ? crossAppSendTransaction(tx, { address: walletAddress })\n : (await privySendTransaction(tx, { address: walletAddress })).hash;\n },\n [chainId, usesCrossapp, walletAddress, crossAppSendTransaction, privySendTransaction]\n );\n\n return (\n <GlyphContext.Provider\n value={{\n ready: privyReady && !loading,\n authenticated: privyReady && privyAuthenticated,\n glyphUrl: glyphUrl as string, // Pass as string to avoid type error (we are passing fallback value in useGlyph hook at a common place)\n login: authenticate,\n logout,\n signMessage,\n signTypedData,\n sendTransaction,\n apiFetch: apiFetch!\n }}\n >\n {children}\n </GlyphContext.Provider>\n );\n};\n\nexport default memo(PrivyStrategy);\n"],"names":["logger","createLogger","PrivyStrategy","children","glyphUrl","onLogin","onLogout","useStagingTenant","loading","setLoading","useState","apiFetch","setApiFetch","walletAddress","setWalletAddress","usesCrossapp","setUsesCrossapp","chainId","useChainId","privyReady","privyAuthenticated","privyUser","getPrivyAccessToken","privyLogin","privyLogout","privySignMessage","privySignTypedData","privySendTransaction","usePrivy","crossAppSignMessage","crossAppSignTypedData","crossAppSendTransaction","useCrossAppAccounts","useEffect","address","privyEvmWallet","w","hasPrivyEvmWallet","isEthereumAddress","crossAppAccounts","account","otherAccounts","STAGING_GLYPH_PRIVY_APP_ID","GLYPH_PRIVY_APP_ID","otherAddresses","glyphAccounts","glyphAddresses","glyphApiFetch","createApiFetch","WIDGET_API_BASE_URL","authenticate","useCallback","logout","signMessage","message","signTypedData","data","sendTransaction","transaction","tx","jsx","GlyphContext","PrivyStrategy$1","memo"],"mappings":"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"}