@burnt-labs/abstraxion 0.0.1-alpha.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.
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["src/index.ts","src/components/Abstraxion/index.tsx","src/components/Icons/CloseIcon.tsx","src/components/ErrorDisplay/index.tsx","src/components/Button/index.tsx","src/components/Button/Button.styles.ts","src/components/ErrorDisplay/ErrorDisplay.styles.ts","src/components/AbstraxionContext/index.tsx","src/components/WalletLoading/index.tsx","src/components/Abstraxion/Abstraxtion.styles.ts","src/components/Icons/Spinner.tsx","src/components/AbstraxionWallets/index.tsx","src/components/AbstraxionWallets/AbstraxionWallets.styles.ts","src/hooks/useAbstraxionAccount.ts","utils/truncateAddress.ts","src/interfaces/queries.ts","src/components/Icons/AccountWalletLogo.tsx","src/components/AbstraxionSignin/index.tsx","src/components/Input/index.tsx","src/components/Input/Input.styles.ts","src/components/AbstraxionSignin/AbstraxionSignin.styles.ts","chain/index.ts","utils/regex.ts","src/lib.ts","src/hooks/index.ts","src/hooks/useAbstraxionSigningClient.ts"],"sourcesContent":["export { Abstraxion } from \"./components/Abstraxion\";\nexport { AbstraxionProvider } from \"./components/Abstraxion\";\nexport { useAbstraxionAccount, useAbstraxionSigningClient } from \"./hooks\";\n","import { useContext, useEffect, useRef } from \"react\";\nimport { GrazProvider } from \"graz\";\nimport { StytchProvider } from \"@stytch/react\";\nimport { ApolloProvider } from \"@apollo/client\";\nimport { CloseIcon } from \"../Icons/CloseIcon\";\nimport { ErrorDisplay } from \"../ErrorDisplay\";\nimport { WalletLoading } from \"../WalletLoading\";\nimport { AbstraxionWallets } from \"../AbstraxionWallets\";\nimport { AbstraxionSignin } from \"../AbstraxionSignin\";\nimport {\n AbstraxionClose,\n AbstraxionModal,\n ModalAnchor,\n} from \"./Abstraxtion.styles\";\nimport {\n AbstraxionContext,\n AbstraxionContextProps,\n AbstraxionContextProvider,\n} from \"../AbstraxionContext\";\nimport { useAbstraxionAccount } from \"../../hooks/useAbstraxionAccount\";\nimport { apolloClient, stytchClient } from \"../../lib\";\n\nexport interface AbstraxionModalProps {\n onClose: VoidFunction;\n isOpen: boolean;\n}\n\nexport const Abstraxion = ({ isOpen, onClose }: AbstraxionModalProps) => {\n const modalRef = useRef<HTMLDivElement>(null);\n\n const { abstraxionError } = useContext(\n AbstraxionContext,\n ) as AbstraxionContextProps;\n\n const { isConnected, isConnecting, isReconnecting } = useAbstraxionAccount();\n\n useEffect(() => {\n const closeOnEscKey = (e: any) => (e.key === \"Escape\" ? onClose() : null);\n document.addEventListener(\"keydown\", closeOnEscKey);\n return () => {\n document.removeEventListener(\"keydown\", closeOnEscKey);\n };\n }, [onClose]);\n\n if (!isOpen) return null;\n\n return (\n <ModalAnchor ref={modalRef}>\n <AbstraxionModal>\n <AbstraxionClose onClick={onClose}>\n <CloseIcon />\n </AbstraxionClose>\n {abstraxionError ? (\n <ErrorDisplay message={abstraxionError} onClose={onClose} />\n ) : isConnecting || isReconnecting ? (\n <WalletLoading />\n ) : isConnected ? (\n <AbstraxionWallets />\n ) : (\n <AbstraxionSignin />\n )}\n </AbstraxionModal>\n </ModalAnchor>\n );\n};\n\nexport const AbstraxionProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n return (\n <AbstraxionContextProvider>\n <StytchProvider stytch={stytchClient}>\n <ApolloProvider client={apolloClient}>\n <GrazProvider>{children}</GrazProvider>\n </ApolloProvider>\n </StytchProvider>\n </AbstraxionContextProvider>\n );\n};\n","import styled from \"styled-components\";\n\nconst CloseSvg = styled.svg`\n height: 20px;\n width: 20px;\n`;\n\nexport const CloseIcon = ({ className }: { className?: string }) => {\n return (\n <CloseSvg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"black\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </CloseSvg>\n );\n};\n","import { useContext } from \"react\";\nimport { Button } from \"../Button\";\nimport {\n ErrorDisplayCode,\n ErrorDisplayContainer,\n ErrorDisplaySubtitle,\n ErrorDisplayTitle,\n} from \"./ErrorDisplay.styles\";\nimport {\n AbstraxionContext,\n AbstraxionContextProps,\n} from \"../AbstraxionContext\";\n\nexport const ErrorDisplay = ({\n message,\n onClose,\n}: {\n message?: string;\n onClose: VoidFunction;\n}) => {\n const { setAbstraxionError } = useContext(\n AbstraxionContext,\n ) as AbstraxionContextProps;\n\n return (\n <ErrorDisplayContainer>\n <ErrorDisplayTitle>Uh oh.</ErrorDisplayTitle>\n <ErrorDisplaySubtitle>Something went wrong.</ErrorDisplaySubtitle>\n {message && <ErrorDisplayCode>{message}</ErrorDisplayCode>}\n <Button\n structure=\"outlined\"\n theme=\"secondary\"\n fullwidth={true}\n onClick={() => {\n onClose();\n setAbstraxionError(\"\");\n }}\n >\n Dismiss\n </Button>\n </ErrorDisplayContainer>\n );\n};\n","import { ButtonHTMLAttributes } from \"react\";\nimport { StyledButton } from \"./Button.styles\";\n\nexport interface ButtonProps {\n structure?: \"base\" | \"outlined\" | \"naked\";\n theme?: \"primary\" | \"secondary\" | \"destructive\";\n fullwidth?: boolean;\n disabled?: boolean;\n onClick: (params?: any) => void;\n children: React.ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const Button = ({\n structure = \"base\",\n theme = \"primary\",\n fullwidth = false,\n disabled = false,\n onClick,\n children,\n style,\n}: ButtonProps) => {\n return (\n <StyledButton\n disabled={disabled}\n onClick={onClick}\n $structure={structure}\n $theme={theme}\n $fullwidth={fullwidth}\n style={style}\n >\n {children}\n </StyledButton>\n );\n};\n","import styled, { css } from \"styled-components\";\n\ninterface StyledButtonProps {\n $structure?: \"base\" | \"outlined\" | \"naked\";\n $theme?: \"primary\" | \"secondary\" | \"destructive\";\n $fullwidth?: boolean;\n disabled?: boolean;\n}\n\n// Base styled button\nexport const StyledButton = styled.button<StyledButtonProps>`\n /* Common styles for all buttons */\n font-size: 14px;\n font-weight: 700;\n padding: 14px 20px;\n border-radius: 5px;\n border: none;\n cursor: pointer;\n\n &:hover {\n opacity: 0.7;\n }\n\n ${(props) =>\n props.$fullwidth &&\n css`\n width: 100%;\n `}\n\n ${({ $structure, $theme, disabled }) => {\n // The disabled prop overrides the $theme prop and gives buttons a greyed-out look.\n if (disabled) {\n return css`\n pointer-events: none;\n ${$structure === \"base\" && // disabled & base\n css`\n background-color: #bdbdbd;\n color: #fff;\n `}\n ${$structure === \"outlined\" && // disabled & outlined\n css`\n background-color: transparent;\n border: 1px solid #bdbdbd;\n color: #bdbdbd;\n `}\n ${$structure === \"naked\" && // disabled & naked\n css`\n color: #bdbdbd;\n `}\n `;\n }\n\n if ($structure === \"outlined\") {\n if ($theme === \"primary\") {\n // outlined & primary\n return css`\n border: 1px solid #01000a;\n background-color: transparent;\n `;\n } else if ($theme === \"secondary\") {\n // outlined & secondary\n return css`\n border: 1px solid #00000033;\n background-color: transparent;\n color: black;\n `;\n } else if ($theme === \"destructive\") {\n // outlined & destructive\n return css`\n border: 1px solid #ff4136;\n background-color: transparent;\n color: #ff4136;\n `;\n }\n } else if ($structure === \"naked\") {\n if ($theme === \"primary\") {\n // naked & primary\n return css`\n border: none;\n background-color: inherit;\n color: black;\n text-decoration: underline;\n font-weight: 400;\n `;\n } else if ($theme === \"secondary\") {\n // naked & secondary\n return css`\n border: none;\n background-color: transparent;\n color: #00000033;\n `;\n } else if ($theme === \"destructive\") {\n // naked & destructive\n return css`\n border: none;\n background-color: transparent;\n color: #ff4136;\n `;\n }\n } else {\n // base\n if ($theme === \"primary\") {\n // base & primary\n return css`\n background-color: #01000a;\n color: white;\n `;\n } else if ($theme === \"secondary\") {\n // base & secondary\n return css`\n background-color: #f0f0f0;\n `;\n } else if ($theme === \"destructive\") {\n // base & destructive\n return css`\n background-color: #ff4136;\n color: white;\n `;\n }\n }\n }}\n`;\n","import styled from \"styled-components\";\n\nexport const ErrorDisplayContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n padding: 2rem;\n gap: 1rem;\n`;\n\nexport const ErrorDisplayTitle = styled.h1`\n color: black;\n font-size: 32px;\n font-style: normal;\n font-weight: 700;\n line-height: 32px; /* 100% */\n letter-spacing: -0.96px;\n text-transform: uppercase;\n`;\n\nexport const ErrorDisplaySubtitle = styled.h1`\n color: #6c6a6a;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px; /* 142.857% */\n letter-spacing: -0.14px;\n`;\n\nexport const ErrorDisplayCode = styled.p`\n color: #6c6a6a;\n opacity: 60%;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px; /* 142.857% */\n letter-spacing: -0.14px;\n`;\n","import { ReactNode, createContext, useState } from \"react\";\n\nexport interface AbstraxionContextProps {\n connectionType: \"stytch\" | \"graz\" | \"none\";\n setConnectionType: React.Dispatch<\n React.SetStateAction<\"stytch\" | \"graz\" | \"none\">\n >;\n abstractAccount: any; // TODO: Properly define interface here\n setAbstractAccount: React.Dispatch<any>;\n abstraxionError: string;\n setAbstraxionError: React.Dispatch<React.SetStateAction<string>>;\n}\n\nexport const AbstraxionContext = createContext<AbstraxionContextProps>(\n {} as AbstraxionContextProps,\n);\n\nexport const AbstraxionContextProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const [connectionType, setConnectionType] = useState<\n \"stytch\" | \"graz\" | \"none\"\n >(\"none\");\n const [abstractAccount, setAbstractAccount] = useState<any | undefined>(\n undefined,\n );\n const [abstraxionError, setAbstraxionError] = useState(\"\");\n\n return (\n <AbstraxionContext.Provider\n value={{\n connectionType,\n setConnectionType,\n abstractAccount,\n setAbstractAccount,\n abstraxionError,\n setAbstraxionError,\n }}\n >\n {children}\n </AbstraxionContext.Provider>\n );\n};\n","import {\n AbstraxionSubtitle,\n AbstraxionTitle,\n CenteredFlexBox,\n ModalSection,\n} from \"../Abstraxion/Abstraxtion.styles\";\nimport { Spinner } from \"../Icons/Spinner\";\n\nexport const WalletLoading = () => {\n return (\n <ModalSection>\n <div>\n <AbstraxionTitle>Let's go</AbstraxionTitle>\n <AbstraxionSubtitle>Starting your journey...</AbstraxionSubtitle>\n </div>\n <CenteredFlexBox>\n <Spinner />\n </CenteredFlexBox>\n </ModalSection>\n );\n};\n","import styled from \"styled-components\";\n\nexport const ModalAnchor = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n z-index: 100000;\n /* Make background be translucent with a slight blur */\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(2px);\n`;\n\nexport const AbstraxionModal = styled.div`\n position: relative;\n width: 100%;\n max-width: 465px;\n background: white;\n color: black;\n`;\n\nexport const AbstraxionClose = styled.button`\n padding: 0.5rem;\n border-radius: 8px;\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 999;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n cursor: pointer;\n\n &:hover {\n background-color: #fafafa;\n }\n`;\n\nexport const ModalSection = styled.div`\n width: 100%;\n height: 100%;\n display: inline-flex;\n padding: 40px;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n gap: 50px;\n`;\n\nexport const AbstraxionTitle = styled.h1`\n font-size: 24px;\n font-weight: 700;\n margin-bottom: 12px;\n line-height: 28px;\n`;\n\nexport const AbstraxionSubtitle = styled.h2`\n font-size: 16px;\n font-weight: 400;\n margin-bottom: 12px;\n line-height: 24px;\n`;\n\nexport const HorizontalDivider = styled.h1`\n display: flex;\n flex-direction: row;\n font-size: 12px;\n font-weight: 500;\n width: 100%;\n color: rgba(0, 0, 0, 0.5);\n\n &:before,\n &:after {\n content: \"\";\n flex: 1 1;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n margin: auto;\n }\n\n &:before {\n margin-right: 20px;\n }\n\n &:after {\n margin-left: 20px;\n }\n`;\n\nexport const ButtonGroup = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n gap: 1rem;\n`;\n\nexport const TOSDisclaimer = styled.p`\n font-size: 11px;\n line-height: 16px;\n color: #a6a6a6;\n`;\n\nexport const TOSLink = styled.a`\n color: black;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nexport const CenteredFlexBox = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n","export const Spinner = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"3rem\"\n height=\"3rem\"\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <circle\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n stroke=\"#0a0a0a\"\n strokeWidth=\"8\"\n r=\"35\"\n strokeDasharray=\"164.93361431346415 56.97787143782138\"\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n repeatCount=\"indefinite\"\n dur=\"1.25s\"\n values=\"0 50 50;360 50 50\"\n keyTimes=\"0;1\"\n ></animateTransform>\n </circle>\n </svg>\n );\n};\n","import { useContext, useState } from \"react\";\nimport { useDisconnect } from \"graz\";\nimport { useStytch, useStytchUser } from \"@stytch/react\";\nimport { useQuery } from \"@apollo/client\";\nimport { Button } from \"../Button\";\nimport { WalletLoading } from \"../WalletLoading\";\nimport { AbstraxionTitle } from \"../Abstraxion/Abstraxtion.styles\";\nimport {\n AccountCard,\n AccountCardName,\n AccountCardSection,\n AccountCardSub,\n AccountsHeader,\n AccountsSection,\n WalletList,\n WalletsSection,\n} from \"./AbstraxionWallets.styles\";\nimport {\n AbstraxionContext,\n AbstraxionContextProps,\n} from \"../AbstraxionContext\";\nimport { useAbstraxionAccount } from \"../../hooks/useAbstraxionAccount\";\nimport { truncateAddress } from \"../../../utils/truncateAddress\";\nimport { AllSmartWalletQuery } from \"../../interfaces/queries\";\nimport { AccountWalletLogo } from \"../Icons/AccountWalletLogo\";\n\nexport const AbstraxionWallets = () => {\n const {\n connectionType,\n setConnectionType,\n abstractAccount,\n setAbstractAccount,\n setAbstraxionError,\n } = useContext(AbstraxionContext) as AbstraxionContextProps;\n\n const { user } = useStytchUser();\n const stytchClient = useStytch();\n const session_jwt = stytchClient.session.getTokens()?.session_jwt;\n const session_token = stytchClient.session.getTokens()?.session_token;\n\n const { disconnect } = useDisconnect();\n const { data: account } = useAbstraxionAccount();\n const { loading, error, data, refetch } = useQuery(AllSmartWalletQuery, {\n variables: {\n authenticator: `project-test-185e9a9f-8bab-42f2-a924-953a59e8ff94.${user?.user_id}`,\n },\n });\n\n const [isGeneratingNewWallet, setIsGeneratingNewWallet] = useState(false);\n\n if (error) {\n setAbstraxionError((error as Error).message);\n return null;\n }\n\n const handleDisconnect = async () => {\n if (connectionType === \"stytch\") {\n await stytchClient.session.revoke();\n } else if (connectionType === \"graz\") {\n disconnect();\n }\n\n setConnectionType(\"none\");\n setAbstractAccount(undefined);\n };\n\n const handleJwtAALoginOrCreate = async (\n session_jwt?: string,\n session_token?: string,\n ) => {\n try {\n if (!session_jwt || !session_token) {\n throw new Error(\"Missing token/jwt\");\n }\n setIsGeneratingNewWallet(true);\n const res = await fetch(\n \"https://burnt-abstraxion-api.onrender.com/api/v1/jwt-accounts/create\",\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n salt: Date.now().toString(),\n session_jwt,\n session_token,\n }),\n },\n );\n const body = await res.json();\n if (!res.ok) {\n throw new Error(body.error);\n }\n await refetch();\n return;\n } catch (error) {\n setAbstraxionError(\"Error creating abstract account.\");\n } finally {\n setIsGeneratingNewWallet(false);\n }\n };\n\n return (\n <>\n {isGeneratingNewWallet || loading ? (\n <WalletLoading />\n ) : (\n <WalletsSection>\n <AbstraxionTitle>Welcome Back</AbstraxionTitle>\n {connectionType === \"graz\" ? (\n <AccountCard $selected>\n <AccountWalletLogo />\n <AccountCardSection>\n <AccountCardName>{account?.name}</AccountCardName>\n <AccountCardSub>\n {truncateAddress(account?.bech32Address)}\n </AccountCardSub>\n </AccountCardSection>\n </AccountCard>\n ) : (\n <AccountsSection>\n <AccountsHeader>Accounts</AccountsHeader>\n <WalletList>\n {data?.smartAccounts.nodes.length >= 1 ? (\n data?.smartAccounts?.nodes?.map((node: any, i: number) => (\n <AccountCard\n key={i}\n onClick={() => setAbstractAccount(node)}\n $selected={node.id === abstractAccount?.id}\n >\n <AccountWalletLogo />\n <AccountCardSection>\n <AccountCardName>\n Personal Account {i + 1}\n </AccountCardName>\n <AccountCardSub>\n {truncateAddress(node.id)}\n </AccountCardSub>\n </AccountCardSection>\n </AccountCard>\n ))\n ) : (\n <p>No Accounts Found.</p>\n )}\n </WalletList>\n <Button\n structure=\"naked\"\n theme=\"primary\"\n fullwidth={true}\n onClick={async () => {\n await handleJwtAALoginOrCreate(session_jwt, session_token);\n }}\n >\n Create a new account\n </Button>\n </AccountsSection>\n )}\n <Button\n structure=\"outlined\"\n theme=\"secondary\"\n fullwidth={true}\n onClick={handleDisconnect}\n >\n Disconnect\n </Button>\n </WalletsSection>\n )}\n </>\n );\n};\n","import styled, { css } from \"styled-components\";\n\nexport const WalletsSection = styled.div`\n width: 100%;\n height: 100%;\n display: inline-flex;\n padding: 40px;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n gap: 30px;\n`;\n\nexport const AccountsSection = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n width: 100%;\n gap: 1rem;\n`;\n\nexport const WalletList = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width: 100%;\n gap: 1rem;\n max-height: 250px;\n overflow: scroll;\n`;\n\nexport const AccountsHeader = styled.h2`\n font-size: 16px;\n font-style: normal;\n font-weight: 700;\n line-height: 20px; /* 125% */\n letter-spacing: -0.16px;\n`;\n\nexport interface AccountCardProps {\n $selected?: boolean;\n}\n\nexport const AccountCard = styled.div<AccountCardProps>`\n display: flex;\n padding: 1rem;\n border-radius: 8px;\n background: #fafafa;\n align-items: center;\n width: 100%;\n gap: 1rem;\n\n ${(props) =>\n props.$selected &&\n css`\n border: 1.5px solid black;\n `}\n`;\n\nexport const AccountCardSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 5px;\n`;\n\nexport const AccountCardName = styled.h1`\n font-size: 14px;\n font-weight: 700;\n color: black;\n`;\n\nexport const AccountCardSub = styled.h1`\n font-size: 12px;\n font-weight: 400;\n color: #6c6a6a;\n`;\n","import { useContext, useEffect } from \"react\";\nimport { useAccount } from \"graz\";\nimport { useStytchSession } from \"@stytch/react\";\nimport {\n AbstraxionContext,\n AbstraxionContextProps,\n} from \"../components/AbstraxionContext\";\n\nexport interface AbstraxionAccount {\n name?: string;\n algo?: string;\n pubKey?: Uint8Array;\n address?: Uint8Array;\n bech32Address: string;\n isNanoLedger?: boolean;\n isKeystone?: boolean;\n}\n\nexport interface useAbstraxionAccountProps {\n data?: AbstraxionAccount;\n isConnected: boolean;\n isConnecting?: boolean;\n isReconnecting?: boolean;\n}\n\nexport const useAbstraxionAccount = () => {\n const { session } = useStytchSession();\n const { data, isConnected, isConnecting, isReconnecting } = useAccount();\n\n const { connectionType, setConnectionType, abstractAccount } = useContext(\n AbstraxionContext,\n ) as AbstraxionContextProps;\n\n useEffect(() => {\n const refreshConnectionType = () => {\n if (session) {\n setConnectionType(\"stytch\");\n } else if (data) {\n setConnectionType(\"graz\");\n }\n };\n\n if (connectionType === \"none\") {\n refreshConnectionType();\n }\n }, [session, data]);\n\n switch (connectionType) {\n case \"stytch\":\n return {\n data: {\n ...abstractAccount,\n bech32Address: abstractAccount?.id,\n } as AbstraxionAccount,\n isConnected: !!session,\n };\n case \"graz\":\n return {\n data: data as AbstraxionAccount,\n isConnected: isConnected,\n isConnecting: isConnecting,\n isReconnecting: isReconnecting,\n };\n default:\n return { data: undefined, isConnected: false };\n }\n};\n","export function truncateAddress(address: string | undefined) {\n if (!address) {\n return \"\";\n }\n return (\n address.slice(0, 8) +\n \"...\" +\n address.slice(address.length - 4, address.length)\n );\n}\n","import { gql } from \"@apollo/client\";\n\nexport const SMART_ACCOUNT_FRAGMENT = gql`\n fragment SmartAccountFragment on SmartAccountAuthenticator {\n id\n type\n authenticator\n authenticatorIndex\n version\n }\n`;\n\nexport const AllSmartWalletQuery = gql`\n ${SMART_ACCOUNT_FRAGMENT}\n query ($authenticator: String!) {\n smartAccounts(\n filter: {\n authenticators: { some: { authenticator: { equalTo: $authenticator } } }\n }\n ) {\n nodes {\n id\n authenticators {\n nodes {\n ...SmartAccountFragment\n }\n }\n }\n }\n }\n`;\n\nexport const SingleSmartWalletQuery = gql`\n ${SMART_ACCOUNT_FRAGMENT}\n query ($id: String!) {\n smartAccount(id: $id) {\n id\n latestAuthenticatorId\n authenticators {\n nodes {\n ...SmartAccountFragment\n }\n }\n }\n }\n`;\n\nexport const AllSmartWalletQueryByAccountId = gql`\n ${SMART_ACCOUNT_FRAGMENT}\n query ($id: String!) {\n smartAccounts(filter: { id: { equalTo: $id } }) {\n nodes {\n authenticators {\n nodes {\n ...SmartAccountFragment\n }\n }\n }\n }\n }\n`;\n\nexport const AllSmartWalletQueryByIdAndAuthenticator = gql`\n ${SMART_ACCOUNT_FRAGMENT}\n query ($id: String!, $authenticator: String!) {\n smartAccounts(\n filter: {\n id: { equalTo: $id }\n authenticators: { some: { authenticator: { equalTo: $authenticator } } }\n }\n ) {\n nodes {\n authenticators {\n nodes {\n ...SmartAccountFragment\n }\n }\n }\n }\n }\n`;\n\nexport const AllSmartWalletQueryByIdAndType = gql`\n ${SMART_ACCOUNT_FRAGMENT}\n query ($id: String!, $type: String!) {\n smartAccounts(\n filter: {\n id: { equalTo: $id }\n authenticators: { some: { type: { equalTo: $type } } }\n }\n ) {\n nodes {\n authenticators {\n nodes {\n ...SmartAccountFragment\n }\n }\n }\n }\n }\n`;\n\nexport const AllSmartWalletQueryByIdAndTypeAndAuthenticator = gql`\n ${SMART_ACCOUNT_FRAGMENT}\n query ($id: String!, $type: String!, $authenticator: String!) {\n smartAccounts(\n filter: {\n id: { equalTo: $id }\n authenticators: {\n some: {\n authenticator: { equalTo: $authenticator }\n type: { equalTo: $type }\n }\n }\n }\n ) {\n nodes {\n authenticators {\n nodes {\n ...SmartAccountFragment\n }\n }\n }\n }\n }\n`;\n","export const AccountWalletLogo = () => {\n return (\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"48\" height=\"48\" rx=\"24\" fill=\"black\" />\n <path\n d=\"M33.8947 30.8289V31.9342C33.8947 33.15 32.9 34.1447 31.6842 34.1447H16.2105C14.9837 34.1447 14 33.15 14 31.9342V16.4605C14 15.2447 14.9837 14.25 16.2105 14.25H31.6842C32.9 14.25 33.8947 15.2447 33.8947 16.4605V17.5658H23.9474C22.7205 17.5658 21.7368 18.5605 21.7368 19.7763V28.6184C21.7368 29.8342 22.7205 30.8289 23.9474 30.8289H33.8947ZM23.9474 28.6184H35V19.7763H23.9474V28.6184ZM28.3684 25.8553C27.4511 25.8553 26.7105 25.1147 26.7105 24.1974C26.7105 23.28 27.4511 22.5395 28.3684 22.5395C29.2858 22.5395 30.0263 23.28 30.0263 24.1974C30.0263 25.1147 29.2858 25.8553 28.3684 25.8553Z\"\n fill=\"white\"\n />\n </svg>\n );\n};\n","import { useContext, useEffect, useState } from \"react\";\nimport { WalletType, useSuggestChainAndConnect } from \"graz\";\nimport { useStytch } from \"@stytch/react\";\nimport PinInput from \"react-pin-input\";\nimport { Button } from \"../Button\";\nimport { Input } from \"../Input\";\nimport {\n AbstraxionSubtitle,\n AbstraxionTitle,\n ButtonGroup,\n HorizontalDivider,\n ModalSection,\n TOSDisclaimer,\n TOSLink,\n} from \"../Abstraxion/Abstraxtion.styles\";\nimport { StytchButtonGroup } from \"./AbstraxionSignin.styles\";\nimport {\n AbstraxionContext,\n AbstraxionContextProps,\n} from \"../AbstraxionContext\";\nimport { testnetChainInfo } from \"../../../chain\";\nimport { EMAIL_REGEX } from \"../../../utils/regex\";\n\nexport const AbstraxionSignin = () => {\n const stytchClient = useStytch();\n\n const [email, setEmail] = useState(\"\");\n const [methodId, setMethodId] = useState(\"\");\n const [emailError, setEmailError] = useState(\"\");\n const [isOnOtpStep, setIsOnOtpStep] = useState(false);\n const [otp, setOtp] = useState(\"\");\n const [otpError, setOtpError] = useState(\"\");\n const [timeLeft, setTimeLeft] = useState<number | null>(null);\n\n const { setConnectionType } = useContext(\n AbstraxionContext,\n ) as AbstraxionContextProps;\n\n const { suggestAndConnect } = useSuggestChainAndConnect({\n onError(error) {\n setConnectionType(\"none\");\n if ((error as Error).message.includes(\"is not defined\")) {\n alert(\n \"Wallet not found. Make sure you download the wallet extension before trying again.\",\n );\n }\n },\n });\n\n const handleEmailChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setEmailError(\"\");\n setEmail(e.target.value.toLowerCase());\n };\n\n const validateEmail = () => {\n if (EMAIL_REGEX.test(email) || email === \"\") {\n setEmailError(\"\");\n } else {\n setEmailError(\"Invalid Email Format\");\n }\n };\n\n const handleEmail = async (event: any) => {\n event.preventDefault();\n\n if (!email) {\n setEmailError(\"Please enter your email\");\n return;\n }\n\n try {\n setConnectionType(\"stytch\");\n const emailRes = await stytchClient.otps.email.loginOrCreate(email);\n setMethodId(emailRes.method_id);\n setIsOnOtpStep(true);\n setTimeLeft(60);\n } catch (error) {\n setEmailError(\"Error sending email\");\n setConnectionType(\"none\");\n }\n };\n\n const handleOtp = async (event: any) => {\n event.preventDefault();\n\n try {\n await stytchClient.otps.authenticate(otp, methodId, {\n session_duration_minutes: 60,\n });\n } catch (error) {\n setOtpError(\"Error verifying otp\");\n }\n };\n\n const handleConnect = (wallet: WalletType) => {\n setConnectionType(\"graz\");\n suggestAndConnect({ chainInfo: testnetChainInfo, walletType: wallet });\n };\n\n // For the \"resend otp\" countdown\n useEffect(() => {\n if (timeLeft === 0) {\n setTimeLeft(null);\n }\n if (!timeLeft) return;\n const intervalId = setInterval(() => {\n setTimeLeft(timeLeft - 1);\n }, 1000);\n return () => clearInterval(intervalId);\n }, [timeLeft]);\n\n return (\n <ModalSection>\n {isOnOtpStep ? (\n <>\n <div>\n <AbstraxionTitle>Input 6 Digit Code</AbstraxionTitle>\n <AbstraxionSubtitle>\n Please check your email for the verification code.\n </AbstraxionSubtitle>\n </div>\n <PinInput\n length={6}\n initialValue=\"\"\n onChange={(value) => {\n setOtpError(\"\");\n setOtp(value);\n }}\n type=\"numeric\"\n inputMode=\"number\"\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n }}\n inputStyle={{\n border: otpError ? \"1px solid red\" : \"none\",\n backgroundColor: \"#F2F2F2\",\n borderRadius: \"2px\",\n height: \"64px\",\n color: \"black\",\n fontSize: \"16px\",\n }}\n onComplete={(value) => {\n setOtp(value);\n }}\n autoSelect={true}\n regexCriteria={/^[ A-Za-z0-9_@./#&+-]*$/}\n />\n <StytchButtonGroup>\n <Button fullwidth={true} onClick={handleOtp}>\n Confirm\n </Button>\n <Button\n structure=\"outlined\"\n theme=\"secondary\"\n fullwidth={true}\n onClick={handleEmail}\n disabled={!!timeLeft}\n >\n Resend Code {timeLeft && `in ${timeLeft} seconds`}\n </Button>\n </StytchButtonGroup>\n </>\n ) : (\n <>\n <AbstraxionTitle>Welcome to XION</AbstraxionTitle>\n <Input\n placeholder=\"Email address\"\n fullwidth={true}\n value={email}\n onChange={handleEmailChange}\n error={emailError}\n onBlur={validateEmail}\n />\n <Button\n structure=\"base\"\n fullwidth={true}\n onClick={handleEmail}\n disabled={!!emailError}\n >\n Log in / Sign up\n </Button>\n <HorizontalDivider>OR</HorizontalDivider>\n <ButtonGroup>\n <Button\n structure=\"outlined\"\n theme=\"secondary\"\n fullwidth={true}\n onClick={() => {\n handleConnect(WalletType.METAMASK_SNAP_LEAP);\n }}\n >\n Metamask\n </Button>\n <Button\n structure=\"outlined\"\n theme=\"secondary\"\n fullwidth={true}\n onClick={() => {\n handleConnect(WalletType.KEPLR);\n }}\n >\n Keplr\n </Button>\n </ButtonGroup>\n <TOSDisclaimer>\n By continuing, you agree to Burnt's{\" \"}\n <TOSLink href=\"https://google.com\">Terms of Service</TOSLink> and\n acknowledge that you have read and understand the XION{\" \"}\n <TOSLink href=\"https://google.com\">Disclaimer</TOSLink>.\n </TOSDisclaimer>\n </>\n )}\n </ModalSection>\n );\n};\n","import React from \"react\";\nimport { InputContainer, InputErrorMessage, StyledInput } from \"./Input.styles\";\n\ninterface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n type?: \"text\" | \"password\" | \"number\" | \"email\" | \"date\" | \"tel\";\n placeholder?: string;\n name?: string;\n value?: string | number;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n className?: string;\n fullwidth: boolean;\n error?: string;\n}\n\nexport const Input: React.FC<InputProps> = ({\n type = \"text\",\n placeholder = \"\",\n name = \"\",\n value = \"\",\n onChange,\n className,\n fullwidth = false,\n error,\n ...props\n}) => {\n return (\n <InputContainer>\n <StyledInput\n type={type}\n placeholder={placeholder}\n name={name}\n value={value}\n onChange={onChange}\n className={className}\n $fullwidth={fullwidth}\n $error={error}\n {...props}\n />\n <InputErrorMessage>{error}</InputErrorMessage>\n </InputContainer>\n );\n};\n","import styled, { css } from \"styled-components\";\n\ninterface StyledInputProps {\n $fullwidth?: boolean;\n $error?: string;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n font-size: 16px;\n background-color: #f2f2f2;\n color: black;\n padding: 8px 20px;\n border-radius: 5px;\n height: 46px;\n border: none;\n\n ${(props) =>\n props.$fullwidth &&\n css`\n width: 100%;\n `}\n\n ${(props) =>\n props.$error &&\n css`\n border: 1px solid red;\n `}\n\n &:focus {\n outline: none;\n }\n\n &::placeholder {\n color: #bdbdbd;\n }\n`;\n\nexport const InputContainer = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 1px;s\n`;\n\nexport const InputErrorMessage = styled.p`\n color: red;\n font-size: 11px;\n font-weight: 500;\n`;\n","import styled from \"styled-components\";\n\nexport const StytchButtonGroup = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n gap: 1rem;\n`;\n","export interface Coin {\n coinDenom: string;\n coinMinimalDenom: string;\n coinDecimals: number;\n gasPriceStep: {\n low: number;\n average: number;\n high: number;\n };\n}\n\ninterface Bech32Config {\n bech32PrefixAccAddr: string;\n bech32PrefixValAddr: string;\n bech32PrefixValPub: string;\n bech32PrefixAccPub: string;\n bech32PrefixConsAddr: string;\n bech32PrefixConsPub: string;\n}\n\ninterface Bip44 {\n coinType: number;\n}\n\ninterface Gas {\n price: string;\n denom: string;\n}\n\nexport interface ChainInfo {\n rpc: string;\n rest: string;\n chainId: string;\n stakeCurrency: Coin;\n chainName: string;\n bip44: Bip44;\n bech32Config: Bech32Config;\n currencies: Coin[];\n feeCurrencies: Coin[];\n features: string[];\n}\n\nexport const xionCoin: Coin = {\n coinDenom: \"XION\",\n coinMinimalDenom: \"uxion\",\n coinDecimals: 6,\n gasPriceStep: {\n low: 0.01,\n average: 0.025,\n high: 0.03,\n },\n};\n\nconst commonInfo: ChainInfo = {\n rpc: \"undefined\",\n rest: \"undefined\",\n chainId: \"base\",\n chainName: \"Xion Testnet\",\n bip44: {\n coinType: 118,\n },\n bech32Config: {\n bech32PrefixAccAddr: \"xion\",\n bech32PrefixValAddr: \"xionvaloper\",\n bech32PrefixValPub: \"xionvaloperpub\",\n bech32PrefixAccPub: \"xionpub\",\n bech32PrefixConsAddr: \"xionvalcons\",\n bech32PrefixConsPub: \"xionvalconspub\",\n },\n stakeCurrency: xionCoin,\n currencies: [xionCoin],\n feeCurrencies: [xionCoin],\n features: [\"cosmwasm\"],\n};\n\nexport const testnetChainInfo: ChainInfo = {\n ...commonInfo,\n rpc: \"https://rpc.xion-testnet-1.burnt.com:443\",\n rest: \"https://api.xion-testnet-1.burnt.com\",\n chainId: \"xion-testnet-1\",\n chainName: \"Xion Testnet\",\n};\n\nexport const testChainInfo: ChainInfo = {\n ...commonInfo,\n rpc: \"http://localhost:26657\",\n rest: \"http://localhost:26656\",\n chainId: \"xion-local-testnet-1\",\n chainName: \"Xion Testnet Local\",\n};\n","export const EMAIL_REGEX = /\\S+@\\S+\\.\\S+/;\n","import { ApolloClient, InMemoryCache } from \"@apollo/client\";\nimport { StytchUIClient } from \"@stytch/vanilla-js\";\n\n// TODO: Temporarily hard-coded\nexport const stytchClient = new StytchUIClient(\n \"public-token-test-62177c24-f8f4-4ddd-962b-0436b445ccaa\",\n);\n\n// TODO: Refactor to be dynamic. Local dev uri must be device IP.\nexport const apolloClient = new ApolloClient({\n uri: \"https://api.subquery.network/sq/burnt-labs/xion-indexer\",\n cache: new InMemoryCache(),\n assumeImmutableResults: true,\n});\n","export { useAbstraxionAccount } from \"./useAbstraxionAccount\";\nexport { useAbstraxionSigningClient } from \"./useAbstraxionSigningClient\";\n","import { useContext, useEffect, useState } from \"react\";\nimport { GasPrice } from \"graz/dist/cosmjs\";\nimport { useStytch } from \"@stytch/react\";\nimport { useCosmWasmSigningClient } from \"graz\";\nimport {\n AAClient,\n AbstractAccountJWTSigner,\n} from \"@burnt-labs/abstract-signers\";\nimport {\n AbstraxionContext,\n AbstraxionContextProps,\n} from \"../components/AbstraxionContext\";\nimport { testnetChainInfo } from \"../../chain\";\n\nexport const useAbstraxionSigningClient = () => {\n const { connectionType, abstractAccount } = useContext(\n AbstraxionContext,\n ) as AbstraxionContextProps;\n\n const stytch = useStytch();\n const sessionToken = stytch.session.getTokens()?.session_token;\n const { data: grazClient } = useCosmWasmSigningClient();\n\n const [abstractClient, setAbstractClient] = useState<AAClient | undefined>(\n undefined,\n );\n\n useEffect(() => {\n async function getStytchSigner() {\n const jwtSigner = new AbstractAccountJWTSigner(\n abstractAccount.bech32Address,\n sessionToken,\n );\n\n const jwtClient = await AAClient.connectWithSigner(\n testnetChainInfo.rpc,\n jwtSigner,\n {\n gasPrice: GasPrice.fromString(\"10uxion\"),\n },\n );\n\n setAbstractClient(jwtClient);\n }\n\n if (connectionType === \"stytch\" && abstractAccount) {\n getStytchSigner();\n }\n }, [sessionToken, abstractAccount, connectionType]);\n\n switch (connectionType) {\n case \"stytch\":\n return { client: abstractClient };\n case \"graz\":\n return { client: grazClient };\n default:\n return { client: undefined };\n }\n};\n"],"names":["Abstraxion","AbstraxionProvider","useAbstraxionAccount","useAbstraxionSigningClient","useContext","useEffect","useRef","GrazProvider","StytchProvider","ApolloProvider","CloseIcon","ErrorDisplay","WalletLoading","AbstraxionWallets","AbstraxionSignin","AbstraxionClose","AbstraxionModal","ModalAnchor","AbstraxionContext","AbstraxionContextProps","AbstraxionContextProvider","apolloClient","stytchClient","AbstraxionModalProps","onClose","VoidFunction","isOpen","modalRef","HTMLDivElement","abstraxionError","isConnected","isConnecting","isReconnecting","closeOnEscKey","e","key","document","addEventListener","removeEventListener","children","React","ReactNode","styled","CloseSvg","svg","withConfig","componentId","className","Button","ErrorDisplayCode","ErrorDisplayContainer","ErrorDisplaySubtitle","ErrorDisplayTitle","message","setAbstraxionError","ButtonHTMLAttributes","StyledButton","ButtonProps","structure","theme","fullwidth","disabled","onClick","params","style","CSSProperties","css","StyledButtonProps","$structure","$theme","$fullwidth","button","props","div","h1","p","createContext","useState","connectionType","setConnectionType","Dispatch","SetStateAction","abstractAccount","setAbstractAccount","undefined","AbstraxionSubtitle","AbstraxionTitle","CenteredFlexBox","ModalSection","Spinner","h2","HorizontalDivider","ButtonGroup","TOSDisclaimer","TOSLink","a","useDisconnect","useStytch","useStytchUser","useQuery","AccountCard","AccountCardName","AccountCardSection","AccountCardSub","AccountsHeader","AccountsSection","WalletList","WalletsSection","truncateAddress","AllSmartWalletQuery","AccountWalletLogo","user","session_jwt","session","getTokens","session_token","disconnect","data","account","loading","error","refetch","variables","authenticator","user_id","isGeneratingNewWallet","setIsGeneratingNewWallet","Error","handleDisconnect","revoke","handleJwtAALoginOrCreate","res","fetch","method","headers","body","JSON","stringify","salt","Date","now","toString","json","ok","name","bech32Address","smartAccounts","nodes","length","map","node","i","id","AccountCardProps","$selected","useAccount","useStytchSession","AbstraxionAccount","algo","pubKey","Uint8Array","address","isNanoLedger","isKeystone","useAbstraxionAccountProps","refreshConnectionType","slice","gql","SMART_ACCOUNT_FRAGMENT","SingleSmartWalletQuery","AllSmartWalletQueryByAccountId","AllSmartWalletQueryByIdAndAuthenticator","AllSmartWalletQueryByIdAndType","AllSmartWalletQueryByIdAndTypeAndAuthenticator","WalletType","useSuggestChainAndConnect","PinInput","Input","StytchButtonGroup","testnetChainInfo","EMAIL_REGEX","email","setEmail","methodId","setMethodId","emailError","setEmailError","isOnOtpStep","setIsOnOtpStep","otp","setOtp","otpError","setOtpError","timeLeft","setTimeLeft","suggestAndConnect","onError","includes","alert","handleEmailChange","ChangeEvent","HTMLInputElement","target","value","toLowerCase","validateEmail","test","handleEmail","event","preventDefault","emailRes","otps","loginOrCreate","method_id","handleOtp","authenticate","session_duration_minutes","handleConnect","wallet","chainInfo","walletType","intervalId","setInterval","clearInterval","width","display","justifyContent","border","backgroundColor","borderRadius","height","color","fontSize","METAMASK_SNAP_LEAP","KEPLR","InputContainer","InputErrorMessage","StyledInput","InputProps","InputHTMLAttributes","type","placeholder","onChange","FC","StyledInputProps","$error","input","Coin","coinDenom","coinMinimalDenom","coinDecimals","gasPriceStep","low","average","high","Bech32Config","bech32PrefixAccAddr","bech32PrefixValAddr","bech32PrefixValPub","bech32PrefixAccPub","bech32PrefixConsAddr","bech32PrefixConsPub","Bip44","coinType","Gas","price","denom","ChainInfo","rpc","rest","chainId","stakeCurrency","chainName","bip44","bech32Config","currencies","feeCurrencies","features","xionCoin","commonInfo","testChainInfo","ApolloClient","InMemoryCache","StytchUIClient","uri","cache","assumeImmutableResults","GasPrice","useCosmWasmSigningClient","AAClient","AbstractAccountJWTSigner","stytch","sessionToken","grazClient","abstractClient","setAbstractClient","getStytchSigner","jwtSigner","jwtClient","connectWithSigner","gasPrice","fromString","client"],"version":3,"file":"module.js.map"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@burnt-labs/abstraxion",
3
+ "version": "0.0.1-alpha.1",
4
+ "description": "",
5
+ "author": "Burnt Labs",
6
+ "license": "ISC",
7
+ "source": "src/index.ts",
8
+ "main": "dist/main.js",
9
+ "module": "dist/module.js",
10
+ "types": "dist/index.d.ts",
11
+ "@parcel/transformer-css": {
12
+ "cssModules": true
13
+ },
14
+ "scripts": {
15
+ "format": "prettier --ignore-path .gitignore --write \"**/*.+(js|ts|json)\"",
16
+ "lint": "eslint --ignore-path .eslintignore --ext .js,.ts .",
17
+ "watch": "parcel watch",
18
+ "build": "parcel build",
19
+ "test": "echo \"Error: no test specified\" && exit 1"
20
+ },
21
+ "peerDependencies": {
22
+ "react": "^18.2.0",
23
+ "react-dom": "18.2.0"
24
+ },
25
+ "devDependencies": {
26
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
27
+ "@babel/preset-react": "^7.22.15",
28
+ "@parcel/babel-plugin-transform-runtime": "^2.10.2",
29
+ "@parcel/babel-preset-env": "^2.10.2",
30
+ "@parcel/packager-ts": "^2.9.3",
31
+ "@parcel/transformer-svg-react": "^2.9.3",
32
+ "@parcel/transformer-typescript-types": "^2.9.3",
33
+ "@types/react": "^18.2.21",
34
+ "@typescript-eslint/eslint-plugin": "^6.4.1",
35
+ "@typescript-eslint/parser": "^6.4.1",
36
+ "babel-plugin-relay": "^16.0.0",
37
+ "babel-plugin-styled-components": "^2.1.4",
38
+ "eslint": "^8.47.0",
39
+ "eslint-config-prettier": "^9.0.0",
40
+ "eslint-plugin-react": "^7.33.2",
41
+ "parcel": "^2.9.3",
42
+ "prettier": "^3.0.2",
43
+ "react": "^18.2.0",
44
+ "react-dom": "18.2.0",
45
+ "typescript": "^5.2.2"
46
+ },
47
+ "dependencies": {
48
+ "@apollo/client": "^3.8.7",
49
+ "@burnt-labs/abstract-signers": "^0.0.1-alpha.8",
50
+ "@stytch/react": "^10.0.0",
51
+ "@stytch/vanilla-js": "^3.0.3",
52
+ "graz": "^0.0.51",
53
+ "react-pin-input": "^1.3.1",
54
+ "styled-components": "^6.1.0"
55
+ },
56
+ "files": [
57
+ "dist/"
58
+ ]
59
+ }