@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
package/dist/cjs/index.js CHANGED
@@ -76,10 +76,11 @@ __export(src_exports, {
76
76
  useCurrentAccount: () => useCurrentAccount,
77
77
  useCurrentWallet: () => useCurrentWallet,
78
78
  useDisconnectWallet: () => useDisconnectWallet,
79
+ useReportTransactionEffects: () => useReportTransactionEffects,
79
80
  useResolveSuiNSName: () => useResolveSuiNSName,
80
- useSignAndExecuteTransactionBlock: () => useSignAndExecuteTransactionBlock,
81
+ useSignAndExecuteTransaction: () => useSignAndExecuteTransaction,
81
82
  useSignPersonalMessage: () => useSignPersonalMessage,
82
- useSignTransactionBlock: () => useSignTransactionBlock,
83
+ useSignTransaction: () => useSignTransaction,
83
84
  useSuiClient: () => useSuiClient,
84
85
  useSuiClientContext: () => useSuiClientContext,
85
86
  useSuiClientInfiniteQuery: () => useSuiClientInfiniteQuery,
@@ -106,9 +107,10 @@ var walletMutationKeys = {
106
107
  autoconnectWallet: formMutationKeyFn("autoconnect-wallet"),
107
108
  disconnectWallet: formMutationKeyFn("disconnect-wallet"),
108
109
  signPersonalMessage: formMutationKeyFn("sign-personal-message"),
109
- signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
110
- signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
111
- switchAccount: formMutationKeyFn("switch-account")
110
+ signTransaction: formMutationKeyFn("sign-transaction"),
111
+ signAndExecuteTransaction: formMutationKeyFn("sign-and-execute-transaction"),
112
+ switchAccount: formMutationKeyFn("switch-account"),
113
+ reportTransactionEffects: formMutationKeyFn("report-transaction-effects")
112
114
  };
113
115
  function formMutationKeyFn(baseEntity) {
114
116
  return function mutationKeyFn(additionalKeys = []) {
@@ -152,7 +154,12 @@ function useConnectWallet({
152
154
  (account) => account.chains.some((chain) => chain.split(":")[0] === "sui")
153
155
  );
154
156
  const selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);
155
- setWalletConnected(wallet, connectedSuiAccounts, selectedAccount);
157
+ setWalletConnected(
158
+ wallet,
159
+ connectedSuiAccounts,
160
+ selectedAccount,
161
+ connectResult.supportedIntents
162
+ );
156
163
  return { accounts: connectedSuiAccounts };
157
164
  } catch (error) {
158
165
  setConnectionStatus("disconnected");
@@ -175,11 +182,11 @@ function getSelectedAccount(connectedAccounts, accountAddress) {
175
182
 
176
183
  // src/utils/walletUtils.ts
177
184
  var import_wallet_standard = require("@mysten/wallet-standard");
178
- function getRegisteredWallets(preferredWallets, requiredFeatures) {
185
+ function getRegisteredWallets(preferredWallets, walletFilter) {
179
186
  const walletsApi = (0, import_wallet_standard.getWallets)();
180
187
  const wallets = walletsApi.get();
181
188
  const suiWallets = wallets.filter(
182
- (wallet) => (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet, requiredFeatures)
189
+ (wallet) => (0, import_wallet_standard.isWalletWithRequiredFeatureSet)(wallet) && (!walletFilter || walletFilter(wallet))
183
190
  );
184
191
  return [
185
192
  // Preferred wallets, in order:
@@ -630,7 +637,7 @@ function useCurrentAccount() {
630
637
  }
631
638
 
632
639
  // src/components/AccountDropdownMenu.tsx
633
- var import_utils = require("@mysten/sui.js/utils");
640
+ var import_utils = require("@mysten/sui/utils");
634
641
  var DropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
635
642
  var import_clsx7 = __toESM(require("clsx"));
636
643
 
@@ -641,7 +648,7 @@ var import_react_query2 = require("@tanstack/react-query");
641
648
  var import_react10 = require("react");
642
649
 
643
650
  // src/components/SuiClientProvider.tsx
644
- var import_client = require("@mysten/sui.js/client");
651
+ var import_client = require("@mysten/sui/client");
645
652
  var import_react9 = require("react");
646
653
  var import_jsx_runtime16 = require("react/jsx-runtime");
647
654
  var SuiClientContext = (0, import_react9.createContext)(null);
@@ -752,6 +759,7 @@ var WalletAccountNotFoundError = class extends Error {
752
759
  function useCurrentWallet() {
753
760
  const currentWallet = useWalletStore((state) => state.currentWallet);
754
761
  const connectionStatus2 = useWalletStore((state) => state.connectionStatus);
762
+ const supportedIntents = useWalletStore((state) => state.supportedIntents);
755
763
  switch (connectionStatus2) {
756
764
  case "connecting":
757
765
  return {
@@ -759,7 +767,8 @@ function useCurrentWallet() {
759
767
  currentWallet: null,
760
768
  isDisconnected: false,
761
769
  isConnecting: true,
762
- isConnected: false
770
+ isConnected: false,
771
+ supportedIntents: []
763
772
  };
764
773
  case "disconnected":
765
774
  return {
@@ -767,7 +776,8 @@ function useCurrentWallet() {
767
776
  currentWallet: null,
768
777
  isDisconnected: true,
769
778
  isConnecting: false,
770
- isConnected: false
779
+ isConnected: false,
780
+ supportedIntents: []
771
781
  };
772
782
  case "connected": {
773
783
  return {
@@ -775,7 +785,8 @@ function useCurrentWallet() {
775
785
  currentWallet,
776
786
  isDisconnected: false,
777
787
  isConnecting: false,
778
- isConnected: true
788
+ isConnected: true,
789
+ supportedIntents
779
790
  };
780
791
  }
781
792
  }
@@ -962,9 +973,11 @@ function createInMemoryStore() {
962
973
  var SUI_WALLET_NAME = "Sui Wallet";
963
974
  var DEFAULT_STORAGE = typeof window !== "undefined" && window.localStorage ? localStorage : createInMemoryStore();
964
975
  var DEFAULT_STORAGE_KEY = "sui-dapp-kit:wallet-connection-info";
965
- var DEFAULT_REQUIRED_FEATURES = [
976
+ var SIGN_FEATURES = [
977
+ "sui:signTransaction",
966
978
  "sui:signTransactionBlock"
967
979
  ];
980
+ var DEFAULT_WALLET_FILTER = (wallet) => SIGN_FEATURES.some((feature) => wallet.features[feature]);
968
981
  var DEFAULT_PREFERRED_WALLETS = [SUI_WALLET_NAME, import_zksend.STASHED_WALLET_NAME];
969
982
 
970
983
  // src/hooks/wallet/useAutoConnectWallet.ts
@@ -1070,7 +1083,9 @@ function useStashedWallet(config) {
1070
1083
  }
1071
1084
 
1072
1085
  // src/hooks/wallet/useUnsafeBurnerWallet.ts
1073
- var import_ed25519 = require("@mysten/sui.js/keypairs/ed25519");
1086
+ var import_ed25519 = require("@mysten/sui/keypairs/ed25519");
1087
+ var import_transactions = require("@mysten/sui/transactions");
1088
+ var import_utils2 = require("@mysten/sui/utils");
1074
1089
  var import_wallet_standard2 = require("@mysten/wallet-standard");
1075
1090
  var import_react13 = require("react");
1076
1091
  var WALLET_NAME = "Unsafe Burner Wallet";
@@ -1085,7 +1100,7 @@ function useUnsafeBurnerWallet(enabled) {
1085
1100
  }, [enabled, suiClient]);
1086
1101
  }
1087
1102
  function registerUnsafeBurnerWallet(suiClient) {
1088
- var _on, _connect, _signPersonalMessage, _signTransactionBlock, _signAndExecuteTransactionBlock;
1103
+ var _on, _connect, _signPersonalMessage, _signTransactionBlock, _signTransaction, _signAndExecuteTransactionBlock, _signAndExecuteTransaction;
1089
1104
  const walletsApi = (0, import_wallet_standard2.getWallets)();
1090
1105
  const registeredWallets = walletsApi.get();
1091
1106
  if (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {
@@ -1102,7 +1117,12 @@ function registerUnsafeBurnerWallet(suiClient) {
1102
1117
  address: keypair.getPublicKey().toSuiAddress(),
1103
1118
  publicKey: keypair.getPublicKey().toSuiBytes(),
1104
1119
  chains: ["sui:unknown"],
1105
- features: ["sui:signAndExecuteTransactionBlock", "sui:signTransactionBlock"]
1120
+ features: [
1121
+ "sui:signAndExecuteTransactionBlock",
1122
+ "sui:signTransactionBlock",
1123
+ "sui:signTransaction",
1124
+ "sui:signAndExecuteTransaction"
1125
+ ]
1106
1126
  });
1107
1127
  class UnsafeBurnerWallet {
1108
1128
  constructor() {
@@ -1127,14 +1147,52 @@ function registerUnsafeBurnerWallet(suiClient) {
1127
1147
  signature
1128
1148
  };
1129
1149
  });
1150
+ __privateAdd(this, _signTransaction, async (transactionInput) => {
1151
+ const { bytes, signature } = await import_transactions.Transaction.from(
1152
+ await transactionInput.transaction.toJSON()
1153
+ ).sign({
1154
+ client: suiClient,
1155
+ signer: keypair
1156
+ });
1157
+ transactionInput.signal?.throwIfAborted();
1158
+ return {
1159
+ bytes,
1160
+ signature
1161
+ };
1162
+ });
1130
1163
  __privateAdd(this, _signAndExecuteTransactionBlock, async (transactionInput) => {
1131
- return await suiClient.signAndExecuteTransactionBlock({
1132
- signer: keypair,
1133
- transactionBlock: transactionInput.transactionBlock,
1134
- options: transactionInput.options,
1135
- requestType: transactionInput.requestType
1164
+ const { bytes, signature } = await transactionInput.transactionBlock.sign({
1165
+ client: suiClient,
1166
+ signer: keypair
1167
+ });
1168
+ return suiClient.executeTransactionBlock({
1169
+ signature,
1170
+ transactionBlock: bytes,
1171
+ options: transactionInput.options
1136
1172
  });
1137
1173
  });
1174
+ __privateAdd(this, _signAndExecuteTransaction, async (transactionInput) => {
1175
+ const { bytes, signature } = await import_transactions.Transaction.from(
1176
+ await transactionInput.transaction.toJSON()
1177
+ ).sign({
1178
+ client: suiClient,
1179
+ signer: keypair
1180
+ });
1181
+ transactionInput.signal?.throwIfAborted();
1182
+ const { rawEffects, digest } = await suiClient.executeTransactionBlock({
1183
+ signature,
1184
+ transactionBlock: bytes,
1185
+ options: {
1186
+ showRawEffects: true
1187
+ }
1188
+ });
1189
+ return {
1190
+ bytes,
1191
+ signature,
1192
+ digest,
1193
+ effects: (0, import_utils2.toB64)(new Uint8Array(rawEffects))
1194
+ };
1195
+ });
1138
1196
  }
1139
1197
  get version() {
1140
1198
  return "1.0.0";
@@ -1173,6 +1231,14 @@ function registerUnsafeBurnerWallet(suiClient) {
1173
1231
  "sui:signAndExecuteTransactionBlock": {
1174
1232
  version: "1.0.0",
1175
1233
  signAndExecuteTransactionBlock: __privateGet(this, _signAndExecuteTransactionBlock)
1234
+ },
1235
+ "sui:signTransaction": {
1236
+ version: "2.0.0",
1237
+ signTransaction: __privateGet(this, _signTransaction)
1238
+ },
1239
+ "sui:signAndExecuteTransaction": {
1240
+ version: "2.0.0",
1241
+ signAndExecuteTransaction: __privateGet(this, _signAndExecuteTransaction)
1176
1242
  }
1177
1243
  };
1178
1244
  }
@@ -1181,7 +1247,9 @@ function registerUnsafeBurnerWallet(suiClient) {
1181
1247
  _connect = new WeakMap();
1182
1248
  _signPersonalMessage = new WeakMap();
1183
1249
  _signTransactionBlock = new WeakMap();
1250
+ _signTransaction = new WeakMap();
1184
1251
  _signAndExecuteTransactionBlock = new WeakMap();
1252
+ _signAndExecuteTransaction = new WeakMap();
1185
1253
  return walletsApi.register(new UnsafeBurnerWallet());
1186
1254
  }
1187
1255
 
@@ -1206,18 +1274,18 @@ function useWalletPropertiesChanged() {
1206
1274
  // src/hooks/wallet/useWalletsChanged.ts
1207
1275
  var import_wallet_standard3 = require("@mysten/wallet-standard");
1208
1276
  var import_react15 = require("react");
1209
- function useWalletsChanged(preferredWallets, requiredFeatures) {
1277
+ function useWalletsChanged(preferredWallets, walletFilter) {
1210
1278
  const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);
1211
1279
  const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);
1212
1280
  (0, import_react15.useEffect)(() => {
1213
1281
  const walletsApi = (0, import_wallet_standard3.getWallets)();
1214
- setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
1282
+ setWalletRegistered(getRegisteredWallets(preferredWallets, walletFilter));
1215
1283
  const unsubscribeFromRegister = walletsApi.on("register", () => {
1216
- setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
1284
+ setWalletRegistered(getRegisteredWallets(preferredWallets, walletFilter));
1217
1285
  });
1218
1286
  const unsubscribeFromUnregister = walletsApi.on("unregister", (unregisteredWallet) => {
1219
1287
  setWalletUnregistered(
1220
- getRegisteredWallets(preferredWallets, requiredFeatures),
1288
+ getRegisteredWallets(preferredWallets, walletFilter),
1221
1289
  unregisteredWallet
1222
1290
  );
1223
1291
  });
@@ -1225,7 +1293,7 @@ function useWalletsChanged(preferredWallets, requiredFeatures) {
1225
1293
  unsubscribeFromRegister();
1226
1294
  unsubscribeFromUnregister();
1227
1295
  };
1228
- }, [preferredWallets, requiredFeatures, setWalletRegistered, setWalletUnregistered]);
1296
+ }, [preferredWallets, walletFilter, setWalletRegistered, setWalletUnregistered]);
1229
1297
  }
1230
1298
 
1231
1299
  // src/themes/lightTheme.ts
@@ -1307,19 +1375,21 @@ function createWalletStore({
1307
1375
  lastConnectedAccountAddress: null,
1308
1376
  lastConnectedWalletName: null,
1309
1377
  connectionStatus: "disconnected",
1378
+ supportedIntents: [],
1310
1379
  setConnectionStatus(connectionStatus2) {
1311
1380
  set(() => ({
1312
1381
  connectionStatus: connectionStatus2
1313
1382
  }));
1314
1383
  },
1315
- setWalletConnected(wallet, connectedAccounts, selectedAccount) {
1384
+ setWalletConnected(wallet, connectedAccounts, selectedAccount, supportedIntents = []) {
1316
1385
  set(() => ({
1317
1386
  accounts: connectedAccounts,
1318
1387
  currentWallet: wallet,
1319
1388
  currentAccount: selectedAccount,
1320
1389
  lastConnectedWalletName: getWalletUniqueIdentifier(wallet),
1321
1390
  lastConnectedAccountAddress: selectedAccount?.address,
1322
- connectionStatus: "connected"
1391
+ connectionStatus: "connected",
1392
+ supportedIntents
1323
1393
  }));
1324
1394
  },
1325
1395
  setWalletDisconnected() {
@@ -1329,7 +1399,8 @@ function createWalletStore({
1329
1399
  currentAccount: null,
1330
1400
  lastConnectedWalletName: null,
1331
1401
  lastConnectedAccountAddress: null,
1332
- connectionStatus: "disconnected"
1402
+ connectionStatus: "disconnected",
1403
+ supportedIntents: []
1333
1404
  }));
1334
1405
  },
1335
1406
  setAccountSwitched(selectedAccount) {
@@ -1350,7 +1421,8 @@ function createWalletStore({
1350
1421
  currentAccount: null,
1351
1422
  lastConnectedWalletName: null,
1352
1423
  lastConnectedAccountAddress: null,
1353
- connectionStatus: "disconnected"
1424
+ connectionStatus: "disconnected",
1425
+ supportedIntents: []
1354
1426
  }));
1355
1427
  } else {
1356
1428
  set(() => ({ wallets: updatedWallets }));
@@ -1476,7 +1548,7 @@ function cssStringFromTheme(theme) {
1476
1548
  var import_jsx_runtime22 = require("react/jsx-runtime");
1477
1549
  function WalletProvider({
1478
1550
  preferredWallets = DEFAULT_PREFERRED_WALLETS,
1479
- requiredFeatures = DEFAULT_REQUIRED_FEATURES,
1551
+ walletFilter = DEFAULT_WALLET_FILTER,
1480
1552
  storage = DEFAULT_STORAGE,
1481
1553
  storageKey = DEFAULT_STORAGE_KEY,
1482
1554
  enableUnsafeBurner = false,
@@ -1488,7 +1560,7 @@ function WalletProvider({
1488
1560
  const storeRef = (0, import_react16.useRef)(
1489
1561
  createWalletStore({
1490
1562
  autoConnectEnabled: autoConnect,
1491
- wallets: getRegisteredWallets(preferredWallets, requiredFeatures),
1563
+ wallets: getRegisteredWallets(preferredWallets, walletFilter),
1492
1564
  storage: storage || createInMemoryStore(),
1493
1565
  storageKey
1494
1566
  })
@@ -1497,7 +1569,7 @@ function WalletProvider({
1497
1569
  WalletConnectionManager,
1498
1570
  {
1499
1571
  preferredWallets,
1500
- requiredFeatures,
1572
+ walletFilter,
1501
1573
  enableUnsafeBurner,
1502
1574
  stashedWallet,
1503
1575
  children: [
@@ -1509,12 +1581,12 @@ function WalletProvider({
1509
1581
  }
1510
1582
  function WalletConnectionManager({
1511
1583
  preferredWallets = DEFAULT_PREFERRED_WALLETS,
1512
- requiredFeatures = DEFAULT_REQUIRED_FEATURES,
1584
+ walletFilter = DEFAULT_WALLET_FILTER,
1513
1585
  enableUnsafeBurner = false,
1514
1586
  stashedWallet,
1515
1587
  children
1516
1588
  }) {
1517
- useWalletsChanged(preferredWallets, requiredFeatures);
1589
+ useWalletsChanged(preferredWallets, walletFilter);
1518
1590
  useWalletPropertiesChanged();
1519
1591
  useStashedWallet(stashedWallet);
1520
1592
  useUnsafeBurnerWallet(enableUnsafeBurner);
@@ -1602,74 +1674,126 @@ function useSuiClientQueries({
1602
1674
  });
1603
1675
  }
1604
1676
 
1605
- // src/hooks/wallet/useSignAndExecuteTransactionBlock.ts
1677
+ // src/hooks/wallet/useSignAndExecuteTransaction.ts
1678
+ var import_utils4 = require("@mysten/sui/utils");
1679
+ var import_wallet_standard4 = require("@mysten/wallet-standard");
1680
+ var import_react_query10 = require("@tanstack/react-query");
1681
+
1682
+ // src/hooks/wallet/useReportTransactionEffects.ts
1683
+ var import_utils3 = require("@mysten/sui/utils");
1606
1684
  var import_react_query9 = require("@tanstack/react-query");
1607
- function useSignAndExecuteTransactionBlock({
1685
+ function useReportTransactionEffects({
1608
1686
  mutationKey,
1609
- executeFromWallet,
1610
1687
  ...mutationOptions
1611
1688
  } = {}) {
1612
1689
  const { currentWallet } = useCurrentWallet();
1613
1690
  const currentAccount = useCurrentAccount();
1614
- const client = useSuiClient();
1615
1691
  return (0, import_react_query9.useMutation)({
1616
- mutationKey: walletMutationKeys.signAndExecuteTransactionBlock(mutationKey),
1617
- mutationFn: async ({ requestType, options, ...signTransactionBlockArgs }) => {
1692
+ mutationKey: walletMutationKeys.reportTransactionEffects(mutationKey),
1693
+ mutationFn: async ({ effects, chain = currentWallet?.chains[0], account = currentAccount }) => {
1618
1694
  if (!currentWallet) {
1619
1695
  throw new WalletNotConnectedError("No wallet is connected.");
1620
1696
  }
1621
- const signerAccount = signTransactionBlockArgs.account ?? currentAccount;
1622
- if (!signerAccount) {
1697
+ if (!account) {
1623
1698
  throw new WalletNoAccountSelectedError(
1624
- "No wallet account is selected to sign and execute the transaction block with."
1699
+ "No wallet account is selected to report transaction effects for"
1625
1700
  );
1626
1701
  }
1627
- if (executeFromWallet) {
1628
- const walletFeature2 = currentWallet.features["sui:signAndExecuteTransactionBlock"];
1629
- if (!walletFeature2) {
1630
- throw new WalletFeatureNotSupportedError(
1631
- "This wallet doesn't support the `signAndExecuteTransactionBlock` feature."
1632
- );
1633
- }
1634
- return walletFeature2.signAndExecuteTransactionBlock({
1635
- ...signTransactionBlockArgs,
1636
- account: signerAccount,
1637
- chain: signTransactionBlockArgs.chain ?? signerAccount.chains[0],
1638
- requestType,
1639
- options
1702
+ const reportTransactionEffectsFeature = currentWallet.features["sui:reportTransactionEffects"];
1703
+ if (reportTransactionEffectsFeature) {
1704
+ return await reportTransactionEffectsFeature.reportTransactionEffects({
1705
+ effects: Array.isArray(effects) ? (0, import_utils3.toB64)(new Uint8Array(effects)) : effects,
1706
+ account,
1707
+ chain: chain ?? currentWallet?.chains[0]
1640
1708
  });
1641
1709
  }
1642
- const walletFeature = currentWallet.features["sui:signTransactionBlock"];
1643
- if (!walletFeature) {
1710
+ },
1711
+ ...mutationOptions
1712
+ });
1713
+ }
1714
+
1715
+ // src/hooks/wallet/useSignAndExecuteTransaction.ts
1716
+ function useSignAndExecuteTransaction({
1717
+ mutationKey,
1718
+ execute,
1719
+ ...mutationOptions
1720
+ } = {}) {
1721
+ const { currentWallet, supportedIntents } = useCurrentWallet();
1722
+ const currentAccount = useCurrentAccount();
1723
+ const client = useSuiClient();
1724
+ const { mutate: reportTransactionEffects } = useReportTransactionEffects();
1725
+ const executeTransaction = execute ?? (async ({ bytes, signature }) => {
1726
+ const { digest, rawEffects } = await client.executeTransactionBlock({
1727
+ transactionBlock: bytes,
1728
+ signature,
1729
+ options: {
1730
+ showRawEffects: true
1731
+ }
1732
+ });
1733
+ return {
1734
+ digest,
1735
+ rawEffects,
1736
+ effects: (0, import_utils4.toB64)(new Uint8Array(rawEffects)),
1737
+ bytes,
1738
+ signature
1739
+ };
1740
+ });
1741
+ return (0, import_react_query10.useMutation)({
1742
+ mutationKey: walletMutationKeys.signAndExecuteTransaction(mutationKey),
1743
+ mutationFn: async ({ transaction, ...signTransactionArgs }) => {
1744
+ if (!currentWallet) {
1745
+ throw new WalletNotConnectedError("No wallet is connected.");
1746
+ }
1747
+ const signerAccount = signTransactionArgs.account ?? currentAccount;
1748
+ if (!signerAccount) {
1749
+ throw new WalletNoAccountSelectedError(
1750
+ "No wallet account is selected to sign the transaction with."
1751
+ );
1752
+ }
1753
+ const chain = signTransactionArgs.chain ?? signerAccount?.chains[0];
1754
+ if (!currentWallet.features["sui:signTransaction"] && !currentWallet.features["sui:signTransactionBlock"]) {
1644
1755
  throw new WalletFeatureNotSupportedError(
1645
- "This wallet doesn't support the `signTransactionBlock` feature."
1756
+ "This wallet doesn't support the `signTransaction` feature."
1646
1757
  );
1647
1758
  }
1648
- const { signature, transactionBlockBytes } = await walletFeature.signTransactionBlock({
1649
- ...signTransactionBlockArgs,
1759
+ const { signature, bytes } = await (0, import_wallet_standard4.signTransaction)(currentWallet, {
1760
+ ...signTransactionArgs,
1761
+ transaction: {
1762
+ async toJSON() {
1763
+ return typeof transaction === "string" ? transaction : await transaction.toJSON({
1764
+ supportedIntents,
1765
+ client
1766
+ });
1767
+ }
1768
+ },
1650
1769
  account: signerAccount,
1651
- chain: signTransactionBlockArgs.chain ?? signerAccount.chains[0]
1652
- });
1653
- return client.executeTransactionBlock({
1654
- transactionBlock: transactionBlockBytes,
1655
- signature,
1656
- requestType,
1657
- options
1770
+ chain: signTransactionArgs.chain ?? signerAccount.chains[0]
1658
1771
  });
1772
+ const result = await executeTransaction({ bytes, signature });
1773
+ let effects;
1774
+ if ("effects" in result && result.effects?.bcs) {
1775
+ effects = result.effects.bcs;
1776
+ } else if ("rawEffects" in result) {
1777
+ effects = (0, import_utils4.toB64)(new Uint8Array(result.rawEffects));
1778
+ } else {
1779
+ throw new Error("Could not parse effects from transaction result.");
1780
+ }
1781
+ reportTransactionEffects({ effects, account: signerAccount, chain });
1782
+ return result;
1659
1783
  },
1660
1784
  ...mutationOptions
1661
1785
  });
1662
1786
  }
1663
1787
 
1664
1788
  // src/hooks/wallet/useSignPersonalMessage.ts
1665
- var import_react_query10 = require("@tanstack/react-query");
1789
+ var import_react_query11 = require("@tanstack/react-query");
1666
1790
  function useSignPersonalMessage({
1667
1791
  mutationKey,
1668
1792
  ...mutationOptions
1669
1793
  } = {}) {
1670
1794
  const { currentWallet } = useCurrentWallet();
1671
1795
  const currentAccount = useCurrentAccount();
1672
- return (0, import_react_query10.useMutation)({
1796
+ return (0, import_react_query11.useMutation)({
1673
1797
  mutationKey: walletMutationKeys.signPersonalMessage(mutationKey),
1674
1798
  mutationFn: async (signPersonalMessageArgs) => {
1675
1799
  if (!currentWallet) {
@@ -1707,37 +1831,58 @@ function useSignPersonalMessage({
1707
1831
  });
1708
1832
  }
1709
1833
 
1710
- // src/hooks/wallet/useSignTransactionBlock.ts
1711
- var import_react_query11 = require("@tanstack/react-query");
1712
- function useSignTransactionBlock({
1834
+ // src/hooks/wallet/useSignTransaction.ts
1835
+ var import_wallet_standard5 = require("@mysten/wallet-standard");
1836
+ var import_react_query12 = require("@tanstack/react-query");
1837
+ function useSignTransaction({
1713
1838
  mutationKey,
1714
1839
  ...mutationOptions
1715
1840
  } = {}) {
1716
1841
  const { currentWallet } = useCurrentWallet();
1717
1842
  const currentAccount = useCurrentAccount();
1718
- return (0, import_react_query11.useMutation)({
1719
- mutationKey: walletMutationKeys.signTransactionBlock(mutationKey),
1720
- mutationFn: async (signTransactionBlockArgs) => {
1843
+ const client = useSuiClient();
1844
+ const { mutate: reportTransactionEffects } = useReportTransactionEffects();
1845
+ return (0, import_react_query12.useMutation)({
1846
+ mutationKey: walletMutationKeys.signTransaction(mutationKey),
1847
+ mutationFn: async ({ transaction, ...signTransactionArgs }) => {
1721
1848
  if (!currentWallet) {
1722
1849
  throw new WalletNotConnectedError("No wallet is connected.");
1723
1850
  }
1724
- const signerAccount = signTransactionBlockArgs.account ?? currentAccount;
1851
+ const signerAccount = signTransactionArgs.account ?? currentAccount;
1725
1852
  if (!signerAccount) {
1726
1853
  throw new WalletNoAccountSelectedError(
1727
- "No wallet account is selected to sign the transaction block with."
1854
+ "No wallet account is selected to sign the transaction with."
1728
1855
  );
1729
1856
  }
1730
- const walletFeature = currentWallet.features["sui:signTransactionBlock"];
1731
- if (!walletFeature) {
1857
+ if (!currentWallet.features["sui:signTransaction"] && !currentWallet.features["sui:signTransactionBlock"]) {
1732
1858
  throw new WalletFeatureNotSupportedError(
1733
- "This wallet doesn't support the `SignTransactionBlock` feature."
1859
+ "This wallet doesn't support the `signTransaction` feature."
1734
1860
  );
1735
1861
  }
1736
- return await walletFeature.signTransactionBlock({
1737
- ...signTransactionBlockArgs,
1862
+ const { bytes, signature } = await (0, import_wallet_standard5.signTransaction)(currentWallet, {
1863
+ ...signTransactionArgs,
1864
+ transaction: {
1865
+ toJSON: async () => {
1866
+ return typeof transaction === "string" ? transaction : await transaction.toJSON({
1867
+ supportedIntents: [],
1868
+ client
1869
+ });
1870
+ }
1871
+ },
1738
1872
  account: signerAccount,
1739
- chain: signTransactionBlockArgs.chain ?? signerAccount.chains[0]
1873
+ chain: signTransactionArgs.chain ?? signerAccount.chains[0]
1740
1874
  });
1875
+ return {
1876
+ bytes,
1877
+ signature,
1878
+ reportTransactionEffects: (effects) => {
1879
+ reportTransactionEffects({
1880
+ effects,
1881
+ account: signerAccount,
1882
+ chain: signTransactionArgs.chain ?? signerAccount.chains[0]
1883
+ });
1884
+ }
1885
+ };
1741
1886
  },
1742
1887
  ...mutationOptions
1743
1888
  });