@mysten/dapp-kit 0.13.2 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +5 -4
  3. package/dist/cjs/components/AccountDropdownMenu.js +13 -8
  4. package/dist/cjs/components/AccountDropdownMenu.js.map +2 -2
  5. package/dist/cjs/components/ConnectButton.js +19 -9
  6. package/dist/cjs/components/ConnectButton.js.map +2 -2
  7. package/dist/cjs/components/SuiClientProvider.d.ts +1 -1
  8. package/dist/cjs/components/SuiClientProvider.js +1 -1
  9. package/dist/cjs/components/SuiClientProvider.js.map +1 -1
  10. package/dist/cjs/components/WalletProvider.d.ts +3 -3
  11. package/dist/cjs/components/WalletProvider.js +104 -33
  12. package/dist/cjs/components/WalletProvider.js.map +2 -2
  13. package/dist/cjs/components/connect-modal/ConnectModal.js +10 -4
  14. package/dist/cjs/components/connect-modal/ConnectModal.js.map +2 -2
  15. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +2 -2
  16. package/dist/cjs/constants/walletDefaults.d.ts +1 -1
  17. package/dist/cjs/constants/walletDefaults.js +4 -2
  18. package/dist/cjs/constants/walletDefaults.js.map +2 -2
  19. package/dist/cjs/constants/walletMutationKeys.d.ts +3 -2
  20. package/dist/cjs/constants/walletMutationKeys.js +4 -3
  21. package/dist/cjs/constants/walletMutationKeys.js.map +2 -2
  22. package/dist/cjs/hooks/networkConfig.d.ts +1 -1
  23. package/dist/cjs/hooks/networkConfig.js +1 -1
  24. package/dist/cjs/hooks/networkConfig.js.map +1 -1
  25. package/dist/cjs/hooks/useResolveSuiNSNames.d.ts +1 -1
  26. package/dist/cjs/hooks/useResolveSuiNSNames.js +1 -1
  27. package/dist/cjs/hooks/useResolveSuiNSNames.js.map +1 -1
  28. package/dist/cjs/hooks/useSuiClient.d.ts +1 -1
  29. package/dist/cjs/hooks/useSuiClient.js +1 -1
  30. package/dist/cjs/hooks/useSuiClient.js.map +1 -1
  31. package/dist/cjs/hooks/useSuiClientInfiniteQuery.d.ts +1 -1
  32. package/dist/cjs/hooks/useSuiClientInfiniteQuery.js +1 -1
  33. package/dist/cjs/hooks/useSuiClientInfiniteQuery.js.map +1 -1
  34. package/dist/cjs/hooks/useSuiClientMutation.js +1 -1
  35. package/dist/cjs/hooks/useSuiClientMutation.js.map +1 -1
  36. package/dist/cjs/hooks/useSuiClientQueries.js +1 -1
  37. package/dist/cjs/hooks/useSuiClientQueries.js.map +1 -1
  38. package/dist/cjs/hooks/useSuiClientQuery.d.ts +1 -1
  39. package/dist/cjs/hooks/useSuiClientQuery.js +1 -1
  40. package/dist/cjs/hooks/useSuiClientQuery.js.map +1 -1
  41. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +17 -7
  42. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +2 -2
  43. package/dist/cjs/hooks/wallet/useConnectWallet.js +10 -4
  44. package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
  45. package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +3 -0
  46. package/dist/cjs/hooks/wallet/useCurrentWallet.js +7 -3
  47. package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +2 -2
  48. package/dist/cjs/hooks/wallet/useDisconnectWallet.js +11 -6
  49. package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
  50. package/dist/cjs/hooks/wallet/useReportTransactionEffects.d.ts +15 -0
  51. package/dist/cjs/hooks/wallet/{useSignTransactionBlock.js → useReportTransactionEffects.js} +37 -37
  52. package/dist/cjs/hooks/wallet/useReportTransactionEffects.js.map +7 -0
  53. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.d.ts +29 -0
  54. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js +248 -0
  55. package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js.map +7 -0
  56. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +11 -6
  57. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  58. package/dist/cjs/hooks/wallet/useSignTransaction.d.ts +18 -0
  59. package/dist/cjs/hooks/wallet/{useSignAndExecuteTransactionBlock.js → useSignTransaction.js} +83 -47
  60. package/dist/cjs/hooks/wallet/useSignTransaction.js.map +7 -0
  61. package/dist/cjs/hooks/wallet/useStashedWallet.js +17 -7
  62. package/dist/cjs/hooks/wallet/useStashedWallet.js.map +2 -2
  63. package/dist/cjs/hooks/wallet/useSwitchAccount.js +11 -6
  64. package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
  65. package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js +64 -9
  66. package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
  67. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +7 -3
  68. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
  69. package/dist/cjs/hooks/wallet/useWalletsChanged.d.ts +1 -1
  70. package/dist/cjs/hooks/wallet/useWalletsChanged.js +7 -7
  71. package/dist/cjs/hooks/wallet/useWalletsChanged.js.map +2 -2
  72. package/dist/cjs/index.d.ts +3 -2
  73. package/dist/cjs/index.js +231 -86
  74. package/dist/cjs/index.js.map +4 -4
  75. package/dist/cjs/types.d.ts +1 -1
  76. package/dist/cjs/types.js.map +1 -1
  77. package/dist/cjs/utils/walletUtils.d.ts +2 -2
  78. package/dist/cjs/utils/walletUtils.js +2 -2
  79. package/dist/cjs/utils/walletUtils.js.map +2 -2
  80. package/dist/cjs/walletStore.d.ts +2 -1
  81. package/dist/cjs/walletStore.js +8 -4
  82. package/dist/cjs/walletStore.js.map +2 -2
  83. package/dist/esm/components/AccountDropdownMenu.js +13 -8
  84. package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
  85. package/dist/esm/components/ConnectButton.js +19 -9
  86. package/dist/esm/components/ConnectButton.js.map +2 -2
  87. package/dist/esm/components/SuiClientProvider.d.ts +1 -1
  88. package/dist/esm/components/SuiClientProvider.js +1 -1
  89. package/dist/esm/components/SuiClientProvider.js.map +1 -1
  90. package/dist/esm/components/WalletProvider.d.ts +3 -3
  91. package/dist/esm/components/WalletProvider.js +104 -33
  92. package/dist/esm/components/WalletProvider.js.map +2 -2
  93. package/dist/esm/components/connect-modal/ConnectModal.js +10 -4
  94. package/dist/esm/components/connect-modal/ConnectModal.js.map +2 -2
  95. package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +2 -2
  96. package/dist/esm/constants/walletDefaults.d.ts +1 -1
  97. package/dist/esm/constants/walletDefaults.js +4 -2
  98. package/dist/esm/constants/walletDefaults.js.map +2 -2
  99. package/dist/esm/constants/walletMutationKeys.d.ts +3 -2
  100. package/dist/esm/constants/walletMutationKeys.js +4 -3
  101. package/dist/esm/constants/walletMutationKeys.js.map +2 -2
  102. package/dist/esm/hooks/networkConfig.d.ts +1 -1
  103. package/dist/esm/hooks/networkConfig.js +1 -1
  104. package/dist/esm/hooks/networkConfig.js.map +1 -1
  105. package/dist/esm/hooks/useResolveSuiNSNames.d.ts +1 -1
  106. package/dist/esm/hooks/useResolveSuiNSNames.js +1 -1
  107. package/dist/esm/hooks/useResolveSuiNSNames.js.map +1 -1
  108. package/dist/esm/hooks/useSuiClient.d.ts +1 -1
  109. package/dist/esm/hooks/useSuiClient.js +1 -1
  110. package/dist/esm/hooks/useSuiClient.js.map +1 -1
  111. package/dist/esm/hooks/useSuiClientInfiniteQuery.d.ts +1 -1
  112. package/dist/esm/hooks/useSuiClientInfiniteQuery.js +1 -1
  113. package/dist/esm/hooks/useSuiClientInfiniteQuery.js.map +1 -1
  114. package/dist/esm/hooks/useSuiClientMutation.js +1 -1
  115. package/dist/esm/hooks/useSuiClientMutation.js.map +1 -1
  116. package/dist/esm/hooks/useSuiClientQueries.js +1 -1
  117. package/dist/esm/hooks/useSuiClientQueries.js.map +1 -1
  118. package/dist/esm/hooks/useSuiClientQuery.d.ts +1 -1
  119. package/dist/esm/hooks/useSuiClientQuery.js +1 -1
  120. package/dist/esm/hooks/useSuiClientQuery.js.map +1 -1
  121. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +17 -7
  122. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +2 -2
  123. package/dist/esm/hooks/wallet/useConnectWallet.js +10 -4
  124. package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
  125. package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +3 -0
  126. package/dist/esm/hooks/wallet/useCurrentWallet.js +7 -3
  127. package/dist/esm/hooks/wallet/useCurrentWallet.js.map +2 -2
  128. package/dist/esm/hooks/wallet/useDisconnectWallet.js +11 -6
  129. package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
  130. package/dist/esm/hooks/wallet/useReportTransactionEffects.d.ts +15 -0
  131. package/dist/esm/hooks/wallet/{useSignTransactionBlock.js → useReportTransactionEffects.js} +34 -34
  132. package/dist/esm/hooks/wallet/useReportTransactionEffects.js.map +7 -0
  133. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.d.ts +29 -0
  134. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js +227 -0
  135. package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js.map +7 -0
  136. package/dist/esm/hooks/wallet/useSignPersonalMessage.js +11 -6
  137. package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  138. package/dist/esm/hooks/wallet/useSignTransaction.d.ts +18 -0
  139. package/dist/esm/hooks/wallet/{useSignAndExecuteTransactionBlock.js → useSignTransaction.js} +80 -44
  140. package/dist/esm/hooks/wallet/useSignTransaction.js.map +7 -0
  141. package/dist/esm/hooks/wallet/useStashedWallet.js +17 -7
  142. package/dist/esm/hooks/wallet/useStashedWallet.js.map +2 -2
  143. package/dist/esm/hooks/wallet/useSwitchAccount.js +11 -6
  144. package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
  145. package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js +64 -9
  146. package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js.map +2 -2
  147. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +7 -3
  148. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
  149. package/dist/esm/hooks/wallet/useWalletsChanged.d.ts +1 -1
  150. package/dist/esm/hooks/wallet/useWalletsChanged.js +7 -7
  151. package/dist/esm/hooks/wallet/useWalletsChanged.js.map +2 -2
  152. package/dist/esm/index.d.ts +3 -2
  153. package/dist/esm/index.js +231 -86
  154. package/dist/esm/index.js.map +4 -4
  155. package/dist/esm/types.d.ts +1 -1
  156. package/dist/esm/utils/walletUtils.d.ts +2 -2
  157. package/dist/esm/utils/walletUtils.js +2 -2
  158. package/dist/esm/utils/walletUtils.js.map +2 -2
  159. package/dist/esm/walletStore.d.ts +2 -1
  160. package/dist/esm/walletStore.js +8 -4
  161. package/dist/esm/walletStore.js.map +2 -2
  162. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  163. package/dist/tsconfig.tsbuildinfo +1 -1
  164. package/package.json +6 -6
  165. package/src/components/AccountDropdownMenu.tsx +1 -1
  166. package/src/components/SuiClientProvider.tsx +2 -2
  167. package/src/components/WalletProvider.tsx +9 -9
  168. package/src/constants/walletDefaults.ts +7 -3
  169. package/src/constants/walletMutationKeys.ts +3 -2
  170. package/src/hooks/networkConfig.ts +1 -1
  171. package/src/hooks/useResolveSuiNSNames.ts +1 -1
  172. package/src/hooks/useSuiClient.ts +1 -1
  173. package/src/hooks/useSuiClientInfiniteQuery.ts +1 -1
  174. package/src/hooks/useSuiClientQuery.ts +1 -1
  175. package/src/hooks/wallet/useConnectWallet.ts +6 -1
  176. package/src/hooks/wallet/useCurrentWallet.ts +4 -0
  177. package/src/hooks/wallet/useReportTransactionEffects.ts +82 -0
  178. package/src/hooks/wallet/useSignAndExecuteTransaction.ts +167 -0
  179. package/src/hooks/wallet/useSignTransaction.ts +119 -0
  180. package/src/hooks/wallet/useUnsafeBurnerWallet.ts +69 -6
  181. package/src/hooks/wallet/useWalletsChanged.ts +5 -5
  182. package/src/index.ts +3 -2
  183. package/src/types.ts +1 -1
  184. package/src/utils/walletUtils.ts +3 -2
  185. package/src/walletStore.ts +7 -1
  186. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +0 -15
  187. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +0 -7
  188. package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +0 -13
  189. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +0 -7
  190. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +0 -15
  191. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +0 -7
  192. package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +0 -13
  193. package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +0 -7
  194. package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +0 -116
  195. package/src/hooks/wallet/useSignTransactionBlock.ts +0 -84
@@ -13,7 +13,9 @@ var __privateAdd = (obj, member, value) => {
13
13
  };
14
14
 
15
15
  // src/hooks/wallet/useUnsafeBurnerWallet.ts
16
- import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";
16
+ import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
17
+ import { Transaction } from "@mysten/sui/transactions";
18
+ import { toB64 } from "@mysten/sui/utils";
17
19
  import { getWallets, ReadonlyWalletAccount, SUI_CHAINS } from "@mysten/wallet-standard";
18
20
  import { useEffect } from "react";
19
21
 
@@ -21,7 +23,7 @@ import { useEffect } from "react";
21
23
  import { useContext } from "react";
22
24
 
23
25
  // src/components/SuiClientProvider.tsx
24
- import { getFullnodeUrl, isSuiClient, SuiClient } from "@mysten/sui.js/client";
26
+ import { getFullnodeUrl, isSuiClient, SuiClient } from "@mysten/sui/client";
25
27
  import { createContext, useMemo, useState } from "react";
26
28
  import { jsx } from "react/jsx-runtime";
27
29
  var SuiClientContext = createContext(null);
@@ -56,7 +58,7 @@ function useUnsafeBurnerWallet(enabled) {
56
58
  }, [enabled, suiClient]);
57
59
  }
58
60
  function registerUnsafeBurnerWallet(suiClient) {
59
- var _on, _connect, _signPersonalMessage, _signTransactionBlock, _signAndExecuteTransactionBlock;
61
+ var _on, _connect, _signPersonalMessage, _signTransactionBlock, _signTransaction, _signAndExecuteTransactionBlock, _signAndExecuteTransaction;
60
62
  const walletsApi = getWallets();
61
63
  const registeredWallets = walletsApi.get();
62
64
  if (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {
@@ -73,7 +75,12 @@ function registerUnsafeBurnerWallet(suiClient) {
73
75
  address: keypair.getPublicKey().toSuiAddress(),
74
76
  publicKey: keypair.getPublicKey().toSuiBytes(),
75
77
  chains: ["sui:unknown"],
76
- features: ["sui:signAndExecuteTransactionBlock", "sui:signTransactionBlock"]
78
+ features: [
79
+ "sui:signAndExecuteTransactionBlock",
80
+ "sui:signTransactionBlock",
81
+ "sui:signTransaction",
82
+ "sui:signAndExecuteTransaction"
83
+ ]
77
84
  });
78
85
  class UnsafeBurnerWallet {
79
86
  constructor() {
@@ -98,13 +105,51 @@ function registerUnsafeBurnerWallet(suiClient) {
98
105
  signature
99
106
  };
100
107
  });
108
+ __privateAdd(this, _signTransaction, async (transactionInput) => {
109
+ const { bytes, signature } = await Transaction.from(
110
+ await transactionInput.transaction.toJSON()
111
+ ).sign({
112
+ client: suiClient,
113
+ signer: keypair
114
+ });
115
+ transactionInput.signal?.throwIfAborted();
116
+ return {
117
+ bytes,
118
+ signature
119
+ };
120
+ });
101
121
  __privateAdd(this, _signAndExecuteTransactionBlock, async (transactionInput) => {
102
- return await suiClient.signAndExecuteTransactionBlock({
103
- signer: keypair,
104
- transactionBlock: transactionInput.transactionBlock,
105
- options: transactionInput.options,
106
- requestType: transactionInput.requestType
122
+ const { bytes, signature } = await transactionInput.transactionBlock.sign({
123
+ client: suiClient,
124
+ signer: keypair
107
125
  });
126
+ return suiClient.executeTransactionBlock({
127
+ signature,
128
+ transactionBlock: bytes,
129
+ options: transactionInput.options
130
+ });
131
+ });
132
+ __privateAdd(this, _signAndExecuteTransaction, async (transactionInput) => {
133
+ const { bytes, signature } = await Transaction.from(
134
+ await transactionInput.transaction.toJSON()
135
+ ).sign({
136
+ client: suiClient,
137
+ signer: keypair
138
+ });
139
+ transactionInput.signal?.throwIfAborted();
140
+ const { rawEffects, digest } = await suiClient.executeTransactionBlock({
141
+ signature,
142
+ transactionBlock: bytes,
143
+ options: {
144
+ showRawEffects: true
145
+ }
146
+ });
147
+ return {
148
+ bytes,
149
+ signature,
150
+ digest,
151
+ effects: toB64(new Uint8Array(rawEffects))
152
+ };
108
153
  });
109
154
  }
110
155
  get version() {
@@ -144,6 +189,14 @@ function registerUnsafeBurnerWallet(suiClient) {
144
189
  "sui:signAndExecuteTransactionBlock": {
145
190
  version: "1.0.0",
146
191
  signAndExecuteTransactionBlock: __privateGet(this, _signAndExecuteTransactionBlock)
192
+ },
193
+ "sui:signTransaction": {
194
+ version: "2.0.0",
195
+ signTransaction: __privateGet(this, _signTransaction)
196
+ },
197
+ "sui:signAndExecuteTransaction": {
198
+ version: "2.0.0",
199
+ signAndExecuteTransaction: __privateGet(this, _signAndExecuteTransaction)
147
200
  }
148
201
  };
149
202
  }
@@ -152,7 +205,9 @@ function registerUnsafeBurnerWallet(suiClient) {
152
205
  _connect = new WeakMap();
153
206
  _signPersonalMessage = new WeakMap();
154
207
  _signTransactionBlock = new WeakMap();
208
+ _signTransaction = new WeakMap();
155
209
  _signAndExecuteTransactionBlock = new WeakMap();
210
+ _signAndExecuteTransaction = new WeakMap();
156
211
  return walletsApi.register(new UnsafeBurnerWallet());
157
212
  }
158
213
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useUnsafeBurnerWallet.ts", "../../../../src/hooks/useSuiClient.ts", "../../../../src/components/SuiClientProvider.tsx"],
4
- "sourcesContent": ["// 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 type { SuiClient } from '@mysten/sui.js/client';\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(): SuiClient {\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\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\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\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\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"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui/client';\nimport { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';\nimport { Transaction } from '@mysten/sui/transactions';\nimport { toB64 } from '@mysten/sui/utils';\nimport type {\n\tStandardConnectFeature,\n\tStandardConnectMethod,\n\tStandardEventsFeature,\n\tStandardEventsOnMethod,\n\tSuiFeatures,\n\tSuiSignAndExecuteTransactionBlockMethod,\n\tSuiSignAndExecuteTransactionMethod,\n\tSuiSignPersonalMessageMethod,\n\tSuiSignTransactionBlockMethod,\n\tSuiSignTransactionMethod,\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: [\n\t\t\t'sui:signAndExecuteTransactionBlock',\n\t\t\t'sui:signTransactionBlock',\n\t\t\t'sui:signTransaction',\n\t\t\t'sui:signAndExecuteTransaction',\n\t\t],\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\t'sui:signTransaction': {\n\t\t\t\t\tversion: '2.0.0',\n\t\t\t\t\tsignTransaction: this.#signTransaction,\n\t\t\t\t},\n\t\t\t\t'sui:signAndExecuteTransaction': {\n\t\t\t\t\tversion: '2.0.0',\n\t\t\t\t\tsignAndExecuteTransaction: this.#signAndExecuteTransaction,\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#signTransaction: SuiSignTransactionMethod = async (transactionInput) => {\n\t\t\tconst { bytes, signature } = await Transaction.from(\n\t\t\t\tawait transactionInput.transaction.toJSON(),\n\t\t\t).sign({\n\t\t\t\tclient: suiClient,\n\t\t\t\tsigner: keypair,\n\t\t\t});\n\n\t\t\ttransactionInput.signal?.throwIfAborted();\n\n\t\t\treturn {\n\t\t\t\tbytes,\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\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 suiClient.executeTransactionBlock({\n\t\t\t\tsignature,\n\t\t\t\ttransactionBlock: bytes,\n\t\t\t\toptions: transactionInput.options,\n\t\t\t});\n\t\t};\n\n\t\t#signAndExecuteTransaction: SuiSignAndExecuteTransactionMethod = async (transactionInput) => {\n\t\t\tconst { bytes, signature } = await Transaction.from(\n\t\t\t\tawait transactionInput.transaction.toJSON(),\n\t\t\t).sign({\n\t\t\t\tclient: suiClient,\n\t\t\t\tsigner: keypair,\n\t\t\t});\n\n\t\t\ttransactionInput.signal?.throwIfAborted();\n\n\t\t\tconst { rawEffects, digest } = await suiClient.executeTransactionBlock({\n\t\t\t\tsignature,\n\t\t\t\ttransactionBlock: bytes,\n\t\t\t\toptions: {\n\t\t\t\t\tshowRawEffects: true,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tbytes,\n\t\t\t\tsignature,\n\t\t\t\tdigest,\n\t\t\t\teffects: toB64(new Uint8Array(rawEffects!)),\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 type { SuiClient } from '@mysten/sui/client';\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(): SuiClient {\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/client';\nimport type { SuiClientOptions } from '@mysten/sui/client';\nimport { createContext, useMemo, useState } from 'react';\n\nimport type { NetworkConfig } from '../hooks/networkConfig.js';\n\ntype NetworkConfigs<T extends NetworkConfig | SuiClient = NetworkConfig | SuiClient> = Record<\n\tstring,\n\tT\n>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tconfig: NetworkConfig | null;\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\tconfig:\n\t\t\t\tnetworks[currentNetwork] instanceof SuiClient\n\t\t\t\t\t? null\n\t\t\t\t\t: (networks[currentNetwork] as SuiClientOptions),\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"],
5
+ "mappings": ";;;;;;;;;;;;;;;AAIA,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,aAAa;AActB,SAAS,YAAY,uBAAuB,kBAAkB;AAC9D,SAAS,iBAAiB;;;ACjB1B,SAAS,kBAAkB;;;ACD3B,SAAS,gBAAgB,aAAa,iBAAiB;AAEvD,SAAS,eAAe,SAAS,gBAAgB;AAyFzC;AAxED,IAAM,mBAAmB,cAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,eAAe,UAAU,EAAE;AAC7C;;;ADlCO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,eAA0B;AACzC,SAAO,oBAAoB,EAAE;AAC9B;;;ADGA,IAAM,cAAc;AAEb,SAAS,sBAAsB,SAAkB;AACvD,QAAM,YAAY,aAAa;AAE/B,YAAU,MAAM;AACf,QAAI,CAAC,SAAS;AACb;AAAA,IACD;AACA,UAAM,aAAa,2BAA2B,SAAS;AACvD,WAAO;AAAA,EACR,GAAG,CAAC,SAAS,SAAS,CAAC;AACxB;AAEA,SAAS,2BAA2B,WAAsB;AAvC1D;AAwCC,QAAM,aAAa,WAAW;AAC9B,QAAM,oBAAoB,WAAW,IAAI;AAEzC,MAAI,kBAAkB,KAAK,CAAC,WAAW,OAAO,SAAS,WAAW,GAAG;AACpE,YAAQ;AAAA,MACP;AAAA,IACD;AACA;AAAA,EACD;AAEA,UAAQ;AAAA,IACP;AAAA,EACD;AAEA,QAAM,UAAU,IAAI,eAAe;AACnC,QAAM,UAAU,IAAI,sBAAsB;AAAA,IACzC,SAAS,QAAQ,aAAa,EAAE,aAAa;AAAA,IAC7C,WAAW,QAAQ,aAAa,EAAE,WAAW;AAAA,IAC7C,QAAQ,CAAC,aAAa;AAAA,IACtB,UAAU;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD,CAAC;AAED,QAAM,mBAAqC;AAAA,IAA3C;AAuDC,8BAA8B,MAAM;AACnC,eAAO,MAAM;AAAA,QAAC;AAAA,MACf;AAEA,mCAAkC,YAAY;AAC7C,eAAO,EAAE,UAAU,KAAK,SAAS;AAAA,MAClC;AAEA,+CAAqD,OAAO,iBAAiB;AAC5E,cAAM,EAAE,OAAO,UAAU,IAAI,MAAM,QAAQ,oBAAoB,aAAa,OAAO;AACnF,eAAO,EAAE,OAAO,UAAU;AAAA,MAC3B;AAEA,gDAAuD,OAAO,qBAAqB;AAClF,cAAM,EAAE,OAAO,UAAU,IAAI,MAAM,iBAAiB,iBAAiB,KAAK;AAAA,UACzE,QAAQ;AAAA,UACR,QAAQ;AAAA,QACT,CAAC;AAED,eAAO;AAAA,UACN,uBAAuB;AAAA,UACvB;AAAA,QACD;AAAA,MACD;AAEA,2CAA6C,OAAO,qBAAqB;AACxE,cAAM,EAAE,OAAO,UAAU,IAAI,MAAM,YAAY;AAAA,UAC9C,MAAM,iBAAiB,YAAY,OAAO;AAAA,QAC3C,EAAE,KAAK;AAAA,UACN,QAAQ;AAAA,UACR,QAAQ;AAAA,QACT,CAAC;AAED,yBAAiB,QAAQ,eAAe;AAExC,eAAO;AAAA,UACN;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAEA,0DAA2E,OAC1E,qBACI;AACJ,cAAM,EAAE,OAAO,UAAU,IAAI,MAAM,iBAAiB,iBAAiB,KAAK;AAAA,UACzE,QAAQ;AAAA,UACR,QAAQ;AAAA,QACT,CAAC;AAED,eAAO,UAAU,wBAAwB;AAAA,UACxC;AAAA,UACA,kBAAkB;AAAA,UAClB,SAAS,iBAAiB;AAAA,QAC3B,CAAC;AAAA,MACF;AAEA,qDAAiE,OAAO,qBAAqB;AAC5F,cAAM,EAAE,OAAO,UAAU,IAAI,MAAM,YAAY;AAAA,UAC9C,MAAM,iBAAiB,YAAY,OAAO;AAAA,QAC3C,EAAE,KAAK;AAAA,UACN,QAAQ;AAAA,UACR,QAAQ;AAAA,QACT,CAAC;AAED,yBAAiB,QAAQ,eAAe;AAExC,cAAM,EAAE,YAAY,OAAO,IAAI,MAAM,UAAU,wBAAwB;AAAA,UACtE;AAAA,UACA,kBAAkB;AAAA,UAClB,SAAS;AAAA,YACR,gBAAgB;AAAA,UACjB;AAAA,QACD,CAAC;AAED,eAAO;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,MAAM,IAAI,WAAW,UAAW,CAAC;AAAA,QAC3C;AAAA,MACD;AAAA;AAAA,IAtIA,IAAI,UAAU;AACb,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAO;AACV,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,OAAO;AACV,aAAO;AAAA,IACR;AAAA;AAAA,IAGA,IAAI,SAAS;AACZ,aAAO;AAAA,IACR;AAAA,IAEA,IAAI,WAAW;AACd,aAAO,CAAC,OAAO;AAAA,IAChB;AAAA,IAEA,IAAI,WAAyE;AAC5E,aAAO;AAAA,QACN,oBAAoB;AAAA,UACnB,SAAS;AAAA,UACT,SAAS,mBAAK;AAAA,QACf;AAAA,QACA,mBAAmB;AAAA,UAClB,SAAS;AAAA,UACT,IAAI,mBAAK;AAAA,QACV;AAAA,QACA,2BAA2B;AAAA,UAC1B,SAAS;AAAA,UACT,qBAAqB,mBAAK;AAAA,QAC3B;AAAA,QACA,4BAA4B;AAAA,UAC3B,SAAS;AAAA,UACT,sBAAsB,mBAAK;AAAA,QAC5B;AAAA,QACA,sCAAsC;AAAA,UACrC,SAAS;AAAA,UACT,gCAAgC,mBAAK;AAAA,QACtC;AAAA,QACA,uBAAuB;AAAA,UACtB,SAAS;AAAA,UACT,iBAAiB,mBAAK;AAAA,QACvB;AAAA,QACA,iCAAiC;AAAA,UAChC,SAAS;AAAA,UACT,2BAA2B,mBAAK;AAAA,QACjC;AAAA,MACD;AAAA,IACD;AAAA,EAmFD;AAjFC;AAIA;AAIA;AAKA;AAYA;AAgBA;AAeA;AA2BD,SAAO,WAAW,SAAS,IAAI,mBAAmB,CAAC;AACpD;",
6
6
  "names": []
7
7
  }
@@ -24,6 +24,7 @@ function useWalletStore(selector) {
24
24
  function useCurrentWallet() {
25
25
  const currentWallet = useWalletStore((state) => state.currentWallet);
26
26
  const connectionStatus = useWalletStore((state) => state.connectionStatus);
27
+ const supportedIntents = useWalletStore((state) => state.supportedIntents);
27
28
  switch (connectionStatus) {
28
29
  case "connecting":
29
30
  return {
@@ -31,7 +32,8 @@ function useCurrentWallet() {
31
32
  currentWallet: null,
32
33
  isDisconnected: false,
33
34
  isConnecting: true,
34
- isConnected: false
35
+ isConnected: false,
36
+ supportedIntents: []
35
37
  };
36
38
  case "disconnected":
37
39
  return {
@@ -39,7 +41,8 @@ function useCurrentWallet() {
39
41
  currentWallet: null,
40
42
  isDisconnected: true,
41
43
  isConnecting: false,
42
- isConnected: false
44
+ isConnected: false,
45
+ supportedIntents: []
43
46
  };
44
47
  case "connected": {
45
48
  return {
@@ -47,7 +50,8 @@ function useCurrentWallet() {
47
50
  currentWallet,
48
51
  isDisconnected: false,
49
52
  isConnecting: false,
50
- isConnected: true
53
+ isConnected: true,
54
+ supportedIntents
51
55
  };
52
56
  }
53
57
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useWalletPropertiesChanged.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useCurrentWallet.ts"],
4
- "sourcesContent": ["// 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 { 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 { 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 { 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\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n"],
5
- "mappings": ";AAGA,SAAS,iBAAiB;;;ACA1B,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AETO,SAAS,mBAAmB;AAClC,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACzB,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK,aAAa;AACjB,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD;AACD;;;AH5BO,SAAS,6BAA6B;AAC5C,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,uBAAuB,eAAe,CAAC,UAAU,MAAM,oBAAoB;AAEjF,YAAU,MAAM;AACf,UAAM,wBAAwB,eAAe,SAAS,iBAAiB,EAAE;AAAA,MACxE;AAAA,MACA,CAAC,EAAE,SAAS,MAAM;AAGjB,YAAI,UAAU;AACb,+BAAqB,QAAQ;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,EACR,GAAG,CAAC,eAAe,UAAU,oBAAoB,CAAC;AACnD;",
4
+ "sourcesContent": ["// 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 { 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 { 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 { 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\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\tconst supportedIntents = useWalletStore((state) => state.supportedIntents);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t\tsupportedIntents: [],\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t\tsupportedIntents,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n"],
5
+ "mappings": ";AAGA,SAAS,iBAAiB;;;ACA1B,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AETO,SAAS,mBAAmB;AAClC,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AACzE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACzB,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACpB;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,kBAAkB,CAAC;AAAA,MACpB;AAAA,IACD,KAAK,aAAa;AACjB,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,QACb;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;;;AHhCO,SAAS,6BAA6B;AAC5C,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,uBAAuB,eAAe,CAAC,UAAU,MAAM,oBAAoB;AAEjF,YAAU,MAAM;AACf,UAAM,wBAAwB,eAAe,SAAS,iBAAiB,EAAE;AAAA,MACxE;AAAA,MACA,CAAC,EAAE,SAAS,MAAM;AAGjB,YAAI,UAAU;AACb,+BAAqB,QAAQ;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,EACR,GAAG,CAAC,eAAe,UAAU,oBAAoB,CAAC;AACnD;",
6
6
  "names": []
7
7
  }
@@ -2,4 +2,4 @@ import type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';
2
2
  /**
3
3
  * Internal hook for easily handling the addition and removal of new wallets.
4
4
  */
5
- export declare function useWalletsChanged(preferredWallets: string[], requiredFeatures: (keyof WalletWithRequiredFeatures['features'])[]): void;
5
+ export declare function useWalletsChanged(preferredWallets: string[], walletFilter?: (wallet: WalletWithRequiredFeatures) => boolean): void;
@@ -4,11 +4,11 @@ import { useEffect } from "react";
4
4
 
5
5
  // src/utils/walletUtils.ts
6
6
  import { getWallets, isWalletWithRequiredFeatureSet } from "@mysten/wallet-standard";
7
- function getRegisteredWallets(preferredWallets, requiredFeatures) {
7
+ function getRegisteredWallets(preferredWallets, walletFilter) {
8
8
  const walletsApi = getWallets();
9
9
  const wallets = walletsApi.get();
10
10
  const suiWallets = wallets.filter(
11
- (wallet) => isWalletWithRequiredFeatureSet(wallet, requiredFeatures)
11
+ (wallet) => isWalletWithRequiredFeatureSet(wallet) && (!walletFilter || walletFilter(wallet))
12
12
  );
13
13
  return [
14
14
  // Preferred wallets, in order:
@@ -38,18 +38,18 @@ function useWalletStore(selector) {
38
38
  }
39
39
 
40
40
  // src/hooks/wallet/useWalletsChanged.ts
41
- function useWalletsChanged(preferredWallets, requiredFeatures) {
41
+ function useWalletsChanged(preferredWallets, walletFilter) {
42
42
  const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);
43
43
  const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);
44
44
  useEffect(() => {
45
45
  const walletsApi = getWallets2();
46
- setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
46
+ setWalletRegistered(getRegisteredWallets(preferredWallets, walletFilter));
47
47
  const unsubscribeFromRegister = walletsApi.on("register", () => {
48
- setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
48
+ setWalletRegistered(getRegisteredWallets(preferredWallets, walletFilter));
49
49
  });
50
50
  const unsubscribeFromUnregister = walletsApi.on("unregister", (unregisteredWallet) => {
51
51
  setWalletUnregistered(
52
- getRegisteredWallets(preferredWallets, requiredFeatures),
52
+ getRegisteredWallets(preferredWallets, walletFilter),
53
53
  unregisteredWallet
54
54
  );
55
55
  });
@@ -57,7 +57,7 @@ function useWalletsChanged(preferredWallets, requiredFeatures) {
57
57
  unsubscribeFromRegister();
58
58
  unsubscribeFromUnregister();
59
59
  };
60
- }, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);
60
+ }, [preferredWallets, walletFilter, setWalletRegistered, setWalletUnregistered]);
61
61
  }
62
62
  export {
63
63
  useWalletsChanged
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useWalletsChanged.ts", "../../../../src/utils/walletUtils.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts"],
4
- "sourcesContent": ["// 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\t\tsetWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));\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\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n\treturn wallet?.id ?? wallet?.name;\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 { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
- "mappings": ";AAIA,SAAS,cAAAA,mBAAkB;AAC3B,SAAS,iBAAiB;;;ACG1B,SAAS,YAAY,sCAAsC;AAEpD,SAAS,qBACf,kBACA,kBACC;AACD,QAAM,aAAa,WAAW;AAC9B,QAAM,UAAU,WAAW,IAAI;AAE/B,QAAM,aAAa,QAAQ;AAAA,IAC1B,CAAC,WACA,+BAA+B,QAAQ,gBAAgB;AAAA,EACzD;AAEA,SAAO;AAAA;AAAA,IAEN,GAAI,iBACF,IAAI,CAAC,SAAS,WAAW,KAAK,CAAC,WAAW,OAAO,SAAS,IAAI,CAAC,EAC/D,OAAO,OAAO;AAAA;AAAA,IAGhB,GAAG,WAAW,OAAO,CAAC,WAAW,CAAC,iBAAiB,SAAS,OAAO,IAAI,CAAC;AAAA,EACzE;AACD;;;AC5BA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AFJO,SAAS,kBACf,kBACA,kBACC;AACD,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAC/E,QAAM,wBAAwB,eAAe,CAAC,UAAU,MAAM,qBAAqB;AAEnF,YAAU,MAAM;AACf,UAAM,aAAaC,YAAW;AAC9B,wBAAoB,qBAAqB,kBAAkB,gBAAgB,CAAC;AAE5E,UAAM,0BAA0B,WAAW,GAAG,YAAY,MAAM;AAC/D,0BAAoB,qBAAqB,kBAAkB,gBAAgB,CAAC;AAAA,IAC7E,CAAC;AAED,UAAM,4BAA4B,WAAW,GAAG,cAAc,CAAC,uBAAuB;AACrF;AAAA,QACC,qBAAqB,kBAAkB,gBAAgB;AAAA,QACvD;AAAA,MACD;AAAA,IACD,CAAC;AAED,WAAO,MAAM;AACZ,8BAAwB;AACxB,gCAA0B;AAAA,IAC3B;AAAA,EACD,GAAG,CAAC,kBAAkB,kBAAkB,qBAAqB,qBAAqB,CAAC;AACpF;",
4
+ "sourcesContent": ["// 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\twalletFilter?: (wallet: WalletWithRequiredFeatures) => boolean,\n) {\n\tconst setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);\n\tconst setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);\n\n\tuseEffect(() => {\n\t\tconst walletsApi = getWallets();\n\t\tsetWalletRegistered(getRegisteredWallets(preferredWallets, walletFilter));\n\n\t\tconst unsubscribeFromRegister = walletsApi.on('register', () => {\n\t\t\tsetWalletRegistered(getRegisteredWallets(preferredWallets, walletFilter));\n\t\t});\n\n\t\tconst unsubscribeFromUnregister = walletsApi.on('unregister', (unregisteredWallet) => {\n\t\t\tsetWalletUnregistered(\n\t\t\t\tgetRegisteredWallets(preferredWallets, walletFilter),\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, walletFilter, 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\tWalletWithRequiredFeatures,\n} from '@mysten/wallet-standard';\nimport { getWallets, isWalletWithRequiredFeatureSet } from '@mysten/wallet-standard';\n\nexport function getRegisteredWallets<AdditionalFeatures extends Wallet['features']>(\n\tpreferredWallets: string[],\n\twalletFilter?: (wallet: WalletWithRequiredFeatures) => boolean,\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) && (!walletFilter || walletFilter(wallet)),\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\nexport function getWalletUniqueIdentifier(wallet?: Wallet) {\n\treturn wallet?.id ?? wallet?.name;\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 { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n"],
5
+ "mappings": ";AAIA,SAAS,cAAAA,mBAAkB;AAC3B,SAAS,iBAAiB;;;ACI1B,SAAS,YAAY,sCAAsC;AAEpD,SAAS,qBACf,kBACA,cACC;AACD,QAAM,aAAa,WAAW;AAC9B,QAAM,UAAU,WAAW,IAAI;AAE/B,QAAM,aAAa,QAAQ;AAAA,IAC1B,CAAC,WACA,+BAA+B,MAAM,MAAM,CAAC,gBAAgB,aAAa,MAAM;AAAA,EACjF;AAEA,SAAO;AAAA;AAAA,IAEN,GAAI,iBACF,IAAI,CAAC,SAAS,WAAW,KAAK,CAAC,WAAW,OAAO,SAAS,IAAI,CAAC,EAC/D,OAAO,OAAO;AAAA;AAAA,IAGhB,GAAG,WAAW,OAAO,CAAC,WAAW,CAAC,iBAAiB,SAAS,OAAO,IAAI,CAAC;AAAA,EACzE;AACD;;;AC7BA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AFJO,SAAS,kBACf,kBACA,cACC;AACD,QAAM,sBAAsB,eAAe,CAAC,UAAU,MAAM,mBAAmB;AAC/E,QAAM,wBAAwB,eAAe,CAAC,UAAU,MAAM,qBAAqB;AAEnF,YAAU,MAAM;AACf,UAAM,aAAaC,YAAW;AAC9B,wBAAoB,qBAAqB,kBAAkB,YAAY,CAAC;AAExE,UAAM,0BAA0B,WAAW,GAAG,YAAY,MAAM;AAC/D,0BAAoB,qBAAqB,kBAAkB,YAAY,CAAC;AAAA,IACzE,CAAC;AAED,UAAM,4BAA4B,WAAW,GAAG,cAAc,CAAC,uBAAuB;AACrF;AAAA,QACC,qBAAqB,kBAAkB,YAAY;AAAA,QACnD;AAAA,MACD;AAAA,IACD,CAAC;AAED,WAAO,MAAM;AACZ,8BAAwB;AACxB,gCAA0B;AAAA,IAC3B;AAAA,EACD,GAAG,CAAC,kBAAkB,cAAc,qBAAqB,qBAAqB,CAAC;AAChF;",
6
6
  "names": ["getWallets", "getWallets"]
7
7
  }
@@ -15,9 +15,10 @@ export * from './hooks/wallet/useConnectWallet.js';
15
15
  export * from './hooks/wallet/useCurrentAccount.js';
16
16
  export * from './hooks/wallet/useCurrentWallet.js';
17
17
  export * from './hooks/wallet/useDisconnectWallet.js';
18
- export * from './hooks/wallet/useSignAndExecuteTransactionBlock.js';
18
+ export * from './hooks/wallet/useSignAndExecuteTransaction.js';
19
19
  export * from './hooks/wallet/useSignPersonalMessage.js';
20
- export * from './hooks/wallet/useSignTransactionBlock.js';
20
+ export * from './hooks/wallet/useSignTransaction.js';
21
+ export * from './hooks/wallet/useReportTransactionEffects.js';
21
22
  export * from './hooks/wallet/useSwitchAccount.js';
22
23
  export * from './hooks/wallet/useWallets.js';
23
24
  export * from './themes/lightTheme.js';