@ecency/sdk 2.4.21 → 2.4.23
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/browser/{chunk-6CJ3YFIB.js → chunk-2RVIFH2X.js} +2 -2
- package/dist/browser/{chunk-6CJ3YFIB.js.map → chunk-2RVIFH2X.js.map} +1 -1
- package/dist/browser/{chunk-2IXHB42A.js → chunk-2TMZU2SW.js} +2 -2
- package/dist/browser/{chunk-2IXHB42A.js.map → chunk-2TMZU2SW.js.map} +1 -1
- package/dist/browser/{chunk-QN3CUMAP.js → chunk-2TSWUTIX.js} +2 -2
- package/dist/browser/{chunk-QN3CUMAP.js.map → chunk-2TSWUTIX.js.map} +1 -1
- package/dist/browser/chunk-2YCVVTZX.js +2 -0
- package/dist/browser/{chunk-LNZWA6U7.js.map → chunk-2YCVVTZX.js.map} +1 -1
- package/dist/browser/{chunk-QXRJ3Q4Y.js → chunk-36UTWSH7.js} +2 -2
- package/dist/browser/{chunk-QXRJ3Q4Y.js.map → chunk-36UTWSH7.js.map} +1 -1
- package/dist/browser/{chunk-LL4YZLL2.js → chunk-36XVEJ3I.js} +2 -2
- package/dist/browser/{chunk-LL4YZLL2.js.map → chunk-36XVEJ3I.js.map} +1 -1
- package/dist/browser/{chunk-2HXQJNAQ.js → chunk-373JQPTA.js} +2 -2
- package/dist/browser/{chunk-2HXQJNAQ.js.map → chunk-373JQPTA.js.map} +1 -1
- package/dist/browser/chunk-37F4ZSTZ.js +2 -0
- package/dist/browser/chunk-37F4ZSTZ.js.map +1 -0
- package/dist/browser/{chunk-MH45ZW26.js → chunk-3LKTPHWK.js} +2 -2
- package/dist/browser/{chunk-MH45ZW26.js.map → chunk-3LKTPHWK.js.map} +1 -1
- package/dist/browser/{chunk-HAN76YYG.js → chunk-3PKR62CO.js} +2 -2
- package/dist/browser/{chunk-HAN76YYG.js.map → chunk-3PKR62CO.js.map} +1 -1
- package/dist/browser/{chunk-IUDFTJQJ.js → chunk-3U2QS54M.js} +2 -2
- package/dist/browser/{chunk-IUDFTJQJ.js.map → chunk-3U2QS54M.js.map} +1 -1
- package/dist/browser/{chunk-577KXXDO.js → chunk-3Y34Q6QC.js} +2 -2
- package/dist/browser/{chunk-577KXXDO.js.map → chunk-3Y34Q6QC.js.map} +1 -1
- package/dist/browser/{chunk-RVXGI5TW.js → chunk-4EL7BARO.js} +2 -2
- package/dist/browser/{chunk-RVXGI5TW.js.map → chunk-4EL7BARO.js.map} +1 -1
- package/dist/browser/chunk-4FKSDPCH.js +2 -0
- package/dist/browser/chunk-4FKSDPCH.js.map +1 -0
- package/dist/browser/{chunk-6KVHZTYP.js → chunk-4KTE2S6L.js} +2 -2
- package/dist/browser/{chunk-6KVHZTYP.js.map → chunk-4KTE2S6L.js.map} +1 -1
- package/dist/browser/{chunk-RR6ZPWWE.js → chunk-4QUTBTN2.js} +2 -2
- package/dist/browser/{chunk-RR6ZPWWE.js.map → chunk-4QUTBTN2.js.map} +1 -1
- package/dist/browser/chunk-4R7PDEUP.js +2 -0
- package/dist/browser/{chunk-SQZKXKLW.js.map → chunk-4R7PDEUP.js.map} +1 -1
- package/dist/browser/{chunk-UEOX3T72.js → chunk-4U67JIO5.js} +2 -2
- package/dist/browser/{chunk-UEOX3T72.js.map → chunk-4U67JIO5.js.map} +1 -1
- package/dist/browser/{chunk-G5IPL6LQ.js → chunk-4V6TQTR2.js} +2 -2
- package/dist/browser/{chunk-G5IPL6LQ.js.map → chunk-4V6TQTR2.js.map} +1 -1
- package/dist/browser/{chunk-4P3LD6GI.js → chunk-4VII2U33.js} +2 -2
- package/dist/browser/{chunk-4P3LD6GI.js.map → chunk-4VII2U33.js.map} +1 -1
- package/dist/browser/{chunk-YYYUKK2U.js → chunk-4XH2KIZZ.js} +2 -2
- package/dist/browser/{chunk-YYYUKK2U.js.map → chunk-4XH2KIZZ.js.map} +1 -1
- package/dist/browser/{chunk-H4HRAYR3.js → chunk-4ZCK34PT.js} +2 -2
- package/dist/browser/{chunk-H4HRAYR3.js.map → chunk-4ZCK34PT.js.map} +1 -1
- package/dist/browser/{chunk-7VNE3SAQ.js → chunk-52D3HQDY.js} +2 -2
- package/dist/browser/{chunk-7VNE3SAQ.js.map → chunk-52D3HQDY.js.map} +1 -1
- package/dist/browser/{chunk-DCYSEIIY.js → chunk-5ANV6VYI.js} +2 -2
- package/dist/browser/{chunk-DCYSEIIY.js.map → chunk-5ANV6VYI.js.map} +1 -1
- package/dist/browser/{chunk-EU3FL3RJ.js → chunk-5E7DWZPN.js} +2 -2
- package/dist/browser/{chunk-EU3FL3RJ.js.map → chunk-5E7DWZPN.js.map} +1 -1
- package/dist/browser/{chunk-B4UFMCZG.js → chunk-5PSFBLOC.js} +2 -2
- package/dist/browser/{chunk-B4UFMCZG.js.map → chunk-5PSFBLOC.js.map} +1 -1
- package/dist/browser/{chunk-C4AEJLKL.js → chunk-662I4R4H.js} +2 -2
- package/dist/browser/{chunk-C4AEJLKL.js.map → chunk-662I4R4H.js.map} +1 -1
- package/dist/browser/{chunk-EDIPB7HL.js → chunk-6ILB35QN.js} +2 -2
- package/dist/browser/{chunk-EDIPB7HL.js.map → chunk-6ILB35QN.js.map} +1 -1
- package/dist/browser/{chunk-MPLLD6WX.js → chunk-6JEMIQQJ.js} +2 -2
- package/dist/browser/{chunk-MPLLD6WX.js.map → chunk-6JEMIQQJ.js.map} +1 -1
- package/dist/browser/{chunk-EV7LNXCC.js → chunk-6KQV2AC6.js} +2 -2
- package/dist/browser/{chunk-EV7LNXCC.js.map → chunk-6KQV2AC6.js.map} +1 -1
- package/dist/browser/{chunk-A5FBCBX2.js → chunk-6XLSBE5J.js} +2 -2
- package/dist/browser/{chunk-A5FBCBX2.js.map → chunk-6XLSBE5J.js.map} +1 -1
- package/dist/browser/chunk-7FJQ2VAW.js +2 -0
- package/dist/browser/{chunk-QG7NMNGH.js.map → chunk-7FJQ2VAW.js.map} +1 -1
- package/dist/browser/{chunk-7JVMDWTK.js → chunk-7GACENLK.js} +2 -2
- package/dist/browser/{chunk-7JVMDWTK.js.map → chunk-7GACENLK.js.map} +1 -1
- package/dist/browser/{chunk-XTYTT3BK.js → chunk-7JPEXH7J.js} +2 -2
- package/dist/browser/{chunk-XTYTT3BK.js.map → chunk-7JPEXH7J.js.map} +1 -1
- package/dist/browser/{chunk-N3JLKXGY.js → chunk-7N4UF43Y.js} +2 -2
- package/dist/browser/{chunk-N3JLKXGY.js.map → chunk-7N4UF43Y.js.map} +1 -1
- package/dist/browser/{chunk-CFNRO2FK.js → chunk-7S3DQALS.js} +2 -2
- package/dist/browser/{chunk-CFNRO2FK.js.map → chunk-7S3DQALS.js.map} +1 -1
- package/dist/browser/{chunk-7HVGK7LQ.js → chunk-7Z22E6GD.js} +2 -2
- package/dist/browser/{chunk-7HVGK7LQ.js.map → chunk-7Z22E6GD.js.map} +1 -1
- package/dist/browser/{chunk-6ZQKKOAN.js → chunk-A5AOSB6C.js} +2 -2
- package/dist/browser/{chunk-6ZQKKOAN.js.map → chunk-A5AOSB6C.js.map} +1 -1
- package/dist/browser/{chunk-R77VU2PV.js → chunk-AA4E7UVF.js} +2 -2
- package/dist/browser/{chunk-R77VU2PV.js.map → chunk-AA4E7UVF.js.map} +1 -1
- package/dist/browser/{chunk-JDVR32ZT.js → chunk-AU2I7Q6Y.js} +2 -2
- package/dist/browser/{chunk-JDVR32ZT.js.map → chunk-AU2I7Q6Y.js.map} +1 -1
- package/dist/browser/{chunk-DUIHBMXH.js → chunk-AWG24KVR.js} +2 -2
- package/dist/browser/{chunk-DUIHBMXH.js.map → chunk-AWG24KVR.js.map} +1 -1
- package/dist/browser/{chunk-O24IKPQZ.js → chunk-AYEL5IFW.js} +2 -2
- package/dist/browser/{chunk-O24IKPQZ.js.map → chunk-AYEL5IFW.js.map} +1 -1
- package/dist/browser/{chunk-MKBBXMLE.js → chunk-AZ7VFOZ3.js} +2 -2
- package/dist/browser/{chunk-MKBBXMLE.js.map → chunk-AZ7VFOZ3.js.map} +1 -1
- package/dist/browser/{chunk-X3CXV5R2.js → chunk-AZQERHR3.js} +2 -2
- package/dist/browser/{chunk-X3CXV5R2.js.map → chunk-AZQERHR3.js.map} +1 -1
- package/dist/browser/{chunk-YK7FPU3F.js → chunk-AZZRCIT3.js} +2 -2
- package/dist/browser/{chunk-YK7FPU3F.js.map → chunk-AZZRCIT3.js.map} +1 -1
- package/dist/browser/{chunk-NHLU2HPF.js → chunk-BADGMGTI.js} +2 -2
- package/dist/browser/{chunk-NHLU2HPF.js.map → chunk-BADGMGTI.js.map} +1 -1
- package/dist/browser/{chunk-S22HXPZL.js → chunk-BBBMEKXU.js} +2 -2
- package/dist/browser/{chunk-S22HXPZL.js.map → chunk-BBBMEKXU.js.map} +1 -1
- package/dist/browser/{chunk-RJNZILJR.js → chunk-BCISRGHL.js} +2 -2
- package/dist/browser/{chunk-RJNZILJR.js.map → chunk-BCISRGHL.js.map} +1 -1
- package/dist/browser/chunk-BKDCXIO6.js +2 -0
- package/dist/browser/{chunk-DEIPCKOR.js.map → chunk-BKDCXIO6.js.map} +1 -1
- package/dist/browser/{chunk-6ZIA7T67.js → chunk-BLMLDT2L.js} +2 -2
- package/dist/browser/{chunk-6ZIA7T67.js.map → chunk-BLMLDT2L.js.map} +1 -1
- package/dist/browser/{chunk-HESIUSO3.js → chunk-C2EISS5O.js} +2 -2
- package/dist/browser/{chunk-HESIUSO3.js.map → chunk-C2EISS5O.js.map} +1 -1
- package/dist/browser/{chunk-2JN4EIJE.js → chunk-C5PSLR7Z.js} +2 -2
- package/dist/browser/{chunk-2JN4EIJE.js.map → chunk-C5PSLR7Z.js.map} +1 -1
- package/dist/browser/{chunk-5XMAKC7Z.js → chunk-C6K4OJC4.js} +2 -2
- package/dist/browser/{chunk-5XMAKC7Z.js.map → chunk-C6K4OJC4.js.map} +1 -1
- package/dist/browser/{chunk-FLYI7XFT.js → chunk-CEO22Q7Y.js} +2 -2
- package/dist/browser/{chunk-FLYI7XFT.js.map → chunk-CEO22Q7Y.js.map} +1 -1
- package/dist/browser/{chunk-TKQR6DHI.js → chunk-CL7EH7NA.js} +2 -2
- package/dist/browser/{chunk-TKQR6DHI.js.map → chunk-CL7EH7NA.js.map} +1 -1
- package/dist/browser/{chunk-5ATLZ7SR.js → chunk-CMAFGSTO.js} +2 -2
- package/dist/browser/{chunk-5ATLZ7SR.js.map → chunk-CMAFGSTO.js.map} +1 -1
- package/dist/browser/{chunk-T4EY3A5I.js → chunk-CN4FGHJA.js} +2 -2
- package/dist/browser/{chunk-T4EY3A5I.js.map → chunk-CN4FGHJA.js.map} +1 -1
- package/dist/browser/{chunk-KFYCIS3T.js → chunk-CNOCBE3I.js} +2 -2
- package/dist/browser/{chunk-KFYCIS3T.js.map → chunk-CNOCBE3I.js.map} +1 -1
- package/dist/browser/chunk-COGC4HII.js +2 -0
- package/dist/browser/{chunk-LE5F6EJJ.js.map → chunk-COGC4HII.js.map} +1 -1
- package/dist/browser/{chunk-XOHE3ND5.js → chunk-CWBPA5DT.js} +2 -2
- package/dist/browser/{chunk-XOHE3ND5.js.map → chunk-CWBPA5DT.js.map} +1 -1
- package/dist/browser/{chunk-IUYDZL3G.js → chunk-D2X5EN5N.js} +2 -2
- package/dist/browser/{chunk-IUYDZL3G.js.map → chunk-D2X5EN5N.js.map} +1 -1
- package/dist/browser/{chunk-UIJ5BHZP.js → chunk-DD2BPYHC.js} +2 -2
- package/dist/browser/{chunk-UIJ5BHZP.js.map → chunk-DD2BPYHC.js.map} +1 -1
- package/dist/browser/{chunk-T5Y7X4JU.js → chunk-DJWMP2O4.js} +2 -2
- package/dist/browser/{chunk-T5Y7X4JU.js.map → chunk-DJWMP2O4.js.map} +1 -1
- package/dist/browser/{chunk-J3RZOR3T.js → chunk-DSUV7SML.js} +2 -2
- package/dist/browser/{chunk-J3RZOR3T.js.map → chunk-DSUV7SML.js.map} +1 -1
- package/dist/browser/{chunk-2TIZBQHI.js → chunk-DWJJGDRC.js} +2 -2
- package/dist/browser/{chunk-2TIZBQHI.js.map → chunk-DWJJGDRC.js.map} +1 -1
- package/dist/browser/{chunk-EJCGBTQE.js → chunk-E2HXPVGT.js} +2 -2
- package/dist/browser/{chunk-EJCGBTQE.js.map → chunk-E2HXPVGT.js.map} +1 -1
- package/dist/browser/{chunk-A3NGB4AM.js → chunk-E4GC3K2H.js} +2 -2
- package/dist/browser/{chunk-A3NGB4AM.js.map → chunk-E4GC3K2H.js.map} +1 -1
- package/dist/browser/{chunk-ZJTOITYY.js → chunk-EG6SMIMF.js} +2 -2
- package/dist/browser/{chunk-ZJTOITYY.js.map → chunk-EG6SMIMF.js.map} +1 -1
- package/dist/browser/{chunk-M3OC7IZG.js → chunk-EHCNEMO7.js} +2 -2
- package/dist/browser/{chunk-M3OC7IZG.js.map → chunk-EHCNEMO7.js.map} +1 -1
- package/dist/browser/{chunk-LCURSAJ3.js → chunk-EPPY5SE6.js} +2 -2
- package/dist/browser/{chunk-LCURSAJ3.js.map → chunk-EPPY5SE6.js.map} +1 -1
- package/dist/browser/{chunk-DTEV7A5D.js → chunk-F6DE74CY.js} +2 -2
- package/dist/browser/{chunk-DTEV7A5D.js.map → chunk-F6DE74CY.js.map} +1 -1
- package/dist/browser/{chunk-IVHH6ITL.js → chunk-FNC7YWOW.js} +2 -2
- package/dist/browser/{chunk-IVHH6ITL.js.map → chunk-FNC7YWOW.js.map} +1 -1
- package/dist/browser/{chunk-UM2REEE6.js → chunk-FRXPHA7Y.js} +2 -2
- package/dist/browser/{chunk-UM2REEE6.js.map → chunk-FRXPHA7Y.js.map} +1 -1
- package/dist/browser/{chunk-435OXEJA.js → chunk-G3Q4YBD4.js} +2 -2
- package/dist/browser/{chunk-435OXEJA.js.map → chunk-G3Q4YBD4.js.map} +1 -1
- package/dist/browser/{chunk-MWYESTNC.js → chunk-G7OTY5BS.js} +2 -2
- package/dist/browser/{chunk-MWYESTNC.js.map → chunk-G7OTY5BS.js.map} +1 -1
- package/dist/browser/chunk-G7UMQXIE.js +2 -0
- package/dist/browser/{chunk-FWF6R6PS.js.map → chunk-G7UMQXIE.js.map} +1 -1
- package/dist/browser/{chunk-NRNAWY3C.js → chunk-GBKMDLAF.js} +2 -2
- package/dist/browser/{chunk-NRNAWY3C.js.map → chunk-GBKMDLAF.js.map} +1 -1
- package/dist/browser/{chunk-WGADYYRN.js → chunk-GC2UHHSZ.js} +2 -2
- package/dist/browser/{chunk-WGADYYRN.js.map → chunk-GC2UHHSZ.js.map} +1 -1
- package/dist/browser/{chunk-NEOEKKRW.js → chunk-GIGRSQIH.js} +2 -2
- package/dist/browser/{chunk-NEOEKKRW.js.map → chunk-GIGRSQIH.js.map} +1 -1
- package/dist/browser/{chunk-4TVAVXWD.js → chunk-GVFBXXXP.js} +2 -2
- package/dist/browser/{chunk-4TVAVXWD.js.map → chunk-GVFBXXXP.js.map} +1 -1
- package/dist/browser/{chunk-NXYHJZ5U.js → chunk-H7HEYDU6.js} +2 -2
- package/dist/browser/{chunk-NXYHJZ5U.js.map → chunk-H7HEYDU6.js.map} +1 -1
- package/dist/browser/{chunk-FDYPFRJA.js → chunk-HBZ2NQ5P.js} +2 -2
- package/dist/browser/{chunk-FDYPFRJA.js.map → chunk-HBZ2NQ5P.js.map} +1 -1
- package/dist/browser/{chunk-OYSBE4XG.js → chunk-HC3UDPP5.js} +2 -2
- package/dist/browser/{chunk-OYSBE4XG.js.map → chunk-HC3UDPP5.js.map} +1 -1
- package/dist/browser/{chunk-NA7J7Y6D.js → chunk-HGHMHQ5S.js} +2 -2
- package/dist/browser/{chunk-NA7J7Y6D.js.map → chunk-HGHMHQ5S.js.map} +1 -1
- package/dist/browser/{chunk-THIBPBGV.js → chunk-HNOOL6VU.js} +2 -2
- package/dist/browser/{chunk-THIBPBGV.js.map → chunk-HNOOL6VU.js.map} +1 -1
- package/dist/browser/{chunk-VOK3Q6MQ.js → chunk-HOJJOXGC.js} +2 -2
- package/dist/browser/{chunk-VOK3Q6MQ.js.map → chunk-HOJJOXGC.js.map} +1 -1
- package/dist/browser/{chunk-4A5CVCXW.js → chunk-HQBE4QAU.js} +2 -2
- package/dist/browser/{chunk-4A5CVCXW.js.map → chunk-HQBE4QAU.js.map} +1 -1
- package/dist/browser/{chunk-2MLEAT6V.js → chunk-HS6NJH6H.js} +2 -2
- package/dist/browser/{chunk-2MLEAT6V.js.map → chunk-HS6NJH6H.js.map} +1 -1
- package/dist/browser/{chunk-JPSNDJVH.js → chunk-HVIGVB6L.js} +2 -2
- package/dist/browser/{chunk-JPSNDJVH.js.map → chunk-HVIGVB6L.js.map} +1 -1
- package/dist/browser/{chunk-J3PY2B6H.js → chunk-ICLETUUV.js} +2 -2
- package/dist/browser/{chunk-J3PY2B6H.js.map → chunk-ICLETUUV.js.map} +1 -1
- package/dist/browser/{chunk-PGMEWW46.js → chunk-IEAAYAFA.js} +2 -2
- package/dist/browser/{chunk-PGMEWW46.js.map → chunk-IEAAYAFA.js.map} +1 -1
- package/dist/browser/chunk-IMCYKBDV.js +2 -0
- package/dist/browser/chunk-IMCYKBDV.js.map +1 -0
- package/dist/browser/{chunk-VWPIV7DW.js → chunk-IOGRMGRX.js} +2 -2
- package/dist/browser/{chunk-VWPIV7DW.js.map → chunk-IOGRMGRX.js.map} +1 -1
- package/dist/browser/{chunk-D5QHXMAB.js → chunk-IVLVYIWT.js} +2 -2
- package/dist/browser/{chunk-D5QHXMAB.js.map → chunk-IVLVYIWT.js.map} +1 -1
- package/dist/browser/{chunk-COWE3OFS.js → chunk-IVMIGXLH.js} +2 -2
- package/dist/browser/{chunk-COWE3OFS.js.map → chunk-IVMIGXLH.js.map} +1 -1
- package/dist/browser/chunk-J2HM6MWA.js +2 -0
- package/dist/browser/{chunk-K2DAN37J.js.map → chunk-J2HM6MWA.js.map} +1 -1
- package/dist/browser/{chunk-LHELQESQ.js → chunk-J5NBSH3V.js} +2 -2
- package/dist/browser/{chunk-LHELQESQ.js.map → chunk-J5NBSH3V.js.map} +1 -1
- package/dist/browser/{chunk-JCRZXXCV.js → chunk-JBBGDTGD.js} +2 -2
- package/dist/browser/{chunk-JCRZXXCV.js.map → chunk-JBBGDTGD.js.map} +1 -1
- package/dist/browser/{chunk-CN47ABVB.js → chunk-JEYSB5GX.js} +2 -2
- package/dist/browser/{chunk-CN47ABVB.js.map → chunk-JEYSB5GX.js.map} +1 -1
- package/dist/browser/{chunk-6YZ7OSX2.js → chunk-JG7HMCAI.js} +2 -2
- package/dist/browser/{chunk-6YZ7OSX2.js.map → chunk-JG7HMCAI.js.map} +1 -1
- package/dist/browser/{chunk-BLLAF3XJ.js → chunk-JM4J2N4W.js} +2 -2
- package/dist/browser/{chunk-BLLAF3XJ.js.map → chunk-JM4J2N4W.js.map} +1 -1
- package/dist/browser/{chunk-U74BMWFM.js → chunk-JT3FBTE4.js} +2 -2
- package/dist/browser/{chunk-U74BMWFM.js.map → chunk-JT3FBTE4.js.map} +1 -1
- package/dist/browser/{chunk-FLOAOOH3.js → chunk-K2AH4UHN.js} +2 -2
- package/dist/browser/{chunk-FLOAOOH3.js.map → chunk-K2AH4UHN.js.map} +1 -1
- package/dist/browser/{chunk-EMHVA3H6.js → chunk-K3X52YJI.js} +2 -2
- package/dist/browser/{chunk-EMHVA3H6.js.map → chunk-K3X52YJI.js.map} +1 -1
- package/dist/browser/{chunk-MXGY33MH.js → chunk-KBQ6MAP7.js} +2 -2
- package/dist/browser/{chunk-MXGY33MH.js.map → chunk-KBQ6MAP7.js.map} +1 -1
- package/dist/browser/{chunk-5B3G6IGS.js → chunk-KGOV76YL.js} +2 -2
- package/dist/browser/{chunk-5B3G6IGS.js.map → chunk-KGOV76YL.js.map} +1 -1
- package/dist/browser/{chunk-MLMHFQYG.js → chunk-L5SAOKO6.js} +2 -2
- package/dist/browser/{chunk-MLMHFQYG.js.map → chunk-L5SAOKO6.js.map} +1 -1
- package/dist/browser/{chunk-7B5LNIZJ.js → chunk-LAXQ3PZ3.js} +2 -2
- package/dist/browser/{chunk-7B5LNIZJ.js.map → chunk-LAXQ3PZ3.js.map} +1 -1
- package/dist/browser/{chunk-HD3Y4KOD.js → chunk-LBWFOS7R.js} +2 -2
- package/dist/browser/{chunk-HD3Y4KOD.js.map → chunk-LBWFOS7R.js.map} +1 -1
- package/dist/browser/{chunk-NEJEOIZD.js → chunk-LFPDY7MJ.js} +2 -2
- package/dist/browser/{chunk-NEJEOIZD.js.map → chunk-LFPDY7MJ.js.map} +1 -1
- package/dist/browser/{chunk-H6FI5RUB.js → chunk-LPQIHN5Z.js} +2 -2
- package/dist/browser/{chunk-H6FI5RUB.js.map → chunk-LPQIHN5Z.js.map} +1 -1
- package/dist/browser/{chunk-54IRWFMB.js → chunk-LQHI7JEH.js} +2 -2
- package/dist/browser/{chunk-54IRWFMB.js.map → chunk-LQHI7JEH.js.map} +1 -1
- package/dist/browser/{chunk-KXA43CQY.js → chunk-LYN5S3FE.js} +2 -2
- package/dist/browser/{chunk-KXA43CQY.js.map → chunk-LYN5S3FE.js.map} +1 -1
- package/dist/browser/{chunk-EYKUJB3F.js → chunk-M332H37M.js} +2 -2
- package/dist/browser/{chunk-EYKUJB3F.js.map → chunk-M332H37M.js.map} +1 -1
- package/dist/browser/{chunk-BK4LRFXY.js → chunk-MPGCDOY7.js} +2 -2
- package/dist/browser/{chunk-BK4LRFXY.js.map → chunk-MPGCDOY7.js.map} +1 -1
- package/dist/browser/{chunk-MU2XP4IF.js → chunk-MW4KYNU3.js} +2 -2
- package/dist/browser/{chunk-MU2XP4IF.js.map → chunk-MW4KYNU3.js.map} +1 -1
- package/dist/browser/chunk-MWHVIEZ7.js +2 -0
- package/dist/browser/chunk-MWHVIEZ7.js.map +1 -0
- package/dist/browser/{chunk-KDR4M45T.js → chunk-MYMGKU5V.js} +2 -2
- package/dist/browser/{chunk-KDR4M45T.js.map → chunk-MYMGKU5V.js.map} +1 -1
- package/dist/browser/{chunk-3ZQSFK2L.js → chunk-N6W7RZ3U.js} +2 -2
- package/dist/browser/{chunk-3ZQSFK2L.js.map → chunk-N6W7RZ3U.js.map} +1 -1
- package/dist/browser/{chunk-3UGQ6D76.js → chunk-NIFE7QZD.js} +2 -2
- package/dist/browser/{chunk-3UGQ6D76.js.map → chunk-NIFE7QZD.js.map} +1 -1
- package/dist/browser/{chunk-LHABXX5K.js → chunk-NKALZNPX.js} +2 -2
- package/dist/browser/{chunk-LHABXX5K.js.map → chunk-NKALZNPX.js.map} +1 -1
- package/dist/browser/chunk-NLN57OO3.js +2 -0
- package/dist/browser/chunk-NLN57OO3.js.map +1 -0
- package/dist/browser/{chunk-IXKMQCJ7.js → chunk-NNZ2CJJ6.js} +2 -2
- package/dist/browser/{chunk-IXKMQCJ7.js.map → chunk-NNZ2CJJ6.js.map} +1 -1
- package/dist/browser/{chunk-BUHCN53D.js → chunk-NS5UVFUZ.js} +2 -2
- package/dist/browser/{chunk-BUHCN53D.js.map → chunk-NS5UVFUZ.js.map} +1 -1
- package/dist/browser/{chunk-LK7EGU7U.js → chunk-NSTN6NK7.js} +2 -2
- package/dist/browser/{chunk-LK7EGU7U.js.map → chunk-NSTN6NK7.js.map} +1 -1
- package/dist/browser/chunk-NXFYJWG2.js +2 -0
- package/dist/browser/{chunk-F54NXXT5.js.map → chunk-NXFYJWG2.js.map} +1 -1
- package/dist/browser/{chunk-KGH7NTDV.js → chunk-O6NAVQM3.js} +2 -2
- package/dist/browser/{chunk-KGH7NTDV.js.map → chunk-O6NAVQM3.js.map} +1 -1
- package/dist/browser/{chunk-XRDFNCWM.js → chunk-OFT7Z56U.js} +2 -2
- package/dist/browser/{chunk-XRDFNCWM.js.map → chunk-OFT7Z56U.js.map} +1 -1
- package/dist/browser/{chunk-HAAFT4KN.js → chunk-P32N774D.js} +2 -2
- package/dist/browser/{chunk-HAAFT4KN.js.map → chunk-P32N774D.js.map} +1 -1
- package/dist/browser/{chunk-DLRAARGY.js → chunk-P6GFUYJZ.js} +2 -2
- package/dist/browser/{chunk-DLRAARGY.js.map → chunk-P6GFUYJZ.js.map} +1 -1
- package/dist/browser/{chunk-DX47GSLU.js → chunk-PCUZP45U.js} +2 -2
- package/dist/browser/{chunk-DX47GSLU.js.map → chunk-PCUZP45U.js.map} +1 -1
- package/dist/browser/{chunk-WXK7YHHZ.js → chunk-PFCRQTIL.js} +3 -3
- package/dist/browser/{chunk-WXK7YHHZ.js.map → chunk-PFCRQTIL.js.map} +1 -1
- package/dist/browser/{chunk-IHZ4QSSA.js → chunk-PL3T74ID.js} +2 -2
- package/dist/browser/{chunk-IHZ4QSSA.js.map → chunk-PL3T74ID.js.map} +1 -1
- package/dist/browser/{chunk-FVLWW7QJ.js → chunk-PN4AFXFW.js} +2 -2
- package/dist/browser/{chunk-FVLWW7QJ.js.map → chunk-PN4AFXFW.js.map} +1 -1
- package/dist/browser/{chunk-MQP327LE.js → chunk-PTXUJVAH.js} +2 -2
- package/dist/browser/{chunk-MQP327LE.js.map → chunk-PTXUJVAH.js.map} +1 -1
- package/dist/browser/{chunk-IMYYPEMQ.js → chunk-PYJEM3EP.js} +2 -2
- package/dist/browser/{chunk-IMYYPEMQ.js.map → chunk-PYJEM3EP.js.map} +1 -1
- package/dist/browser/{chunk-ROPIXIH3.js → chunk-Q7K6UASJ.js} +2 -2
- package/dist/browser/{chunk-ROPIXIH3.js.map → chunk-Q7K6UASJ.js.map} +1 -1
- package/dist/browser/{chunk-JORE46WK.js → chunk-QGLHPALU.js} +2 -2
- package/dist/browser/{chunk-JORE46WK.js.map → chunk-QGLHPALU.js.map} +1 -1
- package/dist/browser/{chunk-QUXEP774.js → chunk-QHUAQHJU.js} +2 -2
- package/dist/browser/{chunk-QUXEP774.js.map → chunk-QHUAQHJU.js.map} +1 -1
- package/dist/browser/{chunk-6L4X2XO4.js → chunk-QMHELPJV.js} +2 -2
- package/dist/browser/{chunk-6L4X2XO4.js.map → chunk-QMHELPJV.js.map} +1 -1
- package/dist/browser/{chunk-7BGXFJVA.js → chunk-QV7IOAFD.js} +2 -2
- package/dist/browser/{chunk-7BGXFJVA.js.map → chunk-QV7IOAFD.js.map} +1 -1
- package/dist/browser/{chunk-5VPVV66Q.js → chunk-QZXM2CX5.js} +2 -2
- package/dist/browser/{chunk-5VPVV66Q.js.map → chunk-QZXM2CX5.js.map} +1 -1
- package/dist/browser/{chunk-6DDGZBMD.js → chunk-R3DMLKGZ.js} +2 -2
- package/dist/browser/{chunk-6DDGZBMD.js.map → chunk-R3DMLKGZ.js.map} +1 -1
- package/dist/browser/{chunk-YN34NTWC.js → chunk-R6OHEJX2.js} +2 -2
- package/dist/browser/{chunk-YN34NTWC.js.map → chunk-R6OHEJX2.js.map} +1 -1
- package/dist/browser/{chunk-EOI426M4.js → chunk-RBMIME3V.js} +2 -2
- package/dist/browser/{chunk-EOI426M4.js.map → chunk-RBMIME3V.js.map} +1 -1
- package/dist/browser/{chunk-37N2QITX.js → chunk-RBORSSX5.js} +2 -2
- package/dist/browser/{chunk-37N2QITX.js.map → chunk-RBORSSX5.js.map} +1 -1
- package/dist/browser/{chunk-44EOXEIC.js → chunk-RC4MOYY5.js} +2 -2
- package/dist/browser/{chunk-44EOXEIC.js.map → chunk-RC4MOYY5.js.map} +1 -1
- package/dist/browser/{chunk-YPCXNBNA.js → chunk-RN67VLXB.js} +2 -2
- package/dist/browser/{chunk-YPCXNBNA.js.map → chunk-RN67VLXB.js.map} +1 -1
- package/dist/browser/{chunk-66BOVVX2.js → chunk-S23YZMGE.js} +2 -2
- package/dist/browser/{chunk-66BOVVX2.js.map → chunk-S23YZMGE.js.map} +1 -1
- package/dist/browser/{chunk-53GW2OCZ.js → chunk-S4G2LVET.js} +2 -2
- package/dist/browser/{chunk-53GW2OCZ.js.map → chunk-S4G2LVET.js.map} +1 -1
- package/dist/browser/{chunk-Q6EALMA3.js → chunk-SAWB4N2Y.js} +2 -2
- package/dist/browser/{chunk-Q6EALMA3.js.map → chunk-SAWB4N2Y.js.map} +1 -1
- package/dist/browser/{chunk-QLI32MDI.js → chunk-SC46LW4W.js} +2 -2
- package/dist/browser/{chunk-QLI32MDI.js.map → chunk-SC46LW4W.js.map} +1 -1
- package/dist/browser/{chunk-ADAK5AIP.js → chunk-SI7S4VLE.js} +2 -2
- package/dist/browser/{chunk-ADAK5AIP.js.map → chunk-SI7S4VLE.js.map} +1 -1
- package/dist/browser/{chunk-PDA62RN7.js → chunk-T6IKUQBC.js} +2 -2
- package/dist/browser/{chunk-PDA62RN7.js.map → chunk-T6IKUQBC.js.map} +1 -1
- package/dist/browser/{chunk-DKU7Q5PB.js → chunk-TCIUXYXN.js} +2 -2
- package/dist/browser/{chunk-DKU7Q5PB.js.map → chunk-TCIUXYXN.js.map} +1 -1
- package/dist/browser/{chunk-2PDZO3DO.js → chunk-TMC6QMDL.js} +2 -2
- package/dist/browser/{chunk-2PDZO3DO.js.map → chunk-TMC6QMDL.js.map} +1 -1
- package/dist/browser/{chunk-OTLF6WPX.js → chunk-TNGNZSGS.js} +2 -2
- package/dist/browser/{chunk-OTLF6WPX.js.map → chunk-TNGNZSGS.js.map} +1 -1
- package/dist/browser/{chunk-544PLBJH.js → chunk-TXIFF2IC.js} +2 -2
- package/dist/browser/{chunk-544PLBJH.js.map → chunk-TXIFF2IC.js.map} +1 -1
- package/dist/browser/{chunk-GQGDHPRQ.js → chunk-U2AQDDCH.js} +2 -2
- package/dist/browser/{chunk-GQGDHPRQ.js.map → chunk-U2AQDDCH.js.map} +1 -1
- package/dist/browser/{chunk-OSP53YZ5.js → chunk-U2UL57EH.js} +2 -2
- package/dist/browser/{chunk-OSP53YZ5.js.map → chunk-U2UL57EH.js.map} +1 -1
- package/dist/browser/{chunk-TJALVUAB.js → chunk-UIOXS7FU.js} +2 -2
- package/dist/browser/{chunk-TJALVUAB.js.map → chunk-UIOXS7FU.js.map} +1 -1
- package/dist/browser/{chunk-24GIDC32.js → chunk-UNKOXV36.js} +2 -2
- package/dist/browser/{chunk-24GIDC32.js.map → chunk-UNKOXV36.js.map} +1 -1
- package/dist/browser/{chunk-JGGIPNQV.js → chunk-V4QGWE6K.js} +2 -2
- package/dist/browser/{chunk-JGGIPNQV.js.map → chunk-V4QGWE6K.js.map} +1 -1
- package/dist/browser/{chunk-AK3ZT2R5.js → chunk-V5J2DFJD.js} +2 -2
- package/dist/browser/{chunk-AK3ZT2R5.js.map → chunk-V5J2DFJD.js.map} +1 -1
- package/dist/browser/chunk-VCJWMCKC.js +2 -0
- package/dist/browser/{chunk-QLC3O4HK.js.map → chunk-VCJWMCKC.js.map} +1 -1
- package/dist/browser/{chunk-KJUSI6PP.js → chunk-VDPNUKQ6.js} +2 -2
- package/dist/browser/{chunk-KJUSI6PP.js.map → chunk-VDPNUKQ6.js.map} +1 -1
- package/dist/browser/{chunk-XU43MKJX.js → chunk-VDU4E44M.js} +2 -2
- package/dist/browser/{chunk-XU43MKJX.js.map → chunk-VDU4E44M.js.map} +1 -1
- package/dist/browser/{chunk-QOK63BCD.js → chunk-VLMKNIB4.js} +2 -2
- package/dist/browser/{chunk-QOK63BCD.js.map → chunk-VLMKNIB4.js.map} +1 -1
- package/dist/browser/{chunk-SHZTS2C3.js → chunk-VOET5ABO.js} +2 -2
- package/dist/browser/{chunk-SHZTS2C3.js.map → chunk-VOET5ABO.js.map} +1 -1
- package/dist/browser/{chunk-MR4YHEKX.js → chunk-VPRG4WZA.js} +2 -2
- package/dist/browser/{chunk-MR4YHEKX.js.map → chunk-VPRG4WZA.js.map} +1 -1
- package/dist/browser/chunk-VTGQQQFL.js +2 -0
- package/dist/browser/{chunk-ASC4EO7F.js.map → chunk-VTGQQQFL.js.map} +1 -1
- package/dist/browser/{chunk-MSHBAEL5.js → chunk-VWDPA3QQ.js} +2 -2
- package/dist/browser/{chunk-MSHBAEL5.js.map → chunk-VWDPA3QQ.js.map} +1 -1
- package/dist/browser/{chunk-TUDWKSAB.js → chunk-W3TAAAAM.js} +2 -2
- package/dist/browser/{chunk-TUDWKSAB.js.map → chunk-W3TAAAAM.js.map} +1 -1
- package/dist/browser/{chunk-6NU6BHMS.js → chunk-WB24EFQ2.js} +2 -2
- package/dist/browser/{chunk-6NU6BHMS.js.map → chunk-WB24EFQ2.js.map} +1 -1
- package/dist/browser/{chunk-D2TKKCXM.js → chunk-WEC4NL7S.js} +2 -2
- package/dist/browser/{chunk-D2TKKCXM.js.map → chunk-WEC4NL7S.js.map} +1 -1
- package/dist/browser/{chunk-UUKSFMUP.js → chunk-WEUPYCUL.js} +2 -2
- package/dist/browser/{chunk-UUKSFMUP.js.map → chunk-WEUPYCUL.js.map} +1 -1
- package/dist/browser/{chunk-YJB4RMTV.js → chunk-WIK4TMZU.js} +2 -2
- package/dist/browser/{chunk-YJB4RMTV.js.map → chunk-WIK4TMZU.js.map} +1 -1
- package/dist/browser/{chunk-7B54PZVW.js → chunk-WIRKVK7A.js} +2 -2
- package/dist/browser/{chunk-7B54PZVW.js.map → chunk-WIRKVK7A.js.map} +1 -1
- package/dist/browser/{chunk-HEILHNSR.js → chunk-WTHEQ3M5.js} +2 -2
- package/dist/browser/chunk-WTHEQ3M5.js.map +1 -0
- package/dist/browser/{chunk-5OXSBED6.js → chunk-XBX74VBH.js} +2 -2
- package/dist/browser/{chunk-5OXSBED6.js.map → chunk-XBX74VBH.js.map} +1 -1
- package/dist/browser/{chunk-6UX6JLOC.js → chunk-XDEPGFLB.js} +2 -2
- package/dist/browser/{chunk-6UX6JLOC.js.map → chunk-XDEPGFLB.js.map} +1 -1
- package/dist/browser/{chunk-UXF4JZOD.js → chunk-XEB43J5Q.js} +2 -2
- package/dist/browser/chunk-XEB43J5Q.js.map +1 -0
- package/dist/browser/{chunk-UBIHDHZY.js → chunk-XLTYBCR5.js} +2 -2
- package/dist/browser/{chunk-UBIHDHZY.js.map → chunk-XLTYBCR5.js.map} +1 -1
- package/dist/browser/{chunk-MDQG5WKJ.js → chunk-XVGV73M6.js} +2 -2
- package/dist/browser/{chunk-MDQG5WKJ.js.map → chunk-XVGV73M6.js.map} +1 -1
- package/dist/browser/chunk-YQRLUPCP.js +2 -0
- package/dist/browser/{chunk-VYGYMSIX.js.map → chunk-YQRLUPCP.js.map} +1 -1
- package/dist/browser/{chunk-5DTDPZPL.js → chunk-YSTL3FQJ.js} +2 -2
- package/dist/browser/{chunk-5DTDPZPL.js.map → chunk-YSTL3FQJ.js.map} +1 -1
- package/dist/browser/{chunk-TOQBNISU.js → chunk-YUTSHZGV.js} +2 -2
- package/dist/browser/{chunk-TOQBNISU.js.map → chunk-YUTSHZGV.js.map} +1 -1
- package/dist/browser/{chunk-VIRJGEIM.js → chunk-Z2TH3AWW.js} +2 -2
- package/dist/browser/{chunk-VIRJGEIM.js.map → chunk-Z2TH3AWW.js.map} +1 -1
- package/dist/browser/{chunk-WSOZA5XY.js → chunk-Z5HEILXV.js} +2 -2
- package/dist/browser/{chunk-WSOZA5XY.js.map → chunk-Z5HEILXV.js.map} +1 -1
- package/dist/browser/chunk-Z7R2PK35.js +2 -0
- package/dist/browser/{chunk-PHNYLTEH.js.map → chunk-Z7R2PK35.js.map} +1 -1
- package/dist/browser/{chunk-RJLSCKSY.js → chunk-ZDEEGACQ.js} +2 -2
- package/dist/browser/{chunk-RJLSCKSY.js.map → chunk-ZDEEGACQ.js.map} +1 -1
- package/dist/browser/{chunk-MUL7YLYQ.js → chunk-ZHGJLIIS.js} +2 -2
- package/dist/browser/{chunk-MUL7YLYQ.js.map → chunk-ZHGJLIIS.js.map} +1 -1
- package/dist/browser/{chunk-GE777O5U.js → chunk-ZMYRAWYV.js} +2 -2
- package/dist/browser/{chunk-GE777O5U.js.map → chunk-ZMYRAWYV.js.map} +1 -1
- package/dist/browser/{chunk-MMXCX67L.js → chunk-ZSMDZIBE.js} +2 -2
- package/dist/browser/{chunk-MMXCX67L.js.map → chunk-ZSMDZIBE.js.map} +1 -1
- package/dist/browser/{hive-DkEPbBoe.d.ts → hive-BtyYkHAm.d.ts} +14 -1
- package/dist/browser/hive-tx/Transaction.js +1 -1
- package/dist/browser/hive-tx/index.js +1 -1
- package/dist/browser/hive.d.ts +1 -1
- package/dist/browser/hive.js +1 -1
- package/dist/browser/index.d.ts +21 -3
- package/dist/browser/index.js +1 -1
- package/dist/browser/modules/accounts/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/bookmarks/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/bookmarks/use-account-bookmark-add.js +1 -1
- package/dist/browser/modules/accounts/mutations/bookmarks/use-account-bookmark-delete.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/requests.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/use-favorite-tag-add.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorite-tags/use-favorite-tag-delete.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorites/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorites/use-account-favorite-add.js +1 -1
- package/dist/browser/modules/accounts/mutations/favorites/use-account-favorite-delete.js +1 -1
- package/dist/browser/modules/accounts/mutations/index.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-relations-update.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-revoke-key.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-revoke-posting.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update-key-auths.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update-password.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update-recovery.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-account-update.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-claim-account.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-create-account.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-follow.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-grant-posting-permission.js +1 -1
- package/dist/browser/modules/accounts/mutations/use-unfollow.js +1 -1
- package/dist/browser/modules/accounts/queries/check-favorite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/check-username-wallets-pending-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-full-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-pending-recovery-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-recoveries-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-reputations-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-subscriptions-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-account-vote-history-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-accounts-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-aggregated-balance-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-balance-history-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-bookmarks-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-bots-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-favorite-tag-check-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-favorite-tags-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-favorites-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-follow-count-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-followers-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-following-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-friends-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-muted-users-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-pro-members-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-profiles-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-referrals-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-referrals-stats-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-relationship-between-accounts-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-search-friends-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/get-transactions-infinite-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/index.js +1 -1
- package/dist/browser/modules/accounts/queries/lookup-accounts-query-options.js +1 -1
- package/dist/browser/modules/accounts/queries/search-accounts-by-username-query-options.js +1 -1
- package/dist/browser/modules/accounts/utils/account-power.js +1 -1
- package/dist/browser/modules/accounts/utils/index.js +1 -1
- package/dist/browser/modules/ai/index.js +1 -1
- package/dist/browser/modules/ai/mutations/index.js +1 -1
- package/dist/browser/modules/ai/mutations/make-idempotency-key.js +2 -0
- package/dist/browser/modules/ai/mutations/make-idempotency-key.js.map +1 -0
- package/dist/browser/modules/ai/mutations/use-ai-assist.js +1 -1
- package/dist/browser/modules/ai/mutations/use-ai-transcribe.js +1 -1
- package/dist/browser/modules/ai/mutations/use-generate-image.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-assist-price-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-generate-price-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-images-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/get-ai-transcribe-price-query-options.js +1 -1
- package/dist/browser/modules/ai/queries/index.js +1 -1
- package/dist/browser/modules/analytics/index.js +1 -1
- package/dist/browser/modules/analytics/mutations/index.js +1 -1
- package/dist/browser/modules/analytics/mutations/use-record-activity.js +1 -1
- package/dist/browser/modules/analytics/queries/get-discover-curation-query-options.js +1 -1
- package/dist/browser/modules/analytics/queries/get-discover-leaderboard-query-options.js +1 -1
- package/dist/browser/modules/analytics/queries/get-page-stats-query-options.js +1 -1
- package/dist/browser/modules/analytics/queries/index.js +1 -1
- package/dist/browser/modules/analytics/types/index.js +1 -1
- package/dist/browser/modules/auth/index.js +1 -1
- package/dist/browser/modules/auth/requests.js +1 -1
- package/dist/browser/modules/bad-actors/index.js +1 -1
- package/dist/browser/modules/bad-actors/queries/get-bad-actors-query-options.js +1 -1
- package/dist/browser/modules/bad-actors/queries/index.js +1 -1
- package/dist/browser/modules/bridge/index.js +1 -1
- package/dist/browser/modules/bridge/requests.js +1 -1
- package/dist/browser/modules/bridge/verify-on-alternate-node.js +1 -1
- package/dist/browser/modules/communities/index.js +1 -1
- package/dist/browser/modules/communities/mutations/index.js +1 -1
- package/dist/browser/modules/communities/mutations/use-mute-post.js +1 -1
- package/dist/browser/modules/communities/mutations/use-pin-post.js +1 -1
- package/dist/browser/modules/communities/mutations/use-register-community-rewards.js +1 -1
- package/dist/browser/modules/communities/mutations/use-set-community-role.js +1 -1
- package/dist/browser/modules/communities/mutations/use-subscribe-community.js +1 -1
- package/dist/browser/modules/communities/mutations/use-unsubscribe-community.js +1 -1
- package/dist/browser/modules/communities/mutations/use-update-community.js +1 -1
- package/dist/browser/modules/communities/queries/get-account-notifications-infinite-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-communities-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-community-context-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-community-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-community-subscribers-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/get-rewarded-communities-query-options.js +1 -1
- package/dist/browser/modules/communities/queries/index.js +1 -1
- package/dist/browser/modules/core/config.js +1 -1
- package/dist/browser/modules/core/hive-tx.js +1 -1
- package/dist/browser/modules/core/index.js +1 -1
- package/dist/browser/modules/core/mutations/broadcast-json.js +1 -1
- package/dist/browser/modules/core/mutations/index.js +1 -1
- package/dist/browser/modules/core/mutations/use-broadcast-mutation.js +1 -1
- package/dist/browser/modules/core/queries/get-chain-properties-query-options.js +1 -1
- package/dist/browser/modules/core/queries/get-dynamic-props-query-options.js +1 -1
- package/dist/browser/modules/core/queries/get-reward-fund-query-options.js +1 -1
- package/dist/browser/modules/core/queries/index.js +1 -1
- package/dist/browser/modules/core/queries-manager.js +1 -1
- package/dist/browser/modules/core/query-keys.js +1 -1
- package/dist/browser/modules/core/types/index.js +1 -1
- package/dist/browser/modules/core/utils/index.js +1 -1
- package/dist/browser/modules/curation/dmca.js +1 -1
- package/dist/browser/modules/curation/index.js +1 -1
- package/dist/browser/modules/curation/mutations/index.js +1 -1
- package/dist/browser/modules/curation/mutations/use-curation-recommend.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-application-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-applications-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-feed-infinite-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-post-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-recommendations-infinite-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-recommender-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-roster-admin-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-roster-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/get-curation-status-query-options.js +1 -1
- package/dist/browser/modules/curation/queries/index.js +1 -1
- package/dist/browser/modules/curation/requests.js +1 -1
- package/dist/browser/modules/games/index.js +1 -1
- package/dist/browser/modules/games/mutations/game-claim.js +1 -1
- package/dist/browser/modules/games/mutations/index.js +1 -1
- package/dist/browser/modules/games/queries/game-status-check-query-options.js +1 -1
- package/dist/browser/modules/games/queries/index.js +1 -1
- package/dist/browser/modules/hive-engine/index.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-all-hive-engine-tokens-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-balances-with-usd-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-general-info-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-metrics-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-transactions-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-balances-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-market-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-metadata-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/get-hive-engine-unclaimed-rewards-query-options.js +1 -1
- package/dist/browser/modules/hive-engine/queries/index.js +1 -1
- package/dist/browser/modules/hive-engine/requests.js +1 -1
- package/dist/browser/modules/hive-engine/types/index.js +1 -1
- package/dist/browser/modules/integrations/3speak/index.js +1 -1
- package/dist/browser/modules/integrations/3speak/queries/get-account-token-query-options.js +1 -1
- package/dist/browser/modules/integrations/3speak/queries/get-account-videos-query-options.js +1 -1
- package/dist/browser/modules/integrations/3speak/queries/index.js +1 -1
- package/dist/browser/modules/integrations/hiveposh/index.js +1 -1
- package/dist/browser/modules/integrations/hiveposh/queries/get-hiveposh-links-query-options.js +1 -1
- package/dist/browser/modules/integrations/hiveposh/queries/index.js +1 -1
- package/dist/browser/modules/integrations/index.js +1 -1
- package/dist/browser/modules/integrations/plausible/index.js +1 -1
- package/dist/browser/modules/integrations/plausible/queries/get-stats-query-options.js +1 -1
- package/dist/browser/modules/integrations/plausible/queries/index.js +1 -1
- package/dist/browser/modules/market/index.js +1 -1
- package/dist/browser/modules/market/mutations/index.js +1 -1
- package/dist/browser/modules/market/mutations/use-limit-order-cancel.js +1 -1
- package/dist/browser/modules/market/mutations/use-limit-order-create.js +1 -1
- package/dist/browser/modules/market/queries/get-current-median-history-price-query-options.js +1 -1
- package/dist/browser/modules/market/queries/get-feed-history-query-options.js +1 -1
- package/dist/browser/modules/market/queries/get-hive-hbd-stats-query-options.js +1 -1
- package/dist/browser/modules/market/queries/get-market-data-query-options.js +1 -1
- package/dist/browser/modules/market/queries/get-market-history-query-options.js +1 -1
- package/dist/browser/modules/market/queries/get-market-statistics-query-options.js +1 -1
- package/dist/browser/modules/market/queries/get-order-book-query-options.js +1 -1
- package/dist/browser/modules/market/queries/get-trade-history-query-options.js +1 -1
- package/dist/browser/modules/market/queries/index.js +1 -1
- package/dist/browser/modules/market/requests.js +1 -1
- package/dist/browser/modules/market/types/index.js +1 -1
- package/dist/browser/modules/newsletter/api.js +1 -1
- package/dist/browser/modules/newsletter/index.js +1 -1
- package/dist/browser/modules/newsletter/mutations/index.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-leave-digest.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-send-newsletter-issue.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-subscribe-digest.js +1 -1
- package/dist/browser/modules/newsletter/mutations/use-unsubscribe-all-digests.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-digest-subscriptions-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-newsletter-issues-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-newsletter-posts-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/get-newsletter-sender-query-options.js +1 -1
- package/dist/browser/modules/newsletter/queries/index.js +1 -1
- package/dist/browser/modules/notifications/index.js +1 -1
- package/dist/browser/modules/notifications/mutations/index.js +1 -1
- package/dist/browser/modules/notifications/mutations/use-mark-notifications-read.js +1 -1
- package/dist/browser/modules/notifications/mutations/use-set-last-read.js +1 -1
- package/dist/browser/modules/notifications/queries/get-announcements-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-notifications-infinite-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-notifications-settings-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-notifications-unread-count-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/get-spotlights-query-options.js +1 -1
- package/dist/browser/modules/notifications/queries/index.js +1 -1
- package/dist/browser/modules/operations/builders/index.js +1 -1
- package/dist/browser/modules/operations/index.js +1 -1
- package/dist/browser/modules/operations/mutations/index.js +1 -1
- package/dist/browser/modules/operations/mutations/sign-operation-by-key.js +1 -1
- package/dist/browser/modules/operations/queries/get-chain-properties-query-options.js +1 -1
- package/dist/browser/modules/operations/queries/index.js +1 -1
- package/dist/browser/modules/points/index.js +1 -1
- package/dist/browser/modules/points/mutations/index.js +1 -1
- package/dist/browser/modules/points/mutations/use-claim-points.js +1 -1
- package/dist/browser/modules/points/queries/get-points-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/points/queries/get-points-asset-transactions-query-options.js +1 -1
- package/dist/browser/modules/points/queries/get-points-query-options.js +1 -1
- package/dist/browser/modules/points/queries/index.js +1 -1
- package/dist/browser/modules/points/types/index.js +1 -1
- package/dist/browser/modules/polls/index.js +1 -1
- package/dist/browser/modules/polls/mutations/index.js +1 -1
- package/dist/browser/modules/polls/mutations/use-poll-vote.js +1 -1
- package/dist/browser/modules/polls/queries/get-poll-query-options.js +1 -1
- package/dist/browser/modules/polls/queries/index.js +1 -1
- package/dist/browser/modules/posts/cache/discussions-cache-utils.js +1 -1
- package/dist/browser/modules/posts/cache/entries-cache-management.js +1 -1
- package/dist/browser/modules/posts/cache/index.js +1 -1
- package/dist/browser/modules/posts/index.js +1 -1
- package/dist/browser/modules/posts/mutations/add-fragment.js +1 -1
- package/dist/browser/modules/posts/mutations/edit-fragment.js +1 -1
- package/dist/browser/modules/posts/mutations/index.js +1 -1
- package/dist/browser/modules/posts/mutations/remove-fragment.js +1 -1
- package/dist/browser/modules/posts/mutations/use-add-draft.js +1 -1
- package/dist/browser/modules/posts/mutations/use-add-image.js +1 -1
- package/dist/browser/modules/posts/mutations/use-add-schedule.js +1 -1
- package/dist/browser/modules/posts/mutations/use-comment.js +1 -1
- package/dist/browser/modules/posts/mutations/use-cross-post.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-comment.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-draft.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-image.js +1 -1
- package/dist/browser/modules/posts/mutations/use-delete-schedule.js +1 -1
- package/dist/browser/modules/posts/mutations/use-move-schedule.js +1 -1
- package/dist/browser/modules/posts/mutations/use-promote.js +1 -1
- package/dist/browser/modules/posts/mutations/use-reblog.js +1 -1
- package/dist/browser/modules/posts/mutations/use-update-draft.js +1 -1
- package/dist/browser/modules/posts/mutations/use-update-reply.js +1 -1
- package/dist/browser/modules/posts/mutations/use-upload-image.js +1 -1
- package/dist/browser/modules/posts/mutations/use-vote.js +1 -1
- package/dist/browser/modules/posts/queries/get-account-posts-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-comment-history-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-content-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-content-replies-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-deleted-entry-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-discussions-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-drafts-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-entry-active-votes-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-fragments-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-images-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-normalize-post-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-post-header-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-post-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-post-tips-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-posts-ranked-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-promoted-posts-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-reblogged-by-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-reblogs-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-schedules-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-shorts-feed-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-trending-tags-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-trending-tags-with-stats-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-user-post-vote-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-by-account-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-by-host-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-by-tag-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-feed-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-following-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-trending-authors-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/get-waves-trending-tags-query-options.js +1 -1
- package/dist/browser/modules/posts/queries/index.js +1 -1
- package/dist/browser/modules/posts/types/index.js +1 -1
- package/dist/browser/modules/posts/utils/filter-dmca-entries.js +1 -1
- package/dist/browser/modules/posts/utils/validate-post-creating.js +1 -1
- package/dist/browser/modules/posts/utils/waves-helpers.js +1 -1
- package/dist/browser/modules/private-api/index.js +1 -1
- package/dist/browser/modules/private-api/requests.js +1 -1
- package/dist/browser/modules/promotions/index.js +1 -1
- package/dist/browser/modules/promotions/mutations/index.js +1 -1
- package/dist/browser/modules/promotions/mutations/use-boost-plus.js +1 -1
- package/dist/browser/modules/promotions/mutations/use-rc-delegation.js +1 -1
- package/dist/browser/modules/promotions/queries/get-boost-plus-account-prices-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-boost-plus-prices-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-promote-price-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-rc-delegation-active-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/get-rc-delegation-prices-query-options.js +1 -1
- package/dist/browser/modules/promotions/queries/index.js +1 -1
- package/dist/browser/modules/proposals/index.js +1 -1
- package/dist/browser/modules/proposals/mutations/index.js +1 -1
- package/dist/browser/modules/proposals/mutations/use-proposal-create.js +1 -1
- package/dist/browser/modules/proposals/mutations/use-proposal-vote.js +1 -1
- package/dist/browser/modules/proposals/queries/get-proposal-query-options.js +1 -1
- package/dist/browser/modules/proposals/queries/get-proposal-votes-query-options.js +1 -1
- package/dist/browser/modules/proposals/queries/get-proposals-query-options.js +1 -1
- package/dist/browser/modules/proposals/queries/get-user-proposal-votes-query-options.js +1 -1
- package/dist/browser/modules/proposals/queries/index.js +1 -1
- package/dist/browser/modules/quests/index.js +1 -1
- package/dist/browser/modules/quests/mutations/buy-streak-freeze.js +1 -1
- package/dist/browser/modules/quests/mutations/index.js +1 -1
- package/dist/browser/modules/quests/queries/get-quests-query-options.js +1 -1
- package/dist/browser/modules/quests/queries/index.js +1 -1
- package/dist/browser/modules/resource-credits/index.js +1 -1
- package/dist/browser/modules/resource-credits/queries/get-account-rc-query-options.js +1 -1
- package/dist/browser/modules/resource-credits/queries/get-rc-resource-params-query-options.js +1 -1
- package/dist/browser/modules/resource-credits/queries/get-rc-stats-query-options.js +1 -1
- package/dist/browser/modules/resource-credits/queries/index.js +1 -1
- package/dist/browser/modules/resource-credits/types/index.js +1 -1
- package/dist/browser/modules/resource-credits/utils/estimate-rc-precheck.js +1 -1
- package/dist/browser/modules/resource-credits/utils/index.js +1 -1
- package/dist/browser/modules/search/dmca.js +1 -1
- package/dist/browser/modules/search/index.js +1 -1
- package/dist/browser/modules/search/parse-json-response.js +1 -1
- package/dist/browser/modules/search/queries/get-search-account-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-api-infinite-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-path-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-search-topics-query-options.js +1 -1
- package/dist/browser/modules/search/queries/get-similar-entries-query-options.js +1 -1
- package/dist/browser/modules/search/queries/index.js +1 -1
- package/dist/browser/modules/search/requests.js +1 -1
- package/dist/browser/modules/support/index.js +1 -1
- package/dist/browser/modules/support/mutations/index.js +1 -1
- package/dist/browser/modules/support/mutations/update-support-settings.js +1 -1
- package/dist/browser/modules/support/queries/get-support-settings-query-options.js +1 -1
- package/dist/browser/modules/support/queries/index.js +1 -1
- package/dist/browser/modules/wallet/consts/hive-account-operation-groups.js +1 -1
- package/dist/browser/modules/wallet/consts/hive-operation-list.js +1 -1
- package/dist/browser/modules/wallet/consts/hive-operation-orders.js +1 -1
- package/dist/browser/modules/wallet/consts/index.js +1 -1
- package/dist/browser/modules/wallet/index.js +1 -1
- package/dist/browser/modules/wallet/mutations/index.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-claim-engine-rewards.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-claim-interest.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-claim-rewards.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-convert.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-delegate-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-delegate-rc.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-delegate-vesting-shares.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-engine-market-order.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-set-withdraw-vesting-route.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-stake-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-from-savings.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-point.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-to-savings.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer-to-vesting.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-transfer.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-undelegate-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-unstake-engine-token.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-wallet-operation.js +1 -1
- package/dist/browser/modules/wallet/mutations/use-withdraw-vesting.js +1 -1
- package/dist/browser/modules/wallet/queries/get-account-delegations-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-account-wallet-asset-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-collateralized-conversion-requests-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-conversion-requests-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hbd-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hbd-asset-transactions-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-asset-metric-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-asset-transactions-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-asset-withdrawal-routes-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-power-asset-general-info-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-power-asset-transactions-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-power-delegates-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-hive-power-delegatings-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-incoming-rc-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-open-orders-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-outgoing-rc-delegations-infinite-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-portfolio-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-received-vesting-shares-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-recurrent-transfers-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-savings-withdraw-from-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-vesting-delegation-expirations-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-vesting-delegations-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/get-withdraw-routes-query-options.js +1 -1
- package/dist/browser/modules/wallet/queries/index.js +1 -1
- package/dist/browser/modules/wallet/types/index.js +1 -1
- package/dist/browser/modules/witnesses/index.js +1 -1
- package/dist/browser/modules/witnesses/mutations/index.js +1 -1
- package/dist/browser/modules/witnesses/mutations/use-witness-proxy.js +1 -1
- package/dist/browser/modules/witnesses/mutations/use-witness-vote.js +1 -1
- package/dist/browser/modules/witnesses/queries/get-witnesses-query-options.js +1 -1
- package/dist/browser/modules/witnesses/queries/index.js +1 -1
- package/dist/node/hive.cjs +2 -2
- package/dist/node/hive.cjs.map +1 -1
- package/dist/node/hive.mjs +2 -2
- package/dist/node/hive.mjs.map +1 -1
- package/dist/node/index.cjs +3 -3
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.mjs +3 -3
- package/dist/node/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/browser/chunk-ASC4EO7F.js +0 -2
- package/dist/browser/chunk-BW2W5TFS.js +0 -2
- package/dist/browser/chunk-BW2W5TFS.js.map +0 -1
- package/dist/browser/chunk-DEIPCKOR.js +0 -2
- package/dist/browser/chunk-E6WHRKBG.js +0 -2
- package/dist/browser/chunk-E6WHRKBG.js.map +0 -1
- package/dist/browser/chunk-F54NXXT5.js +0 -2
- package/dist/browser/chunk-FWF6R6PS.js +0 -2
- package/dist/browser/chunk-HEILHNSR.js.map +0 -1
- package/dist/browser/chunk-K2DAN37J.js +0 -2
- package/dist/browser/chunk-LE5F6EJJ.js +0 -2
- package/dist/browser/chunk-LNZWA6U7.js +0 -2
- package/dist/browser/chunk-PAANFIPH.js +0 -2
- package/dist/browser/chunk-PAANFIPH.js.map +0 -1
- package/dist/browser/chunk-PHNYLTEH.js +0 -2
- package/dist/browser/chunk-QG7NMNGH.js +0 -2
- package/dist/browser/chunk-QLC3O4HK.js +0 -2
- package/dist/browser/chunk-SQZKXKLW.js +0 -2
- package/dist/browser/chunk-UXF4JZOD.js.map +0 -1
- package/dist/browser/chunk-VYGYMSIX.js +0 -2
- package/dist/browser/chunk-Z3KK2DLK.js +0 -2
- package/dist/browser/chunk-Z3KK2DLK.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hive-tx/Transaction.ts"],"names":["chainId","hexToBytes","config","BLOCK_SIZE_RESERVE","MIN_BLOCK_SIZE_LIMIT","MAX_BLOCK_SIZE","MIN_TRANSACTION_SIZE_LIMIT","SIGNATURE_SIZE","TransactionTooLargeError","size","limit","__publicField","TAPOS_DEPTH","getTransactionReference","props","callRPC","refNum","refId","previous","bytes","Transaction","_Transaction","options","expiration","reference","expirationIso","operationName","operationBody","keys","digest","txId","key","signature","checkStatus","callRPCBroadcast","e","RPCError","maxPollAttempts","sleep","status","i","transactionData","bytesToHex","sha256","extraSignatures","signatures","countBytes","n","voted","buffer","ByteBuffer","temp","Serializer","cause"],"mappings":"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","file":"chunk-IMCYKBDV.js","sourcesContent":["import { bytesToHex, hexToBytes } from '@noble/hashes/utils.js'\nimport { PrivateKey } from './helpers/PrivateKey'\nimport {\n OperationName,\n OperationBody,\n TransactionType,\n TransactionStatus,\n BroadcastResult\n} from './types'\nimport { ByteBuffer } from './helpers/ByteBuffer'\nimport { Serializer } from './helpers/serializer'\nimport { sha256 } from '@noble/hashes/sha2.js'\nimport { config } from './config'\nimport { callRPC, callRPCBroadcast, RPCError } from './helpers/call'\nimport { DigestData } from './types'\nimport { sleep } from './helpers/sleep'\n\nconst chainId = hexToBytes(config.chain_id)\n\n/** hived rejects a signed transaction larger than `maximum_block_size - 256` (database.cpp). */\nconst BLOCK_SIZE_RESERVE = 256\n\n/**\n * Consensus bounds on the witness-voted maximum_block_size\n * (HIVE_MIN_BLOCK_SIZE_LIMIT and HIVE_MAX_BLOCK_SIZE in hived's config.hpp).\n */\nconst MIN_BLOCK_SIZE_LIMIT = 64 * 1024\nconst MAX_BLOCK_SIZE = 2 * 1024 * 1024\n\n/**\n * Size every transaction may have whatever witnesses vote. Only a larger one\n * needs the live maximum_block_size to be judged.\n */\nexport const MIN_TRANSACTION_SIZE_LIMIT = MIN_BLOCK_SIZE_LIMIT - BLOCK_SIZE_RESERVE\n\n/** Serialized bytes one signature adds (compact secp256k1 signature). */\nconst SIGNATURE_SIZE = 65\n\n/** Thrown before signing when a transaction can never be accepted by the chain. */\nexport class TransactionTooLargeError extends Error {\n size: number\n limit: number\n constructor(size: number, limit: number) {\n super(`Transaction too large: ${size} bytes. Hive allows up to ${limit} bytes.`)\n this.name = 'TransactionTooLargeError'\n this.size = size\n this.limit = limit\n }\n}\n\n/**\n * How many blocks behind head a transaction references (TaPoS). The node a\n * broadcast lands on is often not the one that reported the head, and one a\n * block or two behind rejects a reference to a block it has not seen with\n * \"transaction tapos exception\". Three back is a block every live node has.\n */\nconst TAPOS_DEPTH = 3\n\nexport interface TransactionReference {\n ref_block_num: number\n ref_block_prefix: number\n /** The witness-voted block size from the same properties, see Transaction.maximumBlockSize. */\n maximum_block_size?: number\n}\n\n/**\n * The block reference (ref_block_num / ref_block_prefix) for a new transaction:\n * a block TAPOS_DEPTH behind head, whose id comes from the header of the block\n * after it (`previous`). If that header is missing or does not name the\n * expected block, it falls back to the head block, as before.\n */\nexport const getTransactionReference = async (): Promise<TransactionReference> => {\n const props = await callRPC('condenser_api.get_dynamic_global_properties', [])\n let refNum: number = props.head_block_number\n let refId: string = props.head_block_id\n try {\n // Short budget: a slow answer here only delays the broadcast it is for.\n const header = await callRPC('condenser_api.get_block_header', [refNum - TAPOS_DEPTH + 1], 3000, 1)\n const previous = header?.previous\n // A block id starts with its block number, big-endian.\n if (\n typeof previous === 'string' &&\n /^[0-9a-f]{40}$/.test(previous) &&\n parseInt(previous.slice(0, 8), 16) === refNum - TAPOS_DEPTH\n ) {\n refNum -= TAPOS_DEPTH\n refId = previous\n }\n } catch {\n // Keep the head block; the transaction is only more likely to hit a lagging node.\n }\n const bytes = hexToBytes(refId)\n return {\n ref_block_num: refNum & 0xffff,\n ref_block_prefix: Number(new Uint32Array(bytes.buffer, bytes.byteOffset + 4, 1)[0]),\n maximum_block_size: props.maximum_block_size\n }\n}\n\ninterface TransactionOptions {\n transaction?: TransactionType | Transaction\n /**\n * Transaction expiration in milliseconds (ms) - max 86400000 (24 hours)\n * @default 60_000\n */\n expiration?: number\n}\n\nexport class Transaction {\n transaction?: TransactionType\n\n expiration: number = 60_000\n\n /**\n * The chain's witness-voted maximum_block_size, which sets the largest\n * transaction hived accepts. Recorded from the dynamic global properties\n * fetched when the transaction is created; set it yourself for a\n * transaction built elsewhere, or only the protocol ceiling is enforced.\n */\n maximumBlockSize?: number\n\n private txId?: string\n\n constructor(options?: TransactionOptions) {\n if (options?.transaction) {\n if (options.transaction instanceof Transaction) {\n this.transaction = options.transaction.transaction\n this.expiration = options.transaction.expiration\n this.maximumBlockSize = options.transaction.maximumBlockSize\n } else {\n this.transaction = options.transaction\n }\n // A transaction built externally (e.g. from a hive-uri signing request)\n // may omit the `signatures` array. sign(), addSignature() and broadcast()\n // all assume it exists, so normalize it here to avoid\n // \"Cannot read property 'push' of undefined\" on sign.\n if (this.transaction && !Array.isArray(this.transaction.signatures)) {\n this.transaction.signatures = []\n }\n this.txId = this.digest().txId\n }\n if (options?.expiration) {\n this.expiration = options.expiration\n }\n }\n\n /**\n * Adds an operation to the transaction. If no transaction exists, creates one first.\n * @template O Operation name type for type safety\n * @param operationName The name/type of the operation to add (e.g., 'transfer', 'vote', 'comment')\n * @param operationBody The operation data/body for the specified operation type\n * @returns Promise that resolves when the operation is added\n * @throws Error if transaction creation fails or global properties cannot be retrieved\n */\n async addOperation<O extends OperationName>(\n operationName: O,\n operationBody: OperationBody<O>\n ): Promise<void> {\n if (!this.transaction) {\n await this.createTransaction(this.expiration)\n }\n this.transaction!.operations.push([operationName, operationBody])\n }\n\n /**\n * Signs the transaction with the provided key(s), supporting both single and multi-signature transactions.\n * For multi-signature, you can sign with all keys at once or sign individually by calling this method multiple times.\n * @param keys Single PrivateKey or array of PrivateKeys to sign the transaction with\n * @returns The signed transaction\n * @throws Error if no transaction exists to sign\n */\n sign(keys: PrivateKey | PrivateKey[]): TransactionType {\n if (!this.transaction) {\n throw new Error('First create a transaction by .addOperation()')\n }\n if (this.transaction) {\n const { digest, txId } = this.digest()\n if (!Array.isArray(keys)) {\n keys = [keys]\n }\n this.assertSize(keys.length)\n for (const key of keys) {\n const signature = key.sign(digest)\n this.transaction.signatures.push(signature.customToString())\n }\n this.txId = txId\n return this.transaction\n } else {\n throw new Error('No transaction to sign')\n }\n }\n\n /**\n * Broadcasts the signed transaction to the Hive network.\n * Automatically handles retries and duplicate transaction detection.\n * @param checkStatus By default (false) the transaction is not guaranteed to be included in a block.\n * For example the transaction can expire while waiting in mempool.\n * If you pass true here, the function will wait for the transaction to be either included or dropped\n * before returning a result.\n * @returns Promise resolving to broadcast result\n * @throws Error if no transaction exists or transaction is not signed or transaction got rejected\n */\n async broadcast(checkStatus = false): Promise<BroadcastResult> {\n if (!this.transaction) {\n throw new Error(\n 'Attempted to broadcast an empty transaction. Add operations by .addOperation()'\n )\n }\n if (this.transaction.signatures.length === 0) {\n throw new Error(\n 'Attempted to broadcast a transaction with no signatures. Sign using .sign(keys)'\n )\n }\n try {\n // A node that timed out may have taken the transaction; the next one then\n // answers \"Duplicate transaction\", which is ignored below, so failing over\n // on a timeout is safe here, as long as the next attempt can finish (one\n // broadcast timeout plus 5 s of margin) before the transaction expires.\n await callRPCBroadcast('condenser_api.broadcast_transaction', [this.transaction], undefined, undefined, {\n failoverOnTimeoutUntil:\n Date.parse(this.transaction.expiration + 'Z') - config.broadcastTimeout - 5_000\n })\n } catch (e) {\n if (e instanceof RPCError && e.message.includes('Duplicate transaction check failed')) {\n // ignore duplicate transaction error as this can happen when we retry the broadcast\n } else {\n throw e\n }\n }\n if (!this.txId) {\n this.txId = this.digest().txId\n }\n if (!checkStatus) {\n return { tx_id: this.txId, status: 'unknown' }\n }\n // Poll until the transaction reaches a final state or max attempts exceeded.\n // With 60 attempts: delays grow from 1.3s to 19s, total wait ~10 minutes.\n const maxPollAttempts = 60\n await sleep(1000)\n let status = await this.checkStatus()\n let i = 1\n while (\n status?.status !== 'within_irreversible_block' &&\n status?.status !== 'expired_irreversible' &&\n status?.status !== 'too_old' &&\n i < maxPollAttempts\n ) {\n await sleep(1000 + i * 300)\n status = await this.checkStatus()\n i++\n }\n return {\n tx_id: this.txId,\n status: (status?.status ?? 'unknown') as BroadcastResult['status']\n }\n }\n\n /**\n * Returns the transaction digest containing the transaction ID and hash.\n * The digest can be used to verify signatures and for transaction identification.\n * @returns DigestData containing transaction ID and hash\n * @throws Error if no transaction exists\n */\n digest(): DigestData {\n if (!this.transaction) {\n throw new Error('First create a transaction by .addOperation()')\n }\n const transactionData = this.serialize()\n const txId = bytesToHex(sha256(transactionData)).slice(0, 40)\n const digest = sha256(new Uint8Array([...chainId, ...transactionData]))\n return { digest, txId }\n }\n\n /**\n * Serialized size of the transaction once it carries its current signatures\n * plus `extraSignatures` more. This is the size hived checks against\n * `maximum_block_size - 256`.\n */\n size(extraSignatures = 0): number {\n const signatures = (this.transaction?.signatures.length ?? 0) + extraSignatures\n // The signature count is a varint: one byte per 7 bits.\n let countBytes = 1\n for (let n = signatures; n >= 128; n >>>= 7) countBytes++\n return this.serialize().length + countBytes + signatures * SIGNATURE_SIZE\n }\n\n /**\n * Throws TransactionTooLargeError when the transaction, signed with\n * `extraSignatures` more signatures, would exceed what hived accepts under\n * `maximumBlockSize`, or under the largest block size the protocol allows\n * when it is unknown. Such a transaction is rejected by every node, so it\n * must never be signed.\n */\n assertSize(extraSignatures = 0): void {\n const size = this.size(extraSignatures)\n // A value outside the consensus bounds cannot be the chain's; ignore it.\n const voted = Number(this.maximumBlockSize)\n const blockSize =\n voted >= MIN_BLOCK_SIZE_LIMIT && voted <= MAX_BLOCK_SIZE ? voted : MAX_BLOCK_SIZE\n const limit = blockSize - BLOCK_SIZE_RESERVE\n if (size > limit) {\n throw new TransactionTooLargeError(size, limit)\n }\n }\n\n private serialize(): Uint8Array {\n if (!this.transaction) {\n throw new Error('First create a transaction by .addOperation()')\n }\n const buffer = new ByteBuffer(ByteBuffer.DEFAULT_CAPACITY, ByteBuffer.LITTLE_ENDIAN)\n const temp = { ...this.transaction }\n try {\n Serializer.Transaction(buffer, temp)\n } catch (cause) {\n throw new Error('Unable to serialize transaction: ' + cause)\n }\n buffer.flip()\n return new Uint8Array(buffer.toBuffer())\n }\n\n /**\n * Adds a signature to an already created transaction. Useful when signing with external tools.\n * Multiple signatures can be added one at a time for multi-signature transactions.\n * @param signature The signature string in hex format (must be exactly 130 characters)\n * @returns The transaction with the added signature\n * @throws Error if no transaction exists or signature format is invalid\n */\n addSignature(signature: string): TransactionType {\n if (!this.transaction) {\n throw new Error('First create a transaction by .create(operations)')\n }\n if (typeof signature !== 'string') {\n throw new Error('Signature must be string')\n }\n if (signature.length !== 130) {\n throw new Error('Signature must be 130 characters long')\n }\n this.transaction.signatures.push(signature)\n return this.transaction\n }\n\n /** Get status of this transaction. Usually called internally after broadcasting. */\n async checkStatus(): Promise<TransactionStatus> {\n if (!this.txId) {\n this.txId = this.digest().txId\n }\n return callRPC('transaction_status_api.find_transaction', {\n transaction_id: this.txId,\n expiration: this.transaction?.expiration\n })\n }\n\n /**\n * Creates the transaction structure and initializes it with blockchain data.\n * Retrieves current head block information and sets up reference block data.\n * @private\n * @param expiration Transaction expiration in milliseconds\n */\n private createTransaction = async (expiration: number) => {\n const reference = await getTransactionReference()\n const expirationIso = new Date(Date.now() + expiration).toISOString().slice(0, -5)\n this.maximumBlockSize = reference.maximum_block_size\n this.transaction = {\n expiration: expirationIso,\n extensions: [],\n operations: [],\n ref_block_num: reference.ref_block_num,\n ref_block_prefix: reference.ref_block_prefix,\n signatures: []\n }\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {f}from'./chunk-AEIA5MPL.js';import {b}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {f}from'./chunk-AEIA5MPL.js';import {b}from'./chunk-J2HM6MWA.js';import {b as b$1}from'./chunk-POHYQBLL.js';import {a}from'./chunk-WTHEQ3M5.js';var y=5e3,o=new Map;function I(e,f$1,m){return b(["wallet","claim-rewards"],e,t=>[f(e,t.rewardHive,t.rewardHbd,t.rewardVests)],()=>{let t=e??"__anonymous__",u=[a.accounts.full(e),["ecency-wallets","asset-info",e],["wallet","portfolio","v2",e],a.assets.hiveGeneralInfo(e),a.assets.hbdGeneralInfo(e),a.assets.hivePowerGeneralInfo(e)],l=o.get(t);l&&(clearTimeout(l),o.delete(t));let w=setTimeout(async()=>{try{let i=b$1(),a=(await Promise.allSettled(u.map(s=>i.invalidateQueries({queryKey:s})))).filter(s=>s.status==="rejected");a.length>0&&console.error("[SDK][Wallet][useClaimRewards] delayed invalidation rejected",{username:e,rejectedCount:a.length,rejected:a});}catch(i){console.error("[SDK][Wallet][useClaimRewards] delayed invalidation failed",{username:e,error:i});}finally{o.delete(t);}},y);o.set(t,w);},f$1,"posting",{broadcastMode:m})}export{I as a};//# sourceMappingURL=chunk-IOGRMGRX.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-IOGRMGRX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/wallet/mutations/use-claim-rewards.ts"],"names":["CLAIM_REWARDS_INVALIDATION_DELAY_MS","pendingInvalidationTimers","useClaimRewards","username","auth","broadcastMode","useBroadcastMutation","payload","buildClaimRewardBalanceOp","timerKey","keysToInvalidate","QueryKeys","existingTimer","timer","qc","getQueryClient","rejected","key","result","error"],"mappings":"uJAYA,IAAMA,EAAsC,GAAA,CACtCC,CAAAA,CAA4B,IAAI,GAAA,CAE/B,SAASC,CAAAA,CAAgBC,CAAAA,CAA8BC,GAAAA,CAC5DC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,QAAA,CAAU,eAAe,EAC1BH,CAAAA,CACCI,CAAAA,EAAY,CACXC,CAAAA,CAA0BL,EAAWI,CAAAA,CAAQ,UAAA,CAAYA,CAAAA,CAAQ,SAAA,CAAWA,EAAQ,WAAW,CACjG,CAAA,CACA,IAAM,CACJ,IAAME,CAAAA,CAAWN,GAAY,eAAA,CACvBO,CAAAA,CAAmB,CACvBC,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKR,CAAQ,EAChC,CAAC,gBAAA,CAAkB,YAAA,CAAcA,CAAQ,EACzC,CAAC,QAAA,CAAU,WAAA,CAAa,IAAA,CAAMA,CAAQ,CAAA,CACtCQ,CAAAA,CAAU,OAAO,eAAA,CAAgBR,CAAS,EAC1CQ,CAAAA,CAAU,MAAA,CAAO,cAAA,CAAeR,CAAS,EACzCQ,CAAAA,CAAU,MAAA,CAAO,qBAAqBR,CAAS,CACjD,EAIMS,CAAAA,CAAgBX,CAAAA,CAA0B,GAAA,CAAIQ,CAAQ,EACxDG,CAAAA,GACF,YAAA,CAAaA,CAAa,CAAA,CAC1BX,CAAAA,CAA0B,OAAOQ,CAAQ,CAAA,CAAA,CAG3C,IAAMI,CAAAA,CAAQ,WAAW,SAAY,CACnC,GAAI,CACF,IAAMC,CAAAA,CAAKC,GAAAA,EAAe,CAIpBC,CAAAA,CAAAA,CAHU,MAAM,OAAA,CAAQ,UAAA,CAC5BN,EAAiB,GAAA,CAAKO,CAAAA,EAAQH,EAAG,iBAAA,CAAkB,CAAE,QAAA,CAAUG,CAAI,CAAC,CAAC,CACvE,GACyB,MAAA,CAAQC,CAAAA,EAAWA,EAAO,MAAA,GAAW,UAAU,CAAA,CACpEF,CAAAA,CAAS,OAAS,CAAA,EACpB,OAAA,CAAQ,MAAM,8DAAA,CAAgE,CAC5E,SAAAb,CAAAA,CACA,aAAA,CAAea,CAAAA,CAAS,MAAA,CACxB,SAAAA,CACF,CAAC,EAEL,CAAA,MAASG,EAAO,CACd,OAAA,CAAQ,KAAA,CAAM,4DAAA,CAA8D,CAC1E,QAAA,CAAAhB,CAAAA,CACA,MAAAgB,CACF,CAAC,EACH,CAAA,OAAE,CACAlB,CAAAA,CAA0B,MAAA,CAAOQ,CAAQ,EAC3C,CACF,EAAGT,CAAmC,CAAA,CAEtCC,EAA0B,GAAA,CAAIQ,CAAAA,CAAUI,CAAK,EAC/C,EACAT,GAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/wallet/mutations/use-claim-rewards.ts"],"names":["CLAIM_REWARDS_INVALIDATION_DELAY_MS","pendingInvalidationTimers","useClaimRewards","username","auth","broadcastMode","useBroadcastMutation","payload","buildClaimRewardBalanceOp","timerKey","keysToInvalidate","QueryKeys","existingTimer","timer","qc","getQueryClient","rejected","key","result","error"],"mappings":"uJAYA,IAAMA,EAAsC,GAAA,CACtCC,CAAAA,CAA4B,IAAI,GAAA,CAE/B,SAASC,CAAAA,CAAgBC,CAAAA,CAA8BC,GAAAA,CAC5DC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,QAAA,CAAU,eAAe,EAC1BH,CAAAA,CACCI,CAAAA,EAAY,CACXC,CAAAA,CAA0BL,EAAWI,CAAAA,CAAQ,UAAA,CAAYA,CAAAA,CAAQ,SAAA,CAAWA,EAAQ,WAAW,CACjG,CAAA,CACA,IAAM,CACJ,IAAME,CAAAA,CAAWN,GAAY,eAAA,CACvBO,CAAAA,CAAmB,CACvBC,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKR,CAAQ,EAChC,CAAC,gBAAA,CAAkB,YAAA,CAAcA,CAAQ,EACzC,CAAC,QAAA,CAAU,WAAA,CAAa,IAAA,CAAMA,CAAQ,CAAA,CACtCQ,CAAAA,CAAU,OAAO,eAAA,CAAgBR,CAAS,EAC1CQ,CAAAA,CAAU,MAAA,CAAO,cAAA,CAAeR,CAAS,EACzCQ,CAAAA,CAAU,MAAA,CAAO,qBAAqBR,CAAS,CACjD,EAIMS,CAAAA,CAAgBX,CAAAA,CAA0B,GAAA,CAAIQ,CAAQ,EACxDG,CAAAA,GACF,YAAA,CAAaA,CAAa,CAAA,CAC1BX,CAAAA,CAA0B,OAAOQ,CAAQ,CAAA,CAAA,CAG3C,IAAMI,CAAAA,CAAQ,WAAW,SAAY,CACnC,GAAI,CACF,IAAMC,CAAAA,CAAKC,GAAAA,EAAe,CAIpBC,CAAAA,CAAAA,CAHU,MAAM,OAAA,CAAQ,UAAA,CAC5BN,EAAiB,GAAA,CAAKO,CAAAA,EAAQH,EAAG,iBAAA,CAAkB,CAAE,QAAA,CAAUG,CAAI,CAAC,CAAC,CACvE,GACyB,MAAA,CAAQC,CAAAA,EAAWA,EAAO,MAAA,GAAW,UAAU,CAAA,CACpEF,CAAAA,CAAS,OAAS,CAAA,EACpB,OAAA,CAAQ,MAAM,8DAAA,CAAgE,CAC5E,SAAAb,CAAAA,CACA,aAAA,CAAea,CAAAA,CAAS,MAAA,CACxB,SAAAA,CACF,CAAC,EAEL,CAAA,MAASG,EAAO,CACd,OAAA,CAAQ,KAAA,CAAM,4DAAA,CAA8D,CAC1E,QAAA,CAAAhB,CAAAA,CACA,MAAAgB,CACF,CAAC,EACH,CAAA,OAAE,CACAlB,CAAAA,CAA0B,MAAA,CAAOQ,CAAQ,EAC3C,CACF,EAAGT,CAAmC,CAAA,CAEtCC,EAA0B,GAAA,CAAIQ,CAAAA,CAAUI,CAAK,EAC/C,EACAT,GAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-IOGRMGRX.js","sourcesContent":["import { useBroadcastMutation } from \"@/modules/core/mutations\";\nimport type { BroadcastMode } from \"@/modules/core/mutations\";\nimport { QueryKeys, getQueryClient } from \"@/modules/core\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { buildClaimRewardBalanceOp } from \"@/modules/operations/builders\";\n\nexport interface ClaimRewardsPayload {\n rewardHive: string;\n rewardHbd: string;\n rewardVests: string;\n}\n\nconst CLAIM_REWARDS_INVALIDATION_DELAY_MS = 5000;\nconst pendingInvalidationTimers = new Map<string, ReturnType<typeof setTimeout>>();\n\nexport function useClaimRewards(username: string | undefined, auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<ClaimRewardsPayload>(\n [\"wallet\", \"claim-rewards\"],\n username,\n (payload) => [\n buildClaimRewardBalanceOp(username!, payload.rewardHive, payload.rewardHbd, payload.rewardVests)\n ],\n () => {\n const timerKey = username ?? \"__anonymous__\";\n const keysToInvalidate = [\n QueryKeys.accounts.full(username),\n [\"ecency-wallets\", \"asset-info\", username],\n [\"wallet\", \"portfolio\", \"v2\", username],\n QueryKeys.assets.hiveGeneralInfo(username!),\n QueryKeys.assets.hbdGeneralInfo(username!),\n QueryKeys.assets.hivePowerGeneralInfo(username!),\n ];\n\n // Delay invalidation to allow blockchain to propagate the transaction.\n // Immediate invalidation would fetch stale (pre-confirmation) data.\n const existingTimer = pendingInvalidationTimers.get(timerKey);\n if (existingTimer) {\n clearTimeout(existingTimer);\n pendingInvalidationTimers.delete(timerKey);\n }\n\n const timer = setTimeout(async () => {\n try {\n const qc = getQueryClient();\n const results = await Promise.allSettled(\n keysToInvalidate.map((key) => qc.invalidateQueries({ queryKey: key }))\n );\n const rejected = results.filter((result) => result.status === \"rejected\");\n if (rejected.length > 0) {\n console.error(\"[SDK][Wallet][useClaimRewards] delayed invalidation rejected\", {\n username,\n rejectedCount: rejected.length,\n rejected\n });\n }\n } catch (error) {\n console.error(\"[SDK][Wallet][useClaimRewards] delayed invalidation failed\", {\n username,\n error\n });\n } finally {\n pendingInvalidationTimers.delete(timerKey);\n }\n }, CLAIM_REWARDS_INVALIDATION_DELAY_MS);\n\n pendingInvalidationTimers.set(timerKey, timer);\n },\n auth,\n 'posting',\n { broadcastMode }\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-WTHEQ3M5.js';import {j}from'./chunk-RAWKN3XW.js';import {queryOptions,infiniteQueryOptions}from'@tanstack/react-query';var n=100;async function u(s,r){return await j("bridge.list_subscribers",{community:s,limit:n,...r?{last:r}:{}})??[]}function p(s){return queryOptions({queryKey:a.communities.subscribers(s),queryFn:async()=>u(s,null),staleTime:6e4})}function g(s){return infiniteQueryOptions({queryKey:a.communities.subscribersInfinite(s),initialPageParam:null,queryFn:async({pageParam:r})=>u(s,r),getNextPageParam:r=>r?.length>=n?r[r.length-1]?.[0]??null:null,staleTime:6e4})}export{n as a,p as b,g as c};//# sourceMappingURL=chunk-IVLVYIWT.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-IVLVYIWT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/communities/queries/get-community-subscribers-query-options.ts"],"names":["SUBSCRIBERS_PAGE_SIZE","fetchSubscribersPage","communityName","last","callRPC","getCommunitySubscribersQueryOptions","queryOptions","QueryKeys","getCommunitySubscribersInfiniteQueryOptions","infiniteQueryOptions","pageParam","lastPage"],"mappings":"8IAaO,IAAMA,CAAAA,CAAwB,IAYrC,eAAeC,CAAAA,CACbC,CAAAA,CACAC,EAC0B,CAM1B,OALiB,MAAMC,CAAAA,CAAQ,yBAAA,CAA2B,CACxD,SAAA,CAAWF,CAAAA,CACX,KAAA,CAAOF,CAAAA,CACP,GAAIG,CAAAA,CAAO,CAAE,IAAA,CAAAA,CAAK,EAAI,EACxB,CAAC,CAAA,EAC6C,EAChD,CAYO,SAASE,CAAAA,CAAoCH,EAAuB,CACzE,OAAOI,aAAa,CAClB,QAAA,CAAUC,EAAU,WAAA,CAAY,WAAA,CAAYL,CAAa,CAAA,CACzD,OAAA,CAAS,SAAYD,EAAqBC,CAAAA,CAAe,IAAI,EAC7D,SAAA,CAAW,GACb,CAAC,CACH,CAOO,SAASM,CAAAA,CACdN,CAAAA,CACA,CACA,OAAOO,oBAAAA,CAML,CACA,SAAUF,CAAAA,CAAU,WAAA,CAAY,oBAAoBL,CAAa,CAAA,CACjE,gBAAA,CAAkB,IAAA,CAClB,OAAA,CAAS,MAAO,CAAE,SAAA,CAAAQ,CAAU,IAC1BT,CAAAA,CAAqBC,CAAAA,CAAeQ,CAAS,CAAA,CAG/C,gBAAA,CAAmBC,CAAAA,EACjBA,CAAAA,EAAU,MAAA,EAAUX,CAAAA,CAChBW,EAASA,CAAAA,CAAS,MAAA,CAAS,CAAC,CAAA,GAAI,CAAC,CAAA,EAAK,KACtC,IAAA,CACN,SAAA,CAAW,GACb,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/communities/queries/get-community-subscribers-query-options.ts"],"names":["SUBSCRIBERS_PAGE_SIZE","fetchSubscribersPage","communityName","last","callRPC","getCommunitySubscribersQueryOptions","queryOptions","QueryKeys","getCommunitySubscribersInfiniteQueryOptions","infiniteQueryOptions","pageParam","lastPage"],"mappings":"8IAaO,IAAMA,CAAAA,CAAwB,IAYrC,eAAeC,CAAAA,CACbC,CAAAA,CACAC,EAC0B,CAM1B,OALiB,MAAMC,CAAAA,CAAQ,yBAAA,CAA2B,CACxD,SAAA,CAAWF,CAAAA,CACX,KAAA,CAAOF,CAAAA,CACP,GAAIG,CAAAA,CAAO,CAAE,IAAA,CAAAA,CAAK,EAAI,EACxB,CAAC,CAAA,EAC6C,EAChD,CAYO,SAASE,CAAAA,CAAoCH,EAAuB,CACzE,OAAOI,aAAa,CAClB,QAAA,CAAUC,EAAU,WAAA,CAAY,WAAA,CAAYL,CAAa,CAAA,CACzD,OAAA,CAAS,SAAYD,EAAqBC,CAAAA,CAAe,IAAI,EAC7D,SAAA,CAAW,GACb,CAAC,CACH,CAOO,SAASM,CAAAA,CACdN,CAAAA,CACA,CACA,OAAOO,oBAAAA,CAML,CACA,SAAUF,CAAAA,CAAU,WAAA,CAAY,oBAAoBL,CAAa,CAAA,CACjE,gBAAA,CAAkB,IAAA,CAClB,OAAA,CAAS,MAAO,CAAE,SAAA,CAAAQ,CAAU,IAC1BT,CAAAA,CAAqBC,CAAAA,CAAeQ,CAAS,CAAA,CAG/C,gBAAA,CAAmBC,CAAAA,EACjBA,CAAAA,EAAU,MAAA,EAAUX,CAAAA,CAChBW,EAASA,CAAAA,CAAS,MAAA,CAAS,CAAC,CAAA,GAAI,CAAC,CAAA,EAAK,KACtC,IAAA,CACN,SAAA,CAAW,GACb,CAAC,CACH","file":"chunk-IVLVYIWT.js","sourcesContent":["import {\n InfiniteData,\n infiniteQueryOptions,\n queryOptions\n} from \"@tanstack/react-query\";\nimport { QueryKeys } from \"@/modules/core\";\nimport { Subscription } from \"../types\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\n\n/**\n * hivemind caps `bridge.list_subscribers` at 100 rows per call, regardless of a\n * larger requested limit.\n */\nexport const SUBSCRIBERS_PAGE_SIZE = 100;\n\ntype SubscribersPage = Subscription[];\ntype SubscribersCursor = string | null;\n\n/**\n * Fetches one page of subscribers.\n *\n * `last` is omitted on the first page rather than passed as an empty string:\n * hivemind reads `\"\"` as a real cursor positioned before the first account and\n * returns zero rows.\n */\nasync function fetchSubscribersPage(\n communityName: string,\n last: SubscribersCursor\n): Promise<SubscribersPage> {\n const response = await callRPC(\"bridge.list_subscribers\", {\n community: communityName,\n limit: SUBSCRIBERS_PAGE_SIZE,\n ...(last ? { last } : {})\n });\n return (response as Subscription[] | null) ?? [];\n}\n\n/**\n * Get the first page of subscribers for a community.\n *\n * @deprecated Returns at most {@link SUBSCRIBERS_PAGE_SIZE} subscribers, which\n * for most communities is a small fraction of the total while looking like the\n * complete list. Prefer {@link getCommunitySubscribersInfiniteQueryOptions}\n * unless a single page is genuinely all that is wanted.\n *\n * @param communityName - The community name (e.g., \"hive-123456\")\n */\nexport function getCommunitySubscribersQueryOptions(communityName: string) {\n return queryOptions({\n queryKey: QueryKeys.communities.subscribers(communityName),\n queryFn: async () => fetchSubscribersPage(communityName, null),\n staleTime: 60000\n });\n}\n\n/**\n * Get all subscribers for a community, paged with hivemind's `last` cursor.\n *\n * @param communityName - The community name (e.g., \"hive-123456\")\n */\nexport function getCommunitySubscribersInfiniteQueryOptions(\n communityName: string\n) {\n return infiniteQueryOptions<\n SubscribersPage,\n Error,\n InfiniteData<SubscribersPage, SubscribersCursor>,\n string[],\n SubscribersCursor\n >({\n queryKey: QueryKeys.communities.subscribersInfinite(communityName),\n initialPageParam: null as SubscribersCursor,\n queryFn: async ({ pageParam }: { pageParam: SubscribersCursor }) =>\n fetchSubscribersPage(communityName, pageParam),\n // The cursor is the previous page's last account name. A short page is the\n // end of the list.\n getNextPageParam: (lastPage: SubscribersPage): SubscribersCursor =>\n lastPage?.length >= SUBSCRIBERS_PAGE_SIZE\n ? lastPage[lastPage.length - 1]?.[0] ?? null\n : null,\n staleTime: 60000\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-WTHEQ3M5.js';import {j}from'./chunk-RAWKN3XW.js';import {queryOptions}from'@tanstack/react-query';var a=1e3,p=20;function y(t){return queryOptions({queryKey:a$1.accounts.mutedUsers(t),queryFn:async()=>{let n=[],o="";for(let s=0;s<p;s++){let r=await j("condenser_api.get_following",[t,o,"ignore",a]);if(!r?.length)break;let e=r.map(f=>f.following);if(e[0]===o&&(e=e.slice(1)),!e.length||(n.push(...e),r.length<a))break;o=e[e.length-1];}return n},enabled:!!t})}export{y as a};//# sourceMappingURL=chunk-IVMIGXLH.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-IVMIGXLH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/accounts/queries/get-muted-users-query-options.ts"],"names":["MUTED_USERS_PAGE_SIZE","MUTED_USERS_MAX_PAGES","getMutedUsersQueryOptions","username","queryOptions","QueryKeys","muted","start","page","response","callRPC","names","user"],"mappings":"gIAMA,IAAMA,EAAwB,GAAA,CAQxBC,CAAAA,CAAwB,GAiBvB,SAASC,CAAAA,CAA0BC,EAA8B,CACtE,OAAOC,aAAa,CAClB,QAAA,CAAUC,IAAU,QAAA,CAAS,UAAA,CAAWF,CAAS,CAAA,CACjD,OAAA,CAAS,SAAY,CACnB,IAAMG,CAAAA,CAAkB,EAAC,CACrBC,CAAAA,CAAQ,GAEZ,IAAA,IAASC,CAAAA,CAAO,CAAA,CAAGA,CAAAA,CAAOP,CAAAA,CAAuBO,CAAAA,EAAAA,CAAQ,CACvD,IAAMC,CAAAA,CAAY,MAAMC,CAAAA,CAAQ,6BAAA,CAA+B,CAC7DP,CAAAA,CACAI,CAAAA,CACA,QAAA,CACAP,CACF,CAAC,CAAA,CAED,GAAI,CAACS,CAAAA,EAAU,OACb,MAGF,IAAIE,EAAQF,CAAAA,CAAS,GAAA,CAAKG,CAAAA,EAASA,CAAAA,CAAK,SAAS,CAAA,CAgBjD,GAVID,CAAAA,CAAM,CAAC,IAAMJ,CAAAA,GACfI,CAAAA,CAAQA,EAAM,KAAA,CAAM,CAAC,CAAA,CAAA,CAGnB,CAACA,CAAAA,CAAM,MAAA,GAIXL,EAAM,IAAA,CAAK,GAAGK,CAAK,CAAA,CAEfF,CAAAA,CAAS,OAAST,CAAAA,CAAAA,CACpB,MAGFO,CAAAA,CAAQI,CAAAA,CAAMA,CAAAA,CAAM,MAAA,CAAS,CAAC,EAChC,CAEA,OAAOL,CACT,CAAA,CACA,QAAS,CAAC,CAACH,CACb,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/accounts/queries/get-muted-users-query-options.ts"],"names":["MUTED_USERS_PAGE_SIZE","MUTED_USERS_MAX_PAGES","getMutedUsersQueryOptions","username","queryOptions","QueryKeys","muted","start","page","response","callRPC","names","user"],"mappings":"gIAMA,IAAMA,EAAwB,GAAA,CAQxBC,CAAAA,CAAwB,GAiBvB,SAASC,CAAAA,CAA0BC,EAA8B,CACtE,OAAOC,aAAa,CAClB,QAAA,CAAUC,IAAU,QAAA,CAAS,UAAA,CAAWF,CAAS,CAAA,CACjD,OAAA,CAAS,SAAY,CACnB,IAAMG,CAAAA,CAAkB,EAAC,CACrBC,CAAAA,CAAQ,GAEZ,IAAA,IAASC,CAAAA,CAAO,CAAA,CAAGA,CAAAA,CAAOP,CAAAA,CAAuBO,CAAAA,EAAAA,CAAQ,CACvD,IAAMC,CAAAA,CAAY,MAAMC,CAAAA,CAAQ,6BAAA,CAA+B,CAC7DP,CAAAA,CACAI,CAAAA,CACA,QAAA,CACAP,CACF,CAAC,CAAA,CAED,GAAI,CAACS,CAAAA,EAAU,OACb,MAGF,IAAIE,EAAQF,CAAAA,CAAS,GAAA,CAAKG,CAAAA,EAASA,CAAAA,CAAK,SAAS,CAAA,CAgBjD,GAVID,CAAAA,CAAM,CAAC,IAAMJ,CAAAA,GACfI,CAAAA,CAAQA,EAAM,KAAA,CAAM,CAAC,CAAA,CAAA,CAGnB,CAACA,CAAAA,CAAM,MAAA,GAIXL,EAAM,IAAA,CAAK,GAAGK,CAAK,CAAA,CAEfF,CAAAA,CAAS,OAAST,CAAAA,CAAAA,CACpB,MAGFO,CAAAA,CAAQI,CAAAA,CAAMA,CAAAA,CAAM,MAAA,CAAS,CAAC,EAChC,CAEA,OAAOL,CACT,CAAA,CACA,QAAS,CAAC,CAACH,CACb,CAAC,CACH","file":"chunk-IVMIGXLH.js","sourcesContent":["import { queryOptions } from \"@tanstack/react-query\";\nimport { QueryKeys } from \"@/modules/core\";\nimport { Follow } from \"../types\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\n\n/** `condenser_api.get_following` caps a single response at 1000 rows. */\nconst MUTED_USERS_PAGE_SIZE = 1000;\n\n/**\n * Safety valve for the paging loop: 20 pages is 20k muted accounts, far past\n * any real mute list. Bounds the work if a node ever stops advancing the\n * cursor, so a malformed response degrades to a truncated list rather than an\n * endless request loop.\n */\nconst MUTED_USERS_MAX_PAGES = 20;\n\n/**\n * Get the full list of accounts a user has muted.\n *\n * Pages until the list is exhausted instead of taking the first N. That is\n * load-bearing: this result dims muted authors in feeds and collapses their\n * comments (`entry-list-item-muted-content`, `discussion-list`), so a truncated\n * list silently renders muted accounts as though they were never muted.\n *\n * Takes no limit, on purpose. `QueryKeys.accounts.mutedUsers` keys on the\n * username alone, so a limit parameter meant callers requesting different\n * amounts shared one cache entry and whichever mounted first decided how much\n * of the list every other caller saw.\n *\n * @param username - The account whose mute list to fetch\n */\nexport function getMutedUsersQueryOptions(username: string | undefined) {\n return queryOptions({\n queryKey: QueryKeys.accounts.mutedUsers(username!),\n queryFn: async () => {\n const muted: string[] = [];\n let start = \"\";\n\n for (let page = 0; page < MUTED_USERS_MAX_PAGES; page++) {\n const response = (await callRPC(\"condenser_api.get_following\", [\n username,\n start,\n \"ignore\",\n MUTED_USERS_PAGE_SIZE,\n ])) as Follow[];\n\n if (!response?.length) {\n break;\n }\n\n let names = response.map((user) => user.following);\n\n // `start` is exclusive on Hive, so a page should not repeat the cursor.\n // Drop it defensively anyway: against a node treating `start` as\n // inclusive, this loop would otherwise re-append the same account until\n // it hit the page cap.\n if (names[0] === start) {\n names = names.slice(1);\n }\n\n if (!names.length) {\n break;\n }\n\n muted.push(...names);\n\n if (response.length < MUTED_USERS_PAGE_SIZE) {\n break;\n }\n\n start = names[names.length - 1];\n }\n\n return muted;\n },\n enabled: !!username,\n });\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {d as d$1}from'./chunk-M37RR3MH.js';import {c,d as d$2}from'./chunk-XEB43J5Q.js';import {a as a$1}from'./chunk-CPEOHI6I.js';import {d,a}from'./chunk-IMCYKBDV.js';import {j,c as c$1}from'./chunk-RAWKN3XW.js';import {useMutation}from'@tanstack/react-query';import S from'hivesigner';async function g(c$1,e,a,r,i="posting",n,w,l="async"){let d=r?.adapter;switch(c$1){case "key":{if(!d)throw new Error("No adapter provided for key-based auth");let f=n;if(f===void 0)switch(i){case "owner":if(d.getOwnerKey)f=await d.getOwnerKey(e);else throw new Error("Owner key not supported by adapter. Owner operations (like account recovery) require master password login or manual key entry.");break;case "active":d.getActiveKey&&(f=await d.getActiveKey(e));break;case "memo":if(d.getMemoKey)f=await d.getMemoKey(e);else throw new Error("Memo key not supported by adapter. Use memo encryption methods instead.");break;default:f=await d.getPostingKey(e);break}if(!f)throw new Error(`No ${i} key available for ${e}`);let o=a$1.fromString(f);return l==="async"?await d$2(a,o):await c(a,o)}case "hiveauth":{if(!d?.broadcastWithHiveAuth)throw new Error("HiveAuth not supported by adapter");return await d.broadcastWithHiveAuth(e,a,i)}case "hivesigner":{if(!d)throw new Error("No adapter provided for HiveSigner auth");if(i!=="posting"){if(d.broadcastWithHiveSigner)return await d.broadcastWithHiveSigner(e,a,i);throw new Error(`HiveSigner access token cannot sign ${i} operations. No platform broadcast available.`)}let f=w!==void 0?w:await d.getAccessToken(e);if(f)try{return (await new S.Client({accessToken:f}).broadcast(a)).result}catch(o){if(d.broadcastWithHiveSigner&&d$1(o))return await d.broadcastWithHiveSigner(e,a,i);throw o}if(d.broadcastWithHiveSigner)return await d.broadcastWithHiveSigner(e,a,i);throw new Error(`No access token available for ${e}`)}case "keychain":{if(!d?.broadcastWithKeychain)throw new Error("Keychain not supported by adapter");return await d.broadcastWithKeychain(e,a,i)}case "custom":{if(!r?.broadcast)throw new Error("No custom broadcast function provided");return await r.broadcast(a,i)}default:throw new Error(`Unknown auth method: ${c$1}`)}}async function M(c,e,a,r="posting",i="async"){let n=a?.adapter;if(n?.getLoginType){let o=await n.getLoginType(c,r);if(o){let s=n.hasPostingAuthorization?await n.hasPostingAuthorization(c):false;if(r==="posting"&&s&&o==="key")try{return await g("hivesigner",c,e,a,r,void 0,void 0,i)}catch(t){if(!d$1(t))throw t;console.warn("[SDK] HiveSigner token auth failed, falling back to key:",t);}if(r==="posting"&&s&&o==="keychain")try{return await g("hivesigner",c,e,a,r,void 0,void 0,i)}catch(t){if(!d$1(t))throw t;console.warn("[SDK] HiveSigner token auth failed, falling back to keychain/snap:",t);}if(r==="posting"&&s&&o==="hiveauth")try{return await g("hivesigner",c,e,a,r,void 0,void 0,i)}catch(t){if(!d$1(t))throw t;console.warn("[SDK] HiveSigner token auth failed, falling back to HiveAuth:",t);}try{return await g(o,c,e,a,r,void 0,void 0,i)}catch(t){if(d$1(t)&&n.showAuthUpgradeUI&&(r==="posting"||r==="active")){let h=e.length>0?e[0][0]:"unknown",k=await n.showAuthUpgradeUI(r,h);if(!k)throw new Error(`Operation requires ${r} authority. User declined alternate auth.`);return await g(k,c,e,a,r,void 0,void 0,i)}throw t}}if(r==="posting")try{return await g("hivesigner",c,e,a,r,void 0,void 0,i)}catch(s){if(d$1(s)&&n.showAuthUpgradeUI){let t=e.length>0?e[0][0]:"unknown",h=await n.showAuthUpgradeUI(r,t);if(!h)throw new Error(`No login type available for ${c}. Please log in again.`);return await g(h,c,e,a,r,void 0,void 0,i)}throw s}else if(r==="active"&&n.showAuthUpgradeUI){let s=e.length>0?e[0][0]:"unknown",t=await n.showAuthUpgradeUI(r,s);if(!t)throw new Error(`Operation requires ${r} authority. User declined alternate auth.`);return await g(t,c,e,a,r,void 0,void 0,i)}}let w=a?.fallbackChain??["key","hiveauth","hivesigner","keychain","custom"],l=new Map;for(let o of w)try{let s=!1,t="",h,k;switch(o){case "key":if(!n)s=!0,t="No adapter provided";else {let p;switch(r){case "owner":n.getOwnerKey&&(p=await n.getOwnerKey(c));break;case "active":n.getActiveKey&&(p=await n.getActiveKey(c));break;case "memo":n.getMemoKey&&(p=await n.getMemoKey(c));break;default:p=await n.getPostingKey(c);break}p?h=p:(s=!0,t=`No ${r} key available`);}break;case "hiveauth":n?.broadcastWithHiveAuth||(s=!0,t="HiveAuth not supported by adapter");break;case "hivesigner":if(!n)s=!0,t="No adapter provided";else {let p=await n.getAccessToken(c);p&&(k=p);}break;case "keychain":n?.broadcastWithKeychain||(s=!0,t="Keychain not supported by adapter");break;case "custom":a?.broadcast||(s=!0,t="No custom broadcast function provided");break}if(s){l.set(o,new Error(`Skipped: ${t}`));continue}return await g(o,c,e,a,r,h,k,i)}catch(s){if(l.set(o,s),!d$1(s))throw s}if(!Array.from(l.values()).some(o=>!o.message.startsWith("Skipped:"))){let o=Array.from(l.entries()).map(([s,t])=>`${s}: ${t.message}`).join(", ");throw new Error(`[SDK][Broadcast] No auth methods attempted for ${c}. ${o}`)}let f=Array.from(l.entries()).map(([o,s])=>`${o}: ${s.message}`).join(", ");throw new Error(`[SDK][Broadcast] All auth methods failed for ${c}. Errors: ${f}`)}async function O(c){let e;try{let a$1={ref_block_num:0,ref_block_prefix:0,expiration:"1970-01-01T00:00:00",operations:c,extensions:[],signatures:[]};if(e=new d({transaction:a$1}),e.size(1)<=a)return}catch{return}try{let a=await j("condenser_api.get_dynamic_global_properties",[],3e3,1);e.maximumBlockSize=a?.maximum_block_size;}catch{}e.assertSize(1);}function C(c$2=[],e,a,r=()=>{},i,n="posting",w){let l=w?.broadcastMode??"async";return useMutation({onSuccess:r,onMutate:w?.onMutate,onError:w?.onError,onSettled:w?.onSettled,mutationKey:[...c$2,e],mutationFn:async d=>{if(!e)throw new Error("[Core][Broadcast] Attempted to call broadcast API with anon user");let f=a(d);await O(f);try{if(i?.enableFallback!==!1&&i?.adapter)return await M(e,f,i,n,l);if(i?.broadcast)return await i.broadcast(f,n);let o=i?.postingKey;if(o){if(n!=="posting")throw new Error(`[SDK][Broadcast] Legacy auth only supports posting authority, but '${n}' was requested. Use AuthContextV2 with an adapter for ${n} operations.`);let t=a$1.fromString(o);return await c(f,t)}let s=i?.accessToken;if(s)return (await new S.Client({accessToken:s}).broadcast(f)).result;throw new Error("[SDK][Broadcast] \u2013 cannot broadcast w/o posting key or token")}catch(o){throw o instanceof c$1?new Error(o.message):o}}})}export{O as a,C as b};//# sourceMappingURL=chunk-J2HM6MWA.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-J2HM6MWA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/core/mutations/use-broadcast-mutation.ts"],"names":["broadcastWithMethod","method","username","ops","auth","authority","fetchedKey","fetchedToken","broadcastMode","adapter","key","privateKey","PrivateKey","broadcastOperationsAsync","broadcastOperations","token","hs","tokenError","shouldTriggerAuthFallback","broadcastWithFallback","loginType","hasPostingAuth","error","operationName","selectedMethod","hsError","chain","errors","shouldSkip","skipReason","prefetchedKey","prefetchedToken","skipReasons","errorMessages","assertOperationsFitTransaction","tx","transaction","Transaction","MIN_TRANSACTION_SIZE_LIMIT","props","callRPC","useBroadcastMutation","mutationKey","operations","onSuccess","options","useMutation","payload","postingKey","accessToken","e","RPCError"],"mappings":"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","file":"chunk-K2DAN37J.js","sourcesContent":["import {\n useMutation,\n type MutationKey,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { callRPC, MIN_TRANSACTION_SIZE_LIMIT, PrivateKey, RPCError, Transaction } from \"../../../hive-tx\";\nimport type { Operation, TransactionType } from \"../../../hive-tx\";\nimport { broadcastOperations, broadcastOperationsAsync, type TransactionConfirmation } from \"@/modules/core/hive-tx\";\nimport type { BroadcastResult } from \"../../../hive-tx\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { shouldTriggerAuthFallback } from \"@/modules/core/errors\";\nimport type { AuthorityLevel } from \"@/modules/operations/authority-map\";\nimport hs from \"hivesigner\";\n\n/**\n * Broadcast mode controls whether the SDK waits for block inclusion.\n *\n * - `'async'` (default): Uses `broadcast_transaction` — returns once the node\n * accepts the transaction into its mempool. Transport and RPC errors are\n * still thrown immediately; only the block-inclusion wait is skipped.\n *\n * - `'sync'`: Uses `broadcast_transaction_synchronous` — waits for block\n * inclusion and returns `block_num`/`trx_num`. Deprecated; prefer `'async'`\n * and poll `transaction_status_api` if you need block confirmation.\n */\nexport type BroadcastMode = 'sync' | 'async';\n\n/**\n * Broadcasts operations using a specific auth method.\n *\n * @param method - Auth method to use ('key', 'hiveauth', 'hivesigner', 'keychain', 'custom')\n * @param username - Hive username to broadcast for\n * @param ops - Operations to broadcast\n * @param auth - AuthContextV2 with adapter and configuration\n * @param authority - Key authority to use (posting, active, owner, or memo)\n * @param fetchedKey - Optional pre-fetched key to avoid duplicate fetches\n * @param fetchedToken - Optional pre-fetched access token to avoid duplicate fetches\n * @param broadcastMode - Whether to wait for block inclusion ('sync') or just mempool acceptance ('async')\n * @returns Transaction confirmation from the blockchain\n * @throws Error if method is not available or broadcast fails\n */\nasync function broadcastWithMethod(\n method: string,\n username: string,\n ops: Operation[],\n auth?: AuthContextV2,\n authority: AuthorityLevel = 'posting',\n fetchedKey?: string | null,\n fetchedToken?: string | null,\n broadcastMode: BroadcastMode = 'async'\n): Promise<TransactionConfirmation | BroadcastResult> {\n const adapter = auth?.adapter;\n\n switch (method) {\n case 'key': {\n if (!adapter) {\n throw new Error('No adapter provided for key-based auth');\n }\n\n // Use pre-fetched key if provided, otherwise fetch it\n let key: string | null | undefined = fetchedKey;\n\n if (key === undefined) {\n // Key not pre-fetched, fetch it now based on authority\n switch (authority) {\n case 'owner':\n if (adapter.getOwnerKey) {\n key = await adapter.getOwnerKey(username);\n } else {\n throw new Error(\n `Owner key not supported by adapter. Owner operations (like account recovery) ` +\n `require master password login or manual key entry.`\n );\n }\n break;\n\n case 'active':\n if (adapter.getActiveKey) {\n key = await adapter.getActiveKey(username);\n }\n break;\n\n case 'memo':\n if (adapter.getMemoKey) {\n key = await adapter.getMemoKey(username);\n } else {\n throw new Error(\n `Memo key not supported by adapter. Use memo encryption methods instead.`\n );\n }\n break;\n\n case 'posting':\n default:\n key = await adapter.getPostingKey(username);\n break;\n }\n }\n\n if (!key) {\n throw new Error(`No ${authority} key available for ${username}`);\n }\n\n // Attempt broadcast with key\n const privateKey = PrivateKey.fromString(key);\n if (broadcastMode === 'async') {\n return await broadcastOperationsAsync(ops, privateKey);\n }\n return await broadcastOperations(ops, privateKey);\n }\n\n case 'hiveauth': {\n if (!adapter?.broadcastWithHiveAuth) {\n throw new Error('HiveAuth not supported by adapter');\n }\n return await adapter.broadcastWithHiveAuth(username, ops, authority);\n }\n\n case 'hivesigner': {\n if (!adapter) {\n throw new Error('No adapter provided for HiveSigner auth');\n }\n\n // Access tokens only have posting authority — for active/owner/memo ops,\n // go directly to platform-specific HiveSigner broadcast (e.g., redirect to hivesigner.com)\n if (authority !== 'posting') {\n if (adapter.broadcastWithHiveSigner) {\n return await adapter.broadcastWithHiveSigner(username, ops, authority);\n }\n throw new Error(`HiveSigner access token cannot sign ${authority} operations. No platform broadcast available.`);\n }\n\n // Try direct API broadcast with access token first (posting ops only)\n const token = fetchedToken !== undefined\n ? fetchedToken\n : await adapter.getAccessToken(username);\n\n if (token) {\n try {\n const client = new hs.Client({ accessToken: token });\n const response = await client.broadcast(ops);\n return response.result;\n } catch (tokenError) {\n // Token broadcast failed — try platform-specific HiveSigner broadcast\n if (adapter.broadcastWithHiveSigner && shouldTriggerAuthFallback(tokenError)) {\n return await adapter.broadcastWithHiveSigner(username, ops, authority);\n }\n throw tokenError;\n }\n }\n\n // No token available — try platform-specific HiveSigner broadcast\n if (adapter.broadcastWithHiveSigner) {\n return await adapter.broadcastWithHiveSigner(username, ops, authority);\n }\n\n throw new Error(`No access token available for ${username}`);\n }\n\n case 'keychain': {\n if (!adapter?.broadcastWithKeychain) {\n throw new Error('Keychain not supported by adapter');\n }\n return await adapter.broadcastWithKeychain(username, ops, authority);\n }\n\n case 'custom': {\n if (!auth?.broadcast) {\n throw new Error('No custom broadcast function provided');\n }\n return (await auth.broadcast(ops, authority)) as TransactionConfirmation;\n }\n\n default:\n throw new Error(`Unknown auth method: ${method}`);\n }\n}\n\n/**\n * Attempts to broadcast operations using multiple auth methods in fallback chain.\n * Implements sophisticated fallback pattern from mobile app.\n *\n * @param username - Hive username to broadcast for\n * @param ops - Operations to broadcast\n * @param auth - AuthContextV2 with adapter and fallback configuration\n * @param authority - Key authority to use ('posting' | 'active' | 'owner' | 'memo'), defaults to 'posting'\n * @returns Transaction confirmation from the blockchain\n * @throws Error if all auth methods fail or if a non-auth error occurs\n *\n * @remarks\n * **Preferred Behavior (when adapter.getLoginType exists):**\n * - Calls adapter.getLoginType() to determine user's actual auth method\n * - Uses ONLY that method (no fallbacks) - more predictable and faster\n * - If it fails, throws the error immediately\n *\n * **Fallback Behavior (for backward compatibility):**\n * - Tries each auth method in the fallback chain order\n * - Only continues to next method if error is auth-related (missing authority, token expired)\n * - Stops immediately for non-auth errors (RC exhaustion, network errors, validation errors)\n * - Collects all errors and provides detailed failure message\n *\n * @example\n * ```typescript\n * // Preferred: Adapter with getLoginType (single method, no fallbacks)\n * const auth: AuthContextV2 = {\n * adapter: myAdapter, // includes getLoginType()\n * };\n *\n * // Legacy: Explicit fallback chain (tries multiple methods)\n * const auth: AuthContextV2 = {\n * adapter: myAdapter,\n * fallbackChain: ['key', 'hiveauth', 'hivesigner'],\n * };\n * ```\n */\nasync function broadcastWithFallback(\n username: string,\n ops: Operation[],\n auth?: AuthContextV2,\n authority: AuthorityLevel = 'posting',\n broadcastMode: BroadcastMode = 'async'\n): Promise<TransactionConfirmation | BroadcastResult> {\n const adapter = auth?.adapter;\n\n // PREFERRED APPROACH: If adapter provides getLoginType, use smart auth strategy\n // This avoids unnecessary fallback attempts and is more predictable\n if (adapter?.getLoginType) {\n const loginType = await adapter.getLoginType(username, authority);\n\n if (loginType) {\n // SMART AUTH STRATEGY: Optimize based on login type + authority + credentials\n\n // Check if user has granted ecency.app posting authority\n const hasPostingAuth = adapter.hasPostingAuthorization\n ? await adapter.hasPostingAuthorization(username)\n : false;\n\n // OPTIMIZATION: Use HiveSigner token for posting ops when posting auth is granted\n // This is faster than direct key signing or HiveAuth for key-based logins\n if (\n authority === 'posting' &&\n hasPostingAuth &&\n loginType === 'key'\n ) {\n try {\n // Try HiveSigner API first (faster)\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n // Only fallback if this is an auth-related error\n // Otherwise, rethrow the original error (e.g., network errors, validation errors)\n if (!shouldTriggerAuthFallback(error)) {\n throw error;\n }\n // Fallback to direct key signing if token auth method fails\n console.warn('[SDK] HiveSigner token auth failed, falling back to key:', error);\n }\n }\n\n // OPTIMIZATION: Use HiveSigner token for keychain/MetaMask users with posting auth (faster, no popup)\n if (\n authority === 'posting' &&\n hasPostingAuth &&\n loginType === 'keychain'\n ) {\n try {\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n if (!shouldTriggerAuthFallback(error)) {\n throw error;\n }\n console.warn('[SDK] HiveSigner token auth failed, falling back to keychain/snap:', error);\n }\n }\n\n // OPTIMIZATION: Use HiveSigner token for HiveAuth users with posting auth (faster)\n if (\n authority === 'posting' &&\n hasPostingAuth &&\n loginType === 'hiveauth'\n ) {\n try {\n // Try HiveSigner API first (faster)\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n // Only fallback if this is an auth-related error\n // Otherwise, rethrow the original error (e.g., network errors, validation errors)\n if (!shouldTriggerAuthFallback(error)) {\n throw error;\n }\n // Fallback to HiveAuth if token auth method fails\n console.warn('[SDK] HiveSigner token auth failed, falling back to HiveAuth:', error);\n }\n }\n\n // Use user's actual login method\n try {\n return await broadcastWithMethod(loginType, username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n // Check if error is due to missing authority (e.g., posting key trying active op)\n if (shouldTriggerAuthFallback(error)) {\n // Show auth upgrade UI if available (only for posting/active operations)\n if (\n adapter.showAuthUpgradeUI &&\n (authority === 'posting' || authority === 'active')\n ) {\n // Guard against empty operations array\n const operationName = ops.length > 0 ? ops[0][0] : 'unknown';\n const selectedMethod = await adapter.showAuthUpgradeUI(authority, operationName);\n if (!selectedMethod) {\n throw new Error(`Operation requires ${authority} authority. User declined alternate auth.`);\n }\n\n // User selected a specific method - delegate to broadcastWithMethod\n // This handles all auth methods (hiveauth, hivesigner, key, keychain, custom, etc.)\n // broadcastWithMethod already contains all necessary validation and method-specific logic\n return await broadcastWithMethod(selectedMethod, username, ops, auth, authority, undefined, undefined, broadcastMode);\n }\n }\n\n // Not an auth error, or no upgrade UI available - throw original error\n throw error;\n }\n }\n\n // loginType is null — user's auth method is unknown (e.g., incomplete login data)\n if (authority === 'posting') {\n // For posting ops, try HiveSigner — access token is usually available for all logins\n try {\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (hsError) {\n if (shouldTriggerAuthFallback(hsError) && adapter.showAuthUpgradeUI) {\n const operationName = ops.length > 0 ? ops[0][0] : 'unknown';\n const selectedMethod = await adapter.showAuthUpgradeUI(authority, operationName);\n if (!selectedMethod) {\n throw new Error(`No login type available for ${username}. Please log in again.`);\n }\n return await broadcastWithMethod(selectedMethod, username, ops, auth, authority, undefined, undefined, broadcastMode);\n }\n throw hsError;\n }\n } else if (authority === 'active' && adapter.showAuthUpgradeUI) {\n // For active ops, show auth upgrade dialog — no silent fallback possible\n const operationName = ops.length > 0 ? ops[0][0] : 'unknown';\n const selectedMethod = await adapter.showAuthUpgradeUI(authority, operationName);\n if (!selectedMethod) {\n throw new Error(`Operation requires ${authority} authority. User declined alternate auth.`);\n }\n return await broadcastWithMethod(selectedMethod, username, ops, auth, authority, undefined, undefined, broadcastMode);\n }\n }\n\n // FALLBACK APPROACH: For backward compatibility, use fallback chain\n // This is only used if adapter doesn't provide getLoginType\n const chain = auth?.fallbackChain ?? ['key', 'hiveauth', 'hivesigner', 'keychain', 'custom'];\n const errors: Map<string, Error> = new Map();\n\n for (const method of chain) {\n try {\n // Check if method is available before attempting\n let shouldSkip = false;\n let skipReason = '';\n let prefetchedKey: string | null | undefined;\n let prefetchedToken: string | null | undefined;\n\n switch (method) {\n case 'key':\n if (!adapter) {\n shouldSkip = true;\n skipReason = 'No adapter provided';\n } else {\n // Pre-fetch key to check availability (will be reused in broadcast)\n let key: string | null | undefined;\n\n switch (authority) {\n case 'owner':\n if (adapter.getOwnerKey) {\n key = await adapter.getOwnerKey(username);\n }\n break;\n case 'active':\n if (adapter.getActiveKey) {\n key = await adapter.getActiveKey(username);\n }\n break;\n case 'memo':\n if (adapter.getMemoKey) {\n key = await adapter.getMemoKey(username);\n }\n break;\n case 'posting':\n default:\n key = await adapter.getPostingKey(username);\n break;\n }\n\n if (!key) {\n shouldSkip = true;\n skipReason = `No ${authority} key available`;\n } else {\n prefetchedKey = key; // Store for reuse\n }\n }\n break;\n case 'hiveauth':\n if (!adapter?.broadcastWithHiveAuth) {\n shouldSkip = true;\n skipReason = 'HiveAuth not supported by adapter';\n }\n break;\n case 'hivesigner':\n if (!adapter) {\n shouldSkip = true;\n skipReason = 'No adapter provided';\n } else {\n // Pre-fetch token if available (will be reused in broadcast)\n const token = await adapter.getAccessToken(username);\n if (token) {\n prefetchedToken = token; // Store for reuse\n }\n // When no token but adapter exists, don't skip —\n // broadcastWithMethod can fall back to adapter.broadcastWithHiveSigner\n }\n break;\n case 'keychain':\n if (!adapter?.broadcastWithKeychain) {\n shouldSkip = true;\n skipReason = 'Keychain not supported by adapter';\n }\n break;\n case 'custom':\n if (!auth?.broadcast) {\n shouldSkip = true;\n skipReason = 'No custom broadcast function provided';\n }\n break;\n }\n\n if (shouldSkip) {\n errors.set(method, new Error(`Skipped: ${skipReason}`));\n continue;\n }\n\n // Method is available, attempt broadcast with pre-fetched credentials\n return await broadcastWithMethod(method, username, ops, auth, authority, prefetchedKey, prefetchedToken, broadcastMode);\n } catch (error) {\n // Record actual error from failed broadcast attempt\n errors.set(method, error as Error);\n\n // Only continue fallback if error suggests trying another method\n if (!shouldTriggerAuthFallback(error)) {\n // If it's not an auth error, throw immediately (e.g., RC error, network error)\n throw error;\n }\n }\n }\n\n // FIX #2: Improved error message distinguishes between skips and real failures\n const hasRealAttempts = Array.from(errors.values()).some(\n error => !error.message.startsWith('Skipped:')\n );\n\n if (!hasRealAttempts) {\n // All methods were skipped (none attempted)\n const skipReasons = Array.from(errors.entries())\n .map(([method, error]) => `${method}: ${error.message}`)\n .join(', ');\n throw new Error(\n `[SDK][Broadcast] No auth methods attempted for ${username}. ${skipReasons}`\n );\n }\n\n // At least one method was attempted but all failed\n const errorMessages = Array.from(errors.entries())\n .map(([method, error]) => `${method}: ${error.message}`)\n .join(', ');\n\n throw new Error(\n `[SDK][Broadcast] All auth methods failed for ${username}. Errors: ${errorMessages}`\n );\n}\n\n/**\n * React Query mutation hook for broadcasting Hive operations.\n * Supports multiple authentication methods with automatic fallback.\n *\n * @template T - Type of the mutation payload\n * @param mutationKey - React Query mutation key for cache management\n * @param username - Hive username (required for broadcast)\n * @param operations - Function that converts payload to Hive operations\n * @param onSuccess - Success callback after broadcast completes\n * @param auth - Authentication context (supports both legacy AuthContext and new AuthContextV2)\n * @param authority - Key authority to use ('posting' | 'active' | 'owner' | 'memo'), defaults to 'posting'\n *\n * @returns React Query mutation result\n *\n * @remarks\n * **Authentication Flow:**\n *\n * 1. **With AuthContextV2 + adapter + enableFallback** (recommended for new code):\n * - Tries auth methods in fallbackChain order\n * - Smart fallback: only retries on auth errors, not RC/network errors\n * - Uses platform adapter for storage, UI, and broadcasting\n *\n * 2. **With legacy AuthContext** (backward compatible):\n * - Tries auth.broadcast() first (custom implementation)\n * - Falls back to postingKey if available\n * - Falls back to accessToken (HiveSigner) if available\n * - Throws if no auth method available\n *\n * **Backward Compatibility:**\n * - All existing code using AuthContext will continue to work\n * - AuthContextV2 extends AuthContext, so it's a drop-in replacement\n * - enableFallback defaults to false if no adapter provided\n *\n * @example\n * ```typescript\n * // New pattern with platform adapter and fallback\n * const mutation = useBroadcastMutation(\n * ['vote'],\n * username,\n * (payload) => [voteOperation(payload)],\n * () => console.log('Success!'),\n * {\n * adapter: myAdapter,\n * enableFallback: true,\n * fallbackChain: ['keychain', 'key', 'hivesigner']\n * },\n * 'posting'\n * );\n *\n * // Legacy pattern (still works)\n * const mutation = useBroadcastMutation(\n * ['vote'],\n * username,\n * (payload) => [voteOperation(payload)],\n * () => console.log('Success!'),\n * { postingKey: 'wif-key' }\n * );\n * ```\n */\n/**\n * Refuse operations that can never fit in one Hive transaction before any\n * signer (key, Keychain, HiveSigner, HiveAuth, MetaMask) sees them, so the\n * user gets a clear error instead of a broadcast that every node rejects.\n * Anything within the smallest limit witnesses can vote passes without a\n * network call; a larger transaction is judged against the live\n * maximum_block_size, or against the protocol ceiling if that cannot be read.\n * Only the size verdict is enforced: an operation this serializer cannot\n * encode is left to the signer, which serializes it on its own.\n */\nexport async function assertOperationsFitTransaction(ops: Operation[]): Promise<void> {\n let tx: Transaction;\n try {\n const transaction = {\n ref_block_num: 0,\n ref_block_prefix: 0,\n expiration: \"1970-01-01T00:00:00\",\n operations: ops,\n extensions: [],\n signatures: [],\n } as unknown as TransactionType;\n tx = new Transaction({ transaction });\n if (tx.size(1) <= MIN_TRANSACTION_SIZE_LIMIT) {\n return;\n }\n } catch {\n return;\n }\n try {\n // Short budget: this only delays an already oversized broadcast, and the\n // protocol ceiling still applies if the nodes are slow.\n const props = await callRPC(\"condenser_api.get_dynamic_global_properties\", [], 3000, 1);\n tx.maximumBlockSize = props?.maximum_block_size;\n } catch {\n // Unknown limit: assertSize falls back to the protocol ceiling.\n }\n tx.assertSize(1);\n}\n\nexport function useBroadcastMutation<T>(\n mutationKey: MutationKey = [],\n username: string | undefined,\n operations: (payload: T) => Operation[],\n onSuccess: UseMutationOptions<unknown, Error, T>[\"onSuccess\"] = () => {},\n auth?: AuthContextV2,\n authority: AuthorityLevel = 'posting',\n options?: {\n onMutate?: UseMutationOptions<unknown, Error, T>[\"onMutate\"];\n onError?: UseMutationOptions<unknown, Error, T>[\"onError\"];\n onSettled?: UseMutationOptions<unknown, Error, T>[\"onSettled\"];\n /**\n * Controls whether to wait for block inclusion or just mempool acceptance.\n *\n * - `'async'` (default): Returns after mempool acceptance. Recommended for\n * all operations; errors are still thrown immediately.\n *\n * - `'sync'`: Waits for block inclusion, returns block_num/trx_num.\n * Deprecated; prefer `'async'`.\n */\n broadcastMode?: BroadcastMode;\n }\n) {\n const broadcastMode = options?.broadcastMode ?? 'async';\n\n return useMutation({\n onSuccess,\n onMutate: options?.onMutate,\n onError: options?.onError,\n onSettled: options?.onSettled,\n mutationKey: [...mutationKey, username],\n mutationFn: async (payload: T) => {\n if (!username) {\n throw new Error(\n \"[Core][Broadcast] Attempted to call broadcast API with anon user\"\n );\n }\n\n const ops = operations(payload);\n await assertOperationsFitTransaction(ops);\n\n try {\n // New: Try auth methods in fallback chain (if enabled)\n if (auth?.enableFallback !== false && auth?.adapter) {\n return await broadcastWithFallback(username, ops, auth, authority, broadcastMode);\n }\n\n // Legacy behavior: try methods in fixed order (backward compatible)\n if (auth?.broadcast) {\n return await auth.broadcast(ops, authority);\n }\n\n const postingKey = auth?.postingKey;\n if (postingKey) {\n // Legacy auth only supports posting authority\n if (authority !== 'posting') {\n throw new Error(\n `[SDK][Broadcast] Legacy auth only supports posting authority, but '${authority}' was requested. ` +\n `Use AuthContextV2 with an adapter for ${authority} operations.`\n );\n }\n\n const privateKey = PrivateKey.fromString(postingKey);\n\n return await broadcastOperations(\n ops,\n privateKey\n );\n }\n\n const accessToken = auth?.accessToken;\n if (accessToken) {\n const client = new hs.Client({ accessToken });\n const response = await client.broadcast(ops);\n return response.result;\n }\n\n throw new Error(\n \"[SDK][Broadcast] – cannot broadcast w/o posting key or token\"\n );\n } catch (e) {\n if (e instanceof RPCError) {\n // Normalize raw blockchain rejections (missing authority, RC exhaustion,\n // validation failures) from every broadcast path — sync and async — into\n // a plain Error whose message is preserved for downstream classification\n // (formatError), so React Query captures a handled mutation error.\n throw new Error(e.message);\n }\n throw e\n }\n },\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/modules/core/mutations/use-broadcast-mutation.ts"],"names":["broadcastWithMethod","method","username","ops","auth","authority","fetchedKey","fetchedToken","broadcastMode","adapter","key","privateKey","PrivateKey","broadcastOperationsAsync","broadcastOperations","token","hs","tokenError","shouldTriggerAuthFallback","broadcastWithFallback","loginType","hasPostingAuth","error","operationName","selectedMethod","hsError","chain","errors","shouldSkip","skipReason","prefetchedKey","prefetchedToken","skipReasons","errorMessages","assertOperationsFitTransaction","tx","transaction","Transaction","MIN_TRANSACTION_SIZE_LIMIT","props","callRPC","useBroadcastMutation","mutationKey","operations","onSuccess","options","useMutation","payload","postingKey","accessToken","e","RPCError"],"mappings":"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","file":"chunk-J2HM6MWA.js","sourcesContent":["import {\n useMutation,\n type MutationKey,\n type UseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { callRPC, MIN_TRANSACTION_SIZE_LIMIT, PrivateKey, RPCError, Transaction } from \"../../../hive-tx\";\nimport type { Operation, TransactionType } from \"../../../hive-tx\";\nimport { broadcastOperations, broadcastOperationsAsync, type TransactionConfirmation } from \"@/modules/core/hive-tx\";\nimport type { BroadcastResult } from \"../../../hive-tx\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { shouldTriggerAuthFallback } from \"@/modules/core/errors\";\nimport type { AuthorityLevel } from \"@/modules/operations/authority-map\";\nimport hs from \"hivesigner\";\n\n/**\n * Broadcast mode controls whether the SDK waits for block inclusion.\n *\n * - `'async'` (default): Uses `broadcast_transaction` — returns once the node\n * accepts the transaction into its mempool. Transport and RPC errors are\n * still thrown immediately; only the block-inclusion wait is skipped.\n *\n * - `'sync'`: Uses `broadcast_transaction_synchronous` — waits for block\n * inclusion and returns `block_num`/`trx_num`. Deprecated; prefer `'async'`\n * and poll `transaction_status_api` if you need block confirmation.\n */\nexport type BroadcastMode = 'sync' | 'async';\n\n/**\n * Broadcasts operations using a specific auth method.\n *\n * @param method - Auth method to use ('key', 'hiveauth', 'hivesigner', 'keychain', 'custom')\n * @param username - Hive username to broadcast for\n * @param ops - Operations to broadcast\n * @param auth - AuthContextV2 with adapter and configuration\n * @param authority - Key authority to use (posting, active, owner, or memo)\n * @param fetchedKey - Optional pre-fetched key to avoid duplicate fetches\n * @param fetchedToken - Optional pre-fetched access token to avoid duplicate fetches\n * @param broadcastMode - Whether to wait for block inclusion ('sync') or just mempool acceptance ('async')\n * @returns Transaction confirmation from the blockchain\n * @throws Error if method is not available or broadcast fails\n */\nasync function broadcastWithMethod(\n method: string,\n username: string,\n ops: Operation[],\n auth?: AuthContextV2,\n authority: AuthorityLevel = 'posting',\n fetchedKey?: string | null,\n fetchedToken?: string | null,\n broadcastMode: BroadcastMode = 'async'\n): Promise<TransactionConfirmation | BroadcastResult> {\n const adapter = auth?.adapter;\n\n switch (method) {\n case 'key': {\n if (!adapter) {\n throw new Error('No adapter provided for key-based auth');\n }\n\n // Use pre-fetched key if provided, otherwise fetch it\n let key: string | null | undefined = fetchedKey;\n\n if (key === undefined) {\n // Key not pre-fetched, fetch it now based on authority\n switch (authority) {\n case 'owner':\n if (adapter.getOwnerKey) {\n key = await adapter.getOwnerKey(username);\n } else {\n throw new Error(\n `Owner key not supported by adapter. Owner operations (like account recovery) ` +\n `require master password login or manual key entry.`\n );\n }\n break;\n\n case 'active':\n if (adapter.getActiveKey) {\n key = await adapter.getActiveKey(username);\n }\n break;\n\n case 'memo':\n if (adapter.getMemoKey) {\n key = await adapter.getMemoKey(username);\n } else {\n throw new Error(\n `Memo key not supported by adapter. Use memo encryption methods instead.`\n );\n }\n break;\n\n case 'posting':\n default:\n key = await adapter.getPostingKey(username);\n break;\n }\n }\n\n if (!key) {\n throw new Error(`No ${authority} key available for ${username}`);\n }\n\n // Attempt broadcast with key\n const privateKey = PrivateKey.fromString(key);\n if (broadcastMode === 'async') {\n return await broadcastOperationsAsync(ops, privateKey);\n }\n return await broadcastOperations(ops, privateKey);\n }\n\n case 'hiveauth': {\n if (!adapter?.broadcastWithHiveAuth) {\n throw new Error('HiveAuth not supported by adapter');\n }\n return await adapter.broadcastWithHiveAuth(username, ops, authority);\n }\n\n case 'hivesigner': {\n if (!adapter) {\n throw new Error('No adapter provided for HiveSigner auth');\n }\n\n // Access tokens only have posting authority — for active/owner/memo ops,\n // go directly to platform-specific HiveSigner broadcast (e.g., redirect to hivesigner.com)\n if (authority !== 'posting') {\n if (adapter.broadcastWithHiveSigner) {\n return await adapter.broadcastWithHiveSigner(username, ops, authority);\n }\n throw new Error(`HiveSigner access token cannot sign ${authority} operations. No platform broadcast available.`);\n }\n\n // Try direct API broadcast with access token first (posting ops only)\n const token = fetchedToken !== undefined\n ? fetchedToken\n : await adapter.getAccessToken(username);\n\n if (token) {\n try {\n const client = new hs.Client({ accessToken: token });\n const response = await client.broadcast(ops);\n return response.result;\n } catch (tokenError) {\n // Token broadcast failed — try platform-specific HiveSigner broadcast\n if (adapter.broadcastWithHiveSigner && shouldTriggerAuthFallback(tokenError)) {\n return await adapter.broadcastWithHiveSigner(username, ops, authority);\n }\n throw tokenError;\n }\n }\n\n // No token available — try platform-specific HiveSigner broadcast\n if (adapter.broadcastWithHiveSigner) {\n return await adapter.broadcastWithHiveSigner(username, ops, authority);\n }\n\n throw new Error(`No access token available for ${username}`);\n }\n\n case 'keychain': {\n if (!adapter?.broadcastWithKeychain) {\n throw new Error('Keychain not supported by adapter');\n }\n return await adapter.broadcastWithKeychain(username, ops, authority);\n }\n\n case 'custom': {\n if (!auth?.broadcast) {\n throw new Error('No custom broadcast function provided');\n }\n return (await auth.broadcast(ops, authority)) as TransactionConfirmation;\n }\n\n default:\n throw new Error(`Unknown auth method: ${method}`);\n }\n}\n\n/**\n * Attempts to broadcast operations using multiple auth methods in fallback chain.\n * Implements sophisticated fallback pattern from mobile app.\n *\n * @param username - Hive username to broadcast for\n * @param ops - Operations to broadcast\n * @param auth - AuthContextV2 with adapter and fallback configuration\n * @param authority - Key authority to use ('posting' | 'active' | 'owner' | 'memo'), defaults to 'posting'\n * @returns Transaction confirmation from the blockchain\n * @throws Error if all auth methods fail or if a non-auth error occurs\n *\n * @remarks\n * **Preferred Behavior (when adapter.getLoginType exists):**\n * - Calls adapter.getLoginType() to determine user's actual auth method\n * - Uses ONLY that method (no fallbacks) - more predictable and faster\n * - If it fails, throws the error immediately\n *\n * **Fallback Behavior (for backward compatibility):**\n * - Tries each auth method in the fallback chain order\n * - Only continues to next method if error is auth-related (missing authority, token expired)\n * - Stops immediately for non-auth errors (RC exhaustion, network errors, validation errors)\n * - Collects all errors and provides detailed failure message\n *\n * @example\n * ```typescript\n * // Preferred: Adapter with getLoginType (single method, no fallbacks)\n * const auth: AuthContextV2 = {\n * adapter: myAdapter, // includes getLoginType()\n * };\n *\n * // Legacy: Explicit fallback chain (tries multiple methods)\n * const auth: AuthContextV2 = {\n * adapter: myAdapter,\n * fallbackChain: ['key', 'hiveauth', 'hivesigner'],\n * };\n * ```\n */\nasync function broadcastWithFallback(\n username: string,\n ops: Operation[],\n auth?: AuthContextV2,\n authority: AuthorityLevel = 'posting',\n broadcastMode: BroadcastMode = 'async'\n): Promise<TransactionConfirmation | BroadcastResult> {\n const adapter = auth?.adapter;\n\n // PREFERRED APPROACH: If adapter provides getLoginType, use smart auth strategy\n // This avoids unnecessary fallback attempts and is more predictable\n if (adapter?.getLoginType) {\n const loginType = await adapter.getLoginType(username, authority);\n\n if (loginType) {\n // SMART AUTH STRATEGY: Optimize based on login type + authority + credentials\n\n // Check if user has granted ecency.app posting authority\n const hasPostingAuth = adapter.hasPostingAuthorization\n ? await adapter.hasPostingAuthorization(username)\n : false;\n\n // OPTIMIZATION: Use HiveSigner token for posting ops when posting auth is granted\n // This is faster than direct key signing or HiveAuth for key-based logins\n if (\n authority === 'posting' &&\n hasPostingAuth &&\n loginType === 'key'\n ) {\n try {\n // Try HiveSigner API first (faster)\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n // Only fallback if this is an auth-related error\n // Otherwise, rethrow the original error (e.g., network errors, validation errors)\n if (!shouldTriggerAuthFallback(error)) {\n throw error;\n }\n // Fallback to direct key signing if token auth method fails\n console.warn('[SDK] HiveSigner token auth failed, falling back to key:', error);\n }\n }\n\n // OPTIMIZATION: Use HiveSigner token for keychain/MetaMask users with posting auth (faster, no popup)\n if (\n authority === 'posting' &&\n hasPostingAuth &&\n loginType === 'keychain'\n ) {\n try {\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n if (!shouldTriggerAuthFallback(error)) {\n throw error;\n }\n console.warn('[SDK] HiveSigner token auth failed, falling back to keychain/snap:', error);\n }\n }\n\n // OPTIMIZATION: Use HiveSigner token for HiveAuth users with posting auth (faster)\n if (\n authority === 'posting' &&\n hasPostingAuth &&\n loginType === 'hiveauth'\n ) {\n try {\n // Try HiveSigner API first (faster)\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n // Only fallback if this is an auth-related error\n // Otherwise, rethrow the original error (e.g., network errors, validation errors)\n if (!shouldTriggerAuthFallback(error)) {\n throw error;\n }\n // Fallback to HiveAuth if token auth method fails\n console.warn('[SDK] HiveSigner token auth failed, falling back to HiveAuth:', error);\n }\n }\n\n // Use user's actual login method\n try {\n return await broadcastWithMethod(loginType, username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (error) {\n // Check if error is due to missing authority (e.g., posting key trying active op)\n if (shouldTriggerAuthFallback(error)) {\n // Show auth upgrade UI if available (only for posting/active operations)\n if (\n adapter.showAuthUpgradeUI &&\n (authority === 'posting' || authority === 'active')\n ) {\n // Guard against empty operations array\n const operationName = ops.length > 0 ? ops[0][0] : 'unknown';\n const selectedMethod = await adapter.showAuthUpgradeUI(authority, operationName);\n if (!selectedMethod) {\n throw new Error(`Operation requires ${authority} authority. User declined alternate auth.`);\n }\n\n // User selected a specific method - delegate to broadcastWithMethod\n // This handles all auth methods (hiveauth, hivesigner, key, keychain, custom, etc.)\n // broadcastWithMethod already contains all necessary validation and method-specific logic\n return await broadcastWithMethod(selectedMethod, username, ops, auth, authority, undefined, undefined, broadcastMode);\n }\n }\n\n // Not an auth error, or no upgrade UI available - throw original error\n throw error;\n }\n }\n\n // loginType is null — user's auth method is unknown (e.g., incomplete login data)\n if (authority === 'posting') {\n // For posting ops, try HiveSigner — access token is usually available for all logins\n try {\n return await broadcastWithMethod('hivesigner', username, ops, auth, authority, undefined, undefined, broadcastMode);\n } catch (hsError) {\n if (shouldTriggerAuthFallback(hsError) && adapter.showAuthUpgradeUI) {\n const operationName = ops.length > 0 ? ops[0][0] : 'unknown';\n const selectedMethod = await adapter.showAuthUpgradeUI(authority, operationName);\n if (!selectedMethod) {\n throw new Error(`No login type available for ${username}. Please log in again.`);\n }\n return await broadcastWithMethod(selectedMethod, username, ops, auth, authority, undefined, undefined, broadcastMode);\n }\n throw hsError;\n }\n } else if (authority === 'active' && adapter.showAuthUpgradeUI) {\n // For active ops, show auth upgrade dialog — no silent fallback possible\n const operationName = ops.length > 0 ? ops[0][0] : 'unknown';\n const selectedMethod = await adapter.showAuthUpgradeUI(authority, operationName);\n if (!selectedMethod) {\n throw new Error(`Operation requires ${authority} authority. User declined alternate auth.`);\n }\n return await broadcastWithMethod(selectedMethod, username, ops, auth, authority, undefined, undefined, broadcastMode);\n }\n }\n\n // FALLBACK APPROACH: For backward compatibility, use fallback chain\n // This is only used if adapter doesn't provide getLoginType\n const chain = auth?.fallbackChain ?? ['key', 'hiveauth', 'hivesigner', 'keychain', 'custom'];\n const errors: Map<string, Error> = new Map();\n\n for (const method of chain) {\n try {\n // Check if method is available before attempting\n let shouldSkip = false;\n let skipReason = '';\n let prefetchedKey: string | null | undefined;\n let prefetchedToken: string | null | undefined;\n\n switch (method) {\n case 'key':\n if (!adapter) {\n shouldSkip = true;\n skipReason = 'No adapter provided';\n } else {\n // Pre-fetch key to check availability (will be reused in broadcast)\n let key: string | null | undefined;\n\n switch (authority) {\n case 'owner':\n if (adapter.getOwnerKey) {\n key = await adapter.getOwnerKey(username);\n }\n break;\n case 'active':\n if (adapter.getActiveKey) {\n key = await adapter.getActiveKey(username);\n }\n break;\n case 'memo':\n if (adapter.getMemoKey) {\n key = await adapter.getMemoKey(username);\n }\n break;\n case 'posting':\n default:\n key = await adapter.getPostingKey(username);\n break;\n }\n\n if (!key) {\n shouldSkip = true;\n skipReason = `No ${authority} key available`;\n } else {\n prefetchedKey = key; // Store for reuse\n }\n }\n break;\n case 'hiveauth':\n if (!adapter?.broadcastWithHiveAuth) {\n shouldSkip = true;\n skipReason = 'HiveAuth not supported by adapter';\n }\n break;\n case 'hivesigner':\n if (!adapter) {\n shouldSkip = true;\n skipReason = 'No adapter provided';\n } else {\n // Pre-fetch token if available (will be reused in broadcast)\n const token = await adapter.getAccessToken(username);\n if (token) {\n prefetchedToken = token; // Store for reuse\n }\n // When no token but adapter exists, don't skip —\n // broadcastWithMethod can fall back to adapter.broadcastWithHiveSigner\n }\n break;\n case 'keychain':\n if (!adapter?.broadcastWithKeychain) {\n shouldSkip = true;\n skipReason = 'Keychain not supported by adapter';\n }\n break;\n case 'custom':\n if (!auth?.broadcast) {\n shouldSkip = true;\n skipReason = 'No custom broadcast function provided';\n }\n break;\n }\n\n if (shouldSkip) {\n errors.set(method, new Error(`Skipped: ${skipReason}`));\n continue;\n }\n\n // Method is available, attempt broadcast with pre-fetched credentials\n return await broadcastWithMethod(method, username, ops, auth, authority, prefetchedKey, prefetchedToken, broadcastMode);\n } catch (error) {\n // Record actual error from failed broadcast attempt\n errors.set(method, error as Error);\n\n // Only continue fallback if error suggests trying another method\n if (!shouldTriggerAuthFallback(error)) {\n // If it's not an auth error, throw immediately (e.g., RC error, network error)\n throw error;\n }\n }\n }\n\n // FIX #2: Improved error message distinguishes between skips and real failures\n const hasRealAttempts = Array.from(errors.values()).some(\n error => !error.message.startsWith('Skipped:')\n );\n\n if (!hasRealAttempts) {\n // All methods were skipped (none attempted)\n const skipReasons = Array.from(errors.entries())\n .map(([method, error]) => `${method}: ${error.message}`)\n .join(', ');\n throw new Error(\n `[SDK][Broadcast] No auth methods attempted for ${username}. ${skipReasons}`\n );\n }\n\n // At least one method was attempted but all failed\n const errorMessages = Array.from(errors.entries())\n .map(([method, error]) => `${method}: ${error.message}`)\n .join(', ');\n\n throw new Error(\n `[SDK][Broadcast] All auth methods failed for ${username}. Errors: ${errorMessages}`\n );\n}\n\n/**\n * React Query mutation hook for broadcasting Hive operations.\n * Supports multiple authentication methods with automatic fallback.\n *\n * @template T - Type of the mutation payload\n * @param mutationKey - React Query mutation key for cache management\n * @param username - Hive username (required for broadcast)\n * @param operations - Function that converts payload to Hive operations\n * @param onSuccess - Success callback after broadcast completes\n * @param auth - Authentication context (supports both legacy AuthContext and new AuthContextV2)\n * @param authority - Key authority to use ('posting' | 'active' | 'owner' | 'memo'), defaults to 'posting'\n *\n * @returns React Query mutation result\n *\n * @remarks\n * **Authentication Flow:**\n *\n * 1. **With AuthContextV2 + adapter + enableFallback** (recommended for new code):\n * - Tries auth methods in fallbackChain order\n * - Smart fallback: only retries on auth errors, not RC/network errors\n * - Uses platform adapter for storage, UI, and broadcasting\n *\n * 2. **With legacy AuthContext** (backward compatible):\n * - Tries auth.broadcast() first (custom implementation)\n * - Falls back to postingKey if available\n * - Falls back to accessToken (HiveSigner) if available\n * - Throws if no auth method available\n *\n * **Backward Compatibility:**\n * - All existing code using AuthContext will continue to work\n * - AuthContextV2 extends AuthContext, so it's a drop-in replacement\n * - enableFallback defaults to false if no adapter provided\n *\n * @example\n * ```typescript\n * // New pattern with platform adapter and fallback\n * const mutation = useBroadcastMutation(\n * ['vote'],\n * username,\n * (payload) => [voteOperation(payload)],\n * () => console.log('Success!'),\n * {\n * adapter: myAdapter,\n * enableFallback: true,\n * fallbackChain: ['keychain', 'key', 'hivesigner']\n * },\n * 'posting'\n * );\n *\n * // Legacy pattern (still works)\n * const mutation = useBroadcastMutation(\n * ['vote'],\n * username,\n * (payload) => [voteOperation(payload)],\n * () => console.log('Success!'),\n * { postingKey: 'wif-key' }\n * );\n * ```\n */\n/**\n * Refuse operations that can never fit in one Hive transaction before any\n * signer (key, Keychain, HiveSigner, HiveAuth, MetaMask) sees them, so the\n * user gets a clear error instead of a broadcast that every node rejects.\n * Anything within the smallest limit witnesses can vote passes without a\n * network call; a larger transaction is judged against the live\n * maximum_block_size, or against the protocol ceiling if that cannot be read.\n * Only the size verdict is enforced: an operation this serializer cannot\n * encode is left to the signer, which serializes it on its own.\n */\nexport async function assertOperationsFitTransaction(ops: Operation[]): Promise<void> {\n let tx: Transaction;\n try {\n const transaction = {\n ref_block_num: 0,\n ref_block_prefix: 0,\n expiration: \"1970-01-01T00:00:00\",\n operations: ops,\n extensions: [],\n signatures: [],\n } as unknown as TransactionType;\n tx = new Transaction({ transaction });\n if (tx.size(1) <= MIN_TRANSACTION_SIZE_LIMIT) {\n return;\n }\n } catch {\n return;\n }\n try {\n // Short budget: this only delays an already oversized broadcast, and the\n // protocol ceiling still applies if the nodes are slow.\n const props = await callRPC(\"condenser_api.get_dynamic_global_properties\", [], 3000, 1);\n tx.maximumBlockSize = props?.maximum_block_size;\n } catch {\n // Unknown limit: assertSize falls back to the protocol ceiling.\n }\n tx.assertSize(1);\n}\n\nexport function useBroadcastMutation<T>(\n mutationKey: MutationKey = [],\n username: string | undefined,\n operations: (payload: T) => Operation[],\n onSuccess: UseMutationOptions<unknown, Error, T>[\"onSuccess\"] = () => {},\n auth?: AuthContextV2,\n authority: AuthorityLevel = 'posting',\n options?: {\n onMutate?: UseMutationOptions<unknown, Error, T>[\"onMutate\"];\n onError?: UseMutationOptions<unknown, Error, T>[\"onError\"];\n onSettled?: UseMutationOptions<unknown, Error, T>[\"onSettled\"];\n /**\n * Controls whether to wait for block inclusion or just mempool acceptance.\n *\n * - `'async'` (default): Returns after mempool acceptance. Recommended for\n * all operations; errors are still thrown immediately.\n *\n * - `'sync'`: Waits for block inclusion, returns block_num/trx_num.\n * Deprecated; prefer `'async'`.\n */\n broadcastMode?: BroadcastMode;\n }\n) {\n const broadcastMode = options?.broadcastMode ?? 'async';\n\n return useMutation({\n onSuccess,\n onMutate: options?.onMutate,\n onError: options?.onError,\n onSettled: options?.onSettled,\n mutationKey: [...mutationKey, username],\n mutationFn: async (payload: T) => {\n if (!username) {\n throw new Error(\n \"[Core][Broadcast] Attempted to call broadcast API with anon user\"\n );\n }\n\n const ops = operations(payload);\n await assertOperationsFitTransaction(ops);\n\n try {\n // New: Try auth methods in fallback chain (if enabled)\n if (auth?.enableFallback !== false && auth?.adapter) {\n return await broadcastWithFallback(username, ops, auth, authority, broadcastMode);\n }\n\n // Legacy behavior: try methods in fixed order (backward compatible)\n if (auth?.broadcast) {\n return await auth.broadcast(ops, authority);\n }\n\n const postingKey = auth?.postingKey;\n if (postingKey) {\n // Legacy auth only supports posting authority\n if (authority !== 'posting') {\n throw new Error(\n `[SDK][Broadcast] Legacy auth only supports posting authority, but '${authority}' was requested. ` +\n `Use AuthContextV2 with an adapter for ${authority} operations.`\n );\n }\n\n const privateKey = PrivateKey.fromString(postingKey);\n\n return await broadcastOperations(\n ops,\n privateKey\n );\n }\n\n const accessToken = auth?.accessToken;\n if (accessToken) {\n const client = new hs.Client({ accessToken });\n const response = await client.broadcast(ops);\n return response.result;\n }\n\n throw new Error(\n \"[SDK][Broadcast] – cannot broadcast w/o posting key or token\"\n );\n } catch (e) {\n if (e instanceof RPCError) {\n // Normalize raw blockchain rejections (missing authority, RC exhaustion,\n // validation failures) from every broadcast path — sync and async — into\n // a plain Error whose message is preserved for downstream classification\n // (formatError), so React Query captures a handled mutation error.\n throw new Error(e.message);\n }\n throw e\n }\n },\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-WTHEQ3M5.js';import {j}from'./chunk-RAWKN3XW.js';import {queryOptions}from'@tanstack/react-query';function c(o){return queryOptions({queryKey:a.accounts.followCount(o),queryFn:()=>j("condenser_api.get_follow_count",[o])})}export{c as a};//# sourceMappingURL=chunk-J5NBSH3V.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-J5NBSH3V.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/accounts/queries/get-follow-count-query-options.ts"],"names":["getFollowCountQueryOptions","username","queryOptions","QueryKeys","callRPC"],"mappings":"yHAQO,SAASA,CAAAA,CAA2BC,EAAkB,CAC3D,OAAOC,YAAAA,CAAa,CAClB,QAAA,CAAUC,CAAAA,CAAU,SAAS,WAAA,CAAYF,CAAQ,CAAA,CACjD,OAAA,CAAS,IACPG,CAAAA,CAAQ,gCAAA,CAAkC,CACxCH,CACF,CAAC,CACL,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/accounts/queries/get-follow-count-query-options.ts"],"names":["getFollowCountQueryOptions","username","queryOptions","QueryKeys","callRPC"],"mappings":"yHAQO,SAASA,CAAAA,CAA2BC,EAAkB,CAC3D,OAAOC,YAAAA,CAAa,CAClB,QAAA,CAAUC,CAAAA,CAAU,SAAS,WAAA,CAAYF,CAAQ,CAAA,CACjD,OAAA,CAAS,IACPG,CAAAA,CAAQ,gCAAA,CAAkC,CACxCH,CACF,CAAC,CACL,CAAC,CACH","file":"chunk-J5NBSH3V.js","sourcesContent":["import { queryOptions } from \"@tanstack/react-query\";\nimport { QueryKeys } from \"@/modules/core\";\nimport { AccountFollowStats } from \"../types\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\n\n/**\n * Get follow count (followers and following) for an account\n */\nexport function getFollowCountQueryOptions(username: string) {\n return queryOptions({\n queryKey: QueryKeys.accounts.followCount(username),\n queryFn: () =>\n callRPC(\"condenser_api.get_follow_count\", [\n username,\n ]) as Promise<AccountFollowStats>,\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b}from'./chunk-Z6HCXX2D.js';import {a}from'./chunk-3E4RUQ7M.js';import {b as b$1}from'./chunk-POHYQBLL.js';import {a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {b}from'./chunk-Z6HCXX2D.js';import {a}from'./chunk-3E4RUQ7M.js';import {b as b$1}from'./chunk-POHYQBLL.js';import {a as a$1}from'./chunk-WTHEQ3M5.js';import {queryOptions}from'@tanstack/react-query';function p(e){return queryOptions({queryKey:a$1.wallet.receivedVestingShares(e),enabled:!!e,queryFn:async()=>b(e,await b$1().fetchQuery({...a(e),staleTime:6e4}))})}export{p as a};//# sourceMappingURL=chunk-JBBGDTGD.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-JBBGDTGD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/wallet/queries/get-received-vesting-shares-query-options.ts"],"names":["getReceivedVestingSharesQueryOptions","username","queryOptions","QueryKeys","toReceivedVestingShares","getQueryClient","getAccountDelegationsQueryOptions"],"mappings":"+MAcO,SAASA,CAAAA,CAAqCC,EAAkB,CACrE,OAAOC,YAAAA,CAAa,CAClB,SAAUC,GAAAA,CAAU,MAAA,CAAO,sBAAsBF,CAAQ,CAAA,CACzD,QAAS,CAAC,CAACA,CAAAA,CACX,OAAA,CAAS,SACPG,CAAAA,CACEH,CAAAA,CAGA,MAAMI,GAAAA,EAAe,CAAE,WAAW,CAChC,GAAGC,CAAAA,CAAkCL,CAAQ,EAC7C,SAAA,CAAW,GACb,CAAC,CACH,CACJ,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/wallet/queries/get-received-vesting-shares-query-options.ts"],"names":["getReceivedVestingSharesQueryOptions","username","queryOptions","QueryKeys","toReceivedVestingShares","getQueryClient","getAccountDelegationsQueryOptions"],"mappings":"+MAcO,SAASA,CAAAA,CAAqCC,EAAkB,CACrE,OAAOC,YAAAA,CAAa,CAClB,SAAUC,GAAAA,CAAU,MAAA,CAAO,sBAAsBF,CAAQ,CAAA,CACzD,QAAS,CAAC,CAACA,CAAAA,CACX,OAAA,CAAS,SACPG,CAAAA,CACEH,CAAAA,CAGA,MAAMI,GAAAA,EAAe,CAAE,WAAW,CAChC,GAAGC,CAAAA,CAAkCL,CAAQ,EAC7C,SAAA,CAAW,GACb,CAAC,CACH,CACJ,CAAC,CACH","file":"chunk-JBBGDTGD.js","sourcesContent":["import { queryOptions } from \"@tanstack/react-query\";\nimport { getQueryClient, QueryKeys } from \"@/modules/core\";\nimport { getAccountDelegationsQueryOptions } from \"./get-account-delegations-query-options\";\nimport { toReceivedVestingShares } from \"../utils/received-vesting-shares\";\n\n/**\n * Who delegates HP to `username`, largest first.\n *\n * Read from the HAF balance-api through {@link getAccountDelegationsQueryOptions}\n * (fetched via the shared query client, so a page showing the totals and the\n * list makes one request), not from the Ecency notification database any more.\n * The return shape is unchanged apart from `timestamp`, which balance-api does\n * not carry.\n */\nexport function getReceivedVestingSharesQueryOptions(username: string) {\n return queryOptions({\n queryKey: QueryKeys.wallet.receivedVestingShares(username),\n enabled: !!username,\n queryFn: async () =>\n toReceivedVestingShares(\n username,\n // A page that shows the totals and the list asks twice within seconds;\n // a minute of freshness makes that one balance-api request.\n await getQueryClient().fetchQuery({\n ...getAccountDelegationsQueryOptions(username),\n staleTime: 60_000,\n }),\n ),\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-SEACJS36.js';import {b}from'./chunk-ASN6FTIA.js';import {c}from'./chunk-OMSXAN23.js';import {a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-SEACJS36.js';import {b}from'./chunk-ASN6FTIA.js';import {c}from'./chunk-OMSXAN23.js';import {a as a$1}from'./chunk-WTHEQ3M5.js';import {queryOptions,infiniteQueryOptions}from'@tanstack/react-query';function h(t,n){return queryOptions({queryKey:a$1.accounts.favorites(t),enabled:!!t&&!!n,queryFn:async()=>{if(!t||!n)throw new Error("[SDK][Accounts][Favorites] \u2013 missing auth");return await(await a()(c.privateApiHost+"/private-api/favorites",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:n})})).json()}})}function v(t,n,i=10){return infiniteQueryOptions({queryKey:a$1.accounts.favoritesInfinite(t,i),queryFn:async({pageParam:e=0})=>{if(!t||!n)return {data:[],pagination:{total:0,limit:i,offset:0,has_next:false}};let o=await a()(`${c.privateApiHost}/private-api/favorites?format=wrapped&offset=${e}&limit=${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:n})});if(!o.ok)throw new Error(`Failed to fetch favorites: ${o.status}`);let f=await o.json();return b(f,i)},initialPageParam:0,getNextPageParam:e=>{if(e.pagination.has_next)return e.pagination.offset+e.pagination.limit},enabled:!!t&&!!n})}export{h as a,v as b};//# sourceMappingURL=chunk-JEYSB5GX.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-JEYSB5GX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/accounts/queries/get-favorites-query-options.ts"],"names":["getFavoritesQueryOptions","activeUsername","code","queryOptions","QueryKeys","getBoundFetch","CONFIG","getFavoritesInfiniteQueryOptions","limit","infiniteQueryOptions","pageParam","response","json","normalizeToWrappedResponse","lastPage"],"mappings":"6NAIO,SAASA,CAAAA,CACdC,EACAC,CAAAA,CACA,CACA,OAAOC,YAAAA,CAAa,CAClB,SAAUC,GAAAA,CAAU,QAAA,CAAS,UAAUH,CAAc,CAAA,CACrD,OAAA,CAAS,CAAC,CAACA,CAAAA,EAAkB,CAAC,CAACC,CAAAA,CAC/B,QAAS,SAAY,CACnB,GAAI,CAACD,CAAAA,EAAkB,CAACC,CAAAA,CACtB,MAAM,IAAI,KAAA,CAAM,gDAA2C,EAa7D,OAAQ,KAAA,CAVS,MADAG,CAAAA,EAAc,CAE7BC,CAAAA,CAAO,cAAA,CAAiB,wBAAA,CACxB,CACE,OAAQ,MAAA,CACR,OAAA,CAAS,CACP,cAAA,CAAgB,kBAClB,EACA,IAAA,CAAM,IAAA,CAAK,UAAU,CAAE,IAAA,CAAAJ,CAAK,CAAC,CAC/B,CACF,CAAA,EACuB,IAAA,EACzB,CACF,CAAC,CACH,CAEO,SAASK,CAAAA,CACdN,EACAC,CAAAA,CACAM,CAAAA,CAAgB,GAChB,CACA,OAAOC,qBAAqB,CAC1B,QAAA,CAAUL,GAAAA,CAAU,QAAA,CAAS,iBAAA,CAAkBH,CAAAA,CAAgBO,CAAK,CAAA,CACpE,OAAA,CAAS,MAAO,CAAE,SAAA,CAAAE,EAAY,CAAE,CAAA,GAAM,CACpC,GAAI,CAACT,CAAAA,EAAkB,CAACC,CAAAA,CACtB,OAAO,CACL,IAAA,CAAM,GACN,UAAA,CAAY,CACV,MAAO,CAAA,CACP,KAAA,CAAAM,EACA,MAAA,CAAQ,CAAA,CACR,SAAU,KACZ,CACF,EAIF,IAAMG,CAAAA,CAAW,MADAN,CAAAA,EAAc,CAE7B,CAAA,EAAGC,EAAO,cAAc,CAAA,6CAAA,EAAgDI,CAAS,CAAA,OAAA,EAAUF,CAAK,GAChG,CACE,MAAA,CAAQ,OACR,OAAA,CAAS,CACP,eAAgB,kBAClB,CAAA,CACA,KAAM,IAAA,CAAK,SAAA,CAAU,CAAE,IAAA,CAAAN,CAAK,CAAC,CAC/B,CACF,CAAA,CAEA,GAAI,CAACS,CAAAA,CAAS,GACZ,MAAM,IAAI,MAAM,CAAA,2BAAA,EAA8BA,CAAAA,CAAS,MAAM,CAAA,CAAE,CAAA,CAGjE,IAAMC,CAAAA,CAAO,MAAMD,EAAS,IAAA,EAAK,CACjC,OAAOE,CAAAA,CAA4CD,CAAAA,CAAMJ,CAAK,CAChE,CAAA,CACA,gBAAA,CAAkB,EAClB,gBAAA,CAAmBM,CAAAA,EAAa,CAC9B,GAAIA,CAAAA,CAAS,WAAW,QAAA,CACtB,OAAOA,CAAAA,CAAS,UAAA,CAAW,MAAA,CAASA,CAAAA,CAAS,WAAW,KAG5D,CAAA,CACA,QAAS,CAAC,CAACb,GAAkB,CAAC,CAACC,CACjC,CAAC,CACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/accounts/queries/get-favorites-query-options.ts"],"names":["getFavoritesQueryOptions","activeUsername","code","queryOptions","QueryKeys","getBoundFetch","CONFIG","getFavoritesInfiniteQueryOptions","limit","infiniteQueryOptions","pageParam","response","json","normalizeToWrappedResponse","lastPage"],"mappings":"6NAIO,SAASA,CAAAA,CACdC,EACAC,CAAAA,CACA,CACA,OAAOC,YAAAA,CAAa,CAClB,SAAUC,GAAAA,CAAU,QAAA,CAAS,UAAUH,CAAc,CAAA,CACrD,OAAA,CAAS,CAAC,CAACA,CAAAA,EAAkB,CAAC,CAACC,CAAAA,CAC/B,QAAS,SAAY,CACnB,GAAI,CAACD,CAAAA,EAAkB,CAACC,CAAAA,CACtB,MAAM,IAAI,KAAA,CAAM,gDAA2C,EAa7D,OAAQ,KAAA,CAVS,MADAG,CAAAA,EAAc,CAE7BC,CAAAA,CAAO,cAAA,CAAiB,wBAAA,CACxB,CACE,OAAQ,MAAA,CACR,OAAA,CAAS,CACP,cAAA,CAAgB,kBAClB,EACA,IAAA,CAAM,IAAA,CAAK,UAAU,CAAE,IAAA,CAAAJ,CAAK,CAAC,CAC/B,CACF,CAAA,EACuB,IAAA,EACzB,CACF,CAAC,CACH,CAEO,SAASK,CAAAA,CACdN,EACAC,CAAAA,CACAM,CAAAA,CAAgB,GAChB,CACA,OAAOC,qBAAqB,CAC1B,QAAA,CAAUL,GAAAA,CAAU,QAAA,CAAS,iBAAA,CAAkBH,CAAAA,CAAgBO,CAAK,CAAA,CACpE,OAAA,CAAS,MAAO,CAAE,SAAA,CAAAE,EAAY,CAAE,CAAA,GAAM,CACpC,GAAI,CAACT,CAAAA,EAAkB,CAACC,CAAAA,CACtB,OAAO,CACL,IAAA,CAAM,GACN,UAAA,CAAY,CACV,MAAO,CAAA,CACP,KAAA,CAAAM,EACA,MAAA,CAAQ,CAAA,CACR,SAAU,KACZ,CACF,EAIF,IAAMG,CAAAA,CAAW,MADAN,CAAAA,EAAc,CAE7B,CAAA,EAAGC,EAAO,cAAc,CAAA,6CAAA,EAAgDI,CAAS,CAAA,OAAA,EAAUF,CAAK,GAChG,CACE,MAAA,CAAQ,OACR,OAAA,CAAS,CACP,eAAgB,kBAClB,CAAA,CACA,KAAM,IAAA,CAAK,SAAA,CAAU,CAAE,IAAA,CAAAN,CAAK,CAAC,CAC/B,CACF,CAAA,CAEA,GAAI,CAACS,CAAAA,CAAS,GACZ,MAAM,IAAI,MAAM,CAAA,2BAAA,EAA8BA,CAAAA,CAAS,MAAM,CAAA,CAAE,CAAA,CAGjE,IAAMC,CAAAA,CAAO,MAAMD,EAAS,IAAA,EAAK,CACjC,OAAOE,CAAAA,CAA4CD,CAAAA,CAAMJ,CAAK,CAChE,CAAA,CACA,gBAAA,CAAkB,EAClB,gBAAA,CAAmBM,CAAAA,EAAa,CAC9B,GAAIA,CAAAA,CAAS,WAAW,QAAA,CACtB,OAAOA,CAAAA,CAAS,UAAA,CAAW,MAAA,CAASA,CAAAA,CAAS,WAAW,KAG5D,CAAA,CACA,QAAS,CAAC,CAACb,GAAkB,CAAC,CAACC,CACjC,CAAC,CACH","file":"chunk-JEYSB5GX.js","sourcesContent":["import { CONFIG, getBoundFetch, normalizeToWrappedResponse, QueryKeys } from \"@/modules/core\";\nimport { infiniteQueryOptions, queryOptions } from \"@tanstack/react-query\";\nimport { AccountFavorite } from \"../types\";\n\nexport function getFavoritesQueryOptions(\n activeUsername: string | undefined,\n code: string | undefined\n) {\n return queryOptions({\n queryKey: QueryKeys.accounts.favorites(activeUsername),\n enabled: !!activeUsername && !!code,\n queryFn: async () => {\n if (!activeUsername || !code) {\n throw new Error(\"[SDK][Accounts][Favorites] – missing auth\");\n }\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n CONFIG.privateApiHost + \"/private-api/favorites\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code }),\n }\n );\n return (await response.json()) as AccountFavorite[];\n },\n });\n}\n\nexport function getFavoritesInfiniteQueryOptions(\n activeUsername: string | undefined,\n code: string | undefined,\n limit: number = 10\n) {\n return infiniteQueryOptions({\n queryKey: QueryKeys.accounts.favoritesInfinite(activeUsername, limit),\n queryFn: async ({ pageParam = 0 }) => {\n if (!activeUsername || !code) {\n return {\n data: [],\n pagination: {\n total: 0,\n limit,\n offset: 0,\n has_next: false,\n },\n };\n }\n\n const fetchApi = getBoundFetch();\n const response = await fetchApi(\n `${CONFIG.privateApiHost}/private-api/favorites?format=wrapped&offset=${pageParam}&limit=${limit}`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ code }),\n }\n );\n\n if (!response.ok) {\n throw new Error(`Failed to fetch favorites: ${response.status}`);\n }\n\n const json = await response.json();\n return normalizeToWrappedResponse<AccountFavorite>(json, limit);\n },\n initialPageParam: 0,\n getNextPageParam: (lastPage) => {\n if (lastPage.pagination.has_next) {\n return lastPage.pagination.offset + lastPage.pagination.limit;\n }\n return undefined;\n },\n enabled: !!activeUsername && !!code,\n });\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-K3LA2I7M.js';import {b as b$1}from'./chunk-CNB64U7U.js';import {b}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-K3LA2I7M.js';import {b as b$1}from'./chunk-CNB64U7U.js';import {b}from'./chunk-J2HM6MWA.js';import {a as a$1}from'./chunk-WTHEQ3M5.js';function f(t,n,a$2){return b(["accounts","follow"],t,({following:r})=>[a(t,r)],async(r,l)=>{await b$1(n?.adapter,a$2,[a$1.accounts.relations(t,l.following),a$1.accounts.full(l.following),a$1.accounts.followCount(l.following),a$1.accounts.followCount(t)]);},n,"posting",{broadcastMode:a$2??"async"})}export{f as a};//# sourceMappingURL=chunk-JG7HMCAI.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-JG7HMCAI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/accounts/mutations/use-follow.ts"],"names":["useFollow","username","auth","broadcastMode","useBroadcastMutation","following","buildFollowOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"8JA2CO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,GAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,UAAA,CAAY,QAAQ,CAAA,CACrBH,CAAAA,CACA,CAAC,CAAE,SAAA,CAAAI,CAAU,CAAA,GAAM,CACjBC,CAAAA,CAAcL,CAAAA,CAAWI,CAAS,CACpC,CAAA,CACA,MAAOE,CAAAA,CAAcC,CAAAA,GAAc,CAEjC,MAAMC,GAAAA,CAAyBP,CAAAA,EAAM,QAASC,GAAAA,CAAe,CAC3DO,GAAAA,CAAU,QAAA,CAAS,SAAA,CAAUT,CAAAA,CAAWO,CAAAA,CAAU,SAAS,EAC3DE,GAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,SAAS,CAAA,CAC3CE,GAAAA,CAAU,QAAA,CAAS,YAAYF,CAAAA,CAAU,SAAS,CAAA,CAClDE,GAAAA,CAAU,QAAA,CAAS,WAAA,CAAYT,CAAS,CAC1C,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAeC,GAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/accounts/mutations/use-follow.ts"],"names":["useFollow","username","auth","broadcastMode","useBroadcastMutation","following","buildFollowOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"8JA2CO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,GAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,UAAA,CAAY,QAAQ,CAAA,CACrBH,CAAAA,CACA,CAAC,CAAE,SAAA,CAAAI,CAAU,CAAA,GAAM,CACjBC,CAAAA,CAAcL,CAAAA,CAAWI,CAAS,CACpC,CAAA,CACA,MAAOE,CAAAA,CAAcC,CAAAA,GAAc,CAEjC,MAAMC,GAAAA,CAAyBP,CAAAA,EAAM,QAASC,GAAAA,CAAe,CAC3DO,GAAAA,CAAU,QAAA,CAAS,SAAA,CAAUT,CAAAA,CAAWO,CAAAA,CAAU,SAAS,EAC3DE,GAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,SAAS,CAAA,CAC3CE,GAAAA,CAAU,QAAA,CAAS,YAAYF,CAAAA,CAAU,SAAS,CAAA,CAClDE,GAAAA,CAAU,QAAA,CAAS,WAAA,CAAYT,CAAS,CAC1C,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAeC,GAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-JG7HMCAI.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildFollowOp } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\n/**\n * Payload for following an account.\n */\nexport interface FollowPayload {\n /** Account to follow */\n following: string;\n}\n\n/**\n * React Query mutation hook for following an account.\n *\n * This mutation broadcasts a follow operation to the Hive blockchain,\n * adding the target account to the follower's \"blog\" follow list.\n *\n * @param username - The username of the follower (required for broadcast)\n * @param auth - Authentication context with platform adapter and fallback configuration\n *\n * @returns React Query mutation result\n *\n * @remarks\n * **Post-Broadcast Actions:**\n * - Invalidates relationship cache to show updated follow status\n * - Invalidates account cache to refetch updated follower/following counts\n *\n * @example\n * ```typescript\n * const followMutation = useFollow(username, {\n * adapter: myAdapter,\n * enableFallback: true,\n * fallbackChain: ['keychain', 'key', 'hivesigner']\n * });\n *\n * // Follow an account\n * followMutation.mutate({\n * following: 'alice'\n * });\n * ```\n */\nexport function useFollow(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<FollowPayload>(\n [\"accounts\", \"follow\"],\n username,\n ({ following }) => [\n buildFollowOp(username!, following)\n ],\n async (_result: any, variables) => {\n // Cache invalidation\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.relations(username!, variables.following),\n QueryKeys.accounts.full(variables.following),\n QueryKeys.accounts.followCount(variables.following),\n QueryKeys.accounts.followCount(username!)\n ]);\n },\n auth,\n 'posting',\n { broadcastMode: broadcastMode ?? 'async' }\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {h}from'./chunk-4COFIDSX.js';import {b}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {h}from'./chunk-4COFIDSX.js';import {b}from'./chunk-J2HM6MWA.js';import {a}from'./chunk-WTHEQ3M5.js';function u(i,e,s){return b(["communities","registerRewards"],i,({name:r})=>[h(r)],async(r,n)=>{e?.adapter?.invalidateQueries&&await e.adapter.invalidateQueries([[...a.communities.singlePrefix(n.name)],[...a.points._prefix(i)]]);},e,"active",{broadcastMode:s})}export{u as a};//# sourceMappingURL=chunk-JM4J2N4W.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-JM4J2N4W.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/communities/mutations/use-register-community-rewards.ts"],"names":["useRegisterCommunityRewards","username","auth","broadcastMode","useBroadcastMutation","name","buildCommunityRegistrationOp","_result","variables","QueryKeys"],"mappings":"4GAqDO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,aAAA,CAAe,iBAAiB,CAAA,CACjCH,CAAAA,CACA,CAAC,CAAE,IAAA,CAAAI,CAAK,CAAA,GAAM,CACZC,CAAAA,CAA6BD,CAAI,CACnC,CAAA,CACA,MAAOE,CAAAA,CAAcC,CAAAA,GAAc,CAE7BN,CAAAA,EAAM,OAAA,EAAS,iBAAA,EACjB,MAAMA,CAAAA,CAAK,OAAA,CAAQ,iBAAA,CAAkB,CAEnC,CAAC,GAAGO,CAAAA,CAAU,WAAA,CAAY,YAAA,CAAaD,CAAAA,CAAU,IAAI,CAAC,CAAA,CAEtD,CAAC,GAAGC,CAAAA,CAAU,MAAA,CAAO,OAAA,CAAQR,CAAS,CAAC,CACzC,CAAC,EAEL,CAAA,CACAC,CAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/communities/mutations/use-register-community-rewards.ts"],"names":["useRegisterCommunityRewards","username","auth","broadcastMode","useBroadcastMutation","name","buildCommunityRegistrationOp","_result","variables","QueryKeys"],"mappings":"4GAqDO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,aAAA,CAAe,iBAAiB,CAAA,CACjCH,CAAAA,CACA,CAAC,CAAE,IAAA,CAAAI,CAAK,CAAA,GAAM,CACZC,CAAAA,CAA6BD,CAAI,CACnC,CAAA,CACA,MAAOE,CAAAA,CAAcC,CAAAA,GAAc,CAE7BN,CAAAA,EAAM,OAAA,EAAS,iBAAA,EACjB,MAAMA,CAAAA,CAAK,OAAA,CAAQ,iBAAA,CAAkB,CAEnC,CAAC,GAAGO,CAAAA,CAAU,WAAA,CAAY,YAAA,CAAaD,CAAAA,CAAU,IAAI,CAAC,CAAA,CAEtD,CAAC,GAAGC,CAAAA,CAAU,MAAA,CAAO,OAAA,CAAQR,CAAS,CAAC,CACzC,CAAC,EAEL,CAAA,CACAC,CAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-JM4J2N4W.js","sourcesContent":["import { useBroadcastMutation, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildCommunityRegistrationOp } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\n/**\n * Payload for community rewards registration.\n */\nexport interface CommunityRewardsRegisterPayload {\n /** Community account name (usually the community creator's account) */\n name: string;\n}\n\n/**\n * React Query mutation hook for registering to receive community rewards.\n *\n * This mutation broadcasts a custom_json operation to register a community\n * account to receive Ecency Points rewards for community activity.\n *\n * @param username - The username registering for community rewards (required for broadcast)\n * @param auth - Authentication context with platform adapter and fallback configuration\n *\n * @returns React Query mutation result\n *\n * @remarks\n * **Post-Broadcast Actions:**\n * - Invalidates community cache to update registration status\n * - Invalidates points balance to reflect potential initial rewards\n *\n * **Operation Details:**\n * - Uses custom_json operation with id \"ecency_registration\"\n * - JSON: {\"name\": \"communityname\"}\n * - Authority: Active key (required for registration)\n *\n * **Purpose:**\n * - Enables communities to receive Ecency Points for activity\n * - One-time registration per community\n * - Can only be done by the community owner/creator\n *\n * @example\n * ```typescript\n * const registerMutation = useRegisterCommunityRewards(username, {\n * adapter: myAdapter,\n * enableFallback: true,\n * fallbackChain: ['keychain', 'key', 'hivesigner']\n * });\n *\n * // Register community for rewards\n * registerMutation.mutate({\n * name: 'hive-123456'\n * });\n * ```\n */\nexport function useRegisterCommunityRewards(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<CommunityRewardsRegisterPayload>(\n [\"communities\", \"registerRewards\"],\n username,\n ({ name }) => [\n buildCommunityRegistrationOp(name)\n ],\n async (_result: any, variables) => {\n // Cache invalidation\n if (auth?.adapter?.invalidateQueries) {\n await auth.adapter.invalidateQueries([\n // Invalidate community cache to update registration status\n [...QueryKeys.communities.singlePrefix(variables.name)],\n // Invalidate points balance\n [...QueryKeys.points._prefix(username!)],\n ]);\n }\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b as b$1}from'./chunk-K3LA2I7M.js';import {b as b$2}from'./chunk-CNB64U7U.js';import {b}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {b as b$1}from'./chunk-K3LA2I7M.js';import {b as b$2}from'./chunk-CNB64U7U.js';import {b}from'./chunk-J2HM6MWA.js';import {a}from'./chunk-WTHEQ3M5.js';function s(t,n,a$1){return b(["accounts","unfollow"],t,({following:r})=>[b$1(t,r)],async(r,l)=>{await b$2(n?.adapter,a$1,[a.accounts.relations(t,l.following),a.accounts.full(l.following),a.accounts.followCount(l.following),a.accounts.followCount(t)]);},n,"posting",{broadcastMode:a$1??"async"})}export{s as a};//# sourceMappingURL=chunk-JT3FBTE4.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-JT3FBTE4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/modules/accounts/mutations/use-unfollow.ts"],"names":["useUnfollow","username","auth","broadcastMode","useBroadcastMutation","following","buildUnfollowOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"8JA2CO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,GAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,UAAA,CAAY,UAAU,CAAA,CACvBH,CAAAA,CACA,CAAC,CAAE,SAAA,CAAAI,CAAU,CAAA,GAAM,CACjBC,GAAAA,CAAgBL,CAAAA,CAAWI,CAAS,CACtC,CAAA,CACA,MAAOE,CAAAA,CAAcC,CAAAA,GAAc,CAEjC,MAAMC,GAAAA,CAAyBP,CAAAA,EAAM,QAASC,GAAAA,CAAe,CAC3DO,CAAAA,CAAU,QAAA,CAAS,SAAA,CAAUT,CAAAA,CAAWO,CAAAA,CAAU,SAAS,EAC3DE,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,SAAS,CAAA,CAC3CE,CAAAA,CAAU,QAAA,CAAS,YAAYF,CAAAA,CAAU,SAAS,CAAA,CAClDE,CAAAA,CAAU,QAAA,CAAS,WAAA,CAAYT,CAAS,CAC1C,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAeC,GAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/modules/accounts/mutations/use-unfollow.ts"],"names":["useUnfollow","username","auth","broadcastMode","useBroadcastMutation","following","buildUnfollowOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"8JA2CO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,GAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,UAAA,CAAY,UAAU,CAAA,CACvBH,CAAAA,CACA,CAAC,CAAE,SAAA,CAAAI,CAAU,CAAA,GAAM,CACjBC,GAAAA,CAAgBL,CAAAA,CAAWI,CAAS,CACtC,CAAA,CACA,MAAOE,CAAAA,CAAcC,CAAAA,GAAc,CAEjC,MAAMC,GAAAA,CAAyBP,CAAAA,EAAM,QAASC,GAAAA,CAAe,CAC3DO,CAAAA,CAAU,QAAA,CAAS,SAAA,CAAUT,CAAAA,CAAWO,CAAAA,CAAU,SAAS,EAC3DE,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,SAAS,CAAA,CAC3CE,CAAAA,CAAU,QAAA,CAAS,YAAYF,CAAAA,CAAU,SAAS,CAAA,CAClDE,CAAAA,CAAU,QAAA,CAAS,WAAA,CAAYT,CAAS,CAC1C,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAeC,GAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-JT3FBTE4.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildUnfollowOp } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\n/**\n * Payload for unfollowing an account.\n */\nexport interface UnfollowPayload {\n /** Account to unfollow */\n following: string;\n}\n\n/**\n * React Query mutation hook for unfollowing an account.\n *\n * This mutation broadcasts an unfollow operation to the Hive blockchain,\n * removing the target account from the follower's follow list.\n *\n * @param username - The username of the follower (required for broadcast)\n * @param auth - Authentication context with platform adapter and fallback configuration\n *\n * @returns React Query mutation result\n *\n * @remarks\n * **Post-Broadcast Actions:**\n * - Invalidates relationship cache to show updated follow status\n * - Invalidates account cache to refetch updated follower/following counts\n *\n * @example\n * ```typescript\n * const unfollowMutation = useUnfollow(username, {\n * adapter: myAdapter,\n * enableFallback: true,\n * fallbackChain: ['keychain', 'key', 'hivesigner']\n * });\n *\n * // Unfollow an account\n * unfollowMutation.mutate({\n * following: 'alice'\n * });\n * ```\n */\nexport function useUnfollow(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<UnfollowPayload>(\n [\"accounts\", \"unfollow\"],\n username,\n ({ following }) => [\n buildUnfollowOp(username!, following)\n ],\n async (_result: any, variables) => {\n // Cache invalidation\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.relations(username!, variables.following),\n QueryKeys.accounts.full(variables.following),\n QueryKeys.accounts.followCount(variables.following),\n QueryKeys.accounts.followCount(username!)\n ]);\n },\n auth,\n 'posting',\n { broadcastMode: broadcastMode ?? 'async' }\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-SEACJS36.js';import {b as b$1,c}from'./chunk-OMSXAN23.js';import {a as a$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-SEACJS36.js';import {b as b$1,c}from'./chunk-OMSXAN23.js';import {a as a$1}from'./chunk-WTHEQ3M5.js';import {queryOptions,isServer}from'@tanstack/react-query';function m(e){let t=e.poll_choices??[],l=e.poll_voters??[],o=e.poll_stats,i=t.map(n=>{let r=n.votes;return {choice_num:n.choice_num??0,choice_text:n.choice_text??"",votes:r?{total_votes:r.total_votes??0,hive_hp:r.hive_hp,hive_proxied_hp:r.hive_proxied_hp,hive_hp_incl_proxied:r.hive_hp_incl_proxied??null}:void 0}}),s=l.map(n=>({name:n.name??"",choices:n.choices??[],hive_hp:n.hive_hp,hive_proxied_hp:n.hive_proxied_hp,hive_hp_incl_proxied:n.hive_hp_incl_proxied})),p=o?{total_voting_accounts_num:o.total_voting_accounts_num??0,total_hive_hp:o.total_hive_hp,total_hive_proxied_hp:o.total_hive_proxied_hp,total_hive_hp_incl_proxied:o.total_hive_hp_incl_proxied??null}:void 0;return {author:e.author??"",permlink:e.permlink??"",question:e.question??"",poll_choices:i,poll_voters:s,poll_stats:p,poll_trx_id:e.poll_trx_id??"",status:e.status??"",end_time:e.end_time??"",preferred_interpretation:e.preferred_interpretation??"number_of_votes",max_choices_voted:e.max_choices_voted??1,filter_account_age_days:e.filter_account_age_days??0,protocol_version:e.protocol_version??0,created:e.created??"",post_title:e.post_title??"",post_body:e.post_body??"",parent_permlink:e.parent_permlink??"",tags:e.tags??[],image:e.image??[],token:e.token,community_membership:e.community_membership,allow_vote_changes:e.allow_vote_changes,ui_hide_res_until_voted:e.ui_hide_res_until_voted??false,platform:e.platform}}function b(e,t){return queryOptions({queryKey:a$1.polls.details(e??"",t??""),enabled:!!e&&!!t,gcTime:isServer?b$1:1800*1e3,queryFn:async()=>{if(!e||!t)throw new Error("[SDK][Polls] \u2013 missing author or permlink");let l=a(),o=`${c.pollsApiHost}/rpc/poll?author=eq.${encodeURIComponent(e)}&permlink=eq.${encodeURIComponent(t)}`,i=await l(o);if(!i.ok)throw new Error(`[SDK][Polls] \u2013 fetch failed: ${i.status}`);let s=await i.json();if(!Array.isArray(s)||!s[0])throw new Error("[SDK][Polls] \u2013 no poll data found");return m(s[0])}})}export{b as a};//# sourceMappingURL=chunk-K2AH4UHN.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-K2AH4UHN.js.map
|