thirdweb 5.80.1-nightly-430475913d30ef7a30cb3092f6ef09c0c998a9b6-20250106000343 → 5.82.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 (214) hide show
  1. package/dist/cjs/adapters/ethers5.js +1 -1
  2. package/dist/cjs/adapters/ethers5.js.map +1 -1
  3. package/dist/cjs/auth/verify-hash.js +13 -8
  4. package/dist/cjs/auth/verify-hash.js.map +1 -1
  5. package/dist/cjs/contract/types.js +3 -0
  6. package/dist/cjs/contract/types.js.map +1 -0
  7. package/dist/cjs/exports/thirdweb.js +5 -1
  8. package/dist/cjs/exports/thirdweb.js.map +1 -1
  9. package/dist/cjs/exports/transaction.js +3 -1
  10. package/dist/cjs/exports/transaction.js.map +1 -1
  11. package/dist/cjs/exports/wallets.js +3 -1
  12. package/dist/cjs/exports/wallets.js.map +1 -1
  13. package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +1 -1
  14. package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
  15. package/dist/cjs/extensions/types.js +3 -0
  16. package/dist/cjs/extensions/types.js.map +1 -0
  17. package/dist/cjs/gas/estimate-l1-fee.js +3 -4
  18. package/dist/cjs/gas/estimate-l1-fee.js.map +1 -1
  19. package/dist/cjs/react/core/hooks/contract/useReadContract.js +31 -29
  20. package/dist/cjs/react/core/hooks/contract/useReadContract.js.map +1 -1
  21. package/dist/cjs/react/core/hooks/types.js +3 -0
  22. package/dist/cjs/react/core/hooks/types.js.map +1 -0
  23. package/dist/cjs/transaction/actions/eip7702/authorization.js +33 -0
  24. package/dist/cjs/transaction/actions/eip7702/authorization.js.map +1 -0
  25. package/dist/cjs/transaction/actions/estimate-gas.js +16 -4
  26. package/dist/cjs/transaction/actions/estimate-gas.js.map +1 -1
  27. package/dist/cjs/transaction/actions/send-transaction.js +32 -1
  28. package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
  29. package/dist/cjs/transaction/actions/to-serializable-transaction.js +13 -4
  30. package/dist/cjs/transaction/actions/to-serializable-transaction.js.map +1 -1
  31. package/dist/cjs/transaction/prepare-transaction.js.map +1 -1
  32. package/dist/cjs/transaction/serialize-transaction.js +11 -0
  33. package/dist/cjs/transaction/serialize-transaction.js.map +1 -1
  34. package/dist/cjs/utils/abi/decodeError.js +3 -3
  35. package/dist/cjs/utils/abi/decodeError.js.map +1 -1
  36. package/dist/cjs/utils/abi/decodeFunctionData.js +3 -3
  37. package/dist/cjs/utils/abi/decodeFunctionData.js.map +1 -1
  38. package/dist/cjs/utils/abi/decodeFunctionResult.js +3 -3
  39. package/dist/cjs/utils/abi/decodeFunctionResult.js.map +1 -1
  40. package/dist/cjs/utils/hashing/hashMessage.js +2 -2
  41. package/dist/cjs/utils/hashing/hashMessage.js.map +1 -1
  42. package/dist/cjs/version.js +1 -1
  43. package/dist/cjs/version.js.map +1 -1
  44. package/dist/cjs/wallets/create-wallet.js +16 -0
  45. package/dist/cjs/wallets/create-wallet.js.map +1 -1
  46. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +9 -3
  47. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  48. package/dist/cjs/wallets/in-app/core/wallet/index.js +8 -10
  49. package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
  50. package/dist/cjs/wallets/private-key.js +9 -0
  51. package/dist/cjs/wallets/private-key.js.map +1 -1
  52. package/dist/cjs/wallets/smart/index.js +34 -32
  53. package/dist/cjs/wallets/smart/index.js.map +1 -1
  54. package/dist/cjs/wallets/smart/lib/signing.js +139 -54
  55. package/dist/cjs/wallets/smart/lib/signing.js.map +1 -1
  56. package/dist/cjs/wallets/smart/presets/7579.js +11 -10
  57. package/dist/cjs/wallets/smart/presets/7579.js.map +1 -1
  58. package/dist/cjs/wallets/smart/smart-wallet.js +12 -10
  59. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
  60. package/dist/esm/adapters/ethers5.js +1 -1
  61. package/dist/esm/adapters/ethers5.js.map +1 -1
  62. package/dist/esm/auth/verify-hash.js +13 -9
  63. package/dist/esm/auth/verify-hash.js.map +1 -1
  64. package/dist/esm/contract/types.js +2 -0
  65. package/dist/esm/contract/types.js.map +1 -0
  66. package/dist/esm/exports/thirdweb.js +2 -0
  67. package/dist/esm/exports/thirdweb.js.map +1 -1
  68. package/dist/esm/exports/transaction.js +1 -0
  69. package/dist/esm/exports/transaction.js.map +1 -1
  70. package/dist/esm/exports/wallets.js +1 -0
  71. package/dist/esm/exports/wallets.js.map +1 -1
  72. package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +1 -1
  73. package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
  74. package/dist/esm/extensions/types.js +2 -0
  75. package/dist/esm/extensions/types.js.map +1 -0
  76. package/dist/esm/gas/estimate-l1-fee.js +2 -3
  77. package/dist/esm/gas/estimate-l1-fee.js.map +1 -1
  78. package/dist/esm/react/core/hooks/contract/useReadContract.js +31 -29
  79. package/dist/esm/react/core/hooks/contract/useReadContract.js.map +1 -1
  80. package/dist/esm/react/core/hooks/types.js +2 -0
  81. package/dist/esm/react/core/hooks/types.js.map +1 -0
  82. package/dist/esm/transaction/actions/eip7702/authorization.js +30 -0
  83. package/dist/esm/transaction/actions/eip7702/authorization.js.map +1 -0
  84. package/dist/esm/transaction/actions/estimate-gas.js +16 -4
  85. package/dist/esm/transaction/actions/estimate-gas.js.map +1 -1
  86. package/dist/esm/transaction/actions/send-transaction.js +32 -1
  87. package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
  88. package/dist/esm/transaction/actions/to-serializable-transaction.js +13 -4
  89. package/dist/esm/transaction/actions/to-serializable-transaction.js.map +1 -1
  90. package/dist/esm/transaction/prepare-transaction.js.map +1 -1
  91. package/dist/esm/transaction/serialize-transaction.js +11 -0
  92. package/dist/esm/transaction/serialize-transaction.js.map +1 -1
  93. package/dist/esm/utils/abi/decodeError.js +3 -3
  94. package/dist/esm/utils/abi/decodeError.js.map +1 -1
  95. package/dist/esm/utils/abi/decodeFunctionData.js +3 -3
  96. package/dist/esm/utils/abi/decodeFunctionData.js.map +1 -1
  97. package/dist/esm/utils/abi/decodeFunctionResult.js +3 -3
  98. package/dist/esm/utils/abi/decodeFunctionResult.js.map +1 -1
  99. package/dist/esm/utils/hashing/hashMessage.js +1 -1
  100. package/dist/esm/utils/hashing/hashMessage.js.map +1 -1
  101. package/dist/esm/version.js +1 -1
  102. package/dist/esm/version.js.map +1 -1
  103. package/dist/esm/wallets/create-wallet.js +16 -0
  104. package/dist/esm/wallets/create-wallet.js.map +1 -1
  105. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +9 -3
  106. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  107. package/dist/esm/wallets/in-app/core/wallet/index.js +8 -10
  108. package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
  109. package/dist/esm/wallets/private-key.js +9 -0
  110. package/dist/esm/wallets/private-key.js.map +1 -1
  111. package/dist/esm/wallets/smart/index.js +32 -30
  112. package/dist/esm/wallets/smart/index.js.map +1 -1
  113. package/dist/esm/wallets/smart/lib/signing.js +137 -53
  114. package/dist/esm/wallets/smart/lib/signing.js.map +1 -1
  115. package/dist/esm/wallets/smart/presets/7579.js +11 -10
  116. package/dist/esm/wallets/smart/presets/7579.js.map +1 -1
  117. package/dist/esm/wallets/smart/smart-wallet.js +12 -10
  118. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
  119. package/dist/types/auth/verify-hash.d.ts +6 -0
  120. package/dist/types/auth/verify-hash.d.ts.map +1 -1
  121. package/dist/types/contract/types.d.ts +7 -0
  122. package/dist/types/contract/types.d.ts.map +1 -0
  123. package/dist/types/exports/thirdweb.d.ts +6 -0
  124. package/dist/types/exports/thirdweb.d.ts.map +1 -1
  125. package/dist/types/exports/transaction.d.ts +5 -0
  126. package/dist/types/exports/transaction.d.ts.map +1 -1
  127. package/dist/types/exports/wallets.d.ts +1 -0
  128. package/dist/types/exports/wallets.d.ts.map +1 -1
  129. package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts +1 -1
  130. package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts.map +1 -1
  131. package/dist/types/extensions/types.d.ts +4 -0
  132. package/dist/types/extensions/types.d.ts.map +1 -0
  133. package/dist/types/gas/estimate-l1-fee.d.ts.map +1 -1
  134. package/dist/types/react/core/hooks/contract/useReadContract.d.ts +9 -16
  135. package/dist/types/react/core/hooks/contract/useReadContract.d.ts.map +1 -1
  136. package/dist/types/react/core/hooks/types.d.ts +13 -0
  137. package/dist/types/react/core/hooks/types.d.ts.map +1 -0
  138. package/dist/types/transaction/actions/eip7702/authorization.d.ts +48 -0
  139. package/dist/types/transaction/actions/eip7702/authorization.d.ts.map +1 -0
  140. package/dist/types/transaction/actions/estimate-gas.d.ts +3 -1
  141. package/dist/types/transaction/actions/estimate-gas.d.ts.map +1 -1
  142. package/dist/types/transaction/actions/send-transaction.d.ts +31 -0
  143. package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
  144. package/dist/types/transaction/actions/to-serializable-transaction.d.ts +19 -2
  145. package/dist/types/transaction/actions/to-serializable-transaction.d.ts.map +1 -1
  146. package/dist/types/transaction/prepare-transaction.d.ts +2 -0
  147. package/dist/types/transaction/prepare-transaction.d.ts.map +1 -1
  148. package/dist/types/transaction/serialize-transaction.d.ts +2 -0
  149. package/dist/types/transaction/serialize-transaction.d.ts.map +1 -1
  150. package/dist/types/utils/abi/decodeError.d.ts +2 -2
  151. package/dist/types/utils/abi/decodeError.d.ts.map +1 -1
  152. package/dist/types/utils/abi/decodeFunctionData.d.ts +6 -4
  153. package/dist/types/utils/abi/decodeFunctionData.d.ts.map +1 -1
  154. package/dist/types/utils/abi/decodeFunctionResult.d.ts +6 -4
  155. package/dist/types/utils/abi/decodeFunctionResult.d.ts.map +1 -1
  156. package/dist/types/utils/hashing/hashMessage.d.ts +1 -1
  157. package/dist/types/utils/hashing/hashMessage.d.ts.map +1 -1
  158. package/dist/types/version.d.ts +1 -1
  159. package/dist/types/version.d.ts.map +1 -1
  160. package/dist/types/wallets/create-wallet.d.ts +16 -0
  161. package/dist/types/wallets/create-wallet.d.ts.map +1 -1
  162. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
  163. package/dist/types/wallets/in-app/core/wallet/index.d.ts +10 -2
  164. package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
  165. package/dist/types/wallets/interfaces/wallet.d.ts +9 -0
  166. package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
  167. package/dist/types/wallets/private-key.d.ts.map +1 -1
  168. package/dist/types/wallets/smart/index.d.ts +2 -2
  169. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  170. package/dist/types/wallets/smart/lib/signing.d.ts +46 -2
  171. package/dist/types/wallets/smart/lib/signing.d.ts.map +1 -1
  172. package/dist/types/wallets/smart/presets/7579.d.ts.map +1 -1
  173. package/package.json +1 -1
  174. package/src/adapters/ethers5.ts +1 -1
  175. package/src/auth/verify-hash.ts +12 -9
  176. package/src/contract/types.ts +8 -0
  177. package/src/exports/thirdweb.ts +10 -0
  178. package/src/exports/transaction.ts +9 -0
  179. package/src/exports/wallets.ts +2 -0
  180. package/src/extensions/erc721/lazyMinting/read/getBatchesToReveal.ts +2 -2
  181. package/src/extensions/types.ts +6 -0
  182. package/src/gas/estimate-l1-fee.ts +2 -3
  183. package/src/react/core/hooks/contract/useReadContract.ts +83 -74
  184. package/src/react/core/hooks/types.ts +13 -0
  185. package/src/transaction/actions/eip7702/authorization.test.ts +27 -0
  186. package/src/transaction/actions/eip7702/authorization.ts +58 -0
  187. package/src/transaction/actions/estimate-gas.ts +26 -9
  188. package/src/transaction/actions/send-transaction.ts +32 -2
  189. package/src/transaction/actions/to-serializable-transaction.test.ts +68 -0
  190. package/src/transaction/actions/to-serializable-transaction.ts +42 -30
  191. package/src/transaction/prepare-transaction.test.ts +28 -0
  192. package/src/transaction/prepare-transaction.ts +3 -0
  193. package/src/transaction/serialize-transaction.test.ts +108 -1
  194. package/src/transaction/serialize-transaction.ts +18 -0
  195. package/src/utils/abi/decodeError.ts +5 -4
  196. package/src/utils/abi/decodeFunctionData.ts +7 -5
  197. package/src/utils/abi/decodeFunctionResult.ts +7 -5
  198. package/src/utils/hashing/hashMessage.ts +1 -1
  199. package/src/utils/signatures/sign-message.test.ts +2 -2
  200. package/src/version.ts +1 -1
  201. package/src/wallets/create-wallet.ts +16 -0
  202. package/src/wallets/in-app/core/wallet/in-app-core.test.ts +115 -54
  203. package/src/wallets/in-app/core/wallet/in-app-core.ts +22 -11
  204. package/src/wallets/in-app/core/wallet/index.ts +10 -13
  205. package/src/wallets/interfaces/wallet.ts +15 -0
  206. package/src/wallets/private-key.test.ts +1 -0
  207. package/src/wallets/private-key.ts +10 -0
  208. package/src/wallets/smart/index.ts +34 -37
  209. package/src/wallets/smart/lib/signing.ts +154 -59
  210. package/src/wallets/smart/presets/7579.ts +13 -12
  211. package/src/wallets/smart/smart-wallet-integration-v07.test.ts +49 -9
  212. package/src/wallets/smart/smart-wallet-integration.test.ts +48 -1
  213. package/src/wallets/smart/smart-wallet.ts +13 -13
  214. package/src/wallets/smart/smart.test.ts +19 -39
@@ -137,7 +137,7 @@ export function smartWallet(
137
137
  let chain: Chain | undefined = undefined;
138
138
  let lastConnectOptions: WalletConnectionOption<"smart"> | undefined;
139
139
 
140
- const _smartWallet: Wallet<"smart"> = {
140
+ return {
141
141
  id: "smart",
142
142
  subscribe: emitter.subscribe,
143
143
  getChain() {
@@ -152,9 +152,10 @@ export function smartWallet(
152
152
  getAccount: () => account,
153
153
  getAdminAccount: () => adminAccount,
154
154
  autoConnect: async (options) => {
155
- const { connectSmartWallet } = await import("./index.js");
155
+ const { connectSmartAccount: connectSmartWallet } = await import(
156
+ "./index.js"
157
+ );
156
158
  const [connectedAccount, connectedChain] = await connectSmartWallet(
157
- _smartWallet,
158
159
  options,
159
160
  createOptions,
160
161
  );
@@ -172,9 +173,8 @@ export function smartWallet(
172
173
  return account;
173
174
  },
174
175
  connect: async (options) => {
175
- const { connectSmartWallet } = await import("./index.js");
176
- const [connectedAccount, connectedChain] = await connectSmartWallet(
177
- _smartWallet,
176
+ const { connectSmartAccount } = await import("./index.js");
177
+ const [connectedAccount, connectedChain] = await connectSmartAccount(
178
178
  options,
179
179
  createOptions,
180
180
  );
@@ -194,10 +194,13 @@ export function smartWallet(
194
194
  return account;
195
195
  },
196
196
  disconnect: async () => {
197
+ if (account) {
198
+ const { disconnectSmartAccount } = await import("./index.js");
199
+ await disconnectSmartAccount(account);
200
+ }
197
201
  account = undefined;
202
+ adminAccount = undefined;
198
203
  chain = undefined;
199
- const { disconnectSmartWallet } = await import("./index.js");
200
- await disconnectSmartWallet(_smartWallet);
201
204
  emitter.emit("disconnect", undefined);
202
205
  },
203
206
  switchChain: async (newChain: Chain) => {
@@ -223,9 +226,8 @@ export function smartWallet(
223
226
  );
224
227
  }
225
228
  }
226
- const { connectSmartWallet } = await import("./index.js");
227
- const [connectedAccount, connectedChain] = await connectSmartWallet(
228
- _smartWallet,
229
+ const { connectSmartAccount } = await import("./index.js");
230
+ const [connectedAccount, connectedChain] = await connectSmartAccount(
229
231
  { ...lastConnectOptions, chain: newChain },
230
232
  createOptions,
231
233
  );
@@ -235,6 +237,4 @@ export function smartWallet(
235
237
  emitter.emit("chainChanged", newChain);
236
238
  },
237
239
  };
238
-
239
- return _smartWallet;
240
240
  }
@@ -2,7 +2,6 @@ import { describe, expect, it } from "vitest";
2
2
  import { TEST_CLIENT } from "../../../test/src/test-clients.js";
3
3
  import { defineChain } from "../../chains/utils.js";
4
4
  import { generateAccount } from "../utils/generateAccount.js";
5
- import { connectSmartWallet, disconnectSmartWallet } from "./index.js";
6
5
  import { smartWallet } from "./smart-wallet.js";
7
6
 
8
7
  describe.runIf(process.env.TW_SECRET_KEY)("Smart Wallet Index", () => {
@@ -17,67 +16,48 @@ describe.runIf(process.env.TW_SECRET_KEY)("Smart Wallet Index", () => {
17
16
  gasless: true,
18
17
  });
19
18
 
20
- const [account, connectedChain] = await connectSmartWallet(
21
- wallet,
22
- {
23
- client,
24
- personalAccount,
25
- },
26
- {
27
- chain,
28
- gasless: true,
29
- },
30
- );
19
+ await wallet.connect({
20
+ client,
21
+ personalAccount,
22
+ });
31
23
 
32
- expect(account.address).toBeDefined();
33
- expect(account.address).toMatch(/^0x[a-fA-F0-9]{40}$/);
34
- expect(connectedChain.id).toBe(chain.id);
24
+ expect(wallet.getAccount()?.address).toBeDefined();
25
+ expect(wallet.getAccount()?.address).toMatch(/^0x[a-fA-F0-9]{40}$/);
26
+ expect(wallet.getChain()?.id).toBe(chain.id);
35
27
  });
36
28
  });
37
29
 
38
30
  describe("disconnectSmartWallet", () => {
39
31
  it("should disconnect a smart wallet", async () => {
40
32
  const personalAccount = await generateAccount({ client });
33
+
41
34
  const wallet = smartWallet({
42
35
  chain,
43
36
  gasless: true,
44
37
  });
45
38
 
46
- await connectSmartWallet(
47
- wallet,
48
- {
49
- client,
50
- personalAccount,
51
- },
52
- {
53
- chain,
54
- gasless: true,
55
- },
56
- );
39
+ await wallet.connect({
40
+ client,
41
+ personalAccount,
42
+ });
57
43
 
58
- await expect(disconnectSmartWallet(wallet)).resolves.not.toThrow();
44
+ await expect(wallet.disconnect()).resolves.not.toThrow();
59
45
  });
60
46
 
61
47
  it("should clear wallet mappings on disconnect", async () => {
62
48
  const personalAccount = await generateAccount({ client });
49
+
63
50
  const wallet = smartWallet({
64
51
  chain,
65
52
  gasless: true,
66
53
  });
67
54
 
68
- await connectSmartWallet(
69
- wallet,
70
- {
71
- client,
72
- personalAccount,
73
- },
74
- {
75
- chain,
76
- gasless: true,
77
- },
78
- );
55
+ await wallet.connect({
56
+ client,
57
+ personalAccount,
58
+ });
79
59
 
80
- await disconnectSmartWallet(wallet);
60
+ await wallet.disconnect();
81
61
 
82
62
  // Verify wallet state is cleared
83
63
  expect(wallet.getAccount()).toBeUndefined();