thirdweb 5.66.0-nightly-880c3453ee8fc0fabbde0afb752a17894cd579a0-20241106000325 → 5.67.0-nightly-734707e28b829262a1b40f7db8c005d2adeaeaf9-20241107000509

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 (71) hide show
  1. package/dist/cjs/exports/react.js +4 -2
  2. package/dist/cjs/exports/react.js.map +1 -1
  3. package/dist/cjs/react/web/ui/SiteEmbed.js +3 -3
  4. package/dist/cjs/react/web/ui/SiteLink.js +64 -0
  5. package/dist/cjs/react/web/ui/SiteLink.js.map +1 -0
  6. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js +2 -1
  7. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  8. package/dist/cjs/utils/encoding/to-bytes.js +4 -0
  9. package/dist/cjs/utils/encoding/to-bytes.js.map +1 -1
  10. package/dist/cjs/version.js +1 -1
  11. package/dist/cjs/wallets/in-app/core/actions/generate-wallet.enclave.js +1 -1
  12. package/dist/cjs/wallets/in-app/core/actions/generate-wallet.enclave.js.map +1 -1
  13. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +2 -2
  14. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  15. package/dist/cjs/wallets/in-app/native/native-connector.js +15 -15
  16. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  17. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +1 -1
  18. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  19. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +7 -9
  20. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  21. package/dist/esm/exports/react.js +2 -1
  22. package/dist/esm/exports/react.js.map +1 -1
  23. package/dist/esm/react/web/ui/SiteEmbed.js +3 -3
  24. package/dist/esm/react/web/ui/SiteLink.js +61 -0
  25. package/dist/esm/react/web/ui/SiteLink.js.map +1 -0
  26. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js +2 -1
  27. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  28. package/dist/esm/utils/encoding/to-bytes.js +4 -1
  29. package/dist/esm/utils/encoding/to-bytes.js.map +1 -1
  30. package/dist/esm/version.js +1 -1
  31. package/dist/esm/wallets/in-app/core/actions/generate-wallet.enclave.js +1 -1
  32. package/dist/esm/wallets/in-app/core/actions/generate-wallet.enclave.js.map +1 -1
  33. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +2 -2
  34. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  35. package/dist/esm/wallets/in-app/native/native-connector.js +15 -15
  36. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  37. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +1 -1
  38. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  39. package/dist/esm/wallets/in-app/web/lib/web-connector.js +7 -9
  40. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  41. package/dist/types/exports/react.d.ts +1 -0
  42. package/dist/types/exports/react.d.ts.map +1 -1
  43. package/dist/types/react/web/ui/SiteEmbed.d.ts +3 -3
  44. package/dist/types/react/web/ui/SiteLink.d.ts +29 -0
  45. package/dist/types/react/web/ui/SiteLink.d.ts.map +1 -0
  46. package/dist/types/utils/encoding/to-bytes.d.ts +9 -0
  47. package/dist/types/utils/encoding/to-bytes.d.ts.map +1 -1
  48. package/dist/types/version.d.ts +1 -1
  49. package/dist/types/wallets/in-app/core/actions/generate-wallet.enclave.d.ts +2 -2
  50. package/dist/types/wallets/in-app/core/actions/generate-wallet.enclave.d.ts.map +1 -1
  51. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  52. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +2 -1
  53. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  54. package/package.json +5 -5
  55. package/src/exports/react.ts +2 -1
  56. package/src/react/web/ui/SiteEmbed.tsx +3 -3
  57. package/src/react/web/ui/SiteLink.test.tsx +48 -0
  58. package/src/react/web/ui/SiteLink.tsx +86 -0
  59. package/src/react/web/wallets/shared/PassKeyLogin.tsx +2 -1
  60. package/src/utils/encoding/helpers/assert-size.test.ts +47 -0
  61. package/src/utils/encoding/helpers/byte-size.test.ts +36 -0
  62. package/src/utils/encoding/helpers/charcode-to-base-16.test.ts +39 -0
  63. package/src/utils/encoding/helpers/is-hext.test.ts +54 -0
  64. package/src/utils/encoding/to-bytes.test.ts +233 -0
  65. package/src/utils/encoding/to-bytes.ts +7 -1
  66. package/src/version.ts +1 -1
  67. package/src/wallets/in-app/core/actions/generate-wallet.enclave.ts +2 -2
  68. package/src/wallets/in-app/core/wallet/enclave-wallet.ts +2 -2
  69. package/src/wallets/in-app/native/native-connector.ts +18 -19
  70. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +1 -1
  71. package/src/wallets/in-app/web/lib/web-connector.ts +13 -12
@@ -128,7 +128,7 @@ export class Auth {
128
128
  });
129
129
  }
130
130
 
131
- if (user.wallets.length === 0 && this.ecosystem) {
131
+ if (user.wallets.length === 0) {
132
132
  // If this is a new ecosystem wallet without an enclave yet, we'll generate an enclave
133
133
  const result = await generateWallet({
134
134
  authToken: authToken.storedToken.cookieString,
@@ -101,10 +101,7 @@ export class InAppWebConnector implements InAppConnector {
101
101
  onAuthSuccess: async (authResult) => {
102
102
  onAuthSuccess?.(authResult);
103
103
 
104
- if (
105
- this.ecosystem &&
106
- authResult.storedToken.authDetails.walletType === "sharded"
107
- ) {
104
+ if (authResult.storedToken.authDetails.walletType === "sharded") {
108
105
  // If this is an existing sharded ecosystem wallet, we'll need to migrate
109
106
  const result = await this.querier.call<boolean>({
110
107
  procedureName: "migrateFromShardToEnclave",
@@ -113,11 +110,15 @@ export class InAppWebConnector implements InAppConnector {
113
110
  },
114
111
  });
115
112
  if (!result) {
116
- throw new Error("Failed to migrate from sharded to enclave wallet");
113
+ console.warn(
114
+ "Failed to migrate from sharded to enclave wallet, continuing with sharded wallet",
115
+ );
117
116
  }
118
117
  }
119
118
 
120
- await this.initializeWallet(authResult.storedToken.cookieString);
119
+ this.wallet = await this.initializeWallet(
120
+ authResult.storedToken.cookieString,
121
+ );
121
122
 
122
123
  if (!this.wallet) {
123
124
  throw new Error("Failed to initialize wallet");
@@ -133,7 +134,7 @@ export class InAppWebConnector implements InAppConnector {
133
134
  deviceShareStored,
134
135
  });
135
136
 
136
- if (authResult.storedToken.authDetails.walletType !== "enclave") {
137
+ if (this.wallet instanceof IFrameWallet) {
137
138
  await this.querier.call({
138
139
  procedureName: "initIframe",
139
140
  params: {
@@ -163,7 +164,7 @@ export class InAppWebConnector implements InAppConnector {
163
164
  });
164
165
  }
165
166
 
166
- async initializeWallet(authToken?: string) {
167
+ async initializeWallet(authToken?: string): Promise<IWebWallet> {
167
168
  const storedAuthToken = await this.storage.getAuthCookie();
168
169
  if (!authToken && storedAuthToken === null) {
169
170
  throw new Error(
@@ -176,6 +177,7 @@ export class InAppWebConnector implements InAppConnector {
176
177
  client: this.client,
177
178
  ecosystem: this.ecosystem,
178
179
  });
180
+
179
181
  if (!user) {
180
182
  throw new Error("Cannot initialize wallet, no user logged in");
181
183
  }
@@ -186,16 +188,15 @@ export class InAppWebConnector implements InAppConnector {
186
188
  }
187
189
 
188
190
  if (user.wallets[0]?.type === "enclave") {
189
- this.wallet = new EnclaveWallet({
191
+ return new EnclaveWallet({
190
192
  client: this.client,
191
193
  ecosystem: this.ecosystem,
192
194
  address: user.wallets[0].address,
193
195
  storage: this.storage,
194
196
  });
195
- return;
196
197
  }
197
198
 
198
- this.wallet = new IFrameWallet({
199
+ return new IFrameWallet({
199
200
  client: this.client,
200
201
  ecosystem: this.ecosystem,
201
202
  querier: this.querier,
@@ -233,7 +234,7 @@ export class InAppWebConnector implements InAppConnector {
233
234
  if (!localAuthToken) {
234
235
  return { status: "Logged Out" };
235
236
  }
236
- await this.initializeWallet(localAuthToken);
237
+ this.wallet = await this.initializeWallet(localAuthToken);
237
238
  }
238
239
  if (!this.wallet) {
239
240
  throw new Error("Wallet not initialized");