{
  "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"]
}
