@iota/dapp-kit 0.2.0 → 0.3.0

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 (437) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +14 -12
  3. package/dist/cjs/components/AccountDropdownMenu.css +26 -54
  4. package/dist/cjs/components/AccountDropdownMenu.css.css +18 -27
  5. package/dist/cjs/components/AccountDropdownMenu.css.css.map +3 -3
  6. package/dist/cjs/components/AccountDropdownMenu.css.d.ts +0 -1
  7. package/dist/cjs/components/AccountDropdownMenu.css.js +4 -6
  8. package/dist/cjs/components/AccountDropdownMenu.css.js.map +2 -2
  9. package/dist/cjs/components/AccountDropdownMenu.css.map +3 -3
  10. package/dist/cjs/components/AccountDropdownMenu.d.ts +3 -1
  11. package/dist/cjs/components/AccountDropdownMenu.js +25 -21
  12. package/dist/cjs/components/AccountDropdownMenu.js.map +3 -3
  13. package/dist/cjs/components/ConnectButton.css +181 -190
  14. package/dist/cjs/components/ConnectButton.css.map +3 -3
  15. package/dist/cjs/components/ConnectButton.d.ts +5 -3
  16. package/dist/cjs/components/ConnectButton.js +344 -669
  17. package/dist/cjs/components/ConnectButton.js.map +4 -4
  18. package/dist/cjs/components/IotaClientProvider.d.ts +0 -1
  19. package/dist/cjs/components/WalletProvider.d.ts +3 -3
  20. package/dist/cjs/components/WalletProvider.js +107 -152
  21. package/dist/cjs/components/WalletProvider.js.map +3 -3
  22. package/dist/cjs/components/connect-modal/ConnectModal.css +214 -172
  23. package/dist/cjs/components/connect-modal/ConnectModal.css.css +69 -32
  24. package/dist/cjs/components/connect-modal/ConnectModal.css.css.map +3 -3
  25. package/dist/cjs/components/connect-modal/ConnectModal.css.d.ts +5 -1
  26. package/dist/cjs/components/connect-modal/ConnectModal.css.js +15 -7
  27. package/dist/cjs/components/connect-modal/ConnectModal.css.js.map +2 -2
  28. package/dist/cjs/components/connect-modal/ConnectModal.css.map +3 -3
  29. package/dist/cjs/components/connect-modal/ConnectModal.js +411 -707
  30. package/dist/cjs/components/connect-modal/ConnectModal.js.map +4 -4
  31. package/dist/cjs/components/connect-modal/InfoSection.css +7 -11
  32. package/dist/cjs/components/connect-modal/InfoSection.css.css.map +1 -1
  33. package/dist/cjs/components/connect-modal/InfoSection.css.map +3 -3
  34. package/dist/cjs/components/connect-modal/InfoSection.js +1 -1
  35. package/dist/cjs/components/connect-modal/InfoSection.js.map +2 -2
  36. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css +145 -0
  37. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css +32 -0
  38. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
  39. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
  40. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js +35 -0
  41. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
  42. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.map +7 -0
  43. package/dist/cjs/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
  44. package/dist/cjs/components/connect-modal/views/ConnectionStatus.js +173 -0
  45. package/dist/cjs/components/connect-modal/views/ConnectionStatus.js.map +7 -0
  46. package/dist/cjs/components/connect-modal/views/GetTheWallet.css.css.map +1 -1
  47. package/dist/cjs/components/connect-modal/views/GetTheWallet.css.map +1 -1
  48. package/dist/cjs/components/connect-modal/views/GetTheWallet.js +12 -391
  49. package/dist/cjs/components/connect-modal/views/GetTheWallet.js.map +2 -2
  50. package/dist/cjs/components/connect-modal/views/GettingStarted.css +144 -0
  51. package/dist/cjs/components/connect-modal/views/GettingStarted.css.css +23 -0
  52. package/dist/cjs/components/connect-modal/views/GettingStarted.css.css.map +7 -0
  53. package/dist/cjs/components/connect-modal/views/GettingStarted.css.d.ts +3 -0
  54. package/dist/cjs/components/connect-modal/views/GettingStarted.css.js +31 -0
  55. package/dist/cjs/components/connect-modal/views/GettingStarted.css.js.map +7 -0
  56. package/dist/cjs/components/connect-modal/views/GettingStarted.css.map +7 -0
  57. package/dist/cjs/components/connect-modal/views/GettingStarted.d.ts +1 -0
  58. package/dist/cjs/components/connect-modal/views/GettingStarted.js +172 -0
  59. package/dist/cjs/components/connect-modal/views/GettingStarted.js.map +7 -0
  60. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css +95 -0
  61. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css +17 -0
  62. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
  63. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.d.ts +2 -0
  64. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js +29 -0
  65. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
  66. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
  67. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
  68. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js +135 -0
  69. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
  70. package/dist/cjs/components/connect-modal/views/index.css +115 -124
  71. package/dist/cjs/components/connect-modal/views/index.css.map +3 -3
  72. package/dist/cjs/components/connect-modal/views/index.d.ts +2 -1
  73. package/dist/cjs/components/connect-modal/views/index.js +136 -640
  74. package/dist/cjs/components/connect-modal/views/index.js.map +4 -4
  75. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css +10 -22
  76. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css +2 -5
  77. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css.map +3 -3
  78. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.js.map +1 -1
  79. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.map +3 -3
  80. package/dist/cjs/components/connect-modal/wallet-list/WalletList.d.ts +4 -4
  81. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +61 -38
  82. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +4 -4
  83. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css +8 -17
  84. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css +8 -17
  85. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
  86. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.d.ts +0 -1
  87. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js +2 -4
  88. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
  89. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
  90. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js +5 -32
  91. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
  92. package/dist/cjs/components/icons/BackIcon.d.ts +2 -0
  93. package/dist/cjs/components/icons/BackIcon.js +36 -0
  94. package/dist/cjs/components/icons/BackIcon.js.map +7 -0
  95. package/dist/cjs/components/icons/IotaIcon.js +12 -391
  96. package/dist/cjs/components/icons/IotaIcon.js.map +2 -2
  97. package/dist/cjs/components/styling/InjectedThemeStyles.js +2 -0
  98. package/dist/cjs/components/styling/InjectedThemeStyles.js.map +2 -2
  99. package/dist/cjs/components/styling/StyleMarker.css +1 -16
  100. package/dist/cjs/components/styling/StyleMarker.css.css +1 -16
  101. package/dist/cjs/components/styling/StyleMarker.css.css.map +3 -3
  102. package/dist/cjs/components/styling/StyleMarker.css.map +3 -3
  103. package/dist/cjs/components/styling/StyleMarker.d.ts +0 -1
  104. package/dist/cjs/components/styling/StyleMarker.js +4 -4
  105. package/dist/cjs/components/styling/StyleMarker.js.map +3 -3
  106. package/dist/cjs/components/ui/Button.css.css.map +1 -1
  107. package/dist/cjs/components/ui/Button.css.map +1 -1
  108. package/dist/cjs/components/ui/Button.d.ts +1 -1
  109. package/dist/cjs/components/ui/Heading.css.css.map +1 -1
  110. package/dist/cjs/components/ui/Heading.css.map +1 -1
  111. package/dist/cjs/components/ui/Heading.d.ts +0 -1
  112. package/dist/cjs/components/ui/IconButton.css.css.map +1 -1
  113. package/dist/cjs/components/ui/IconButton.css.map +1 -1
  114. package/dist/cjs/components/ui/IconButton.d.ts +1 -1
  115. package/dist/cjs/components/ui/Text.css +7 -11
  116. package/dist/cjs/components/ui/Text.css.css +7 -11
  117. package/dist/cjs/components/ui/Text.css.css.map +3 -3
  118. package/dist/cjs/components/ui/Text.css.d.ts +0 -3
  119. package/dist/cjs/components/ui/Text.css.js +1 -1
  120. package/dist/cjs/components/ui/Text.css.js.map +2 -2
  121. package/dist/cjs/components/ui/Text.css.map +3 -3
  122. package/dist/cjs/components/ui/Text.d.ts +0 -1
  123. package/dist/cjs/components/ui/Text.js +1 -1
  124. package/dist/cjs/components/ui/Text.js.map +2 -2
  125. package/dist/cjs/constants/styleDataAttribute.js.map +1 -1
  126. package/dist/cjs/constants/walletDefaults.d.ts +2 -2
  127. package/dist/cjs/constants/walletDefaults.js +4 -5
  128. package/dist/cjs/constants/walletDefaults.js.map +2 -2
  129. package/dist/cjs/constants/walletMutationKeys.d.ts +3 -2
  130. package/dist/cjs/constants/walletMutationKeys.js +4 -3
  131. package/dist/cjs/constants/walletMutationKeys.js.map +2 -2
  132. package/dist/cjs/contexts/walletContext.d.ts +1 -2
  133. package/dist/cjs/hooks/useIotaClientInfiniteQuery.js.map +2 -2
  134. package/dist/cjs/hooks/useIotaClientQuery.js +3 -1
  135. package/dist/cjs/hooks/useIotaClientQuery.js.map +2 -2
  136. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +17 -7
  137. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +2 -2
  138. package/dist/cjs/hooks/wallet/useConnectWallet.js +10 -4
  139. package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
  140. package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +3 -0
  141. package/dist/cjs/hooks/wallet/useCurrentWallet.js +7 -3
  142. package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +2 -2
  143. package/dist/cjs/hooks/wallet/useDisconnectWallet.js +11 -6
  144. package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
  145. package/dist/cjs/hooks/wallet/useReportTransactionEffects.d.ts +15 -0
  146. package/dist/cjs/hooks/wallet/{useSignTransactionBlock.js → useReportTransactionEffects.js} +41 -37
  147. package/dist/cjs/hooks/wallet/useReportTransactionEffects.js.map +7 -0
  148. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.d.ts +29 -0
  149. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js +252 -0
  150. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js.map +7 -0
  151. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +21 -27
  152. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  153. package/dist/cjs/hooks/wallet/useSignTransaction.d.ts +18 -0
  154. package/dist/cjs/hooks/wallet/{useSignAndExecuteTransactionBlock.js → useSignTransaction.js} +86 -46
  155. package/dist/cjs/hooks/wallet/useSignTransaction.js.map +7 -0
  156. package/dist/cjs/hooks/wallet/useSwitchAccount.js +11 -6
  157. package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
  158. package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js +45 -33
  159. package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
  160. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +7 -3
  161. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
  162. package/dist/cjs/hooks/wallet/useWalletsChanged.d.ts +1 -1
  163. package/dist/cjs/hooks/wallet/useWalletsChanged.js +7 -6
  164. package/dist/cjs/hooks/wallet/useWalletsChanged.js.map +2 -2
  165. package/dist/cjs/index.css +232 -241
  166. package/dist/cjs/index.css.map +3 -3
  167. package/dist/cjs/index.d.ts +4 -3
  168. package/dist/cjs/index.js +816 -1042
  169. package/dist/cjs/index.js.map +4 -4
  170. package/dist/cjs/themes/lightTheme.js +19 -19
  171. package/dist/cjs/themes/lightTheme.js.map +1 -1
  172. package/dist/cjs/themes/themeContract.js.map +1 -1
  173. package/dist/cjs/types.d.ts +1 -1
  174. package/dist/cjs/types.js.map +1 -1
  175. package/dist/cjs/utils/assertUnreachable.js.map +1 -1
  176. package/dist/cjs/utils/walletUtils.d.ts +2 -2
  177. package/dist/cjs/utils/walletUtils.js +2 -2
  178. package/dist/cjs/utils/walletUtils.js.map +2 -2
  179. package/dist/cjs/walletStore.d.ts +3 -2
  180. package/dist/cjs/walletStore.js +8 -4
  181. package/dist/cjs/walletStore.js.map +2 -2
  182. package/dist/esm/components/AccountDropdownMenu.css +26 -54
  183. package/dist/esm/components/AccountDropdownMenu.css.css +18 -27
  184. package/dist/esm/components/AccountDropdownMenu.css.css.map +3 -3
  185. package/dist/esm/components/AccountDropdownMenu.css.d.ts +0 -1
  186. package/dist/esm/components/AccountDropdownMenu.css.js +4 -6
  187. package/dist/esm/components/AccountDropdownMenu.css.js.map +2 -2
  188. package/dist/esm/components/AccountDropdownMenu.css.map +3 -3
  189. package/dist/esm/components/AccountDropdownMenu.d.ts +3 -1
  190. package/dist/esm/components/AccountDropdownMenu.js +25 -21
  191. package/dist/esm/components/AccountDropdownMenu.js.map +3 -3
  192. package/dist/esm/components/ConnectButton.css +181 -190
  193. package/dist/esm/components/ConnectButton.css.map +3 -3
  194. package/dist/esm/components/ConnectButton.d.ts +5 -3
  195. package/dist/esm/components/ConnectButton.js +344 -669
  196. package/dist/esm/components/ConnectButton.js.map +4 -4
  197. package/dist/esm/components/IotaClientProvider.d.ts +0 -1
  198. package/dist/esm/components/WalletProvider.d.ts +3 -3
  199. package/dist/esm/components/WalletProvider.js +106 -151
  200. package/dist/esm/components/WalletProvider.js.map +3 -3
  201. package/dist/esm/components/connect-modal/ConnectModal.css +214 -172
  202. package/dist/esm/components/connect-modal/ConnectModal.css.css +69 -32
  203. package/dist/esm/components/connect-modal/ConnectModal.css.css.map +3 -3
  204. package/dist/esm/components/connect-modal/ConnectModal.css.d.ts +5 -1
  205. package/dist/esm/components/connect-modal/ConnectModal.css.js +15 -7
  206. package/dist/esm/components/connect-modal/ConnectModal.css.js.map +2 -2
  207. package/dist/esm/components/connect-modal/ConnectModal.css.map +3 -3
  208. package/dist/esm/components/connect-modal/ConnectModal.js +407 -703
  209. package/dist/esm/components/connect-modal/ConnectModal.js.map +4 -4
  210. package/dist/esm/components/connect-modal/InfoSection.css +7 -11
  211. package/dist/esm/components/connect-modal/InfoSection.css.css.map +1 -1
  212. package/dist/esm/components/connect-modal/InfoSection.css.map +3 -3
  213. package/dist/esm/components/connect-modal/InfoSection.js +1 -1
  214. package/dist/esm/components/connect-modal/InfoSection.js.map +2 -2
  215. package/dist/esm/components/connect-modal/views/ConnectionStatus.css +145 -0
  216. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css +32 -0
  217. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
  218. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
  219. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js +14 -0
  220. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
  221. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.map +7 -0
  222. package/dist/esm/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
  223. package/dist/esm/components/connect-modal/views/ConnectionStatus.js +140 -0
  224. package/dist/esm/components/connect-modal/views/ConnectionStatus.js.map +7 -0
  225. package/dist/esm/components/connect-modal/views/GetTheWallet.css.css.map +1 -1
  226. package/dist/esm/components/connect-modal/views/GetTheWallet.css.map +1 -1
  227. package/dist/esm/components/connect-modal/views/GetTheWallet.js +12 -391
  228. package/dist/esm/components/connect-modal/views/GetTheWallet.js.map +2 -2
  229. package/dist/esm/components/connect-modal/views/GettingStarted.css +144 -0
  230. package/dist/esm/components/connect-modal/views/GettingStarted.css.css +23 -0
  231. package/dist/esm/components/connect-modal/views/GettingStarted.css.css.map +7 -0
  232. package/dist/esm/components/connect-modal/views/GettingStarted.css.d.ts +3 -0
  233. package/dist/esm/components/connect-modal/views/GettingStarted.css.js +10 -0
  234. package/dist/esm/components/connect-modal/views/GettingStarted.css.js.map +7 -0
  235. package/dist/esm/components/connect-modal/views/GettingStarted.css.map +7 -0
  236. package/dist/esm/components/connect-modal/views/GettingStarted.d.ts +1 -0
  237. package/dist/esm/components/connect-modal/views/GettingStarted.js +139 -0
  238. package/dist/esm/components/connect-modal/views/GettingStarted.js.map +7 -0
  239. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css +95 -0
  240. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css +17 -0
  241. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
  242. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.d.ts +2 -0
  243. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js +8 -0
  244. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
  245. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
  246. package/dist/esm/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
  247. package/dist/esm/components/connect-modal/views/WhatIsAWallet.js +102 -0
  248. package/dist/esm/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
  249. package/dist/esm/components/connect-modal/views/index.css +115 -124
  250. package/dist/esm/components/connect-modal/views/index.css.map +3 -3
  251. package/dist/esm/components/connect-modal/views/index.d.ts +2 -1
  252. package/dist/esm/components/connect-modal/views/index.js +141 -645
  253. package/dist/esm/components/connect-modal/views/index.js.map +4 -4
  254. package/dist/esm/components/connect-modal/wallet-list/WalletList.css +10 -22
  255. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css +2 -5
  256. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css.map +3 -3
  257. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.js.map +1 -1
  258. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.map +3 -3
  259. package/dist/esm/components/connect-modal/wallet-list/WalletList.d.ts +4 -4
  260. package/dist/esm/components/connect-modal/wallet-list/WalletList.js +61 -38
  261. package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +4 -4
  262. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css +8 -17
  263. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css +8 -17
  264. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
  265. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.d.ts +0 -1
  266. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js +2 -4
  267. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
  268. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
  269. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js +5 -32
  270. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
  271. package/dist/esm/components/icons/BackIcon.d.ts +2 -0
  272. package/dist/esm/components/icons/BackIcon.js +15 -0
  273. package/dist/esm/components/icons/BackIcon.js.map +7 -0
  274. package/dist/esm/components/icons/IotaIcon.js +12 -391
  275. package/dist/esm/components/icons/IotaIcon.js.map +2 -2
  276. package/dist/esm/components/styling/InjectedThemeStyles.js +2 -0
  277. package/dist/esm/components/styling/InjectedThemeStyles.js.map +2 -2
  278. package/dist/esm/components/styling/StyleMarker.css +1 -16
  279. package/dist/esm/components/styling/StyleMarker.css.css +1 -16
  280. package/dist/esm/components/styling/StyleMarker.css.css.map +3 -3
  281. package/dist/esm/components/styling/StyleMarker.css.js +4 -4
  282. package/dist/esm/components/styling/StyleMarker.css.js.map +3 -3
  283. package/dist/esm/components/styling/StyleMarker.css.map +3 -3
  284. package/dist/esm/components/styling/StyleMarker.d.ts +0 -1
  285. package/dist/esm/components/styling/StyleMarker.js +4 -4
  286. package/dist/esm/components/styling/StyleMarker.js.map +3 -3
  287. package/dist/esm/components/ui/Button.css.css.map +1 -1
  288. package/dist/esm/components/ui/Button.css.map +1 -1
  289. package/dist/esm/components/ui/Button.d.ts +1 -1
  290. package/dist/esm/components/ui/Heading.css.css.map +1 -1
  291. package/dist/esm/components/ui/Heading.css.map +1 -1
  292. package/dist/esm/components/ui/Heading.d.ts +0 -1
  293. package/dist/esm/components/ui/IconButton.css.css.map +1 -1
  294. package/dist/esm/components/ui/IconButton.css.map +1 -1
  295. package/dist/esm/components/ui/IconButton.d.ts +1 -1
  296. package/dist/esm/components/ui/Text.css +7 -11
  297. package/dist/esm/components/ui/Text.css.css +7 -11
  298. package/dist/esm/components/ui/Text.css.css.map +3 -3
  299. package/dist/esm/components/ui/Text.css.d.ts +0 -3
  300. package/dist/esm/components/ui/Text.css.js +1 -1
  301. package/dist/esm/components/ui/Text.css.js.map +2 -2
  302. package/dist/esm/components/ui/Text.css.map +3 -3
  303. package/dist/esm/components/ui/Text.d.ts +0 -1
  304. package/dist/esm/components/ui/Text.js +1 -1
  305. package/dist/esm/components/ui/Text.js.map +2 -2
  306. package/dist/esm/constants/styleDataAttribute.js.map +1 -1
  307. package/dist/esm/constants/walletDefaults.d.ts +2 -2
  308. package/dist/esm/constants/walletDefaults.js +4 -5
  309. package/dist/esm/constants/walletDefaults.js.map +2 -2
  310. package/dist/esm/constants/walletMutationKeys.d.ts +3 -2
  311. package/dist/esm/constants/walletMutationKeys.js +4 -3
  312. package/dist/esm/constants/walletMutationKeys.js.map +2 -2
  313. package/dist/esm/contexts/walletContext.d.ts +1 -2
  314. package/dist/esm/hooks/useIotaClientInfiniteQuery.js.map +2 -2
  315. package/dist/esm/hooks/useIotaClientQuery.js +3 -1
  316. package/dist/esm/hooks/useIotaClientQuery.js.map +2 -2
  317. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +17 -7
  318. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +2 -2
  319. package/dist/esm/hooks/wallet/useConnectWallet.js +10 -4
  320. package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
  321. package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +3 -0
  322. package/dist/esm/hooks/wallet/useCurrentWallet.js +7 -3
  323. package/dist/esm/hooks/wallet/useCurrentWallet.js.map +2 -2
  324. package/dist/esm/hooks/wallet/useDisconnectWallet.js +11 -6
  325. package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
  326. package/dist/esm/hooks/wallet/useReportTransactionEffects.d.ts +15 -0
  327. package/dist/esm/hooks/wallet/{useSignTransactionBlock.js → useReportTransactionEffects.js} +38 -34
  328. package/dist/esm/hooks/wallet/useReportTransactionEffects.js.map +7 -0
  329. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.d.ts +29 -0
  330. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js +231 -0
  331. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js.map +7 -0
  332. package/dist/esm/hooks/wallet/useSignPersonalMessage.js +21 -27
  333. package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  334. package/dist/esm/hooks/wallet/useSignTransaction.d.ts +18 -0
  335. package/dist/esm/hooks/wallet/{useSignAndExecuteTransactionBlock.js → useSignTransaction.js} +83 -43
  336. package/dist/esm/hooks/wallet/useSignTransaction.js.map +7 -0
  337. package/dist/esm/hooks/wallet/useSwitchAccount.js +11 -6
  338. package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
  339. package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js +44 -32
  340. package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
  341. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +7 -3
  342. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
  343. package/dist/esm/hooks/wallet/useWalletsChanged.d.ts +1 -1
  344. package/dist/esm/hooks/wallet/useWalletsChanged.js +7 -6
  345. package/dist/esm/hooks/wallet/useWalletsChanged.js.map +2 -2
  346. package/dist/esm/index.css +232 -241
  347. package/dist/esm/index.css.map +3 -3
  348. package/dist/esm/index.d.ts +4 -3
  349. package/dist/esm/index.js +818 -1044
  350. package/dist/esm/index.js.map +4 -4
  351. package/dist/esm/themes/lightTheme.js +19 -19
  352. package/dist/esm/themes/lightTheme.js.map +1 -1
  353. package/dist/esm/themes/themeContract.js.map +1 -1
  354. package/dist/esm/types.d.ts +1 -1
  355. package/dist/esm/utils/assertUnreachable.js.map +1 -1
  356. package/dist/esm/utils/walletUtils.d.ts +2 -2
  357. package/dist/esm/utils/walletUtils.js +2 -2
  358. package/dist/esm/utils/walletUtils.js.map +2 -2
  359. package/dist/esm/walletStore.d.ts +3 -2
  360. package/dist/esm/walletStore.js +8 -4
  361. package/dist/esm/walletStore.js.map +2 -2
  362. package/dist/index.css/package.json +5 -0
  363. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  364. package/dist/tsconfig.tsbuildinfo +1 -1
  365. package/package.json +27 -28
  366. package/src/components/AccountDropdownMenu.css.ts +11 -17
  367. package/src/components/AccountDropdownMenu.tsx +10 -5
  368. package/src/components/ConnectButton.tsx +12 -5
  369. package/src/components/WalletProvider.tsx +11 -22
  370. package/src/components/connect-modal/ConnectModal.css.ts +58 -17
  371. package/src/components/connect-modal/ConnectModal.tsx +101 -16
  372. package/src/components/connect-modal/views/ConnectionStatus.css.ts +36 -0
  373. package/src/components/connect-modal/views/ConnectionStatus.tsx +55 -0
  374. package/src/components/connect-modal/views/GettingStarted.css.ts +26 -0
  375. package/src/components/connect-modal/views/GettingStarted.tsx +40 -0
  376. package/src/components/connect-modal/views/WhatIsAWallet.css.ts +20 -0
  377. package/src/components/connect-modal/views/WhatIsAWallet.tsx +24 -0
  378. package/src/components/connect-modal/views/index.ts +2 -1
  379. package/src/components/connect-modal/wallet-list/WalletList.css.ts +1 -5
  380. package/src/components/connect-modal/wallet-list/WalletList.tsx +25 -11
  381. package/src/components/connect-modal/wallet-list/WalletListItem.css.ts +6 -14
  382. package/src/components/connect-modal/wallet-list/WalletListItem.tsx +9 -12
  383. package/src/components/icons/BackIcon.tsx +18 -0
  384. package/src/components/icons/IotaIcon.tsx +6 -222
  385. package/src/components/styling/InjectedThemeStyles.tsx +4 -0
  386. package/src/components/styling/StyleMarker.css.ts +0 -15
  387. package/src/components/ui/Text.css.ts +1 -1
  388. package/src/constants/walletDefaults.ts +6 -5
  389. package/src/constants/walletMutationKeys.ts +3 -2
  390. package/src/hooks/useIotaClientInfiniteQuery.ts +2 -1
  391. package/src/hooks/useIotaClientQuery.ts +3 -1
  392. package/src/hooks/wallet/useAutoConnectWallet.ts +1 -1
  393. package/src/hooks/wallet/useConnectWallet.ts +6 -1
  394. package/src/hooks/wallet/useCurrentWallet.ts +4 -0
  395. package/src/hooks/wallet/useReportTransactionEffects.ts +87 -0
  396. package/src/hooks/wallet/useSignAndExecuteTransaction.ts +165 -0
  397. package/src/hooks/wallet/useSignPersonalMessage.ts +11 -25
  398. package/src/hooks/wallet/useSignTransaction.ts +117 -0
  399. package/src/hooks/wallet/useUnsafeBurnerWallet.ts +41 -18
  400. package/src/hooks/wallet/useWalletsChanged.ts +5 -4
  401. package/src/index.ts +4 -3
  402. package/src/themes/lightTheme.ts +19 -19
  403. package/src/types.ts +1 -1
  404. package/src/utils/walletUtils.ts +8 -3
  405. package/src/walletStore.ts +12 -1
  406. package/dist/cjs/components/connect-modal/views/WalletConnect.css +0 -179
  407. package/dist/cjs/components/connect-modal/views/WalletConnect.css.css +0 -51
  408. package/dist/cjs/components/connect-modal/views/WalletConnect.css.css.map +0 -7
  409. package/dist/cjs/components/connect-modal/views/WalletConnect.css.d.ts +0 -8
  410. package/dist/cjs/components/connect-modal/views/WalletConnect.css.js +0 -41
  411. package/dist/cjs/components/connect-modal/views/WalletConnect.css.js.map +0 -7
  412. package/dist/cjs/components/connect-modal/views/WalletConnect.css.map +0 -7
  413. package/dist/cjs/components/connect-modal/views/WalletConnect.d.ts +0 -7
  414. package/dist/cjs/components/connect-modal/views/WalletConnect.js +0 -325
  415. package/dist/cjs/components/connect-modal/views/WalletConnect.js.map +0 -7
  416. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +0 -15
  417. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +0 -7
  418. package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +0 -13
  419. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +0 -7
  420. package/dist/esm/components/connect-modal/views/WalletConnect.css +0 -179
  421. package/dist/esm/components/connect-modal/views/WalletConnect.css.css +0 -51
  422. package/dist/esm/components/connect-modal/views/WalletConnect.css.css.map +0 -7
  423. package/dist/esm/components/connect-modal/views/WalletConnect.css.d.ts +0 -8
  424. package/dist/esm/components/connect-modal/views/WalletConnect.css.js +0 -20
  425. package/dist/esm/components/connect-modal/views/WalletConnect.css.js.map +0 -7
  426. package/dist/esm/components/connect-modal/views/WalletConnect.css.map +0 -7
  427. package/dist/esm/components/connect-modal/views/WalletConnect.d.ts +0 -7
  428. package/dist/esm/components/connect-modal/views/WalletConnect.js +0 -294
  429. package/dist/esm/components/connect-modal/views/WalletConnect.js.map +0 -7
  430. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +0 -15
  431. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +0 -7
  432. package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +0 -13
  433. package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +0 -7
  434. package/src/components/connect-modal/views/WalletConnect.css.ts +0 -55
  435. package/src/components/connect-modal/views/WalletConnect.tsx +0 -79
  436. package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +0 -117
  437. package/src/hooks/wallet/useSignTransactionBlock.ts +0 -85
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useIotaClientQuery.ts", "../../../src/hooks/useIotaClient.ts", "../../../src/components/IotaClientProvider.tsx"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useIotaClientContext } from './useIotaClient.js';\n\nexport type IotaRpcMethodName = {\n [K in keyof IotaClient]: IotaClient[K] extends\n | ((input: any) => Promise<any>)\n | (() => Promise<any>)\n ? K\n : never;\n}[keyof IotaClient];\n\nexport type IotaRpcMethods = {\n [K in IotaRpcMethodName]: IotaClient[K] extends (input: infer P) => Promise<infer R>\n ? {\n name: K;\n result: R;\n params: P;\n }\n : IotaClient[K] extends () => Promise<infer R>\n ? {\n name: K;\n result: R;\n params: undefined | object;\n }\n : never;\n};\n\nexport type UseIotaClientQueryOptions<T extends keyof IotaRpcMethods, TData> = PartialBy<\n Omit<UseQueryOptions<IotaRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n 'queryKey'\n>;\n\nexport function useIotaClientQuery<\n T extends keyof IotaRpcMethods,\n TData = IotaRpcMethods[T]['result'],\n>(\n ...args: undefined extends IotaRpcMethods[T]['params']\n ? [\n method: T,\n params?: IotaRpcMethods[T]['params'],\n options?: UseIotaClientQueryOptions<T, TData>,\n ]\n : [\n method: T,\n params: IotaRpcMethods[T]['params'],\n options?: UseIotaClientQueryOptions<T, TData>,\n ]\n): UseQueryResult<TData, Error> {\n const [method, params, { queryKey = [], ...options } = {}] = args as [\n method: T,\n params?: IotaRpcMethods[T]['params'],\n options?: UseIotaClientQueryOptions<T, TData>,\n ];\n\n const iotaContext = useIotaClientContext();\n\n return useQuery({\n ...options,\n queryKey: [iotaContext.network, method, params, ...queryKey],\n queryFn: async () => {\n return await iotaContext.client[method](params as never);\n },\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { useContext } from 'react';\n\nimport { IotaClientContext } from '../components/IotaClientProvider.js';\n\nexport function useIotaClientContext() {\n const iotaClient = useContext(IotaClientContext);\n\n if (!iotaClient) {\n throw new Error(\n 'Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider',\n );\n }\n\n return iotaClient;\n}\n\nexport function useIotaClient(): IotaClient {\n return useIotaClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork, isIotaClient, Network, IotaClient } from '@iota/iota-sdk/client';\nimport type { IotaClientOptions } from '@iota/iota-sdk/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | IotaClient = NetworkConfig | IotaClient> = Record<\n string,\n T\n>;\n\nexport interface IotaClientProviderContext {\n client: IotaClient;\n networks: NetworkConfigs;\n network: string;\n config: NetworkConfig | null;\n selectNetwork: (network: string) => void;\n}\n\nexport const IotaClientContext = createContext<IotaClientProviderContext | null>(null);\n\nexport type IotaClientProviderProps<T extends NetworkConfigs> = {\n createClient?: (name: keyof T, config: T[keyof T]) => IotaClient;\n children: React.ReactNode;\n networks?: T;\n onNetworkChange?: (network: keyof T & string) => void;\n} & (\n | {\n defaultNetwork?: keyof T & string;\n network?: never;\n }\n | {\n defaultNetwork?: never;\n network?: keyof T & string;\n }\n);\n\nconst DEFAULT_NETWORKS = {\n localnet: { url: getNetwork(Network.Local).url },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n _name: string,\n config: NetworkConfig | IotaClient,\n) {\n if (isIotaClient(config)) {\n return config;\n }\n\n return new IotaClient(config);\n};\n\nexport function IotaClientProvider<T extends NetworkConfigs>(props: IotaClientProviderProps<T>) {\n const { onNetworkChange, network, children } = props;\n const networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n const createClient =\n (props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n const [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n props.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n );\n\n const currentNetwork = props.network ?? selectedNetwork;\n\n const client = useMemo(() => {\n return createClient(currentNetwork, networks[currentNetwork]);\n }, [createClient, currentNetwork, networks]);\n\n const ctx = useMemo((): IotaClientProviderContext => {\n return {\n client,\n networks,\n network: currentNetwork,\n config:\n networks[currentNetwork] instanceof IotaClient\n ? null\n : (networks[currentNetwork] as IotaClientOptions),\n selectNetwork: (newNetwork) => {\n if (currentNetwork === newNetwork) {\n return;\n }\n\n if (!network && newNetwork !== selectedNetwork) {\n setSelectedNetwork(newNetwork);\n }\n\n onNetworkChange?.(newNetwork);\n },\n };\n }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n return <IotaClientContext.Provider value={ctx}>{children}</IotaClientContext.Provider>;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAA8D;AAE9D,mBAAiD;AAyFtC;AAxEJ,IAAM,wBAAoB,4BAAgD,IAAI;AAkBrF,IAAM,mBAAmB;AAAA,EACrB,UAAU,EAAE,SAAK,0BAAW,sBAAQ,KAAK,EAAE,IAAI;AACnD;;;ADlCO,SAAS,uBAAuB;AACnC,QAAM,iBAAa,0BAAW,iBAAiB;AAE/C,MAAI,CAAC,YAAY;AACb,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;;;ADqBO,SAAS,sBAIT,MAWyB;AAC5B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,cAAc,qBAAqB;AAEzC,aAAO,6BAAS;AAAA,IACZ,GAAG;AAAA,IACH,UAAU,CAAC,YAAY,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC3D,SAAS,YAAY;AACjB,aAAO,MAAM,YAAY,OAAO,MAAM,EAAE,MAAe;AAAA,IAC3D;AAAA,EACJ,CAAC;AACL;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\n\nimport type { PartialBy } from '../types/utilityTypes.js';\nimport { useIotaClientContext } from './useIotaClient.js';\n\nexport type IotaRpcMethodName = {\n [K in keyof IotaClient]: IotaClient[K] extends\n | ((input: any) => Promise<any>)\n | (() => Promise<any>)\n ? K\n : never;\n}[keyof IotaClient];\n\nexport type IotaRpcMethods = {\n [K in IotaRpcMethodName]: IotaClient[K] extends (input: infer P) => Promise<infer R>\n ? {\n name: K;\n result: R;\n params: P;\n }\n : IotaClient[K] extends () => Promise<infer R>\n ? {\n name: K;\n result: R;\n params: undefined | object;\n }\n : never;\n};\n\nexport type UseIotaClientQueryOptions<T extends keyof IotaRpcMethods, TData> = PartialBy<\n Omit<UseQueryOptions<IotaRpcMethods[T]['result'], Error, TData, unknown[]>, 'queryFn'>,\n 'queryKey'\n>;\n\nexport function useIotaClientQuery<\n T extends keyof IotaRpcMethods,\n TData = IotaRpcMethods[T]['result'],\n>(\n ...args: undefined extends IotaRpcMethods[T]['params']\n ? [\n method: T,\n params?: IotaRpcMethods[T]['params'],\n options?: UseIotaClientQueryOptions<T, TData>,\n ]\n : [\n method: T,\n params: IotaRpcMethods[T]['params'],\n options?: UseIotaClientQueryOptions<T, TData>,\n ]\n): UseQueryResult<TData, Error> {\n const [method, params, { queryKey = [], ...options } = {}] = args as [\n method: T,\n params?: IotaRpcMethods[T]['params'],\n options?: UseIotaClientQueryOptions<T, TData>,\n ];\n\n const iotaContext = useIotaClientContext();\n\n return useQuery({\n ...options,\n queryKey: [iotaContext.network, method, params, ...queryKey],\n queryFn: async () => {\n return (await iotaContext.client[method](\n params as never,\n )) as IotaRpcMethods[T]['result'];\n },\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { IotaClient } from '@iota/iota-sdk/client';\nimport { useContext } from 'react';\n\nimport { IotaClientContext } from '../components/IotaClientProvider.js';\n\nexport function useIotaClientContext() {\n const iotaClient = useContext(IotaClientContext);\n\n if (!iotaClient) {\n throw new Error(\n 'Could not find IotaClientContext. Ensure that you have set up the IotaClientProvider',\n );\n }\n\n return iotaClient;\n}\n\nexport function useIotaClient(): IotaClient {\n return useIotaClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNetwork, isIotaClient, Network, IotaClient } from '@iota/iota-sdk/client';\nimport type { IotaClientOptions } from '@iota/iota-sdk/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | IotaClient = NetworkConfig | IotaClient> = Record<\n string,\n T\n>;\n\nexport interface IotaClientProviderContext {\n client: IotaClient;\n networks: NetworkConfigs;\n network: string;\n config: NetworkConfig | null;\n selectNetwork: (network: string) => void;\n}\n\nexport const IotaClientContext = createContext<IotaClientProviderContext | null>(null);\n\nexport type IotaClientProviderProps<T extends NetworkConfigs> = {\n createClient?: (name: keyof T, config: T[keyof T]) => IotaClient;\n children: React.ReactNode;\n networks?: T;\n onNetworkChange?: (network: keyof T & string) => void;\n} & (\n | {\n defaultNetwork?: keyof T & string;\n network?: never;\n }\n | {\n defaultNetwork?: never;\n network?: keyof T & string;\n }\n);\n\nconst DEFAULT_NETWORKS = {\n localnet: { url: getNetwork(Network.Local).url },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n _name: string,\n config: NetworkConfig | IotaClient,\n) {\n if (isIotaClient(config)) {\n return config;\n }\n\n return new IotaClient(config);\n};\n\nexport function IotaClientProvider<T extends NetworkConfigs>(props: IotaClientProviderProps<T>) {\n const { onNetworkChange, network, children } = props;\n const networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n const createClient =\n (props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n const [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n props.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n );\n\n const currentNetwork = props.network ?? selectedNetwork;\n\n const client = useMemo(() => {\n return createClient(currentNetwork, networks[currentNetwork]);\n }, [createClient, currentNetwork, networks]);\n\n const ctx = useMemo((): IotaClientProviderContext => {\n return {\n client,\n networks,\n network: currentNetwork,\n config:\n networks[currentNetwork] instanceof IotaClient\n ? null\n : (networks[currentNetwork] as IotaClientOptions),\n selectNetwork: (newNetwork) => {\n if (currentNetwork === newNetwork) {\n return;\n }\n\n if (!network && newNetwork !== selectedNetwork) {\n setSelectedNetwork(newNetwork);\n }\n\n onNetworkChange?.(newNetwork);\n },\n };\n }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n return <IotaClientContext.Provider value={ctx}>{children}</IotaClientContext.Provider>;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAyB;;;ACDzB,IAAAA,gBAA2B;;;ACD3B,oBAA8D;AAE9D,mBAAiD;AAyFtC;AAxEJ,IAAM,wBAAoB,4BAAgD,IAAI;AAkBrF,IAAM,mBAAmB;AAAA,EACrB,UAAU,EAAE,SAAK,0BAAW,sBAAQ,KAAK,EAAE,IAAI;AACnD;;;ADlCO,SAAS,uBAAuB;AACnC,QAAM,iBAAa,0BAAW,iBAAiB;AAE/C,MAAI,CAAC,YAAY;AACb,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;;;ADqBO,SAAS,sBAIT,MAWyB;AAC5B,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAM7D,QAAM,cAAc,qBAAqB;AAEzC,aAAO,6BAAS;AAAA,IACZ,GAAG;AAAA,IACH,UAAU,CAAC,YAAY,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC3D,SAAS,YAAY;AACjB,aAAQ,MAAM,YAAY,OAAO,MAAM;AAAA,QACnC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;",
6
6
  "names": ["import_react"]
7
7
  }
@@ -43,9 +43,10 @@ var walletMutationKeys = {
43
43
  autoconnectWallet: formMutationKeyFn("autoconnect-wallet"),
44
44
  disconnectWallet: formMutationKeyFn("disconnect-wallet"),
45
45
  signPersonalMessage: formMutationKeyFn("sign-personal-message"),
46
- signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
47
- signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
48
- switchAccount: formMutationKeyFn("switch-account")
46
+ signTransaction: formMutationKeyFn("sign-transaction"),
47
+ signAndExecuteTransaction: formMutationKeyFn("sign-and-execute-transaction"),
48
+ switchAccount: formMutationKeyFn("switch-account"),
49
+ reportTransactionEffects: formMutationKeyFn("report-transaction-effects")
49
50
  };
50
51
  function formMutationKeyFn(baseEntity) {
51
52
  return function mutationKeyFn(additionalKeys = []) {
@@ -89,7 +90,12 @@ function useConnectWallet({
89
90
  (account) => account.chains.some(import_wallet_standard2.isSupportedChain)
90
91
  );
91
92
  const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);
92
- setWalletConnected(wallet, connectedIotaAccounts, selectedAccount);
93
+ setWalletConnected(
94
+ wallet,
95
+ connectedIotaAccounts,
96
+ selectedAccount,
97
+ connectResult.supportedIntents
98
+ );
93
99
  return { accounts: connectedIotaAccounts };
94
100
  } catch (error) {
95
101
  setConnectionStatus("disconnected");
@@ -116,6 +122,7 @@ function getSelectedAccount(connectedAccounts, accountAddress) {
116
122
  function useCurrentWallet() {
117
123
  const currentWallet = useWalletStore((state) => state.currentWallet);
118
124
  const connectionStatus = useWalletStore((state) => state.connectionStatus);
125
+ const supportedIntents = useWalletStore((state) => state.supportedIntents);
119
126
  switch (connectionStatus) {
120
127
  case "connecting":
121
128
  return {
@@ -123,7 +130,8 @@ function useCurrentWallet() {
123
130
  currentWallet: null,
124
131
  isDisconnected: false,
125
132
  isConnecting: true,
126
- isConnected: false
133
+ isConnected: false,
134
+ supportedIntents: []
127
135
  };
128
136
  case "disconnected":
129
137
  return {
@@ -131,7 +139,8 @@ function useCurrentWallet() {
131
139
  currentWallet: null,
132
140
  isDisconnected: true,
133
141
  isConnecting: false,
134
- isConnected: false
142
+ isConnected: false,
143
+ supportedIntents: []
135
144
  };
136
145
  case "connected": {
137
146
  return {
@@ -139,7 +148,8 @@ function useCurrentWallet() {
139
148
  currentWallet,
140
149
  isDisconnected: false,
141
150
  isConnecting: false,
142
- isConnected: true
151
+ isConnected: true,
152
+ supportedIntents
143
153
  };
144
154
  }
145
155
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../../src/utils/walletUtils.ts", "../../../../src/hooks/wallet/useConnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useCurrentWallet.ts", "../../../../src/hooks/wallet/useWallets.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from '@tanstack/react-query';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(): 'disabled' | 'idle' | 'attempted' {\n const { mutateAsync: connectWallet } = useConnectWallet();\n const autoConnectEnabled = useWalletStore((state) => state.autoConnectEnabled);\n const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n const lastConnectedAccountAddress = useWalletStore(\n (state) => state.lastConnectedAccountAddress,\n );\n const wallets = useWallets();\n const { isConnected } = useCurrentWallet();\n\n const [clientOnly, setClientOnly] = useState(false);\n useLayoutEffect(() => {\n setClientOnly(true);\n }, []);\n\n const { data, isError } = useQuery({\n queryKey: [\n '@iota/dapp-kit',\n 'autoconnect',\n {\n isConnected,\n autoConnectEnabled,\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n walletCount: wallets.length,\n },\n ],\n queryFn: async () => {\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n if (!lastConnectedWalletName || !lastConnectedAccountAddress || isConnected) {\n return 'attempted';\n }\n\n const wallet = wallets.find(\n (wallet) => getWalletUniqueIdentifier(wallet) === lastConnectedWalletName,\n );\n if (wallet) {\n await connectWallet({\n wallet,\n accountAddress: lastConnectedAccountAddress,\n silent: true,\n });\n }\n\n return 'attempted';\n },\n enabled: autoConnectEnabled,\n persister: undefined,\n gcTime: 0,\n staleTime: 0,\n networkMode: 'always',\n retry: false,\n retryOnMount: false,\n refetchInterval: false,\n refetchIntervalInBackground: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n refetchOnWindowFocus: false,\n });\n\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n // We always initialize with \"idle\" so that in SSR environments, we guarantee that the initial render states always agree:\n if (!clientOnly) {\n return 'idle';\n }\n\n if (isConnected) {\n return 'attempted';\n }\n\n if (!lastConnectedWalletName) {\n return 'attempted';\n }\n\n return isError ? 'attempted' : data ?? 'idle';\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MinimallyRequiredFeatures, Wallet, WalletWithFeatures } from '@iota/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@iota/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n preferredWallets: string[],\n requiredFeatures?: (keyof AdditionalFeatures)[],\n) {\n const walletsApi = getWallets();\n const wallets = walletsApi.get();\n\n const iotaWallets = wallets.filter(\n (wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n isWalletWithRequiredFeatureSet(wallet, requiredFeatures),\n );\n\n return [\n // Preferred wallets, in order:\n ...(preferredWallets\n .map((name) => iotaWallets.find((wallet) => wallet.name === name))\n .filter(Boolean) as WalletWithFeatures<\n MinimallyRequiredFeatures & AdditionalFeatures\n >[]),\n\n // Wallets in default order:\n ...iotaWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n ];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n return wallet?.id ?? wallet?.name;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isSupportedChain } from '@iota/wallet-standard';\nimport type {\n StandardConnectInput,\n StandardConnectOutput,\n WalletAccount,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n /** The wallet to connect to. */\n wallet: WalletWithRequiredFeatures;\n\n /** An optional account address to connect to. Defaults to the first authorized account. */\n accountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n ConnectWalletResult,\n Error,\n ConnectWalletArgs,\n unknown\n> {\n const setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n return useMutation({\n mutationKey: walletMutationKeys.connectWallet(mutationKey),\n mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n try {\n setConnectionStatus('connecting');\n\n const connectResult =\n await wallet.features['standard:connect'].connect(connectArgs);\n const connectedIotaAccounts = connectResult.accounts.filter((account) =>\n account.chains.some(isSupportedChain),\n );\n const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);\n\n setWalletConnected(wallet, connectedIotaAccounts, selectedAccount);\n\n return { accounts: connectedIotaAccounts };\n } catch (error) {\n setConnectionStatus('disconnected');\n throw error;\n }\n },\n ...mutationOptions,\n });\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n if (connectedAccounts.length === 0) {\n return null;\n }\n\n if (accountAddress) {\n const selectedAccount = connectedAccounts.find(\n (account) => account.address === accountAddress,\n );\n return selectedAccount ?? connectedAccounts[0];\n }\n\n return connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n signAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n switchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n return useWalletStore((state) => state.wallets);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useQuery } from '@tanstack/react-query';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(): 'disabled' | 'idle' | 'attempted' {\n const { mutateAsync: connectWallet } = useConnectWallet();\n const autoConnectEnabled = useWalletStore((state) => state.autoConnectEnabled);\n const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n const lastConnectedAccountAddress = useWalletStore(\n (state) => state.lastConnectedAccountAddress,\n );\n const wallets = useWallets();\n const { isConnected } = useCurrentWallet();\n\n const [clientOnly, setClientOnly] = useState(false);\n useLayoutEffect(() => {\n setClientOnly(true);\n }, []);\n\n const { data, isError } = useQuery({\n queryKey: [\n '@iota/dapp-kit',\n 'autoconnect',\n {\n isConnected,\n autoConnectEnabled,\n lastConnectedWalletName,\n lastConnectedAccountAddress,\n walletCount: wallets.length,\n },\n ],\n queryFn: async () => {\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n if (!lastConnectedWalletName || !lastConnectedAccountAddress || isConnected) {\n return 'attempted';\n }\n\n const wallet = wallets.find(\n (wallet) => getWalletUniqueIdentifier(wallet) === lastConnectedWalletName,\n );\n if (wallet) {\n await connectWallet({\n wallet,\n accountAddress: lastConnectedAccountAddress,\n silent: true,\n });\n }\n\n return 'attempted';\n },\n enabled: autoConnectEnabled,\n persister: undefined,\n gcTime: 0,\n staleTime: 0,\n networkMode: 'always',\n retry: false,\n retryOnMount: false,\n refetchInterval: false,\n refetchIntervalInBackground: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n refetchOnWindowFocus: false,\n });\n\n if (!autoConnectEnabled) {\n return 'disabled';\n }\n\n // We always initialize with \"idle\" so that in SSR environments, we guarantee that the initial render states always agree:\n if (!clientOnly) {\n return 'idle';\n }\n\n if (isConnected) {\n return 'attempted';\n }\n\n if (!lastConnectedWalletName) {\n return 'attempted';\n }\n\n return isError ? 'attempted' : (data ?? 'idle');\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n MinimallyRequiredFeatures,\n Wallet,\n WalletWithFeatures,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@iota/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n preferredWallets: string[],\n walletFilter?: (wallet: WalletWithRequiredFeatures) => boolean,\n) {\n const walletsApi = getWallets();\n const wallets = walletsApi.get();\n\n const iotaWallets = wallets.filter(\n (wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n isWalletWithRequiredFeatureSet(wallet) && (!walletFilter || walletFilter(wallet)),\n );\n\n return [\n // Preferred wallets, in order:\n ...(preferredWallets\n .map((name) => iotaWallets.find((wallet) => wallet.name === name))\n .filter(Boolean) as WalletWithFeatures<\n MinimallyRequiredFeatures & AdditionalFeatures\n >[]),\n\n // Wallets in default order:\n ...iotaWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n ];\n}\n\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n return wallet?.id ?? wallet?.name;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isSupportedChain } from '@iota/wallet-standard';\nimport type {\n StandardConnectInput,\n StandardConnectOutput,\n WalletAccount,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n /** The wallet to connect to. */\n wallet: WalletWithRequiredFeatures;\n\n /** An optional account address to connect to. Defaults to the first authorized account. */\n accountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n ConnectWalletResult,\n Error,\n ConnectWalletArgs,\n unknown\n> {\n const setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n return useMutation({\n mutationKey: walletMutationKeys.connectWallet(mutationKey),\n mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n try {\n setConnectionStatus('connecting');\n\n const connectResult =\n await wallet.features['standard:connect'].connect(connectArgs);\n const connectedIotaAccounts = connectResult.accounts.filter((account) =>\n account.chains.some(isSupportedChain),\n );\n const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);\n\n setWalletConnected(\n wallet,\n connectedIotaAccounts,\n selectedAccount,\n connectResult.supportedIntents,\n );\n\n return { accounts: connectedIotaAccounts };\n } catch (error) {\n setConnectionStatus('disconnected');\n throw error;\n }\n },\n ...mutationOptions,\n });\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n if (connectedAccounts.length === 0) {\n return null;\n }\n\n if (accountAddress) {\n const selectedAccount = connectedAccounts.find(\n (account) => account.address === accountAddress,\n );\n return selectedAccount ?? connectedAccounts[0];\n }\n\n return connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransaction: formMutationKeyFn('sign-transaction'),\n signAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n switchAccount: formMutationKeyFn('switch-account'),\n reportTransactionEffects: formMutationKeyFn('report-transaction-effects'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n const supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n supportedIntents,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n return useWalletStore((state) => state.wallets);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAAA,sBAAyB;AACzB,IAAAC,gBAA0C;;;ACK1C,6BAA2D;AA2BpD,SAAS,0BAA0B,QAAiB;AACvD,SAAO,QAAQ,MAAM,QAAQ;AACjC;;;ACnCA,IAAAC,0BAAiC;AAQjC,yBAA4B;;;ACNrB,IAAM,qBAAqB;AAAA,EAC9B,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,iBAAiB,kBAAkB,kBAAkB;AAAA,EACrD,2BAA2B,kBAAkB,8BAA8B;AAAA,EAC3E,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,0BAA0B,kBAAkB,4BAA4B;AAC5E;AAEA,SAAS,kBAAkB,YAAoB;AAC3C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC5D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACxE;AACJ;;;AClBA,IAAAC,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACrE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACR,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,aAAO,yBAAS,OAAO,QAAQ;AACnC;;;AFiBO,SAAS,iBAAiB;AAAA,EAC7B;AAAA,EACA,GAAG;AACP,IAAqC,CAAC,GAKpC;AACE,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAC7E,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAE/E,aAAO,gCAAY;AAAA,IACf,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,YAAY,MAAM;AAC9D,UAAI;AACA,4BAAoB,YAAY;AAEhC,cAAM,gBACF,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,WAAW;AACjE,cAAM,wBAAwB,cAAc,SAAS;AAAA,UAAO,CAAC,YACzD,QAAQ,OAAO,KAAK,wCAAgB;AAAA,QACxC;AACA,cAAM,kBAAkB,mBAAmB,uBAAuB,cAAc;AAEhF;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAClB;AAEA,eAAO,EAAE,UAAU,sBAAsB;AAAA,MAC7C,SAAS,OAAO;AACZ,4BAAoB,cAAc;AAClC,cAAM;AAAA,MACV;AAAA,IACJ;AAAA,IACA,GAAG;AAAA,EACP,CAAC;AACL;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AAC9F,MAAI,kBAAkB,WAAW,GAAG;AAChC,WAAO;AAAA,EACX;AAEA,MAAI,gBAAgB;AAChB,UAAM,kBAAkB,kBAAkB;AAAA,MACtC,CAAC,YAAY,QAAQ,YAAY;AAAA,IACrC;AACA,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EACjD;AAEA,SAAO,kBAAkB,CAAC;AAC9B;;;AIjFO,SAAS,mBAAmB;AAC/B,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AACzE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACtB,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACvB;AAAA,IACJ,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACvB;AAAA,IACJ,KAAK,aAAa;AACd,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;ACnCO,SAAS,aAAa;AACzB,SAAO,eAAe,CAAC,UAAU,MAAM,OAAO;AAClD;;;APEO,SAAS,uBAA0D;AACtE,QAAM,EAAE,aAAa,cAAc,IAAI,iBAAiB;AACxD,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAC7E,QAAM,0BAA0B,eAAe,CAAC,UAAU,MAAM,uBAAuB;AACvF,QAAM,8BAA8B;AAAA,IAChC,CAAC,UAAU,MAAM;AAAA,EACrB;AACA,QAAM,UAAU,WAAW;AAC3B,QAAM,EAAE,YAAY,IAAI,iBAAiB;AAEzC,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,KAAK;AAClD,qCAAgB,MAAM;AAClB,kBAAc,IAAI;AAAA,EACtB,GAAG,CAAC,CAAC;AAEL,QAAM,EAAE,MAAM,QAAQ,QAAI,8BAAS;AAAA,IAC/B,UAAU;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,aAAa,QAAQ;AAAA,MACzB;AAAA,IACJ;AAAA,IACA,SAAS,YAAY;AACjB,UAAI,CAAC,oBAAoB;AACrB,eAAO;AAAA,MACX;AAEA,UAAI,CAAC,2BAA2B,CAAC,+BAA+B,aAAa;AACzE,eAAO;AAAA,MACX;AAEA,YAAM,SAAS,QAAQ;AAAA,QACnB,CAACC,YAAW,0BAA0BA,OAAM,MAAM;AAAA,MACtD;AACA,UAAI,QAAQ;AACR,cAAM,cAAc;AAAA,UAChB;AAAA,UACA,gBAAgB;AAAA,UAChB,QAAQ;AAAA,QACZ,CAAC;AAAA,MACL;AAEA,aAAO;AAAA,IACX;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,6BAA6B;AAAA,IAC7B,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,sBAAsB;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,oBAAoB;AACrB,WAAO;AAAA,EACX;AAGA,MAAI,CAAC,YAAY;AACb,WAAO;AAAA,EACX;AAEA,MAAI,aAAa;AACb,WAAO;AAAA,EACX;AAEA,MAAI,CAAC,yBAAyB;AAC1B,WAAO;AAAA,EACX;AAEA,SAAO,UAAU,cAAe,QAAQ;AAC5C;",
6
6
  "names": ["import_react_query", "import_react", "import_wallet_standard", "import_react", "wallet"]
7
7
  }
@@ -33,9 +33,10 @@ var walletMutationKeys = {
33
33
  autoconnectWallet: formMutationKeyFn("autoconnect-wallet"),
34
34
  disconnectWallet: formMutationKeyFn("disconnect-wallet"),
35
35
  signPersonalMessage: formMutationKeyFn("sign-personal-message"),
36
- signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
37
- signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
38
- switchAccount: formMutationKeyFn("switch-account")
36
+ signTransaction: formMutationKeyFn("sign-transaction"),
37
+ signAndExecuteTransaction: formMutationKeyFn("sign-and-execute-transaction"),
38
+ switchAccount: formMutationKeyFn("switch-account"),
39
+ reportTransactionEffects: formMutationKeyFn("report-transaction-effects")
39
40
  };
40
41
  function formMutationKeyFn(baseEntity) {
41
42
  return function mutationKeyFn(additionalKeys = []) {
@@ -79,7 +80,12 @@ function useConnectWallet({
79
80
  (account) => account.chains.some(import_wallet_standard.isSupportedChain)
80
81
  );
81
82
  const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);
82
- setWalletConnected(wallet, connectedIotaAccounts, selectedAccount);
83
+ setWalletConnected(
84
+ wallet,
85
+ connectedIotaAccounts,
86
+ selectedAccount,
87
+ connectResult.supportedIntents
88
+ );
83
89
  return { accounts: connectedIotaAccounts };
84
90
  } catch (error) {
85
91
  setConnectionStatus("disconnected");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useConnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isSupportedChain } from '@iota/wallet-standard';\nimport type {\n StandardConnectInput,\n StandardConnectOutput,\n WalletAccount,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n /** The wallet to connect to. */\n wallet: WalletWithRequiredFeatures;\n\n /** An optional account address to connect to. Defaults to the first authorized account. */\n accountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n ConnectWalletResult,\n Error,\n ConnectWalletArgs,\n unknown\n> {\n const setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n return useMutation({\n mutationKey: walletMutationKeys.connectWallet(mutationKey),\n mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n try {\n setConnectionStatus('connecting');\n\n const connectResult =\n await wallet.features['standard:connect'].connect(connectArgs);\n const connectedIotaAccounts = connectResult.accounts.filter((account) =>\n account.chains.some(isSupportedChain),\n );\n const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);\n\n setWalletConnected(wallet, connectedIotaAccounts, selectedAccount);\n\n return { accounts: connectedIotaAccounts };\n } catch (error) {\n setConnectionStatus('disconnected');\n throw error;\n }\n },\n ...mutationOptions,\n });\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n if (connectedAccounts.length === 0) {\n return null;\n }\n\n if (accountAddress) {\n const selectedAccount = connectedAccounts.find(\n (account) => account.address === accountAddress,\n );\n return selectedAccount ?? connectedAccounts[0];\n }\n\n return connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n signAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n switchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,6BAAiC;AAQjC,yBAA4B;;;ACNrB,IAAM,qBAAqB;AAAA,EAC9B,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,sBAAsB,kBAAkB,wBAAwB;AAAA,EAChE,gCAAgC,kBAAkB,oCAAoC;AAAA,EACtF,eAAe,kBAAkB,gBAAgB;AACrD;AAEA,SAAS,kBAAkB,YAAoB;AAC3C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC5D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACxE;AACJ;;;ACjBA,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACrE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACR,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,aAAO,yBAAS,OAAO,QAAQ;AACnC;;;AFiBO,SAAS,iBAAiB;AAAA,EAC7B;AAAA,EACA,GAAG;AACP,IAAqC,CAAC,GAKpC;AACE,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAC7E,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAE/E,aAAO,gCAAY;AAAA,IACf,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,YAAY,MAAM;AAC9D,UAAI;AACA,4BAAoB,YAAY;AAEhC,cAAM,gBACF,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,WAAW;AACjE,cAAM,wBAAwB,cAAc,SAAS;AAAA,UAAO,CAAC,YACzD,QAAQ,OAAO,KAAK,uCAAgB;AAAA,QACxC;AACA,cAAM,kBAAkB,mBAAmB,uBAAuB,cAAc;AAEhF,2BAAmB,QAAQ,uBAAuB,eAAe;AAEjE,eAAO,EAAE,UAAU,sBAAsB;AAAA,MAC7C,SAAS,OAAP;AACE,4BAAoB,cAAc;AAClC,cAAM;AAAA,MACV;AAAA,IACJ;AAAA,IACA,GAAG;AAAA,EACP,CAAC;AACL;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AAC9F,MAAI,kBAAkB,WAAW,GAAG;AAChC,WAAO;AAAA,EACX;AAEA,MAAI,gBAAgB;AAChB,UAAM,kBAAkB,kBAAkB;AAAA,MACtC,CAAC,YAAY,QAAQ,YAAY;AAAA,IACrC;AACA,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EACjD;AAEA,SAAO,kBAAkB,CAAC;AAC9B;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isSupportedChain } from '@iota/wallet-standard';\nimport type {\n StandardConnectInput,\n StandardConnectOutput,\n WalletAccount,\n WalletWithRequiredFeatures,\n} from '@iota/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n /** The wallet to connect to. */\n wallet: WalletWithRequiredFeatures;\n\n /** An optional account address to connect to. Defaults to the first authorized account. */\n accountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseConnectWalletMutationOptions = {}): UseMutationResult<\n ConnectWalletResult,\n Error,\n ConnectWalletArgs,\n unknown\n> {\n const setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);\n\n return useMutation({\n mutationKey: walletMutationKeys.connectWallet(mutationKey),\n mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {\n try {\n setConnectionStatus('connecting');\n\n const connectResult =\n await wallet.features['standard:connect'].connect(connectArgs);\n const connectedIotaAccounts = connectResult.accounts.filter((account) =>\n account.chains.some(isSupportedChain),\n );\n const selectedAccount = getSelectedAccount(connectedIotaAccounts, accountAddress);\n\n setWalletConnected(\n wallet,\n connectedIotaAccounts,\n selectedAccount,\n connectResult.supportedIntents,\n );\n\n return { accounts: connectedIotaAccounts };\n } catch (error) {\n setConnectionStatus('disconnected');\n throw error;\n }\n },\n ...mutationOptions,\n });\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n if (connectedAccounts.length === 0) {\n return null;\n }\n\n if (accountAddress) {\n const selectedAccount = connectedAccounts.find(\n (account) => account.address === accountAddress,\n );\n return selectedAccount ?? connectedAccounts[0];\n }\n\n return connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransaction: formMutationKeyFn('sign-transaction'),\n signAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n switchAccount: formMutationKeyFn('switch-account'),\n reportTransactionEffects: formMutationKeyFn('report-transaction-effects'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,6BAAiC;AAQjC,yBAA4B;;;ACNrB,IAAM,qBAAqB;AAAA,EAC9B,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,iBAAiB,kBAAkB,kBAAkB;AAAA,EACrD,2BAA2B,kBAAkB,8BAA8B;AAAA,EAC3E,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,0BAA0B,kBAAkB,4BAA4B;AAC5E;AAEA,SAAS,kBAAkB,YAAoB;AAC3C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC5D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACxE;AACJ;;;AClBA,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACrE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACR,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,aAAO,yBAAS,OAAO,QAAQ;AACnC;;;AFiBO,SAAS,iBAAiB;AAAA,EAC7B;AAAA,EACA,GAAG;AACP,IAAqC,CAAC,GAKpC;AACE,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAC7E,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAE/E,aAAO,gCAAY;AAAA,IACf,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,YAAY,MAAM;AAC9D,UAAI;AACA,4BAAoB,YAAY;AAEhC,cAAM,gBACF,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,WAAW;AACjE,cAAM,wBAAwB,cAAc,SAAS;AAAA,UAAO,CAAC,YACzD,QAAQ,OAAO,KAAK,uCAAgB;AAAA,QACxC;AACA,cAAM,kBAAkB,mBAAmB,uBAAuB,cAAc;AAEhF;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAClB;AAEA,eAAO,EAAE,UAAU,sBAAsB;AAAA,MAC7C,SAAS,OAAO;AACZ,4BAAoB,cAAc;AAClC,cAAM;AAAA,MACV;AAAA,IACJ;AAAA,IACA,GAAG;AAAA,EACP,CAAC;AACL;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AAC9F,MAAI,kBAAkB,WAAW,GAAG;AAChC,WAAO;AAAA,EACX;AAEA,MAAI,gBAAgB;AAChB,UAAM,kBAAkB,kBAAkB;AAAA,MACtC,CAAC,YAAY,QAAQ,YAAY;AAAA,IACrC;AACA,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EACjD;AAEA,SAAO,kBAAkB,CAAC;AAC9B;",
6
6
  "names": ["import_react"]
7
7
  }
@@ -7,16 +7,19 @@ export declare function useCurrentWallet(): {
7
7
  readonly isDisconnected: false;
8
8
  readonly isConnecting: true;
9
9
  readonly isConnected: false;
10
+ readonly supportedIntents: readonly [];
10
11
  } | {
11
12
  readonly connectionStatus: "disconnected";
12
13
  readonly currentWallet: null;
13
14
  readonly isDisconnected: true;
14
15
  readonly isConnecting: false;
15
16
  readonly isConnected: false;
17
+ readonly supportedIntents: readonly [];
16
18
  } | {
17
19
  readonly connectionStatus: "connected";
18
20
  readonly currentWallet: import("@iota/wallet-standard").WalletWithRequiredFeatures;
19
21
  readonly isDisconnected: false;
20
22
  readonly isConnecting: false;
21
23
  readonly isConnected: true;
24
+ readonly supportedIntents: string[];
22
25
  };
@@ -47,6 +47,7 @@ function useWalletStore(selector) {
47
47
  function useCurrentWallet() {
48
48
  const currentWallet = useWalletStore((state) => state.currentWallet);
49
49
  const connectionStatus = useWalletStore((state) => state.connectionStatus);
50
+ const supportedIntents = useWalletStore((state) => state.supportedIntents);
50
51
  switch (connectionStatus) {
51
52
  case "connecting":
52
53
  return {
@@ -54,7 +55,8 @@ function useCurrentWallet() {
54
55
  currentWallet: null,
55
56
  isDisconnected: false,
56
57
  isConnecting: true,
57
- isConnected: false
58
+ isConnected: false,
59
+ supportedIntents: []
58
60
  };
59
61
  case "disconnected":
60
62
  return {
@@ -62,7 +64,8 @@ function useCurrentWallet() {
62
64
  currentWallet: null,
63
65
  isDisconnected: true,
64
66
  isConnecting: false,
65
- isConnected: false
67
+ isConnected: false,
68
+ supportedIntents: []
66
69
  };
67
70
  case "connected": {
68
71
  return {
@@ -70,7 +73,8 @@ function useCurrentWallet() {
70
73
  currentWallet,
71
74
  isDisconnected: false,
72
75
  isConnecting: false,
73
- isConnected: true
76
+ isConnected: true,
77
+ supportedIntents
74
78
  };
75
79
  }
76
80
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useCurrentWallet.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACIA,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACrE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACR,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,aAAO,yBAAS,OAAO,QAAQ;AACnC;;;ADTO,SAAS,mBAAmB;AAC/B,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACtB,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACjB;AAAA,IACJ,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACjB;AAAA,IACJ,KAAK,aAAa;AACd,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AACJ;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n const supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n supportedIntents,\n } as const;\n }\n }\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACIA,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACrE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACR,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,aAAO,yBAAS,OAAO,QAAQ;AACnC;;;ADTO,SAAS,mBAAmB;AAC/B,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AACzE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACtB,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACvB;AAAA,IACJ,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACvB;AAAA,IACJ,KAAK,aAAa;AACd,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;",
6
6
  "names": ["import_react"]
7
7
  }
@@ -32,9 +32,10 @@ var walletMutationKeys = {
32
32
  autoconnectWallet: formMutationKeyFn("autoconnect-wallet"),
33
33
  disconnectWallet: formMutationKeyFn("disconnect-wallet"),
34
34
  signPersonalMessage: formMutationKeyFn("sign-personal-message"),
35
- signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
36
- signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
37
- switchAccount: formMutationKeyFn("switch-account")
35
+ signTransaction: formMutationKeyFn("sign-transaction"),
36
+ signAndExecuteTransaction: formMutationKeyFn("sign-and-execute-transaction"),
37
+ switchAccount: formMutationKeyFn("switch-account"),
38
+ reportTransactionEffects: formMutationKeyFn("report-transaction-effects")
38
39
  };
39
40
  function formMutationKeyFn(baseEntity) {
40
41
  return function mutationKeyFn(additionalKeys = []) {
@@ -69,6 +70,7 @@ function useWalletStore(selector) {
69
70
  function useCurrentWallet() {
70
71
  const currentWallet = useWalletStore((state) => state.currentWallet);
71
72
  const connectionStatus = useWalletStore((state) => state.connectionStatus);
73
+ const supportedIntents = useWalletStore((state) => state.supportedIntents);
72
74
  switch (connectionStatus) {
73
75
  case "connecting":
74
76
  return {
@@ -76,7 +78,8 @@ function useCurrentWallet() {
76
78
  currentWallet: null,
77
79
  isDisconnected: false,
78
80
  isConnecting: true,
79
- isConnected: false
81
+ isConnected: false,
82
+ supportedIntents: []
80
83
  };
81
84
  case "disconnected":
82
85
  return {
@@ -84,7 +87,8 @@ function useCurrentWallet() {
84
87
  currentWallet: null,
85
88
  isDisconnected: true,
86
89
  isConnecting: false,
87
- isConnected: false
90
+ isConnected: false,
91
+ supportedIntents: []
88
92
  };
89
93
  case "connected": {
90
94
  return {
@@ -92,7 +96,8 @@ function useCurrentWallet() {
92
96
  currentWallet,
93
97
  isDisconnected: false,
94
98
  isConnecting: false,
95
- isConnected: true
99
+ isConnected: true,
100
+ supportedIntents
96
101
  };
97
102
  }
98
103
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useDisconnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/errors/walletErrors.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useCurrentWallet.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype UseDisconnectWalletError = WalletNotConnectedError | Error;\n\ntype UseDisconnectWalletMutationOptions = Omit<\n UseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n void,\n UseDisconnectWalletError,\n void\n> {\n const { currentWallet } = useCurrentWallet();\n const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n return useMutation({\n mutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n mutationFn: async () => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n try {\n // Wallets aren't required to implement the disconnect feature, so we'll\n // optionally call the disconnect feature if it exists and reset the UI\n // state on the frontend at a minimum.\n await currentWallet.features['standard:disconnect']?.disconnect();\n } catch (error) {\n console.error(\n 'Failed to disconnect the application from the current wallet.',\n error,\n );\n }\n\n setWalletDisconnected();\n },\n ...mutationOptions,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n signAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n switchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n } as const;\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAA4B;;;ACCrB,IAAM,qBAAqB;AAAA,EAC9B,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,sBAAsB,kBAAkB,wBAAwB;AAAA,EAChE,gCAAgC,kBAAkB,oCAAoC;AAAA,EACtF,eAAe,kBAAkB,gBAAgB;AACrD;AAEA,SAAS,kBAAkB,YAAoB;AAC3C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC5D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACxE;AACJ;;;ACdO,IAAM,0BAAN,cAAsC,MAAM;AAAC;;;ACHpD,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACrE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACR,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,aAAO,yBAAS,OAAO,QAAQ;AACnC;;;AETO,SAAS,mBAAmB;AAC/B,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACtB,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACjB;AAAA,IACJ,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACjB;AAAA,IACJ,KAAK,aAAa;AACd,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AACJ;;;ALlBO,SAAS,oBAAoB;AAAA,EAChC;AAAA,EACA,GAAG;AACP,IAAwC,CAAC,GAIvC;AACE,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,wBAAwB,eAAe,CAAC,UAAU,MAAM,qBAAqB;AAEnF,aAAO,gCAAY;AAAA,IACf,aAAa,mBAAmB,iBAAiB,WAAW;AAAA,IAC5D,YAAY,YAAY;AACpB,UAAI,CAAC,eAAe;AAChB,cAAM,IAAI,wBAAwB,yBAAyB;AAAA,MAC/D;AAEA,UAAI;AAIA,cAAM,cAAc,SAAS,qBAAqB,GAAG,WAAW;AAAA,MACpE,SAAS,OAAP;AACE,gBAAQ;AAAA,UACJ;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAEA,4BAAsB;AAAA,IAC1B;AAAA,IACA,GAAG;AAAA,EACP,CAAC;AACL;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype UseDisconnectWalletError = WalletNotConnectedError | Error;\n\ntype UseDisconnectWalletMutationOptions = Omit<\n UseMutationOptions<void, UseDisconnectWalletError, void, unknown>,\n 'mutationFn'\n>;\n\n/**\n * Mutation hook for disconnecting from an active wallet connection, if currently connected.\n */\nexport function useDisconnectWallet({\n mutationKey,\n ...mutationOptions\n}: UseDisconnectWalletMutationOptions = {}): UseMutationResult<\n void,\n UseDisconnectWalletError,\n void\n> {\n const { currentWallet } = useCurrentWallet();\n const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);\n\n return useMutation({\n mutationKey: walletMutationKeys.disconnectWallet(mutationKey),\n mutationFn: async () => {\n if (!currentWallet) {\n throw new WalletNotConnectedError('No wallet is connected.');\n }\n\n try {\n // Wallets aren't required to implement the disconnect feature, so we'll\n // optionally call the disconnect feature if it exists and reset the UI\n // state on the frontend at a minimum.\n await currentWallet.features['standard:disconnect']?.disconnect();\n } catch (error) {\n console.error(\n 'Failed to disconnect the application from the current wallet.',\n error,\n );\n }\n\n setWalletDisconnected();\n },\n ...mutationOptions,\n });\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n all: { baseScope: 'wallet' },\n connectWallet: formMutationKeyFn('connect-wallet'),\n autoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n disconnectWallet: formMutationKeyFn('disconnect-wallet'),\n signPersonalMessage: formMutationKeyFn('sign-personal-message'),\n signTransaction: formMutationKeyFn('sign-transaction'),\n signAndExecuteTransaction: formMutationKeyFn('sign-and-execute-transaction'),\n switchAccount: formMutationKeyFn('switch-account'),\n reportTransactionEffects: formMutationKeyFn('report-transaction-effects'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n return function mutationKeyFn(additionalKeys: MutationKey = []) {\n return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n };\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n const store = useContext(WalletContext);\n if (!store) {\n throw new Error(\n 'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n );\n }\n return useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n const currentWallet = useWalletStore((state) => state.currentWallet);\n const connectionStatus = useWalletStore((state) => state.connectionStatus);\n const supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n switch (connectionStatus) {\n case 'connecting':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: false,\n isConnecting: true,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'disconnected':\n return {\n connectionStatus,\n currentWallet: null,\n isDisconnected: true,\n isConnecting: false,\n isConnected: false,\n supportedIntents: [],\n } as const;\n case 'connected': {\n return {\n connectionStatus,\n currentWallet: currentWallet!,\n isDisconnected: false,\n isConnecting: false,\n isConnected: true,\n supportedIntents,\n } as const;\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,yBAA4B;;;ACCrB,IAAM,qBAAqB;AAAA,EAC9B,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,iBAAiB,kBAAkB,kBAAkB;AAAA,EACrD,2BAA2B,kBAAkB,8BAA8B;AAAA,EAC3E,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,0BAA0B,kBAAkB,4BAA4B;AAC5E;AAEA,SAAS,kBAAkB,YAAoB;AAC3C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC5D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACxE;AACJ;;;ACfO,IAAM,0BAAN,cAAsC,MAAM;AAAC;;;ACHpD,IAAAA,gBAA2B;AAC3B,qBAAyB;;;ACDzB,mBAA8B;AAIvB,IAAM,oBAAgB,4BAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACrE,QAAM,YAAQ,0BAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACR,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,aAAO,yBAAS,OAAO,QAAQ;AACnC;;;AETO,SAAS,mBAAmB;AAC/B,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AACzE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACtB,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACvB;AAAA,IACJ,KAAK;AACD,aAAO;AAAA,QACH;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACvB;AAAA,IACJ,KAAK,aAAa;AACd,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;;;ALtBO,SAAS,oBAAoB;AAAA,EAChC;AAAA,EACA,GAAG;AACP,IAAwC,CAAC,GAIvC;AACE,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,wBAAwB,eAAe,CAAC,UAAU,MAAM,qBAAqB;AAEnF,aAAO,gCAAY;AAAA,IACf,aAAa,mBAAmB,iBAAiB,WAAW;AAAA,IAC5D,YAAY,YAAY;AACpB,UAAI,CAAC,eAAe;AAChB,cAAM,IAAI,wBAAwB,yBAAyB;AAAA,MAC/D;AAEA,UAAI;AAIA,cAAM,cAAc,SAAS,qBAAqB,GAAG,WAAW;AAAA,MACpE,SAAS,OAAO;AACZ,gBAAQ;AAAA,UACJ;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAEA,4BAAsB;AAAA,IAC1B;AAAA,IACA,GAAG;AAAA,EACP,CAAC;AACL;",
6
6
  "names": ["import_react"]
7
7
  }
@@ -0,0 +1,15 @@
1
+ import type { IotaReportTransactionEffectsInput } from '@iota/wallet-standard';
2
+ import type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
3
+ import type { WalletFeatureNotSupportedError } from '../../errors/walletErrors.js';
4
+ import { WalletNoAccountSelectedError, WalletNotConnectedError } from '../../errors/walletErrors.js';
5
+ import type { PartialBy } from '../../types/utilityTypes.js';
6
+ type UseReportTransactionEffectsArgs = Omit<PartialBy<IotaReportTransactionEffectsInput, 'account' | 'chain'>, 'effects'> & {
7
+ effects: string | number[];
8
+ };
9
+ type UseReportTransactionEffectsError = WalletFeatureNotSupportedError | WalletNoAccountSelectedError | WalletNotConnectedError | Error;
10
+ type UseReportTransactionEffectsMutationOptions = Omit<UseMutationOptions<void, UseReportTransactionEffectsError, UseReportTransactionEffectsArgs, unknown>, 'mutationFn'>;
11
+ /**
12
+ * Mutation hook for prompting the user to sign a message.
13
+ */
14
+ export declare function useReportTransactionEffects({ mutationKey, ...mutationOptions }?: UseReportTransactionEffectsMutationOptions): UseMutationResult<void, UseReportTransactionEffectsError, UseReportTransactionEffectsArgs>;
15
+ export {};
@@ -17,22 +17,15 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/hooks/wallet/useSignTransactionBlock.ts
21
- var useSignTransactionBlock_exports = {};
22
- __export(useSignTransactionBlock_exports, {
23
- useSignTransactionBlock: () => useSignTransactionBlock
20
+ // src/hooks/wallet/useReportTransactionEffects.ts
21
+ var useReportTransactionEffects_exports = {};
22
+ __export(useReportTransactionEffects_exports, {
23
+ useReportTransactionEffects: () => useReportTransactionEffects
24
24
  });
25
- module.exports = __toCommonJS(useSignTransactionBlock_exports);
25
+ module.exports = __toCommonJS(useReportTransactionEffects_exports);
26
+ var import_utils = require("@iota/iota-sdk/utils");
26
27
  var import_react_query = require("@tanstack/react-query");
27
28
 
28
- // src/errors/walletErrors.ts
29
- var WalletNotConnectedError = class extends Error {
30
- };
31
- var WalletNoAccountSelectedError = class extends Error {
32
- };
33
- var WalletFeatureNotSupportedError = class extends Error {
34
- };
35
-
36
29
  // src/constants/walletMutationKeys.ts
37
30
  var walletMutationKeys = {
38
31
  all: { baseScope: "wallet" },
@@ -40,9 +33,10 @@ var walletMutationKeys = {
40
33
  autoconnectWallet: formMutationKeyFn("autoconnect-wallet"),
41
34
  disconnectWallet: formMutationKeyFn("disconnect-wallet"),
42
35
  signPersonalMessage: formMutationKeyFn("sign-personal-message"),
43
- signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
44
- signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
45
- switchAccount: formMutationKeyFn("switch-account")
36
+ signTransaction: formMutationKeyFn("sign-transaction"),
37
+ signAndExecuteTransaction: formMutationKeyFn("sign-and-execute-transaction"),
38
+ switchAccount: formMutationKeyFn("switch-account"),
39
+ reportTransactionEffects: formMutationKeyFn("report-transaction-effects")
46
40
  };
47
41
  function formMutationKeyFn(baseEntity) {
48
42
  return function mutationKeyFn(additionalKeys = []) {
@@ -50,6 +44,12 @@ function formMutationKeyFn(baseEntity) {
50
44
  };
51
45
  }
52
46
 
47
+ // src/errors/walletErrors.ts
48
+ var WalletNotConnectedError = class extends Error {
49
+ };
50
+ var WalletNoAccountSelectedError = class extends Error {
51
+ };
52
+
53
53
  // src/hooks/wallet/useWalletStore.ts
54
54
  var import_react2 = require("react");
55
55
  var import_zustand = require("zustand");
@@ -78,6 +78,7 @@ function useCurrentAccount() {
78
78
  function useCurrentWallet() {
79
79
  const currentWallet = useWalletStore((state) => state.currentWallet);
80
80
  const connectionStatus = useWalletStore((state) => state.connectionStatus);
81
+ const supportedIntents = useWalletStore((state) => state.supportedIntents);
81
82
  switch (connectionStatus) {
82
83
  case "connecting":
83
84
  return {
@@ -85,7 +86,8 @@ function useCurrentWallet() {
85
86
  currentWallet: null,
86
87
  isDisconnected: false,
87
88
  isConnecting: true,
88
- isConnected: false
89
+ isConnected: false,
90
+ supportedIntents: []
89
91
  };
90
92
  case "disconnected":
91
93
  return {
@@ -93,7 +95,8 @@ function useCurrentWallet() {
93
95
  currentWallet: null,
94
96
  isDisconnected: true,
95
97
  isConnecting: false,
96
- isConnected: false
98
+ isConnected: false,
99
+ supportedIntents: []
97
100
  };
98
101
  case "connected": {
99
102
  return {
@@ -101,44 +104,45 @@ function useCurrentWallet() {
101
104
  currentWallet,
102
105
  isDisconnected: false,
103
106
  isConnecting: false,
104
- isConnected: true
107
+ isConnected: true,
108
+ supportedIntents
105
109
  };
106
110
  }
107
111
  }
108
112
  }
109
113
 
110
- // src/hooks/wallet/useSignTransactionBlock.ts
111
- function useSignTransactionBlock({
114
+ // src/hooks/wallet/useReportTransactionEffects.ts
115
+ function useReportTransactionEffects({
112
116
  mutationKey,
113
117
  ...mutationOptions
114
118
  } = {}) {
115
119
  const { currentWallet } = useCurrentWallet();
116
120
  const currentAccount = useCurrentAccount();
117
121
  return (0, import_react_query.useMutation)({
118
- mutationKey: walletMutationKeys.signTransactionBlock(mutationKey),
119
- mutationFn: async (signTransactionBlockArgs) => {
122
+ mutationKey: walletMutationKeys.reportTransactionEffects(mutationKey),
123
+ mutationFn: async ({
124
+ effects,
125
+ chain = currentWallet?.chains[0],
126
+ account = currentAccount
127
+ }) => {
120
128
  if (!currentWallet) {
121
129
  throw new WalletNotConnectedError("No wallet is connected.");
122
130
  }
123
- const signerAccount = signTransactionBlockArgs.account ?? currentAccount;
124
- if (!signerAccount) {
131
+ if (!account) {
125
132
  throw new WalletNoAccountSelectedError(
126
- "No wallet account is selected to sign the transaction block with."
133
+ "No wallet account is selected to report transaction effects for"
127
134
  );
128
135
  }
129
- const walletFeature = currentWallet.features["iota:signTransactionBlock"];
130
- if (!walletFeature) {
131
- throw new WalletFeatureNotSupportedError(
132
- "This wallet doesn't support the `SignTransactionBlock` feature."
133
- );
136
+ const reportTransactionEffectsFeature = currentWallet.features["iota:reportTransactionEffects"];
137
+ if (reportTransactionEffectsFeature) {
138
+ return await reportTransactionEffectsFeature.reportTransactionEffects({
139
+ effects: Array.isArray(effects) ? (0, import_utils.toB64)(new Uint8Array(effects)) : effects,
140
+ account,
141
+ chain: chain ?? currentWallet?.chains[0]
142
+ });
134
143
  }
135
- return await walletFeature.signTransactionBlock({
136
- ...signTransactionBlockArgs,
137
- account: signerAccount,
138
- chain: signTransactionBlockArgs.chain ?? signerAccount.chains[0]
139
- });
140
144
  },
141
145
  ...mutationOptions
142
146
  });
143
147
  }
144
- //# sourceMappingURL=useSignTransactionBlock.js.map
148
+ //# sourceMappingURL=useReportTransactionEffects.js.map