@mysten/dapp-kit 0.0.0-experimental-20230928204256

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 (444) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +201 -0
  3. package/README.md +0 -0
  4. package/dist/cjs/components/AccountDropdownMenu.css +41 -0
  5. package/dist/cjs/components/AccountDropdownMenu.css.css +41 -0
  6. package/dist/cjs/components/AccountDropdownMenu.css.css.map +7 -0
  7. package/dist/cjs/components/AccountDropdownMenu.css.d.ts +5 -0
  8. package/dist/cjs/components/AccountDropdownMenu.css.js +35 -0
  9. package/dist/cjs/components/AccountDropdownMenu.css.js.map +7 -0
  10. package/dist/cjs/components/AccountDropdownMenu.css.map +7 -0
  11. package/dist/cjs/components/AccountDropdownMenu.d.ts +6 -0
  12. package/dist/cjs/components/AccountDropdownMenu.js +216 -0
  13. package/dist/cjs/components/AccountDropdownMenu.js.map +7 -0
  14. package/dist/cjs/components/ConnectButton.css +250 -0
  15. package/dist/cjs/components/ConnectButton.css.map +7 -0
  16. package/dist/cjs/components/ConnectButton.d.ts +6 -0
  17. package/dist/cjs/components/ConnectButton.js +580 -0
  18. package/dist/cjs/components/ConnectButton.js.map +7 -0
  19. package/dist/cjs/components/SuiClientProvider.d.ts +26 -0
  20. package/dist/cjs/components/SuiClientProvider.js +69 -0
  21. package/dist/cjs/components/SuiClientProvider.js.map +7 -0
  22. package/dist/cjs/components/WalletProvider.d.ts +20 -0
  23. package/dist/cjs/components/WalletProvider.js +470 -0
  24. package/dist/cjs/components/WalletProvider.js.map +7 -0
  25. package/dist/cjs/components/connect-modal/ConnectModal.css +209 -0
  26. package/dist/cjs/components/connect-modal/ConnectModal.css.css +109 -0
  27. package/dist/cjs/components/connect-modal/ConnectModal.css.css.map +7 -0
  28. package/dist/cjs/components/connect-modal/ConnectModal.css.d.ts +12 -0
  29. package/dist/cjs/components/connect-modal/ConnectModal.css.js +49 -0
  30. package/dist/cjs/components/connect-modal/ConnectModal.css.js.map +7 -0
  31. package/dist/cjs/components/connect-modal/ConnectModal.css.map +7 -0
  32. package/dist/cjs/components/connect-modal/ConnectModal.d.ts +6 -0
  33. package/dist/cjs/components/connect-modal/ConnectModal.js +421 -0
  34. package/dist/cjs/components/connect-modal/ConnectModal.js.map +7 -0
  35. package/dist/cjs/components/connect-modal/InfoSection.css +7 -0
  36. package/dist/cjs/components/connect-modal/InfoSection.css.css +7 -0
  37. package/dist/cjs/components/connect-modal/InfoSection.css.css.map +7 -0
  38. package/dist/cjs/components/connect-modal/InfoSection.css.d.ts +3 -0
  39. package/dist/cjs/components/connect-modal/InfoSection.css.js +31 -0
  40. package/dist/cjs/components/connect-modal/InfoSection.css.js.map +7 -0
  41. package/dist/cjs/components/connect-modal/InfoSection.css.map +7 -0
  42. package/dist/cjs/components/connect-modal/InfoSection.d.ts +6 -0
  43. package/dist/cjs/components/connect-modal/InfoSection.js +40 -0
  44. package/dist/cjs/components/connect-modal/InfoSection.js.map +7 -0
  45. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css +26 -0
  46. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css +26 -0
  47. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
  48. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
  49. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js +35 -0
  50. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
  51. package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.map +7 -0
  52. package/dist/cjs/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
  53. package/dist/cjs/components/connect-modal/views/ConnectionStatus.js +77 -0
  54. package/dist/cjs/components/connect-modal/views/ConnectionStatus.js.map +7 -0
  55. package/dist/cjs/components/connect-modal/views/GettingStarted.css +22 -0
  56. package/dist/cjs/components/connect-modal/views/GettingStarted.css.css +15 -0
  57. package/dist/cjs/components/connect-modal/views/GettingStarted.css.css.map +7 -0
  58. package/dist/cjs/components/connect-modal/views/GettingStarted.css.d.ts +4 -0
  59. package/dist/cjs/components/connect-modal/views/GettingStarted.css.js +33 -0
  60. package/dist/cjs/components/connect-modal/views/GettingStarted.css.js.map +7 -0
  61. package/dist/cjs/components/connect-modal/views/GettingStarted.css.map +7 -0
  62. package/dist/cjs/components/connect-modal/views/GettingStarted.d.ts +1 -0
  63. package/dist/cjs/components/connect-modal/views/GettingStarted.js +69 -0
  64. package/dist/cjs/components/connect-modal/views/GettingStarted.js.map +7 -0
  65. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css +22 -0
  66. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css +15 -0
  67. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
  68. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.d.ts +3 -0
  69. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js +31 -0
  70. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
  71. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
  72. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
  73. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js +57 -0
  74. package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
  75. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css +37 -0
  76. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css +7 -0
  77. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css.map +7 -0
  78. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.d.ts +1 -0
  79. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.js +27 -0
  80. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.js.map +7 -0
  81. package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.map +7 -0
  82. package/dist/cjs/components/connect-modal/wallet-list/WalletList.d.ts +8 -0
  83. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +113 -0
  84. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +7 -0
  85. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css +30 -0
  86. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css +30 -0
  87. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css.map +7 -0
  88. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.d.ts +5 -0
  89. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js +35 -0
  90. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js.map +7 -0
  91. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.map +7 -0
  92. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.d.ts +9 -0
  93. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js +43 -0
  94. package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js.map +7 -0
  95. package/dist/cjs/components/icons/BackIcon.d.ts +2 -0
  96. package/dist/cjs/components/icons/BackIcon.js +36 -0
  97. package/dist/cjs/components/icons/BackIcon.js.map +7 -0
  98. package/dist/cjs/components/icons/CheckIcon.d.ts +2 -0
  99. package/dist/cjs/components/icons/CheckIcon.js +36 -0
  100. package/dist/cjs/components/icons/CheckIcon.js.map +7 -0
  101. package/dist/cjs/components/icons/ChevronIcon.d.ts +2 -0
  102. package/dist/cjs/components/icons/ChevronIcon.js +39 -0
  103. package/dist/cjs/components/icons/ChevronIcon.js.map +7 -0
  104. package/dist/cjs/components/icons/CloseIcon.d.ts +2 -0
  105. package/dist/cjs/components/icons/CloseIcon.js +36 -0
  106. package/dist/cjs/components/icons/CloseIcon.js.map +7 -0
  107. package/dist/cjs/components/icons/SuiIcon.d.ts +2 -0
  108. package/dist/cjs/components/icons/SuiIcon.js +41 -0
  109. package/dist/cjs/components/icons/SuiIcon.js.map +7 -0
  110. package/dist/cjs/constants/walletMutationKeys.d.ts +12 -0
  111. package/dist/cjs/constants/walletMutationKeys.js +40 -0
  112. package/dist/cjs/constants/walletMutationKeys.js.map +7 -0
  113. package/dist/cjs/contexts/walletContext.d.ts +12 -0
  114. package/dist/cjs/contexts/walletContext.js +28 -0
  115. package/dist/cjs/contexts/walletContext.js.map +7 -0
  116. package/dist/cjs/errors/walletErrors.d.ts +22 -0
  117. package/dist/cjs/errors/walletErrors.js +37 -0
  118. package/dist/cjs/errors/walletErrors.js.map +7 -0
  119. package/dist/cjs/hooks/useSuiClient.d.ts +2 -0
  120. package/dist/cjs/hooks/useSuiClient.js +51 -0
  121. package/dist/cjs/hooks/useSuiClient.js.map +7 -0
  122. package/dist/cjs/hooks/useSuiClientInfiniteQuery.d.ts +25 -0
  123. package/dist/cjs/hooks/useSuiClientInfiniteQuery.js +66 -0
  124. package/dist/cjs/hooks/useSuiClientInfiniteQuery.js.map +7 -0
  125. package/dist/cjs/hooks/useSuiClientMutation.d.ts +4 -0
  126. package/dist/cjs/hooks/useSuiClientMutation.js +61 -0
  127. package/dist/cjs/hooks/useSuiClientMutation.js.map +7 -0
  128. package/dist/cjs/hooks/useSuiClientQuery.d.ts +18 -0
  129. package/dist/cjs/hooks/useSuiClientQuery.js +64 -0
  130. package/dist/cjs/hooks/useSuiClientQuery.js.map +7 -0
  131. package/dist/cjs/hooks/wallet/useAccounts.d.ts +4 -0
  132. package/dist/cjs/hooks/wallet/useAccounts.js +50 -0
  133. package/dist/cjs/hooks/wallet/useAccounts.js.map +7 -0
  134. package/dist/cjs/hooks/wallet/useAutoConnectWallet.d.ts +1 -0
  135. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +124 -0
  136. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +7 -0
  137. package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +15 -0
  138. package/dist/cjs/hooks/wallet/useConnectWallet.js +90 -0
  139. package/dist/cjs/hooks/wallet/useConnectWallet.js.map +7 -0
  140. package/dist/cjs/hooks/wallet/useCurrentAccount.d.ts +4 -0
  141. package/dist/cjs/hooks/wallet/useCurrentAccount.js +50 -0
  142. package/dist/cjs/hooks/wallet/useCurrentAccount.js.map +7 -0
  143. package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +4 -0
  144. package/dist/cjs/hooks/wallet/useCurrentWallet.js +50 -0
  145. package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +7 -0
  146. package/dist/cjs/hooks/wallet/useDisconnectWallet.d.ts +7 -0
  147. package/dist/cjs/hooks/wallet/useDisconnectWallet.js +95 -0
  148. package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +7 -0
  149. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +13 -0
  150. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js +114 -0
  151. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +7 -0
  152. package/dist/cjs/hooks/wallet/useSignPersonalMessage.d.ts +13 -0
  153. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +114 -0
  154. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +7 -0
  155. package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +13 -0
  156. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js +114 -0
  157. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +7 -0
  158. package/dist/cjs/hooks/wallet/useSwitchAccount.d.ts +13 -0
  159. package/dist/cjs/hooks/wallet/useSwitchAccount.js +100 -0
  160. package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +7 -0
  161. package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.d.ts +1 -0
  162. package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js +181 -0
  163. package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js.map +7 -0
  164. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.d.ts +4 -0
  165. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +68 -0
  166. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +7 -0
  167. package/dist/cjs/hooks/wallet/useWalletStore.d.ts +2 -0
  168. package/dist/cjs/hooks/wallet/useWalletStore.js +43 -0
  169. package/dist/cjs/hooks/wallet/useWalletStore.js.map +7 -0
  170. package/dist/cjs/hooks/wallet/useWallets.d.ts +4 -0
  171. package/dist/cjs/hooks/wallet/useWallets.js +50 -0
  172. package/dist/cjs/hooks/wallet/useWallets.js.map +7 -0
  173. package/dist/cjs/hooks/wallet/useWalletsChanged.d.ts +5 -0
  174. package/dist/cjs/hooks/wallet/useWalletsChanged.js +85 -0
  175. package/dist/cjs/hooks/wallet/useWalletsChanged.js.map +7 -0
  176. package/dist/cjs/index.css +250 -0
  177. package/dist/cjs/index.css.map +7 -0
  178. package/dist/cjs/index.d.ts +18 -0
  179. package/dist/cjs/index.js +1152 -0
  180. package/dist/cjs/index.js.map +7 -0
  181. package/dist/cjs/package.json +5 -0
  182. package/dist/cjs/types/utilityTypes.d.ts +1 -0
  183. package/dist/cjs/types/utilityTypes.js +19 -0
  184. package/dist/cjs/types/utilityTypes.js.map +7 -0
  185. package/dist/cjs/types.d.ts +1 -0
  186. package/dist/cjs/types.js +19 -0
  187. package/dist/cjs/types.js.map +7 -0
  188. package/dist/cjs/utils/assertUnreachable.d.ts +4 -0
  189. package/dist/cjs/utils/assertUnreachable.js +29 -0
  190. package/dist/cjs/utils/assertUnreachable.js.map +7 -0
  191. package/dist/cjs/utils/walletUtils.d.ts +2 -0
  192. package/dist/cjs/utils/walletUtils.js +40 -0
  193. package/dist/cjs/utils/walletUtils.js.map +7 -0
  194. package/dist/cjs/walletStore.d.ts +35 -0
  195. package/dist/cjs/walletStore.js +100 -0
  196. package/dist/cjs/walletStore.js.map +7 -0
  197. package/dist/esm/components/AccountDropdownMenu.css +41 -0
  198. package/dist/esm/components/AccountDropdownMenu.css.css +41 -0
  199. package/dist/esm/components/AccountDropdownMenu.css.css.map +7 -0
  200. package/dist/esm/components/AccountDropdownMenu.css.d.ts +5 -0
  201. package/dist/esm/components/AccountDropdownMenu.css.js +14 -0
  202. package/dist/esm/components/AccountDropdownMenu.css.js.map +7 -0
  203. package/dist/esm/components/AccountDropdownMenu.css.map +7 -0
  204. package/dist/esm/components/AccountDropdownMenu.d.ts +6 -0
  205. package/dist/esm/components/AccountDropdownMenu.js +185 -0
  206. package/dist/esm/components/AccountDropdownMenu.js.map +7 -0
  207. package/dist/esm/components/ConnectButton.css +250 -0
  208. package/dist/esm/components/ConnectButton.css.map +7 -0
  209. package/dist/esm/components/ConnectButton.d.ts +6 -0
  210. package/dist/esm/components/ConnectButton.js +547 -0
  211. package/dist/esm/components/ConnectButton.js.map +7 -0
  212. package/dist/esm/components/SuiClientProvider.d.ts +26 -0
  213. package/dist/esm/components/SuiClientProvider.js +48 -0
  214. package/dist/esm/components/SuiClientProvider.js.map +7 -0
  215. package/dist/esm/components/WalletProvider.d.ts +20 -0
  216. package/dist/esm/components/WalletProvider.js +450 -0
  217. package/dist/esm/components/WalletProvider.js.map +7 -0
  218. package/dist/esm/components/connect-modal/ConnectModal.css +209 -0
  219. package/dist/esm/components/connect-modal/ConnectModal.css.css +109 -0
  220. package/dist/esm/components/connect-modal/ConnectModal.css.css.map +7 -0
  221. package/dist/esm/components/connect-modal/ConnectModal.css.d.ts +12 -0
  222. package/dist/esm/components/connect-modal/ConnectModal.css.js +28 -0
  223. package/dist/esm/components/connect-modal/ConnectModal.css.js.map +7 -0
  224. package/dist/esm/components/connect-modal/ConnectModal.css.map +7 -0
  225. package/dist/esm/components/connect-modal/ConnectModal.d.ts +6 -0
  226. package/dist/esm/components/connect-modal/ConnectModal.js +390 -0
  227. package/dist/esm/components/connect-modal/ConnectModal.js.map +7 -0
  228. package/dist/esm/components/connect-modal/InfoSection.css +7 -0
  229. package/dist/esm/components/connect-modal/InfoSection.css.css +7 -0
  230. package/dist/esm/components/connect-modal/InfoSection.css.css.map +7 -0
  231. package/dist/esm/components/connect-modal/InfoSection.css.d.ts +3 -0
  232. package/dist/esm/components/connect-modal/InfoSection.css.js +10 -0
  233. package/dist/esm/components/connect-modal/InfoSection.css.js.map +7 -0
  234. package/dist/esm/components/connect-modal/InfoSection.css.map +7 -0
  235. package/dist/esm/components/connect-modal/InfoSection.d.ts +6 -0
  236. package/dist/esm/components/connect-modal/InfoSection.js +17 -0
  237. package/dist/esm/components/connect-modal/InfoSection.js.map +7 -0
  238. package/dist/esm/components/connect-modal/views/ConnectionStatus.css +26 -0
  239. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css +26 -0
  240. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
  241. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
  242. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js +14 -0
  243. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
  244. package/dist/esm/components/connect-modal/views/ConnectionStatus.css.map +7 -0
  245. package/dist/esm/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
  246. package/dist/esm/components/connect-modal/views/ConnectionStatus.js +46 -0
  247. package/dist/esm/components/connect-modal/views/ConnectionStatus.js.map +7 -0
  248. package/dist/esm/components/connect-modal/views/GettingStarted.css +22 -0
  249. package/dist/esm/components/connect-modal/views/GettingStarted.css.css +15 -0
  250. package/dist/esm/components/connect-modal/views/GettingStarted.css.css.map +7 -0
  251. package/dist/esm/components/connect-modal/views/GettingStarted.css.d.ts +4 -0
  252. package/dist/esm/components/connect-modal/views/GettingStarted.css.js +12 -0
  253. package/dist/esm/components/connect-modal/views/GettingStarted.css.js.map +7 -0
  254. package/dist/esm/components/connect-modal/views/GettingStarted.css.map +7 -0
  255. package/dist/esm/components/connect-modal/views/GettingStarted.d.ts +1 -0
  256. package/dist/esm/components/connect-modal/views/GettingStarted.js +46 -0
  257. package/dist/esm/components/connect-modal/views/GettingStarted.js.map +7 -0
  258. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css +22 -0
  259. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css +15 -0
  260. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
  261. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.d.ts +3 -0
  262. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js +10 -0
  263. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
  264. package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
  265. package/dist/esm/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
  266. package/dist/esm/components/connect-modal/views/WhatIsAWallet.js +34 -0
  267. package/dist/esm/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
  268. package/dist/esm/components/connect-modal/wallet-list/WalletList.css +37 -0
  269. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css +7 -0
  270. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css.map +7 -0
  271. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.d.ts +1 -0
  272. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.js +6 -0
  273. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.js.map +7 -0
  274. package/dist/esm/components/connect-modal/wallet-list/WalletList.css.map +7 -0
  275. package/dist/esm/components/connect-modal/wallet-list/WalletList.d.ts +8 -0
  276. package/dist/esm/components/connect-modal/wallet-list/WalletList.js +90 -0
  277. package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +7 -0
  278. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css +30 -0
  279. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css +30 -0
  280. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css.map +7 -0
  281. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.d.ts +5 -0
  282. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js +14 -0
  283. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js.map +7 -0
  284. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.map +7 -0
  285. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.d.ts +9 -0
  286. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js +22 -0
  287. package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js.map +7 -0
  288. package/dist/esm/components/icons/BackIcon.d.ts +2 -0
  289. package/dist/esm/components/icons/BackIcon.js +15 -0
  290. package/dist/esm/components/icons/BackIcon.js.map +7 -0
  291. package/dist/esm/components/icons/CheckIcon.d.ts +2 -0
  292. package/dist/esm/components/icons/CheckIcon.js +15 -0
  293. package/dist/esm/components/icons/CheckIcon.js.map +7 -0
  294. package/dist/esm/components/icons/ChevronIcon.d.ts +2 -0
  295. package/dist/esm/components/icons/ChevronIcon.js +18 -0
  296. package/dist/esm/components/icons/ChevronIcon.js.map +7 -0
  297. package/dist/esm/components/icons/CloseIcon.d.ts +2 -0
  298. package/dist/esm/components/icons/CloseIcon.js +15 -0
  299. package/dist/esm/components/icons/CloseIcon.js.map +7 -0
  300. package/dist/esm/components/icons/SuiIcon.d.ts +2 -0
  301. package/dist/esm/components/icons/SuiIcon.js +20 -0
  302. package/dist/esm/components/icons/SuiIcon.js.map +7 -0
  303. package/dist/esm/constants/walletMutationKeys.d.ts +12 -0
  304. package/dist/esm/constants/walletMutationKeys.js +19 -0
  305. package/dist/esm/constants/walletMutationKeys.js.map +7 -0
  306. package/dist/esm/contexts/walletContext.d.ts +12 -0
  307. package/dist/esm/contexts/walletContext.js +7 -0
  308. package/dist/esm/contexts/walletContext.js.map +7 -0
  309. package/dist/esm/errors/walletErrors.d.ts +22 -0
  310. package/dist/esm/errors/walletErrors.js +16 -0
  311. package/dist/esm/errors/walletErrors.js.map +7 -0
  312. package/dist/esm/hooks/useSuiClient.d.ts +2 -0
  313. package/dist/esm/hooks/useSuiClient.js +30 -0
  314. package/dist/esm/hooks/useSuiClient.js.map +7 -0
  315. package/dist/esm/hooks/useSuiClientInfiniteQuery.d.ts +25 -0
  316. package/dist/esm/hooks/useSuiClientInfiniteQuery.js +45 -0
  317. package/dist/esm/hooks/useSuiClientInfiniteQuery.js.map +7 -0
  318. package/dist/esm/hooks/useSuiClientMutation.d.ts +4 -0
  319. package/dist/esm/hooks/useSuiClientMutation.js +40 -0
  320. package/dist/esm/hooks/useSuiClientMutation.js.map +7 -0
  321. package/dist/esm/hooks/useSuiClientQuery.d.ts +18 -0
  322. package/dist/esm/hooks/useSuiClientQuery.js +43 -0
  323. package/dist/esm/hooks/useSuiClientQuery.js.map +7 -0
  324. package/dist/esm/hooks/wallet/useAccounts.d.ts +4 -0
  325. package/dist/esm/hooks/wallet/useAccounts.js +27 -0
  326. package/dist/esm/hooks/wallet/useAccounts.js.map +7 -0
  327. package/dist/esm/hooks/wallet/useAutoConnectWallet.d.ts +1 -0
  328. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +103 -0
  329. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +7 -0
  330. package/dist/esm/hooks/wallet/useConnectWallet.d.ts +15 -0
  331. package/dist/esm/hooks/wallet/useConnectWallet.js +69 -0
  332. package/dist/esm/hooks/wallet/useConnectWallet.js.map +7 -0
  333. package/dist/esm/hooks/wallet/useCurrentAccount.d.ts +4 -0
  334. package/dist/esm/hooks/wallet/useCurrentAccount.js +27 -0
  335. package/dist/esm/hooks/wallet/useCurrentAccount.js.map +7 -0
  336. package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +4 -0
  337. package/dist/esm/hooks/wallet/useCurrentWallet.js +27 -0
  338. package/dist/esm/hooks/wallet/useCurrentWallet.js.map +7 -0
  339. package/dist/esm/hooks/wallet/useDisconnectWallet.d.ts +7 -0
  340. package/dist/esm/hooks/wallet/useDisconnectWallet.js +74 -0
  341. package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +7 -0
  342. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +13 -0
  343. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js +93 -0
  344. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +7 -0
  345. package/dist/esm/hooks/wallet/useSignPersonalMessage.d.ts +13 -0
  346. package/dist/esm/hooks/wallet/useSignPersonalMessage.js +93 -0
  347. package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +7 -0
  348. package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +13 -0
  349. package/dist/esm/hooks/wallet/useSignTransactionBlock.js +93 -0
  350. package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +7 -0
  351. package/dist/esm/hooks/wallet/useSwitchAccount.d.ts +13 -0
  352. package/dist/esm/hooks/wallet/useSwitchAccount.js +79 -0
  353. package/dist/esm/hooks/wallet/useSwitchAccount.js.map +7 -0
  354. package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.d.ts +1 -0
  355. package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js +161 -0
  356. package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js.map +7 -0
  357. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.d.ts +4 -0
  358. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +47 -0
  359. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +7 -0
  360. package/dist/esm/hooks/wallet/useWalletStore.d.ts +2 -0
  361. package/dist/esm/hooks/wallet/useWalletStore.js +22 -0
  362. package/dist/esm/hooks/wallet/useWalletStore.js.map +7 -0
  363. package/dist/esm/hooks/wallet/useWallets.d.ts +4 -0
  364. package/dist/esm/hooks/wallet/useWallets.js +27 -0
  365. package/dist/esm/hooks/wallet/useWallets.js.map +7 -0
  366. package/dist/esm/hooks/wallet/useWalletsChanged.d.ts +5 -0
  367. package/dist/esm/hooks/wallet/useWalletsChanged.js +64 -0
  368. package/dist/esm/hooks/wallet/useWalletsChanged.js.map +7 -0
  369. package/dist/esm/index.css +250 -0
  370. package/dist/esm/index.css.map +7 -0
  371. package/dist/esm/index.d.ts +18 -0
  372. package/dist/esm/index.js +1120 -0
  373. package/dist/esm/index.js.map +7 -0
  374. package/dist/esm/package.json +5 -0
  375. package/dist/esm/types/utilityTypes.d.ts +1 -0
  376. package/dist/esm/types/utilityTypes.js +1 -0
  377. package/dist/esm/types/utilityTypes.js.map +7 -0
  378. package/dist/esm/types.d.ts +1 -0
  379. package/dist/esm/types.js +1 -0
  380. package/dist/esm/types.js.map +7 -0
  381. package/dist/esm/utils/assertUnreachable.d.ts +4 -0
  382. package/dist/esm/utils/assertUnreachable.js +8 -0
  383. package/dist/esm/utils/assertUnreachable.js.map +7 -0
  384. package/dist/esm/utils/walletUtils.d.ts +2 -0
  385. package/dist/esm/utils/walletUtils.js +19 -0
  386. package/dist/esm/utils/walletUtils.js.map +7 -0
  387. package/dist/esm/walletStore.d.ts +35 -0
  388. package/dist/esm/walletStore.js +79 -0
  389. package/dist/esm/walletStore.js.map +7 -0
  390. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  391. package/dist/tsconfig.tsbuildinfo +1 -0
  392. package/package.json +95 -0
  393. package/src/components/AccountDropdownMenu.css.ts +48 -0
  394. package/src/components/AccountDropdownMenu.tsx +58 -0
  395. package/src/components/ConnectButton.tsx +21 -0
  396. package/src/components/SuiClientProvider.tsx +87 -0
  397. package/src/components/WalletProvider.tsx +93 -0
  398. package/src/components/connect-modal/ConnectModal.css.ts +135 -0
  399. package/src/components/connect-modal/ConnectModal.tsx +122 -0
  400. package/src/components/connect-modal/InfoSection.css.ts +14 -0
  401. package/src/components/connect-modal/InfoSection.tsx +18 -0
  402. package/src/components/connect-modal/views/ConnectionStatus.css.ts +32 -0
  403. package/src/components/connect-modal/views/ConnectionStatus.tsx +42 -0
  404. package/src/components/connect-modal/views/GettingStarted.css.ts +23 -0
  405. package/src/components/connect-modal/views/GettingStarted.tsx +33 -0
  406. package/src/components/connect-modal/views/WhatIsAWallet.css.ts +21 -0
  407. package/src/components/connect-modal/views/WhatIsAWallet.tsx +22 -0
  408. package/src/components/connect-modal/wallet-list/WalletList.css.ts +10 -0
  409. package/src/components/connect-modal/wallet-list/WalletList.tsx +41 -0
  410. package/src/components/connect-modal/wallet-list/WalletListItem.css.ts +36 -0
  411. package/src/components/connect-modal/wallet-list/WalletListItem.tsx +29 -0
  412. package/src/components/icons/BackIcon.tsx +15 -0
  413. package/src/components/icons/CheckIcon.tsx +15 -0
  414. package/src/components/icons/ChevronIcon.tsx +18 -0
  415. package/src/components/icons/CloseIcon.tsx +15 -0
  416. package/src/components/icons/SuiIcon.tsx +18 -0
  417. package/src/constants/walletMutationKeys.ts +20 -0
  418. package/src/contexts/walletContext.ts +8 -0
  419. package/src/errors/walletErrors.ts +24 -0
  420. package/src/hooks/useSuiClient.ts +22 -0
  421. package/src/hooks/useSuiClientInfiniteQuery.ts +63 -0
  422. package/src/hooks/useSuiClientMutation.ts +27 -0
  423. package/src/hooks/useSuiClientQuery.ts +58 -0
  424. package/src/hooks/wallet/useAccounts.ts +11 -0
  425. package/src/hooks/wallet/useAutoConnectWallet.ts +34 -0
  426. package/src/hooks/wallet/useConnectWallet.ts +64 -0
  427. package/src/hooks/wallet/useCurrentAccount.ts +11 -0
  428. package/src/hooks/wallet/useCurrentWallet.ts +11 -0
  429. package/src/hooks/wallet/useDisconnectWallet.ts +47 -0
  430. package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +82 -0
  431. package/src/hooks/wallet/useSignPersonalMessage.ts +79 -0
  432. package/src/hooks/wallet/useSignTransactionBlock.ts +79 -0
  433. package/src/hooks/wallet/useSwitchAccount.ts +59 -0
  434. package/src/hooks/wallet/useUnsafeBurnerWallet.ts +144 -0
  435. package/src/hooks/wallet/useWalletPropertiesChanged.ts +29 -0
  436. package/src/hooks/wallet/useWalletStore.ts +18 -0
  437. package/src/hooks/wallet/useWallets.ts +11 -0
  438. package/src/hooks/wallet/useWalletsChanged.ts +40 -0
  439. package/src/index.ts +21 -0
  440. package/src/types/utilityTypes.ts +4 -0
  441. package/src/types.ts +4 -0
  442. package/src/utils/assertUnreachable.ts +9 -0
  443. package/src/utils/walletUtils.ts +32 -0
  444. package/src/walletStore.ts +115 -0
@@ -0,0 +1,1120 @@
1
+ var __accessCheck = (obj, member, msg) => {
2
+ if (!member.has(obj))
3
+ throw TypeError("Cannot " + msg);
4
+ };
5
+ var __privateGet = (obj, member, getter) => {
6
+ __accessCheck(obj, member, "read from private field");
7
+ return getter ? getter.call(obj) : member.get(obj);
8
+ };
9
+ var __privateAdd = (obj, member, value) => {
10
+ if (member.has(obj))
11
+ throw TypeError("Cannot add the same private member more than once");
12
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
+ };
14
+
15
+ // src/hooks/useSuiClient.ts
16
+ import { useContext } from "react";
17
+
18
+ // src/components/SuiClientProvider.tsx
19
+ import { getFullnodeUrl, isSuiClient, SuiClient } from "@mysten/sui.js/client";
20
+ import { createContext, useMemo, useState } from "react";
21
+ import { jsx } from "react/jsx-runtime";
22
+ var SuiClientContext = createContext(null);
23
+ var DEFAULT_NETWORKS = {
24
+ localnet: { url: getFullnodeUrl("localnet") }
25
+ };
26
+ var DEFAULT_CREATE_CLIENT = function createClient(_name, config) {
27
+ if (isSuiClient(config)) {
28
+ return config;
29
+ }
30
+ return new SuiClient(config);
31
+ };
32
+ function SuiClientProvider(props) {
33
+ const { onNetworkChange, network, children } = props;
34
+ const networks = props.networks ?? DEFAULT_NETWORKS;
35
+ const createClient2 = props.createClient ?? DEFAULT_CREATE_CLIENT;
36
+ const [selectedNetwork, setSelectedNetwork] = useState(
37
+ props.network ?? props.defaultNetwork ?? Object.keys(networks)[0]
38
+ );
39
+ const currentNetwork = props.network ?? selectedNetwork;
40
+ const client = useMemo(() => {
41
+ return createClient2(currentNetwork, networks[currentNetwork]);
42
+ }, [createClient2, currentNetwork, networks]);
43
+ const ctx = useMemo(() => {
44
+ return {
45
+ client,
46
+ networks,
47
+ network: currentNetwork,
48
+ selectNetwork: (newNetwork) => {
49
+ if (currentNetwork === newNetwork) {
50
+ return;
51
+ }
52
+ if (!network && newNetwork !== selectedNetwork) {
53
+ setSelectedNetwork(newNetwork);
54
+ }
55
+ onNetworkChange?.(newNetwork);
56
+ }
57
+ };
58
+ }, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);
59
+ return /* @__PURE__ */ jsx(SuiClientContext.Provider, { value: ctx, children });
60
+ }
61
+
62
+ // src/hooks/useSuiClient.ts
63
+ function useSuiClientContext() {
64
+ const suiClient = useContext(SuiClientContext);
65
+ if (!suiClient) {
66
+ throw new Error(
67
+ "Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider"
68
+ );
69
+ }
70
+ return suiClient;
71
+ }
72
+ function useSuiClient() {
73
+ return useSuiClientContext().client;
74
+ }
75
+
76
+ // src/hooks/wallet/useWalletStore.ts
77
+ import { useContext as useContext2 } from "react";
78
+ import { useStore } from "zustand";
79
+
80
+ // src/contexts/walletContext.ts
81
+ import { createContext as createContext2 } from "react";
82
+ var WalletContext = createContext2(null);
83
+
84
+ // src/hooks/wallet/useWalletStore.ts
85
+ function useWalletStore(selector) {
86
+ const store = useContext2(WalletContext);
87
+ if (!store) {
88
+ throw new Error(
89
+ "Could not find WalletContext. Ensure that you have set up the WalletProvider."
90
+ );
91
+ }
92
+ return useStore(store, selector);
93
+ }
94
+
95
+ // src/hooks/wallet/useCurrentAccount.ts
96
+ function useCurrentAccount() {
97
+ return useWalletStore((state) => state.currentAccount);
98
+ }
99
+
100
+ // src/components/AccountDropdownMenu.tsx
101
+ import { formatAddress } from "@mysten/sui.js/utils";
102
+ import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
103
+
104
+ // src/hooks/wallet/useAccounts.ts
105
+ function useAccounts() {
106
+ return useWalletStore((state) => state.accounts);
107
+ }
108
+
109
+ // src/hooks/wallet/useDisconnectWallet.ts
110
+ import { useMutation } from "@tanstack/react-query";
111
+
112
+ // src/constants/walletMutationKeys.ts
113
+ var walletMutationKeys = {
114
+ all: { baseScope: "wallet" },
115
+ connectWallet: formMutationKeyFn("connect-wallet"),
116
+ disconnectWallet: formMutationKeyFn("disconnect-wallet"),
117
+ signPersonalMessage: formMutationKeyFn("sign-personal-message"),
118
+ signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
119
+ signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
120
+ switchAccount: formMutationKeyFn("switch-account")
121
+ };
122
+ function formMutationKeyFn(baseEntity) {
123
+ return function mutationKeyFn(additionalKeys = []) {
124
+ return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];
125
+ };
126
+ }
127
+
128
+ // src/errors/walletErrors.ts
129
+ var WalletNotConnectedError = class extends Error {
130
+ };
131
+ var WalletNoAccountSelectedError = class extends Error {
132
+ };
133
+ var WalletFeatureNotSupportedError = class extends Error {
134
+ };
135
+ var WalletAccountNotFoundError = class extends Error {
136
+ };
137
+
138
+ // src/hooks/wallet/useCurrentWallet.ts
139
+ function useCurrentWallet() {
140
+ return useWalletStore((state) => state.currentWallet);
141
+ }
142
+
143
+ // src/hooks/wallet/useDisconnectWallet.ts
144
+ function useDisconnectWallet({
145
+ mutationKey,
146
+ ...mutationOptions
147
+ } = {}) {
148
+ const currentWallet = useCurrentWallet();
149
+ const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);
150
+ return useMutation({
151
+ mutationKey: walletMutationKeys.disconnectWallet(mutationKey),
152
+ mutationFn: async () => {
153
+ if (!currentWallet) {
154
+ throw new WalletNotConnectedError("No wallet is connected.");
155
+ }
156
+ try {
157
+ await currentWallet.features["standard:disconnect"]?.disconnect();
158
+ } catch (error) {
159
+ console.error("Failed to disconnect the application from the current wallet.", error);
160
+ }
161
+ setWalletDisconnected();
162
+ },
163
+ ...mutationOptions
164
+ });
165
+ }
166
+
167
+ // src/hooks/wallet/useSwitchAccount.ts
168
+ import { useMutation as useMutation2 } from "@tanstack/react-query";
169
+ function useSwitchAccount({
170
+ mutationKey,
171
+ ...mutationOptions
172
+ } = {}) {
173
+ const currentWallet = useCurrentWallet();
174
+ const setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);
175
+ return useMutation2({
176
+ mutationKey: walletMutationKeys.switchAccount(mutationKey),
177
+ mutationFn: async ({ account }) => {
178
+ if (!currentWallet) {
179
+ throw new WalletNotConnectedError("No wallet is connected.");
180
+ }
181
+ const accountToSelect = currentWallet.accounts.find(
182
+ (walletAccount) => walletAccount.address === account.address
183
+ );
184
+ if (!accountToSelect) {
185
+ throw new WalletAccountNotFoundError(
186
+ `No account with address ${account.address} is connected to ${currentWallet.name}.`
187
+ );
188
+ }
189
+ setAccountSwitched(accountToSelect);
190
+ },
191
+ ...mutationOptions
192
+ });
193
+ }
194
+
195
+ // src/components/AccountDropdownMenu.css.ts
196
+ var disconnectButton = "AccountDropdownMenu_disconnectButton__div2ql3";
197
+ var menuContent = "AccountDropdownMenu_menuContent__div2ql1";
198
+ var separator = "AccountDropdownMenu_separator__div2ql4";
199
+ var switchAccountButton = "AccountDropdownMenu_switchAccountButton__div2ql2";
200
+ var triggerButton = "AccountDropdownMenu_triggerButton__div2ql0";
201
+
202
+ // src/components/icons/CheckIcon.tsx
203
+ import { jsx as jsx2 } from "react/jsx-runtime";
204
+ function CheckIcon(props) {
205
+ return /* @__PURE__ */ jsx2("svg", { xmlns: "http://www.w3.org/2000/svg", width: 16, height: 16, fill: "none", ...props, children: /* @__PURE__ */ jsx2(
206
+ "path",
207
+ {
208
+ fill: "#007195",
209
+ d: "m11.726 5.048-4.73 5.156-1.722-1.879a.72.72 0 0 0-.529-.23.722.722 0 0 0-.525.24.858.858 0 0 0-.22.573.86.86 0 0 0 .211.576l2.255 2.458c.14.153.332.24.53.24.2 0 .391-.087.532-.24l5.261-5.735A.86.86 0 0 0 13 5.63a.858.858 0 0 0-.22-.572.722.722 0 0 0-.525-.24.72.72 0 0 0-.529.23Z"
210
+ }
211
+ ) });
212
+ }
213
+
214
+ // src/components/icons/ChevronIcon.tsx
215
+ import { jsx as jsx3 } from "react/jsx-runtime";
216
+ function ChevronIcon(props) {
217
+ return /* @__PURE__ */ jsx3("svg", { xmlns: "http://www.w3.org/2000/svg", width: 16, height: 16, fill: "none", ...props, children: /* @__PURE__ */ jsx3(
218
+ "path",
219
+ {
220
+ stroke: "#A0B6C3",
221
+ strokeLinecap: "round",
222
+ strokeLinejoin: "round",
223
+ strokeWidth: 1.5,
224
+ d: "m4 6 4 4 4-4"
225
+ }
226
+ ) });
227
+ }
228
+
229
+ // src/components/AccountDropdownMenu.tsx
230
+ import { jsx as jsx4, jsxs } from "react/jsx-runtime";
231
+ function AccountDropdownMenu({ currentAccount }) {
232
+ const { mutate: disconnectWallet } = useDisconnectWallet();
233
+ const { mutate: switchAccount } = useSwitchAccount();
234
+ const accounts = useAccounts();
235
+ return /* @__PURE__ */ jsxs(DropdownMenu.Root, { modal: false, children: [
236
+ /* @__PURE__ */ jsxs(DropdownMenu.Trigger, { className: triggerButton, children: [
237
+ formatAddress(currentAccount.address),
238
+ /* @__PURE__ */ jsx4(ChevronIcon, {})
239
+ ] }),
240
+ /* @__PURE__ */ jsx4(DropdownMenu.Portal, { children: /* @__PURE__ */ jsxs(DropdownMenu.Content, { className: menuContent, children: [
241
+ accounts.map((account) => /* @__PURE__ */ jsx4(DropdownMenu.Item, { asChild: true, children: /* @__PURE__ */ jsxs(
242
+ "button",
243
+ {
244
+ type: "button",
245
+ className: switchAccountButton,
246
+ onClick: () => switchAccount({ account }),
247
+ children: [
248
+ formatAddress(account.address),
249
+ currentAccount.address === account.address ? /* @__PURE__ */ jsx4(CheckIcon, {}) : null
250
+ ]
251
+ }
252
+ ) }, account.address)),
253
+ /* @__PURE__ */ jsx4(DropdownMenu.Separator, { className: separator }),
254
+ /* @__PURE__ */ jsx4(DropdownMenu.Item, { asChild: true, children: /* @__PURE__ */ jsx4(
255
+ "button",
256
+ {
257
+ className: disconnectButton,
258
+ type: "button",
259
+ onClick: () => disconnectWallet(),
260
+ children: "Disconnect"
261
+ }
262
+ ) })
263
+ ] }) })
264
+ ] });
265
+ }
266
+
267
+ // src/components/connect-modal/ConnectModal.tsx
268
+ import * as Dialog from "@radix-ui/react-dialog";
269
+ import clsx3 from "clsx";
270
+ import { useState as useState2 } from "react";
271
+
272
+ // src/hooks/wallet/useConnectWallet.ts
273
+ import { useMutation as useMutation3 } from "@tanstack/react-query";
274
+ function useConnectWallet({
275
+ mutationKey,
276
+ ...mutationOptions
277
+ } = {}) {
278
+ const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
279
+ return useMutation3({
280
+ mutationKey: walletMutationKeys.connectWallet(mutationKey),
281
+ mutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {
282
+ const connectResult = await wallet.features["standard:connect"].connect(standardConnectInput);
283
+ const selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);
284
+ setWalletConnected(wallet, selectedAccount);
285
+ return connectResult;
286
+ },
287
+ ...mutationOptions
288
+ });
289
+ }
290
+ function getSelectedAccount(connectedAccounts, accountAddress) {
291
+ if (connectedAccounts.length === 0) {
292
+ return null;
293
+ }
294
+ if (accountAddress) {
295
+ const selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);
296
+ return selectedAccount ?? connectedAccounts[0];
297
+ }
298
+ return connectedAccounts[0];
299
+ }
300
+
301
+ // src/components/icons/BackIcon.tsx
302
+ import { jsx as jsx5 } from "react/jsx-runtime";
303
+ function BackIcon(props) {
304
+ return /* @__PURE__ */ jsx5("svg", { width: 24, height: 24, fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: /* @__PURE__ */ jsx5(
305
+ "path",
306
+ {
307
+ d: "M7.57 12.262c0 .341.13.629.403.895l5.175 5.059c.204.205.45.307.751.307.609 0 1.101-.485 1.101-1.087 0-.293-.123-.574-.349-.8L10.14 12.27l4.511-4.375A1.13 1.13 0 0 0 15 7.087C15 6.485 14.508 6 13.9 6c-.295 0-.54.103-.752.308l-5.175 5.058c-.28.28-.404.56-.404.896Z",
308
+ fill: "#383F47"
309
+ }
310
+ ) });
311
+ }
312
+
313
+ // src/components/icons/CloseIcon.tsx
314
+ import { jsx as jsx6 } from "react/jsx-runtime";
315
+ function CloseIcon(props) {
316
+ return /* @__PURE__ */ jsx6("svg", { width: 10, height: 10, fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: /* @__PURE__ */ jsx6(
317
+ "path",
318
+ {
319
+ d: "M9.708.292a.999.999 0 0 0-1.413 0l-3.289 3.29L1.717.291A.999.999 0 0 0 .305 1.705l3.289 3.289-3.29 3.289a.999.999 0 1 0 1.413 1.412l3.29-3.289 3.288 3.29a.999.999 0 0 0 1.413-1.413l-3.29-3.29 3.29-3.288a.999.999 0 0 0 0-1.413Z",
320
+ fill: "currentColor"
321
+ }
322
+ ) });
323
+ }
324
+
325
+ // src/components/connect-modal/ConnectModal.css.ts
326
+ var backButton = "ConnectModal_backButton__gz8z97";
327
+ var closeButton = "ConnectModal_closeButton__gz8z98";
328
+ var content = "ConnectModal_content__gz8z92";
329
+ var overlay = "ConnectModal_overlay__gz8z90";
330
+ var selectedViewContainer = "ConnectModal_selectedViewContainer__gz8z95";
331
+ var title = "ConnectModal_title__gz8z91";
332
+ var triggerButton2 = "ConnectModal_triggerButton__gz8z96";
333
+ var viewContainer = "ConnectModal_viewContainer__gz8z94";
334
+ var walletListContainer = "ConnectModal_walletListContainer__gz8z9a";
335
+ var walletListContainerWithViewSelected = "ConnectModal_walletListContainerWithViewSelected__gz8z9b";
336
+ var walletListContent = "ConnectModal_walletListContent__gz8z99";
337
+ var whatIsAWalletButton = "ConnectModal_whatIsAWalletButton__gz8z93";
338
+
339
+ // src/components/connect-modal/views/ConnectionStatus.tsx
340
+ import clsx from "clsx";
341
+
342
+ // src/components/connect-modal/views/ConnectionStatus.css.ts
343
+ var connectionStatus = "ConnectionStatus_connectionStatus__nckm2d3";
344
+ var connectionStatusWithError = "ConnectionStatus_connectionStatusWithError__nckm2d4";
345
+ var container = "ConnectionStatus_container__nckm2d0";
346
+ var walletIcon = "ConnectionStatus_walletIcon__nckm2d1";
347
+ var walletName = "ConnectionStatus_walletName__nckm2d2";
348
+
349
+ // src/components/connect-modal/views/ConnectionStatus.tsx
350
+ import { jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
351
+ function ConnectionStatus({
352
+ selectedWallet,
353
+ hadConnectionError,
354
+ onRetryConnection
355
+ }) {
356
+ return /* @__PURE__ */ jsxs2("div", { className: container, children: [
357
+ /* @__PURE__ */ jsx7(
358
+ "img",
359
+ {
360
+ className: walletIcon,
361
+ src: selectedWallet.icon,
362
+ alt: `${selectedWallet.name} logo`
363
+ }
364
+ ),
365
+ /* @__PURE__ */ jsxs2("div", { className: walletName, children: [
366
+ "Opening ",
367
+ selectedWallet.name
368
+ ] }),
369
+ /* @__PURE__ */ jsx7(
370
+ "div",
371
+ {
372
+ className: clsx(connectionStatus, {
373
+ [connectionStatusWithError]: hadConnectionError
374
+ }),
375
+ children: hadConnectionError ? "Connection failed" : "Confirm connection in the wallet..."
376
+ }
377
+ ),
378
+ hadConnectionError ? /* @__PURE__ */ jsx7("button", { type: "button", onClick: () => onRetryConnection(selectedWallet), children: "Retry Connection" }) : null
379
+ ] });
380
+ }
381
+
382
+ // src/components/connect-modal/InfoSection.css.ts
383
+ var container2 = "InfoSection_container__1wtioi70";
384
+ var description = "InfoSection_description__1wtioi72";
385
+ var heading = "InfoSection_heading__1wtioi71";
386
+
387
+ // src/components/connect-modal/InfoSection.tsx
388
+ import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
389
+ function InfoSection({ title: title4, children }) {
390
+ return /* @__PURE__ */ jsxs3("section", { className: container2, children: [
391
+ /* @__PURE__ */ jsx8("h3", { className: heading, children: title4 }),
392
+ /* @__PURE__ */ jsx8("div", { className: description, children })
393
+ ] });
394
+ }
395
+
396
+ // src/components/connect-modal/views/GettingStarted.css.ts
397
+ var container3 = "GettingStarted_container__1fp07e10";
398
+ var content2 = "GettingStarted_content__1fp07e12";
399
+ var installLink = "GettingStarted_installLink__1fp07e13";
400
+ var title2 = "GettingStarted_title__1fp07e11";
401
+
402
+ // src/components/connect-modal/views/GettingStarted.tsx
403
+ import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
404
+ function GettingStarted() {
405
+ return /* @__PURE__ */ jsxs4("div", { className: container3, children: [
406
+ /* @__PURE__ */ jsx9("h2", { className: title2, children: "Get Started with Sui" }),
407
+ /* @__PURE__ */ jsxs4("div", { className: content2, children: [
408
+ /* @__PURE__ */ jsx9(InfoSection, { title: "Install the Sui Wallet Extension", children: "We recommend pinning Sui Wallet to your taskbar for quicker access." }),
409
+ /* @__PURE__ */ jsx9(InfoSection, { title: "Create or Import a Wallet", children: "Be sure to back up your wallet using a secure method. Never share your secret phrase with anyone." }),
410
+ /* @__PURE__ */ jsx9(InfoSection, { title: "Refresh Your Browser", children: "Once you set up your wallet, refresh this window browser to load up the extension." }),
411
+ /* @__PURE__ */ jsx9(
412
+ "a",
413
+ {
414
+ className: installLink,
415
+ href: "https://chrome.google.com/webstore/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil",
416
+ target: "_blank",
417
+ rel: "noreferrer",
418
+ children: "Install Wallet Extension"
419
+ }
420
+ )
421
+ ] })
422
+ ] });
423
+ }
424
+
425
+ // src/components/connect-modal/views/WhatIsAWallet.css.ts
426
+ var container4 = "WhatIsAWallet_container__1ktpkq90";
427
+ var content3 = "WhatIsAWallet_content__1ktpkq92";
428
+ var title3 = "WhatIsAWallet_title__1ktpkq91";
429
+
430
+ // src/components/connect-modal/views/WhatIsAWallet.tsx
431
+ import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
432
+ function WhatIsAWallet() {
433
+ return /* @__PURE__ */ jsxs5("div", { className: container4, children: [
434
+ /* @__PURE__ */ jsx10("h2", { className: title3, children: "What is a Wallet" }),
435
+ /* @__PURE__ */ jsxs5("div", { className: content3, children: [
436
+ /* @__PURE__ */ jsx10(InfoSection, { title: "Easy Login", children: "No need to create new accounts and passwords for every website. Just connect your wallet and get going." }),
437
+ /* @__PURE__ */ jsx10(InfoSection, { title: "Store your Digital Assets", children: "Send, receive, store, and display your digital assets like NFTs & coins." })
438
+ ] })
439
+ ] });
440
+ }
441
+
442
+ // src/hooks/wallet/useWallets.ts
443
+ function useWallets() {
444
+ return useWalletStore((state) => state.wallets);
445
+ }
446
+
447
+ // src/components/icons/SuiIcon.tsx
448
+ import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
449
+ function SuiIcon(props) {
450
+ return /* @__PURE__ */ jsxs6("svg", { width: 28, height: 28, fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
451
+ /* @__PURE__ */ jsx11("rect", { width: 28, height: 28, rx: 6, fill: "#6FBCF0" }),
452
+ /* @__PURE__ */ jsx11(
453
+ "path",
454
+ {
455
+ fillRule: "evenodd",
456
+ clipRule: "evenodd",
457
+ d: "M7.942 20.527A6.875 6.875 0 0 0 13.957 24c2.51 0 4.759-1.298 6.015-3.473a6.875 6.875 0 0 0 0-6.945l-5.29-9.164a.837.837 0 0 0-1.45 0l-5.29 9.164a6.875 6.875 0 0 0 0 6.945Zm4.524-11.75 1.128-1.953a.418.418 0 0 1 .725 0l4.34 7.516a5.365 5.365 0 0 1 .449 4.442 4.675 4.675 0 0 0-.223-.73c-.599-1.512-1.954-2.68-4.029-3.47-1.426-.54-2.336-1.336-2.706-2.364-.476-1.326.021-2.77.316-3.44Zm-1.923 3.332L9.255 14.34a5.373 5.373 0 0 0 0 5.43 5.373 5.373 0 0 0 4.702 2.714 5.38 5.38 0 0 0 3.472-1.247c.125-.314.51-1.462.034-2.646-.44-1.093-1.5-1.965-3.15-2.594-1.864-.707-3.076-1.811-3.6-3.28a4.601 4.601 0 0 1-.17-.608Z",
458
+ fill: "#fff"
459
+ }
460
+ )
461
+ ] });
462
+ }
463
+
464
+ // src/components/connect-modal/wallet-list/WalletList.css.ts
465
+ var container5 = "WalletList_container__1v2s6cz0";
466
+
467
+ // src/components/connect-modal/wallet-list/WalletListItem.tsx
468
+ import { clsx as clsx2 } from "clsx";
469
+
470
+ // src/components/connect-modal/wallet-list/WalletListItem.css.ts
471
+ var buttonContainer = "WalletListItem_buttonContainer__1dqqtqs2";
472
+ var container6 = "WalletListItem_container__1dqqtqs0";
473
+ var selectedContainer = "WalletListItem_selectedContainer__1dqqtqs1";
474
+ var walletIcon2 = "WalletListItem_walletIcon__1dqqtqs4";
475
+ var walletName2 = "WalletListItem_walletName__1dqqtqs3";
476
+
477
+ // src/components/connect-modal/wallet-list/WalletListItem.tsx
478
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
479
+ function WalletListItem({ name, icon, onClick, isSelected = false }) {
480
+ return /* @__PURE__ */ jsx12("li", { className: clsx2(container6, { [selectedContainer]: isSelected }), children: /* @__PURE__ */ jsxs7("button", { className: buttonContainer, type: "button", onClick, children: [
481
+ typeof icon === "string" ? /* @__PURE__ */ jsx12("img", { className: walletIcon2, src: icon, alt: `${name} logo` }) : icon,
482
+ /* @__PURE__ */ jsx12("div", { className: walletName2, children: name })
483
+ ] }) });
484
+ }
485
+
486
+ // src/components/connect-modal/wallet-list/WalletList.tsx
487
+ import { jsx as jsx13 } from "react/jsx-runtime";
488
+ function WalletList({ selectedWalletName, onPlaceholderClick, onSelect }) {
489
+ const wallets = useWallets();
490
+ return /* @__PURE__ */ jsx13("ul", { className: container5, children: wallets.length > 0 ? wallets.map((wallet) => /* @__PURE__ */ jsx13(
491
+ WalletListItem,
492
+ {
493
+ name: wallet.name,
494
+ icon: wallet.icon,
495
+ isSelected: wallet.name === selectedWalletName,
496
+ onClick: () => onSelect(wallet)
497
+ },
498
+ wallet.name
499
+ )) : /* @__PURE__ */ jsx13(
500
+ WalletListItem,
501
+ {
502
+ name: "Sui Wallet",
503
+ icon: /* @__PURE__ */ jsx13(SuiIcon, {}),
504
+ onClick: onPlaceholderClick,
505
+ isSelected: true
506
+ }
507
+ ) });
508
+ }
509
+
510
+ // src/components/connect-modal/ConnectModal.tsx
511
+ import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
512
+ function ConnectModal({ trigger }) {
513
+ const [isConnectModalOpen, setConnectModalOpen] = useState2(false);
514
+ const [currentView, setCurrentView] = useState2();
515
+ const [selectedWallet, setSelectedWallet] = useState2();
516
+ const { mutate, isError } = useConnectWallet();
517
+ const connectWallet = (wallet) => {
518
+ setCurrentView("connection-status");
519
+ mutate({ wallet }, { onSuccess: () => setConnectModalOpen(false) });
520
+ };
521
+ const resetSelection = () => {
522
+ setSelectedWallet(void 0);
523
+ setCurrentView(void 0);
524
+ };
525
+ const onOpenChange = (open) => {
526
+ if (!open) {
527
+ resetSelection();
528
+ }
529
+ setConnectModalOpen(open);
530
+ };
531
+ let modalContent;
532
+ switch (currentView) {
533
+ case "what-is-a-wallet":
534
+ modalContent = /* @__PURE__ */ jsx14(WhatIsAWallet, {});
535
+ break;
536
+ case "getting-started":
537
+ modalContent = /* @__PURE__ */ jsx14(GettingStarted, {});
538
+ break;
539
+ case "connection-status":
540
+ modalContent = /* @__PURE__ */ jsx14(
541
+ ConnectionStatus,
542
+ {
543
+ selectedWallet,
544
+ hadConnectionError: isError,
545
+ onRetryConnection: connectWallet
546
+ }
547
+ );
548
+ break;
549
+ default:
550
+ modalContent = /* @__PURE__ */ jsx14(WhatIsAWallet, {});
551
+ }
552
+ return /* @__PURE__ */ jsxs8(Dialog.Root, { open: isConnectModalOpen, onOpenChange, children: [
553
+ /* @__PURE__ */ jsx14(Dialog.Trigger, { className: triggerButton2, children: trigger }),
554
+ /* @__PURE__ */ jsxs8(Dialog.Portal, { children: [
555
+ /* @__PURE__ */ jsx14(Dialog.Overlay, { className: overlay }),
556
+ /* @__PURE__ */ jsxs8(Dialog.Content, { className: content, "aria-describedby": void 0, children: [
557
+ /* @__PURE__ */ jsxs8(
558
+ "div",
559
+ {
560
+ className: clsx3(walletListContainer, {
561
+ [walletListContainerWithViewSelected]: !!currentView
562
+ }),
563
+ children: [
564
+ /* @__PURE__ */ jsxs8("div", { className: walletListContent, children: [
565
+ /* @__PURE__ */ jsx14(Dialog.Title, { className: title, children: "Connect a Wallet" }),
566
+ /* @__PURE__ */ jsx14(
567
+ WalletList,
568
+ {
569
+ selectedWalletName: selectedWallet?.name,
570
+ onPlaceholderClick: () => setCurrentView("getting-started"),
571
+ onSelect: (wallet) => {
572
+ setSelectedWallet(wallet);
573
+ connectWallet(wallet);
574
+ }
575
+ }
576
+ )
577
+ ] }),
578
+ /* @__PURE__ */ jsx14(
579
+ "button",
580
+ {
581
+ className: whatIsAWalletButton,
582
+ onClick: () => setCurrentView("what-is-a-wallet"),
583
+ type: "button",
584
+ children: "What is a Wallet?"
585
+ }
586
+ )
587
+ ]
588
+ }
589
+ ),
590
+ /* @__PURE__ */ jsxs8(
591
+ "div",
592
+ {
593
+ className: clsx3(viewContainer, {
594
+ [selectedViewContainer]: !!currentView
595
+ }),
596
+ children: [
597
+ /* @__PURE__ */ jsx14(
598
+ "button",
599
+ {
600
+ className: backButton,
601
+ onClick: () => resetSelection(),
602
+ type: "button",
603
+ "aria-label": "Back",
604
+ children: /* @__PURE__ */ jsx14(BackIcon, {})
605
+ }
606
+ ),
607
+ modalContent
608
+ ]
609
+ }
610
+ ),
611
+ /* @__PURE__ */ jsx14(Dialog.Close, { className: closeButton, "aria-label": "Close", children: /* @__PURE__ */ jsx14(CloseIcon, {}) })
612
+ ] })
613
+ ] })
614
+ ] });
615
+ }
616
+
617
+ // src/components/ConnectButton.tsx
618
+ import { jsx as jsx15 } from "react/jsx-runtime";
619
+ function ConnectButton({ connectText = "Connect Wallet" }) {
620
+ const currentAccount = useCurrentAccount();
621
+ return currentAccount ? /* @__PURE__ */ jsx15(AccountDropdownMenu, { currentAccount }) : /* @__PURE__ */ jsx15(ConnectModal, { trigger: connectText });
622
+ }
623
+
624
+ // src/components/WalletProvider.tsx
625
+ import { useRef } from "react";
626
+
627
+ // src/hooks/wallet/useAutoConnectWallet.ts
628
+ import { useEffect } from "react";
629
+ function useAutoConnectWallet(autoConnectEnabled) {
630
+ const { mutate: connectWallet } = useConnectWallet();
631
+ const wallets = useWallets();
632
+ const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);
633
+ const lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);
634
+ useEffect(() => {
635
+ if (!autoConnectEnabled || !lastConnectedWalletName)
636
+ return;
637
+ const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
638
+ if (wallet) {
639
+ connectWallet({
640
+ wallet,
641
+ accountAddress: lastConnectedAccountAddress || void 0,
642
+ silent: true
643
+ });
644
+ }
645
+ }, [
646
+ autoConnectEnabled,
647
+ connectWallet,
648
+ lastConnectedAccountAddress,
649
+ lastConnectedWalletName,
650
+ wallets
651
+ ]);
652
+ }
653
+
654
+ // src/hooks/wallet/useUnsafeBurnerWallet.ts
655
+ import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";
656
+ import { getWallets, ReadonlyWalletAccount, SUI_CHAINS } from "@mysten/wallet-standard";
657
+ import { useEffect as useEffect2 } from "react";
658
+ var WALLET_NAME = "Unsafe Burner Wallet";
659
+ function useUnsafeBurnerWallet(enabled) {
660
+ const suiClient = useSuiClient();
661
+ useEffect2(() => {
662
+ if (!enabled) {
663
+ return;
664
+ }
665
+ const unregister = registerUnsafeBurnerWallet(suiClient);
666
+ return unregister;
667
+ }, [enabled, suiClient]);
668
+ }
669
+ function registerUnsafeBurnerWallet(suiClient) {
670
+ var _on, _connect, _signPersonalMessage, _signTransactionBlock, _signAndExecuteTransactionBlock;
671
+ const walletsApi = getWallets();
672
+ const registeredWallets = walletsApi.get();
673
+ if (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {
674
+ console.warn(
675
+ "registerUnsafeBurnerWallet: Unsafe Burner Wallet already registered, skipping duplicate registration."
676
+ );
677
+ return;
678
+ }
679
+ console.warn(
680
+ "Your application is currently using the unsafe burner wallet. Make sure that this wallet is disabled in production."
681
+ );
682
+ const keypair = new Ed25519Keypair();
683
+ const account = new ReadonlyWalletAccount({
684
+ address: keypair.getPublicKey().toSuiAddress(),
685
+ publicKey: keypair.getPublicKey().toSuiBytes(),
686
+ chains: ["sui:unknown"],
687
+ features: ["sui:signAndExecuteTransactionBlock", "sui:signTransactionBlock"]
688
+ });
689
+ class UnsafeBurnerWallet {
690
+ constructor() {
691
+ __privateAdd(this, _on, () => {
692
+ return () => {
693
+ };
694
+ });
695
+ __privateAdd(this, _connect, async () => {
696
+ return { accounts: this.accounts };
697
+ });
698
+ __privateAdd(this, _signPersonalMessage, async (messageInput) => {
699
+ const { bytes, signature } = await keypair.signPersonalMessage(messageInput.message);
700
+ return { bytes, signature };
701
+ });
702
+ __privateAdd(this, _signTransactionBlock, async (transactionInput) => {
703
+ const { bytes, signature } = await transactionInput.transactionBlock.sign({
704
+ client: suiClient,
705
+ signer: keypair
706
+ });
707
+ return {
708
+ transactionBlockBytes: bytes,
709
+ signature
710
+ };
711
+ });
712
+ __privateAdd(this, _signAndExecuteTransactionBlock, async (transactionInput) => {
713
+ return await suiClient.signAndExecuteTransactionBlock({
714
+ signer: keypair,
715
+ transactionBlock: transactionInput.transactionBlock,
716
+ options: transactionInput.options,
717
+ requestType: transactionInput.requestType
718
+ });
719
+ });
720
+ }
721
+ get version() {
722
+ return "1.0.0";
723
+ }
724
+ get name() {
725
+ return WALLET_NAME;
726
+ }
727
+ get icon() {
728
+ return "data:image/png;base64,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";
729
+ }
730
+ // Return the Sui chains that your wallet supports.
731
+ get chains() {
732
+ return SUI_CHAINS;
733
+ }
734
+ get accounts() {
735
+ return [account];
736
+ }
737
+ get features() {
738
+ return {
739
+ "standard:connect": {
740
+ version: "1.0.0",
741
+ connect: __privateGet(this, _connect)
742
+ },
743
+ "standard:events": {
744
+ version: "1.0.0",
745
+ on: __privateGet(this, _on)
746
+ },
747
+ "sui:signPersonalMessage": {
748
+ version: "1.0.0",
749
+ signPersonalMessage: __privateGet(this, _signPersonalMessage)
750
+ },
751
+ "sui:signTransactionBlock": {
752
+ version: "1.0.0",
753
+ signTransactionBlock: __privateGet(this, _signTransactionBlock)
754
+ },
755
+ "sui:signAndExecuteTransactionBlock": {
756
+ version: "1.0.0",
757
+ signAndExecuteTransactionBlock: __privateGet(this, _signAndExecuteTransactionBlock)
758
+ }
759
+ };
760
+ }
761
+ }
762
+ _on = new WeakMap();
763
+ _connect = new WeakMap();
764
+ _signPersonalMessage = new WeakMap();
765
+ _signTransactionBlock = new WeakMap();
766
+ _signAndExecuteTransactionBlock = new WeakMap();
767
+ return walletsApi.register(new UnsafeBurnerWallet());
768
+ }
769
+
770
+ // src/hooks/wallet/useWalletPropertiesChanged.ts
771
+ import { useEffect as useEffect3 } from "react";
772
+ function useWalletPropertiesChanged() {
773
+ const currentWallet = useCurrentWallet();
774
+ const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);
775
+ useEffect3(() => {
776
+ const unsubscribeFromEvents = currentWallet?.features["standard:events"].on(
777
+ "change",
778
+ ({ accounts }) => {
779
+ if (accounts) {
780
+ updateWalletAccounts(accounts);
781
+ }
782
+ }
783
+ );
784
+ return unsubscribeFromEvents;
785
+ }, [currentWallet?.features, updateWalletAccounts]);
786
+ }
787
+
788
+ // src/hooks/wallet/useWalletsChanged.ts
789
+ import { getWallets as getWallets3 } from "@mysten/wallet-standard";
790
+ import { useEffect as useEffect4 } from "react";
791
+
792
+ // src/utils/walletUtils.ts
793
+ import { getWallets as getWallets2, isWalletWithRequiredFeatureSet } from "@mysten/wallet-standard";
794
+ function getRegisteredWallets(preferredWallets, requiredFeatures) {
795
+ const walletsApi = getWallets2();
796
+ const wallets = walletsApi.get();
797
+ const suiWallets = wallets.filter(
798
+ (wallet) => isWalletWithRequiredFeatureSet(wallet, requiredFeatures)
799
+ );
800
+ return [
801
+ // Preferred wallets, in order:
802
+ ...preferredWallets.map((name) => suiWallets.find((wallet) => wallet.name === name)).filter(Boolean),
803
+ // Wallets in default order:
804
+ ...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name))
805
+ ];
806
+ }
807
+
808
+ // src/hooks/wallet/useWalletsChanged.ts
809
+ function useWalletsChanged(preferredWallets, requiredFeatures) {
810
+ const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);
811
+ const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);
812
+ useEffect4(() => {
813
+ const walletsApi = getWallets3();
814
+ const unsubscribeFromRegister = walletsApi.on("register", () => {
815
+ setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
816
+ });
817
+ const unsubscribeFromUnregister = walletsApi.on("unregister", (unregisteredWallet) => {
818
+ setWalletUnregistered(
819
+ getRegisteredWallets(preferredWallets, requiredFeatures),
820
+ unregisteredWallet
821
+ );
822
+ });
823
+ return () => {
824
+ unsubscribeFromRegister();
825
+ unsubscribeFromUnregister();
826
+ };
827
+ }, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);
828
+ }
829
+
830
+ // src/walletStore.ts
831
+ import { createStore } from "zustand";
832
+ import { createJSONStorage, persist } from "zustand/middleware";
833
+ function createWalletStore({ wallets, storage, storageKey }) {
834
+ return createStore()(
835
+ persist(
836
+ (set, get) => ({
837
+ wallets,
838
+ accounts: [],
839
+ currentWallet: null,
840
+ currentAccount: null,
841
+ lastConnectedAccountAddress: null,
842
+ lastConnectedWalletName: null,
843
+ connectionStatus: "disconnected",
844
+ setWalletConnected(wallet, selectedAccount) {
845
+ set(() => ({
846
+ accounts: wallet.accounts,
847
+ currentWallet: wallet,
848
+ currentAccount: selectedAccount,
849
+ lastConnectedWalletName: wallet.name,
850
+ lastConnectedAccountAddress: selectedAccount?.address
851
+ }));
852
+ },
853
+ setWalletDisconnected() {
854
+ set(() => ({
855
+ accounts: [],
856
+ currentWallet: null,
857
+ currentAccount: null,
858
+ lastConnectedWalletName: null,
859
+ lastConnectedAccountAddress: null
860
+ }));
861
+ },
862
+ setAccountSwitched(selectedAccount) {
863
+ set(() => ({
864
+ currentAccount: selectedAccount,
865
+ lastConnectedAccountAddress: selectedAccount.address
866
+ }));
867
+ },
868
+ setWalletRegistered(updatedWallets) {
869
+ set(() => ({ wallets: updatedWallets }));
870
+ },
871
+ setWalletUnregistered(updatedWallets, unregisteredWallet) {
872
+ if (unregisteredWallet === get().currentWallet) {
873
+ set(() => ({
874
+ wallets: updatedWallets,
875
+ accounts: [],
876
+ currentWallet: null,
877
+ currentAccount: null,
878
+ lastConnectedWalletName: null,
879
+ lastConnectedAccountAddress: null
880
+ }));
881
+ } else {
882
+ set(() => ({ wallets: updatedWallets }));
883
+ }
884
+ },
885
+ updateWalletAccounts(accounts) {
886
+ const currentAccount = get().currentAccount;
887
+ const isCurrentAccountStillAuthorized = currentAccount ? accounts.some(({ address }) => address === currentAccount.address) : false;
888
+ set(() => ({
889
+ accounts,
890
+ currentAccount: isCurrentAccountStillAuthorized ? currentAccount : accounts[0]
891
+ }));
892
+ }
893
+ }),
894
+ {
895
+ name: storageKey,
896
+ storage: createJSONStorage(() => storage),
897
+ partialize: ({ lastConnectedWalletName, lastConnectedAccountAddress }) => ({
898
+ lastConnectedWalletName,
899
+ lastConnectedAccountAddress
900
+ })
901
+ }
902
+ )
903
+ );
904
+ }
905
+
906
+ // src/components/WalletProvider.tsx
907
+ import { jsx as jsx16 } from "react/jsx-runtime";
908
+ var SUI_WALLET_NAME = "Sui Wallet";
909
+ var DEFUALT_STORAGE_KEY = "sui-dapp-kit:wallet-connection-info";
910
+ function WalletProvider({
911
+ preferredWallets = [SUI_WALLET_NAME],
912
+ requiredFeatures = [],
913
+ storage = localStorage,
914
+ storageKey = DEFUALT_STORAGE_KEY,
915
+ enableUnsafeBurner = false,
916
+ autoConnect = false,
917
+ children
918
+ }) {
919
+ const storeRef = useRef(
920
+ createWalletStore({
921
+ wallets: getRegisteredWallets(preferredWallets, requiredFeatures),
922
+ storageKey,
923
+ storage
924
+ })
925
+ );
926
+ return /* @__PURE__ */ jsx16(WalletContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsx16(
927
+ WalletConnectionManager,
928
+ {
929
+ preferredWallets,
930
+ requiredFeatures,
931
+ enableUnsafeBurner,
932
+ autoConnect,
933
+ children
934
+ }
935
+ ) });
936
+ }
937
+ function WalletConnectionManager({
938
+ preferredWallets,
939
+ requiredFeatures,
940
+ enableUnsafeBurner,
941
+ autoConnect,
942
+ children
943
+ }) {
944
+ useWalletsChanged(preferredWallets, requiredFeatures);
945
+ useWalletPropertiesChanged();
946
+ useUnsafeBurnerWallet(enableUnsafeBurner);
947
+ useAutoConnectWallet(autoConnect);
948
+ return children;
949
+ }
950
+
951
+ // src/hooks/wallet/useSignPersonalMessage.ts
952
+ import { useMutation as useMutation4 } from "@tanstack/react-query";
953
+ function useSignPersonalMessage({
954
+ mutationKey,
955
+ ...mutationOptions
956
+ } = {}) {
957
+ const currentWallet = useCurrentWallet();
958
+ const currentAccount = useCurrentAccount();
959
+ return useMutation4({
960
+ mutationKey: walletMutationKeys.signPersonalMessage(mutationKey),
961
+ mutationFn: async (signPersonalMessageArgs) => {
962
+ if (!currentWallet) {
963
+ throw new WalletNotConnectedError("No wallet is connected.");
964
+ }
965
+ const signerAccount = signPersonalMessageArgs.account ?? currentAccount;
966
+ if (!signerAccount) {
967
+ throw new WalletNoAccountSelectedError(
968
+ "No wallet account is selected to sign the personal message with."
969
+ );
970
+ }
971
+ const walletFeature = currentWallet.features["sui:signPersonalMessage"];
972
+ if (!walletFeature) {
973
+ throw new WalletFeatureNotSupportedError(
974
+ "This wallet doesn't support the `signPersonalMessage` feature."
975
+ );
976
+ }
977
+ return await walletFeature.signPersonalMessage({
978
+ ...signPersonalMessageArgs,
979
+ account: signerAccount
980
+ });
981
+ },
982
+ ...mutationOptions
983
+ });
984
+ }
985
+
986
+ // src/hooks/wallet/useSignTransactionBlock.ts
987
+ import { useMutation as useMutation5 } from "@tanstack/react-query";
988
+ function useSignTransactionBlock({
989
+ mutationKey,
990
+ ...mutationOptions
991
+ } = {}) {
992
+ const currentWallet = useCurrentWallet();
993
+ const currentAccount = useCurrentAccount();
994
+ return useMutation5({
995
+ mutationKey: walletMutationKeys.signTransactionBlock(mutationKey),
996
+ mutationFn: async (signTransactionBlockArgs) => {
997
+ if (!currentWallet) {
998
+ throw new WalletNotConnectedError("No wallet is connected.");
999
+ }
1000
+ const signerAccount = signTransactionBlockArgs.account ?? currentAccount;
1001
+ if (!signerAccount) {
1002
+ throw new WalletNoAccountSelectedError(
1003
+ "No wallet account is selected to sign the personal message with."
1004
+ );
1005
+ }
1006
+ const walletFeature = currentWallet.features["sui:signTransactionBlock"];
1007
+ if (!walletFeature) {
1008
+ throw new WalletFeatureNotSupportedError(
1009
+ "This wallet doesn't support the `SignTransactionBlock` feature."
1010
+ );
1011
+ }
1012
+ return await walletFeature.signTransactionBlock({
1013
+ ...signTransactionBlockArgs,
1014
+ account: signerAccount
1015
+ });
1016
+ },
1017
+ ...mutationOptions
1018
+ });
1019
+ }
1020
+
1021
+ // src/hooks/wallet/useSignAndExecuteTransactionBlock.ts
1022
+ import { useMutation as useMutation6 } from "@tanstack/react-query";
1023
+ function useSignAndExecuteTransactionBlock({
1024
+ mutationKey,
1025
+ ...mutationOptions
1026
+ } = {}) {
1027
+ const currentWallet = useCurrentWallet();
1028
+ const currentAccount = useCurrentAccount();
1029
+ return useMutation6({
1030
+ mutationKey: walletMutationKeys.signAndExecuteTransactionBlock(mutationKey),
1031
+ mutationFn: async (signAndExecuteTransactionBlockArgs) => {
1032
+ if (!currentWallet) {
1033
+ throw new WalletNotConnectedError("No wallet is connected.");
1034
+ }
1035
+ const signerAccount = signAndExecuteTransactionBlockArgs.account ?? currentAccount;
1036
+ if (!signerAccount) {
1037
+ throw new WalletNoAccountSelectedError(
1038
+ "No wallet account is selected to sign the personal message with."
1039
+ );
1040
+ }
1041
+ const walletFeature = currentWallet.features["sui:signAndExecuteTransactionBlock"];
1042
+ if (!walletFeature) {
1043
+ throw new WalletFeatureNotSupportedError(
1044
+ "This wallet doesn't support the `signAndExecuteTransactionBlock` feature."
1045
+ );
1046
+ }
1047
+ return await walletFeature.signAndExecuteTransactionBlock({
1048
+ ...signAndExecuteTransactionBlockArgs,
1049
+ account: signerAccount
1050
+ });
1051
+ },
1052
+ ...mutationOptions
1053
+ });
1054
+ }
1055
+
1056
+ // src/hooks/useSuiClientMutation.ts
1057
+ import { useMutation as useMutation7 } from "@tanstack/react-query";
1058
+ function useSuiClientMutation(method, options = {}) {
1059
+ const suiContext = useSuiClientContext();
1060
+ return useMutation7({
1061
+ ...options,
1062
+ mutationFn: async (params) => {
1063
+ return await suiContext.client[method](params);
1064
+ }
1065
+ });
1066
+ }
1067
+
1068
+ // src/hooks/useSuiClientQuery.ts
1069
+ import { useQuery } from "@tanstack/react-query";
1070
+ function useSuiClientQuery(...args) {
1071
+ const [method, params, { queryKey = [], enabled = !!params, ...options } = {}] = args;
1072
+ const suiContext = useSuiClientContext();
1073
+ return useQuery({
1074
+ ...options,
1075
+ queryKey: [suiContext.network, method, params, ...queryKey],
1076
+ enabled,
1077
+ queryFn: async () => {
1078
+ return await suiContext.client[method](params);
1079
+ }
1080
+ });
1081
+ }
1082
+
1083
+ // src/hooks/useSuiClientInfiniteQuery.ts
1084
+ import { useInfiniteQuery } from "@tanstack/react-query";
1085
+ function useSuiClientInfiniteQuery(method, params, { queryKey = [], enabled = !!params, ...options } = {}) {
1086
+ const suiContext = useSuiClientContext();
1087
+ return useInfiniteQuery({
1088
+ ...options,
1089
+ queryKey: [suiContext.network, method, params, ...queryKey],
1090
+ enabled,
1091
+ queryFn: async () => {
1092
+ return await suiContext.client[method](params);
1093
+ },
1094
+ getNextPageParam: (lastPage) => {
1095
+ return lastPage.nextCursor ?? null;
1096
+ }
1097
+ });
1098
+ }
1099
+ export {
1100
+ ConnectButton,
1101
+ SuiClientContext,
1102
+ SuiClientProvider,
1103
+ WalletProvider,
1104
+ useAccounts,
1105
+ useConnectWallet,
1106
+ useCurrentAccount,
1107
+ useCurrentWallet,
1108
+ useDisconnectWallet,
1109
+ useSignAndExecuteTransactionBlock,
1110
+ useSignPersonalMessage,
1111
+ useSignTransactionBlock,
1112
+ useSuiClient,
1113
+ useSuiClientContext,
1114
+ useSuiClientInfiniteQuery,
1115
+ useSuiClientMutation,
1116
+ useSuiClientQuery,
1117
+ useSwitchAccount,
1118
+ useWallets
1119
+ };
1120
+ //# sourceMappingURL=index.js.map