@talken/talkenkit 2.3.12 → 2.3.13
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.
- package/dist/components/RainbowKitProvider/RainbowKitProvider.d.ts +8 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1030 -117
- package/dist/solana/SolanaWalletProvider.d.ts +7 -2
- package/dist/solana/hooks/index.d.ts +12 -0
- package/dist/solana/hooks/useSolanaAccount.d.ts +98 -0
- package/dist/solana/hooks/useSolanaConnection.d.ts +72 -0
- package/dist/solana/hooks/useSolanaSendTransaction.d.ts +98 -0
- package/dist/solana/hooks/useSolanaSignMessage.d.ts +82 -0
- package/dist/wallets/walletConnectors/abcWallet/abcApi.d.ts +2 -1
- package/dist/wallets/walletConnectors/abcWallet/abcApi.js +4 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +4 -3
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.d.ts +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +6 -5
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.d.ts +14 -19
- package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.js +4 -1
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.js +7 -6
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +7 -6
- package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +2 -0
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +5 -4
- package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.d.ts +2 -1
- package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +5 -4
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +13 -12
- package/dist/wallets/walletConnectors/abcWallet/index.js +27 -26
- package/dist/wallets/walletConnectors/abcWallet/networkConfig.d.ts +189 -0
- package/dist/wallets/walletConnectors/abcWallet/networkConfig.js +33 -0
- package/dist/wallets/walletConnectors/abcWallet/types.d.ts +19 -2
- package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
- package/dist/wallets/walletConnectors/{chunk-24SQ562R.js → chunk-25LLSYLN.js} +12 -12
- package/dist/wallets/walletConnectors/{chunk-3WVSOTC4.js → chunk-2E2TVL4A.js} +8 -8
- package/dist/wallets/walletConnectors/chunk-2GODJ6NU.js +398 -0
- package/dist/wallets/walletConnectors/{chunk-43LOEA55.js → chunk-2PDAR5KA.js} +10 -10
- package/dist/wallets/walletConnectors/{chunk-4LVXMPGO.js → chunk-2RVWT7N7.js} +1 -1
- package/dist/wallets/walletConnectors/{chunk-3UNSJDAS.js → chunk-2XFKRGDK.js} +10 -10
- package/dist/wallets/walletConnectors/chunk-2ZFMD7GF.js +419 -0
- package/dist/wallets/walletConnectors/chunk-3OYZYIBX.js +361 -0
- package/dist/wallets/walletConnectors/chunk-3WRALPTT.js +403 -0
- package/dist/wallets/walletConnectors/{chunk-2J66VMY5.js → chunk-43LPUTHW.js} +19 -14
- package/dist/wallets/walletConnectors/{chunk-2GIBC7XF.js → chunk-4H6TSGD7.js} +5 -5
- package/dist/wallets/walletConnectors/chunk-4OPIMV4N.js +376 -0
- package/dist/wallets/walletConnectors/{chunk-5OFAP55G.js → chunk-4QPXFUDC.js} +1 -1
- package/dist/wallets/walletConnectors/chunk-4TFDVNMF.js +370 -0
- package/dist/wallets/walletConnectors/chunk-4VO5XDCV.js +63 -0
- package/dist/wallets/walletConnectors/chunk-4YKA5OIT.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-OEB7MRS5.js → chunk-5AAIZIND.js} +3 -3
- package/dist/wallets/walletConnectors/{chunk-SUXK3JW6.js → chunk-5DDAV4BZ.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-5KCTAEQB.js +391 -0
- package/dist/wallets/walletConnectors/chunk-5OKJZU3F.js +63 -0
- package/dist/wallets/walletConnectors/chunk-5PBZRTEM.js +63 -0
- package/dist/wallets/walletConnectors/chunk-5SLXMCS2.js +34 -0
- package/dist/wallets/walletConnectors/{chunk-BHMMHU7Y.js → chunk-5VL7T6AY.js} +46 -5
- package/dist/wallets/walletConnectors/{chunk-NKJLO4QH.js → chunk-62ZC3BGR.js} +4 -4
- package/dist/wallets/walletConnectors/{chunk-OHRTTVNJ.js → chunk-636QKXSN.js} +1 -1
- package/dist/wallets/walletConnectors/chunk-6DMWYDIO.js +390 -0
- package/dist/wallets/walletConnectors/{chunk-ESRU5KCF.js → chunk-6KO5WQ5C.js} +7 -2
- package/dist/wallets/walletConnectors/chunk-6URAISNZ.js +388 -0
- package/dist/wallets/walletConnectors/{chunk-6KUCZXJE.js → chunk-6V3335LE.js} +7 -7
- package/dist/wallets/walletConnectors/{chunk-CNHVIXPV.js → chunk-75NE2OUD.js} +48 -7
- package/dist/wallets/walletConnectors/chunk-76O6JH3T.js +39 -0
- package/dist/wallets/walletConnectors/chunk-7UHZX522.js +369 -0
- package/dist/wallets/walletConnectors/{chunk-DMRM7XAS.js → chunk-A7KV643A.js} +21 -16
- package/dist/wallets/walletConnectors/chunk-ADMITKUE.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-P2E4LSYH.js → chunk-AKYC5VZG.js} +8 -3
- package/dist/wallets/walletConnectors/chunk-AL7R7JQU.js +124 -0
- package/dist/wallets/walletConnectors/{chunk-3J3XZMJ7.js → chunk-AY4TMZG6.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-ASUECF4H.js → chunk-AZRYTD6J.js} +8 -8
- package/dist/wallets/walletConnectors/{chunk-BKXPGZMQ.js → chunk-B23AX3U3.js} +46 -5
- package/dist/wallets/walletConnectors/{chunk-SPR4W5TG.js → chunk-BNSBK5PQ.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-RSZS2RMC.js → chunk-BPLIASJE.js} +1 -1
- package/dist/wallets/walletConnectors/chunk-CB4CSXNY.js +63 -0
- package/dist/wallets/walletConnectors/chunk-CGLM5KXH.js +1683 -0
- package/dist/wallets/walletConnectors/chunk-CNI3U6UK.js +39 -0
- package/dist/wallets/walletConnectors/chunk-CSLAM3IH.js +39 -0
- package/dist/wallets/walletConnectors/chunk-CTSR4YUH.js +376 -0
- package/dist/wallets/walletConnectors/{chunk-X5LRFFBP.js → chunk-D6MSZOEN.js} +90 -94
- package/dist/wallets/walletConnectors/{chunk-DAZZIITX.js → chunk-DA7TFV7F.js} +7 -2
- package/dist/wallets/walletConnectors/{chunk-JBRW4UTW.js → chunk-DHVD2NUK.js} +9 -4
- package/dist/wallets/walletConnectors/chunk-DPL5VRGJ.js +156 -0
- package/dist/wallets/walletConnectors/chunk-DSEWXHE6.js +44 -0
- package/dist/wallets/walletConnectors/chunk-DU6M25IR.js +269 -0
- package/dist/wallets/walletConnectors/chunk-E3PO2XKJ.js +433 -0
- package/dist/wallets/walletConnectors/chunk-E5YF2QC2.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ENAFVPRZ.js +374 -0
- package/dist/wallets/walletConnectors/chunk-ENHE6LS7.js +368 -0
- package/dist/wallets/walletConnectors/chunk-EPUITAK3.js +63 -0
- package/dist/wallets/walletConnectors/chunk-EQZ6IAAM.js +39 -0
- package/dist/wallets/walletConnectors/chunk-F2LC3G36.js +269 -0
- package/dist/wallets/walletConnectors/chunk-F5HCFRTK.js +1683 -0
- package/dist/wallets/walletConnectors/chunk-F5Q4VDER.js +156 -0
- package/dist/wallets/walletConnectors/{chunk-HDYBRMYW.js → chunk-FGBDWBWQ.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-MY5YIDOB.js → chunk-FROV5VDF.js} +6 -24
- package/dist/wallets/walletConnectors/chunk-GUUGKRZB.js +63 -0
- package/dist/wallets/walletConnectors/chunk-GZ55OZIT.js +157 -0
- package/dist/wallets/walletConnectors/chunk-H7SRDBPI.js +384 -0
- package/dist/wallets/walletConnectors/chunk-HDXHEBGM.js +403 -0
- package/dist/wallets/walletConnectors/chunk-HGI3FA2A.js +157 -0
- package/dist/wallets/walletConnectors/chunk-HMSFBY7V.js +39 -0
- package/dist/wallets/walletConnectors/{chunk-DP2HUTLN.js → chunk-IABRLMSP.js} +7 -7
- package/dist/wallets/walletConnectors/chunk-IL52SYJK.js +44 -0
- package/dist/wallets/walletConnectors/{chunk-KD2OAMDA.js → chunk-ISAMATTH.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-IXPVDDZD.js +365 -0
- package/dist/wallets/walletConnectors/{chunk-GLPRLW3S.js → chunk-JNKT32C7.js} +7 -7
- package/dist/wallets/walletConnectors/chunk-JW4RQLJT.js +156 -0
- package/dist/wallets/walletConnectors/chunk-JXPLBYVW.js +157 -0
- package/dist/wallets/walletConnectors/chunk-K6BNM6VP.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-WAO3KL5U.js → chunk-KJHOGJ3A.js} +13 -5
- package/dist/wallets/walletConnectors/chunk-KN4I4DKC.js +157 -0
- package/dist/wallets/walletConnectors/chunk-KNK6YFEK.js +63 -0
- package/dist/wallets/walletConnectors/chunk-KSKNDJYL.js +63 -0
- package/dist/wallets/walletConnectors/chunk-KYA553D7.js +371 -0
- package/dist/wallets/walletConnectors/{chunk-TUUNSVKZ.js → chunk-KZG5KU7A.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-L57JYRQZ.js +63 -0
- package/dist/wallets/walletConnectors/chunk-LB3ISYMC.js +44 -0
- package/dist/wallets/walletConnectors/{chunk-25JJ3PT5.js → chunk-LLFZ4GNK.js} +43 -5
- package/dist/wallets/walletConnectors/chunk-LLJELGMX.js +63 -0
- package/dist/wallets/walletConnectors/chunk-LOP2R3QJ.js +1683 -0
- package/dist/wallets/walletConnectors/chunk-LTX3ZSQI.js +39 -0
- package/dist/wallets/walletConnectors/chunk-MF46Q5RP.js +44 -0
- package/dist/wallets/walletConnectors/chunk-MGPMSUFB.js +372 -0
- package/dist/wallets/walletConnectors/chunk-MK45L6B7.js +123 -0
- package/dist/wallets/walletConnectors/chunk-MOJC7LE6.js +63 -0
- package/dist/wallets/walletConnectors/chunk-MT2QHWYE.js +156 -0
- package/dist/wallets/walletConnectors/{chunk-W7R3JGSC.js → chunk-MZOFZ2NQ.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-N6CRHH2H.js +400 -0
- package/dist/wallets/walletConnectors/chunk-N6QHQDQP.js +381 -0
- package/dist/wallets/walletConnectors/chunk-NALBGCUS.js +63 -0
- package/dist/wallets/walletConnectors/chunk-NOD2A4Q7.js +430 -0
- package/dist/wallets/walletConnectors/chunk-NOL7MBZU.js +1683 -0
- package/dist/wallets/walletConnectors/{chunk-IOLHAU7H.js → chunk-NX5MQHSQ.js} +10 -2
- package/dist/wallets/walletConnectors/chunk-OA5K3AQN.js +370 -0
- package/dist/wallets/walletConnectors/chunk-Q3LW5UK5.js +135 -0
- package/dist/wallets/walletConnectors/chunk-QDCXRBX6.js +63 -0
- package/dist/wallets/walletConnectors/chunk-QHHR2DQK.js +269 -0
- package/dist/wallets/walletConnectors/chunk-QIDXRXV6.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-IA4EQFSS.js → chunk-QKUFFUM5.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-QNY3A52P.js +156 -0
- package/dist/wallets/walletConnectors/chunk-QQEXHPNE.js +385 -0
- package/dist/wallets/walletConnectors/chunk-RASK6XWI.js +436 -0
- package/dist/wallets/walletConnectors/chunk-RFMJC64I.js +364 -0
- package/dist/wallets/walletConnectors/chunk-RVJ32DTM.js +373 -0
- package/dist/wallets/walletConnectors/{chunk-U2CUEL35.js → chunk-RY4RAB3D.js} +1 -1
- package/dist/wallets/walletConnectors/chunk-S64JWSGA.js +63 -0
- package/dist/wallets/walletConnectors/chunk-SG6KN7NJ.js +377 -0
- package/dist/wallets/walletConnectors/chunk-SGLHM6AU.js +157 -0
- package/dist/wallets/walletConnectors/chunk-SK2XYNK4.js +44 -0
- package/dist/wallets/walletConnectors/chunk-SKBQVOZL.js +1683 -0
- package/dist/wallets/walletConnectors/chunk-SQAILDYS.js +1683 -0
- package/dist/wallets/walletConnectors/chunk-SRTBTRBU.js +372 -0
- package/dist/wallets/walletConnectors/chunk-T23ZNPHL.js +269 -0
- package/dist/wallets/walletConnectors/chunk-T3AL3VAQ.js +44 -0
- package/dist/wallets/walletConnectors/chunk-T4QIWLWU.js +357 -0
- package/dist/wallets/walletConnectors/chunk-T7NXVYE6.js +372 -0
- package/dist/wallets/walletConnectors/chunk-THQEUSX4.js +63 -0
- package/dist/wallets/walletConnectors/chunk-TLJSBPMQ.js +63 -0
- package/dist/wallets/walletConnectors/chunk-TPGMXU6M.js +63 -0
- package/dist/wallets/walletConnectors/chunk-UBDYVLI4.js +370 -0
- package/dist/wallets/walletConnectors/chunk-UH6AUMQQ.js +63 -0
- package/dist/wallets/walletConnectors/chunk-UTPJPY4R.js +44 -0
- package/dist/wallets/walletConnectors/{chunk-W23N7VC4.js → chunk-UV5HHESJ.js} +4 -22
- package/dist/wallets/walletConnectors/{chunk-4UGXLYKP.js → chunk-V3XKL7AD.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-VIH2AOMF.js +63 -0
- package/dist/wallets/walletConnectors/chunk-VIRHJPFQ.js +269 -0
- package/dist/wallets/walletConnectors/chunk-VQI2B7XW.js +269 -0
- package/dist/wallets/walletConnectors/chunk-VQYANLI2.js +44 -0
- package/dist/wallets/walletConnectors/chunk-VRTDF4O3.js +63 -0
- package/dist/wallets/walletConnectors/chunk-VRUPSQK4.js +269 -0
- package/dist/wallets/walletConnectors/chunk-VWZP7KJD.js +157 -0
- package/dist/wallets/walletConnectors/chunk-VZCI2K6Y.js +124 -0
- package/dist/wallets/walletConnectors/chunk-WIZH35IC.js +39 -0
- package/dist/wallets/walletConnectors/chunk-WOZ5REMN.js +436 -0
- package/dist/wallets/walletConnectors/chunk-WPEGBCDE.js +157 -0
- package/dist/wallets/walletConnectors/chunk-WPJESUNP.js +379 -0
- package/dist/wallets/walletConnectors/chunk-WZ322AWR.js +44 -0
- package/dist/wallets/walletConnectors/chunk-WZAIQD3G.js +156 -0
- package/dist/wallets/walletConnectors/chunk-XC5EXBMU.js +385 -0
- package/dist/wallets/walletConnectors/chunk-XWCS76ZC.js +1683 -0
- package/dist/wallets/walletConnectors/chunk-XZHB7HU4.js +157 -0
- package/dist/wallets/walletConnectors/chunk-Y5677NVB.js +285 -0
- package/dist/wallets/walletConnectors/chunk-YC73LM6F.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-RLBGBBIO.js → chunk-YEHCPL4R.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-YHWQOKFW.js +39 -0
- package/dist/wallets/walletConnectors/chunk-YIB6VMOF.js +156 -0
- package/dist/wallets/walletConnectors/chunk-YPL4NJGA.js +156 -0
- package/dist/wallets/walletConnectors/chunk-YQP7DZ7T.js +269 -0
- package/dist/wallets/walletConnectors/chunk-ZBMGJDJA.js +436 -0
- package/dist/wallets/walletConnectors/{chunk-XYPR4BAF.js → chunk-ZIYAL44B.js} +1 -1
- package/dist/wallets/walletConnectors/chunk-ZX6LABEF.js +130 -0
- package/dist/wallets/walletConnectors/index.js +41 -40
- package/package.json +1 -1
- package/dist/Arc-R3PUWRPJ.js +0 -7
- package/dist/Brave-24BM36UM.js +0 -7
- package/dist/Browser-4R4QKTV2.js +0 -7
- package/dist/Chrome-TLI42HDP.js +0 -7
- package/dist/Edge-AZ34LAFM.js +0 -7
- package/dist/Firefox-ZDK7RHKK.js +0 -7
- package/dist/Linux-VYP66PDO.js +0 -7
- package/dist/Macos-5QL4JBJE.js +0 -7
- package/dist/Opera-BKMCKUXC.js +0 -7
- package/dist/Safari-PXQIVS6N.js +0 -7
- package/dist/Windows-GTAT3OTE.js +0 -7
- package/dist/abcWallet-AYWSIGAG.js +0 -7
- package/dist/ar_AR-ZRPPM56D.js +0 -7
- package/dist/arbitrum-IA4OWRTN.js +0 -7
- package/dist/argentWallet-M6SBG4CU.js +0 -7
- package/dist/assets-NU2OP443.js +0 -7
- package/dist/avalanche-MXEFEDSW.js +0 -7
- package/dist/base-Z4LFBE5D.js +0 -7
- package/dist/berasigWallet-NNBFDHFK.js +0 -7
- package/dist/bestWallet-XRIABRUE.js +0 -7
- package/dist/bifrostWallet-ORF3DABG.js +0 -7
- package/dist/binanceWallet-BCWLBY3Q.js +0 -7
- package/dist/bitgetWallet-CLYTW54T.js +0 -7
- package/dist/bitskiWallet-X5NWL5CE.js +0 -7
- package/dist/bitverseWallet-6SGDFATJ.js +0 -7
- package/dist/blast-TN2WIMWF.js +0 -7
- package/dist/bloomWallet-MXLAOWS6.js +0 -7
- package/dist/braveWallet-6QAF4GDN.js +0 -7
- package/dist/bsc-RVE67I5L.js +0 -7
- package/dist/bybitWallet-GR4PFINZ.js +0 -7
- package/dist/celo-E6XU57FO.js +0 -7
- package/dist/chunk-M2CMB5B2.js +0 -93
- package/dist/chunk-Y7ZSI2YC.js +0 -227
- package/dist/clvWallet-ZIMSRU5J.js +0 -7
- package/dist/coin98Wallet-RFXRNVWP.js +0 -7
- package/dist/coinbaseWallet-WWX6LF36.js +0 -7
- package/dist/compassWallet-3LBTWCKI.js +0 -7
- package/dist/components/AbcLoginModal/AbcAuthModal.d.ts +0 -43
- package/dist/components/AbcLoginModal/AbcLoginModal.d.ts +0 -18
- package/dist/components/AbcLoginModal/EmailLogin.d.ts +0 -11
- package/dist/components/AbcLoginModal/OtpLogin.d.ts +0 -13
- package/dist/components/AbcLoginModal/PasswordInput.d.ts +0 -12
- package/dist/components/AbcLoginModal/PinInput.d.ts +0 -13
- package/dist/components/AbcLoginModal/PinSetup.d.ts +0 -11
- package/dist/components/AbcLoginModal/index.d.ts +0 -12
- package/dist/components/AbcLoginModal/styles.css.d.ts +0 -29
- package/dist/components/ConnectOptions/AbcWaasAuth/hooks/useUserTypeDetection.d.ts +0 -0
- package/dist/components/ConnectOptions/AbcWaasLoginSection.css.d.ts +0 -8
- package/dist/components/ConnectOptions/AbcWaasLoginSection.d.ts +0 -8
- package/dist/components/ConnectOptions/CompactMobileOptions.css.d.ts +0 -26
- package/dist/components/ConnectOptions/CompactMobileOptions.d.ts +0 -19
- package/dist/components/ConnectOptions/DesktopOptions.css.d.ts +0 -4
- package/dist/components/ConnectOptions/DesktopOptions.d.ts +0 -34
- package/dist/components/ConnectOptions/ExternalWallets/WalletList.d.ts +0 -94
- package/dist/connect-MR6XDLIE.js +0 -7
- package/dist/coreWallet-52SXITOT.js +0 -7
- package/dist/create-X4WFHLCW.js +0 -7
- package/dist/cronos-ROYR77VZ.js +0 -7
- package/dist/dawnWallet-ONVAA3S4.js +0 -7
- package/dist/de_DE-GYZFZXWH.js +0 -7
- package/dist/desigWallet-WJMSF3PS.js +0 -7
- package/dist/en_US-AV7YDYDW.js +0 -7
- package/dist/encryption-3YHRI3PA.js +0 -14
- package/dist/enkryptWallet-FR4QCDFK.js +0 -7
- package/dist/es_419-OGVOQEFZ.js +0 -7
- package/dist/ethereum-RFBAMUVK.js +0 -7
- package/dist/flow-NBCRNYVF.js +0 -7
- package/dist/foxWallet-5ESSNXJV.js +0 -7
- package/dist/fr_FR-Q5QBQBX2.js +0 -1355
- package/dist/frameWallet-FDBUY4AA.js +0 -7
- package/dist/frontierWallet-HNIG7QYQ.js +0 -7
- package/dist/gateWallet-ZVEZILRP.js +0 -7
- package/dist/gnosis-T7U5EW2Q.js +0 -7
- package/dist/hardhat-NEEC6JX7.js +0 -7
- package/dist/hi_IN-7I7LRHGW.js +0 -7
- package/dist/id_ID-ZMGZ2JFV.js +0 -7
- package/dist/imTokenWallet-N2MYFADO.js +0 -7
- package/dist/injectedWallet-H7LYKTQS.js +0 -7
- package/dist/iopayWallet-IJHJ7NYT.js +0 -7
- package/dist/ja_JP-NYBCHQTZ.js +0 -7
- package/dist/kaia-A33DVQBT.js +0 -7
- package/dist/kaiaWallet-5K6WZ3AH.js +0 -7
- package/dist/kaikasWallet-F6Z6IPWN.js +0 -7
- package/dist/ko_KR-67WE736M.js +0 -7
- package/dist/krakenWallet-DAOXUKWO.js +0 -7
- package/dist/kresusWallet-AUJWLAOF.js +0 -7
- package/dist/ledgerWallet-KZKJ5Q2S.js +0 -7
- package/dist/login-CWDTIDNK.js +0 -7
- package/dist/magicEden-PKT2ZXEQ.js +0 -7
- package/dist/manta-5V6W5D7G.js +0 -7
- package/dist/mantle-KBL3OIYT.js +0 -7
- package/dist/metaMaskWallet-YFHEHW7V.js +0 -7
- package/dist/mewWallet-6V4UZOQC.js +0 -7
- package/dist/ms_MY-65AJIBUS.js +0 -7
- package/dist/nestWallet-BFZZZYLV.js +0 -7
- package/dist/oktoWallet-GJFOPPEA.js +0 -7
- package/dist/okxWallet-GJMKZIND.js +0 -7
- package/dist/omniWallet-DEYUMT4A.js +0 -7
- package/dist/oneInchWallet-D7BQOLOO.js +0 -7
- package/dist/oneKeyWallet-4MM7G2SZ.js +0 -7
- package/dist/optimism-YWJ3IQHA.js +0 -7
- package/dist/paraSwapWallet-TMV5MUEF.js +0 -7
- package/dist/phantomWallet-IPGVKCAB.js +0 -7
- package/dist/polygon-WWEUOMKW.js +0 -7
- package/dist/pt_BR-DMJANC65.js +0 -7
- package/dist/rabbyWallet-FLVUU35F.js +0 -7
- package/dist/rainbowWallet-2SR6TVBF.js +0 -7
- package/dist/ramperWallet-AF5AKK2S.js +0 -7
- package/dist/refresh-HJGJRASX.js +0 -7
- package/dist/ronin-PNHX5V6H.js +0 -7
- package/dist/roninWallet-SAB5ESVK.js +0 -7
- package/dist/ru_RU-WER7RQ6A.js +0 -1355
- package/dist/safeWallet-VUYZPLY4.js +0 -7
- package/dist/safeheronWallet-6JG77AKC.js +0 -7
- package/dist/safepalWallet-KQJ4OCNH.js +0 -7
- package/dist/scan-DEOT2M37.js +0 -7
- package/dist/scroll-NMZWDUQH.js +0 -7
- package/dist/secure-GEK7TTJY.js +0 -8
- package/dist/secure-NK6LHWDT.js +0 -7
- package/dist/seifWallet-QATOS33A.js +0 -7
- package/dist/sign-A7IJEUT5.js +0 -7
- package/dist/subWallet-LOZELSAO.js +0 -7
- package/dist/tahoWallet-L6KHUNKD.js +0 -7
- package/dist/talismanWallet-BLXUHONV.js +0 -7
- package/dist/th_TH-JOSHEZ6D.js +0 -1355
- package/dist/tokenPocketWallet-BVMBOYTC.js +0 -7
- package/dist/tokenaryWallet-Z2IGVXSA.js +0 -7
- package/dist/tr_TR-EAMG2YPO.js +0 -1355
- package/dist/trustWallet-E2GVGE4U.js +0 -7
- package/dist/uk_UA-GO2TRVWA.js +0 -1355
- package/dist/uniswapWallet-T26M44R7.js +0 -7
- package/dist/valoraWallet-RX3ONO47.js +0 -7
- package/dist/vi_VN-5HLLSOJA.js +0 -7
- package/dist/walletConnectWallet-FNSU4KNU.js +0 -7
- package/dist/wallets/walletConnectors/chunk-4IRVZPIN.js +0 -63
- package/dist/wallets/walletConnectors/chunk-4NLOE5S3.js +0 -63
- package/dist/wallets/walletConnectors/chunk-5LXC3Z5Q.js +0 -567
- package/dist/wallets/walletConnectors/chunk-5MSMALF7.js +0 -63
- package/dist/wallets/walletConnectors/chunk-6KOHIL7T.js +0 -63
- package/dist/wallets/walletConnectors/chunk-6RJNPH5L.js +0 -280
- package/dist/wallets/walletConnectors/chunk-6TLWAEJV.js +0 -63
- package/dist/wallets/walletConnectors/chunk-6YPK343Z.js +0 -63
- package/dist/wallets/walletConnectors/chunk-73B7HWCT.js +0 -436
- package/dist/wallets/walletConnectors/chunk-74ALNZG4.js +0 -63
- package/dist/wallets/walletConnectors/chunk-7FFIZE76.js +0 -63
- package/dist/wallets/walletConnectors/chunk-7P5HZGEV.js +0 -627
- package/dist/wallets/walletConnectors/chunk-A6LBRVGP.js +0 -63
- package/dist/wallets/walletConnectors/chunk-AEQOPQL6.js +0 -240
- package/dist/wallets/walletConnectors/chunk-BC2UIAF7.js +0 -63
- package/dist/wallets/walletConnectors/chunk-BXCOGV3N.js +0 -599
- package/dist/wallets/walletConnectors/chunk-CM5OGUJV.js +0 -63
- package/dist/wallets/walletConnectors/chunk-F4JFONDA.js +0 -601
- package/dist/wallets/walletConnectors/chunk-GOPPX56D.js +0 -63
- package/dist/wallets/walletConnectors/chunk-GXHCAEWR.js +0 -63
- package/dist/wallets/walletConnectors/chunk-HOE4UOHR.js +0 -514
- package/dist/wallets/walletConnectors/chunk-HS2FAOAJ.js +0 -63
- package/dist/wallets/walletConnectors/chunk-I5V7LWJH.js +0 -63
- package/dist/wallets/walletConnectors/chunk-IHM7I7D5.js +0 -63
- package/dist/wallets/walletConnectors/chunk-J4HQCVKX.js +0 -63
- package/dist/wallets/walletConnectors/chunk-JCMXNOQ5.js +0 -63
- package/dist/wallets/walletConnectors/chunk-JJAJOFZI.js +0 -63
- package/dist/wallets/walletConnectors/chunk-KFIUFVQH.js +0 -624
- package/dist/wallets/walletConnectors/chunk-KFROJI25.js +0 -535
- package/dist/wallets/walletConnectors/chunk-KHVILXGK.js +0 -514
- package/dist/wallets/walletConnectors/chunk-LGT7LQAJ.js +0 -63
- package/dist/wallets/walletConnectors/chunk-LHBQ2Z3Q.js +0 -63
- package/dist/wallets/walletConnectors/chunk-M76GLEFL.js +0 -63
- package/dist/wallets/walletConnectors/chunk-MFIE6UCG.js +0 -63
- package/dist/wallets/walletConnectors/chunk-NA5G3LSC.js +0 -63
- package/dist/wallets/walletConnectors/chunk-NASGGIUS.js +0 -63
- package/dist/wallets/walletConnectors/chunk-NLKL4KD2.js +0 -63
- package/dist/wallets/walletConnectors/chunk-NURTFXQU.js +0 -568
- package/dist/wallets/walletConnectors/chunk-NVM3JZ4L.js +0 -63
- package/dist/wallets/walletConnectors/chunk-NWDLOM7Q.js +0 -646
- package/dist/wallets/walletConnectors/chunk-OMYDLPUM.js +0 -63
- package/dist/wallets/walletConnectors/chunk-P2MTINFI.js +0 -280
- package/dist/wallets/walletConnectors/chunk-PDWD3ZCR.js +0 -63
- package/dist/wallets/walletConnectors/chunk-PHD5KHRQ.js +0 -63
- package/dist/wallets/walletConnectors/chunk-PLL7P7HY.js +0 -63
- package/dist/wallets/walletConnectors/chunk-PQJWUKUD.js +0 -63
- package/dist/wallets/walletConnectors/chunk-PUFQKZA7.js +0 -63
- package/dist/wallets/walletConnectors/chunk-PZJYVPGG.js +0 -63
- package/dist/wallets/walletConnectors/chunk-Q5B5ICDI.js +0 -63
- package/dist/wallets/walletConnectors/chunk-RUZBOPMI.js +0 -63
- package/dist/wallets/walletConnectors/chunk-RYXFFAB2.js +0 -63
- package/dist/wallets/walletConnectors/chunk-S2B56ZVJ.js +0 -481
- package/dist/wallets/walletConnectors/chunk-SFP47DS6.js +0 -63
- package/dist/wallets/walletConnectors/chunk-SMACAFVM.js +0 -63
- package/dist/wallets/walletConnectors/chunk-SNZL5LJ6.js +0 -637
- package/dist/wallets/walletConnectors/chunk-SSDCG5BG.js +0 -63
- package/dist/wallets/walletConnectors/chunk-VLEVJVJR.js +0 -63
- package/dist/wallets/walletConnectors/chunk-VXUJQQDI.js +0 -63
- package/dist/wallets/walletConnectors/chunk-W2VDZD74.js +0 -478
- package/dist/wallets/walletConnectors/chunk-WCPI7IUU.js +0 -63
- package/dist/wallets/walletConnectors/chunk-WYSKBMHW.js +0 -280
- package/dist/wallets/walletConnectors/chunk-XDRZSWHB.js +0 -63
- package/dist/wallets/walletConnectors/chunk-XEIKWKH7.js +0 -63
- package/dist/wallets/walletConnectors/chunk-XKVRDEDK.js +0 -63
- package/dist/wallets/walletConnectors/chunk-XYAAXWWU.js +0 -63
- package/dist/wallets/walletConnectors/chunk-Z3WO2EBZ.js +0 -63
- package/dist/wallets/walletConnectors/chunk-ZADNKI5I.js +0 -63
- package/dist/wallets/walletConnectors/chunk-ZAGAF6PO.js +0 -63
- package/dist/wigwamWallet-5GKUN7ZJ.js +0 -7
- package/dist/xdc-X7V4QFNF.js +0 -7
- package/dist/xdefiWallet-ZA65GDWS.js +0 -7
- package/dist/zealWallet-URNQ2AWF.js +0 -7
- package/dist/zerionWallet-CYFHB5PA.js +0 -7
- package/dist/zetachain-BMJKVYBN.js +0 -7
- package/dist/zh_CN-THPIFVWJ.js +0 -7
- package/dist/zh_HK-R7XP4TGF.js +0 -7
- package/dist/zh_TW-F5LD752V.js +0 -7
- package/dist/zkSync-JL26RB7U.js +0 -7
- package/dist/zora-YZH32HP3.js +0 -7
package/dist/index.js
CHANGED
|
@@ -2459,16 +2459,21 @@ function cssStringFromTheme(theme, options = {}) {
|
|
|
2459
2459
|
}
|
|
2460
2460
|
|
|
2461
2461
|
// src/solana/SolanaWalletProvider.tsx
|
|
2462
|
-
import {
|
|
2462
|
+
import {
|
|
2463
|
+
ConnectionProvider,
|
|
2464
|
+
WalletProvider
|
|
2465
|
+
} from "@solana/wallet-adapter-react";
|
|
2463
2466
|
import {
|
|
2464
2467
|
PhantomWalletAdapter,
|
|
2465
2468
|
SolflareWalletAdapter
|
|
2466
2469
|
} from "@solana/wallet-adapter-wallets";
|
|
2470
|
+
import { clusterApiUrl } from "@solana/web3.js";
|
|
2467
2471
|
import React13, { useMemo as useMemo6 } from "react";
|
|
2468
2472
|
function SolanaWalletProvider({
|
|
2469
2473
|
children,
|
|
2470
2474
|
wallets: customWallets,
|
|
2471
|
-
autoConnect = false
|
|
2475
|
+
autoConnect = false,
|
|
2476
|
+
endpoint
|
|
2472
2477
|
}) {
|
|
2473
2478
|
const wallets = useMemo6(() => {
|
|
2474
2479
|
if (customWallets) {
|
|
@@ -2481,7 +2486,11 @@ function SolanaWalletProvider({
|
|
|
2481
2486
|
// TODO: Add AbcSolanaWalletAdapter when ready
|
|
2482
2487
|
];
|
|
2483
2488
|
}, [customWallets]);
|
|
2484
|
-
|
|
2489
|
+
const rpcEndpoint = useMemo6(
|
|
2490
|
+
() => endpoint || clusterApiUrl("devnet"),
|
|
2491
|
+
[endpoint]
|
|
2492
|
+
);
|
|
2493
|
+
return /* @__PURE__ */ React13.createElement(ConnectionProvider, { endpoint: rpcEndpoint }, /* @__PURE__ */ React13.createElement(WalletProvider, { wallets, autoConnect }, children));
|
|
2485
2494
|
}
|
|
2486
2495
|
|
|
2487
2496
|
// src/components/RainbowKitProvider/AppContext.ts
|
|
@@ -2870,7 +2879,10 @@ function InternalPinProvider({
|
|
|
2870
2879
|
);
|
|
2871
2880
|
const handleModalClose = useCallback3(() => {
|
|
2872
2881
|
if (pinRejecter) {
|
|
2873
|
-
|
|
2882
|
+
const error3 = new Error("User cancelled PIN request");
|
|
2883
|
+
error3.code = 4001;
|
|
2884
|
+
error3.cancelled = true;
|
|
2885
|
+
pinRejecter(error3);
|
|
2874
2886
|
setIsModalOpen(false);
|
|
2875
2887
|
setPinResolver(null);
|
|
2876
2888
|
setPinRejecter(null);
|
|
@@ -2892,27 +2904,28 @@ function InternalPinProvider({
|
|
|
2892
2904
|
}
|
|
2893
2905
|
const setupPinCallback = async () => {
|
|
2894
2906
|
try {
|
|
2907
|
+
if (!connector || typeof connector.getProvider !== "function") {
|
|
2908
|
+
return;
|
|
2909
|
+
}
|
|
2895
2910
|
const provider = await connector.getProvider();
|
|
2896
2911
|
if (provider && typeof provider.setRequestPinCallback === "function") {
|
|
2897
2912
|
provider.setRequestPinCallback(() => requestPin("transaction"));
|
|
2898
2913
|
}
|
|
2899
|
-
} catch (
|
|
2900
|
-
console.error(
|
|
2901
|
-
"[InternalPinProvider] Failed to setup PIN callback:",
|
|
2902
|
-
error3
|
|
2903
|
-
);
|
|
2914
|
+
} catch (_error) {
|
|
2904
2915
|
}
|
|
2905
2916
|
};
|
|
2906
2917
|
setupPinCallback();
|
|
2907
2918
|
return () => {
|
|
2908
2919
|
const cleanup = async () => {
|
|
2909
2920
|
try {
|
|
2921
|
+
if (!connector || typeof connector.getProvider !== "function") {
|
|
2922
|
+
return;
|
|
2923
|
+
}
|
|
2910
2924
|
const provider = await connector.getProvider();
|
|
2911
2925
|
if (provider && typeof provider.setRequestPinCallback === "function") {
|
|
2912
2926
|
provider.setRequestPinCallback(void 0);
|
|
2913
2927
|
}
|
|
2914
|
-
} catch (
|
|
2915
|
-
console.error("[InternalPinProvider] Failed to cleanup:", error3);
|
|
2928
|
+
} catch (_error) {
|
|
2916
2929
|
}
|
|
2917
2930
|
};
|
|
2918
2931
|
cleanup();
|
|
@@ -3051,7 +3064,7 @@ function setRainbowKitVersion({ version }) {
|
|
|
3051
3064
|
}
|
|
3052
3065
|
function useFingerprint() {
|
|
3053
3066
|
const fingerprint = useCallback4(() => {
|
|
3054
|
-
setRainbowKitVersion({ version: "2.3.
|
|
3067
|
+
setRainbowKitVersion({ version: "2.3.13" });
|
|
3055
3068
|
}, []);
|
|
3056
3069
|
useEffect11(() => {
|
|
3057
3070
|
fingerprint();
|
|
@@ -3840,6 +3853,7 @@ function RainbowKitProvider({
|
|
|
3840
3853
|
avatar,
|
|
3841
3854
|
children,
|
|
3842
3855
|
coolMode = false,
|
|
3856
|
+
autoReconnect = true,
|
|
3843
3857
|
disableAutoPinProvider = false,
|
|
3844
3858
|
id,
|
|
3845
3859
|
initialChain,
|
|
@@ -3911,7 +3925,15 @@ function RainbowKitProvider({
|
|
|
3911
3925
|
if (!enableSolana) {
|
|
3912
3926
|
return providerTree;
|
|
3913
3927
|
}
|
|
3914
|
-
|
|
3928
|
+
const solanaAutoConnect = autoReconnect ?? solanaConfig.autoConnect ?? true;
|
|
3929
|
+
return /* @__PURE__ */ React26.createElement(
|
|
3930
|
+
SolanaWalletProvider,
|
|
3931
|
+
{
|
|
3932
|
+
autoConnect: solanaAutoConnect,
|
|
3933
|
+
endpoint: solanaConfig.rpcEndpoint
|
|
3934
|
+
},
|
|
3935
|
+
/* @__PURE__ */ React26.createElement(MultiChainProvider, { enableSolana: true, defaultChain: "evm" }, providerTree)
|
|
3936
|
+
);
|
|
3915
3937
|
}
|
|
3916
3938
|
|
|
3917
3939
|
// src/components/Dialog/Dialog.css.ts
|
|
@@ -5696,6 +5718,39 @@ function AbcWaasAuthSections(props) {
|
|
|
5696
5718
|
// src/components/ConnectOptions/AbcWaasAuth/hooks/useAbcWaasAuth.ts
|
|
5697
5719
|
import { useState as useState16 } from "react";
|
|
5698
5720
|
|
|
5721
|
+
// src/wallets/walletConnectors/abcWallet/networkConfig.ts
|
|
5722
|
+
var DEFAULT_NETWORK_CONFIG = {
|
|
5723
|
+
evm: {
|
|
5724
|
+
mainnet: 1,
|
|
5725
|
+
// Ethereum Mainnet
|
|
5726
|
+
testnet: 11155111
|
|
5727
|
+
// Sepolia Testnet
|
|
5728
|
+
},
|
|
5729
|
+
solana: {
|
|
5730
|
+
mainnet: "solana" /* Mainnet */,
|
|
5731
|
+
devnet: "solana_devnet" /* Devnet */
|
|
5732
|
+
},
|
|
5733
|
+
bitcoin: {
|
|
5734
|
+
mainnet: "bitcoin" /* Mainnet */,
|
|
5735
|
+
testnet: "bitcoin_testnet" /* Testnet */
|
|
5736
|
+
}
|
|
5737
|
+
};
|
|
5738
|
+
function getEnvironment() {
|
|
5739
|
+
if (typeof process === "undefined") {
|
|
5740
|
+
return "development";
|
|
5741
|
+
}
|
|
5742
|
+
const env = process.env.NEXT_PUBLIC_ENVIRONMENT;
|
|
5743
|
+
return env === "production" ? "production" : "development";
|
|
5744
|
+
}
|
|
5745
|
+
function getSolanaNetwork() {
|
|
5746
|
+
const environment = getEnvironment();
|
|
5747
|
+
return environment === "production" ? DEFAULT_NETWORK_CONFIG.solana.mainnet : DEFAULT_NETWORK_CONFIG.solana.devnet;
|
|
5748
|
+
}
|
|
5749
|
+
function getBitcoinNetwork() {
|
|
5750
|
+
const environment = getEnvironment();
|
|
5751
|
+
return environment === "production" ? DEFAULT_NETWORK_CONFIG.bitcoin.mainnet : DEFAULT_NETWORK_CONFIG.bitcoin.testnet;
|
|
5752
|
+
}
|
|
5753
|
+
|
|
5699
5754
|
// src/wallets/walletConnectors/abcWallet/types.ts
|
|
5700
5755
|
var AbcError = class extends Error {
|
|
5701
5756
|
constructor(code, message, details) {
|
|
@@ -7552,9 +7607,10 @@ var AbcWaasClient = class {
|
|
|
7552
7607
|
);
|
|
7553
7608
|
}
|
|
7554
7609
|
const result = data.result;
|
|
7610
|
+
const solanaNetwork = getSolanaNetwork();
|
|
7555
7611
|
const addressResult = await this.getSolanaAddress(
|
|
7556
7612
|
result.public_key,
|
|
7557
|
-
|
|
7613
|
+
solanaNetwork
|
|
7558
7614
|
);
|
|
7559
7615
|
return {
|
|
7560
7616
|
uid: result.uid || "",
|
|
@@ -7563,7 +7619,8 @@ var AbcWaasClient = class {
|
|
|
7563
7619
|
publicKey: result.public_key,
|
|
7564
7620
|
address: addressResult,
|
|
7565
7621
|
keyId: result.key_id || result.share_id,
|
|
7566
|
-
encryptedShare: result.encrypted_share || ""
|
|
7622
|
+
encryptedShare: result.encrypted_share || "",
|
|
7623
|
+
network: solanaNetwork
|
|
7567
7624
|
};
|
|
7568
7625
|
}
|
|
7569
7626
|
/**
|
|
@@ -10289,7 +10346,6 @@ function useWalletConnection({
|
|
|
10289
10346
|
const isUserRejection = error2?.name === "UserRejectedRequestError" || error2?.code === 4001 || // EIP-1193 user rejection code
|
|
10290
10347
|
error2?.message?.includes("User rejected") || error2?.message?.includes("User denied");
|
|
10291
10348
|
if (isUserRejection) {
|
|
10292
|
-
console.log("[useWalletConnection] User cancelled connection");
|
|
10293
10349
|
return;
|
|
10294
10350
|
}
|
|
10295
10351
|
console.error("[useWalletConnection] Connection failed:", error2);
|
|
@@ -10444,18 +10500,104 @@ function usePinVerification(props) {
|
|
|
10444
10500
|
authState.expiresAt = sensitiveData.expiresAt;
|
|
10445
10501
|
const isExpired = authState.expiresAt ? Date.now() >= authState.expiresAt : true;
|
|
10446
10502
|
if (isExpired) {
|
|
10447
|
-
console.log(
|
|
10448
|
-
|
|
10449
|
-
|
|
10450
|
-
|
|
10451
|
-
|
|
10452
|
-
|
|
10453
|
-
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
|
|
10457
|
-
|
|
10503
|
+
console.log(
|
|
10504
|
+
"[PinVerification] \u23F0 Access token expired, attempting refresh..."
|
|
10505
|
+
);
|
|
10506
|
+
try {
|
|
10507
|
+
const refreshToken = sensitiveData.refreshToken;
|
|
10508
|
+
if (!refreshToken) {
|
|
10509
|
+
throw new Error("No refresh token available");
|
|
10510
|
+
}
|
|
10511
|
+
const apiServerUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
|
|
10512
|
+
const isIframe = typeof window !== "undefined" && window.self !== window.top;
|
|
10513
|
+
const isProd = process.env.NEXT_PUBLIC_ENVIRONMENT === "production";
|
|
10514
|
+
const headers = {
|
|
10515
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
10516
|
+
Accept: "application/json"
|
|
10517
|
+
};
|
|
10518
|
+
if (isProd) {
|
|
10519
|
+
headers["User-Agent"] = "Android";
|
|
10520
|
+
}
|
|
10521
|
+
const response = await fetch(`${apiServerUrl}/abc/abcRefresh`, {
|
|
10522
|
+
method: "POST",
|
|
10523
|
+
headers,
|
|
10524
|
+
credentials: "include",
|
|
10525
|
+
body: new URLSearchParams({
|
|
10526
|
+
refresh_token: refreshToken,
|
|
10527
|
+
isIframe: String(isIframe)
|
|
10528
|
+
}).toString()
|
|
10529
|
+
});
|
|
10530
|
+
const text = await response.text();
|
|
10531
|
+
const data = text ? JSON.parse(text) : {};
|
|
10532
|
+
if (!response.ok || !data.access_token) {
|
|
10533
|
+
throw new Error("Token refresh failed");
|
|
10534
|
+
}
|
|
10535
|
+
console.log("[PinVerification] \u2705 Token refreshed successfully");
|
|
10536
|
+
const newAccessToken = data.access_token;
|
|
10537
|
+
const newRefreshToken = data.refresh_token || refreshToken;
|
|
10538
|
+
const expiresIn = data.expire_in || 600;
|
|
10539
|
+
const newExpiresAt = Date.now() + expiresIn * 1e3;
|
|
10540
|
+
authState.accessToken = newAccessToken;
|
|
10541
|
+
authState.refreshToken = newRefreshToken;
|
|
10542
|
+
authState.expiresAt = newExpiresAt;
|
|
10543
|
+
const newSensitiveData = {
|
|
10544
|
+
accessToken: newAccessToken,
|
|
10545
|
+
refreshToken: newRefreshToken,
|
|
10546
|
+
expiresAt: newExpiresAt
|
|
10547
|
+
};
|
|
10548
|
+
const saltBytes = new Uint8Array(
|
|
10549
|
+
(saltHex || "").match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
|
|
10550
|
+
);
|
|
10551
|
+
const encryptedTokens = await encryptWithPin(
|
|
10552
|
+
JSON.stringify(newSensitiveData),
|
|
10553
|
+
hashedPin,
|
|
10554
|
+
saltBytes
|
|
10555
|
+
);
|
|
10556
|
+
localStorage.setItem(`${storagePrefix}enc_tokens`, encryptedTokens);
|
|
10557
|
+
localStorage.setItem(
|
|
10558
|
+
`${storagePrefix}auth_state`,
|
|
10559
|
+
JSON.stringify(authState)
|
|
10560
|
+
);
|
|
10561
|
+
console.log("[PinVerification] \u{1F504} Encrypted tokens updated");
|
|
10562
|
+
} catch (refreshError) {
|
|
10563
|
+
console.error(
|
|
10564
|
+
"[PinVerification] \u274C Token refresh failed:",
|
|
10565
|
+
refreshError
|
|
10566
|
+
);
|
|
10567
|
+
localStorage.removeItem(`${storagePrefix}auth_state`);
|
|
10568
|
+
localStorage.removeItem(`${storagePrefix}enc_tokens`);
|
|
10569
|
+
localStorage.removeItem(`${storagePrefix}enc_salt`);
|
|
10570
|
+
localStorage.removeItem(`${storagePrefix}user`);
|
|
10571
|
+
localStorage.removeItem(`${storagePrefix}wallet`);
|
|
10572
|
+
localStorage.removeItem(`${storagePrefix}pin_hash`);
|
|
10573
|
+
localStorage.removeItem(`${storagePrefix}access_token`);
|
|
10574
|
+
localStorage.removeItem(`${storagePrefix}refresh_token`);
|
|
10575
|
+
onSessionExpired?.();
|
|
10576
|
+
throw new Error(
|
|
10577
|
+
"\uC138\uC158\uC774 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uB85C\uADF8\uC778\uD574 \uC8FC\uC138\uC694.\n\nYour session has expired. Please login again."
|
|
10578
|
+
);
|
|
10579
|
+
}
|
|
10458
10580
|
}
|
|
10581
|
+
const userStr = localStorage.getItem(`${storagePrefix}user`);
|
|
10582
|
+
const walletStr = localStorage.getItem(`${storagePrefix}wallet`);
|
|
10583
|
+
const solanaWalletStr = localStorage.getItem(
|
|
10584
|
+
`${storagePrefix}solana_wallet`
|
|
10585
|
+
);
|
|
10586
|
+
const bitcoinWalletStr = localStorage.getItem(
|
|
10587
|
+
`${storagePrefix}bitcoin_wallet`
|
|
10588
|
+
);
|
|
10589
|
+
if (userStr)
|
|
10590
|
+
authState.user = JSON.parse(userStr);
|
|
10591
|
+
if (walletStr)
|
|
10592
|
+
authState.wallet = JSON.parse(walletStr);
|
|
10593
|
+
if (solanaWalletStr)
|
|
10594
|
+
authState.solanaWallet = JSON.parse(solanaWalletStr);
|
|
10595
|
+
if (bitcoinWalletStr)
|
|
10596
|
+
authState.bitcoinWallet = JSON.parse(bitcoinWalletStr);
|
|
10597
|
+
localStorage.setItem(
|
|
10598
|
+
`${storagePrefix}auth_state`,
|
|
10599
|
+
JSON.stringify(authState)
|
|
10600
|
+
);
|
|
10459
10601
|
localStorage.setItem(`${storagePrefix}pin_hash`, hashedPin);
|
|
10460
10602
|
localStorage.setItem(`${storagePrefix}saved_email`, email);
|
|
10461
10603
|
setProgress([
|
|
@@ -10615,6 +10757,7 @@ function useWalletGeneration(props) {
|
|
|
10615
10757
|
if (solanaResponse.ok) {
|
|
10616
10758
|
const solanaData = await solanaResponse.json();
|
|
10617
10759
|
const solanaResult = solanaData.result || solanaData;
|
|
10760
|
+
const solanaNetwork = getSolanaNetwork();
|
|
10618
10761
|
const addressResponse = await fetch(
|
|
10619
10762
|
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/wallet/getAddress`,
|
|
10620
10763
|
{
|
|
@@ -10624,20 +10767,41 @@ function useWalletGeneration(props) {
|
|
|
10624
10767
|
"Content-Type": "application/json"
|
|
10625
10768
|
},
|
|
10626
10769
|
body: JSON.stringify({
|
|
10627
|
-
network:
|
|
10770
|
+
network: solanaNetwork,
|
|
10628
10771
|
publicKey: solanaResult.public_key
|
|
10629
10772
|
})
|
|
10630
10773
|
}
|
|
10631
10774
|
);
|
|
10632
10775
|
if (addressResponse.ok) {
|
|
10633
10776
|
const addressData = await addressResponse.json();
|
|
10777
|
+
console.log(
|
|
10778
|
+
"[useWalletGeneration] Solana address response:",
|
|
10779
|
+
addressData
|
|
10780
|
+
);
|
|
10634
10781
|
const solanaAddress = addressData.result?.data?.address || addressData.data?.address || addressData.address;
|
|
10635
|
-
|
|
10636
|
-
|
|
10637
|
-
|
|
10638
|
-
|
|
10639
|
-
|
|
10640
|
-
|
|
10782
|
+
if (!solanaAddress) {
|
|
10783
|
+
console.error(
|
|
10784
|
+
"[useWalletGeneration] \u274C Solana address not found in response:",
|
|
10785
|
+
addressData
|
|
10786
|
+
);
|
|
10787
|
+
} else {
|
|
10788
|
+
solanaWallet = {
|
|
10789
|
+
...solanaResult,
|
|
10790
|
+
address: solanaAddress,
|
|
10791
|
+
network: solanaNetwork
|
|
10792
|
+
};
|
|
10793
|
+
console.log(
|
|
10794
|
+
"[useWalletGeneration] Solana wallet created:",
|
|
10795
|
+
solanaAddress
|
|
10796
|
+
);
|
|
10797
|
+
}
|
|
10798
|
+
} else {
|
|
10799
|
+
const errorData = await addressResponse.json().catch(() => ({}));
|
|
10800
|
+
console.error("[useWalletGeneration] \u274C Solana address API error:", {
|
|
10801
|
+
status: addressResponse.status,
|
|
10802
|
+
statusText: addressResponse.statusText,
|
|
10803
|
+
error: errorData
|
|
10804
|
+
});
|
|
10641
10805
|
}
|
|
10642
10806
|
}
|
|
10643
10807
|
setProgress([
|
|
@@ -10660,8 +10824,9 @@ function useWalletGeneration(props) {
|
|
|
10660
10824
|
);
|
|
10661
10825
|
} else {
|
|
10662
10826
|
try {
|
|
10827
|
+
const bitcoinNetwork = getBitcoinNetwork();
|
|
10663
10828
|
const btcAddressResponse = await fetch(
|
|
10664
|
-
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/btc/address?pubkey=${evmPublicKey}&network
|
|
10829
|
+
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/btc/address?pubkey=${evmPublicKey}&network=${bitcoinNetwork}`,
|
|
10665
10830
|
{
|
|
10666
10831
|
method: "GET",
|
|
10667
10832
|
headers: {
|
|
@@ -10682,7 +10847,7 @@ function useWalletGeneration(props) {
|
|
|
10682
10847
|
uid: evmWallet.uid,
|
|
10683
10848
|
publicKey: evmPublicKey,
|
|
10684
10849
|
address: bitcoinAddress,
|
|
10685
|
-
network:
|
|
10850
|
+
network: bitcoinNetwork,
|
|
10686
10851
|
addressType: "bech32"
|
|
10687
10852
|
};
|
|
10688
10853
|
console.log(
|
|
@@ -10877,9 +11042,37 @@ var PinAuthFlow = forwardRef(
|
|
|
10877
11042
|
});
|
|
10878
11043
|
const pinVerification = usePinVerification({
|
|
10879
11044
|
email,
|
|
10880
|
-
onVerified: () => {
|
|
11045
|
+
onVerified: async () => {
|
|
10881
11046
|
console.log("[PinAuthFlow] \u2705 PIN verified successfully");
|
|
10882
11047
|
setIsPinVerifyModalOpen(false);
|
|
11048
|
+
const authStateStr = localStorage.getItem(`${storagePrefix}auth_state`);
|
|
11049
|
+
const authState = authStateStr ? JSON.parse(authStateStr) : null;
|
|
11050
|
+
const needsWalletGeneration = authState && (!authState.wallet || !authState.solanaWallet);
|
|
11051
|
+
if (needsWalletGeneration) {
|
|
11052
|
+
console.log(
|
|
11053
|
+
"[PinAuthFlow] \u26A0\uFE0F Missing wallets detected, generating..."
|
|
11054
|
+
);
|
|
11055
|
+
const pinHash = localStorage.getItem(`${storagePrefix}pin_hash`);
|
|
11056
|
+
if (pinHash) {
|
|
11057
|
+
await walletGeneration.generateWallets({
|
|
11058
|
+
hashedPin: pinHash,
|
|
11059
|
+
email,
|
|
11060
|
+
loginData
|
|
11061
|
+
});
|
|
11062
|
+
return;
|
|
11063
|
+
}
|
|
11064
|
+
}
|
|
11065
|
+
const abcConnector = connectors.find(
|
|
11066
|
+
(c) => c.id === "abc" || c.name === "ABC Wallet"
|
|
11067
|
+
);
|
|
11068
|
+
if (abcConnector) {
|
|
11069
|
+
console.log(
|
|
11070
|
+
"[PinAuthFlow] \u{1F50C} Connecting ABC Wallet after PIN verification..."
|
|
11071
|
+
);
|
|
11072
|
+
connect({ connector: abcConnector });
|
|
11073
|
+
} else {
|
|
11074
|
+
console.error("[PinAuthFlow] \u274C ABC Wallet connector not found");
|
|
11075
|
+
}
|
|
10883
11076
|
onComplete();
|
|
10884
11077
|
},
|
|
10885
11078
|
onSessionExpired: () => {
|
|
@@ -10986,7 +11179,8 @@ function ConnectOptionsModal({
|
|
|
10986
11179
|
const { connect } = useConnect2();
|
|
10987
11180
|
const connectors = useConnectors();
|
|
10988
11181
|
const walletConnection = useWalletConnection({
|
|
10989
|
-
onSuccess: () =>
|
|
11182
|
+
onSuccess: () => {
|
|
11183
|
+
},
|
|
10990
11184
|
initialWallet: connector || void 0
|
|
10991
11185
|
});
|
|
10992
11186
|
const { selectedWallet, qrCodeUri, connectionError } = walletConnection;
|
|
@@ -12223,15 +12417,8 @@ function MultiChainConnectOptions({
|
|
|
12223
12417
|
}
|
|
12224
12418
|
function UnifiedWalletList({ onClose }) {
|
|
12225
12419
|
const { wallets: solanaWallets, select, connecting } = useWallet3();
|
|
12226
|
-
const
|
|
12420
|
+
const _multiChainContext = useContext23(MultiChainContext);
|
|
12227
12421
|
const [connectingWallet, setConnectingWallet] = useState28(null);
|
|
12228
|
-
const [shouldCloseOnConnect, setShouldCloseOnConnect] = useState28(false);
|
|
12229
|
-
React72.useEffect(() => {
|
|
12230
|
-
if (shouldCloseOnConnect && multiChainContext?.solanaConnected) {
|
|
12231
|
-
setShouldCloseOnConnect(false);
|
|
12232
|
-
onClose();
|
|
12233
|
-
}
|
|
12234
|
-
}, [shouldCloseOnConnect, multiChainContext?.solanaConnected, onClose]);
|
|
12235
12422
|
const handleSolanaWalletClick = useCallback14(
|
|
12236
12423
|
async (walletName2) => {
|
|
12237
12424
|
try {
|
|
@@ -12241,11 +12428,6 @@ function UnifiedWalletList({ onClose }) {
|
|
|
12241
12428
|
throw new Error(`Wallet ${walletName2} not found`);
|
|
12242
12429
|
}
|
|
12243
12430
|
if (wallet.adapter.connected) {
|
|
12244
|
-
if (multiChainContext?.solanaConnected) {
|
|
12245
|
-
onClose();
|
|
12246
|
-
} else {
|
|
12247
|
-
setShouldCloseOnConnect(true);
|
|
12248
|
-
}
|
|
12249
12431
|
return;
|
|
12250
12432
|
}
|
|
12251
12433
|
select(wallet.adapter.name);
|
|
@@ -12253,16 +12435,14 @@ function UnifiedWalletList({ onClose }) {
|
|
|
12253
12435
|
const handleConnect = () => {
|
|
12254
12436
|
wallet.adapter.off("connect", handleConnect);
|
|
12255
12437
|
addRecentSolanaWalletId(walletName2);
|
|
12256
|
-
setShouldCloseOnConnect(true);
|
|
12257
12438
|
};
|
|
12258
12439
|
wallet.adapter.on("connect", handleConnect);
|
|
12259
12440
|
await wallet.adapter.connect();
|
|
12260
12441
|
if (wallet.adapter.connected && wallet.adapter.publicKey) {
|
|
12261
12442
|
addRecentSolanaWalletId(walletName2);
|
|
12262
|
-
setShouldCloseOnConnect(true);
|
|
12263
12443
|
}
|
|
12264
12444
|
} catch (err) {
|
|
12265
|
-
console.error("[
|
|
12445
|
+
console.error("[MultiChain] Solana connection error:", err);
|
|
12266
12446
|
const isUserRejection = err?.name === "WalletConnectionError" || err?.name === "WalletNotReadyError" || err?.message?.includes("User rejected") || err?.message?.includes("User canceled");
|
|
12267
12447
|
if (!isUserRejection) {
|
|
12268
12448
|
alert(
|
|
@@ -12273,7 +12453,7 @@ function UnifiedWalletList({ onClose }) {
|
|
|
12273
12453
|
setConnectingWallet(null);
|
|
12274
12454
|
}
|
|
12275
12455
|
},
|
|
12276
|
-
[solanaWallets, select
|
|
12456
|
+
[solanaWallets, select]
|
|
12277
12457
|
);
|
|
12278
12458
|
const groupedSolanaWallets = React72.useMemo(() => {
|
|
12279
12459
|
const groups = {
|
|
@@ -12323,16 +12503,27 @@ function ConnectModal({ onClose, open }) {
|
|
|
12323
12503
|
const connectionStatus = useConnectionStatus();
|
|
12324
12504
|
const multiChainContext = useContext24(MultiChainContext);
|
|
12325
12505
|
const { disconnect } = useDisconnect3();
|
|
12326
|
-
const { isConnecting } = useAccount14();
|
|
12506
|
+
const { isConnecting, isConnected } = useAccount14();
|
|
12507
|
+
React73.useEffect(() => {
|
|
12508
|
+
if (isConnected && open) {
|
|
12509
|
+
onClose();
|
|
12510
|
+
}
|
|
12511
|
+
}, [isConnected, open, onClose]);
|
|
12512
|
+
React73.useEffect(() => {
|
|
12513
|
+
if (multiChainContext?.solanaConnected && open) {
|
|
12514
|
+
onClose();
|
|
12515
|
+
}
|
|
12516
|
+
}, [multiChainContext?.solanaConnected, open, onClose]);
|
|
12327
12517
|
const onAuthCancel = React73.useCallback(() => {
|
|
12328
12518
|
onClose();
|
|
12329
12519
|
disconnect();
|
|
12330
12520
|
}, [onClose, disconnect]);
|
|
12331
12521
|
const onConnectModalCancel = React73.useCallback(() => {
|
|
12332
|
-
if (isConnecting)
|
|
12522
|
+
if (isConnecting && !isConnected) {
|
|
12333
12523
|
disconnect();
|
|
12524
|
+
}
|
|
12334
12525
|
onClose();
|
|
12335
|
-
}, [onClose, disconnect, isConnecting]);
|
|
12526
|
+
}, [onClose, disconnect, isConnecting, isConnected]);
|
|
12336
12527
|
if (connectionStatus === "disconnected") {
|
|
12337
12528
|
return /* @__PURE__ */ React73.createElement(Dialog, { onClose: onConnectModalCancel, open, titleId }, /* @__PURE__ */ React73.createElement(DialogContent, { bottomSheetOnMobile: true, padding: "0", wide: true }, multiChainContext ? /* @__PURE__ */ React73.createElement(
|
|
12338
12529
|
MultiChainConnectOptions,
|
|
@@ -12858,11 +13049,14 @@ function WalletButtonRenderer({
|
|
|
12858
13049
|
}, [isConnected, firstConnector]);
|
|
12859
13050
|
const connectWallet = async () => {
|
|
12860
13051
|
try {
|
|
13052
|
+
console.log("[WalletButton] Connecting wallet:", firstConnector?.id);
|
|
12861
13053
|
setLoading(true);
|
|
12862
13054
|
if (isError)
|
|
12863
13055
|
setIsError(false);
|
|
12864
13056
|
await firstConnector?.connect?.();
|
|
12865
|
-
|
|
13057
|
+
console.log("[WalletButton] Wallet connected successfully");
|
|
13058
|
+
} catch (error2) {
|
|
13059
|
+
console.error("[WalletButton] Connection failed:", error2);
|
|
12866
13060
|
setIsError(true);
|
|
12867
13061
|
} finally {
|
|
12868
13062
|
setLoading(false);
|
|
@@ -12996,7 +13190,7 @@ WalletButton2.Custom = WalletButtonRenderer;
|
|
|
12996
13190
|
|
|
12997
13191
|
// src/config/getDefaultConfig.ts
|
|
12998
13192
|
import { http } from "wagmi";
|
|
12999
|
-
import { createConfig } from "wagmi";
|
|
13193
|
+
import { createConfig, createStorage } from "wagmi";
|
|
13000
13194
|
|
|
13001
13195
|
// src/wallets/computeWalletConnectMetaData.ts
|
|
13002
13196
|
var computeWalletConnectMetaData = ({
|
|
@@ -13702,6 +13896,9 @@ var getDefaultConfig = ({
|
|
|
13702
13896
|
connectors,
|
|
13703
13897
|
chains,
|
|
13704
13898
|
transports: transports || createDefaultTransports(chains),
|
|
13899
|
+
storage: createStorage({
|
|
13900
|
+
storage: typeof window !== "undefined" ? window.localStorage : void 0
|
|
13901
|
+
}),
|
|
13705
13902
|
...restWagmiParameters
|
|
13706
13903
|
});
|
|
13707
13904
|
};
|
|
@@ -13757,12 +13954,709 @@ var __private__ = {
|
|
|
13757
13954
|
MobileOptions
|
|
13758
13955
|
};
|
|
13759
13956
|
|
|
13957
|
+
// src/solana/hooks/useSolanaAccount.ts
|
|
13958
|
+
import { useWallet as useWallet4 } from "@solana/wallet-adapter-react";
|
|
13959
|
+
import { useContext as useContext30, useMemo as useMemo14 } from "react";
|
|
13960
|
+
function useSolanaAccount() {
|
|
13961
|
+
const { publicKey, connected, connecting, disconnecting, wallet } = useWallet4();
|
|
13962
|
+
const multiChainContext = useContext30(MultiChainContext);
|
|
13963
|
+
const accountInfo = useMemo14(() => {
|
|
13964
|
+
if (wallet) {
|
|
13965
|
+
const status = connected && publicKey ? "connected" : connecting ? "connecting" : "disconnected";
|
|
13966
|
+
return {
|
|
13967
|
+
address: publicKey?.toBase58() || null,
|
|
13968
|
+
isConnected: connected && !!publicKey,
|
|
13969
|
+
walletType: "external",
|
|
13970
|
+
walletName: wallet.adapter.name || "Unknown Wallet",
|
|
13971
|
+
publicKey,
|
|
13972
|
+
// Add publicKey for external wallets
|
|
13973
|
+
isConnecting: connecting,
|
|
13974
|
+
isDisconnecting: disconnecting,
|
|
13975
|
+
isReconnecting: false,
|
|
13976
|
+
status
|
|
13977
|
+
};
|
|
13978
|
+
}
|
|
13979
|
+
if (multiChainContext?.solanaConnected && multiChainContext?.solanaAddress) {
|
|
13980
|
+
return {
|
|
13981
|
+
address: multiChainContext.solanaAddress,
|
|
13982
|
+
isConnected: true,
|
|
13983
|
+
walletType: "abc",
|
|
13984
|
+
walletName: "ABC Wallet",
|
|
13985
|
+
publicKey: null,
|
|
13986
|
+
// ABC Wallet doesn't use wallet-adapter publicKey
|
|
13987
|
+
isConnecting: false,
|
|
13988
|
+
isDisconnecting: false,
|
|
13989
|
+
isReconnecting: false,
|
|
13990
|
+
status: "connected"
|
|
13991
|
+
};
|
|
13992
|
+
}
|
|
13993
|
+
try {
|
|
13994
|
+
const authState = localStorage.getItem("talkenkit_abc_auth_state");
|
|
13995
|
+
if (authState) {
|
|
13996
|
+
const parsed = JSON.parse(authState);
|
|
13997
|
+
if (parsed.isAuthenticated && parsed.solanaWallet?.address) {
|
|
13998
|
+
return {
|
|
13999
|
+
address: parsed.solanaWallet.address,
|
|
14000
|
+
isConnected: true,
|
|
14001
|
+
walletType: "abc",
|
|
14002
|
+
walletName: "ABC Wallet",
|
|
14003
|
+
publicKey: null,
|
|
14004
|
+
// ABC Wallet doesn't use wallet-adapter publicKey
|
|
14005
|
+
isConnecting: false,
|
|
14006
|
+
isDisconnecting: false,
|
|
14007
|
+
isReconnecting: false,
|
|
14008
|
+
status: "connected"
|
|
14009
|
+
};
|
|
14010
|
+
}
|
|
14011
|
+
}
|
|
14012
|
+
} catch (_error) {
|
|
14013
|
+
}
|
|
14014
|
+
if (connecting) {
|
|
14015
|
+
return {
|
|
14016
|
+
address: null,
|
|
14017
|
+
isConnected: false,
|
|
14018
|
+
walletType: null,
|
|
14019
|
+
walletName: null,
|
|
14020
|
+
publicKey: null,
|
|
14021
|
+
isConnecting: true,
|
|
14022
|
+
isDisconnecting: false,
|
|
14023
|
+
isReconnecting: false,
|
|
14024
|
+
status: "connecting"
|
|
14025
|
+
};
|
|
14026
|
+
}
|
|
14027
|
+
return {
|
|
14028
|
+
address: null,
|
|
14029
|
+
isConnected: false,
|
|
14030
|
+
walletType: null,
|
|
14031
|
+
walletName: null,
|
|
14032
|
+
publicKey: null,
|
|
14033
|
+
isConnecting: false,
|
|
14034
|
+
isDisconnecting: disconnecting,
|
|
14035
|
+
isReconnecting: false,
|
|
14036
|
+
status: "disconnected"
|
|
14037
|
+
};
|
|
14038
|
+
}, [
|
|
14039
|
+
connected,
|
|
14040
|
+
publicKey,
|
|
14041
|
+
connecting,
|
|
14042
|
+
disconnecting,
|
|
14043
|
+
wallet,
|
|
14044
|
+
multiChainContext?.solanaConnected,
|
|
14045
|
+
multiChainContext?.solanaAddress
|
|
14046
|
+
]);
|
|
14047
|
+
return accountInfo;
|
|
14048
|
+
}
|
|
14049
|
+
|
|
14050
|
+
// src/solana/hooks/useSolanaSignMessage.ts
|
|
14051
|
+
import { useWallet as useWallet5 } from "@solana/wallet-adapter-react";
|
|
14052
|
+
import { useCallback as useCallback17, useState as useState32 } from "react";
|
|
14053
|
+
|
|
14054
|
+
// src/wallets/walletConnectors/abcWallet/abcSolProvider.ts
|
|
14055
|
+
import { PublicKey, Transaction } from "@solana/web3.js";
|
|
14056
|
+
var AbcSolProvider = class {
|
|
14057
|
+
constructor(address, walletData) {
|
|
14058
|
+
this.name = "ABC WaaS";
|
|
14059
|
+
this.publicKey = null;
|
|
14060
|
+
this.walletData = null;
|
|
14061
|
+
if (address) {
|
|
14062
|
+
this.publicKey = new PublicKey(address);
|
|
14063
|
+
}
|
|
14064
|
+
if (walletData) {
|
|
14065
|
+
this.walletData = walletData;
|
|
14066
|
+
} else if (address) {
|
|
14067
|
+
this.loadWalletDataFromStorage();
|
|
14068
|
+
}
|
|
14069
|
+
const baseURL = process.env.NEXT_PUBLIC_ABC_WAAS_URL || "";
|
|
14070
|
+
this.secure = new secure_default(baseURL);
|
|
14071
|
+
}
|
|
14072
|
+
/**
|
|
14073
|
+
* Set PIN request callback
|
|
14074
|
+
*/
|
|
14075
|
+
setRequestPinCallback(callback) {
|
|
14076
|
+
this.requestPinCallback = callback;
|
|
14077
|
+
}
|
|
14078
|
+
/**
|
|
14079
|
+
* Request PIN from user via callback or global callback
|
|
14080
|
+
*/
|
|
14081
|
+
async requestPin() {
|
|
14082
|
+
if (this.requestPinCallback) {
|
|
14083
|
+
return this.requestPinCallback();
|
|
14084
|
+
}
|
|
14085
|
+
const globalCallback = window.__TALKENKIT_REQUEST_PIN__;
|
|
14086
|
+
if (globalCallback) {
|
|
14087
|
+
return globalCallback("transaction");
|
|
14088
|
+
}
|
|
14089
|
+
throw new Error("PIN request callback not configured");
|
|
14090
|
+
}
|
|
14091
|
+
/**
|
|
14092
|
+
* Load wallet data from localStorage
|
|
14093
|
+
*/
|
|
14094
|
+
loadWalletDataFromStorage() {
|
|
14095
|
+
try {
|
|
14096
|
+
const authState = localStorage.getItem("talkenkit_abc_auth_state");
|
|
14097
|
+
if (authState) {
|
|
14098
|
+
const parsed = JSON.parse(authState);
|
|
14099
|
+
if (parsed.solanaWallet) {
|
|
14100
|
+
this.walletData = parsed.solanaWallet;
|
|
14101
|
+
}
|
|
14102
|
+
}
|
|
14103
|
+
} catch (_error) {
|
|
14104
|
+
}
|
|
14105
|
+
}
|
|
14106
|
+
/**
|
|
14107
|
+
* Get wallet data (from internal storage or localStorage)
|
|
14108
|
+
*/
|
|
14109
|
+
getWalletData() {
|
|
14110
|
+
if (this.walletData) {
|
|
14111
|
+
return this.walletData;
|
|
14112
|
+
}
|
|
14113
|
+
const authState = localStorage.getItem("talkenkit_abc_auth_state");
|
|
14114
|
+
if (authState) {
|
|
14115
|
+
const parsed = JSON.parse(authState);
|
|
14116
|
+
if (parsed.solanaWallet) {
|
|
14117
|
+
const wallet = { ...parsed.solanaWallet };
|
|
14118
|
+
if (!wallet.uid && parsed.user?.uid) {
|
|
14119
|
+
wallet.uid = parsed.user.uid;
|
|
14120
|
+
}
|
|
14121
|
+
if (!wallet.shareId && wallet.key_id) {
|
|
14122
|
+
wallet.shareId = wallet.key_id;
|
|
14123
|
+
}
|
|
14124
|
+
this.walletData = wallet;
|
|
14125
|
+
return this.walletData;
|
|
14126
|
+
}
|
|
14127
|
+
}
|
|
14128
|
+
throw new Error("No Solana wallet data available");
|
|
14129
|
+
}
|
|
14130
|
+
async signMessage(message, _encoding) {
|
|
14131
|
+
const walletData = this.getWalletData();
|
|
14132
|
+
const accessToken = localStorage.getItem("talkenkit_abc_access_token");
|
|
14133
|
+
if (!accessToken) {
|
|
14134
|
+
throw new Error("No ABC WaaS access token");
|
|
14135
|
+
}
|
|
14136
|
+
const messageHex = Buffer.from(message).toString("hex");
|
|
14137
|
+
const signBody = {
|
|
14138
|
+
curve: walletData.curve,
|
|
14139
|
+
encrypted_share: walletData.encrypted_share,
|
|
14140
|
+
key_id: walletData.key_id,
|
|
14141
|
+
message: messageHex,
|
|
14142
|
+
secret_store: walletData.secret_store
|
|
14143
|
+
};
|
|
14144
|
+
const response = await fetch(
|
|
14145
|
+
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
|
|
14146
|
+
{
|
|
14147
|
+
method: "POST",
|
|
14148
|
+
headers: {
|
|
14149
|
+
Authorization: `Bearer ${accessToken}`,
|
|
14150
|
+
"Content-Type": "application/json"
|
|
14151
|
+
},
|
|
14152
|
+
body: JSON.stringify(signBody)
|
|
14153
|
+
}
|
|
14154
|
+
);
|
|
14155
|
+
if (!response.ok) {
|
|
14156
|
+
const errorText = await response.text();
|
|
14157
|
+
throw new Error(`ABC WaaS sign failed: ${errorText}`);
|
|
14158
|
+
}
|
|
14159
|
+
const result = await response.json();
|
|
14160
|
+
const signatureHex = result.result?.signature || result.signature || result.data?.signature;
|
|
14161
|
+
if (!signatureHex) {
|
|
14162
|
+
throw new Error("No signature in ABC WaaS response");
|
|
14163
|
+
}
|
|
14164
|
+
const signatureBytes = new Uint8Array(
|
|
14165
|
+
signatureHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
|
|
14166
|
+
);
|
|
14167
|
+
return { signature: signatureBytes };
|
|
14168
|
+
}
|
|
14169
|
+
async signTransaction(transaction, params) {
|
|
14170
|
+
const walletData = this.getWalletData();
|
|
14171
|
+
const accessToken = localStorage.getItem("talkenkit_abc_access_token");
|
|
14172
|
+
if (!accessToken) {
|
|
14173
|
+
throw new Error("No ABC WaaS access token");
|
|
14174
|
+
}
|
|
14175
|
+
let toAddress;
|
|
14176
|
+
let amount;
|
|
14177
|
+
if (params) {
|
|
14178
|
+
toAddress = params.toAddress;
|
|
14179
|
+
amount = params.amount * 1e9;
|
|
14180
|
+
} else {
|
|
14181
|
+
const transferInstruction = transaction.instructions[0];
|
|
14182
|
+
toAddress = transferInstruction.keys[1]?.pubkey.toString();
|
|
14183
|
+
amount = 1e5;
|
|
14184
|
+
}
|
|
14185
|
+
const solanaNetwork = getSolanaNetwork();
|
|
14186
|
+
const requestBody = {
|
|
14187
|
+
network: solanaNetwork,
|
|
14188
|
+
fromAddress: walletData.address,
|
|
14189
|
+
toAddress,
|
|
14190
|
+
amount,
|
|
14191
|
+
feePayerAddress: walletData.address
|
|
14192
|
+
};
|
|
14193
|
+
const txResponse = await fetch(
|
|
14194
|
+
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/generateTransferSOLTransaction`,
|
|
14195
|
+
{
|
|
14196
|
+
method: "POST",
|
|
14197
|
+
headers: {
|
|
14198
|
+
Authorization: `Bearer ${accessToken}`,
|
|
14199
|
+
"Content-Type": "application/json"
|
|
14200
|
+
},
|
|
14201
|
+
body: JSON.stringify(requestBody)
|
|
14202
|
+
}
|
|
14203
|
+
);
|
|
14204
|
+
if (!txResponse.ok) {
|
|
14205
|
+
const errorText = await txResponse.text();
|
|
14206
|
+
console.error("[AbcSolProvider] \u274C API error:", errorText);
|
|
14207
|
+
throw new Error(
|
|
14208
|
+
`Transaction generation failed (${txResponse.status}): ${errorText}`
|
|
14209
|
+
);
|
|
14210
|
+
}
|
|
14211
|
+
const txData = await txResponse.json();
|
|
14212
|
+
const serializedTxHex = txData.result?.data?.serialized_tx || txData.data?.serialized_tx;
|
|
14213
|
+
if (!serializedTxHex) {
|
|
14214
|
+
console.error(
|
|
14215
|
+
"[AbcSolProvider] \u274C No serialized_tx in response:",
|
|
14216
|
+
txData
|
|
14217
|
+
);
|
|
14218
|
+
throw new Error("No serialized transaction in response");
|
|
14219
|
+
}
|
|
14220
|
+
const signResponse = await fetch(
|
|
14221
|
+
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
|
|
14222
|
+
{
|
|
14223
|
+
method: "POST",
|
|
14224
|
+
headers: {
|
|
14225
|
+
Authorization: `Bearer ${accessToken}`,
|
|
14226
|
+
"Content-Type": "application/json"
|
|
14227
|
+
},
|
|
14228
|
+
body: JSON.stringify({
|
|
14229
|
+
curve: walletData.curve,
|
|
14230
|
+
encrypted_share: walletData.encrypted_share,
|
|
14231
|
+
key_id: walletData.key_id,
|
|
14232
|
+
message: serializedTxHex,
|
|
14233
|
+
secret_store: walletData.secret_store
|
|
14234
|
+
})
|
|
14235
|
+
}
|
|
14236
|
+
);
|
|
14237
|
+
if (!signResponse.ok) {
|
|
14238
|
+
const errorText = await signResponse.text();
|
|
14239
|
+
console.error("[AbcSolProvider] \u274C Sign API error:", errorText);
|
|
14240
|
+
throw new Error(`Sign failed: ${errorText}`);
|
|
14241
|
+
}
|
|
14242
|
+
const signResult = await signResponse.json();
|
|
14243
|
+
const signatureHex = signResult.signature || signResult.result?.signature;
|
|
14244
|
+
if (!signatureHex) {
|
|
14245
|
+
console.error(
|
|
14246
|
+
"[AbcSolProvider] \u274C No signature in response:",
|
|
14247
|
+
signResult
|
|
14248
|
+
);
|
|
14249
|
+
throw new Error("No signature in ABC WaaS response");
|
|
14250
|
+
}
|
|
14251
|
+
const signatureBytes = new Uint8Array(
|
|
14252
|
+
signatureHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
|
|
14253
|
+
);
|
|
14254
|
+
const serializedTxBytes = new Uint8Array(
|
|
14255
|
+
serializedTxHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
|
|
14256
|
+
);
|
|
14257
|
+
const signedTransaction = Transaction.from(serializedTxBytes);
|
|
14258
|
+
if (!signedTransaction.signatures || signedTransaction.signatures.length === 0) {
|
|
14259
|
+
signedTransaction.addSignature(
|
|
14260
|
+
this.publicKey,
|
|
14261
|
+
Buffer.from(signatureBytes)
|
|
14262
|
+
);
|
|
14263
|
+
}
|
|
14264
|
+
return signedTransaction;
|
|
14265
|
+
}
|
|
14266
|
+
/**
|
|
14267
|
+
* Send (broadcast) signed Solana transaction to network
|
|
14268
|
+
* - Transaction generation: v2 API (application/json)
|
|
14269
|
+
* - Transaction signing: v3 API (Ed25519 MPC)
|
|
14270
|
+
* - Transaction broadcast: v2 API
|
|
14271
|
+
*/
|
|
14272
|
+
async sendTransaction(params) {
|
|
14273
|
+
const walletData = this.getWalletData();
|
|
14274
|
+
const accessToken = localStorage.getItem("talkenkit_abc_access_token");
|
|
14275
|
+
if (!accessToken) {
|
|
14276
|
+
throw new Error("No ABC WaaS access token");
|
|
14277
|
+
}
|
|
14278
|
+
const pin = await this.requestPin();
|
|
14279
|
+
const STORAGE_PREFIX3 = "talkenkit_abc_";
|
|
14280
|
+
const storedPinHash = localStorage.getItem(`${STORAGE_PREFIX3}pin_hash`);
|
|
14281
|
+
if (!storedPinHash) {
|
|
14282
|
+
throw new Error("PIN not set. Please login again.");
|
|
14283
|
+
}
|
|
14284
|
+
const enteredPinHash = await hashPin(pin);
|
|
14285
|
+
if (enteredPinHash !== storedPinHash) {
|
|
14286
|
+
throw new Error("Incorrect PIN. Transaction cancelled.");
|
|
14287
|
+
}
|
|
14288
|
+
const solanaNetwork = getSolanaNetwork();
|
|
14289
|
+
const generateBody = {
|
|
14290
|
+
network: solanaNetwork,
|
|
14291
|
+
fromAddress: walletData.address,
|
|
14292
|
+
toAddress: params.toAddress,
|
|
14293
|
+
amount: params.amount * 1e9,
|
|
14294
|
+
// Convert SOL to lamports
|
|
14295
|
+
feePayerAddress: walletData.address
|
|
14296
|
+
// Fee payer is the sender
|
|
14297
|
+
};
|
|
14298
|
+
const generateResponse = await fetch(
|
|
14299
|
+
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/generateTransferSOLTransaction`,
|
|
14300
|
+
{
|
|
14301
|
+
method: "POST",
|
|
14302
|
+
headers: {
|
|
14303
|
+
Authorization: `Bearer ${accessToken}`,
|
|
14304
|
+
"Content-Type": "application/json"
|
|
14305
|
+
},
|
|
14306
|
+
body: JSON.stringify(generateBody)
|
|
14307
|
+
}
|
|
14308
|
+
);
|
|
14309
|
+
if (!generateResponse.ok) {
|
|
14310
|
+
const errorText = await generateResponse.text();
|
|
14311
|
+
console.error("[AbcSolProvider] \u274C Generate TX error:", errorText);
|
|
14312
|
+
throw new Error(`Transaction generation failed: ${errorText}`);
|
|
14313
|
+
}
|
|
14314
|
+
const txData = await generateResponse.json();
|
|
14315
|
+
const serializedTxHex = txData.result?.data?.serialized_tx || txData.data?.serialized_tx || txData.result?.serialized_tx || txData.serialized_tx || txData.result?.data?.serializedTX || txData.data?.serializedTX;
|
|
14316
|
+
if (!serializedTxHex) {
|
|
14317
|
+
console.error(
|
|
14318
|
+
"[AbcSolProvider] \u274C Cannot find serialized_tx in response:",
|
|
14319
|
+
{
|
|
14320
|
+
hasResult: !!txData.result,
|
|
14321
|
+
hasData: !!txData.data,
|
|
14322
|
+
hasResultData: !!txData.result?.data,
|
|
14323
|
+
resultKeys: txData.result ? Object.keys(txData.result) : [],
|
|
14324
|
+
dataKeys: txData.data ? Object.keys(txData.data) : [],
|
|
14325
|
+
topLevelKeys: Object.keys(txData),
|
|
14326
|
+
fullResponse: txData
|
|
14327
|
+
}
|
|
14328
|
+
);
|
|
14329
|
+
throw new Error("No serialized transaction in response");
|
|
14330
|
+
}
|
|
14331
|
+
const signBody = {
|
|
14332
|
+
curve: walletData.curve,
|
|
14333
|
+
encrypted_share: walletData.encrypted_share,
|
|
14334
|
+
key_id: walletData.key_id,
|
|
14335
|
+
message: serializedTxHex,
|
|
14336
|
+
secret_store: walletData.secret_store
|
|
14337
|
+
};
|
|
14338
|
+
const signResponse = await fetch(
|
|
14339
|
+
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
|
|
14340
|
+
{
|
|
14341
|
+
method: "POST",
|
|
14342
|
+
headers: {
|
|
14343
|
+
Authorization: `Bearer ${accessToken}`,
|
|
14344
|
+
"Content-Type": "application/json"
|
|
14345
|
+
},
|
|
14346
|
+
body: JSON.stringify(signBody)
|
|
14347
|
+
}
|
|
14348
|
+
);
|
|
14349
|
+
if (!signResponse.ok) {
|
|
14350
|
+
const errorText = await signResponse.text();
|
|
14351
|
+
console.error("[AbcSolProvider] \u274C Sign error:", errorText);
|
|
14352
|
+
throw new Error(`Sign failed: ${errorText}`);
|
|
14353
|
+
}
|
|
14354
|
+
const signResult = await signResponse.json();
|
|
14355
|
+
const signatureHex = signResult.signature || signResult.result?.signature || signResult.data?.signature;
|
|
14356
|
+
if (!signatureHex) {
|
|
14357
|
+
console.error(
|
|
14358
|
+
"[AbcSolProvider] \u274C No signature in response:",
|
|
14359
|
+
signResult
|
|
14360
|
+
);
|
|
14361
|
+
throw new Error("No signature in ABC WaaS response");
|
|
14362
|
+
}
|
|
14363
|
+
const sendResponse = await fetch(
|
|
14364
|
+
`${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/sendTransaction`,
|
|
14365
|
+
{
|
|
14366
|
+
method: "POST",
|
|
14367
|
+
headers: {
|
|
14368
|
+
Authorization: `Bearer ${accessToken}`,
|
|
14369
|
+
"Content-Type": "application/json"
|
|
14370
|
+
},
|
|
14371
|
+
body: JSON.stringify({
|
|
14372
|
+
network: solanaNetwork,
|
|
14373
|
+
serializedTX: serializedTxHex,
|
|
14374
|
+
signatures: [signatureHex]
|
|
14375
|
+
})
|
|
14376
|
+
}
|
|
14377
|
+
);
|
|
14378
|
+
if (!sendResponse.ok) {
|
|
14379
|
+
const errorText = await sendResponse.text();
|
|
14380
|
+
console.error("[AbcSolProvider] \u274C Broadcast error:", {
|
|
14381
|
+
status: sendResponse.status,
|
|
14382
|
+
statusText: sendResponse.statusText,
|
|
14383
|
+
error: errorText
|
|
14384
|
+
});
|
|
14385
|
+
try {
|
|
14386
|
+
const errorData = JSON.parse(errorText);
|
|
14387
|
+
if (errorData.message?.includes("insufficient") || errorData.message?.includes("InsufficientFunds")) {
|
|
14388
|
+
throw new Error("Insufficient SOL balance to send transaction");
|
|
14389
|
+
}
|
|
14390
|
+
} catch (_parseError) {
|
|
14391
|
+
}
|
|
14392
|
+
throw new Error(
|
|
14393
|
+
`Transaction broadcast failed (${sendResponse.status}): ${errorText}`
|
|
14394
|
+
);
|
|
14395
|
+
}
|
|
14396
|
+
const sendResult = await sendResponse.json();
|
|
14397
|
+
const txHash = sendResult.result?.data || sendResult.data || sendResult.txHash;
|
|
14398
|
+
return {
|
|
14399
|
+
signature: signatureHex,
|
|
14400
|
+
txHash: txHash || signatureHex
|
|
14401
|
+
};
|
|
14402
|
+
}
|
|
14403
|
+
};
|
|
14404
|
+
|
|
14405
|
+
// src/solana/hooks/useSolanaSignMessage.ts
|
|
14406
|
+
function useSolanaSignMessage() {
|
|
14407
|
+
const { address, walletType, isConnected } = useSolanaAccount();
|
|
14408
|
+
const { signMessage: externalSignMessage } = useWallet5();
|
|
14409
|
+
const [signature, setSignature] = useState32(null);
|
|
14410
|
+
const [isPending, setIsPending] = useState32(false);
|
|
14411
|
+
const [isSuccess, setIsSuccess] = useState32(false);
|
|
14412
|
+
const [isError, setIsError] = useState32(false);
|
|
14413
|
+
const [error2, setError] = useState32(null);
|
|
14414
|
+
const reset = useCallback17(() => {
|
|
14415
|
+
setSignature(null);
|
|
14416
|
+
setIsPending(false);
|
|
14417
|
+
setIsSuccess(false);
|
|
14418
|
+
setIsError(false);
|
|
14419
|
+
setError(null);
|
|
14420
|
+
}, []);
|
|
14421
|
+
const signMessage = useCallback17(
|
|
14422
|
+
async ({ message }) => {
|
|
14423
|
+
setIsPending(true);
|
|
14424
|
+
setIsSuccess(false);
|
|
14425
|
+
setIsError(false);
|
|
14426
|
+
setError(null);
|
|
14427
|
+
setSignature(null);
|
|
14428
|
+
try {
|
|
14429
|
+
if (!isConnected || !address) {
|
|
14430
|
+
throw new Error("Solana wallet not connected");
|
|
14431
|
+
}
|
|
14432
|
+
const messageBytes = typeof message === "string" ? new TextEncoder().encode(message) : message;
|
|
14433
|
+
let signatureBytes;
|
|
14434
|
+
if (walletType === "external") {
|
|
14435
|
+
if (!externalSignMessage) {
|
|
14436
|
+
throw new Error("External wallet does not support message signing");
|
|
14437
|
+
}
|
|
14438
|
+
signatureBytes = await externalSignMessage(messageBytes);
|
|
14439
|
+
} else if (walletType === "abc") {
|
|
14440
|
+
const authState = localStorage.getItem("talkenkit_abc_auth_state");
|
|
14441
|
+
if (!authState) {
|
|
14442
|
+
throw new Error("ABC Wallet auth state not found");
|
|
14443
|
+
}
|
|
14444
|
+
const parsed = JSON.parse(authState);
|
|
14445
|
+
if (!parsed.solanaWallet?.address) {
|
|
14446
|
+
throw new Error("ABC Solana wallet not found");
|
|
14447
|
+
}
|
|
14448
|
+
const provider = new AbcSolProvider(parsed.solanaWallet.address);
|
|
14449
|
+
const result = await provider.signMessage(messageBytes);
|
|
14450
|
+
signatureBytes = result.signature;
|
|
14451
|
+
} else {
|
|
14452
|
+
throw new Error("No Solana wallet connected");
|
|
14453
|
+
}
|
|
14454
|
+
setSignature(signatureBytes);
|
|
14455
|
+
setIsSuccess(true);
|
|
14456
|
+
setIsPending(false);
|
|
14457
|
+
return signatureBytes;
|
|
14458
|
+
} catch (err) {
|
|
14459
|
+
const isUserRejection = err?.code === 4001 || err?.cancelled === true || err?.name === "WalletSignMessageError" || err?.message?.includes("User rejected") || err?.message?.includes("User canceled") || err?.message?.includes("User cancelled") || err?.message?.includes("User denied");
|
|
14460
|
+
if (isUserRejection) {
|
|
14461
|
+
const cancelError = err instanceof Error ? err : new Error(String(err));
|
|
14462
|
+
cancelError.code = 4001;
|
|
14463
|
+
cancelError.cancelled = true;
|
|
14464
|
+
setError(cancelError);
|
|
14465
|
+
setIsError(true);
|
|
14466
|
+
setIsPending(false);
|
|
14467
|
+
throw cancelError;
|
|
14468
|
+
}
|
|
14469
|
+
const errorObj = err instanceof Error ? err : new Error(String(err));
|
|
14470
|
+
setError(errorObj);
|
|
14471
|
+
setIsError(true);
|
|
14472
|
+
setIsPending(false);
|
|
14473
|
+
throw errorObj;
|
|
14474
|
+
}
|
|
14475
|
+
},
|
|
14476
|
+
[isConnected, address, walletType, externalSignMessage]
|
|
14477
|
+
);
|
|
14478
|
+
return {
|
|
14479
|
+
signMessage,
|
|
14480
|
+
signature,
|
|
14481
|
+
isPending,
|
|
14482
|
+
isSuccess,
|
|
14483
|
+
isError,
|
|
14484
|
+
error: error2,
|
|
14485
|
+
reset
|
|
14486
|
+
};
|
|
14487
|
+
}
|
|
14488
|
+
|
|
14489
|
+
// src/solana/hooks/useSolanaSendTransaction.ts
|
|
14490
|
+
import { useConnection, useWallet as useWallet6 } from "@solana/wallet-adapter-react";
|
|
14491
|
+
import {
|
|
14492
|
+
LAMPORTS_PER_SOL,
|
|
14493
|
+
PublicKey as PublicKey2,
|
|
14494
|
+
SystemProgram,
|
|
14495
|
+
Transaction as Transaction2
|
|
14496
|
+
} from "@solana/web3.js";
|
|
14497
|
+
import { useCallback as useCallback18, useState as useState33 } from "react";
|
|
14498
|
+
function useSolanaSendTransaction() {
|
|
14499
|
+
const {
|
|
14500
|
+
address,
|
|
14501
|
+
walletType,
|
|
14502
|
+
isConnected,
|
|
14503
|
+
publicKey: accountPublicKey
|
|
14504
|
+
} = useSolanaAccount();
|
|
14505
|
+
const { sendTransaction: externalSendTransaction } = useWallet6();
|
|
14506
|
+
const { connection } = useConnection();
|
|
14507
|
+
const [txHash, setTxHash] = useState33(null);
|
|
14508
|
+
const [isPending, setIsPending] = useState33(false);
|
|
14509
|
+
const [isSuccess, setIsSuccess] = useState33(false);
|
|
14510
|
+
const [isError, setIsError] = useState33(false);
|
|
14511
|
+
const [error2, setError] = useState33(null);
|
|
14512
|
+
const reset = useCallback18(() => {
|
|
14513
|
+
setTxHash(null);
|
|
14514
|
+
setIsPending(false);
|
|
14515
|
+
setIsSuccess(false);
|
|
14516
|
+
setIsError(false);
|
|
14517
|
+
setError(null);
|
|
14518
|
+
}, []);
|
|
14519
|
+
const sendTransaction = useCallback18(
|
|
14520
|
+
async ({
|
|
14521
|
+
toAddress,
|
|
14522
|
+
amount
|
|
14523
|
+
}) => {
|
|
14524
|
+
setIsPending(true);
|
|
14525
|
+
setIsSuccess(false);
|
|
14526
|
+
setIsError(false);
|
|
14527
|
+
setError(null);
|
|
14528
|
+
setTxHash(null);
|
|
14529
|
+
try {
|
|
14530
|
+
if (!isConnected || !address) {
|
|
14531
|
+
throw new Error("Solana wallet not connected");
|
|
14532
|
+
}
|
|
14533
|
+
let signature;
|
|
14534
|
+
if (walletType === "external") {
|
|
14535
|
+
if (!externalSendTransaction) {
|
|
14536
|
+
throw new Error(
|
|
14537
|
+
"External wallet does not support sending transactions"
|
|
14538
|
+
);
|
|
14539
|
+
}
|
|
14540
|
+
if (!accountPublicKey) {
|
|
14541
|
+
throw new Error(
|
|
14542
|
+
"Wallet public key not available. Please reconnect your wallet."
|
|
14543
|
+
);
|
|
14544
|
+
}
|
|
14545
|
+
const transaction = new Transaction2().add(
|
|
14546
|
+
SystemProgram.transfer({
|
|
14547
|
+
fromPubkey: accountPublicKey,
|
|
14548
|
+
toPubkey: new PublicKey2(toAddress),
|
|
14549
|
+
lamports: Math.floor(amount * LAMPORTS_PER_SOL)
|
|
14550
|
+
})
|
|
14551
|
+
);
|
|
14552
|
+
const { blockhash } = await connection.getLatestBlockhash();
|
|
14553
|
+
transaction.recentBlockhash = blockhash;
|
|
14554
|
+
transaction.feePayer = accountPublicKey;
|
|
14555
|
+
try {
|
|
14556
|
+
signature = await externalSendTransaction(transaction, connection);
|
|
14557
|
+
} catch (sendError) {
|
|
14558
|
+
if (sendError?.name === "WalletSendTransactionError" && (!sendError?.message || sendError?.message === "")) {
|
|
14559
|
+
throw new Error(
|
|
14560
|
+
"Transaction failed. This may be due to insufficient SOL balance. Please ensure you have enough SOL for the transaction and gas fees."
|
|
14561
|
+
);
|
|
14562
|
+
}
|
|
14563
|
+
throw sendError;
|
|
14564
|
+
}
|
|
14565
|
+
} else if (walletType === "abc") {
|
|
14566
|
+
const authState = localStorage.getItem("talkenkit_abc_auth_state");
|
|
14567
|
+
if (!authState) {
|
|
14568
|
+
throw new Error("ABC Wallet auth state not found");
|
|
14569
|
+
}
|
|
14570
|
+
const parsed = JSON.parse(authState);
|
|
14571
|
+
if (!parsed.solanaWallet?.address) {
|
|
14572
|
+
throw new Error("ABC Solana wallet not found");
|
|
14573
|
+
}
|
|
14574
|
+
const provider = new AbcSolProvider(parsed.solanaWallet.address);
|
|
14575
|
+
const result = await provider.sendTransaction({
|
|
14576
|
+
toAddress,
|
|
14577
|
+
amount
|
|
14578
|
+
});
|
|
14579
|
+
signature = result.txHash;
|
|
14580
|
+
} else {
|
|
14581
|
+
throw new Error("No Solana wallet connected");
|
|
14582
|
+
}
|
|
14583
|
+
setTxHash(signature);
|
|
14584
|
+
setIsSuccess(true);
|
|
14585
|
+
setIsPending(false);
|
|
14586
|
+
return signature;
|
|
14587
|
+
} catch (err) {
|
|
14588
|
+
const isUserRejection = err?.code === 4001 || err?.cancelled === true || err?.name === "WalletSendTransactionError" || err?.message?.includes("User rejected") || err?.message?.includes("User canceled") || err?.message?.includes("User cancelled") || err?.message?.includes("User denied");
|
|
14589
|
+
if (isUserRejection) {
|
|
14590
|
+
const cancelError = err instanceof Error ? err : new Error(String(err));
|
|
14591
|
+
cancelError.code = 4001;
|
|
14592
|
+
cancelError.cancelled = true;
|
|
14593
|
+
setError(cancelError);
|
|
14594
|
+
setIsError(true);
|
|
14595
|
+
setIsPending(false);
|
|
14596
|
+
throw cancelError;
|
|
14597
|
+
}
|
|
14598
|
+
const errorObj = err instanceof Error ? err : new Error(String(err));
|
|
14599
|
+
setError(errorObj);
|
|
14600
|
+
setIsError(true);
|
|
14601
|
+
setIsPending(false);
|
|
14602
|
+
throw errorObj;
|
|
14603
|
+
}
|
|
14604
|
+
},
|
|
14605
|
+
[
|
|
14606
|
+
isConnected,
|
|
14607
|
+
address,
|
|
14608
|
+
walletType,
|
|
14609
|
+
accountPublicKey,
|
|
14610
|
+
externalSendTransaction,
|
|
14611
|
+
connection
|
|
14612
|
+
]
|
|
14613
|
+
);
|
|
14614
|
+
return {
|
|
14615
|
+
sendTransaction,
|
|
14616
|
+
txHash,
|
|
14617
|
+
isPending,
|
|
14618
|
+
isSuccess,
|
|
14619
|
+
isError,
|
|
14620
|
+
error: error2,
|
|
14621
|
+
reset
|
|
14622
|
+
};
|
|
14623
|
+
}
|
|
14624
|
+
|
|
14625
|
+
// src/solana/hooks/useSolanaConnection.ts
|
|
14626
|
+
import { useConnection as useConnection2 } from "@solana/wallet-adapter-react";
|
|
14627
|
+
import { useMemo as useMemo15 } from "react";
|
|
14628
|
+
function detectNetwork(endpoint) {
|
|
14629
|
+
const url = endpoint.toLowerCase();
|
|
14630
|
+
if (url.includes("mainnet"))
|
|
14631
|
+
return "mainnet-beta";
|
|
14632
|
+
if (url.includes("devnet"))
|
|
14633
|
+
return "devnet";
|
|
14634
|
+
if (url.includes("testnet"))
|
|
14635
|
+
return "testnet";
|
|
14636
|
+
if (url.includes("localhost") || url.includes("127.0.0.1"))
|
|
14637
|
+
return "localnet";
|
|
14638
|
+
return "mainnet-beta";
|
|
14639
|
+
}
|
|
14640
|
+
function useSolanaConnection() {
|
|
14641
|
+
const { connection } = useConnection2();
|
|
14642
|
+
const connectionInfo = useMemo15(() => {
|
|
14643
|
+
const endpoint = connection._rpcEndpoint || connection.rpcEndpoint || "";
|
|
14644
|
+
const network = detectNetwork(endpoint);
|
|
14645
|
+
return {
|
|
14646
|
+
connection,
|
|
14647
|
+
endpoint,
|
|
14648
|
+
network
|
|
14649
|
+
};
|
|
14650
|
+
}, [connection]);
|
|
14651
|
+
return connectionInfo;
|
|
14652
|
+
}
|
|
14653
|
+
|
|
13760
14654
|
// src/hooks/useSolSignMessage.ts
|
|
13761
|
-
import { useState as
|
|
14655
|
+
import { useState as useState34 } from "react";
|
|
13762
14656
|
function useSolSignMessage(solanaWallet) {
|
|
13763
|
-
const [isLoading, setIsLoading] =
|
|
13764
|
-
const [error2, setError] =
|
|
13765
|
-
const [data, setData] =
|
|
14657
|
+
const [isLoading, setIsLoading] = useState34(false);
|
|
14658
|
+
const [error2, setError] = useState34(null);
|
|
14659
|
+
const [data, setData] = useState34(null);
|
|
13766
14660
|
const signMessage = async (params) => {
|
|
13767
14661
|
setIsLoading(true);
|
|
13768
14662
|
setError(null);
|
|
@@ -13802,16 +14696,16 @@ function useSolSignMessage(solanaWallet) {
|
|
|
13802
14696
|
// src/hooks/useSolSignTransaction.ts
|
|
13803
14697
|
import {
|
|
13804
14698
|
Connection,
|
|
13805
|
-
LAMPORTS_PER_SOL,
|
|
13806
|
-
PublicKey,
|
|
13807
|
-
SystemProgram,
|
|
13808
|
-
Transaction
|
|
14699
|
+
LAMPORTS_PER_SOL as LAMPORTS_PER_SOL2,
|
|
14700
|
+
PublicKey as PublicKey3,
|
|
14701
|
+
SystemProgram as SystemProgram2,
|
|
14702
|
+
Transaction as Transaction3
|
|
13809
14703
|
} from "@solana/web3.js";
|
|
13810
|
-
import { useState as
|
|
14704
|
+
import { useState as useState35 } from "react";
|
|
13811
14705
|
function useSolSignTransaction(solanaWallet) {
|
|
13812
|
-
const [isLoading, setIsLoading] =
|
|
13813
|
-
const [error2, setError] =
|
|
13814
|
-
const [data, setData] =
|
|
14706
|
+
const [isLoading, setIsLoading] = useState35(false);
|
|
14707
|
+
const [error2, setError] = useState35(null);
|
|
14708
|
+
const [data, setData] = useState35(null);
|
|
13815
14709
|
const signTransaction = async (params) => {
|
|
13816
14710
|
setIsLoading(true);
|
|
13817
14711
|
setError(null);
|
|
@@ -13870,13 +14764,13 @@ async function buildTransaction(params, solanaWallet) {
|
|
|
13870
14764
|
}
|
|
13871
14765
|
const rpcUrl = solanaWallet.network === "mainnet" ? "https://api.mainnet-beta.solana.com" : "https://api.devnet.solana.com";
|
|
13872
14766
|
const connection = new Connection(rpcUrl, "confirmed");
|
|
13873
|
-
const fromPubkey = new
|
|
13874
|
-
const toPubkey = new
|
|
13875
|
-
const transaction = new
|
|
13876
|
-
|
|
14767
|
+
const fromPubkey = new PublicKey3(provider.publicKey.toString());
|
|
14768
|
+
const toPubkey = new PublicKey3(params.toAddress);
|
|
14769
|
+
const transaction = new Transaction3().add(
|
|
14770
|
+
SystemProgram2.transfer({
|
|
13877
14771
|
fromPubkey,
|
|
13878
14772
|
toPubkey,
|
|
13879
|
-
lamports: params.amount *
|
|
14773
|
+
lamports: params.amount * LAMPORTS_PER_SOL2
|
|
13880
14774
|
})
|
|
13881
14775
|
);
|
|
13882
14776
|
const { blockhash } = await connection.getLatestBlockhash();
|
|
@@ -13957,23 +14851,23 @@ function ChainIndicator({
|
|
|
13957
14851
|
// src/providers/AbcAuthProvider.tsx
|
|
13958
14852
|
import React80, {
|
|
13959
14853
|
createContext as createContext15,
|
|
13960
|
-
useContext as
|
|
13961
|
-
useState as
|
|
14854
|
+
useContext as useContext31,
|
|
14855
|
+
useState as useState36,
|
|
13962
14856
|
useEffect as useEffect26,
|
|
13963
|
-
useCallback as
|
|
14857
|
+
useCallback as useCallback19
|
|
13964
14858
|
} from "react";
|
|
13965
14859
|
var DEBUG2 = true;
|
|
13966
14860
|
var STORAGE_PREFIX2 = "talkenkit_abc_";
|
|
13967
14861
|
var AbcAuthContext = createContext15(null);
|
|
13968
14862
|
function useAbcAuth() {
|
|
13969
|
-
const context =
|
|
14863
|
+
const context = useContext31(AbcAuthContext);
|
|
13970
14864
|
if (!context) {
|
|
13971
14865
|
throw new Error("useAbcAuth must be used within AbcAuthProvider");
|
|
13972
14866
|
}
|
|
13973
14867
|
return context;
|
|
13974
14868
|
}
|
|
13975
14869
|
function AbcAuthProvider({ children }) {
|
|
13976
|
-
const [state, setState] =
|
|
14870
|
+
const [state, setState] = useState36({
|
|
13977
14871
|
isAuthenticated: false,
|
|
13978
14872
|
user: {
|
|
13979
14873
|
email: null,
|
|
@@ -13990,12 +14884,12 @@ function AbcAuthProvider({ children }) {
|
|
|
13990
14884
|
},
|
|
13991
14885
|
pinHash: null
|
|
13992
14886
|
});
|
|
13993
|
-
const isTokenExpired2 =
|
|
14887
|
+
const isTokenExpired2 = useCallback19(() => {
|
|
13994
14888
|
if (!state.tokens.expiresAt)
|
|
13995
14889
|
return true;
|
|
13996
14890
|
return Date.now() >= state.tokens.expiresAt;
|
|
13997
14891
|
}, [state.tokens.expiresAt]);
|
|
13998
|
-
const refreshToken =
|
|
14892
|
+
const refreshToken = useCallback19(async () => {
|
|
13999
14893
|
if (!state.tokens.refreshToken) {
|
|
14000
14894
|
if (DEBUG2)
|
|
14001
14895
|
console.log("[AbcAuthProvider] No refresh token available");
|
|
@@ -14054,7 +14948,7 @@ function AbcAuthProvider({ children }) {
|
|
|
14054
14948
|
return false;
|
|
14055
14949
|
}
|
|
14056
14950
|
}, [state.tokens.refreshToken]);
|
|
14057
|
-
const unlockWithPin =
|
|
14951
|
+
const unlockWithPin = useCallback19(async (pin) => {
|
|
14058
14952
|
try {
|
|
14059
14953
|
const encryptedTokens = localStorage.getItem(
|
|
14060
14954
|
`${STORAGE_PREFIX2}enc_tokens`
|
|
@@ -14099,7 +14993,7 @@ function AbcAuthProvider({ children }) {
|
|
|
14099
14993
|
return false;
|
|
14100
14994
|
}
|
|
14101
14995
|
}, []);
|
|
14102
|
-
const logout =
|
|
14996
|
+
const logout = useCallback19(async () => {
|
|
14103
14997
|
setState({
|
|
14104
14998
|
isAuthenticated: false,
|
|
14105
14999
|
user: { email: null, uid: null },
|
|
@@ -14116,7 +15010,7 @@ function AbcAuthProvider({ children }) {
|
|
|
14116
15010
|
if (DEBUG2)
|
|
14117
15011
|
console.log("[AbcAuthProvider] \u2705 Logged out");
|
|
14118
15012
|
}, []);
|
|
14119
|
-
const setAuthState =
|
|
15013
|
+
const setAuthState = useCallback19((partial) => {
|
|
14120
15014
|
setState((prev) => ({ ...prev, ...partial }));
|
|
14121
15015
|
}, []);
|
|
14122
15016
|
useEffect26(() => {
|
|
@@ -14189,21 +15083,21 @@ function AbcAuthProvider({ children }) {
|
|
|
14189
15083
|
// src/components/AbcAuth/PinProvider.tsx
|
|
14190
15084
|
import React81, {
|
|
14191
15085
|
createContext as createContext16,
|
|
14192
|
-
useContext as
|
|
14193
|
-
useState as
|
|
14194
|
-
useCallback as
|
|
15086
|
+
useContext as useContext32,
|
|
15087
|
+
useState as useState37,
|
|
15088
|
+
useCallback as useCallback20,
|
|
14195
15089
|
useEffect as useEffect27
|
|
14196
15090
|
} from "react";
|
|
14197
15091
|
import { useAccount as useAccount19 } from "wagmi";
|
|
14198
15092
|
var PinContext = createContext16(null);
|
|
14199
15093
|
function PinProvider({ children }) {
|
|
14200
|
-
const [isModalOpen, setIsModalOpen] =
|
|
14201
|
-
const [purpose, setPurpose] =
|
|
14202
|
-
const [pinResolver, setPinResolver] =
|
|
14203
|
-
const [pinRejecter, setPinRejecter] =
|
|
14204
|
-
const [error2, setError] =
|
|
15094
|
+
const [isModalOpen, setIsModalOpen] = useState37(false);
|
|
15095
|
+
const [purpose, setPurpose] = useState37("transaction");
|
|
15096
|
+
const [pinResolver, setPinResolver] = useState37(null);
|
|
15097
|
+
const [pinRejecter, setPinRejecter] = useState37(null);
|
|
15098
|
+
const [error2, setError] = useState37("");
|
|
14205
15099
|
const { connector, isConnected } = useAccount19();
|
|
14206
|
-
const requestPin =
|
|
15100
|
+
const requestPin = useCallback20(
|
|
14207
15101
|
(requestPurpose = "transaction") => {
|
|
14208
15102
|
return new Promise((resolve, reject) => {
|
|
14209
15103
|
setPurpose(requestPurpose);
|
|
@@ -14215,7 +15109,7 @@ function PinProvider({ children }) {
|
|
|
14215
15109
|
},
|
|
14216
15110
|
[]
|
|
14217
15111
|
);
|
|
14218
|
-
const handlePinSubmit =
|
|
15112
|
+
const handlePinSubmit = useCallback20(
|
|
14219
15113
|
async (pin) => {
|
|
14220
15114
|
if (!pinResolver) {
|
|
14221
15115
|
return;
|
|
@@ -14239,9 +15133,12 @@ function PinProvider({ children }) {
|
|
|
14239
15133
|
},
|
|
14240
15134
|
[pinResolver]
|
|
14241
15135
|
);
|
|
14242
|
-
const handleModalClose =
|
|
15136
|
+
const handleModalClose = useCallback20(() => {
|
|
14243
15137
|
if (pinRejecter) {
|
|
14244
|
-
|
|
15138
|
+
const error3 = new Error("User cancelled PIN request");
|
|
15139
|
+
error3.code = 4001;
|
|
15140
|
+
error3.cancelled = true;
|
|
15141
|
+
pinRejecter(error3);
|
|
14245
15142
|
setIsModalOpen(false);
|
|
14246
15143
|
setPinResolver(null);
|
|
14247
15144
|
setPinRejecter(null);
|
|
@@ -14294,7 +15191,7 @@ function PinProvider({ children }) {
|
|
|
14294
15191
|
));
|
|
14295
15192
|
}
|
|
14296
15193
|
function usePin() {
|
|
14297
|
-
const context =
|
|
15194
|
+
const context = useContext32(PinContext);
|
|
14298
15195
|
if (!context) {
|
|
14299
15196
|
throw new Error("usePin must be used within PinProvider");
|
|
14300
15197
|
}
|
|
@@ -14512,11 +15409,16 @@ var BaseApiClient = class {
|
|
|
14512
15409
|
try {
|
|
14513
15410
|
const isIframe = typeof window !== "undefined" && window.self !== window.top;
|
|
14514
15411
|
const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
|
|
15412
|
+
const isProd = this.config.environment === "production";
|
|
15413
|
+
const headers = { ...DEFAULT_HEADERS };
|
|
15414
|
+
if (isProd) {
|
|
15415
|
+
headers["User-Agent"] = "Android";
|
|
15416
|
+
}
|
|
14515
15417
|
const response = await fetch(
|
|
14516
15418
|
`${talkenApiUrl}${ABC_ENDPOINTS.REFRESH_TOKEN}`,
|
|
14517
15419
|
{
|
|
14518
15420
|
method: "POST",
|
|
14519
|
-
headers
|
|
15421
|
+
headers,
|
|
14520
15422
|
credentials: "include",
|
|
14521
15423
|
body: new URLSearchParams({
|
|
14522
15424
|
refresh_token: this.refreshToken || "",
|
|
@@ -14571,6 +15473,9 @@ var BaseApiClient = class {
|
|
|
14571
15473
|
requestHeaders["Content-Type"] = "application/json";
|
|
14572
15474
|
requestHeaders["Accept"] = "application/json";
|
|
14573
15475
|
}
|
|
15476
|
+
if (this.config.environment === "production") {
|
|
15477
|
+
requestHeaders["User-Agent"] = "Android";
|
|
15478
|
+
}
|
|
14574
15479
|
if (!skipAuth && this.accessToken) {
|
|
14575
15480
|
requestHeaders.Authorization = `Bearer ${this.accessToken}`;
|
|
14576
15481
|
}
|
|
@@ -15069,9 +15974,10 @@ var WalletApi = class extends BaseApiClient {
|
|
|
15069
15974
|
);
|
|
15070
15975
|
}
|
|
15071
15976
|
const result = data.result;
|
|
15977
|
+
const solanaNetwork = getSolanaNetwork();
|
|
15072
15978
|
const addressResult = await this.getSolanaAddress(
|
|
15073
15979
|
result.public_key,
|
|
15074
|
-
|
|
15980
|
+
solanaNetwork
|
|
15075
15981
|
);
|
|
15076
15982
|
return {
|
|
15077
15983
|
uid: result.uid || "",
|
|
@@ -15080,7 +15986,8 @@ var WalletApi = class extends BaseApiClient {
|
|
|
15080
15986
|
publicKey: result.public_key,
|
|
15081
15987
|
address: addressResult,
|
|
15082
15988
|
keyId: result.key_id || result.share_id,
|
|
15083
|
-
encryptedShare: result.encrypted_share || ""
|
|
15989
|
+
encryptedShare: result.encrypted_share || "",
|
|
15990
|
+
network: solanaNetwork
|
|
15084
15991
|
};
|
|
15085
15992
|
}
|
|
15086
15993
|
/**
|
|
@@ -15636,9 +16543,6 @@ var SolanaApi = class extends BaseApiClient {
|
|
|
15636
16543
|
*/
|
|
15637
16544
|
async generateSolanaWallet(pin, isRecover = false) {
|
|
15638
16545
|
const endpoint = `/v3/wallet/${isRecover ? "recover" : "generate"}`;
|
|
15639
|
-
console.log(
|
|
15640
|
-
`[SolanaApi] \u{1F527} ${isRecover ? "Recovering" : "Generating"} Solana wallet...`
|
|
15641
|
-
);
|
|
15642
16546
|
const response = await this.request(endpoint, {
|
|
15643
16547
|
method: "POST",
|
|
15644
16548
|
contentType: "json",
|
|
@@ -15649,7 +16553,6 @@ var SolanaApi = class extends BaseApiClient {
|
|
|
15649
16553
|
}
|
|
15650
16554
|
});
|
|
15651
16555
|
if (response.status !== "success" || !response.result) {
|
|
15652
|
-
console.error("[SolanaApi] \u274C Operation failed:", response);
|
|
15653
16556
|
throw createAbcError(
|
|
15654
16557
|
"WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
|
|
15655
16558
|
`Failed to ${isRecover ? "recover" : "generate"} Solana wallet`,
|
|
@@ -15658,7 +16561,7 @@ var SolanaApi = class extends BaseApiClient {
|
|
|
15658
16561
|
}
|
|
15659
16562
|
const result = response.result;
|
|
15660
16563
|
const address = this.deriveAddressFromPublicKey(result.public_key);
|
|
15661
|
-
|
|
16564
|
+
const network = getSolanaNetwork();
|
|
15662
16565
|
return {
|
|
15663
16566
|
uid: result.uid || "",
|
|
15664
16567
|
sessionId: result.share_id,
|
|
@@ -15666,7 +16569,9 @@ var SolanaApi = class extends BaseApiClient {
|
|
|
15666
16569
|
publicKey: result.public_key,
|
|
15667
16570
|
address,
|
|
15668
16571
|
keyId: result.key_id || result.share_id,
|
|
15669
|
-
encryptedShare: result.encrypted_share || ""
|
|
16572
|
+
encryptedShare: result.encrypted_share || "",
|
|
16573
|
+
secretStore: result.secret_store || "",
|
|
16574
|
+
network
|
|
15670
16575
|
};
|
|
15671
16576
|
}
|
|
15672
16577
|
/**
|
|
@@ -15691,16 +16596,18 @@ var SolanaApi = class extends BaseApiClient {
|
|
|
15691
16596
|
}
|
|
15692
16597
|
/**
|
|
15693
16598
|
* Sign Solana transaction with Ed25519
|
|
16599
|
+
* Reference: /v3/wallet/sign API requires only 5 fields
|
|
15694
16600
|
*/
|
|
15695
16601
|
async signSolanaTransaction(params) {
|
|
15696
16602
|
const response = await this.request("/v3/wallet/sign", {
|
|
15697
16603
|
method: "POST",
|
|
15698
16604
|
contentType: "json",
|
|
15699
16605
|
body: {
|
|
15700
|
-
|
|
15701
|
-
|
|
15702
|
-
|
|
15703
|
-
|
|
16606
|
+
curve: "ed25519",
|
|
16607
|
+
key_id: params.keyId,
|
|
16608
|
+
encrypted_share: params.encryptedShare,
|
|
16609
|
+
secret_store: params.secretStore || "",
|
|
16610
|
+
message: params.message
|
|
15704
16611
|
}
|
|
15705
16612
|
});
|
|
15706
16613
|
if (response.status !== "success" || !response.result?.signature) {
|
|
@@ -15716,16 +16623,18 @@ var SolanaApi = class extends BaseApiClient {
|
|
|
15716
16623
|
}
|
|
15717
16624
|
/**
|
|
15718
16625
|
* Sign Solana message with Ed25519
|
|
16626
|
+
* Reference: /v3/wallet/sign API requires only 5 fields
|
|
15719
16627
|
*/
|
|
15720
16628
|
async signSolanaMessage(params) {
|
|
15721
16629
|
const response = await this.request("/v3/wallet/sign", {
|
|
15722
16630
|
method: "POST",
|
|
15723
16631
|
contentType: "json",
|
|
15724
16632
|
body: {
|
|
15725
|
-
|
|
15726
|
-
|
|
15727
|
-
|
|
15728
|
-
|
|
16633
|
+
curve: "ed25519",
|
|
16634
|
+
key_id: params.keyId,
|
|
16635
|
+
encrypted_share: params.encryptedShare,
|
|
16636
|
+
secret_store: params.secretStore || "",
|
|
16637
|
+
message: params.message
|
|
15729
16638
|
}
|
|
15730
16639
|
});
|
|
15731
16640
|
if (response.status !== "success" || !response.result?.signature) {
|
|
@@ -16415,6 +17324,10 @@ export {
|
|
|
16415
17324
|
useRainbowKitConfig,
|
|
16416
17325
|
useSolSignMessage,
|
|
16417
17326
|
useSolSignTransaction,
|
|
17327
|
+
useSolanaAccount,
|
|
17328
|
+
useSolanaConnection,
|
|
17329
|
+
useSolanaSendTransaction,
|
|
17330
|
+
useSolanaSignMessage,
|
|
16418
17331
|
verifyOtpCode,
|
|
16419
17332
|
verifyPin,
|
|
16420
17333
|
wagmiToAbcWaas
|