@talken/talkenkit 2.3.14 → 2.4.4
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/chunk-RQ637EP3.js +224 -0
- package/dist/components/ConnectOptions/ExternalWallets/EthereumWallet/EthereumWalletList.d.ts +4 -4
- package/dist/index.d.ts +7 -5
- package/dist/index.js +6886 -6858
- package/dist/secure-X6ZSGFOB.js +8 -0
- package/dist/services/AbcAuthService.d.ts +1 -1
- package/dist/solana/AbcSolanaAutoConnector.d.ts +7 -0
- package/dist/solana/SolanaWalletProvider.d.ts +18 -2
- package/dist/solana/config.d.ts +26 -0
- package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.d.ts +7 -0
- package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.js +37 -0
- package/dist/wallets/walletConnectors/abcWallet/abcApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +7 -7
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +166 -0
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +725 -0
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +7 -0
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +8 -8
- package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.d.ts +5 -0
- package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +16 -5
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +6 -6
- package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +6 -6
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +14 -14
- package/dist/wallets/walletConnectors/abcWallet/googleAuth.d.ts +1 -1
- package/dist/wallets/walletConnectors/abcWallet/googleAuth.js +5 -7
- package/dist/wallets/walletConnectors/abcWallet/index.d.ts +4 -7
- package/dist/wallets/walletConnectors/abcWallet/index.js +48 -47
- package/dist/wallets/walletConnectors/abcWallet/networkConfig.d.ts +45 -30
- package/dist/wallets/walletConnectors/abcWallet/networkConfig.js +9 -5
- package/dist/wallets/walletConnectors/abcWallet/secure.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/sessionUtils.d.ts +38 -0
- package/dist/wallets/walletConnectors/abcWallet/sessionUtils.js +15 -0
- package/dist/wallets/walletConnectors/abcWallet/types.d.ts +40 -1
- package/dist/wallets/walletConnectors/abcWallet/types.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/utils.d.ts +1 -1
- package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
- package/dist/wallets/walletConnectors/abcWallet/walletGeneration.js +2 -2
- package/dist/wallets/walletConnectors/{chunk-VZCI2K6Y.js → chunk-2GNL2GNB.js} +44 -14
- package/dist/wallets/walletConnectors/{chunk-5DDAV4BZ.js → chunk-2NAY6X3G.js} +1 -1
- package/dist/wallets/walletConnectors/{chunk-ZIYAL44B.js → chunk-2NVHWZUE.js} +1 -1
- package/dist/wallets/walletConnectors/chunk-36J4NGMW.js +276 -0
- package/dist/wallets/walletConnectors/{chunk-4QPXFUDC.js → chunk-3CTIR723.js} +4 -1
- package/dist/wallets/walletConnectors/{chunk-25LLSYLN.js → chunk-3WLUH24A.js} +10 -10
- package/dist/wallets/walletConnectors/{chunk-MZOFZ2NQ.js → chunk-53LPTQ6J.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-2XFKRGDK.js → chunk-5CZGFT24.js} +10 -10
- package/dist/wallets/walletConnectors/{chunk-75NE2OUD.js → chunk-5JIPWC5W.js} +21 -18
- package/dist/wallets/walletConnectors/{chunk-2E2TVL4A.js → chunk-5LPD35BU.js} +8 -8
- package/dist/wallets/walletConnectors/{chunk-UV5HHESJ.js → chunk-5RSS3SRV.js} +29 -12
- package/dist/wallets/walletConnectors/{chunk-636QKXSN.js → chunk-64TRAZ6V.js} +4 -1
- package/dist/wallets/walletConnectors/{chunk-KZG5KU7A.js → chunk-6BAXMYSN.js} +3 -3
- package/dist/wallets/walletConnectors/{chunk-AKYC5VZG.js → chunk-7MOCKWA7.js} +66 -20
- package/dist/wallets/walletConnectors/{chunk-2PDAR5KA.js → chunk-7TYZCXIR.js} +11 -11
- package/dist/wallets/walletConnectors/{chunk-DU6M25IR.js → chunk-7UIXGYOT.js} +17 -17
- package/dist/wallets/walletConnectors/{chunk-BPLIASJE.js → chunk-7UQQKSV7.js} +4 -1
- package/dist/wallets/walletConnectors/{chunk-ZX6LABEF.js → chunk-A7FIBI6X.js} +30 -13
- package/dist/wallets/walletConnectors/{chunk-FGBDWBWQ.js → chunk-AIKTQX6B.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-AO24PU7X.js +104 -0
- package/dist/wallets/walletConnectors/{chunk-2RVWT7N7.js → chunk-APLOMU6R.js} +4 -1
- package/dist/wallets/walletConnectors/chunk-AZAV5URB.js +267 -0
- package/dist/wallets/walletConnectors/chunk-BO6OI7XU.js +63 -0
- package/dist/wallets/walletConnectors/chunk-BV3DCJXA.js +276 -0
- package/dist/wallets/walletConnectors/{chunk-NX5MQHSQ.js → chunk-CNRPEVLV.js} +14 -2
- package/dist/wallets/walletConnectors/{chunk-V3XKL7AD.js → chunk-COPAK5YT.js} +3 -3
- package/dist/wallets/walletConnectors/chunk-CZVBS7QE.js +436 -0
- package/dist/wallets/walletConnectors/{chunk-QKUFFUM5.js → chunk-DA5J6GHZ.js} +14 -4
- package/dist/wallets/walletConnectors/chunk-FMDSZ2CE.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-ISAMATTH.js → chunk-FQTLYAWT.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-FUOQBONI.js +47 -0
- package/dist/wallets/walletConnectors/{chunk-F5HCFRTK.js → chunk-FWCS4HBL.js} +80 -68
- package/dist/wallets/walletConnectors/chunk-FY7UDC3W.js +63 -0
- package/dist/wallets/walletConnectors/chunk-GZUP3M2X.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-B23AX3U3.js → chunk-H52W4ZFE.js} +20 -17
- package/dist/wallets/walletConnectors/chunk-HEQZLRTH.js +309 -0
- package/dist/wallets/walletConnectors/chunk-HFC4AK72.js +194 -0
- package/dist/wallets/walletConnectors/chunk-HKIV22NT.js +63 -0
- package/dist/wallets/walletConnectors/chunk-HLC24OGS.js +63 -0
- package/dist/wallets/walletConnectors/chunk-HTD7IRKM.js +345 -0
- package/dist/wallets/walletConnectors/{chunk-5VL7T6AY.js → chunk-IQJWD4IN.js} +18 -18
- package/dist/wallets/walletConnectors/chunk-IZUAJRJ4.js +311 -0
- package/dist/wallets/walletConnectors/{chunk-KJHOGJ3A.js → chunk-J6VUIOSE.js} +25 -4
- package/dist/wallets/walletConnectors/chunk-JQ57SCY6.js +313 -0
- package/dist/wallets/walletConnectors/{chunk-BNSBK5PQ.js → chunk-KB7OGAUC.js} +14 -4
- package/dist/wallets/walletConnectors/chunk-KXEAFXAA.js +226 -0
- package/dist/wallets/walletConnectors/{chunk-DA7TFV7F.js → chunk-LLWI2QWC.js} +74 -68
- package/dist/wallets/walletConnectors/chunk-LQ2U33WM.js +306 -0
- package/dist/wallets/walletConnectors/chunk-M7KXDTM6.js +484 -0
- package/dist/wallets/walletConnectors/{chunk-DHVD2NUK.js → chunk-MKAXMNZM.js} +3 -3
- package/dist/wallets/walletConnectors/chunk-MNRRJSFM.js +272 -0
- package/dist/wallets/walletConnectors/chunk-MPFE6GP2.js +306 -0
- package/dist/wallets/walletConnectors/{chunk-6KO5WQ5C.js → chunk-MPNSYA4E.js} +3 -3
- package/dist/wallets/walletConnectors/chunk-NDLQSZ2F.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-G2LI5MVX.js → chunk-NDYGTKP5.js} +0 -2
- package/dist/wallets/walletConnectors/chunk-NLBRSN6Q.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-CGLM5KXH.js → chunk-NPF7NOA7.js} +70 -24
- package/dist/wallets/walletConnectors/{chunk-A7KV643A.js → chunk-NUJ6VD2U.js} +85 -19
- package/dist/wallets/walletConnectors/chunk-PSRATZTN.js +47 -0
- package/dist/wallets/walletConnectors/{chunk-YEHCPL4R.js → chunk-QCIIXMAZ.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-GZ55OZIT.js → chunk-RCI7QYCZ.js} +81 -17
- package/dist/wallets/walletConnectors/{chunk-43LPUTHW.js → chunk-RHQXGWIW.js} +83 -17
- package/dist/wallets/walletConnectors/chunk-RPOLRZ4N.js +276 -0
- package/dist/wallets/walletConnectors/{chunk-5UEBEMEE.js → chunk-RQIUWXDF.js} +2 -1
- package/dist/wallets/walletConnectors/{chunk-75W4VLFA.js → chunk-SCD35IRD.js} +4 -1
- package/dist/wallets/walletConnectors/{chunk-DPL5VRGJ.js → chunk-SOCVQ5N3.js} +5 -5
- package/dist/wallets/walletConnectors/chunk-TTRSCIGA.js +194 -0
- package/dist/wallets/walletConnectors/chunk-TYUEB4VT.js +477 -0
- package/dist/wallets/walletConnectors/{chunk-WTYSUOKN.js → chunk-UZXTNCDO.js} +17 -5
- package/dist/wallets/walletConnectors/{chunk-F5Q4VDER.js → chunk-V33I7JGZ.js} +3 -3
- package/dist/wallets/walletConnectors/chunk-V4Q3GNBX.js +484 -0
- package/dist/wallets/walletConnectors/chunk-VCCTIYUJ.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-HGI3FA2A.js → chunk-VGOISIH3.js} +83 -17
- package/dist/wallets/walletConnectors/chunk-XFGVJOQL.js +223 -0
- package/dist/wallets/walletConnectors/chunk-XIOPKI2F.js +47 -0
- package/dist/wallets/walletConnectors/chunk-XJ4SP35I.js +485 -0
- package/dist/wallets/walletConnectors/chunk-XKGUE56S.js +226 -0
- package/dist/wallets/walletConnectors/chunk-XQEAXENJ.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-RY4RAB3D.js → chunk-YCZ4CZQ6.js} +106 -66
- package/dist/wallets/walletConnectors/chunk-Z2DC2J7S.js +345 -0
- package/dist/wallets/walletConnectors/chunk-Z2K3RHWK.js +47 -0
- package/dist/wallets/walletConnectors/chunk-ZASMSEC3.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ZNBWRE3K.js +309 -0
- package/dist/wallets/walletConnectors/chunk-ZNVFM2J2.js +156 -0
- package/dist/wallets/walletConnectors/chunk-ZQLQELFC.js +309 -0
- package/dist/wallets/walletConnectors/chunk-ZR7CEF64.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ZSGFDK77.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ZUIY2TRJ.js +1695 -0
- package/dist/wallets/walletConnectors/index.js +22 -22
- package/package.json +1 -1
- package/dist/solana/hooks/index.d.ts +0 -12
- package/dist/solana/hooks/useSolanaAccount.d.ts +0 -98
- package/dist/solana/hooks/useSolanaConnection.d.ts +0 -72
- package/dist/solana/hooks/useSolanaSendTransaction.d.ts +0 -98
- package/dist/solana/hooks/useSolanaSignMessage.d.ts +0 -82
- package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.d.ts +0 -45
- package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.js +0 -10
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.d.ts +0 -115
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.js +0 -12
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +0 -143
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +0 -13
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.d.ts +0 -18
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.js +0 -15
- package/dist/wallets/walletConnectors/chunk-2GODJ6NU.js +0 -398
- package/dist/wallets/walletConnectors/chunk-2ZFMD7GF.js +0 -419
- package/dist/wallets/walletConnectors/chunk-3OYZYIBX.js +0 -361
- package/dist/wallets/walletConnectors/chunk-3SVPZCA6.js +0 -71
- package/dist/wallets/walletConnectors/chunk-3WRALPTT.js +0 -403
- package/dist/wallets/walletConnectors/chunk-4H6TSGD7.js +0 -39
- package/dist/wallets/walletConnectors/chunk-4OPIMV4N.js +0 -376
- package/dist/wallets/walletConnectors/chunk-4TFDVNMF.js +0 -370
- package/dist/wallets/walletConnectors/chunk-4VO5XDCV.js +0 -63
- package/dist/wallets/walletConnectors/chunk-4YKA5OIT.js +0 -63
- package/dist/wallets/walletConnectors/chunk-5AAIZIND.js +0 -39
- package/dist/wallets/walletConnectors/chunk-5KCTAEQB.js +0 -391
- package/dist/wallets/walletConnectors/chunk-5OKJZU3F.js +0 -63
- package/dist/wallets/walletConnectors/chunk-5PBZRTEM.js +0 -63
- package/dist/wallets/walletConnectors/chunk-5QEUEPNY.js +0 -94
- package/dist/wallets/walletConnectors/chunk-5SLXMCS2.js +0 -34
- package/dist/wallets/walletConnectors/chunk-62ZC3BGR.js +0 -39
- package/dist/wallets/walletConnectors/chunk-6DMWYDIO.js +0 -390
- package/dist/wallets/walletConnectors/chunk-6URAISNZ.js +0 -388
- package/dist/wallets/walletConnectors/chunk-6V3335LE.js +0 -63
- package/dist/wallets/walletConnectors/chunk-76O6JH3T.js +0 -39
- package/dist/wallets/walletConnectors/chunk-7UHZX522.js +0 -369
- package/dist/wallets/walletConnectors/chunk-ADMITKUE.js +0 -63
- package/dist/wallets/walletConnectors/chunk-AL7R7JQU.js +0 -124
- package/dist/wallets/walletConnectors/chunk-AY4TMZG6.js +0 -39
- package/dist/wallets/walletConnectors/chunk-AZRYTD6J.js +0 -63
- package/dist/wallets/walletConnectors/chunk-B6JLYR3I.js +0 -66
- package/dist/wallets/walletConnectors/chunk-CB4CSXNY.js +0 -63
- package/dist/wallets/walletConnectors/chunk-CNI3U6UK.js +0 -39
- package/dist/wallets/walletConnectors/chunk-CSLAM3IH.js +0 -39
- package/dist/wallets/walletConnectors/chunk-CTSR4YUH.js +0 -376
- package/dist/wallets/walletConnectors/chunk-D6MSZOEN.js +0 -357
- package/dist/wallets/walletConnectors/chunk-DSEWXHE6.js +0 -44
- package/dist/wallets/walletConnectors/chunk-E3PO2XKJ.js +0 -433
- package/dist/wallets/walletConnectors/chunk-E5YF2QC2.js +0 -63
- package/dist/wallets/walletConnectors/chunk-ENAFVPRZ.js +0 -374
- package/dist/wallets/walletConnectors/chunk-ENHE6LS7.js +0 -368
- package/dist/wallets/walletConnectors/chunk-EPUITAK3.js +0 -63
- package/dist/wallets/walletConnectors/chunk-EQZ6IAAM.js +0 -39
- package/dist/wallets/walletConnectors/chunk-F2LC3G36.js +0 -269
- package/dist/wallets/walletConnectors/chunk-FROV5VDF.js +0 -346
- package/dist/wallets/walletConnectors/chunk-GUUGKRZB.js +0 -63
- package/dist/wallets/walletConnectors/chunk-H7SRDBPI.js +0 -384
- package/dist/wallets/walletConnectors/chunk-HDXHEBGM.js +0 -403
- package/dist/wallets/walletConnectors/chunk-HKWBR5B7.js +0 -102
- package/dist/wallets/walletConnectors/chunk-HMSFBY7V.js +0 -39
- package/dist/wallets/walletConnectors/chunk-IABRLMSP.js +0 -63
- package/dist/wallets/walletConnectors/chunk-IL52SYJK.js +0 -44
- package/dist/wallets/walletConnectors/chunk-IXPVDDZD.js +0 -365
- package/dist/wallets/walletConnectors/chunk-JNKT32C7.js +0 -63
- package/dist/wallets/walletConnectors/chunk-JW4RQLJT.js +0 -156
- package/dist/wallets/walletConnectors/chunk-JXPLBYVW.js +0 -157
- package/dist/wallets/walletConnectors/chunk-K4APJ4PE.js +0 -96
- package/dist/wallets/walletConnectors/chunk-K6BNM6VP.js +0 -63
- package/dist/wallets/walletConnectors/chunk-KEV4GPRY.js +0 -63
- package/dist/wallets/walletConnectors/chunk-KN4I4DKC.js +0 -157
- package/dist/wallets/walletConnectors/chunk-KNK6YFEK.js +0 -63
- package/dist/wallets/walletConnectors/chunk-KSKNDJYL.js +0 -63
- package/dist/wallets/walletConnectors/chunk-KYA553D7.js +0 -371
- package/dist/wallets/walletConnectors/chunk-L57JYRQZ.js +0 -63
- package/dist/wallets/walletConnectors/chunk-LB3ISYMC.js +0 -44
- package/dist/wallets/walletConnectors/chunk-LJ2B47VF.js +0 -108
- package/dist/wallets/walletConnectors/chunk-LLFZ4GNK.js +0 -266
- package/dist/wallets/walletConnectors/chunk-LLJELGMX.js +0 -63
- package/dist/wallets/walletConnectors/chunk-LOP2R3QJ.js +0 -1683
- package/dist/wallets/walletConnectors/chunk-LTX3ZSQI.js +0 -39
- package/dist/wallets/walletConnectors/chunk-LXINMUQC.js +0 -186
- package/dist/wallets/walletConnectors/chunk-MF46Q5RP.js +0 -44
- package/dist/wallets/walletConnectors/chunk-MGPMSUFB.js +0 -372
- package/dist/wallets/walletConnectors/chunk-MK45L6B7.js +0 -123
- package/dist/wallets/walletConnectors/chunk-MOJC7LE6.js +0 -63
- package/dist/wallets/walletConnectors/chunk-MORUEOYX.js +0 -76
- package/dist/wallets/walletConnectors/chunk-MQTXA63X.js +0 -27
- package/dist/wallets/walletConnectors/chunk-MT2QHWYE.js +0 -156
- package/dist/wallets/walletConnectors/chunk-N6CRHH2H.js +0 -400
- package/dist/wallets/walletConnectors/chunk-N6QHQDQP.js +0 -381
- package/dist/wallets/walletConnectors/chunk-NALBGCUS.js +0 -63
- package/dist/wallets/walletConnectors/chunk-NOD2A4Q7.js +0 -430
- package/dist/wallets/walletConnectors/chunk-NOL7MBZU.js +0 -1683
- package/dist/wallets/walletConnectors/chunk-OA5K3AQN.js +0 -370
- package/dist/wallets/walletConnectors/chunk-PMZJGS7X.js +0 -73
- package/dist/wallets/walletConnectors/chunk-Q3LW5UK5.js +0 -135
- package/dist/wallets/walletConnectors/chunk-QDCXRBX6.js +0 -63
- package/dist/wallets/walletConnectors/chunk-QHHR2DQK.js +0 -269
- package/dist/wallets/walletConnectors/chunk-QIDXRXV6.js +0 -63
- package/dist/wallets/walletConnectors/chunk-QNY3A52P.js +0 -156
- package/dist/wallets/walletConnectors/chunk-QQEXHPNE.js +0 -385
- package/dist/wallets/walletConnectors/chunk-RASK6XWI.js +0 -436
- package/dist/wallets/walletConnectors/chunk-RFMJC64I.js +0 -364
- package/dist/wallets/walletConnectors/chunk-RVJ32DTM.js +0 -373
- package/dist/wallets/walletConnectors/chunk-S64JWSGA.js +0 -63
- package/dist/wallets/walletConnectors/chunk-SG6KN7NJ.js +0 -377
- package/dist/wallets/walletConnectors/chunk-SGLHM6AU.js +0 -157
- package/dist/wallets/walletConnectors/chunk-SK2XYNK4.js +0 -44
- package/dist/wallets/walletConnectors/chunk-SKBQVOZL.js +0 -1683
- package/dist/wallets/walletConnectors/chunk-SQAILDYS.js +0 -1683
- package/dist/wallets/walletConnectors/chunk-SRTBTRBU.js +0 -372
- package/dist/wallets/walletConnectors/chunk-T23ZNPHL.js +0 -269
- package/dist/wallets/walletConnectors/chunk-T3AL3VAQ.js +0 -44
- package/dist/wallets/walletConnectors/chunk-T4QIWLWU.js +0 -357
- package/dist/wallets/walletConnectors/chunk-T7NXVYE6.js +0 -372
- package/dist/wallets/walletConnectors/chunk-THQEUSX4.js +0 -63
- package/dist/wallets/walletConnectors/chunk-TLJSBPMQ.js +0 -63
- package/dist/wallets/walletConnectors/chunk-TPGMXU6M.js +0 -63
- package/dist/wallets/walletConnectors/chunk-UBDYVLI4.js +0 -370
- package/dist/wallets/walletConnectors/chunk-UH6AUMQQ.js +0 -63
- package/dist/wallets/walletConnectors/chunk-UTPJPY4R.js +0 -44
- package/dist/wallets/walletConnectors/chunk-VIH2AOMF.js +0 -63
- package/dist/wallets/walletConnectors/chunk-VIRHJPFQ.js +0 -269
- package/dist/wallets/walletConnectors/chunk-VQI2B7XW.js +0 -269
- package/dist/wallets/walletConnectors/chunk-VQYANLI2.js +0 -44
- package/dist/wallets/walletConnectors/chunk-VRTDF4O3.js +0 -63
- package/dist/wallets/walletConnectors/chunk-VRUPSQK4.js +0 -269
- package/dist/wallets/walletConnectors/chunk-VWZP7KJD.js +0 -157
- package/dist/wallets/walletConnectors/chunk-WIZH35IC.js +0 -39
- package/dist/wallets/walletConnectors/chunk-WOZ5REMN.js +0 -436
- package/dist/wallets/walletConnectors/chunk-WPEGBCDE.js +0 -157
- package/dist/wallets/walletConnectors/chunk-WPJESUNP.js +0 -379
- package/dist/wallets/walletConnectors/chunk-WZ322AWR.js +0 -44
- package/dist/wallets/walletConnectors/chunk-WZAIQD3G.js +0 -156
- package/dist/wallets/walletConnectors/chunk-WZZVA3LW.js +0 -101
- package/dist/wallets/walletConnectors/chunk-XC5EXBMU.js +0 -385
- package/dist/wallets/walletConnectors/chunk-XOQNQKZE.js +0 -98
- package/dist/wallets/walletConnectors/chunk-XWCS76ZC.js +0 -1683
- package/dist/wallets/walletConnectors/chunk-XZHB7HU4.js +0 -157
- package/dist/wallets/walletConnectors/chunk-Y5677NVB.js +0 -285
- package/dist/wallets/walletConnectors/chunk-YC73LM6F.js +0 -63
- package/dist/wallets/walletConnectors/chunk-YHWQOKFW.js +0 -39
- package/dist/wallets/walletConnectors/chunk-YIB6VMOF.js +0 -156
- package/dist/wallets/walletConnectors/chunk-YPL4NJGA.js +0 -156
- package/dist/wallets/walletConnectors/chunk-YQP7DZ7T.js +0 -269
- package/dist/wallets/walletConnectors/chunk-ZBMGJDJA.js +0 -436
- package/dist/wallets/walletConnectors/chunk-ZJ6OFFD5.js +0 -95
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/wallets/walletConnectors/abcWallet/abcBitcoinProvider.ts
|
|
4
|
+
var EventEmitter = class {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.events = /* @__PURE__ */ new Map();
|
|
7
|
+
}
|
|
8
|
+
on(event, listener) {
|
|
9
|
+
if (!this.events.has(event)) {
|
|
10
|
+
this.events.set(event, []);
|
|
11
|
+
}
|
|
12
|
+
this.events.get(event).push(listener);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
off(event, listener) {
|
|
16
|
+
const listeners = this.events.get(event);
|
|
17
|
+
if (listeners) {
|
|
18
|
+
const index = listeners.indexOf(listener);
|
|
19
|
+
if (index !== -1) {
|
|
20
|
+
listeners.splice(index, 1);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
removeListener(event, listener) {
|
|
26
|
+
return this.off(event, listener);
|
|
27
|
+
}
|
|
28
|
+
emit(event, ...args) {
|
|
29
|
+
const listeners = this.events.get(event);
|
|
30
|
+
if (listeners) {
|
|
31
|
+
for (const listener of listeners) {
|
|
32
|
+
listener(...args);
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
removeAllListeners(event) {
|
|
39
|
+
if (event) {
|
|
40
|
+
this.events.delete(event);
|
|
41
|
+
} else {
|
|
42
|
+
this.events.clear();
|
|
43
|
+
}
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var BitcoinErrorCode = {
|
|
48
|
+
USER_REJECTED: 4001,
|
|
49
|
+
UNAUTHORIZED: 4100,
|
|
50
|
+
UNSUPPORTED_METHOD: 4200,
|
|
51
|
+
DISCONNECTED: 4900,
|
|
52
|
+
INVALID_PARAMS: -32602,
|
|
53
|
+
INTERNAL_ERROR: -32603,
|
|
54
|
+
INSUFFICIENT_FUNDS: 5001,
|
|
55
|
+
UTXO_NOT_FOUND: 5002
|
|
56
|
+
};
|
|
57
|
+
var BitcoinProviderError = class extends Error {
|
|
58
|
+
constructor(code, message, data) {
|
|
59
|
+
super(message);
|
|
60
|
+
this.code = code;
|
|
61
|
+
this.data = data;
|
|
62
|
+
this.name = "BitcoinProviderError";
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var BITCOIN_NETWORKS = {
|
|
66
|
+
mainnet: {
|
|
67
|
+
name: "Bitcoin Mainnet",
|
|
68
|
+
type: "bitcoin",
|
|
69
|
+
explorer: "https://blockstream.info"
|
|
70
|
+
},
|
|
71
|
+
testnet: {
|
|
72
|
+
name: "Bitcoin Testnet",
|
|
73
|
+
type: "bitcoin_testnet",
|
|
74
|
+
explorer: "https://blockstream.info/testnet"
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var AbcBitcoinProvider = class extends EventEmitter {
|
|
78
|
+
// 1 minute
|
|
79
|
+
constructor(client) {
|
|
80
|
+
super();
|
|
81
|
+
this.wallet = null;
|
|
82
|
+
this.network = BITCOIN_NETWORKS.testnet;
|
|
83
|
+
this.connected = false;
|
|
84
|
+
this.utxoCache = /* @__PURE__ */ new Map();
|
|
85
|
+
this.cacheExpiry = /* @__PURE__ */ new Map();
|
|
86
|
+
this.CACHE_TTL = 6e4;
|
|
87
|
+
this.client = client;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Set wallet information
|
|
91
|
+
*/
|
|
92
|
+
setWallet(wallet) {
|
|
93
|
+
const previousAddress = this.wallet?.address;
|
|
94
|
+
this.wallet = wallet;
|
|
95
|
+
this.connected = true;
|
|
96
|
+
if (wallet.network === "bitcoin") {
|
|
97
|
+
this.network = BITCOIN_NETWORKS.mainnet;
|
|
98
|
+
} else {
|
|
99
|
+
this.network = BITCOIN_NETWORKS.testnet;
|
|
100
|
+
}
|
|
101
|
+
if (previousAddress !== wallet.address) {
|
|
102
|
+
this.emit("accountsChanged", [wallet.address]);
|
|
103
|
+
this.clearUtxoCache();
|
|
104
|
+
}
|
|
105
|
+
this.emit("connect", {
|
|
106
|
+
address: wallet.address,
|
|
107
|
+
network: this.network.type
|
|
108
|
+
});
|
|
109
|
+
console.log(
|
|
110
|
+
"[BitcoinProvider] \u2705 Wallet connected:",
|
|
111
|
+
`${wallet.address.substring(0, 6)}...${wallet.address.substring(wallet.address.length - 6)}`
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Clear wallet (disconnect)
|
|
116
|
+
*/
|
|
117
|
+
clearWallet() {
|
|
118
|
+
this.wallet = null;
|
|
119
|
+
this.connected = false;
|
|
120
|
+
this.clearUtxoCache();
|
|
121
|
+
this.emit("disconnect");
|
|
122
|
+
this.emit("accountsChanged", []);
|
|
123
|
+
console.log("[BitcoinProvider] \u{1F50C} Wallet disconnected");
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Set PIN request callback for transaction signing
|
|
127
|
+
*/
|
|
128
|
+
setRequestPinCallback(callback) {
|
|
129
|
+
this.requestPinCallback = callback;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Request PIN from user
|
|
133
|
+
* First tries global callback, then falls back to manual callback
|
|
134
|
+
*/
|
|
135
|
+
async requestPin() {
|
|
136
|
+
const globalRequestPin = window.__TALKENKIT_REQUEST_PIN__;
|
|
137
|
+
if (globalRequestPin && typeof globalRequestPin === "function") {
|
|
138
|
+
return globalRequestPin("transaction");
|
|
139
|
+
}
|
|
140
|
+
if (!this.requestPinCallback) {
|
|
141
|
+
throw new BitcoinProviderError(
|
|
142
|
+
BitcoinErrorCode.INTERNAL_ERROR,
|
|
143
|
+
"PIN request callback not configured. Make sure RainbowKitProvider is rendered."
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
return this.requestPinCallback();
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Set network
|
|
150
|
+
*/
|
|
151
|
+
setNetwork(networkKey) {
|
|
152
|
+
const newNetwork = BITCOIN_NETWORKS[networkKey];
|
|
153
|
+
if (!newNetwork) {
|
|
154
|
+
throw new BitcoinProviderError(
|
|
155
|
+
BitcoinErrorCode.INVALID_PARAMS,
|
|
156
|
+
`Unknown network: ${networkKey}`
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
const previousType = this.network.type;
|
|
160
|
+
this.network = newNetwork;
|
|
161
|
+
if (previousType !== newNetwork.type) {
|
|
162
|
+
this.emit("networkChanged", newNetwork.type);
|
|
163
|
+
this.clearUtxoCache();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get current network
|
|
168
|
+
*/
|
|
169
|
+
getNetwork() {
|
|
170
|
+
return this.network;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Check if connected
|
|
174
|
+
*/
|
|
175
|
+
isConnected() {
|
|
176
|
+
return this.connected && this.wallet !== null;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get Bitcoin address
|
|
180
|
+
*/
|
|
181
|
+
async getAddress() {
|
|
182
|
+
if (!this.wallet) {
|
|
183
|
+
throw new BitcoinProviderError(
|
|
184
|
+
BitcoinErrorCode.DISCONNECTED,
|
|
185
|
+
"Wallet not connected"
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
return this.wallet.address;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get compressed public key (33 bytes)
|
|
192
|
+
*/
|
|
193
|
+
async getPublicKey() {
|
|
194
|
+
if (!this.wallet) {
|
|
195
|
+
throw new BitcoinProviderError(
|
|
196
|
+
BitcoinErrorCode.DISCONNECTED,
|
|
197
|
+
"Wallet not connected"
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
return this.wallet.publicKey;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get address type (bech32, p2pkh, etc.)
|
|
204
|
+
*/
|
|
205
|
+
getAddressType() {
|
|
206
|
+
if (!this.wallet) {
|
|
207
|
+
throw new BitcoinProviderError(
|
|
208
|
+
BitcoinErrorCode.DISCONNECTED,
|
|
209
|
+
"Wallet not connected"
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
return this.wallet.addressType;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Clear UTXO cache
|
|
216
|
+
*/
|
|
217
|
+
clearUtxoCache() {
|
|
218
|
+
this.utxoCache.clear();
|
|
219
|
+
this.cacheExpiry.clear();
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Check if cache is valid
|
|
223
|
+
*/
|
|
224
|
+
isCacheValid(address) {
|
|
225
|
+
const expiry = this.cacheExpiry.get(address);
|
|
226
|
+
if (!expiry)
|
|
227
|
+
return false;
|
|
228
|
+
return Date.now() < expiry;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get UTXOs for address (with caching)
|
|
232
|
+
*/
|
|
233
|
+
async getUtxos(forceRefresh = false) {
|
|
234
|
+
if (!this.wallet) {
|
|
235
|
+
throw new BitcoinProviderError(
|
|
236
|
+
BitcoinErrorCode.DISCONNECTED,
|
|
237
|
+
"Wallet not connected"
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
const address = this.wallet.address;
|
|
241
|
+
if (!forceRefresh && this.isCacheValid(address)) {
|
|
242
|
+
const cached = this.utxoCache.get(address);
|
|
243
|
+
if (cached) {
|
|
244
|
+
console.log(
|
|
245
|
+
`[BitcoinProvider] \u{1F4E6} Using cached UTXOs (${cached.length} items)`
|
|
246
|
+
);
|
|
247
|
+
return cached;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
console.log("[BitcoinProvider] \u{1F50D} Fetching UTXOs from network...");
|
|
252
|
+
const utxos = await this.client.bitcoin.getUtxos(
|
|
253
|
+
address,
|
|
254
|
+
this.network.type
|
|
255
|
+
);
|
|
256
|
+
this.utxoCache.set(address, utxos);
|
|
257
|
+
this.cacheExpiry.set(address, Date.now() + this.CACHE_TTL);
|
|
258
|
+
console.log(`[BitcoinProvider] \u2705 Fetched ${utxos.length} UTXOs`);
|
|
259
|
+
return utxos;
|
|
260
|
+
} catch (error) {
|
|
261
|
+
console.error(
|
|
262
|
+
"[BitcoinProvider] \u274C Failed to fetch UTXOs:",
|
|
263
|
+
error.message
|
|
264
|
+
);
|
|
265
|
+
throw new BitcoinProviderError(
|
|
266
|
+
BitcoinErrorCode.INTERNAL_ERROR,
|
|
267
|
+
"Failed to fetch UTXOs",
|
|
268
|
+
error
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get total balance (sum of all UTXOs)
|
|
274
|
+
* Returns balance in satoshis
|
|
275
|
+
*/
|
|
276
|
+
async getBalance(forceRefresh = false) {
|
|
277
|
+
const utxos = await this.getUtxos(forceRefresh);
|
|
278
|
+
const balance = utxos.reduce((sum, utxo) => sum + utxo.value, 0);
|
|
279
|
+
console.log(
|
|
280
|
+
`[BitcoinProvider] \u{1F4B0} Balance: ${balance} satoshis (${balance / 1e8} BTC)`
|
|
281
|
+
);
|
|
282
|
+
return balance;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Estimate transaction fee
|
|
286
|
+
* Returns fee rate in satoshis per byte
|
|
287
|
+
*/
|
|
288
|
+
async estimateFee(targetBlocks = 6) {
|
|
289
|
+
try {
|
|
290
|
+
const feeRate = await this.client.bitcoin.estimateFee(
|
|
291
|
+
this.network.type,
|
|
292
|
+
targetBlocks
|
|
293
|
+
);
|
|
294
|
+
console.log(`[BitcoinProvider] \u26FD Fee rate: ${feeRate} sat/byte`);
|
|
295
|
+
return feeRate;
|
|
296
|
+
} catch (_error) {
|
|
297
|
+
console.error("[BitcoinProvider] \u26A0\uFE0F Fee estimation failed, using default");
|
|
298
|
+
return 1;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Sign Bitcoin message (BIP-322)
|
|
303
|
+
* NOTE: Currently not supported - Bitcoin uses v2 API which doesn't have message signing endpoint
|
|
304
|
+
* Only transaction signing is supported via PSBT
|
|
305
|
+
*
|
|
306
|
+
* @param _message - Message to sign (string) - unused, always throws error
|
|
307
|
+
* @returns Signature in base64 format
|
|
308
|
+
*/
|
|
309
|
+
async signMessage(_message) {
|
|
310
|
+
console.log("[BitcoinProvider] \u26A0\uFE0F Bitcoin message signing requested");
|
|
311
|
+
throw new BitcoinProviderError(
|
|
312
|
+
BitcoinErrorCode.UNSUPPORTED_METHOD,
|
|
313
|
+
"Bitcoin message signing is not supported. Bitcoin uses v2 API which only supports transaction signing (PSBT). Use signTransaction() instead."
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* High-level transaction sending (like Solana pattern)
|
|
318
|
+
* Creates, signs, and broadcasts transaction
|
|
319
|
+
*
|
|
320
|
+
* @param params - Transaction parameters
|
|
321
|
+
* @param params.toAddress - Recipient Bitcoin address
|
|
322
|
+
* @param params.amount - Amount in BTC (will be converted to satoshis)
|
|
323
|
+
* @returns Transaction hash
|
|
324
|
+
*/
|
|
325
|
+
async sendTransaction(params) {
|
|
326
|
+
if (!this.wallet) {
|
|
327
|
+
throw new BitcoinProviderError(
|
|
328
|
+
BitcoinErrorCode.DISCONNECTED,
|
|
329
|
+
"Wallet not connected"
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
try {
|
|
333
|
+
console.log("[BitcoinProvider] \u{1F4B8} Starting high-level transaction...");
|
|
334
|
+
const authStateKey = "talkenkit_abc_auth_state";
|
|
335
|
+
const authState = typeof window !== "undefined" ? localStorage.getItem(authStateKey) : null;
|
|
336
|
+
if (!authState) {
|
|
337
|
+
throw new BitcoinProviderError(
|
|
338
|
+
BitcoinErrorCode.UNAUTHORIZED,
|
|
339
|
+
"Not authenticated - auth state not found"
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
const parsed = JSON.parse(authState);
|
|
343
|
+
const evmWallet = parsed.wallet;
|
|
344
|
+
if (!evmWallet?.uid || !evmWallet?.sid || !evmWallet?.pvencstr || !evmWallet?.wid) {
|
|
345
|
+
throw new BitcoinProviderError(
|
|
346
|
+
BitcoinErrorCode.UNAUTHORIZED,
|
|
347
|
+
"EVM wallet data not found (required for Bitcoin signing)"
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
console.log(
|
|
351
|
+
"[BitcoinProvider] \u{1F510} Requesting PIN for Bitcoin transaction..."
|
|
352
|
+
);
|
|
353
|
+
const pin = await this.requestPin();
|
|
354
|
+
const encoder = new TextEncoder();
|
|
355
|
+
const data = encoder.encode(pin);
|
|
356
|
+
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
|
357
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
358
|
+
const pinHash = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
359
|
+
const satoshis = Math.floor(params.amount * 1e8);
|
|
360
|
+
const SecureService = (await import("./abcWallet/secure.js")).default;
|
|
361
|
+
const secureService = new SecureService(this.client.bitcoin.getBaseURL());
|
|
362
|
+
const walletData = {
|
|
363
|
+
address: evmWallet.address,
|
|
364
|
+
keyId: evmWallet.keyId,
|
|
365
|
+
encryptedShare: evmWallet.encryptedShare,
|
|
366
|
+
uid: evmWallet.uid,
|
|
367
|
+
sid: evmWallet.sid,
|
|
368
|
+
wid: evmWallet.wid,
|
|
369
|
+
pvencstr: evmWallet.pvencstr,
|
|
370
|
+
encryptDevicePassword: evmWallet.encryptDevicePassword,
|
|
371
|
+
pubkey: evmWallet.pubkey
|
|
372
|
+
};
|
|
373
|
+
const txHash = await this.client.bitcoin.sendTransaction(
|
|
374
|
+
{
|
|
375
|
+
amount: satoshis.toString(),
|
|
376
|
+
to: params.toAddress,
|
|
377
|
+
pubkey: this.wallet.publicKey,
|
|
378
|
+
network: this.network.type
|
|
379
|
+
},
|
|
380
|
+
walletData,
|
|
381
|
+
pinHash,
|
|
382
|
+
secureService
|
|
383
|
+
);
|
|
384
|
+
console.log("[BitcoinProvider] \u2705 Transaction complete:", txHash);
|
|
385
|
+
this.emit("transactionBroadcasted", {
|
|
386
|
+
txHash,
|
|
387
|
+
explorerUrl: `${this.network.explorer}/tx/${txHash}`
|
|
388
|
+
});
|
|
389
|
+
this.clearUtxoCache();
|
|
390
|
+
return txHash;
|
|
391
|
+
} catch (error) {
|
|
392
|
+
if (error.message?.includes("cancelled") || error.message?.includes("rejected")) {
|
|
393
|
+
console.log("[BitcoinProvider] \u2139\uFE0F User cancelled transaction");
|
|
394
|
+
throw new BitcoinProviderError(
|
|
395
|
+
BitcoinErrorCode.USER_REJECTED,
|
|
396
|
+
"User rejected transaction",
|
|
397
|
+
error
|
|
398
|
+
);
|
|
399
|
+
}
|
|
400
|
+
console.error("[BitcoinProvider] \u274C Transaction failed:", error.message);
|
|
401
|
+
if (error.message?.includes("insufficient")) {
|
|
402
|
+
throw new BitcoinProviderError(
|
|
403
|
+
BitcoinErrorCode.INSUFFICIENT_FUNDS,
|
|
404
|
+
"Insufficient BTC balance",
|
|
405
|
+
error
|
|
406
|
+
);
|
|
407
|
+
}
|
|
408
|
+
this.emit("error", error);
|
|
409
|
+
throw new BitcoinProviderError(
|
|
410
|
+
BitcoinErrorCode.INTERNAL_ERROR,
|
|
411
|
+
"Failed to send transaction",
|
|
412
|
+
error
|
|
413
|
+
);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Broadcast signed transaction to network
|
|
418
|
+
*
|
|
419
|
+
* @param rawTransaction - Raw transaction in hex format
|
|
420
|
+
* @param psbt - Optional finalized PSBT
|
|
421
|
+
* @returns Transaction hash
|
|
422
|
+
*/
|
|
423
|
+
async broadcastTransaction(rawTransaction, psbt) {
|
|
424
|
+
if (!this.wallet) {
|
|
425
|
+
throw new BitcoinProviderError(
|
|
426
|
+
BitcoinErrorCode.DISCONNECTED,
|
|
427
|
+
"Wallet not connected"
|
|
428
|
+
);
|
|
429
|
+
}
|
|
430
|
+
try {
|
|
431
|
+
console.log("[BitcoinProvider] \u{1F4E1} Broadcasting transaction...");
|
|
432
|
+
const result = await this.client.bitcoin.sendBitcoinTransaction({
|
|
433
|
+
network: this.network.type,
|
|
434
|
+
rawTransaction,
|
|
435
|
+
...psbt && { psbt }
|
|
436
|
+
});
|
|
437
|
+
console.log(
|
|
438
|
+
"[BitcoinProvider] \u2705 Transaction broadcasted:",
|
|
439
|
+
result.txHash
|
|
440
|
+
);
|
|
441
|
+
this.emit("transactionBroadcasted", {
|
|
442
|
+
txHash: result.txHash,
|
|
443
|
+
explorerUrl: `${this.network.explorer}/tx/${result.txHash}`
|
|
444
|
+
});
|
|
445
|
+
this.clearUtxoCache();
|
|
446
|
+
return result.txHash;
|
|
447
|
+
} catch (error) {
|
|
448
|
+
console.error(
|
|
449
|
+
"[BitcoinProvider] \u274C Transaction broadcast failed:",
|
|
450
|
+
error.message
|
|
451
|
+
);
|
|
452
|
+
this.emit("error", error);
|
|
453
|
+
throw new BitcoinProviderError(
|
|
454
|
+
BitcoinErrorCode.INTERNAL_ERROR,
|
|
455
|
+
"Failed to broadcast transaction",
|
|
456
|
+
error
|
|
457
|
+
);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Get wallet info
|
|
462
|
+
*/
|
|
463
|
+
getWalletInfo() {
|
|
464
|
+
if (!this.wallet)
|
|
465
|
+
return null;
|
|
466
|
+
return {
|
|
467
|
+
address: this.wallet.address,
|
|
468
|
+
publicKey: this.wallet.publicKey,
|
|
469
|
+
addressType: this.wallet.addressType,
|
|
470
|
+
network: this.network.type
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Refresh UTXO cache
|
|
475
|
+
*/
|
|
476
|
+
async refreshUtxos() {
|
|
477
|
+
return this.getUtxos(true);
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
export {
|
|
482
|
+
BitcoinProviderError,
|
|
483
|
+
BITCOIN_NETWORKS,
|
|
484
|
+
AbcBitcoinProvider
|
|
485
|
+
};
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
BaseApiClient
|
|
4
|
+
} from "./chunk-LQ2U33WM.js";
|
|
5
|
+
import {
|
|
6
|
+
getSolanaNetwork
|
|
7
|
+
} from "./chunk-A7FIBI6X.js";
|
|
8
|
+
import {
|
|
9
|
+
createAbcError
|
|
10
|
+
} from "./chunk-TYUEB4VT.js";
|
|
11
|
+
|
|
12
|
+
// src/wallets/walletConnectors/abcWallet/api/SolanaApi.ts
|
|
13
|
+
import { PublicKey } from "@solana/web3.js";
|
|
14
|
+
var SolanaApi = class extends BaseApiClient {
|
|
15
|
+
/**
|
|
16
|
+
* Generate Solana wallet (Ed25519)
|
|
17
|
+
* Uses V3 API with Ed25519 curve
|
|
18
|
+
*
|
|
19
|
+
* @param pin - Hashed PIN (SHA-256)
|
|
20
|
+
* @param isRecover - Whether to recover existing wallet (default: false)
|
|
21
|
+
* @returns Solana wallet information
|
|
22
|
+
*/
|
|
23
|
+
async generateSolanaWallet(pin, isRecover = false) {
|
|
24
|
+
const endpoint = `/v3/wallet/${isRecover ? "recover" : "generate"}`;
|
|
25
|
+
const network = getSolanaNetwork();
|
|
26
|
+
const response = await this.request(endpoint, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
contentType: "json",
|
|
29
|
+
body: {
|
|
30
|
+
curve: "ed25519",
|
|
31
|
+
password: pin,
|
|
32
|
+
network
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
let result;
|
|
36
|
+
if (response.status === "success" && response.result) {
|
|
37
|
+
result = response.result;
|
|
38
|
+
} else if (response.encrypted_share && response.key_id) {
|
|
39
|
+
result = response;
|
|
40
|
+
} else {
|
|
41
|
+
throw createAbcError(
|
|
42
|
+
"WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
|
|
43
|
+
`Failed to ${isRecover ? "recover" : "generate"} Solana wallet`,
|
|
44
|
+
response
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
let address;
|
|
48
|
+
try {
|
|
49
|
+
address = this.deriveAddressFromPublicKey(result.public_key);
|
|
50
|
+
} catch (_error) {
|
|
51
|
+
address = result.public_key.startsWith("0x") ? result.public_key.slice(2) : result.public_key;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
uid: result.uid || "",
|
|
55
|
+
sessionId: result.share_id,
|
|
56
|
+
shareId: result.share_id,
|
|
57
|
+
publicKey: result.public_key,
|
|
58
|
+
address,
|
|
59
|
+
keyId: result.key_id || result.share_id,
|
|
60
|
+
// API returns snake_case key_id
|
|
61
|
+
encryptedShare: result.encrypted_share || "",
|
|
62
|
+
// API returns snake_case encrypted_share
|
|
63
|
+
secretStore: result.secret_store || "",
|
|
64
|
+
// API returns snake_case secret_store
|
|
65
|
+
network
|
|
66
|
+
// Use network from request (already has correct value)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Recover Solana wallet (alias for generateSolanaWallet with isRecover=true)
|
|
71
|
+
*
|
|
72
|
+
* @param pin - Hashed PIN (SHA-256)
|
|
73
|
+
* @returns Recovered Solana wallet information
|
|
74
|
+
*/
|
|
75
|
+
async recoverSolanaWallet(pin) {
|
|
76
|
+
return this.generateSolanaWallet(pin, true);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Derive Solana address from Ed25519 public key
|
|
80
|
+
* @param publicKey - Ed25519 public key (hex)
|
|
81
|
+
* @returns Solana address (base58)
|
|
82
|
+
*/
|
|
83
|
+
deriveAddressFromPublicKey(publicKey) {
|
|
84
|
+
const cleanKey = publicKey.startsWith("0x") ? publicKey.slice(2) : publicKey;
|
|
85
|
+
const bytes = new Uint8Array(
|
|
86
|
+
cleanKey.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
|
|
87
|
+
);
|
|
88
|
+
try {
|
|
89
|
+
const pubkey = new PublicKey(bytes);
|
|
90
|
+
return pubkey.toBase58();
|
|
91
|
+
} catch (error) {
|
|
92
|
+
console.error("[SolanaApi] Failed to encode address:", error);
|
|
93
|
+
return cleanKey;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Sign Solana transaction with Ed25519
|
|
98
|
+
* Reference: /v3/wallet/sign API requires only 5 fields
|
|
99
|
+
*/
|
|
100
|
+
async signSolanaTransaction(params) {
|
|
101
|
+
const network = getSolanaNetwork();
|
|
102
|
+
const response = await this.request("/v3/wallet/sign", {
|
|
103
|
+
method: "POST",
|
|
104
|
+
contentType: "json",
|
|
105
|
+
body: {
|
|
106
|
+
curve: "ed25519",
|
|
107
|
+
network,
|
|
108
|
+
key_id: params.keyId,
|
|
109
|
+
encrypted_share: params.encryptedShare,
|
|
110
|
+
secret_store: params.secretStore || "",
|
|
111
|
+
message: params.message
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
let signature;
|
|
115
|
+
if (response.status === "success" && response.result?.signature) {
|
|
116
|
+
signature = response.result.signature;
|
|
117
|
+
} else if (response.signature) {
|
|
118
|
+
signature = response.signature;
|
|
119
|
+
} else {
|
|
120
|
+
throw createAbcError(
|
|
121
|
+
"SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
|
|
122
|
+
"Failed to sign Solana transaction",
|
|
123
|
+
response
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
signature
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Sign Solana message with Ed25519
|
|
132
|
+
* Reference: /v3/wallet/sign API requires only 5 fields
|
|
133
|
+
*/
|
|
134
|
+
async signSolanaMessage(params) {
|
|
135
|
+
const network = getSolanaNetwork();
|
|
136
|
+
const response = await this.request("/v3/wallet/sign", {
|
|
137
|
+
method: "POST",
|
|
138
|
+
contentType: "json",
|
|
139
|
+
body: {
|
|
140
|
+
curve: "ed25519",
|
|
141
|
+
network,
|
|
142
|
+
key_id: params.keyId,
|
|
143
|
+
encrypted_share: params.encryptedShare,
|
|
144
|
+
secret_store: params.secretStore || "",
|
|
145
|
+
message: params.message
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
let signature;
|
|
149
|
+
if (response.status === "success" && response.result?.signature) {
|
|
150
|
+
signature = response.result.signature;
|
|
151
|
+
} else if (response.signature) {
|
|
152
|
+
signature = response.signature;
|
|
153
|
+
} else {
|
|
154
|
+
throw createAbcError(
|
|
155
|
+
"SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
|
|
156
|
+
"Failed to sign Solana message",
|
|
157
|
+
response
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
signature
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Generate Solana transfer transaction via ABC WaaS API
|
|
166
|
+
* This ensures the transaction uses the same RPC and blockhash as the server
|
|
167
|
+
*/
|
|
168
|
+
async generateTransferTransaction(params) {
|
|
169
|
+
const response = await this.request(
|
|
170
|
+
"/wapi/v2/solana/tx/generateTransferSOLTransaction",
|
|
171
|
+
{
|
|
172
|
+
method: "POST",
|
|
173
|
+
contentType: "json",
|
|
174
|
+
body: {
|
|
175
|
+
network: params.network,
|
|
176
|
+
amount: params.amount,
|
|
177
|
+
fromAddress: params.fromAddress,
|
|
178
|
+
toAddress: params.toAddress,
|
|
179
|
+
feePayerAddress: params.feePayerAddress
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
);
|
|
183
|
+
const responseData = response;
|
|
184
|
+
const serializedTx = responseData.data?.serialized_tx || response.status === "success" && response.result?.data?.serialized_tx;
|
|
185
|
+
if (!serializedTx) {
|
|
186
|
+
throw createAbcError(
|
|
187
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
188
|
+
"Failed to generate Solana transaction",
|
|
189
|
+
response
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
serialized_tx: serializedTx
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Send Solana transaction
|
|
198
|
+
*/
|
|
199
|
+
async sendSolanaTransaction(params) {
|
|
200
|
+
const response = await this.request("/wapi/v2/solana/tx/sendTransaction", {
|
|
201
|
+
method: "POST",
|
|
202
|
+
contentType: "json",
|
|
203
|
+
body: {
|
|
204
|
+
network: params.network,
|
|
205
|
+
serializedTX: params.serializedTX,
|
|
206
|
+
signatures: params.signatures
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
const responseData = response;
|
|
210
|
+
const txHash = responseData.data || response.status === "success" && response.result?.data;
|
|
211
|
+
if (!txHash || typeof txHash !== "string") {
|
|
212
|
+
throw createAbcError(
|
|
213
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
214
|
+
"Failed to send Solana transaction",
|
|
215
|
+
response
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
txHash
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
export {
|
|
225
|
+
SolanaApi
|
|
226
|
+
};
|