@particle-network/authkit
Version:
Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.
8 lines (7 loc) • 5.57 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/context/iframeWalletPlugin.tsx"],
"sourcesContent": ["import { AuthCoreEvent, getUserInfo, isConnected } from '@particle-network/auth-core';\nimport React, { useCallback, useEffect } from 'react';\nimport { useModalOptions, useParticleAuth } from '.';\nimport { useAuthCore, useConnect, useEthereum, useSolana } from './hooks';\n\nenum MessageType {\n OpenAccountAndSecurity = 'open-account-and-security',\n GetUserInfo = 'get-user-info',\n}\n\nconst IframeWalletPlugin = () => {\n const { provider } = useEthereum();\n\n const { wallet } = useSolana();\n\n const { openAccountAndSecurity } = useAuthCore();\n\n const { modalOptions } = useModalOptions();\n\n const { connected } = useConnect();\n\n const { walletEntryPlugin } = useParticleAuth();\n\n const customEventHandler = useCallback(\n async (messageType: string) => {\n if (messageType === MessageType.OpenAccountAndSecurity) {\n openAccountAndSecurity();\n } else if (messageType === MessageType.GetUserInfo) {\n return getUserInfo();\n }\n },\n [openAccountAndSecurity]\n );\n\n useEffect(() => {\n if (modalOptions.wallet !== false && walletEntryPlugin) {\n const walletOptions = {\n ...modalOptions.wallet,\n erc4337: modalOptions.erc4337,\n language: modalOptions.language,\n customStyle: {\n ...modalOptions.customStyle,\n supportChains: modalOptions.chains?.map((item) => {\n return {\n id: item.id,\n name: item.name,\n chainType: (item?.custom?.chainType as 'evm' | 'solana') || 'evm',\n };\n }),\n },\n };\n\n walletEntryPlugin.init(\n {\n projectId: modalOptions.projectId,\n clientKey: modalOptions.clientKey,\n appId: modalOptions.appId,\n },\n walletOptions\n );\n const onConnected = () => {\n walletEntryPlugin.setWalletCore({\n ethereum: provider,\n solana: wallet,\n customEventHandler,\n });\n walletEntryPlugin.walletEntryCreate();\n };\n const onDisconnect = () => {\n walletEntryPlugin.walletEntryDestroy();\n };\n if (typeof window !== 'undefined') {\n window.particleAuth?.on(AuthCoreEvent.ParticleAuthDisconnect, onDisconnect);\n window.particleAuth?.on(AuthCoreEvent.ParticleAuthConnect, onConnected);\n }\n if (isConnected()) {\n debugger;\n walletEntryPlugin.setWalletCore({\n ethereum: provider,\n solana: wallet,\n customEventHandler,\n });\n walletEntryPlugin.walletEntryCreate();\n }\n return () => {\n if (typeof window !== 'undefined') {\n window.particleAuth?.off(AuthCoreEvent.ParticleAuthDisconnect, onDisconnect);\n window.particleAuth?.off(AuthCoreEvent.ParticleAuthConnect, onConnected);\n }\n };\n }\n }, [modalOptions, provider, wallet, customEventHandler, walletEntryPlugin]);\n\n useEffect(() => {\n if (connected && modalOptions.wallet !== false && walletEntryPlugin) {\n walletEntryPlugin.setWalletCore({\n ethereum: provider,\n solana: wallet,\n customEventHandler,\n });\n }\n }, [connected, provider, wallet, modalOptions.wallet, customEventHandler, walletEntryPlugin]);\n\n return (\n <div id='auth-core-modal-wallet-plugin' style={{ display: 'none' }}>\n Wallet Plugin\n </div>\n );\n};\n\nexport default IframeWalletPlugin;\n"],
"mappings": ";;;;;;;;;;;;AAAA,SAAS,eAAe,aAAa,mBAAmB;AACxD,OAAO,SAAS,aAAa,iBAAiB;AAS9C,IAAM,qBAAqB,MAAM;AAC/B,QAAM,EAAE,SAAS,IAAI,YAAY;AAEjC,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,QAAM,EAAE,uBAAuB,IAAI,YAAY;AAE/C,QAAM,EAAE,aAAa,IAAI,gBAAgB;AAEzC,QAAM,EAAE,UAAU,IAAI,WAAW;AAEjC,QAAM,EAAE,kBAAkB,IAAI,gBAAgB;AAE9C,QAAM,qBAAqB;AAAA,IACzB,OAAO,gBAAwB;AAC7B,UAAI,gBAAgB,0DAAoC;AACtD,+BAAuB;AAAA,MACzB,WAAW,gBAAgB,mCAAyB;AAClD,eAAO,YAAY;AAAA,MACrB;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,YAAU,MAAM;AAlClB;AAmCI,QAAI,aAAa,WAAW,SAAS,mBAAmB;AACtD,YAAM,gBAAgB;AAAA,QACpB,GAAG,aAAa;AAAA,QAChB,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,QACvB,aAAa;AAAA,UACX,GAAG,aAAa;AAAA,UAChB,gBAAe,kBAAa,WAAb,mBAAqB,IAAI,CAAC,SAAS;AA1C5D,gBAAAA;AA2CY,mBAAO;AAAA,cACL,IAAI,KAAK;AAAA,cACT,MAAM,KAAK;AAAA,cACX,aAAYA,MAAA,6BAAM,WAAN,gBAAAA,IAAc,cAAkC;AAAA,YAC9D;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,wBAAkB;AAAA,QAChB;AAAA,UACE,WAAW,aAAa;AAAA,UACxB,WAAW,aAAa;AAAA,UACxB,OAAO,aAAa;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AACA,YAAM,cAAc,MAAM;AACxB,0BAAkB,cAAc;AAAA,UAC9B,UAAU;AAAA,UACV,QAAQ;AAAA,UACR;AAAA,QACF,CAAC;AACD,0BAAkB,kBAAkB;AAAA,MACtC;AACA,YAAM,eAAe,MAAM;AACzB,0BAAkB,mBAAmB;AAAA,MACvC;AACA,UAAI,OAAO,WAAW,aAAa;AACjC,qBAAO,iBAAP,mBAAqB,GAAG,cAAc,wBAAwB;AAC9D,qBAAO,iBAAP,mBAAqB,GAAG,cAAc,qBAAqB;AAAA,MAC7D;AACA,UAAI,YAAY,GAAG;AACjB;AACA,0BAAkB,cAAc;AAAA,UAC9B,UAAU;AAAA,UACV,QAAQ;AAAA,UACR;AAAA,QACF,CAAC;AACD,0BAAkB,kBAAkB;AAAA,MACtC;AACA,aAAO,MAAM;AApFnB,YAAAA,KAAAC;AAqFQ,YAAI,OAAO,WAAW,aAAa;AACjC,WAAAD,MAAA,OAAO,iBAAP,gBAAAA,IAAqB,IAAI,cAAc,wBAAwB;AAC/D,WAAAC,MAAA,OAAO,iBAAP,gBAAAA,IAAqB,IAAI,cAAc,qBAAqB;AAAA,QAC9D;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,cAAc,UAAU,QAAQ,oBAAoB,iBAAiB,CAAC;AAE1E,YAAU,MAAM;AACd,QAAI,aAAa,aAAa,WAAW,SAAS,mBAAmB;AACnE,wBAAkB,cAAc;AAAA,QAC9B,UAAU;AAAA,QACV,QAAQ;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,WAAW,UAAU,QAAQ,aAAa,QAAQ,oBAAoB,iBAAiB,CAAC;AAE5F,SACE,oCAAC,SAAI,IAAG,iCAAgC,OAAO,EAAE,SAAS,OAAO,KAAG,eAEpE;AAEJ;AAEA,IAAO,6BAAQ;",
"names": ["_a", "_b"]
}