@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,470 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __accessCheck = (obj, member, msg) => {
20
+ if (!member.has(obj))
21
+ throw TypeError("Cannot " + msg);
22
+ };
23
+ var __privateGet = (obj, member, getter) => {
24
+ __accessCheck(obj, member, "read from private field");
25
+ return getter ? getter.call(obj) : member.get(obj);
26
+ };
27
+ var __privateAdd = (obj, member, value) => {
28
+ if (member.has(obj))
29
+ throw TypeError("Cannot add the same private member more than once");
30
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
31
+ };
32
+
33
+ // src/components/WalletProvider.tsx
34
+ var WalletProvider_exports = {};
35
+ __export(WalletProvider_exports, {
36
+ WalletProvider: () => WalletProvider
37
+ });
38
+ module.exports = __toCommonJS(WalletProvider_exports);
39
+ var import_react9 = require("react");
40
+
41
+ // src/contexts/walletContext.ts
42
+ var import_react = require("react");
43
+ var WalletContext = (0, import_react.createContext)(null);
44
+
45
+ // src/hooks/wallet/useAutoConnectWallet.ts
46
+ var import_react3 = require("react");
47
+
48
+ // src/hooks/wallet/useConnectWallet.ts
49
+ var import_react_query = require("@tanstack/react-query");
50
+
51
+ // src/constants/walletMutationKeys.ts
52
+ var walletMutationKeys = {
53
+ all: { baseScope: "wallet" },
54
+ connectWallet: formMutationKeyFn("connect-wallet"),
55
+ disconnectWallet: formMutationKeyFn("disconnect-wallet"),
56
+ signPersonalMessage: formMutationKeyFn("sign-personal-message"),
57
+ signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
58
+ signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
59
+ switchAccount: formMutationKeyFn("switch-account")
60
+ };
61
+ function formMutationKeyFn(baseEntity) {
62
+ return function mutationKeyFn(additionalKeys = []) {
63
+ return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];
64
+ };
65
+ }
66
+
67
+ // src/hooks/wallet/useWalletStore.ts
68
+ var import_react2 = require("react");
69
+ var import_zustand = require("zustand");
70
+ function useWalletStore(selector) {
71
+ const store = (0, import_react2.useContext)(WalletContext);
72
+ if (!store) {
73
+ throw new Error(
74
+ "Could not find WalletContext. Ensure that you have set up the WalletProvider."
75
+ );
76
+ }
77
+ return (0, import_zustand.useStore)(store, selector);
78
+ }
79
+
80
+ // src/hooks/wallet/useConnectWallet.ts
81
+ function useConnectWallet({
82
+ mutationKey,
83
+ ...mutationOptions
84
+ } = {}) {
85
+ const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
86
+ return (0, import_react_query.useMutation)({
87
+ mutationKey: walletMutationKeys.connectWallet(mutationKey),
88
+ mutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {
89
+ const connectResult = await wallet.features["standard:connect"].connect(standardConnectInput);
90
+ const selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);
91
+ setWalletConnected(wallet, selectedAccount);
92
+ return connectResult;
93
+ },
94
+ ...mutationOptions
95
+ });
96
+ }
97
+ function getSelectedAccount(connectedAccounts, accountAddress) {
98
+ if (connectedAccounts.length === 0) {
99
+ return null;
100
+ }
101
+ if (accountAddress) {
102
+ const selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);
103
+ return selectedAccount ?? connectedAccounts[0];
104
+ }
105
+ return connectedAccounts[0];
106
+ }
107
+
108
+ // src/hooks/wallet/useWallets.ts
109
+ function useWallets() {
110
+ return useWalletStore((state) => state.wallets);
111
+ }
112
+
113
+ // src/hooks/wallet/useAutoConnectWallet.ts
114
+ function useAutoConnectWallet(autoConnectEnabled) {
115
+ const { mutate: connectWallet } = useConnectWallet();
116
+ const wallets = useWallets();
117
+ const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);
118
+ const lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);
119
+ (0, import_react3.useEffect)(() => {
120
+ if (!autoConnectEnabled || !lastConnectedWalletName)
121
+ return;
122
+ const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
123
+ if (wallet) {
124
+ connectWallet({
125
+ wallet,
126
+ accountAddress: lastConnectedAccountAddress || void 0,
127
+ silent: true
128
+ });
129
+ }
130
+ }, [
131
+ autoConnectEnabled,
132
+ connectWallet,
133
+ lastConnectedAccountAddress,
134
+ lastConnectedWalletName,
135
+ wallets
136
+ ]);
137
+ }
138
+
139
+ // src/hooks/wallet/useUnsafeBurnerWallet.ts
140
+ var import_ed25519 = require("@mysten/sui.js/keypairs/ed25519");
141
+ var import_wallet_standard = require("@mysten/wallet-standard");
142
+ var import_react6 = require("react");
143
+
144
+ // src/hooks/useSuiClient.ts
145
+ var import_react5 = require("react");
146
+
147
+ // src/components/SuiClientProvider.tsx
148
+ var import_client = require("@mysten/sui.js/client");
149
+ var import_react4 = require("react");
150
+ var import_jsx_runtime = require("react/jsx-runtime");
151
+ var SuiClientContext = (0, import_react4.createContext)(null);
152
+ var DEFAULT_NETWORKS = {
153
+ localnet: { url: (0, import_client.getFullnodeUrl)("localnet") }
154
+ };
155
+
156
+ // src/hooks/useSuiClient.ts
157
+ function useSuiClientContext() {
158
+ const suiClient = (0, import_react5.useContext)(SuiClientContext);
159
+ if (!suiClient) {
160
+ throw new Error(
161
+ "Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider"
162
+ );
163
+ }
164
+ return suiClient;
165
+ }
166
+ function useSuiClient() {
167
+ return useSuiClientContext().client;
168
+ }
169
+
170
+ // src/hooks/wallet/useUnsafeBurnerWallet.ts
171
+ var WALLET_NAME = "Unsafe Burner Wallet";
172
+ function useUnsafeBurnerWallet(enabled) {
173
+ const suiClient = useSuiClient();
174
+ (0, import_react6.useEffect)(() => {
175
+ if (!enabled) {
176
+ return;
177
+ }
178
+ const unregister = registerUnsafeBurnerWallet(suiClient);
179
+ return unregister;
180
+ }, [enabled, suiClient]);
181
+ }
182
+ function registerUnsafeBurnerWallet(suiClient) {
183
+ var _on, _connect, _signPersonalMessage, _signTransactionBlock, _signAndExecuteTransactionBlock;
184
+ const walletsApi = (0, import_wallet_standard.getWallets)();
185
+ const registeredWallets = walletsApi.get();
186
+ if (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {
187
+ console.warn(
188
+ "registerUnsafeBurnerWallet: Unsafe Burner Wallet already registered, skipping duplicate registration."
189
+ );
190
+ return;
191
+ }
192
+ console.warn(
193
+ "Your application is currently using the unsafe burner wallet. Make sure that this wallet is disabled in production."
194
+ );
195
+ const keypair = new import_ed25519.Ed25519Keypair();
196
+ const account = new import_wallet_standard.ReadonlyWalletAccount({
197
+ address: keypair.getPublicKey().toSuiAddress(),
198
+ publicKey: keypair.getPublicKey().toSuiBytes(),
199
+ chains: ["sui:unknown"],
200
+ features: ["sui:signAndExecuteTransactionBlock", "sui:signTransactionBlock"]
201
+ });
202
+ class UnsafeBurnerWallet {
203
+ constructor() {
204
+ __privateAdd(this, _on, () => {
205
+ return () => {
206
+ };
207
+ });
208
+ __privateAdd(this, _connect, async () => {
209
+ return { accounts: this.accounts };
210
+ });
211
+ __privateAdd(this, _signPersonalMessage, async (messageInput) => {
212
+ const { bytes, signature } = await keypair.signPersonalMessage(messageInput.message);
213
+ return { bytes, signature };
214
+ });
215
+ __privateAdd(this, _signTransactionBlock, async (transactionInput) => {
216
+ const { bytes, signature } = await transactionInput.transactionBlock.sign({
217
+ client: suiClient,
218
+ signer: keypair
219
+ });
220
+ return {
221
+ transactionBlockBytes: bytes,
222
+ signature
223
+ };
224
+ });
225
+ __privateAdd(this, _signAndExecuteTransactionBlock, async (transactionInput) => {
226
+ return await suiClient.signAndExecuteTransactionBlock({
227
+ signer: keypair,
228
+ transactionBlock: transactionInput.transactionBlock,
229
+ options: transactionInput.options,
230
+ requestType: transactionInput.requestType
231
+ });
232
+ });
233
+ }
234
+ get version() {
235
+ return "1.0.0";
236
+ }
237
+ get name() {
238
+ return WALLET_NAME;
239
+ }
240
+ get icon() {
241
+ return "data:image/png;base64,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";
242
+ }
243
+ // Return the Sui chains that your wallet supports.
244
+ get chains() {
245
+ return import_wallet_standard.SUI_CHAINS;
246
+ }
247
+ get accounts() {
248
+ return [account];
249
+ }
250
+ get features() {
251
+ return {
252
+ "standard:connect": {
253
+ version: "1.0.0",
254
+ connect: __privateGet(this, _connect)
255
+ },
256
+ "standard:events": {
257
+ version: "1.0.0",
258
+ on: __privateGet(this, _on)
259
+ },
260
+ "sui:signPersonalMessage": {
261
+ version: "1.0.0",
262
+ signPersonalMessage: __privateGet(this, _signPersonalMessage)
263
+ },
264
+ "sui:signTransactionBlock": {
265
+ version: "1.0.0",
266
+ signTransactionBlock: __privateGet(this, _signTransactionBlock)
267
+ },
268
+ "sui:signAndExecuteTransactionBlock": {
269
+ version: "1.0.0",
270
+ signAndExecuteTransactionBlock: __privateGet(this, _signAndExecuteTransactionBlock)
271
+ }
272
+ };
273
+ }
274
+ }
275
+ _on = new WeakMap();
276
+ _connect = new WeakMap();
277
+ _signPersonalMessage = new WeakMap();
278
+ _signTransactionBlock = new WeakMap();
279
+ _signAndExecuteTransactionBlock = new WeakMap();
280
+ return walletsApi.register(new UnsafeBurnerWallet());
281
+ }
282
+
283
+ // src/hooks/wallet/useWalletPropertiesChanged.ts
284
+ var import_react7 = require("react");
285
+
286
+ // src/hooks/wallet/useCurrentWallet.ts
287
+ function useCurrentWallet() {
288
+ return useWalletStore((state) => state.currentWallet);
289
+ }
290
+
291
+ // src/hooks/wallet/useWalletPropertiesChanged.ts
292
+ function useWalletPropertiesChanged() {
293
+ const currentWallet = useCurrentWallet();
294
+ const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);
295
+ (0, import_react7.useEffect)(() => {
296
+ const unsubscribeFromEvents = currentWallet?.features["standard:events"].on(
297
+ "change",
298
+ ({ accounts }) => {
299
+ if (accounts) {
300
+ updateWalletAccounts(accounts);
301
+ }
302
+ }
303
+ );
304
+ return unsubscribeFromEvents;
305
+ }, [currentWallet?.features, updateWalletAccounts]);
306
+ }
307
+
308
+ // src/hooks/wallet/useWalletsChanged.ts
309
+ var import_wallet_standard3 = require("@mysten/wallet-standard");
310
+ var import_react8 = require("react");
311
+
312
+ // src/utils/walletUtils.ts
313
+ var import_wallet_standard2 = require("@mysten/wallet-standard");
314
+ function getRegisteredWallets(preferredWallets, requiredFeatures) {
315
+ const walletsApi = (0, import_wallet_standard2.getWallets)();
316
+ const wallets = walletsApi.get();
317
+ const suiWallets = wallets.filter(
318
+ (wallet) => (0, import_wallet_standard2.isWalletWithRequiredFeatureSet)(wallet, requiredFeatures)
319
+ );
320
+ return [
321
+ // Preferred wallets, in order:
322
+ ...preferredWallets.map((name) => suiWallets.find((wallet) => wallet.name === name)).filter(Boolean),
323
+ // Wallets in default order:
324
+ ...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name))
325
+ ];
326
+ }
327
+
328
+ // src/hooks/wallet/useWalletsChanged.ts
329
+ function useWalletsChanged(preferredWallets, requiredFeatures) {
330
+ const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);
331
+ const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);
332
+ (0, import_react8.useEffect)(() => {
333
+ const walletsApi = (0, import_wallet_standard3.getWallets)();
334
+ const unsubscribeFromRegister = walletsApi.on("register", () => {
335
+ setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
336
+ });
337
+ const unsubscribeFromUnregister = walletsApi.on("unregister", (unregisteredWallet) => {
338
+ setWalletUnregistered(
339
+ getRegisteredWallets(preferredWallets, requiredFeatures),
340
+ unregisteredWallet
341
+ );
342
+ });
343
+ return () => {
344
+ unsubscribeFromRegister();
345
+ unsubscribeFromUnregister();
346
+ };
347
+ }, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);
348
+ }
349
+
350
+ // src/walletStore.ts
351
+ var import_zustand2 = require("zustand");
352
+ var import_middleware = require("zustand/middleware");
353
+ function createWalletStore({ wallets, storage, storageKey }) {
354
+ return (0, import_zustand2.createStore)()(
355
+ (0, import_middleware.persist)(
356
+ (set, get) => ({
357
+ wallets,
358
+ accounts: [],
359
+ currentWallet: null,
360
+ currentAccount: null,
361
+ lastConnectedAccountAddress: null,
362
+ lastConnectedWalletName: null,
363
+ connectionStatus: "disconnected",
364
+ setWalletConnected(wallet, selectedAccount) {
365
+ set(() => ({
366
+ accounts: wallet.accounts,
367
+ currentWallet: wallet,
368
+ currentAccount: selectedAccount,
369
+ lastConnectedWalletName: wallet.name,
370
+ lastConnectedAccountAddress: selectedAccount?.address
371
+ }));
372
+ },
373
+ setWalletDisconnected() {
374
+ set(() => ({
375
+ accounts: [],
376
+ currentWallet: null,
377
+ currentAccount: null,
378
+ lastConnectedWalletName: null,
379
+ lastConnectedAccountAddress: null
380
+ }));
381
+ },
382
+ setAccountSwitched(selectedAccount) {
383
+ set(() => ({
384
+ currentAccount: selectedAccount,
385
+ lastConnectedAccountAddress: selectedAccount.address
386
+ }));
387
+ },
388
+ setWalletRegistered(updatedWallets) {
389
+ set(() => ({ wallets: updatedWallets }));
390
+ },
391
+ setWalletUnregistered(updatedWallets, unregisteredWallet) {
392
+ if (unregisteredWallet === get().currentWallet) {
393
+ set(() => ({
394
+ wallets: updatedWallets,
395
+ accounts: [],
396
+ currentWallet: null,
397
+ currentAccount: null,
398
+ lastConnectedWalletName: null,
399
+ lastConnectedAccountAddress: null
400
+ }));
401
+ } else {
402
+ set(() => ({ wallets: updatedWallets }));
403
+ }
404
+ },
405
+ updateWalletAccounts(accounts) {
406
+ const currentAccount = get().currentAccount;
407
+ const isCurrentAccountStillAuthorized = currentAccount ? accounts.some(({ address }) => address === currentAccount.address) : false;
408
+ set(() => ({
409
+ accounts,
410
+ currentAccount: isCurrentAccountStillAuthorized ? currentAccount : accounts[0]
411
+ }));
412
+ }
413
+ }),
414
+ {
415
+ name: storageKey,
416
+ storage: (0, import_middleware.createJSONStorage)(() => storage),
417
+ partialize: ({ lastConnectedWalletName, lastConnectedAccountAddress }) => ({
418
+ lastConnectedWalletName,
419
+ lastConnectedAccountAddress
420
+ })
421
+ }
422
+ )
423
+ );
424
+ }
425
+
426
+ // src/components/WalletProvider.tsx
427
+ var import_jsx_runtime2 = require("react/jsx-runtime");
428
+ var SUI_WALLET_NAME = "Sui Wallet";
429
+ var DEFUALT_STORAGE_KEY = "sui-dapp-kit:wallet-connection-info";
430
+ function WalletProvider({
431
+ preferredWallets = [SUI_WALLET_NAME],
432
+ requiredFeatures = [],
433
+ storage = localStorage,
434
+ storageKey = DEFUALT_STORAGE_KEY,
435
+ enableUnsafeBurner = false,
436
+ autoConnect = false,
437
+ children
438
+ }) {
439
+ const storeRef = (0, import_react9.useRef)(
440
+ createWalletStore({
441
+ wallets: getRegisteredWallets(preferredWallets, requiredFeatures),
442
+ storageKey,
443
+ storage
444
+ })
445
+ );
446
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WalletContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
447
+ WalletConnectionManager,
448
+ {
449
+ preferredWallets,
450
+ requiredFeatures,
451
+ enableUnsafeBurner,
452
+ autoConnect,
453
+ children
454
+ }
455
+ ) });
456
+ }
457
+ function WalletConnectionManager({
458
+ preferredWallets,
459
+ requiredFeatures,
460
+ enableUnsafeBurner,
461
+ autoConnect,
462
+ children
463
+ }) {
464
+ useWalletsChanged(preferredWallets, requiredFeatures);
465
+ useWalletPropertiesChanged();
466
+ useUnsafeBurnerWallet(enableUnsafeBurner);
467
+ useAutoConnectWallet(autoConnect);
468
+ return children;
469
+ }
470
+ //# sourceMappingURL=WalletProvider.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/WalletProvider.tsx", "../../../src/contexts/walletContext.ts", "../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../src/hooks/wallet/useConnectWallet.ts", "../../../src/constants/walletMutationKeys.ts", "../../../src/hooks/wallet/useWalletStore.ts", "../../../src/hooks/wallet/useWallets.ts", "../../../src/hooks/wallet/useUnsafeBurnerWallet.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx", "../../../src/hooks/wallet/useWalletPropertiesChanged.ts", "../../../src/hooks/wallet/useCurrentWallet.ts", "../../../src/hooks/wallet/useWalletsChanged.ts", "../../../src/utils/walletUtils.ts", "../../../src/walletStore.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\nimport type { ReactNode } from 'react';\nimport { useRef } from 'react';\nimport type { StateStorage } from 'zustand/middleware';\n\nimport { WalletContext } from '../contexts/walletContext.js';\nimport { useAutoConnectWallet } from '../hooks/wallet/useAutoConnectWallet.js';\nimport { useUnsafeBurnerWallet } from '../hooks/wallet/useUnsafeBurnerWallet.js';\nimport { useWalletPropertiesChanged } from '../hooks/wallet/useWalletPropertiesChanged.js';\nimport { useWalletsChanged } from '../hooks/wallet/useWalletsChanged.js';\nimport { getRegisteredWallets } from '../utils/walletUtils.js';\nimport { createWalletStore } from '../walletStore.js';\n\ntype WalletProviderProps = {\n\t/** A list of wallets that are sorted to the top of the wallet list, if they are available to connect to. By default, wallets are sorted by the order they are loaded in. */\n\tpreferredWallets?: string[];\n\n\t/** A list of features that are required for the dApp to function. This filters the list of wallets presented to users when selecting a wallet to connect from, ensuring that only wallets that meet the dApps requirements can connect. */\n\trequiredFeatures?: (keyof WalletWithRequiredFeatures['features'])[];\n\n\t/** Enables the development-only unsafe burner wallet, which can be useful for testing. */\n\tenableUnsafeBurner?: boolean;\n\n\t/** Enables automatically reconnecting to the most recently used wallet account upon mounting. */\n\tautoConnect?: boolean;\n\n\t/** Configures how the most recently connected to wallet account is stored. Defaults to using localStorage. */\n\tstorage?: StateStorage;\n\n\t/** The key to use to store the most recently connected wallet account. */\n\tstorageKey?: string;\n\n\tchildren: ReactNode;\n};\n\nconst SUI_WALLET_NAME = 'Sui Wallet';\nconst DEFUALT_STORAGE_KEY = 'sui-dapp-kit:wallet-connection-info';\n\nexport function WalletProvider({\n\tpreferredWallets = [SUI_WALLET_NAME],\n\trequiredFeatures = [],\n\tstorage = localStorage,\n\tstorageKey = DEFUALT_STORAGE_KEY,\n\tenableUnsafeBurner = false,\n\tautoConnect = false,\n\tchildren,\n}: WalletProviderProps) {\n\tconst storeRef = useRef(\n\t\tcreateWalletStore({\n\t\t\twallets: getRegisteredWallets(preferredWallets, requiredFeatures),\n\t\t\tstorageKey,\n\t\t\tstorage,\n\t\t}),\n\t);\n\n\treturn (\n\t\t<WalletContext.Provider value={storeRef.current}>\n\t\t\t<WalletConnectionManager\n\t\t\t\tpreferredWallets={preferredWallets}\n\t\t\t\trequiredFeatures={requiredFeatures}\n\t\t\t\tenableUnsafeBurner={enableUnsafeBurner}\n\t\t\t\tautoConnect={autoConnect}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</WalletConnectionManager>\n\t\t</WalletContext.Provider>\n\t);\n}\n\ntype WalletConnectionManagerProps = Required<\n\tPick<\n\t\tWalletProviderProps,\n\t\t'preferredWallets' | 'requiredFeatures' | 'enableUnsafeBurner' | 'autoConnect' | 'children'\n\t>\n>;\n\nfunction WalletConnectionManager({\n\tpreferredWallets,\n\trequiredFeatures,\n\tenableUnsafeBurner,\n\tautoConnect,\n\tchildren,\n}: WalletConnectionManagerProps) {\n\tuseWalletsChanged(preferredWallets, requiredFeatures);\n\tuseWalletPropertiesChanged();\n\tuseUnsafeBurnerWallet(enableUnsafeBurner);\n\tuseAutoConnectWallet(autoConnect);\n\n\treturn children;\n}\n", "// Copyright (c) Mysten Labs, Inc.\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// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(autoConnectEnabled: boolean) {\n\tconst { mutate: connectWallet } = useConnectWallet();\n\tconst wallets = useWallets();\n\tconst lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n\tconst lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);\n\n\tuseEffect(() => {\n\t\tif (!autoConnectEnabled || !lastConnectedWalletName) return;\n\n\t\tconst wallet = wallets.find((wallet) => wallet.name === lastConnectedWalletName);\n\t\tif (wallet) {\n\t\t\tconnectWallet({\n\t\t\t\twallet,\n\t\t\t\taccountAddress: lastConnectedAccountAddress || undefined,\n\t\t\t\tsilent: true,\n\t\t\t});\n\t\t}\n\t}, [\n\t\tautoConnectEnabled,\n\t\tconnectWallet,\n\t\tlastConnectedAccountAddress,\n\t\tlastConnectedWalletName,\n\t\twallets,\n\t]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} from '@mysten/wallet-standard';\nimport type { UseMutationOptions } 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\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}) {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {\n\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(standardConnectInput);\n\t\t\tconst selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);\n\n\t\t\tsetWalletConnected(wallet, selectedAccount);\n\t\t\treturn connectResult;\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n\tsignAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\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\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\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\treturn useWalletStore((state) => state.wallets);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport { Ed25519Keypair } from '@mysten/sui.js/keypairs/ed25519';\nimport type {\n\tStandardConnectFeature,\n\tStandardConnectMethod,\n\tStandardEventsFeature,\n\tStandardEventsOnMethod,\n\tSuiFeatures,\n\tSuiSignAndExecuteTransactionBlockMethod,\n\tSuiSignPersonalMessageMethod,\n\tSuiSignTransactionBlockMethod,\n\tWallet,\n} from '@mysten/wallet-standard';\nimport { getWallets, ReadonlyWalletAccount, SUI_CHAINS } from '@mysten/wallet-standard';\nimport { useEffect } from 'react';\n\nimport { useSuiClient } from '../useSuiClient.js';\n\nconst WALLET_NAME = 'Unsafe Burner Wallet';\n\nexport function useUnsafeBurnerWallet(enabled: boolean) {\n\tconst suiClient = useSuiClient();\n\n\tuseEffect(() => {\n\t\tif (!enabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst unregister = registerUnsafeBurnerWallet(suiClient);\n\t\treturn unregister;\n\t}, [enabled, suiClient]);\n}\n\nfunction registerUnsafeBurnerWallet(suiClient: SuiClient) {\n\tconst walletsApi = getWallets();\n\tconst registeredWallets = walletsApi.get();\n\n\tif (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {\n\t\tconsole.warn(\n\t\t\t'registerUnsafeBurnerWallet: Unsafe Burner Wallet already registered, skipping duplicate registration.',\n\t\t);\n\t\treturn;\n\t}\n\n\tconsole.warn(\n\t\t'Your application is currently using the unsafe burner wallet. Make sure that this wallet is disabled in production.',\n\t);\n\n\tconst keypair = new Ed25519Keypair();\n\tconst account = new ReadonlyWalletAccount({\n\t\taddress: keypair.getPublicKey().toSuiAddress(),\n\t\tpublicKey: keypair.getPublicKey().toSuiBytes(),\n\t\tchains: ['sui:unknown'],\n\t\tfeatures: ['sui:signAndExecuteTransactionBlock', 'sui:signTransactionBlock'],\n\t});\n\n\tclass UnsafeBurnerWallet implements Wallet {\n\t\tget version() {\n\t\t\treturn '1.0.0' as const;\n\t\t}\n\n\t\tget name() {\n\t\t\treturn WALLET_NAME;\n\t\t}\n\n\t\tget icon() {\n\t\t\treturn 'data:image/png;base64,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' as const;\n\t\t}\n\n\t\t// Return the Sui chains that your wallet supports.\n\t\tget chains() {\n\t\t\treturn SUI_CHAINS;\n\t\t}\n\n\t\tget accounts() {\n\t\t\treturn [account];\n\t\t}\n\n\t\tget features(): StandardConnectFeature & StandardEventsFeature & SuiFeatures {\n\t\t\treturn {\n\t\t\t\t'standard:connect': {\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t\tconnect: this.#connect,\n\t\t\t\t},\n\t\t\t\t'standard:events': {\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t\ton: this.#on,\n\t\t\t\t},\n\t\t\t\t'sui:signPersonalMessage': {\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t\tsignPersonalMessage: this.#signPersonalMessage,\n\t\t\t\t},\n\t\t\t\t'sui:signTransactionBlock': {\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t\tsignTransactionBlock: this.#signTransactionBlock,\n\t\t\t\t},\n\t\t\t\t'sui:signAndExecuteTransactionBlock': {\n\t\t\t\t\tversion: '1.0.0',\n\t\t\t\t\tsignAndExecuteTransactionBlock: this.#signAndExecuteTransactionBlock,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\t#on: StandardEventsOnMethod = () => {\n\t\t\treturn () => {};\n\t\t};\n\n\t\t#connect: StandardConnectMethod = async () => {\n\t\t\treturn { accounts: this.accounts };\n\t\t};\n\n\t\t#signPersonalMessage: SuiSignPersonalMessageMethod = async (messageInput) => {\n\t\t\tconst { bytes, signature } = await keypair.signPersonalMessage(messageInput.message);\n\t\t\treturn { bytes, signature };\n\t\t};\n\n\t\t#signTransactionBlock: SuiSignTransactionBlockMethod = async (transactionInput) => {\n\t\t\tconst { bytes, signature } = await transactionInput.transactionBlock.sign({\n\t\t\t\tclient: suiClient,\n\t\t\t\tsigner: keypair,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\ttransactionBlockBytes: bytes,\n\t\t\t\tsignature: signature,\n\t\t\t};\n\t\t};\n\n\t\t#signAndExecuteTransactionBlock: SuiSignAndExecuteTransactionBlockMethod = async (\n\t\t\ttransactionInput,\n\t\t) => {\n\t\t\treturn await suiClient.signAndExecuteTransactionBlock({\n\t\t\t\tsigner: keypair,\n\t\t\t\ttransactionBlock: transactionInput.transactionBlock,\n\t\t\t\toptions: transactionInput.options,\n\t\t\t\trequestType: transactionInput.requestType,\n\t\t\t});\n\t\t};\n\t}\n\n\treturn walletsApi.register(new UnsafeBurnerWallet());\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient() {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\ntype NetworkConfig = SuiClient | SuiClientOptions;\ntype NetworkConfigs<T extends NetworkConfig = NetworkConfig> = Record<string, T>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling various changes in properties for a wallet.\n */\nexport function useWalletPropertiesChanged() {\n\tconst currentWallet = useCurrentWallet();\n\tconst updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);\n\n\tuseEffect(() => {\n\t\tconst unsubscribeFromEvents = currentWallet?.features['standard:events'].on(\n\t\t\t'change',\n\t\t\t({ accounts }) => {\n\t\t\t\t// TODO: We should handle features changing that might make the list of wallets\n\t\t\t\t// or even the current wallet incompatible with the dApp.\n\t\t\t\tif (accounts) {\n\t\t\t\t\tupdateWalletAccounts(accounts);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t\treturn unsubscribeFromEvents;\n\t}, [currentWallet?.features, updateWalletAccounts]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\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\treturn useWalletStore((state) => state.currentWallet);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';\nimport { getWallets } from '@mysten/wallet-standard';\nimport { useEffect } from 'react';\n\nimport { getRegisteredWallets } from '../../utils/walletUtils.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling the addition and removal of new wallets.\n */\nexport function useWalletsChanged(\n\tpreferredWallets: string[],\n\trequiredFeatures: (keyof WalletWithRequiredFeatures['features'])[],\n) {\n\tconst setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);\n\tconst setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);\n\n\tuseEffect(() => {\n\t\tconst walletsApi = getWallets();\n\n\t\tconst unsubscribeFromRegister = walletsApi.on('register', () => {\n\t\t\tsetWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));\n\t\t});\n\n\t\tconst unsubscribeFromUnregister = walletsApi.on('unregister', (unregisteredWallet) => {\n\t\t\tsetWalletUnregistered(\n\t\t\t\tgetRegisteredWallets(preferredWallets, requiredFeatures),\n\t\t\t\tunregisteredWallet,\n\t\t\t);\n\t\t});\n\n\t\treturn () => {\n\t\t\tunsubscribeFromRegister();\n\t\t\tunsubscribeFromUnregister();\n\t\t};\n\t}, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tMinimallyRequiredFeatures,\n\tWallet,\n\tWalletWithFeatures,\n} from '@mysten/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@mysten/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n\tpreferredWallets: string[],\n\trequiredFeatures?: (keyof AdditionalFeatures)[],\n) {\n\tconst walletsApi = getWallets();\n\tconst wallets = walletsApi.get();\n\n\tconst suiWallets = wallets.filter(\n\t\t(wallet): wallet is WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures> =>\n\t\t\tisWalletWithRequiredFeatureSet(wallet, requiredFeatures),\n\t);\n\n\treturn [\n\t\t// Preferred wallets, in order:\n\t\t...(preferredWallets\n\t\t\t.map((name) => suiWallets.find((wallet) => wallet.name === name))\n\t\t\t.filter(Boolean) as WalletWithFeatures<MinimallyRequiredFeatures & AdditionalFeatures>[]),\n\n\t\t// Wallets in default order:\n\t\t...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),\n\t];\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Wallet, WalletAccount, WalletWithRequiredFeatures } from '@mysten/wallet-standard';\nimport { createStore } from 'zustand';\nimport type { StateStorage } from 'zustand/middleware';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nexport type WalletActions = {\n\tsetAccountSwitched: (selectedAccount: WalletAccount) => void;\n\tsetWalletConnected: (\n\t\twallet: WalletWithRequiredFeatures,\n\t\tselectedAccount: WalletAccount | null,\n\t) => void;\n\tupdateWalletAccounts: (accounts: readonly WalletAccount[]) => void;\n\tsetWalletDisconnected: () => void;\n\tsetWalletRegistered: (updatedWallets: WalletWithRequiredFeatures[]) => void;\n\tsetWalletUnregistered: (\n\t\tupdatedWallets: WalletWithRequiredFeatures[],\n\t\tunregisteredWallet: Wallet,\n\t) => void;\n};\n\nexport type WalletStore = ReturnType<typeof createWalletStore>;\n\nexport type StoreState = {\n\twallets: WalletWithRequiredFeatures[];\n\taccounts: readonly WalletAccount[];\n\tcurrentWallet: WalletWithRequiredFeatures | null;\n\tcurrentAccount: WalletAccount | null;\n\tlastConnectedAccountAddress: string | null;\n\tlastConnectedWalletName: string | null;\n} & WalletActions;\n\nexport type WalletConfiguration = {\n\twallets: WalletWithRequiredFeatures[];\n\tstorage: StateStorage;\n\tstorageKey: string;\n};\n\nexport function createWalletStore({ wallets, storage, storageKey }: WalletConfiguration) {\n\treturn createStore<StoreState>()(\n\t\tpersist(\n\t\t\t(set, get) => ({\n\t\t\t\twallets,\n\t\t\t\taccounts: [],\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tcurrentAccount: null,\n\t\t\t\tlastConnectedAccountAddress: null,\n\t\t\t\tlastConnectedWalletName: null,\n\t\t\t\tconnectionStatus: 'disconnected',\n\t\t\t\tsetWalletConnected(wallet, selectedAccount) {\n\t\t\t\t\tset(() => ({\n\t\t\t\t\t\taccounts: wallet.accounts,\n\t\t\t\t\t\tcurrentWallet: wallet,\n\t\t\t\t\t\tcurrentAccount: selectedAccount,\n\t\t\t\t\t\tlastConnectedWalletName: wallet.name,\n\t\t\t\t\t\tlastConnectedAccountAddress: selectedAccount?.address,\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tsetWalletDisconnected() {\n\t\t\t\t\tset(() => ({\n\t\t\t\t\t\taccounts: [],\n\t\t\t\t\t\tcurrentWallet: null,\n\t\t\t\t\t\tcurrentAccount: null,\n\t\t\t\t\t\tlastConnectedWalletName: null,\n\t\t\t\t\t\tlastConnectedAccountAddress: null,\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tsetAccountSwitched(selectedAccount) {\n\t\t\t\t\tset(() => ({\n\t\t\t\t\t\tcurrentAccount: selectedAccount,\n\t\t\t\t\t\tlastConnectedAccountAddress: selectedAccount.address,\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tsetWalletRegistered(updatedWallets) {\n\t\t\t\t\tset(() => ({ wallets: updatedWallets }));\n\t\t\t\t},\n\t\t\t\tsetWalletUnregistered(updatedWallets, unregisteredWallet) {\n\t\t\t\t\tif (unregisteredWallet === get().currentWallet) {\n\t\t\t\t\t\tset(() => ({\n\t\t\t\t\t\t\twallets: updatedWallets,\n\t\t\t\t\t\t\taccounts: [],\n\t\t\t\t\t\t\tcurrentWallet: null,\n\t\t\t\t\t\t\tcurrentAccount: null,\n\t\t\t\t\t\t\tlastConnectedWalletName: null,\n\t\t\t\t\t\t\tlastConnectedAccountAddress: null,\n\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tset(() => ({ wallets: updatedWallets }));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tupdateWalletAccounts(accounts) {\n\t\t\t\t\tconst currentAccount = get().currentAccount;\n\t\t\t\t\tconst isCurrentAccountStillAuthorized = currentAccount\n\t\t\t\t\t\t? accounts.some(({ address }) => address === currentAccount.address)\n\t\t\t\t\t\t: false;\n\n\t\t\t\t\tset(() => ({\n\t\t\t\t\t\taccounts,\n\t\t\t\t\t\tcurrentAccount: isCurrentAccountStillAuthorized ? currentAccount : accounts[0],\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{\n\t\t\t\tname: storageKey,\n\t\t\t\tstorage: createJSONStorage(() => storage),\n\t\t\t\tpartialize: ({ lastConnectedWalletName, lastConnectedAccountAddress }) => ({\n\t\t\t\t\tlastConnectedWalletName,\n\t\t\t\t\tlastConnectedAccountAddress,\n\t\t\t\t}),\n\t\t\t},\n\t\t),\n\t);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_react", "import_react", "wallet", "import_react", "import_react", "import_react", "import_react", "import_wallet_standard", "import_react", "import_wallet_standard", "import_zustand", "import_jsx_runtime"]
7
+ }