@ecency/sdk 2.4.21 → 2.4.22

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.
Files changed (516) hide show
  1. package/dist/browser/{chunk-JORE46WK.js → chunk-2EYZMIWD.js} +2 -2
  2. package/dist/browser/{chunk-JORE46WK.js.map → chunk-2EYZMIWD.js.map} +1 -1
  3. package/dist/browser/{chunk-N3JLKXGY.js → chunk-2MIOCMJB.js} +2 -2
  4. package/dist/browser/{chunk-N3JLKXGY.js.map → chunk-2MIOCMJB.js.map} +1 -1
  5. package/dist/browser/{chunk-EU3FL3RJ.js → chunk-2PMKAOIU.js} +2 -2
  6. package/dist/browser/{chunk-EU3FL3RJ.js.map → chunk-2PMKAOIU.js.map} +1 -1
  7. package/dist/browser/{chunk-HESIUSO3.js → chunk-3DS7HIZ6.js} +2 -2
  8. package/dist/browser/{chunk-HESIUSO3.js.map → chunk-3DS7HIZ6.js.map} +1 -1
  9. package/dist/browser/{chunk-RVXGI5TW.js → chunk-4EL7BARO.js} +2 -2
  10. package/dist/browser/{chunk-RVXGI5TW.js.map → chunk-4EL7BARO.js.map} +1 -1
  11. package/dist/browser/{chunk-6DDGZBMD.js → chunk-4JZTDTIL.js} +2 -2
  12. package/dist/browser/{chunk-6DDGZBMD.js.map → chunk-4JZTDTIL.js.map} +1 -1
  13. package/dist/browser/{chunk-7B5LNIZJ.js → chunk-4NADA62G.js} +2 -2
  14. package/dist/browser/{chunk-7B5LNIZJ.js.map → chunk-4NADA62G.js.map} +1 -1
  15. package/dist/browser/{chunk-SQZKXKLW.js → chunk-57A4DG2S.js} +2 -2
  16. package/dist/browser/{chunk-SQZKXKLW.js.map → chunk-57A4DG2S.js.map} +1 -1
  17. package/dist/browser/{chunk-GQGDHPRQ.js → chunk-5BITQZND.js} +2 -2
  18. package/dist/browser/{chunk-GQGDHPRQ.js.map → chunk-5BITQZND.js.map} +1 -1
  19. package/dist/browser/{chunk-RJNZILJR.js → chunk-62ME2K4P.js} +2 -2
  20. package/dist/browser/{chunk-RJNZILJR.js.map → chunk-62ME2K4P.js.map} +1 -1
  21. package/dist/browser/{chunk-FVLWW7QJ.js → chunk-6ARQ76GD.js} +2 -2
  22. package/dist/browser/{chunk-FVLWW7QJ.js.map → chunk-6ARQ76GD.js.map} +1 -1
  23. package/dist/browser/{chunk-Q6EALMA3.js → chunk-7334637K.js} +2 -2
  24. package/dist/browser/{chunk-Q6EALMA3.js.map → chunk-7334637K.js.map} +1 -1
  25. package/dist/browser/{chunk-XTYTT3BK.js → chunk-7JPEXH7J.js} +2 -2
  26. package/dist/browser/{chunk-XTYTT3BK.js.map → chunk-7JPEXH7J.js.map} +1 -1
  27. package/dist/browser/{chunk-VWPIV7DW.js → chunk-7OD25PBQ.js} +2 -2
  28. package/dist/browser/{chunk-VWPIV7DW.js.map → chunk-7OD25PBQ.js.map} +1 -1
  29. package/dist/browser/{chunk-H6FI5RUB.js → chunk-7Q3WCU66.js} +2 -2
  30. package/dist/browser/{chunk-H6FI5RUB.js.map → chunk-7Q3WCU66.js.map} +1 -1
  31. package/dist/browser/{chunk-BUHCN53D.js → chunk-7THEMMDR.js} +2 -2
  32. package/dist/browser/{chunk-BUHCN53D.js.map → chunk-7THEMMDR.js.map} +1 -1
  33. package/dist/browser/{chunk-UBIHDHZY.js → chunk-A4RVVIA6.js} +2 -2
  34. package/dist/browser/{chunk-UBIHDHZY.js.map → chunk-A4RVVIA6.js.map} +1 -1
  35. package/dist/browser/{chunk-2TIZBQHI.js → chunk-AOY46Q5S.js} +2 -2
  36. package/dist/browser/{chunk-2TIZBQHI.js.map → chunk-AOY46Q5S.js.map} +1 -1
  37. package/dist/browser/{chunk-EJCGBTQE.js → chunk-AW5VCJIZ.js} +2 -2
  38. package/dist/browser/{chunk-EJCGBTQE.js.map → chunk-AW5VCJIZ.js.map} +1 -1
  39. package/dist/browser/{chunk-2JN4EIJE.js → chunk-C5PSLR7Z.js} +2 -2
  40. package/dist/browser/{chunk-2JN4EIJE.js.map → chunk-C5PSLR7Z.js.map} +1 -1
  41. package/dist/browser/{chunk-TOQBNISU.js → chunk-CNDSORAV.js} +2 -2
  42. package/dist/browser/{chunk-TOQBNISU.js.map → chunk-CNDSORAV.js.map} +1 -1
  43. package/dist/browser/{chunk-MPLLD6WX.js → chunk-CQTLGJKX.js} +2 -2
  44. package/dist/browser/{chunk-MPLLD6WX.js.map → chunk-CQTLGJKX.js.map} +1 -1
  45. package/dist/browser/{chunk-24GIDC32.js → chunk-F3U2P5JK.js} +2 -2
  46. package/dist/browser/{chunk-24GIDC32.js.map → chunk-F3U2P5JK.js.map} +1 -1
  47. package/dist/browser/{chunk-ADAK5AIP.js → chunk-FFTSEIYV.js} +2 -2
  48. package/dist/browser/{chunk-ADAK5AIP.js.map → chunk-FFTSEIYV.js.map} +1 -1
  49. package/dist/browser/{chunk-SHZTS2C3.js → chunk-FH2NXTZ6.js} +2 -2
  50. package/dist/browser/{chunk-SHZTS2C3.js.map → chunk-FH2NXTZ6.js.map} +1 -1
  51. package/dist/browser/{chunk-KDR4M45T.js → chunk-FU2GC2LE.js} +2 -2
  52. package/dist/browser/{chunk-KDR4M45T.js.map → chunk-FU2GC2LE.js.map} +1 -1
  53. package/dist/browser/chunk-FZ4CS2GG.js +2 -0
  54. package/dist/browser/{chunk-PHNYLTEH.js.map → chunk-FZ4CS2GG.js.map} +1 -1
  55. package/dist/browser/{chunk-PGMEWW46.js → chunk-GB3HQFYD.js} +2 -2
  56. package/dist/browser/{chunk-PGMEWW46.js.map → chunk-GB3HQFYD.js.map} +1 -1
  57. package/dist/browser/{chunk-J3RZOR3T.js → chunk-GFXGKAUS.js} +2 -2
  58. package/dist/browser/{chunk-J3RZOR3T.js.map → chunk-GFXGKAUS.js.map} +1 -1
  59. package/dist/browser/{chunk-44EOXEIC.js → chunk-GNVQHSS3.js} +2 -2
  60. package/dist/browser/{chunk-44EOXEIC.js.map → chunk-GNVQHSS3.js.map} +1 -1
  61. package/dist/browser/{chunk-LL4YZLL2.js → chunk-HO6CZGVL.js} +2 -2
  62. package/dist/browser/{chunk-LL4YZLL2.js.map → chunk-HO6CZGVL.js.map} +1 -1
  63. package/dist/browser/{chunk-LHABXX5K.js → chunk-IF3OTURI.js} +2 -2
  64. package/dist/browser/{chunk-LHABXX5K.js.map → chunk-IF3OTURI.js.map} +1 -1
  65. package/dist/browser/{chunk-YN34NTWC.js → chunk-ILKK5VBZ.js} +2 -2
  66. package/dist/browser/{chunk-YN34NTWC.js.map → chunk-ILKK5VBZ.js.map} +1 -1
  67. package/dist/browser/chunk-IMCYKBDV.js +2 -0
  68. package/dist/browser/chunk-IMCYKBDV.js.map +1 -0
  69. package/dist/browser/chunk-J2HM6MWA.js +2 -0
  70. package/dist/browser/{chunk-K2DAN37J.js.map → chunk-J2HM6MWA.js.map} +1 -1
  71. package/dist/browser/{chunk-6KVHZTYP.js → chunk-LNFPNBAR.js} +2 -2
  72. package/dist/browser/{chunk-6KVHZTYP.js.map → chunk-LNFPNBAR.js.map} +1 -1
  73. package/dist/browser/{chunk-QXRJ3Q4Y.js → chunk-MBDFLDIN.js} +2 -2
  74. package/dist/browser/{chunk-QXRJ3Q4Y.js.map → chunk-MBDFLDIN.js.map} +1 -1
  75. package/dist/browser/{chunk-M3OC7IZG.js → chunk-MR5OYU27.js} +2 -2
  76. package/dist/browser/{chunk-M3OC7IZG.js.map → chunk-MR5OYU27.js.map} +1 -1
  77. package/dist/browser/{chunk-YK7FPU3F.js → chunk-NFO2YHLK.js} +2 -2
  78. package/dist/browser/{chunk-YK7FPU3F.js.map → chunk-NFO2YHLK.js.map} +1 -1
  79. package/dist/browser/{chunk-2MLEAT6V.js → chunk-NHKKPEA7.js} +2 -2
  80. package/dist/browser/{chunk-2MLEAT6V.js.map → chunk-NHKKPEA7.js.map} +1 -1
  81. package/dist/browser/{chunk-6YZ7OSX2.js → chunk-OA7EP5SN.js} +2 -2
  82. package/dist/browser/{chunk-6YZ7OSX2.js.map → chunk-OA7EP5SN.js.map} +1 -1
  83. package/dist/browser/{chunk-7BGXFJVA.js → chunk-OMF5YUFB.js} +2 -2
  84. package/dist/browser/{chunk-7BGXFJVA.js.map → chunk-OMF5YUFB.js.map} +1 -1
  85. package/dist/browser/{chunk-37N2QITX.js → chunk-ONRD3CRU.js} +2 -2
  86. package/dist/browser/{chunk-37N2QITX.js.map → chunk-ONRD3CRU.js.map} +1 -1
  87. package/dist/browser/{chunk-KJUSI6PP.js → chunk-OUIU7KNA.js} +2 -2
  88. package/dist/browser/{chunk-KJUSI6PP.js.map → chunk-OUIU7KNA.js.map} +1 -1
  89. package/dist/browser/{chunk-DX47GSLU.js → chunk-PTXAORWB.js} +2 -2
  90. package/dist/browser/{chunk-DX47GSLU.js.map → chunk-PTXAORWB.js.map} +1 -1
  91. package/dist/browser/{chunk-J3PY2B6H.js → chunk-Q56WX4Q4.js} +2 -2
  92. package/dist/browser/{chunk-J3PY2B6H.js.map → chunk-Q56WX4Q4.js.map} +1 -1
  93. package/dist/browser/{chunk-EYKUJB3F.js → chunk-QQ7MZFRE.js} +2 -2
  94. package/dist/browser/{chunk-EYKUJB3F.js.map → chunk-QQ7MZFRE.js.map} +1 -1
  95. package/dist/browser/{chunk-JDVR32ZT.js → chunk-QXYS66KZ.js} +2 -2
  96. package/dist/browser/{chunk-JDVR32ZT.js.map → chunk-QXYS66KZ.js.map} +1 -1
  97. package/dist/browser/{chunk-DCYSEIIY.js → chunk-RRF5H53D.js} +2 -2
  98. package/dist/browser/{chunk-DCYSEIIY.js.map → chunk-RRF5H53D.js.map} +1 -1
  99. package/dist/browser/{chunk-BLLAF3XJ.js → chunk-SHWRGBMD.js} +2 -2
  100. package/dist/browser/{chunk-BLLAF3XJ.js.map → chunk-SHWRGBMD.js.map} +1 -1
  101. package/dist/browser/{chunk-2HXQJNAQ.js → chunk-SXUNJC2V.js} +2 -2
  102. package/dist/browser/{chunk-2HXQJNAQ.js.map → chunk-SXUNJC2V.js.map} +1 -1
  103. package/dist/browser/{chunk-DLRAARGY.js → chunk-TUFXYNHE.js} +2 -2
  104. package/dist/browser/{chunk-DLRAARGY.js.map → chunk-TUFXYNHE.js.map} +1 -1
  105. package/dist/browser/{chunk-T5Y7X4JU.js → chunk-TUL2MGVZ.js} +2 -2
  106. package/dist/browser/{chunk-T5Y7X4JU.js.map → chunk-TUL2MGVZ.js.map} +1 -1
  107. package/dist/browser/{chunk-NXYHJZ5U.js → chunk-UUNZHPWM.js} +2 -2
  108. package/dist/browser/{chunk-NXYHJZ5U.js.map → chunk-UUNZHPWM.js.map} +1 -1
  109. package/dist/browser/{chunk-BK4LRFXY.js → chunk-VDQYQAHM.js} +2 -2
  110. package/dist/browser/{chunk-BK4LRFXY.js.map → chunk-VDQYQAHM.js.map} +1 -1
  111. package/dist/browser/{chunk-MR4YHEKX.js → chunk-VPRG4WZA.js} +2 -2
  112. package/dist/browser/{chunk-MR4YHEKX.js.map → chunk-VPRG4WZA.js.map} +1 -1
  113. package/dist/browser/{chunk-UXF4JZOD.js → chunk-XEB43J5Q.js} +2 -2
  114. package/dist/browser/chunk-XEB43J5Q.js.map +1 -0
  115. package/dist/browser/{chunk-5XMAKC7Z.js → chunk-XHZFIDDV.js} +2 -2
  116. package/dist/browser/{chunk-5XMAKC7Z.js.map → chunk-XHZFIDDV.js.map} +1 -1
  117. package/dist/browser/{chunk-UM2REEE6.js → chunk-XKIXQLFN.js} +2 -2
  118. package/dist/browser/{chunk-UM2REEE6.js.map → chunk-XKIXQLFN.js.map} +1 -1
  119. package/dist/browser/{chunk-4P3LD6GI.js → chunk-YIBHO7CN.js} +2 -2
  120. package/dist/browser/{chunk-4P3LD6GI.js.map → chunk-YIBHO7CN.js.map} +1 -1
  121. package/dist/browser/{chunk-TUDWKSAB.js → chunk-YMBKK3WL.js} +2 -2
  122. package/dist/browser/{chunk-TUDWKSAB.js.map → chunk-YMBKK3WL.js.map} +1 -1
  123. package/dist/browser/{chunk-U74BMWFM.js → chunk-Z2PD74DL.js} +2 -2
  124. package/dist/browser/{chunk-U74BMWFM.js.map → chunk-Z2PD74DL.js.map} +1 -1
  125. package/dist/browser/{chunk-S22HXPZL.js → chunk-ZKS444CY.js} +2 -2
  126. package/dist/browser/{chunk-S22HXPZL.js.map → chunk-ZKS444CY.js.map} +1 -1
  127. package/dist/browser/{hive-DkEPbBoe.d.ts → hive-BtyYkHAm.d.ts} +14 -1
  128. package/dist/browser/hive-tx/Transaction.js +1 -1
  129. package/dist/browser/hive-tx/index.js +1 -1
  130. package/dist/browser/hive.d.ts +1 -1
  131. package/dist/browser/hive.js +1 -1
  132. package/dist/browser/index.d.ts +2 -2
  133. package/dist/browser/index.js +1 -1
  134. package/dist/browser/modules/accounts/index.js +1 -1
  135. package/dist/browser/modules/accounts/mutations/bookmarks/index.js +1 -1
  136. package/dist/browser/modules/accounts/mutations/bookmarks/use-account-bookmark-add.js +1 -1
  137. package/dist/browser/modules/accounts/mutations/bookmarks/use-account-bookmark-delete.js +1 -1
  138. package/dist/browser/modules/accounts/mutations/favorite-tags/index.js +1 -1
  139. package/dist/browser/modules/accounts/mutations/favorite-tags/requests.js +1 -1
  140. package/dist/browser/modules/accounts/mutations/favorite-tags/use-favorite-tag-add.js +1 -1
  141. package/dist/browser/modules/accounts/mutations/favorite-tags/use-favorite-tag-delete.js +1 -1
  142. package/dist/browser/modules/accounts/mutations/favorites/index.js +1 -1
  143. package/dist/browser/modules/accounts/mutations/favorites/use-account-favorite-add.js +1 -1
  144. package/dist/browser/modules/accounts/mutations/favorites/use-account-favorite-delete.js +1 -1
  145. package/dist/browser/modules/accounts/mutations/index.js +1 -1
  146. package/dist/browser/modules/accounts/mutations/use-account-relations-update.js +1 -1
  147. package/dist/browser/modules/accounts/mutations/use-account-revoke-key.js +1 -1
  148. package/dist/browser/modules/accounts/mutations/use-account-revoke-posting.js +1 -1
  149. package/dist/browser/modules/accounts/mutations/use-account-update-key-auths.js +1 -1
  150. package/dist/browser/modules/accounts/mutations/use-account-update-password.js +1 -1
  151. package/dist/browser/modules/accounts/mutations/use-account-update-recovery.js +1 -1
  152. package/dist/browser/modules/accounts/mutations/use-account-update.js +1 -1
  153. package/dist/browser/modules/accounts/mutations/use-claim-account.js +1 -1
  154. package/dist/browser/modules/accounts/mutations/use-create-account.js +1 -1
  155. package/dist/browser/modules/accounts/mutations/use-follow.js +1 -1
  156. package/dist/browser/modules/accounts/mutations/use-grant-posting-permission.js +1 -1
  157. package/dist/browser/modules/accounts/mutations/use-unfollow.js +1 -1
  158. package/dist/browser/modules/accounts/queries/check-favorite-query-options.js +1 -1
  159. package/dist/browser/modules/accounts/queries/check-username-wallets-pending-query-options.js +1 -1
  160. package/dist/browser/modules/accounts/queries/get-account-full-query-options.js +1 -1
  161. package/dist/browser/modules/accounts/queries/get-account-pending-recovery-query-options.js +1 -1
  162. package/dist/browser/modules/accounts/queries/get-account-recoveries-query-options.js +1 -1
  163. package/dist/browser/modules/accounts/queries/get-account-reputations-query-options.js +1 -1
  164. package/dist/browser/modules/accounts/queries/get-account-subscriptions-query-options.js +1 -1
  165. package/dist/browser/modules/accounts/queries/get-account-vote-history-infinite-query-options.js +1 -1
  166. package/dist/browser/modules/accounts/queries/get-accounts-query-options.js +1 -1
  167. package/dist/browser/modules/accounts/queries/get-aggregated-balance-query-options.js +1 -1
  168. package/dist/browser/modules/accounts/queries/get-balance-history-query-options.js +1 -1
  169. package/dist/browser/modules/accounts/queries/get-bookmarks-query-options.js +1 -1
  170. package/dist/browser/modules/accounts/queries/get-bots-query-options.js +1 -1
  171. package/dist/browser/modules/accounts/queries/get-favorite-tag-check-query-options.js +1 -1
  172. package/dist/browser/modules/accounts/queries/get-favorite-tags-query-options.js +1 -1
  173. package/dist/browser/modules/accounts/queries/get-favorites-query-options.js +1 -1
  174. package/dist/browser/modules/accounts/queries/get-follow-count-query-options.js +1 -1
  175. package/dist/browser/modules/accounts/queries/get-followers-query-options.js +1 -1
  176. package/dist/browser/modules/accounts/queries/get-following-query-options.js +1 -1
  177. package/dist/browser/modules/accounts/queries/get-friends-infinite-query-options.js +1 -1
  178. package/dist/browser/modules/accounts/queries/get-muted-users-query-options.js +1 -1
  179. package/dist/browser/modules/accounts/queries/get-pro-members-query-options.js +1 -1
  180. package/dist/browser/modules/accounts/queries/get-profiles-query-options.js +1 -1
  181. package/dist/browser/modules/accounts/queries/get-referrals-infinite-query-options.js +1 -1
  182. package/dist/browser/modules/accounts/queries/get-referrals-stats-query-options.js +1 -1
  183. package/dist/browser/modules/accounts/queries/get-relationship-between-accounts-query-options.js +1 -1
  184. package/dist/browser/modules/accounts/queries/get-search-friends-query-options.js +1 -1
  185. package/dist/browser/modules/accounts/queries/get-transactions-infinite-query-options.js +1 -1
  186. package/dist/browser/modules/accounts/queries/index.js +1 -1
  187. package/dist/browser/modules/accounts/queries/lookup-accounts-query-options.js +1 -1
  188. package/dist/browser/modules/accounts/queries/search-accounts-by-username-query-options.js +1 -1
  189. package/dist/browser/modules/accounts/utils/account-power.js +1 -1
  190. package/dist/browser/modules/accounts/utils/index.js +1 -1
  191. package/dist/browser/modules/ai/index.js +1 -1
  192. package/dist/browser/modules/ai/mutations/index.js +1 -1
  193. package/dist/browser/modules/ai/mutations/use-ai-assist.js +1 -1
  194. package/dist/browser/modules/ai/mutations/use-ai-transcribe.js +1 -1
  195. package/dist/browser/modules/ai/mutations/use-generate-image.js +1 -1
  196. package/dist/browser/modules/ai/queries/get-ai-assist-price-query-options.js +1 -1
  197. package/dist/browser/modules/ai/queries/get-ai-generate-price-query-options.js +1 -1
  198. package/dist/browser/modules/ai/queries/get-ai-images-query-options.js +1 -1
  199. package/dist/browser/modules/ai/queries/get-ai-transcribe-price-query-options.js +1 -1
  200. package/dist/browser/modules/ai/queries/index.js +1 -1
  201. package/dist/browser/modules/analytics/index.js +1 -1
  202. package/dist/browser/modules/analytics/mutations/index.js +1 -1
  203. package/dist/browser/modules/analytics/mutations/use-record-activity.js +1 -1
  204. package/dist/browser/modules/analytics/queries/get-discover-curation-query-options.js +1 -1
  205. package/dist/browser/modules/analytics/queries/get-discover-leaderboard-query-options.js +1 -1
  206. package/dist/browser/modules/analytics/queries/get-page-stats-query-options.js +1 -1
  207. package/dist/browser/modules/analytics/queries/index.js +1 -1
  208. package/dist/browser/modules/auth/index.js +1 -1
  209. package/dist/browser/modules/auth/requests.js +1 -1
  210. package/dist/browser/modules/bad-actors/index.js +1 -1
  211. package/dist/browser/modules/bad-actors/queries/get-bad-actors-query-options.js +1 -1
  212. package/dist/browser/modules/bad-actors/queries/index.js +1 -1
  213. package/dist/browser/modules/bridge/index.js +1 -1
  214. package/dist/browser/modules/bridge/requests.js +1 -1
  215. package/dist/browser/modules/bridge/verify-on-alternate-node.js +1 -1
  216. package/dist/browser/modules/communities/index.js +1 -1
  217. package/dist/browser/modules/communities/mutations/index.js +1 -1
  218. package/dist/browser/modules/communities/mutations/use-mute-post.js +1 -1
  219. package/dist/browser/modules/communities/mutations/use-pin-post.js +1 -1
  220. package/dist/browser/modules/communities/mutations/use-register-community-rewards.js +1 -1
  221. package/dist/browser/modules/communities/mutations/use-set-community-role.js +1 -1
  222. package/dist/browser/modules/communities/mutations/use-subscribe-community.js +1 -1
  223. package/dist/browser/modules/communities/mutations/use-unsubscribe-community.js +1 -1
  224. package/dist/browser/modules/communities/mutations/use-update-community.js +1 -1
  225. package/dist/browser/modules/communities/queries/get-account-notifications-infinite-query-options.js +1 -1
  226. package/dist/browser/modules/communities/queries/get-communities-query-options.js +1 -1
  227. package/dist/browser/modules/communities/queries/get-community-context-query-options.js +1 -1
  228. package/dist/browser/modules/communities/queries/get-community-query-options.js +1 -1
  229. package/dist/browser/modules/communities/queries/get-community-subscribers-query-options.js +1 -1
  230. package/dist/browser/modules/communities/queries/get-rewarded-communities-query-options.js +1 -1
  231. package/dist/browser/modules/communities/queries/index.js +1 -1
  232. package/dist/browser/modules/core/config.js +1 -1
  233. package/dist/browser/modules/core/hive-tx.js +1 -1
  234. package/dist/browser/modules/core/index.js +1 -1
  235. package/dist/browser/modules/core/mutations/broadcast-json.js +1 -1
  236. package/dist/browser/modules/core/mutations/index.js +1 -1
  237. package/dist/browser/modules/core/mutations/use-broadcast-mutation.js +1 -1
  238. package/dist/browser/modules/core/queries/get-chain-properties-query-options.js +1 -1
  239. package/dist/browser/modules/core/queries/get-dynamic-props-query-options.js +1 -1
  240. package/dist/browser/modules/core/queries/get-reward-fund-query-options.js +1 -1
  241. package/dist/browser/modules/core/queries/index.js +1 -1
  242. package/dist/browser/modules/core/queries-manager.js +1 -1
  243. package/dist/browser/modules/curation/dmca.js +1 -1
  244. package/dist/browser/modules/curation/index.js +1 -1
  245. package/dist/browser/modules/curation/mutations/index.js +1 -1
  246. package/dist/browser/modules/curation/mutations/use-curation-recommend.js +1 -1
  247. package/dist/browser/modules/curation/queries/get-curation-application-query-options.js +1 -1
  248. package/dist/browser/modules/curation/queries/get-curation-applications-query-options.js +1 -1
  249. package/dist/browser/modules/curation/queries/get-curation-feed-infinite-query-options.js +1 -1
  250. package/dist/browser/modules/curation/queries/get-curation-post-query-options.js +1 -1
  251. package/dist/browser/modules/curation/queries/get-curation-recommendations-infinite-query-options.js +1 -1
  252. package/dist/browser/modules/curation/queries/get-curation-recommender-query-options.js +1 -1
  253. package/dist/browser/modules/curation/queries/get-curation-roster-admin-query-options.js +1 -1
  254. package/dist/browser/modules/curation/queries/get-curation-roster-query-options.js +1 -1
  255. package/dist/browser/modules/curation/queries/get-curation-status-query-options.js +1 -1
  256. package/dist/browser/modules/curation/queries/index.js +1 -1
  257. package/dist/browser/modules/curation/requests.js +1 -1
  258. package/dist/browser/modules/games/index.js +1 -1
  259. package/dist/browser/modules/games/mutations/game-claim.js +1 -1
  260. package/dist/browser/modules/games/mutations/index.js +1 -1
  261. package/dist/browser/modules/games/queries/game-status-check-query-options.js +1 -1
  262. package/dist/browser/modules/games/queries/index.js +1 -1
  263. package/dist/browser/modules/hive-engine/index.js +1 -1
  264. package/dist/browser/modules/hive-engine/queries/get-all-hive-engine-tokens-query-options.js +1 -1
  265. package/dist/browser/modules/hive-engine/queries/get-hive-engine-balances-with-usd-query-options.js +1 -1
  266. package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-general-info-query-options.js +1 -1
  267. package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-metrics-query-options.js +1 -1
  268. package/dist/browser/modules/hive-engine/queries/get-hive-engine-token-transactions-query-options.js +1 -1
  269. package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-balances-query-options.js +1 -1
  270. package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-market-query-options.js +1 -1
  271. package/dist/browser/modules/hive-engine/queries/get-hive-engine-tokens-metadata-query-options.js +1 -1
  272. package/dist/browser/modules/hive-engine/queries/get-hive-engine-unclaimed-rewards-query-options.js +1 -1
  273. package/dist/browser/modules/hive-engine/queries/index.js +1 -1
  274. package/dist/browser/modules/hive-engine/requests.js +1 -1
  275. package/dist/browser/modules/integrations/3speak/index.js +1 -1
  276. package/dist/browser/modules/integrations/3speak/queries/get-account-token-query-options.js +1 -1
  277. package/dist/browser/modules/integrations/3speak/queries/get-account-videos-query-options.js +1 -1
  278. package/dist/browser/modules/integrations/3speak/queries/index.js +1 -1
  279. package/dist/browser/modules/integrations/hiveposh/index.js +1 -1
  280. package/dist/browser/modules/integrations/hiveposh/queries/get-hiveposh-links-query-options.js +1 -1
  281. package/dist/browser/modules/integrations/hiveposh/queries/index.js +1 -1
  282. package/dist/browser/modules/integrations/index.js +1 -1
  283. package/dist/browser/modules/integrations/plausible/index.js +1 -1
  284. package/dist/browser/modules/integrations/plausible/queries/get-stats-query-options.js +1 -1
  285. package/dist/browser/modules/integrations/plausible/queries/index.js +1 -1
  286. package/dist/browser/modules/market/index.js +1 -1
  287. package/dist/browser/modules/market/mutations/index.js +1 -1
  288. package/dist/browser/modules/market/mutations/use-limit-order-cancel.js +1 -1
  289. package/dist/browser/modules/market/mutations/use-limit-order-create.js +1 -1
  290. package/dist/browser/modules/market/queries/get-current-median-history-price-query-options.js +1 -1
  291. package/dist/browser/modules/market/queries/get-feed-history-query-options.js +1 -1
  292. package/dist/browser/modules/market/queries/get-hive-hbd-stats-query-options.js +1 -1
  293. package/dist/browser/modules/market/queries/get-market-data-query-options.js +1 -1
  294. package/dist/browser/modules/market/queries/get-market-history-query-options.js +1 -1
  295. package/dist/browser/modules/market/queries/get-market-statistics-query-options.js +1 -1
  296. package/dist/browser/modules/market/queries/get-order-book-query-options.js +1 -1
  297. package/dist/browser/modules/market/queries/get-trade-history-query-options.js +1 -1
  298. package/dist/browser/modules/market/queries/index.js +1 -1
  299. package/dist/browser/modules/market/requests.js +1 -1
  300. package/dist/browser/modules/newsletter/api.js +1 -1
  301. package/dist/browser/modules/newsletter/index.js +1 -1
  302. package/dist/browser/modules/newsletter/mutations/index.js +1 -1
  303. package/dist/browser/modules/newsletter/mutations/use-leave-digest.js +1 -1
  304. package/dist/browser/modules/newsletter/mutations/use-send-newsletter-issue.js +1 -1
  305. package/dist/browser/modules/newsletter/mutations/use-subscribe-digest.js +1 -1
  306. package/dist/browser/modules/newsletter/mutations/use-unsubscribe-all-digests.js +1 -1
  307. package/dist/browser/modules/newsletter/queries/get-digest-subscriptions-query-options.js +1 -1
  308. package/dist/browser/modules/newsletter/queries/get-newsletter-issues-query-options.js +1 -1
  309. package/dist/browser/modules/newsletter/queries/get-newsletter-posts-query-options.js +1 -1
  310. package/dist/browser/modules/newsletter/queries/get-newsletter-sender-query-options.js +1 -1
  311. package/dist/browser/modules/newsletter/queries/index.js +1 -1
  312. package/dist/browser/modules/notifications/index.js +1 -1
  313. package/dist/browser/modules/notifications/mutations/index.js +1 -1
  314. package/dist/browser/modules/notifications/mutations/use-mark-notifications-read.js +1 -1
  315. package/dist/browser/modules/notifications/mutations/use-set-last-read.js +1 -1
  316. package/dist/browser/modules/notifications/queries/get-announcements-query-options.js +1 -1
  317. package/dist/browser/modules/notifications/queries/get-notifications-infinite-query-options.js +1 -1
  318. package/dist/browser/modules/notifications/queries/get-notifications-settings-query-options.js +1 -1
  319. package/dist/browser/modules/notifications/queries/get-notifications-unread-count-query-options.js +1 -1
  320. package/dist/browser/modules/notifications/queries/get-spotlights-query-options.js +1 -1
  321. package/dist/browser/modules/notifications/queries/index.js +1 -1
  322. package/dist/browser/modules/operations/index.js +1 -1
  323. package/dist/browser/modules/operations/mutations/index.js +1 -1
  324. package/dist/browser/modules/operations/mutations/sign-operation-by-key.js +1 -1
  325. package/dist/browser/modules/operations/queries/get-chain-properties-query-options.js +1 -1
  326. package/dist/browser/modules/operations/queries/index.js +1 -1
  327. package/dist/browser/modules/points/index.js +1 -1
  328. package/dist/browser/modules/points/mutations/index.js +1 -1
  329. package/dist/browser/modules/points/mutations/use-claim-points.js +1 -1
  330. package/dist/browser/modules/points/queries/get-points-asset-general-info-query-options.js +1 -1
  331. package/dist/browser/modules/points/queries/get-points-asset-transactions-query-options.js +1 -1
  332. package/dist/browser/modules/points/queries/get-points-query-options.js +1 -1
  333. package/dist/browser/modules/points/queries/index.js +1 -1
  334. package/dist/browser/modules/polls/index.js +1 -1
  335. package/dist/browser/modules/polls/mutations/index.js +1 -1
  336. package/dist/browser/modules/polls/mutations/use-poll-vote.js +1 -1
  337. package/dist/browser/modules/polls/queries/get-poll-query-options.js +1 -1
  338. package/dist/browser/modules/polls/queries/index.js +1 -1
  339. package/dist/browser/modules/posts/cache/discussions-cache-utils.js +1 -1
  340. package/dist/browser/modules/posts/cache/entries-cache-management.js +1 -1
  341. package/dist/browser/modules/posts/cache/index.js +1 -1
  342. package/dist/browser/modules/posts/index.js +1 -1
  343. package/dist/browser/modules/posts/mutations/add-fragment.js +1 -1
  344. package/dist/browser/modules/posts/mutations/edit-fragment.js +1 -1
  345. package/dist/browser/modules/posts/mutations/index.js +1 -1
  346. package/dist/browser/modules/posts/mutations/remove-fragment.js +1 -1
  347. package/dist/browser/modules/posts/mutations/use-add-draft.js +1 -1
  348. package/dist/browser/modules/posts/mutations/use-add-image.js +1 -1
  349. package/dist/browser/modules/posts/mutations/use-add-schedule.js +1 -1
  350. package/dist/browser/modules/posts/mutations/use-comment.js +1 -1
  351. package/dist/browser/modules/posts/mutations/use-cross-post.js +1 -1
  352. package/dist/browser/modules/posts/mutations/use-delete-comment.js +1 -1
  353. package/dist/browser/modules/posts/mutations/use-delete-draft.js +1 -1
  354. package/dist/browser/modules/posts/mutations/use-delete-image.js +1 -1
  355. package/dist/browser/modules/posts/mutations/use-delete-schedule.js +1 -1
  356. package/dist/browser/modules/posts/mutations/use-move-schedule.js +1 -1
  357. package/dist/browser/modules/posts/mutations/use-promote.js +1 -1
  358. package/dist/browser/modules/posts/mutations/use-reblog.js +1 -1
  359. package/dist/browser/modules/posts/mutations/use-update-draft.js +1 -1
  360. package/dist/browser/modules/posts/mutations/use-update-reply.js +1 -1
  361. package/dist/browser/modules/posts/mutations/use-upload-image.js +1 -1
  362. package/dist/browser/modules/posts/mutations/use-vote.js +1 -1
  363. package/dist/browser/modules/posts/queries/get-account-posts-query-options.js +1 -1
  364. package/dist/browser/modules/posts/queries/get-comment-history-query-options.js +1 -1
  365. package/dist/browser/modules/posts/queries/get-content-query-options.js +1 -1
  366. package/dist/browser/modules/posts/queries/get-content-replies-query-options.js +1 -1
  367. package/dist/browser/modules/posts/queries/get-deleted-entry-query-options.js +1 -1
  368. package/dist/browser/modules/posts/queries/get-discussions-query-options.js +1 -1
  369. package/dist/browser/modules/posts/queries/get-drafts-query-options.js +1 -1
  370. package/dist/browser/modules/posts/queries/get-entry-active-votes-query-options.js +1 -1
  371. package/dist/browser/modules/posts/queries/get-fragments-query-options.js +1 -1
  372. package/dist/browser/modules/posts/queries/get-images-query-options.js +1 -1
  373. package/dist/browser/modules/posts/queries/get-normalize-post-query-options.js +1 -1
  374. package/dist/browser/modules/posts/queries/get-post-header-query-options.js +1 -1
  375. package/dist/browser/modules/posts/queries/get-post-query-options.js +1 -1
  376. package/dist/browser/modules/posts/queries/get-post-tips-query-options.js +1 -1
  377. package/dist/browser/modules/posts/queries/get-posts-ranked-query-options.js +1 -1
  378. package/dist/browser/modules/posts/queries/get-promoted-posts-query-options.js +1 -1
  379. package/dist/browser/modules/posts/queries/get-reblogged-by-query-options.js +1 -1
  380. package/dist/browser/modules/posts/queries/get-reblogs-query-options.js +1 -1
  381. package/dist/browser/modules/posts/queries/get-schedules-query-options.js +1 -1
  382. package/dist/browser/modules/posts/queries/get-shorts-feed-query-options.js +1 -1
  383. package/dist/browser/modules/posts/queries/get-trending-tags-query-options.js +1 -1
  384. package/dist/browser/modules/posts/queries/get-trending-tags-with-stats-query-options.js +1 -1
  385. package/dist/browser/modules/posts/queries/get-user-post-vote-query-options.js +1 -1
  386. package/dist/browser/modules/posts/queries/get-waves-by-account-query-options.js +1 -1
  387. package/dist/browser/modules/posts/queries/get-waves-by-host-query-options.js +1 -1
  388. package/dist/browser/modules/posts/queries/get-waves-by-tag-query-options.js +1 -1
  389. package/dist/browser/modules/posts/queries/get-waves-feed-query-options.js +1 -1
  390. package/dist/browser/modules/posts/queries/get-waves-following-query-options.js +1 -1
  391. package/dist/browser/modules/posts/queries/get-waves-trending-authors-query-options.js +1 -1
  392. package/dist/browser/modules/posts/queries/get-waves-trending-tags-query-options.js +1 -1
  393. package/dist/browser/modules/posts/queries/index.js +1 -1
  394. package/dist/browser/modules/posts/utils/filter-dmca-entries.js +1 -1
  395. package/dist/browser/modules/posts/utils/validate-post-creating.js +1 -1
  396. package/dist/browser/modules/posts/utils/waves-helpers.js +1 -1
  397. package/dist/browser/modules/private-api/index.js +1 -1
  398. package/dist/browser/modules/private-api/requests.js +1 -1
  399. package/dist/browser/modules/promotions/index.js +1 -1
  400. package/dist/browser/modules/promotions/mutations/index.js +1 -1
  401. package/dist/browser/modules/promotions/mutations/use-boost-plus.js +1 -1
  402. package/dist/browser/modules/promotions/mutations/use-rc-delegation.js +1 -1
  403. package/dist/browser/modules/promotions/queries/get-boost-plus-account-prices-query-options.js +1 -1
  404. package/dist/browser/modules/promotions/queries/get-boost-plus-prices-query-options.js +1 -1
  405. package/dist/browser/modules/promotions/queries/get-promote-price-query-options.js +1 -1
  406. package/dist/browser/modules/promotions/queries/get-rc-delegation-active-query-options.js +1 -1
  407. package/dist/browser/modules/promotions/queries/get-rc-delegation-prices-query-options.js +1 -1
  408. package/dist/browser/modules/promotions/queries/index.js +1 -1
  409. package/dist/browser/modules/proposals/index.js +1 -1
  410. package/dist/browser/modules/proposals/mutations/index.js +1 -1
  411. package/dist/browser/modules/proposals/mutations/use-proposal-create.js +1 -1
  412. package/dist/browser/modules/proposals/mutations/use-proposal-vote.js +1 -1
  413. package/dist/browser/modules/proposals/queries/get-proposal-query-options.js +1 -1
  414. package/dist/browser/modules/proposals/queries/get-proposal-votes-query-options.js +1 -1
  415. package/dist/browser/modules/proposals/queries/get-proposals-query-options.js +1 -1
  416. package/dist/browser/modules/proposals/queries/get-user-proposal-votes-query-options.js +1 -1
  417. package/dist/browser/modules/proposals/queries/index.js +1 -1
  418. package/dist/browser/modules/quests/index.js +1 -1
  419. package/dist/browser/modules/quests/mutations/buy-streak-freeze.js +1 -1
  420. package/dist/browser/modules/quests/mutations/index.js +1 -1
  421. package/dist/browser/modules/quests/queries/get-quests-query-options.js +1 -1
  422. package/dist/browser/modules/quests/queries/index.js +1 -1
  423. package/dist/browser/modules/resource-credits/index.js +1 -1
  424. package/dist/browser/modules/resource-credits/queries/get-account-rc-query-options.js +1 -1
  425. package/dist/browser/modules/resource-credits/queries/get-rc-resource-params-query-options.js +1 -1
  426. package/dist/browser/modules/resource-credits/queries/get-rc-stats-query-options.js +1 -1
  427. package/dist/browser/modules/resource-credits/queries/index.js +1 -1
  428. package/dist/browser/modules/resource-credits/utils/estimate-rc-precheck.js +1 -1
  429. package/dist/browser/modules/resource-credits/utils/index.js +1 -1
  430. package/dist/browser/modules/search/dmca.js +1 -1
  431. package/dist/browser/modules/search/index.js +1 -1
  432. package/dist/browser/modules/search/parse-json-response.js +1 -1
  433. package/dist/browser/modules/search/queries/get-search-account-query-options.js +1 -1
  434. package/dist/browser/modules/search/queries/get-search-api-infinite-query-options.js +1 -1
  435. package/dist/browser/modules/search/queries/get-search-path-query-options.js +1 -1
  436. package/dist/browser/modules/search/queries/get-search-query-options.js +1 -1
  437. package/dist/browser/modules/search/queries/get-search-topics-query-options.js +1 -1
  438. package/dist/browser/modules/search/queries/get-similar-entries-query-options.js +1 -1
  439. package/dist/browser/modules/search/queries/index.js +1 -1
  440. package/dist/browser/modules/search/requests.js +1 -1
  441. package/dist/browser/modules/support/index.js +1 -1
  442. package/dist/browser/modules/support/mutations/index.js +1 -1
  443. package/dist/browser/modules/support/mutations/update-support-settings.js +1 -1
  444. package/dist/browser/modules/support/queries/get-support-settings-query-options.js +1 -1
  445. package/dist/browser/modules/support/queries/index.js +1 -1
  446. package/dist/browser/modules/wallet/consts/hive-account-operation-groups.js +1 -1
  447. package/dist/browser/modules/wallet/consts/hive-operation-list.js +1 -1
  448. package/dist/browser/modules/wallet/consts/hive-operation-orders.js +1 -1
  449. package/dist/browser/modules/wallet/consts/index.js +1 -1
  450. package/dist/browser/modules/wallet/index.js +1 -1
  451. package/dist/browser/modules/wallet/mutations/index.js +1 -1
  452. package/dist/browser/modules/wallet/mutations/use-claim-engine-rewards.js +1 -1
  453. package/dist/browser/modules/wallet/mutations/use-claim-interest.js +1 -1
  454. package/dist/browser/modules/wallet/mutations/use-claim-rewards.js +1 -1
  455. package/dist/browser/modules/wallet/mutations/use-convert.js +1 -1
  456. package/dist/browser/modules/wallet/mutations/use-delegate-engine-token.js +1 -1
  457. package/dist/browser/modules/wallet/mutations/use-delegate-rc.js +1 -1
  458. package/dist/browser/modules/wallet/mutations/use-delegate-vesting-shares.js +1 -1
  459. package/dist/browser/modules/wallet/mutations/use-engine-market-order.js +1 -1
  460. package/dist/browser/modules/wallet/mutations/use-set-withdraw-vesting-route.js +1 -1
  461. package/dist/browser/modules/wallet/mutations/use-stake-engine-token.js +1 -1
  462. package/dist/browser/modules/wallet/mutations/use-transfer-engine-token.js +1 -1
  463. package/dist/browser/modules/wallet/mutations/use-transfer-from-savings.js +1 -1
  464. package/dist/browser/modules/wallet/mutations/use-transfer-point.js +1 -1
  465. package/dist/browser/modules/wallet/mutations/use-transfer-to-savings.js +1 -1
  466. package/dist/browser/modules/wallet/mutations/use-transfer-to-vesting.js +1 -1
  467. package/dist/browser/modules/wallet/mutations/use-transfer.js +1 -1
  468. package/dist/browser/modules/wallet/mutations/use-undelegate-engine-token.js +1 -1
  469. package/dist/browser/modules/wallet/mutations/use-unstake-engine-token.js +1 -1
  470. package/dist/browser/modules/wallet/mutations/use-wallet-operation.js +1 -1
  471. package/dist/browser/modules/wallet/mutations/use-withdraw-vesting.js +1 -1
  472. package/dist/browser/modules/wallet/queries/get-account-delegations-query-options.js +1 -1
  473. package/dist/browser/modules/wallet/queries/get-account-wallet-asset-info-query-options.js +1 -1
  474. package/dist/browser/modules/wallet/queries/get-collateralized-conversion-requests-query-options.js +1 -1
  475. package/dist/browser/modules/wallet/queries/get-conversion-requests-query-options.js +1 -1
  476. package/dist/browser/modules/wallet/queries/get-hbd-asset-general-info-query-options.js +1 -1
  477. package/dist/browser/modules/wallet/queries/get-hbd-asset-transactions-query-options.js +1 -1
  478. package/dist/browser/modules/wallet/queries/get-hive-asset-general-info-query-options.js +1 -1
  479. package/dist/browser/modules/wallet/queries/get-hive-asset-metric-query-options.js +1 -1
  480. package/dist/browser/modules/wallet/queries/get-hive-asset-transactions-query-options.js +1 -1
  481. package/dist/browser/modules/wallet/queries/get-hive-asset-withdrawal-routes-query-options.js +1 -1
  482. package/dist/browser/modules/wallet/queries/get-hive-power-asset-general-info-query-options.js +1 -1
  483. package/dist/browser/modules/wallet/queries/get-hive-power-asset-transactions-query-options.js +1 -1
  484. package/dist/browser/modules/wallet/queries/get-hive-power-delegates-query-options.js +1 -1
  485. package/dist/browser/modules/wallet/queries/get-hive-power-delegatings-query-options.js +1 -1
  486. package/dist/browser/modules/wallet/queries/get-incoming-rc-query-options.js +1 -1
  487. package/dist/browser/modules/wallet/queries/get-open-orders-query-options.js +1 -1
  488. package/dist/browser/modules/wallet/queries/get-outgoing-rc-delegations-infinite-query-options.js +1 -1
  489. package/dist/browser/modules/wallet/queries/get-portfolio-query-options.js +1 -1
  490. package/dist/browser/modules/wallet/queries/get-received-vesting-shares-query-options.js +1 -1
  491. package/dist/browser/modules/wallet/queries/get-recurrent-transfers-query-options.js +1 -1
  492. package/dist/browser/modules/wallet/queries/get-savings-withdraw-from-query-options.js +1 -1
  493. package/dist/browser/modules/wallet/queries/get-vesting-delegation-expirations-query-options.js +1 -1
  494. package/dist/browser/modules/wallet/queries/get-vesting-delegations-query-options.js +1 -1
  495. package/dist/browser/modules/wallet/queries/get-withdraw-routes-query-options.js +1 -1
  496. package/dist/browser/modules/wallet/queries/index.js +1 -1
  497. package/dist/browser/modules/witnesses/index.js +1 -1
  498. package/dist/browser/modules/witnesses/mutations/index.js +1 -1
  499. package/dist/browser/modules/witnesses/mutations/use-witness-proxy.js +1 -1
  500. package/dist/browser/modules/witnesses/mutations/use-witness-vote.js +1 -1
  501. package/dist/browser/modules/witnesses/queries/get-witnesses-query-options.js +1 -1
  502. package/dist/browser/modules/witnesses/queries/index.js +1 -1
  503. package/dist/node/hive.cjs +2 -2
  504. package/dist/node/hive.cjs.map +1 -1
  505. package/dist/node/hive.mjs +2 -2
  506. package/dist/node/hive.mjs.map +1 -1
  507. package/dist/node/index.cjs +3 -3
  508. package/dist/node/index.cjs.map +1 -1
  509. package/dist/node/index.mjs +3 -3
  510. package/dist/node/index.mjs.map +1 -1
  511. package/package.json +1 -1
  512. package/dist/browser/chunk-E6WHRKBG.js +0 -2
  513. package/dist/browser/chunk-E6WHRKBG.js.map +0 -1
  514. package/dist/browser/chunk-K2DAN37J.js +0 -2
  515. package/dist/browser/chunk-PHNYLTEH.js +0 -2
  516. package/dist/browser/chunk-UXF4JZOD.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/wallet/mutations/use-transfer-from-savings.ts"],"names":["useTransferFromSavings","username","auth","broadcastMode","useBroadcastMutation","payload","buildTransferFromSavingsOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"uJAaO,SAASA,CAAAA,CACdC,CAAAA,CACAC,GAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,QAAA,CAAU,uBAAuB,CAAA,CAClCH,CAAAA,CACCI,GAAY,CACXC,CAAAA,CAA2BL,CAAAA,CAAWI,CAAAA,CAAQ,EAAA,CAAIA,CAAAA,CAAQ,MAAA,CAAQA,CAAAA,CAAQ,KAAMA,CAAAA,CAAQ,SAAS,CACnG,CAAA,CACA,MAAOE,CAAAA,CAASC,CAAAA,GAAc,CAC5B,MAAMC,GAAAA,CAAyBP,GAAAA,EAAM,OAAA,CAASC,CAAAA,CAAe,CAC3DO,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKT,CAAQ,CAAA,CAChCS,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,EAAE,CAAA,CACpC,CAAC,iBAAkB,YAAA,CAAcP,CAAQ,CAAA,CACzC,CAAC,QAAA,CAAU,WAAA,CAAa,IAAA,CAAMA,CAAQ,CACxC,CAAC,EACH,CAAA,CACAC,GAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-KDR4M45T.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast } from \"@/modules/core/mutations\";\nimport type { BroadcastMode } from \"@/modules/core/mutations\";\nimport { QueryKeys } from \"@/modules/core\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { buildTransferFromSavingsOp } from \"@/modules/operations/builders\";\n\nexport interface TransferFromSavingsPayload {\n to: string;\n amount: string;\n memo: string;\n requestId: number;\n}\n\nexport function useTransferFromSavings(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<TransferFromSavingsPayload>(\n [\"wallet\", \"transfer-from-savings\"],\n username,\n (payload) => [\n buildTransferFromSavingsOp(username!, payload.to, payload.amount, payload.memo, payload.requestId)\n ],\n async (_result, variables) => {\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.full(username),\n QueryKeys.accounts.full(variables.to),\n [\"ecency-wallets\", \"asset-info\", username],\n [\"wallet\", \"portfolio\", \"v2\", username]\n ]);\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/wallet/mutations/use-transfer-from-savings.ts"],"names":["useTransferFromSavings","username","auth","broadcastMode","useBroadcastMutation","payload","buildTransferFromSavingsOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"uJAaO,SAASA,CAAAA,CACdC,CAAAA,CACAC,GAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,QAAA,CAAU,uBAAuB,CAAA,CAClCH,CAAAA,CACCI,GAAY,CACXC,CAAAA,CAA2BL,CAAAA,CAAWI,CAAAA,CAAQ,EAAA,CAAIA,CAAAA,CAAQ,MAAA,CAAQA,CAAAA,CAAQ,KAAMA,CAAAA,CAAQ,SAAS,CACnG,CAAA,CACA,MAAOE,CAAAA,CAASC,CAAAA,GAAc,CAC5B,MAAMC,GAAAA,CAAyBP,GAAAA,EAAM,OAAA,CAASC,CAAAA,CAAe,CAC3DO,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKT,CAAQ,CAAA,CAChCS,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,EAAE,CAAA,CACpC,CAAC,iBAAkB,YAAA,CAAcP,CAAQ,CAAA,CACzC,CAAC,QAAA,CAAU,WAAA,CAAa,IAAA,CAAMA,CAAQ,CACxC,CAAC,EACH,CAAA,CACAC,GAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-FU2GC2LE.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast } from \"@/modules/core/mutations\";\nimport type { BroadcastMode } from \"@/modules/core/mutations\";\nimport { QueryKeys } from \"@/modules/core\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { buildTransferFromSavingsOp } from \"@/modules/operations/builders\";\n\nexport interface TransferFromSavingsPayload {\n to: string;\n amount: string;\n memo: string;\n requestId: number;\n}\n\nexport function useTransferFromSavings(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<TransferFromSavingsPayload>(\n [\"wallet\", \"transfer-from-savings\"],\n username,\n (payload) => [\n buildTransferFromSavingsOp(username!, payload.to, payload.amount, payload.memo, payload.requestId)\n ],\n async (_result, variables) => {\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.full(username),\n QueryKeys.accounts.full(variables.to),\n [\"ecency-wallets\", \"asset-info\", username],\n [\"wallet\", \"portfolio\", \"v2\", username]\n ]);\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {c}from'./chunk-RZVMZQO7.js';import {b}from'./chunk-J2HM6MWA.js';import {a}from'./chunk-HEILHNSR.js';function d(o,e,p){return b(["proposals","create"],o,s=>[c(o,s)],async()=>{e?.adapter?.invalidateQueries&&await e.adapter.invalidateQueries([a.accounts.full(o),a.proposals.list()]);},e,"active",{broadcastMode:p})}export{d as a};//# sourceMappingURL=chunk-FZ4CS2GG.js.map
2
+ //# sourceMappingURL=chunk-FZ4CS2GG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/proposals/mutations/use-proposal-create.ts"],"names":["useProposalCreate","username","auth","broadcastMode","useBroadcastMutation","payload","buildProposalCreateOp","QueryKeys"],"mappings":"4GAOO,SAASA,CAAAA,CACdC,EACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,WAAA,CAAa,QAAQ,EACtBH,CAAAA,CACCI,CAAAA,EAAY,CACXC,CAAAA,CAAsBL,CAAAA,CAAWI,CAAO,CAC1C,CAAA,CACA,SAAY,CACNH,CAAAA,EAAM,OAAA,EAAS,mBACjB,MAAMA,CAAAA,CAAK,QAAQ,iBAAA,CAAkB,CACnCK,EAAU,QAAA,CAAS,IAAA,CAAKN,CAAQ,CAAA,CAChCM,CAAAA,CAAU,SAAA,CAAU,MACtB,CAAC,EAEL,CAAA,CACAL,CAAAA,CACA,SACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-PHNYLTEH.js","sourcesContent":["import { useBroadcastMutation, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildProposalCreateOp, type ProposalCreatePayload } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\nexport { type ProposalCreatePayload };\n\nexport function useProposalCreate(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<ProposalCreatePayload>(\n [\"proposals\", \"create\"],\n username,\n (payload) => [\n buildProposalCreateOp(username!, payload)\n ],\n async () => {\n if (auth?.adapter?.invalidateQueries) {\n await auth.adapter.invalidateQueries([\n QueryKeys.accounts.full(username),\n QueryKeys.proposals.list(),\n ]);\n }\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/proposals/mutations/use-proposal-create.ts"],"names":["useProposalCreate","username","auth","broadcastMode","useBroadcastMutation","payload","buildProposalCreateOp","QueryKeys"],"mappings":"4GAOO,SAASA,CAAAA,CACdC,EACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,WAAA,CAAa,QAAQ,EACtBH,CAAAA,CACCI,CAAAA,EAAY,CACXC,CAAAA,CAAsBL,CAAAA,CAAWI,CAAO,CAC1C,CAAA,CACA,SAAY,CACNH,CAAAA,EAAM,OAAA,EAAS,mBACjB,MAAMA,CAAAA,CAAK,QAAQ,iBAAA,CAAkB,CACnCK,EAAU,QAAA,CAAS,IAAA,CAAKN,CAAQ,CAAA,CAChCM,CAAAA,CAAU,SAAA,CAAU,MACtB,CAAC,EAEL,CAAA,CACAL,CAAAA,CACA,SACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-FZ4CS2GG.js","sourcesContent":["import { useBroadcastMutation, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildProposalCreateOp, type ProposalCreatePayload } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\nexport { type ProposalCreatePayload };\n\nexport function useProposalCreate(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<ProposalCreatePayload>(\n [\"proposals\", \"create\"],\n username,\n (payload) => [\n buildProposalCreateOp(username!, payload)\n ],\n async () => {\n if (auth?.adapter?.invalidateQueries) {\n await auth.adapter.invalidateQueries([\n QueryKeys.accounts.full(username),\n QueryKeys.proposals.list(),\n ]);\n }\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {b}from'./chunk-K2DAN37J.js';import {a}from'./chunk-HEILHNSR.js';function d(o,r,n){return b(a.polls.vote(),o??"",({pollTrxId:s,choices:a})=>{if(!o)throw new Error("[SDK][Polls] Cannot vote without an authenticated username");return [["custom_json",{id:"polls",required_auths:[],required_posting_auths:[o],json:JSON.stringify({poll:s,action:"vote",choices:a})}]]},void 0,r,"posting",{broadcastMode:n??"async"})}export{d as a};//# sourceMappingURL=chunk-PGMEWW46.js.map
2
- //# sourceMappingURL=chunk-PGMEWW46.js.map
1
+ import {b}from'./chunk-J2HM6MWA.js';import {a}from'./chunk-HEILHNSR.js';function d(o,r,n){return b(a.polls.vote(),o??"",({pollTrxId:s,choices:a})=>{if(!o)throw new Error("[SDK][Polls] Cannot vote without an authenticated username");return [["custom_json",{id:"polls",required_auths:[],required_posting_auths:[o],json:JSON.stringify({poll:s,action:"vote",choices:a})}]]},void 0,r,"posting",{broadcastMode:n??"async"})}export{d as a};//# sourceMappingURL=chunk-GB3HQFYD.js.map
2
+ //# sourceMappingURL=chunk-GB3HQFYD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/polls/mutations/use-poll-vote.ts"],"names":["usePollVote","username","auth","broadcastMode","useBroadcastMutation","QueryKeys","pollTrxId","choices"],"mappings":"wEAQO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACLC,CAAAA,CAAU,KAAA,CAAM,IAAA,EAAK,CACrBJ,CAAAA,EAAY,GACZ,CAAC,CAAE,SAAA,CAAAK,CAAAA,CAAW,OAAA,CAAAC,CAAQ,CAAA,GAAM,CAC1B,GAAI,CAACN,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,4DAA4D,CAAA,CAE9E,OAAO,CACL,CACE,aAAA,CACA,CACE,EAAA,CAAI,OAAA,CACJ,cAAA,CAAgB,EAAC,CACjB,uBAAwB,CAACA,CAAQ,CAAA,CACjC,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CACnB,IAAA,CAAMK,EACN,MAAA,CAAQ,MAAA,CACR,OAAA,CAAAC,CACF,CAAC,CACH,CACF,CACF,CACF,CAAA,CACA,MAAA,CACAL,CAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAeC,CAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-PGMEWW46.js","sourcesContent":["import { QueryKeys, useBroadcastMutation } from \"@/modules/core\";\nimport type { BroadcastMode, AuthContextV2 } from \"@/modules/core\";\n\nexport interface PollVotePayload {\n pollTrxId: string;\n choices: number[];\n}\n\nexport function usePollVote(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<PollVotePayload>(\n QueryKeys.polls.vote(),\n username ?? \"\",\n ({ pollTrxId, choices }) => {\n if (!username) {\n throw new Error(\"[SDK][Polls] Cannot vote without an authenticated username\");\n }\n return [\n [\n \"custom_json\",\n {\n id: \"polls\",\n required_auths: [],\n required_posting_auths: [username],\n json: JSON.stringify({\n poll: pollTrxId,\n action: \"vote\",\n choices,\n }),\n },\n ],\n ];\n },\n undefined,\n auth,\n \"posting\",\n { broadcastMode: broadcastMode ?? \"async\" }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/polls/mutations/use-poll-vote.ts"],"names":["usePollVote","username","auth","broadcastMode","useBroadcastMutation","QueryKeys","pollTrxId","choices"],"mappings":"wEAQO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACLC,CAAAA,CAAU,KAAA,CAAM,IAAA,EAAK,CACrBJ,CAAAA,EAAY,GACZ,CAAC,CAAE,SAAA,CAAAK,CAAAA,CAAW,OAAA,CAAAC,CAAQ,CAAA,GAAM,CAC1B,GAAI,CAACN,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,4DAA4D,CAAA,CAE9E,OAAO,CACL,CACE,aAAA,CACA,CACE,EAAA,CAAI,OAAA,CACJ,cAAA,CAAgB,EAAC,CACjB,uBAAwB,CAACA,CAAQ,CAAA,CACjC,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CACnB,IAAA,CAAMK,EACN,MAAA,CAAQ,MAAA,CACR,OAAA,CAAAC,CACF,CAAC,CACH,CACF,CACF,CACF,CAAA,CACA,MAAA,CACAL,CAAAA,CACA,SAAA,CACA,CAAE,aAAA,CAAeC,CAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-GB3HQFYD.js","sourcesContent":["import { QueryKeys, useBroadcastMutation } from \"@/modules/core\";\nimport type { BroadcastMode, AuthContextV2 } from \"@/modules/core\";\n\nexport interface PollVotePayload {\n pollTrxId: string;\n choices: number[];\n}\n\nexport function usePollVote(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<PollVotePayload>(\n QueryKeys.polls.vote(),\n username ?? \"\",\n ({ pollTrxId, choices }) => {\n if (!username) {\n throw new Error(\"[SDK][Polls] Cannot vote without an authenticated username\");\n }\n return [\n [\n \"custom_json\",\n {\n id: \"polls\",\n required_auths: [],\n required_posting_auths: [username],\n json: JSON.stringify({\n poll: pollTrxId,\n action: \"vote\",\n choices,\n }),\n },\n ],\n ];\n },\n undefined,\n auth,\n \"posting\",\n { broadcastMode: broadcastMode ?? \"async\" }\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {f}from'./chunk-4COFIDSX.js';import {k as k$1,j,i,l,g,e,d,a as a$1,h,o,n}from'./chunk-UKK6NLAT.js';import {a}from'./chunk-EZ375FVX.js';import {b}from'./chunk-K2DAN37J.js';import {b as b$1}from'./chunk-POHYQBLL.js';function S(i$1,s,o){let{from:e$1,to:r="",amount:n="",memo:t=""}=o,a=o.request_id??Date.now()>>>0;switch(i$1){case "HIVE":switch(s){case "transfer":return [a$1(e$1,r,n,t)];case "transfer-saving":return [d(e$1,r,n,t)];case "withdraw-saving":return [e(e$1,r,n,t,a)];case "power-up":return [h(e$1,r,n)]}break;case "HBD":switch(s){case "transfer":return [a$1(e$1,r,n,t)];case "transfer-saving":return [d(e$1,r,n,t)];case "withdraw-saving":return [e(e$1,r,n,t,a)];case "claim-interest":return g(e$1,r,n,t,a);case "convert":return [l(e$1,n,Math.floor(Date.now()/1e3))]}break;case "HP":switch(s){case "power-down":return [i(e$1,n)];case "delegate":return [j(e$1,r,n)];case "withdraw-routes":return [k$1(o.from_account??e$1,o.to_account??r,o.percent??0,o.auto_vest??false)]}break;case "POINTS":if(s==="transfer"||s==="gift")return [f(e$1,r,n,t)];break}return null}function W(i,s,o$1){let{from:e,to:r="",amount:n$1=""}=o$1,t=typeof n$1=="string"&&n$1.includes(" ")?n$1.split(" ")[0]:String(n$1);switch(s){case "transfer":return [n(e,"transfer",{symbol:i,to:r,quantity:t,memo:o$1.memo??""})];case "stake":return [n(e,"stake",{symbol:i,to:r,quantity:t})];case "unstake":return [n(e,"unstake",{symbol:i,to:r,quantity:t})];case "delegate":return [n(e,"delegate",{symbol:i,to:r,quantity:t})];case "undelegate":return [n(e,"undelegate",{symbol:i,from:r,quantity:t})];case "claim":return [o(e,[i])]}return null}function k(i){return i==="claim"?"posting":"active"}function V(i,s,o,e,r){let{mutateAsync:n}=a.useRecordActivity(i,o);return b(["ecency-wallets",s,o],i,t=>{let a=S(s,o,t);if(a)return a;let f=W(s,o,t);if(f)return f;throw new Error(`[SDK][Wallet] \u2013 no operation builder for asset="${s}" operation="${o}"`)},()=>{n();let t=[];t.push(["ecency-wallets","asset-info",i,s]),s==="HIVE"&&t.push(["ecency-wallets","asset-info",i,"HP"]),t.push(["wallet","portfolio","v2",i]),setTimeout(()=>{t.forEach(a=>{b$1().invalidateQueries({queryKey:a});});},5e3);},e,k(o),{broadcastMode:r})}export{V as a};//# sourceMappingURL=chunk-J3RZOR3T.js.map
2
- //# sourceMappingURL=chunk-J3RZOR3T.js.map
1
+ import {f}from'./chunk-4COFIDSX.js';import {k as k$1,j,i,l,g,e,d,a as a$1,h,o,n}from'./chunk-UKK6NLAT.js';import {a}from'./chunk-EZ375FVX.js';import {b}from'./chunk-J2HM6MWA.js';import {b as b$1}from'./chunk-POHYQBLL.js';function S(i$1,s,o){let{from:e$1,to:r="",amount:n="",memo:t=""}=o,a=o.request_id??Date.now()>>>0;switch(i$1){case "HIVE":switch(s){case "transfer":return [a$1(e$1,r,n,t)];case "transfer-saving":return [d(e$1,r,n,t)];case "withdraw-saving":return [e(e$1,r,n,t,a)];case "power-up":return [h(e$1,r,n)]}break;case "HBD":switch(s){case "transfer":return [a$1(e$1,r,n,t)];case "transfer-saving":return [d(e$1,r,n,t)];case "withdraw-saving":return [e(e$1,r,n,t,a)];case "claim-interest":return g(e$1,r,n,t,a);case "convert":return [l(e$1,n,Math.floor(Date.now()/1e3))]}break;case "HP":switch(s){case "power-down":return [i(e$1,n)];case "delegate":return [j(e$1,r,n)];case "withdraw-routes":return [k$1(o.from_account??e$1,o.to_account??r,o.percent??0,o.auto_vest??false)]}break;case "POINTS":if(s==="transfer"||s==="gift")return [f(e$1,r,n,t)];break}return null}function W(i,s,o$1){let{from:e,to:r="",amount:n$1=""}=o$1,t=typeof n$1=="string"&&n$1.includes(" ")?n$1.split(" ")[0]:String(n$1);switch(s){case "transfer":return [n(e,"transfer",{symbol:i,to:r,quantity:t,memo:o$1.memo??""})];case "stake":return [n(e,"stake",{symbol:i,to:r,quantity:t})];case "unstake":return [n(e,"unstake",{symbol:i,to:r,quantity:t})];case "delegate":return [n(e,"delegate",{symbol:i,to:r,quantity:t})];case "undelegate":return [n(e,"undelegate",{symbol:i,from:r,quantity:t})];case "claim":return [o(e,[i])]}return null}function k(i){return i==="claim"?"posting":"active"}function V(i,s,o,e,r){let{mutateAsync:n}=a.useRecordActivity(i,o);return b(["ecency-wallets",s,o],i,t=>{let a=S(s,o,t);if(a)return a;let f=W(s,o,t);if(f)return f;throw new Error(`[SDK][Wallet] \u2013 no operation builder for asset="${s}" operation="${o}"`)},()=>{n();let t=[];t.push(["ecency-wallets","asset-info",i,s]),s==="HIVE"&&t.push(["ecency-wallets","asset-info",i,"HP"]),t.push(["wallet","portfolio","v2",i]),setTimeout(()=>{t.forEach(a=>{b$1().invalidateQueries({queryKey:a});});},5e3);},e,k(o),{broadcastMode:r})}export{V as a};//# sourceMappingURL=chunk-GFXGKAUS.js.map
2
+ //# sourceMappingURL=chunk-GFXGKAUS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/wallet/mutations/use-wallet-operation.ts"],"names":["buildHiveOperations","asset","operation","payload","from","to","amount","memo","requestId","buildTransferOp","buildTransferToSavingsOp","buildTransferFromSavingsOp","buildTransferToVestingOp","buildClaimInterestOps","buildConvertOp","buildWithdrawVestingOp","buildDelegateVestingSharesOp","buildSetWithdrawVestingRouteOp","buildPointTransferOp","buildEngineOperations","quantity","buildEngineOp","buildEngineClaimOp","getWalletOperationAuthority","useWalletOperation","username","auth","broadcastMode","recordActivity","mutations_exports","useBroadcastMutation","hiveOps","engineOps","keysToInvalidate","key","getQueryClient"],"mappings":"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","file":"chunk-J3RZOR3T.js","sourcesContent":["import { useBroadcastMutation } from \"@/modules/core/mutations\";\nimport type { BroadcastMode } from \"@/modules/core/mutations\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { EcencyAnalytics } from \"@/modules/analytics\";\nimport { getQueryClient } from \"@/modules/core\";\nimport type { AuthorityLevel } from \"@/modules/operations/authority-map\";\nimport { AssetOperation } from \"../types\";\nimport {\n buildTransferOp,\n buildTransferToSavingsOp,\n buildTransferFromSavingsOp,\n buildTransferToVestingOp,\n buildWithdrawVestingOp,\n buildDelegateVestingSharesOp,\n buildSetWithdrawVestingRouteOp,\n buildConvertOp,\n buildClaimInterestOps,\n buildPointTransferOp,\n buildEngineOp,\n buildEngineClaimOp,\n} from \"@/modules/operations/builders\";\nimport type { Operation } from \"../../../hive-tx\";\n\nexport interface WalletOperationPayload {\n from: string;\n to?: string;\n amount?: string;\n memo?: string;\n request_id?: number;\n from_account?: string;\n to_account?: string;\n percent?: number;\n auto_vest?: boolean;\n mode?: string;\n [key: string]: unknown;\n}\n\nfunction buildHiveOperations(\n asset: string,\n operation: AssetOperation,\n payload: WalletOperationPayload\n): Operation[] | null {\n const { from, to = \"\", amount = \"\", memo = \"\" } = payload;\n const requestId = payload.request_id ?? (Date.now() >>> 0);\n\n switch (asset) {\n case \"HIVE\":\n switch (operation) {\n case AssetOperation.Transfer:\n return [buildTransferOp(from, to, amount, memo)];\n case AssetOperation.TransferToSavings:\n return [buildTransferToSavingsOp(from, to, amount, memo)];\n case AssetOperation.WithdrawFromSavings:\n return [buildTransferFromSavingsOp(from, to, amount, memo, requestId)];\n case AssetOperation.PowerUp:\n return [buildTransferToVestingOp(from, to, amount)];\n }\n break;\n\n case \"HBD\":\n switch (operation) {\n case AssetOperation.Transfer:\n return [buildTransferOp(from, to, amount, memo)];\n case AssetOperation.TransferToSavings:\n return [buildTransferToSavingsOp(from, to, amount, memo)];\n case AssetOperation.WithdrawFromSavings:\n return [buildTransferFromSavingsOp(from, to, amount, memo, requestId)];\n case AssetOperation.ClaimInterest:\n return buildClaimInterestOps(from, to, amount, memo, requestId);\n case AssetOperation.Convert:\n return [buildConvertOp(from, amount, Math.floor(Date.now() / 1000))];\n }\n break;\n\n case \"HP\":\n switch (operation) {\n case AssetOperation.PowerDown:\n return [buildWithdrawVestingOp(from, amount)];\n case AssetOperation.Delegate:\n return [buildDelegateVestingSharesOp(from, to, amount)];\n case AssetOperation.WithdrawRoutes:\n return [buildSetWithdrawVestingRouteOp(\n payload.from_account ?? from,\n payload.to_account ?? to,\n payload.percent ?? 0,\n payload.auto_vest ?? false\n )];\n }\n break;\n\n case \"POINTS\":\n if (operation === AssetOperation.Transfer || operation === AssetOperation.Gift) {\n return [buildPointTransferOp(from, to, amount, memo)];\n }\n break;\n }\n\n return null;\n}\n\nfunction buildEngineOperations(\n asset: string,\n operation: AssetOperation,\n payload: WalletOperationPayload\n): Operation[] | null {\n const { from, to = \"\", amount = \"\" } = payload;\n const quantity = typeof amount === \"string\" && amount.includes(\" \")\n ? amount.split(\" \")[0]\n : String(amount);\n\n switch (operation) {\n case AssetOperation.Transfer:\n return [buildEngineOp(from, \"transfer\", {\n symbol: asset, to, quantity, memo: payload.memo ?? \"\"\n })];\n case AssetOperation.Stake:\n return [buildEngineOp(from, \"stake\", { symbol: asset, to, quantity })];\n case AssetOperation.Unstake:\n return [buildEngineOp(from, \"unstake\", { symbol: asset, to, quantity })];\n case AssetOperation.Delegate:\n return [buildEngineOp(from, \"delegate\", { symbol: asset, to, quantity })];\n case AssetOperation.Undelegate:\n return [buildEngineOp(from, \"undelegate\", { symbol: asset, from: to, quantity })];\n case AssetOperation.Claim:\n return [buildEngineClaimOp(from, [asset])];\n }\n\n return null;\n}\n\n/**\n * Determines authority level for a wallet operation.\n * Engine token claims use posting authority; everything else uses active.\n */\nfunction getWalletOperationAuthority(operation: AssetOperation): AuthorityLevel {\n if (operation === AssetOperation.Claim) {\n return 'posting';\n }\n return 'active';\n}\n\n/**\n * Meta-mutation hook that dispatches wallet operations based on asset and operation type.\n *\n * Supports HIVE, HBD, HP, POINTS, and Hive Engine tokens.\n * Uses `useBroadcastMutation` for unified auth handling via `AuthContextV2`.\n *\n * @param username - The Hive account performing the operation\n * @param asset - The asset symbol (e.g., \"HIVE\", \"HBD\", \"HP\", \"POINTS\", or engine token)\n * @param operation - The operation type from AssetOperation enum\n * @param auth - Auth context for broadcasting\n */\nexport function useWalletOperation(\n username: string | undefined,\n asset: string,\n operation: AssetOperation,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n const { mutateAsync: recordActivity } = EcencyAnalytics.useRecordActivity(\n username,\n operation as any\n );\n\n return useBroadcastMutation<WalletOperationPayload>(\n [\"ecency-wallets\", asset, operation],\n username,\n (payload) => {\n // Try native Hive + POINTS operations\n const hiveOps = buildHiveOperations(asset, operation, payload);\n if (hiveOps) return hiveOps;\n\n // Try engine token operations\n const engineOps = buildEngineOperations(asset, operation, payload);\n if (engineOps) return engineOps;\n\n throw new Error(`[SDK][Wallet] – no operation builder for asset=\"${asset}\" operation=\"${operation}\"`);\n },\n () => {\n recordActivity();\n\n const keysToInvalidate: (string | undefined)[][] = [];\n\n // Invalidate asset-specific queries (prefix-matches all currency variants)\n keysToInvalidate.push([\"ecency-wallets\", \"asset-info\", username, asset]);\n\n if (asset === \"HIVE\") {\n keysToInvalidate.push([\"ecency-wallets\", \"asset-info\", username, \"HP\"]);\n }\n\n // Invalidate portfolio (prefix-matches all currency/filter variants)\n keysToInvalidate.push([\"wallet\", \"portfolio\", \"v2\", username]);\n\n // Delay invalidation to allow blockchain to process\n setTimeout(() => {\n keysToInvalidate.forEach((key) => {\n getQueryClient().invalidateQueries({ queryKey: key });\n });\n }, 5000);\n },\n auth,\n getWalletOperationAuthority(operation),\n { broadcastMode }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/wallet/mutations/use-wallet-operation.ts"],"names":["buildHiveOperations","asset","operation","payload","from","to","amount","memo","requestId","buildTransferOp","buildTransferToSavingsOp","buildTransferFromSavingsOp","buildTransferToVestingOp","buildClaimInterestOps","buildConvertOp","buildWithdrawVestingOp","buildDelegateVestingSharesOp","buildSetWithdrawVestingRouteOp","buildPointTransferOp","buildEngineOperations","quantity","buildEngineOp","buildEngineClaimOp","getWalletOperationAuthority","useWalletOperation","username","auth","broadcastMode","recordActivity","mutations_exports","useBroadcastMutation","hiveOps","engineOps","keysToInvalidate","key","getQueryClient"],"mappings":"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","file":"chunk-GFXGKAUS.js","sourcesContent":["import { useBroadcastMutation } from \"@/modules/core/mutations\";\nimport type { BroadcastMode } from \"@/modules/core/mutations\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { EcencyAnalytics } from \"@/modules/analytics\";\nimport { getQueryClient } from \"@/modules/core\";\nimport type { AuthorityLevel } from \"@/modules/operations/authority-map\";\nimport { AssetOperation } from \"../types\";\nimport {\n buildTransferOp,\n buildTransferToSavingsOp,\n buildTransferFromSavingsOp,\n buildTransferToVestingOp,\n buildWithdrawVestingOp,\n buildDelegateVestingSharesOp,\n buildSetWithdrawVestingRouteOp,\n buildConvertOp,\n buildClaimInterestOps,\n buildPointTransferOp,\n buildEngineOp,\n buildEngineClaimOp,\n} from \"@/modules/operations/builders\";\nimport type { Operation } from \"../../../hive-tx\";\n\nexport interface WalletOperationPayload {\n from: string;\n to?: string;\n amount?: string;\n memo?: string;\n request_id?: number;\n from_account?: string;\n to_account?: string;\n percent?: number;\n auto_vest?: boolean;\n mode?: string;\n [key: string]: unknown;\n}\n\nfunction buildHiveOperations(\n asset: string,\n operation: AssetOperation,\n payload: WalletOperationPayload\n): Operation[] | null {\n const { from, to = \"\", amount = \"\", memo = \"\" } = payload;\n const requestId = payload.request_id ?? (Date.now() >>> 0);\n\n switch (asset) {\n case \"HIVE\":\n switch (operation) {\n case AssetOperation.Transfer:\n return [buildTransferOp(from, to, amount, memo)];\n case AssetOperation.TransferToSavings:\n return [buildTransferToSavingsOp(from, to, amount, memo)];\n case AssetOperation.WithdrawFromSavings:\n return [buildTransferFromSavingsOp(from, to, amount, memo, requestId)];\n case AssetOperation.PowerUp:\n return [buildTransferToVestingOp(from, to, amount)];\n }\n break;\n\n case \"HBD\":\n switch (operation) {\n case AssetOperation.Transfer:\n return [buildTransferOp(from, to, amount, memo)];\n case AssetOperation.TransferToSavings:\n return [buildTransferToSavingsOp(from, to, amount, memo)];\n case AssetOperation.WithdrawFromSavings:\n return [buildTransferFromSavingsOp(from, to, amount, memo, requestId)];\n case AssetOperation.ClaimInterest:\n return buildClaimInterestOps(from, to, amount, memo, requestId);\n case AssetOperation.Convert:\n return [buildConvertOp(from, amount, Math.floor(Date.now() / 1000))];\n }\n break;\n\n case \"HP\":\n switch (operation) {\n case AssetOperation.PowerDown:\n return [buildWithdrawVestingOp(from, amount)];\n case AssetOperation.Delegate:\n return [buildDelegateVestingSharesOp(from, to, amount)];\n case AssetOperation.WithdrawRoutes:\n return [buildSetWithdrawVestingRouteOp(\n payload.from_account ?? from,\n payload.to_account ?? to,\n payload.percent ?? 0,\n payload.auto_vest ?? false\n )];\n }\n break;\n\n case \"POINTS\":\n if (operation === AssetOperation.Transfer || operation === AssetOperation.Gift) {\n return [buildPointTransferOp(from, to, amount, memo)];\n }\n break;\n }\n\n return null;\n}\n\nfunction buildEngineOperations(\n asset: string,\n operation: AssetOperation,\n payload: WalletOperationPayload\n): Operation[] | null {\n const { from, to = \"\", amount = \"\" } = payload;\n const quantity = typeof amount === \"string\" && amount.includes(\" \")\n ? amount.split(\" \")[0]\n : String(amount);\n\n switch (operation) {\n case AssetOperation.Transfer:\n return [buildEngineOp(from, \"transfer\", {\n symbol: asset, to, quantity, memo: payload.memo ?? \"\"\n })];\n case AssetOperation.Stake:\n return [buildEngineOp(from, \"stake\", { symbol: asset, to, quantity })];\n case AssetOperation.Unstake:\n return [buildEngineOp(from, \"unstake\", { symbol: asset, to, quantity })];\n case AssetOperation.Delegate:\n return [buildEngineOp(from, \"delegate\", { symbol: asset, to, quantity })];\n case AssetOperation.Undelegate:\n return [buildEngineOp(from, \"undelegate\", { symbol: asset, from: to, quantity })];\n case AssetOperation.Claim:\n return [buildEngineClaimOp(from, [asset])];\n }\n\n return null;\n}\n\n/**\n * Determines authority level for a wallet operation.\n * Engine token claims use posting authority; everything else uses active.\n */\nfunction getWalletOperationAuthority(operation: AssetOperation): AuthorityLevel {\n if (operation === AssetOperation.Claim) {\n return 'posting';\n }\n return 'active';\n}\n\n/**\n * Meta-mutation hook that dispatches wallet operations based on asset and operation type.\n *\n * Supports HIVE, HBD, HP, POINTS, and Hive Engine tokens.\n * Uses `useBroadcastMutation` for unified auth handling via `AuthContextV2`.\n *\n * @param username - The Hive account performing the operation\n * @param asset - The asset symbol (e.g., \"HIVE\", \"HBD\", \"HP\", \"POINTS\", or engine token)\n * @param operation - The operation type from AssetOperation enum\n * @param auth - Auth context for broadcasting\n */\nexport function useWalletOperation(\n username: string | undefined,\n asset: string,\n operation: AssetOperation,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n const { mutateAsync: recordActivity } = EcencyAnalytics.useRecordActivity(\n username,\n operation as any\n );\n\n return useBroadcastMutation<WalletOperationPayload>(\n [\"ecency-wallets\", asset, operation],\n username,\n (payload) => {\n // Try native Hive + POINTS operations\n const hiveOps = buildHiveOperations(asset, operation, payload);\n if (hiveOps) return hiveOps;\n\n // Try engine token operations\n const engineOps = buildEngineOperations(asset, operation, payload);\n if (engineOps) return engineOps;\n\n throw new Error(`[SDK][Wallet] – no operation builder for asset=\"${asset}\" operation=\"${operation}\"`);\n },\n () => {\n recordActivity();\n\n const keysToInvalidate: (string | undefined)[][] = [];\n\n // Invalidate asset-specific queries (prefix-matches all currency variants)\n keysToInvalidate.push([\"ecency-wallets\", \"asset-info\", username, asset]);\n\n if (asset === \"HIVE\") {\n keysToInvalidate.push([\"ecency-wallets\", \"asset-info\", username, \"HP\"]);\n }\n\n // Invalidate portfolio (prefix-matches all currency/filter variants)\n keysToInvalidate.push([\"wallet\", \"portfolio\", \"v2\", username]);\n\n // Delay invalidation to allow blockchain to process\n setTimeout(() => {\n keysToInvalidate.forEach((key) => {\n getQueryClient().invalidateQueries({ queryKey: key });\n });\n }, 5000);\n },\n auth,\n getWalletOperationAuthority(operation),\n { broadcastMode }\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {a as a$1}from'./chunk-N3JLKXGY.js';import {a}from'./chunk-XOHE3ND5.js';import {c}from'./chunk-32QJ72HH.js';import {b}from'./chunk-POHYQBLL.js';import {j}from'./chunk-RAWKN3XW.js';import {queryOptions}from'@tanstack/react-query';function q(n){return queryOptions({queryKey:["assets","hive","general-info",n],staleTime:6e4,refetchInterval:9e4,queryFn:async()=>{await b().prefetchQuery(a()),await b().prefetchQuery(a$1(n));let e=b().getQueryData(a().queryKey),r=b().getQueryData(a$1(n).queryKey),m=await j("condenser_api.get_ticker",[]).catch(()=>{}),a$2=Number.parseFloat(m?.latest??"");if(!r)return {name:"HIVE",title:"Hive",price:Number.isFinite(a$2)?a$2:e?e.base/e.quote:0,accountBalance:0};let c$1=c(r.balance).amount,u=c(r.savings_balance).amount;return {name:"HIVE",title:"Hive",price:Number.isFinite(a$2)?a$2:e?e.base/e.quote:0,accountBalance:c$1+u,parts:[{name:"current",balance:c$1},{name:"savings",balance:u}]}}})}export{q as a};//# sourceMappingURL=chunk-44EOXEIC.js.map
2
- //# sourceMappingURL=chunk-44EOXEIC.js.map
1
+ import {a as a$1}from'./chunk-2MIOCMJB.js';import {a}from'./chunk-XOHE3ND5.js';import {c}from'./chunk-32QJ72HH.js';import {b}from'./chunk-POHYQBLL.js';import {j}from'./chunk-RAWKN3XW.js';import {queryOptions}from'@tanstack/react-query';function q(n){return queryOptions({queryKey:["assets","hive","general-info",n],staleTime:6e4,refetchInterval:9e4,queryFn:async()=>{await b().prefetchQuery(a()),await b().prefetchQuery(a$1(n));let e=b().getQueryData(a().queryKey),r=b().getQueryData(a$1(n).queryKey),m=await j("condenser_api.get_ticker",[]).catch(()=>{}),a$2=Number.parseFloat(m?.latest??"");if(!r)return {name:"HIVE",title:"Hive",price:Number.isFinite(a$2)?a$2:e?e.base/e.quote:0,accountBalance:0};let c$1=c(r.balance).amount,u=c(r.savings_balance).amount;return {name:"HIVE",title:"Hive",price:Number.isFinite(a$2)?a$2:e?e.base/e.quote:0,accountBalance:c$1+u,parts:[{name:"current",balance:c$1},{name:"savings",balance:u}]}}})}export{q as a};//# sourceMappingURL=chunk-GNVQHSS3.js.map
2
+ //# sourceMappingURL=chunk-GNVQHSS3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/wallet/queries/get-hive-asset-general-info-query-options.ts"],"names":["getHiveAssetGeneralInfoQueryOptions","username","queryOptions","getQueryClient","getDynamicPropsQueryOptions","getAccountFullQueryOptions","dynamicProps","accountData","marketTicker","callRPC","marketPrice","liquidBalance","parseAsset","savingsBalance"],"mappings":"4OASO,SAASA,EAAoCC,CAAAA,CAAkB,CACpE,OAAOC,YAAAA,CAAa,CAClB,QAAA,CAAU,CAAC,QAAA,CAAU,MAAA,CAAQ,eAAgBD,CAAQ,CAAA,CACrD,SAAA,CAAW,GAAA,CACX,eAAA,CAAiB,GAAA,CACjB,OAAA,CAAS,SAAY,CACnB,MAAME,CAAAA,EAAe,CAAE,aAAA,CAAcC,GAA6B,CAAA,CAClE,MAAMD,CAAAA,GAAiB,aAAA,CACrBE,GAAAA,CAA2BJ,CAAQ,CACrC,CAAA,CAEA,IAAMK,CAAAA,CAAeH,CAAAA,GAAiB,YAAA,CACpCC,CAAAA,EAA4B,CAAE,QAChC,EACMG,CAAAA,CAAcJ,CAAAA,EAAe,CAAE,YAAA,CACnCE,IAA2BJ,CAAQ,CAAA,CAAE,QACvC,CAAA,CAEMO,EAAgB,MAAMC,CAAAA,CAAQ,0BAAA,CAA4B,EAAE,CAAA,CAC/D,KAAA,CAAM,IAAG,CAAA,CAAY,EAElBC,GAAAA,CAAc,MAAA,CAAO,UAAA,CAAWF,CAAAA,EAAc,QAAU,EAAE,CAAA,CAEhE,GAAI,CAACD,CAAAA,CACH,OAAO,CACL,IAAA,CAAM,OACN,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,MAAA,CAAO,SAASG,GAAW,CAAA,CAC9BA,GAAAA,CACAJ,CAAAA,CACEA,EAAa,IAAA,CAAOA,CAAAA,CAAa,KAAA,CACjC,CAAA,CACN,eAAgB,CAClB,CAAA,CAGF,IAAMK,GAAAA,CAAgBC,EAAWL,CAAAA,CAAY,OAAO,CAAA,CAAE,MAAA,CAChDM,EAAiBD,CAAAA,CAAWL,CAAAA,CAAY,eAAe,CAAA,CAAE,OAE/D,OAAO,CACL,IAAA,CAAM,MAAA,CACN,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,MAAA,CAAO,SAASG,GAAW,CAAA,CAC9BA,GAAAA,CACAJ,CAAAA,CACEA,EAAa,IAAA,CAAOA,CAAAA,CAAa,KAAA,CACjC,CAAA,CACN,eAAgBK,GAAAA,CAAgBE,CAAAA,CAChC,KAAA,CAAO,CACL,CACE,IAAA,CAAM,SAAA,CACN,OAAA,CAASF,GACX,EACA,CACE,IAAA,CAAM,SAAA,CACN,OAAA,CAASE,CACX,CACF,CACF,CACF,CACF,CAAC,CACH","file":"chunk-44EOXEIC.js","sourcesContent":["import type { DynamicProps } from \"@/modules/core\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\nimport { getAccountFullQueryOptions } from \"@/modules/accounts\";\nimport { getDynamicPropsQueryOptions, getQueryClient } from \"@/modules/core\";\nimport type { FullAccount } from \"@/modules/accounts\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport type { GeneralAssetInfo } from \"../types\";\nimport { parseAsset } from \"@/modules/core/utils\";\n\nexport function getHiveAssetGeneralInfoQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"assets\", \"hive\", \"general-info\", username],\n staleTime: 60000,\n refetchInterval: 90000,\n queryFn: async () => {\n await getQueryClient().prefetchQuery(getDynamicPropsQueryOptions());\n await getQueryClient().prefetchQuery(\n getAccountFullQueryOptions(username)\n );\n\n const dynamicProps = getQueryClient().getQueryData<DynamicProps>(\n getDynamicPropsQueryOptions().queryKey\n );\n const accountData = getQueryClient().getQueryData<FullAccount>(\n getAccountFullQueryOptions(username).queryKey\n );\n\n const marketTicker = (await callRPC(\"condenser_api.get_ticker\", [])\n .catch(() => undefined)) as { latest?: string } | undefined;\n\n const marketPrice = Number.parseFloat(marketTicker?.latest ?? \"\");\n\n if (!accountData) {\n return {\n name: \"HIVE\",\n title: \"Hive\",\n price: Number.isFinite(marketPrice)\n ? marketPrice\n : dynamicProps\n ? dynamicProps.base / dynamicProps.quote\n : 0,\n accountBalance: 0,\n } satisfies GeneralAssetInfo;\n }\n\n const liquidBalance = parseAsset(accountData.balance).amount;\n const savingsBalance = parseAsset(accountData.savings_balance).amount;\n\n return {\n name: \"HIVE\",\n title: \"Hive\",\n price: Number.isFinite(marketPrice)\n ? marketPrice\n : dynamicProps\n ? dynamicProps.base / dynamicProps.quote\n : 0,\n accountBalance: liquidBalance + savingsBalance,\n parts: [\n {\n name: \"current\",\n balance: liquidBalance,\n },\n {\n name: \"savings\",\n balance: savingsBalance,\n },\n ],\n } satisfies GeneralAssetInfo;\n },\n });\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/wallet/queries/get-hive-asset-general-info-query-options.ts"],"names":["getHiveAssetGeneralInfoQueryOptions","username","queryOptions","getQueryClient","getDynamicPropsQueryOptions","getAccountFullQueryOptions","dynamicProps","accountData","marketTicker","callRPC","marketPrice","liquidBalance","parseAsset","savingsBalance"],"mappings":"4OASO,SAASA,EAAoCC,CAAAA,CAAkB,CACpE,OAAOC,YAAAA,CAAa,CAClB,QAAA,CAAU,CAAC,QAAA,CAAU,MAAA,CAAQ,eAAgBD,CAAQ,CAAA,CACrD,SAAA,CAAW,GAAA,CACX,eAAA,CAAiB,GAAA,CACjB,OAAA,CAAS,SAAY,CACnB,MAAME,CAAAA,EAAe,CAAE,aAAA,CAAcC,GAA6B,CAAA,CAClE,MAAMD,CAAAA,GAAiB,aAAA,CACrBE,GAAAA,CAA2BJ,CAAQ,CACrC,CAAA,CAEA,IAAMK,CAAAA,CAAeH,CAAAA,GAAiB,YAAA,CACpCC,CAAAA,EAA4B,CAAE,QAChC,EACMG,CAAAA,CAAcJ,CAAAA,EAAe,CAAE,YAAA,CACnCE,IAA2BJ,CAAQ,CAAA,CAAE,QACvC,CAAA,CAEMO,EAAgB,MAAMC,CAAAA,CAAQ,0BAAA,CAA4B,EAAE,CAAA,CAC/D,KAAA,CAAM,IAAG,CAAA,CAAY,EAElBC,GAAAA,CAAc,MAAA,CAAO,UAAA,CAAWF,CAAAA,EAAc,QAAU,EAAE,CAAA,CAEhE,GAAI,CAACD,CAAAA,CACH,OAAO,CACL,IAAA,CAAM,OACN,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,MAAA,CAAO,SAASG,GAAW,CAAA,CAC9BA,GAAAA,CACAJ,CAAAA,CACEA,EAAa,IAAA,CAAOA,CAAAA,CAAa,KAAA,CACjC,CAAA,CACN,eAAgB,CAClB,CAAA,CAGF,IAAMK,GAAAA,CAAgBC,EAAWL,CAAAA,CAAY,OAAO,CAAA,CAAE,MAAA,CAChDM,EAAiBD,CAAAA,CAAWL,CAAAA,CAAY,eAAe,CAAA,CAAE,OAE/D,OAAO,CACL,IAAA,CAAM,MAAA,CACN,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,MAAA,CAAO,SAASG,GAAW,CAAA,CAC9BA,GAAAA,CACAJ,CAAAA,CACEA,EAAa,IAAA,CAAOA,CAAAA,CAAa,KAAA,CACjC,CAAA,CACN,eAAgBK,GAAAA,CAAgBE,CAAAA,CAChC,KAAA,CAAO,CACL,CACE,IAAA,CAAM,SAAA,CACN,OAAA,CAASF,GACX,EACA,CACE,IAAA,CAAM,SAAA,CACN,OAAA,CAASE,CACX,CACF,CACF,CACF,CACF,CAAC,CACH","file":"chunk-GNVQHSS3.js","sourcesContent":["import type { DynamicProps } from \"@/modules/core\";\nimport { callRPC } from \"@/modules/core/hive-tx\";\nimport { getAccountFullQueryOptions } from \"@/modules/accounts\";\nimport { getDynamicPropsQueryOptions, getQueryClient } from \"@/modules/core\";\nimport type { FullAccount } from \"@/modules/accounts\";\nimport { queryOptions } from \"@tanstack/react-query\";\nimport type { GeneralAssetInfo } from \"../types\";\nimport { parseAsset } from \"@/modules/core/utils\";\n\nexport function getHiveAssetGeneralInfoQueryOptions(username: string) {\n return queryOptions({\n queryKey: [\"assets\", \"hive\", \"general-info\", username],\n staleTime: 60000,\n refetchInterval: 90000,\n queryFn: async () => {\n await getQueryClient().prefetchQuery(getDynamicPropsQueryOptions());\n await getQueryClient().prefetchQuery(\n getAccountFullQueryOptions(username)\n );\n\n const dynamicProps = getQueryClient().getQueryData<DynamicProps>(\n getDynamicPropsQueryOptions().queryKey\n );\n const accountData = getQueryClient().getQueryData<FullAccount>(\n getAccountFullQueryOptions(username).queryKey\n );\n\n const marketTicker = (await callRPC(\"condenser_api.get_ticker\", [])\n .catch(() => undefined)) as { latest?: string } | undefined;\n\n const marketPrice = Number.parseFloat(marketTicker?.latest ?? \"\");\n\n if (!accountData) {\n return {\n name: \"HIVE\",\n title: \"Hive\",\n price: Number.isFinite(marketPrice)\n ? marketPrice\n : dynamicProps\n ? dynamicProps.base / dynamicProps.quote\n : 0,\n accountBalance: 0,\n } satisfies GeneralAssetInfo;\n }\n\n const liquidBalance = parseAsset(accountData.balance).amount;\n const savingsBalance = parseAsset(accountData.savings_balance).amount;\n\n return {\n name: \"HIVE\",\n title: \"Hive\",\n price: Number.isFinite(marketPrice)\n ? marketPrice\n : dynamicProps\n ? dynamicProps.base / dynamicProps.quote\n : 0,\n accountBalance: liquidBalance + savingsBalance,\n parts: [\n {\n name: \"current\",\n balance: liquidBalance,\n },\n {\n name: \"savings\",\n balance: savingsBalance,\n },\n ],\n } satisfies GeneralAssetInfo;\n },\n });\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {c}from'./chunk-OBSTAXZB.js';import {b}from'./chunk-K2DAN37J.js';import {b as b$1}from'./chunk-POHYQBLL.js';import {a}from'./chunk-HEILHNSR.js';function x(o,m,s,y){return b(["communities","set-role",o],m,({account:u,role:t})=>[c(m,o,u,t)],async(u,t)=>{b$1().setQueriesData({queryKey:a.communities.singlePrefix(o)},i=>{if(!i)return i;let e=[...i.team??[]],n=e.findIndex(([l])=>l===t.account);return n>=0?e[n]=[e[n][0],t.role,e[n][2]??""]:e.push([t.account,t.role,""]),{...i,team:e}}),s?.adapter?.invalidateQueries&&await s.adapter.invalidateQueries([[...a.communities.singlePrefix(o)],a.communities.context(t.account,o)]);},s,"posting",{broadcastMode:y??"async"})}export{x as a};//# sourceMappingURL=chunk-LL4YZLL2.js.map
2
- //# sourceMappingURL=chunk-LL4YZLL2.js.map
1
+ import {c}from'./chunk-OBSTAXZB.js';import {b}from'./chunk-J2HM6MWA.js';import {b as b$1}from'./chunk-POHYQBLL.js';import {a}from'./chunk-HEILHNSR.js';function x(o,m,s,y){return b(["communities","set-role",o],m,({account:u,role:t})=>[c(m,o,u,t)],async(u,t)=>{b$1().setQueriesData({queryKey:a.communities.singlePrefix(o)},i=>{if(!i)return i;let e=[...i.team??[]],n=e.findIndex(([l])=>l===t.account);return n>=0?e[n]=[e[n][0],t.role,e[n][2]??""]:e.push([t.account,t.role,""]),{...i,team:e}}),s?.adapter?.invalidateQueries&&await s.adapter.invalidateQueries([[...a.communities.singlePrefix(o)],a.communities.context(t.account,o)]);},s,"posting",{broadcastMode:y??"async"})}export{x as a};//# sourceMappingURL=chunk-HO6CZGVL.js.map
2
+ //# sourceMappingURL=chunk-HO6CZGVL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/communities/mutations/use-set-community-role.ts"],"names":["useSetCommunityRole","community","username","auth","broadcastMode","useBroadcastMutation","account","role","buildSetRoleOp","_result","variables","getQueryClient","QueryKeys","prev","team","idx","name"],"mappings":"uJAkEO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,EACA,CACA,OAAOC,CAAAA,CACL,CAAC,aAAA,CAAe,UAAA,CAAYJ,CAAS,CAAA,CACrCC,EACA,CAAC,CAAE,OAAA,CAAAI,CAAAA,CAAS,IAAA,CAAAC,CAAK,CAAA,GAAM,CACrBC,EAAeN,CAAAA,CAAWD,CAAAA,CAAWK,CAAAA,CAASC,CAAI,CACpD,CAAA,CACA,MAAOE,CAAAA,CAAcC,IAAc,CAGtBC,GAAAA,EAAe,CACvB,cAAA,CACD,CAAE,QAAA,CAAUC,CAAAA,CAAU,WAAA,CAAY,aAAaX,CAAS,CAAE,CAAA,CACzDY,CAAAA,EAAS,CACR,GAAI,CAACA,CAAAA,CAAM,OAAOA,CAAAA,CAClB,IAAMC,CAAAA,CAAsB,CAAC,GAAID,CAAAA,CAAK,IAAA,EAAQ,EAAG,CAAA,CAC3CE,CAAAA,CAAMD,CAAAA,CAAK,SAAA,CAAU,CAAC,CAACE,CAAI,CAAA,GAAMA,CAAAA,GAASN,EAAU,OAAO,CAAA,CACjE,OAAIK,CAAAA,EAAO,CAAA,CACTD,CAAAA,CAAKC,CAAG,CAAA,CAAI,CAACD,CAAAA,CAAKC,CAAG,CAAA,CAAE,CAAC,CAAA,CAAGL,CAAAA,CAAU,IAAA,CAAMI,CAAAA,CAAKC,CAAG,CAAA,CAAE,CAAC,CAAA,EAAK,EAAE,CAAA,CAE7DD,CAAAA,CAAK,IAAA,CAAK,CAACJ,EAAU,OAAA,CAASA,CAAAA,CAAU,IAAA,CAAM,EAAE,CAAC,CAAA,CAE5C,CAAE,GAAGG,CAAAA,CAAM,KAAAC,CAAK,CACzB,CACF,CAAA,CAGIX,CAAAA,EAAM,OAAA,EAAS,iBAAA,EACjB,MAAMA,EAAK,OAAA,CAAQ,iBAAA,CAAkB,CACnC,CAAC,GAAGS,CAAAA,CAAU,WAAA,CAAY,YAAA,CAAaX,CAAS,CAAC,CAAA,CACjDW,CAAAA,CAAU,WAAA,CAAY,OAAA,CAAQF,CAAAA,CAAU,OAAA,CAAST,CAAS,CAC5D,CAAC,EAEL,CAAA,CACAE,CAAAA,CACA,UACA,CAAE,aAAA,CAAeC,CAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-LL4YZLL2.js","sourcesContent":["import { useBroadcastMutation, getQueryClient, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildSetRoleOp } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport type { Community, CommunityTeam } from \"../types\";\n\n/**\n * Payload for setting a user's role in a community.\n */\nexport interface SetCommunityRolePayload {\n /** Account to set role for */\n account: string;\n /** Role name (e.g., \"admin\", \"mod\", \"member\", \"guest\") */\n role: string;\n}\n\n/**\n * React Query mutation hook for setting a user's role in a community.\n *\n * This mutation broadcasts a setRole operation to the Hive blockchain,\n * updating the role of a community member. Only users with appropriate\n * permissions (community owner/admin) can set roles.\n *\n * @param community - Community name (e.g., \"hive-123456\")\n * @param username - The username setting the role (required for broadcast, must have permission)\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 refetch updated team member list\n *\n * **Operation Details:**\n * - Uses custom_json operation with id \"community\"\n * - Action: [\"setRole\", {\"community\": \"hive-123456\", \"account\": \"user\", \"role\": \"mod\"}]\n * - Authority: Posting key\n *\n * **Role Types:**\n * - \"owner\" - Community owner (full permissions)\n * - \"admin\" - Administrator (can manage settings and team)\n * - \"mod\" - Moderator (can mute posts/users)\n * - \"member\" - Regular member (no special permissions)\n * - \"guest\" - Remove user from team (empty string also works)\n *\n * @example\n * ```typescript\n * const setRoleMutation = useSetCommunityRole('hive-123456', username, {\n * adapter: myAdapter,\n * enableFallback: true,\n * fallbackChain: ['keychain', 'key', 'hivesigner']\n * });\n *\n * // Set a user as moderator\n * setRoleMutation.mutate({\n * account: 'alice',\n * role: 'mod'\n * });\n *\n * // Remove a user from the team\n * setRoleMutation.mutate({\n * account: 'bob',\n * role: 'guest'\n * });\n * ```\n */\nexport function useSetCommunityRole(\n community: string,\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<SetCommunityRolePayload>(\n [\"communities\", \"set-role\", community],\n username,\n ({ account, role }) => [\n buildSetRoleOp(username!, community, account, role)\n ],\n async (_result: any, variables) => {\n // Optimistic team update in community cache\n // Query key is [\"community\",\"single\",name,observer] — observer varies, so use predicate\n const qc = getQueryClient();\n qc.setQueriesData<Community>(\n { queryKey: QueryKeys.communities.singlePrefix(community) },\n (prev) => {\n if (!prev) return prev;\n const team: CommunityTeam = [...(prev.team ?? [])];\n const idx = team.findIndex(([name]) => name === variables.account);\n if (idx >= 0) {\n team[idx] = [team[idx][0], variables.role, team[idx][2] ?? \"\"];\n } else {\n team.push([variables.account, variables.role, \"\"]);\n }\n return { ...prev, team };\n }\n );\n\n // Cache invalidation — prefix-match all community single queries + context for affected user\n if (auth?.adapter?.invalidateQueries) {\n await auth.adapter.invalidateQueries([\n [...QueryKeys.communities.singlePrefix(community)],\n QueryKeys.communities.context(variables.account, community)\n ]);\n }\n },\n auth,\n 'posting',\n { broadcastMode: broadcastMode ?? 'async' }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/communities/mutations/use-set-community-role.ts"],"names":["useSetCommunityRole","community","username","auth","broadcastMode","useBroadcastMutation","account","role","buildSetRoleOp","_result","variables","getQueryClient","QueryKeys","prev","team","idx","name"],"mappings":"uJAkEO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,EACA,CACA,OAAOC,CAAAA,CACL,CAAC,aAAA,CAAe,UAAA,CAAYJ,CAAS,CAAA,CACrCC,EACA,CAAC,CAAE,OAAA,CAAAI,CAAAA,CAAS,IAAA,CAAAC,CAAK,CAAA,GAAM,CACrBC,EAAeN,CAAAA,CAAWD,CAAAA,CAAWK,CAAAA,CAASC,CAAI,CACpD,CAAA,CACA,MAAOE,CAAAA,CAAcC,IAAc,CAGtBC,GAAAA,EAAe,CACvB,cAAA,CACD,CAAE,QAAA,CAAUC,CAAAA,CAAU,WAAA,CAAY,aAAaX,CAAS,CAAE,CAAA,CACzDY,CAAAA,EAAS,CACR,GAAI,CAACA,CAAAA,CAAM,OAAOA,CAAAA,CAClB,IAAMC,CAAAA,CAAsB,CAAC,GAAID,CAAAA,CAAK,IAAA,EAAQ,EAAG,CAAA,CAC3CE,CAAAA,CAAMD,CAAAA,CAAK,SAAA,CAAU,CAAC,CAACE,CAAI,CAAA,GAAMA,CAAAA,GAASN,EAAU,OAAO,CAAA,CACjE,OAAIK,CAAAA,EAAO,CAAA,CACTD,CAAAA,CAAKC,CAAG,CAAA,CAAI,CAACD,CAAAA,CAAKC,CAAG,CAAA,CAAE,CAAC,CAAA,CAAGL,CAAAA,CAAU,IAAA,CAAMI,CAAAA,CAAKC,CAAG,CAAA,CAAE,CAAC,CAAA,EAAK,EAAE,CAAA,CAE7DD,CAAAA,CAAK,IAAA,CAAK,CAACJ,EAAU,OAAA,CAASA,CAAAA,CAAU,IAAA,CAAM,EAAE,CAAC,CAAA,CAE5C,CAAE,GAAGG,CAAAA,CAAM,KAAAC,CAAK,CACzB,CACF,CAAA,CAGIX,CAAAA,EAAM,OAAA,EAAS,iBAAA,EACjB,MAAMA,EAAK,OAAA,CAAQ,iBAAA,CAAkB,CACnC,CAAC,GAAGS,CAAAA,CAAU,WAAA,CAAY,YAAA,CAAaX,CAAS,CAAC,CAAA,CACjDW,CAAAA,CAAU,WAAA,CAAY,OAAA,CAAQF,CAAAA,CAAU,OAAA,CAAST,CAAS,CAC5D,CAAC,EAEL,CAAA,CACAE,CAAAA,CACA,UACA,CAAE,aAAA,CAAeC,CAAAA,EAAiB,OAAQ,CAC5C,CACF","file":"chunk-HO6CZGVL.js","sourcesContent":["import { useBroadcastMutation, getQueryClient, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildSetRoleOp } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport type { Community, CommunityTeam } from \"../types\";\n\n/**\n * Payload for setting a user's role in a community.\n */\nexport interface SetCommunityRolePayload {\n /** Account to set role for */\n account: string;\n /** Role name (e.g., \"admin\", \"mod\", \"member\", \"guest\") */\n role: string;\n}\n\n/**\n * React Query mutation hook for setting a user's role in a community.\n *\n * This mutation broadcasts a setRole operation to the Hive blockchain,\n * updating the role of a community member. Only users with appropriate\n * permissions (community owner/admin) can set roles.\n *\n * @param community - Community name (e.g., \"hive-123456\")\n * @param username - The username setting the role (required for broadcast, must have permission)\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 refetch updated team member list\n *\n * **Operation Details:**\n * - Uses custom_json operation with id \"community\"\n * - Action: [\"setRole\", {\"community\": \"hive-123456\", \"account\": \"user\", \"role\": \"mod\"}]\n * - Authority: Posting key\n *\n * **Role Types:**\n * - \"owner\" - Community owner (full permissions)\n * - \"admin\" - Administrator (can manage settings and team)\n * - \"mod\" - Moderator (can mute posts/users)\n * - \"member\" - Regular member (no special permissions)\n * - \"guest\" - Remove user from team (empty string also works)\n *\n * @example\n * ```typescript\n * const setRoleMutation = useSetCommunityRole('hive-123456', username, {\n * adapter: myAdapter,\n * enableFallback: true,\n * fallbackChain: ['keychain', 'key', 'hivesigner']\n * });\n *\n * // Set a user as moderator\n * setRoleMutation.mutate({\n * account: 'alice',\n * role: 'mod'\n * });\n *\n * // Remove a user from the team\n * setRoleMutation.mutate({\n * account: 'bob',\n * role: 'guest'\n * });\n * ```\n */\nexport function useSetCommunityRole(\n community: string,\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<SetCommunityRolePayload>(\n [\"communities\", \"set-role\", community],\n username,\n ({ account, role }) => [\n buildSetRoleOp(username!, community, account, role)\n ],\n async (_result: any, variables) => {\n // Optimistic team update in community cache\n // Query key is [\"community\",\"single\",name,observer] — observer varies, so use predicate\n const qc = getQueryClient();\n qc.setQueriesData<Community>(\n { queryKey: QueryKeys.communities.singlePrefix(community) },\n (prev) => {\n if (!prev) return prev;\n const team: CommunityTeam = [...(prev.team ?? [])];\n const idx = team.findIndex(([name]) => name === variables.account);\n if (idx >= 0) {\n team[idx] = [team[idx][0], variables.role, team[idx][2] ?? \"\"];\n } else {\n team.push([variables.account, variables.role, \"\"]);\n }\n return { ...prev, team };\n }\n );\n\n // Cache invalidation — prefix-match all community single queries + context for affected user\n if (auth?.adapter?.invalidateQueries) {\n await auth.adapter.invalidateQueries([\n [...QueryKeys.communities.singlePrefix(community)],\n QueryKeys.communities.context(variables.account, community)\n ]);\n }\n },\n auth,\n 'posting',\n { broadcastMode: broadcastMode ?? 'async' }\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {f}from'./chunk-QYY3VHLJ.js';import {b as b$1}from'./chunk-CNB64U7U.js';import {b}from'./chunk-K2DAN37J.js';import {a}from'./chunk-HEILHNSR.js';function m(o,r,e){return b(["accounts","grant-posting-permission"],o,t=>[f(o,t.currentPosting,t.grantedAccount,t.weightThreshold,t.memoKey,t.jsonMetadata)],async()=>{await b$1(r?.adapter,e,[a.accounts.full(o)]);},r,"active",{broadcastMode:e})}export{m as a};//# sourceMappingURL=chunk-LHABXX5K.js.map
2
- //# sourceMappingURL=chunk-LHABXX5K.js.map
1
+ import {f}from'./chunk-QYY3VHLJ.js';import {b as b$1}from'./chunk-CNB64U7U.js';import {b}from'./chunk-J2HM6MWA.js';import {a}from'./chunk-HEILHNSR.js';function m(o,r,e){return b(["accounts","grant-posting-permission"],o,t=>[f(o,t.currentPosting,t.grantedAccount,t.weightThreshold,t.memoKey,t.jsonMetadata)],async()=>{await b$1(r?.adapter,e,[a.accounts.full(o)]);},r,"active",{broadcastMode:e})}export{m as a};//# sourceMappingURL=chunk-IF3OTURI.js.map
2
+ //# sourceMappingURL=chunk-IF3OTURI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/accounts/mutations/use-grant-posting-permission.ts"],"names":["useGrantPostingPermission","username","auth","broadcastMode","useBroadcastMutation","payload","buildGrantPostingPermissionOp","invalidateAfterBroadcast","QueryKeys"],"mappings":"uJAaO,SAASA,CAAAA,CACdC,EACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,UAAA,CAAY,0BAA0B,CAAA,CACvCH,EACCI,CAAAA,EAAY,CACXC,CAAAA,CACEL,CAAAA,CACAI,CAAAA,CAAQ,cAAA,CACRA,EAAQ,cAAA,CACRA,CAAAA,CAAQ,eAAA,CACRA,CAAAA,CAAQ,OAAA,CACRA,CAAAA,CAAQ,YACV,CACF,CAAA,CACA,SAAY,CACV,MAAME,IAAyBL,CAAAA,EAAM,OAAA,CAASC,CAAAA,CAAe,CAC3DK,CAAAA,CAAU,QAAA,CAAS,KAAKP,CAAQ,CAClC,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,SACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-LHABXX5K.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildGrantPostingPermissionOp, type Authority } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\nexport interface GrantPostingPermissionPayload {\n currentPosting: Authority;\n grantedAccount: string;\n weightThreshold: number;\n memoKey: string;\n jsonMetadata: string;\n}\n\nexport function useGrantPostingPermission(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<GrantPostingPermissionPayload>(\n [\"accounts\", \"grant-posting-permission\"],\n username,\n (payload) => [\n buildGrantPostingPermissionOp(\n username!,\n payload.currentPosting,\n payload.grantedAccount,\n payload.weightThreshold,\n payload.memoKey,\n payload.jsonMetadata\n )\n ],\n async () => {\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.full(username),\n ]);\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/accounts/mutations/use-grant-posting-permission.ts"],"names":["useGrantPostingPermission","username","auth","broadcastMode","useBroadcastMutation","payload","buildGrantPostingPermissionOp","invalidateAfterBroadcast","QueryKeys"],"mappings":"uJAaO,SAASA,CAAAA,CACdC,EACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,UAAA,CAAY,0BAA0B,CAAA,CACvCH,EACCI,CAAAA,EAAY,CACXC,CAAAA,CACEL,CAAAA,CACAI,CAAAA,CAAQ,cAAA,CACRA,EAAQ,cAAA,CACRA,CAAAA,CAAQ,eAAA,CACRA,CAAAA,CAAQ,OAAA,CACRA,CAAAA,CAAQ,YACV,CACF,CAAA,CACA,SAAY,CACV,MAAME,IAAyBL,CAAAA,EAAM,OAAA,CAASC,CAAAA,CAAe,CAC3DK,CAAAA,CAAU,QAAA,CAAS,KAAKP,CAAQ,CAClC,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,SACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-IF3OTURI.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildGrantPostingPermissionOp, type Authority } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\nexport interface GrantPostingPermissionPayload {\n currentPosting: Authority;\n grantedAccount: string;\n weightThreshold: number;\n memoKey: string;\n jsonMetadata: string;\n}\n\nexport function useGrantPostingPermission(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<GrantPostingPermissionPayload>(\n [\"accounts\", \"grant-posting-permission\"],\n username,\n (payload) => [\n buildGrantPostingPermissionOp(\n username!,\n payload.currentPosting,\n payload.grantedAccount,\n payload.weightThreshold,\n payload.memoKey,\n payload.jsonMetadata\n )\n ],\n async () => {\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.full(username),\n ]);\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {f}from'./chunk-4COFIDSX.js';import {b as b$1}from'./chunk-CNB64U7U.js';import {b}from'./chunk-K2DAN37J.js';import {a}from'./chunk-HEILHNSR.js';function u(t,e,n){return b(["wallet","transfer-point"],t,o=>[f(t,o.to,o.amount,o.memo)],async(o,f)=>{await b$1(e?.adapter,n,[a.accounts.full(t),a.accounts.full(f.to),["ecency-wallets","asset-info",t],["wallet","portfolio","v2",t]]);},e,"active",{broadcastMode:n})}export{u as a};//# sourceMappingURL=chunk-YN34NTWC.js.map
2
- //# sourceMappingURL=chunk-YN34NTWC.js.map
1
+ import {f}from'./chunk-4COFIDSX.js';import {b as b$1}from'./chunk-CNB64U7U.js';import {b}from'./chunk-J2HM6MWA.js';import {a}from'./chunk-HEILHNSR.js';function u(t,e,n){return b(["wallet","transfer-point"],t,o=>[f(t,o.to,o.amount,o.memo)],async(o,f)=>{await b$1(e?.adapter,n,[a.accounts.full(t),a.accounts.full(f.to),["ecency-wallets","asset-info",t],["wallet","portfolio","v2",t]]);},e,"active",{broadcastMode:n})}export{u as a};//# sourceMappingURL=chunk-ILKK5VBZ.js.map
2
+ //# sourceMappingURL=chunk-ILKK5VBZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/wallet/mutations/use-transfer-point.ts"],"names":["useTransferPoint","username","auth","broadcastMode","useBroadcastMutation","payload","buildPointTransferOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"uJAiBO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,QAAA,CAAU,gBAAgB,CAAA,CAC3BH,CAAAA,CACCI,GAAY,CACXC,CAAAA,CAAqBL,CAAAA,CAAWI,CAAAA,CAAQ,EAAA,CAAIA,CAAAA,CAAQ,MAAA,CAAQA,CAAAA,CAAQ,IAAI,CAC1E,CAAA,CACA,MAAOE,CAAAA,CAASC,CAAAA,GAAc,CAC5B,MAAMC,IAAyBP,CAAAA,EAAM,OAAA,CAASC,CAAAA,CAAe,CAC3DO,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKT,CAAQ,CAAA,CAChCS,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,EAAE,CAAA,CACpC,CAAC,iBAAkB,YAAA,CAAcP,CAAQ,CAAA,CACzC,CAAC,QAAA,CAAU,WAAA,CAAa,IAAA,CAAMA,CAAQ,CACxC,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-YN34NTWC.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast } from \"@/modules/core/mutations\";\nimport type { BroadcastMode } from \"@/modules/core/mutations\";\nimport { QueryKeys } from \"@/modules/core\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { buildPointTransferOp } from \"@/modules/operations/builders\";\n\nexport interface TransferPointPayload {\n to: string;\n amount: string;\n memo: string;\n}\n\n/**\n * React Query mutation hook for transferring Ecency points.\n *\n * Uses `ecency_point_transfer` custom_json operation with ACTIVE authority.\n */\nexport function useTransferPoint(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<TransferPointPayload>(\n [\"wallet\", \"transfer-point\"],\n username,\n (payload) => [\n buildPointTransferOp(username!, payload.to, payload.amount, payload.memo)\n ],\n async (_result, variables) => {\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.full(username),\n QueryKeys.accounts.full(variables.to),\n [\"ecency-wallets\", \"asset-info\", username],\n [\"wallet\", \"portfolio\", \"v2\", username]\n ]);\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/wallet/mutations/use-transfer-point.ts"],"names":["useTransferPoint","username","auth","broadcastMode","useBroadcastMutation","payload","buildPointTransferOp","_result","variables","invalidateAfterBroadcast","QueryKeys"],"mappings":"uJAiBO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,QAAA,CAAU,gBAAgB,CAAA,CAC3BH,CAAAA,CACCI,GAAY,CACXC,CAAAA,CAAqBL,CAAAA,CAAWI,CAAAA,CAAQ,EAAA,CAAIA,CAAAA,CAAQ,MAAA,CAAQA,CAAAA,CAAQ,IAAI,CAC1E,CAAA,CACA,MAAOE,CAAAA,CAASC,CAAAA,GAAc,CAC5B,MAAMC,IAAyBP,CAAAA,EAAM,OAAA,CAASC,CAAAA,CAAe,CAC3DO,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKT,CAAQ,CAAA,CAChCS,CAAAA,CAAU,QAAA,CAAS,IAAA,CAAKF,CAAAA,CAAU,EAAE,CAAA,CACpC,CAAC,iBAAkB,YAAA,CAAcP,CAAQ,CAAA,CACzC,CAAC,QAAA,CAAU,WAAA,CAAa,IAAA,CAAMA,CAAQ,CACxC,CAAC,EACH,CAAA,CACAC,CAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-ILKK5VBZ.js","sourcesContent":["import { useBroadcastMutation, invalidateAfterBroadcast } from \"@/modules/core/mutations\";\nimport type { BroadcastMode } from \"@/modules/core/mutations\";\nimport { QueryKeys } from \"@/modules/core\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\nimport { buildPointTransferOp } from \"@/modules/operations/builders\";\n\nexport interface TransferPointPayload {\n to: string;\n amount: string;\n memo: string;\n}\n\n/**\n * React Query mutation hook for transferring Ecency points.\n *\n * Uses `ecency_point_transfer` custom_json operation with ACTIVE authority.\n */\nexport function useTransferPoint(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<TransferPointPayload>(\n [\"wallet\", \"transfer-point\"],\n username,\n (payload) => [\n buildPointTransferOp(username!, payload.to, payload.amount, payload.memo)\n ],\n async (_result, variables) => {\n await invalidateAfterBroadcast(auth?.adapter, broadcastMode, [\n QueryKeys.accounts.full(username),\n QueryKeys.accounts.full(variables.to),\n [\"ecency-wallets\", \"asset-info\", username],\n [\"wallet\", \"portfolio\", \"v2\", username]\n ]);\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import {a as a$3}from'./chunk-W6TVTSY5.js';import {j,k as k$1,c}from'./chunk-RAWKN3XW.js';import {a as a$1}from'./chunk-PQSG5K4Y.js';import {a as a$2}from'./chunk-KT7GFFA7.js';import {a}from'./chunk-S364K442.js';import {b as b$1}from'./chunk-OS3FCYZY.js';import {hexToBytes,bytesToHex}from'@noble/hashes/utils.js';import {sha256}from'@noble/hashes/sha2.js';var I=hexToBytes(a.chain_id),w=256,y=64*1024,b=2*1024*1024,N=y-w,S=65,f=class extends Error{constructor(i,r){super(`Transaction too large: ${i} bytes. Hive allows up to ${r} bytes.`);b$1(this,"size");b$1(this,"limit");this.name="TransactionTooLargeError",this.size=i,this.limit=r;}},m=3,k=async()=>{let s=await j("condenser_api.get_dynamic_global_properties",[]),t=s.head_block_number,i=s.head_block_id;try{let a=(await j("condenser_api.get_block_header",[t-m+1],3e3,1))?.previous;typeof a=="string"&&/^[0-9a-f]{40}$/.test(a)&&parseInt(a.slice(0,8),16)===t-m&&(t-=m,i=a);}catch{}let r=hexToBytes(i);return {ref_block_num:t&65535,ref_block_prefix:Number(new Uint32Array(r.buffer,r.byteOffset+4,1)[0]),maximum_block_size:s.maximum_block_size}},x=class s{constructor(t){b$1(this,"transaction");b$1(this,"expiration",6e4);b$1(this,"maximumBlockSize");b$1(this,"txId");b$1(this,"createTransaction",async t=>{let i=await k(),r=new Date(Date.now()+t).toISOString().slice(0,-5);this.maximumBlockSize=i.maximum_block_size,this.transaction={expiration:r,extensions:[],operations:[],ref_block_num:i.ref_block_num,ref_block_prefix:i.ref_block_prefix,signatures:[]};});t?.transaction&&(t.transaction instanceof s?(this.transaction=t.transaction.transaction,this.expiration=t.transaction.expiration,this.maximumBlockSize=t.transaction.maximumBlockSize):this.transaction=t.transaction,this.transaction&&!Array.isArray(this.transaction.signatures)&&(this.transaction.signatures=[]),this.txId=this.digest().txId),t?.expiration&&(this.expiration=t.expiration);}async addOperation(t,i){this.transaction||await this.createTransaction(this.expiration),this.transaction.operations.push([t,i]);}sign(t){if(!this.transaction)throw new Error("First create a transaction by .addOperation()");if(this.transaction){let{digest:i,txId:r}=this.digest();Array.isArray(t)||(t=[t]),this.assertSize(t.length);for(let e of t){let a=e.sign(i);this.transaction.signatures.push(a.customToString());}return this.txId=r,this.transaction}else throw new Error("No transaction to sign")}async broadcast(t=false){if(!this.transaction)throw new Error("Attempted to broadcast an empty transaction. Add operations by .addOperation()");if(this.transaction.signatures.length===0)throw new Error("Attempted to broadcast a transaction with no signatures. Sign using .sign(keys)");try{await k$1("condenser_api.broadcast_transaction",[this.transaction],void 0,void 0,{failoverOnTimeoutUntil:Date.parse(this.transaction.expiration+"Z")-a.broadcastTimeout-5e3});}catch(a){if(!(a instanceof c&&a.message.includes("Duplicate transaction check failed")))throw a}if(this.txId||(this.txId=this.digest().txId),!t)return {tx_id:this.txId,status:"unknown"};let i=60;await a$1(1e3);let r=await this.checkStatus(),e=1;for(;r?.status!=="within_irreversible_block"&&r?.status!=="expired_irreversible"&&r?.status!=="too_old"&&e<i;)await a$1(1e3+e*300),r=await this.checkStatus(),e++;return {tx_id:this.txId,status:r?.status??"unknown"}}digest(){if(!this.transaction)throw new Error("First create a transaction by .addOperation()");let t=this.serialize(),i=bytesToHex(sha256(t)).slice(0,40);return {digest:sha256(new Uint8Array([...I,...t])),txId:i}}size(t=0){let i=(this.transaction?.signatures.length??0)+t,r=1;for(let e=i;e>=128;e>>>=7)r++;return this.serialize().length+r+i*S}assertSize(t=0){let i=this.size(t),r=Number(this.maximumBlockSize),a=(r>=y&&r<=b?r:b)-w;if(i>a)throw new f(i,a)}serialize(){if(!this.transaction)throw new Error("First create a transaction by .addOperation()");let t=new a$2(a$2.DEFAULT_CAPACITY,a$2.LITTLE_ENDIAN),i={...this.transaction};try{a$3.Transaction(t,i);}catch(r){throw new Error("Unable to serialize transaction: "+r)}return t.flip(),new Uint8Array(t.toBuffer())}addSignature(t){if(!this.transaction)throw new Error("First create a transaction by .create(operations)");if(typeof t!="string")throw new Error("Signature must be string");if(t.length!==130)throw new Error("Signature must be 130 characters long");return this.transaction.signatures.push(t),this.transaction}async checkStatus(){return this.txId||(this.txId=this.digest().txId),j("transaction_status_api.find_transaction",{transaction_id:this.txId,expiration:this.transaction?.expiration})}};export{N as a,f as b,k as c,x as d};//# sourceMappingURL=chunk-IMCYKBDV.js.map
2
+ //# sourceMappingURL=chunk-IMCYKBDV.js.map
@@ -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"]}
@@ -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-4COFIDSX.js';import {b}from'./chunk-K2DAN37J.js';import {a as a$1}from'./chunk-HEILHNSR.js';function c(o,t,u){return b(["promotions","boost-plus"],o,({account:r,duration:e})=>[a(o,r,e)],async(r,{account:e})=>{t?.adapter?.invalidateQueries&&await t.adapter.invalidateQueries([a$1.accounts.full(o),a$1.promotions.boostPlusAccounts(e)]);},t,"active",{broadcastMode:u})}export{c as a};//# sourceMappingURL=chunk-6KVHZTYP.js.map
2
- //# sourceMappingURL=chunk-6KVHZTYP.js.map
1
+ import {a}from'./chunk-4COFIDSX.js';import {b}from'./chunk-J2HM6MWA.js';import {a as a$1}from'./chunk-HEILHNSR.js';function c(o,t,u){return b(["promotions","boost-plus"],o,({account:r,duration:e})=>[a(o,r,e)],async(r,{account:e})=>{t?.adapter?.invalidateQueries&&await t.adapter.invalidateQueries([a$1.accounts.full(o),a$1.promotions.boostPlusAccounts(e)]);},t,"active",{broadcastMode:u})}export{c as a};//# sourceMappingURL=chunk-LNFPNBAR.js.map
2
+ //# sourceMappingURL=chunk-LNFPNBAR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modules/promotions/mutations/use-boost-plus.ts"],"names":["useBoostPlus","username","auth","broadcastMode","useBroadcastMutation","account","duration","buildBoostPlusOp","_data","QueryKeys"],"mappings":"mHAUO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,YAAA,CAAc,YAAY,CAAA,CAC3BH,CAAAA,CACA,CAAC,CAAE,OAAA,CAAAI,CAAAA,CAAS,QAAA,CAAAC,CAAS,CAAA,GAAM,CACzBC,CAAAA,CAAiBN,CAAAA,CAAWI,CAAAA,CAASC,CAAQ,CAC/C,CAAA,CACA,MAAOE,CAAAA,CAAO,CAAE,OAAA,CAAAH,CAAQ,CAAA,GAAM,CACxBH,CAAAA,EAAM,OAAA,EAAS,iBAAA,EACjB,MAAMA,CAAAA,CAAK,OAAA,CAAQ,iBAAA,CAAkB,CACnCO,GAAAA,CAAU,QAAA,CAAS,IAAA,CAAKR,CAAQ,CAAA,CAChCQ,GAAAA,CAAU,UAAA,CAAW,iBAAA,CAAkBJ,CAAO,CAChD,CAAC,EAEL,CAAA,CACAH,CAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-6KVHZTYP.js","sourcesContent":["import { useBroadcastMutation, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildBoostPlusOp } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\nexport interface BoostPlusPayload {\n account: string;\n duration: number;\n}\n\nexport function useBoostPlus(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<BoostPlusPayload>(\n [\"promotions\", \"boost-plus\"],\n username,\n ({ account, duration }) => [\n buildBoostPlusOp(username!, account, duration)\n ],\n async (_data, { account }) => {\n if (auth?.adapter?.invalidateQueries) {\n await auth.adapter.invalidateQueries([\n QueryKeys.accounts.full(username),\n QueryKeys.promotions.boostPlusAccounts(account),\n ]);\n }\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/modules/promotions/mutations/use-boost-plus.ts"],"names":["useBoostPlus","username","auth","broadcastMode","useBroadcastMutation","account","duration","buildBoostPlusOp","_data","QueryKeys"],"mappings":"mHAUO,SAASA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOC,CAAAA,CACL,CAAC,YAAA,CAAc,YAAY,CAAA,CAC3BH,CAAAA,CACA,CAAC,CAAE,OAAA,CAAAI,CAAAA,CAAS,QAAA,CAAAC,CAAS,CAAA,GAAM,CACzBC,CAAAA,CAAiBN,CAAAA,CAAWI,CAAAA,CAASC,CAAQ,CAC/C,CAAA,CACA,MAAOE,CAAAA,CAAO,CAAE,OAAA,CAAAH,CAAQ,CAAA,GAAM,CACxBH,CAAAA,EAAM,OAAA,EAAS,iBAAA,EACjB,MAAMA,CAAAA,CAAK,OAAA,CAAQ,iBAAA,CAAkB,CACnCO,GAAAA,CAAU,QAAA,CAAS,IAAA,CAAKR,CAAQ,CAAA,CAChCQ,GAAAA,CAAU,UAAA,CAAW,iBAAA,CAAkBJ,CAAO,CAChD,CAAC,EAEL,CAAA,CACAH,CAAAA,CACA,QAAA,CACA,CAAE,aAAA,CAAAC,CAAc,CAClB,CACF","file":"chunk-LNFPNBAR.js","sourcesContent":["import { useBroadcastMutation, QueryKeys } from \"@/modules/core\";\nimport type { BroadcastMode } from \"@/modules/core\";\nimport { buildBoostPlusOp } from \"@/modules/operations/builders\";\nimport type { AuthContextV2 } from \"@/modules/core/types\";\n\nexport interface BoostPlusPayload {\n account: string;\n duration: number;\n}\n\nexport function useBoostPlus(\n username: string | undefined,\n auth?: AuthContextV2,\n broadcastMode?: BroadcastMode\n) {\n return useBroadcastMutation<BoostPlusPayload>(\n [\"promotions\", \"boost-plus\"],\n username,\n ({ account, duration }) => [\n buildBoostPlusOp(username!, account, duration)\n ],\n async (_data, { account }) => {\n if (auth?.adapter?.invalidateQueries) {\n await auth.adapter.invalidateQueries([\n QueryKeys.accounts.full(username),\n QueryKeys.promotions.boostPlusAccounts(account),\n ]);\n }\n },\n auth,\n 'active',\n { broadcastMode }\n );\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {a as a$1}from'./chunk-N3JLKXGY.js';import {a}from'./chunk-XOHE3ND5.js';import {c}from'./chunk-32QJ72HH.js';import {b}from'./chunk-POHYQBLL.js';import {queryOptions}from'@tanstack/react-query';function y(n){return queryOptions({queryKey:["assets","hbd","general-info",n],staleTime:6e4,refetchInterval:9e4,queryFn:async()=>{await b().prefetchQuery(a()),await b().prefetchQuery(a$1(n));let e=b().getQueryData(a$1(n).queryKey),c$1=b().getQueryData(a().queryKey),s=1;return e?{name:"HBD",title:"Hive Dollar",price:s,accountBalance:c(e.hbd_balance).amount+c(e?.savings_hbd_balance).amount,apr:((c$1?.hbdInterestRate??0)/100).toFixed(3),parts:[{name:"current",balance:c(e.hbd_balance).amount},{name:"savings",balance:c(e.savings_hbd_balance).amount}]}:{name:"HBD",title:"Hive Dollar",price:s,accountBalance:0}}})}export{y as a};//# sourceMappingURL=chunk-QXRJ3Q4Y.js.map
2
- //# sourceMappingURL=chunk-QXRJ3Q4Y.js.map
1
+ import {a as a$1}from'./chunk-2MIOCMJB.js';import {a}from'./chunk-XOHE3ND5.js';import {c}from'./chunk-32QJ72HH.js';import {b}from'./chunk-POHYQBLL.js';import {queryOptions}from'@tanstack/react-query';function y(n){return queryOptions({queryKey:["assets","hbd","general-info",n],staleTime:6e4,refetchInterval:9e4,queryFn:async()=>{await b().prefetchQuery(a()),await b().prefetchQuery(a$1(n));let e=b().getQueryData(a$1(n).queryKey),c$1=b().getQueryData(a().queryKey),s=1;return e?{name:"HBD",title:"Hive Dollar",price:s,accountBalance:c(e.hbd_balance).amount+c(e?.savings_hbd_balance).amount,apr:((c$1?.hbdInterestRate??0)/100).toFixed(3),parts:[{name:"current",balance:c(e.hbd_balance).amount},{name:"savings",balance:c(e.savings_hbd_balance).amount}]}:{name:"HBD",title:"Hive Dollar",price:s,accountBalance:0}}})}export{y as a};//# sourceMappingURL=chunk-MBDFLDIN.js.map
2
+ //# sourceMappingURL=chunk-MBDFLDIN.js.map