thirdweb 5.50.0-nightly-6432e8dc6bdd0ed985fe0d76e47b36601bfa8be3-20240831000359 → 5.50.0-nightly-5475551e5de0750ff1b780522cb01e974a828dd2-20240902000412

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 (69) hide show
  1. package/dist/cjs/adapters/ethers5.js +3 -0
  2. package/dist/cjs/adapters/ethers5.js.map +1 -1
  3. package/dist/cjs/extensions/erc1155/drops/write/updateMetadata.js +2 -1
  4. package/dist/cjs/extensions/erc1155/drops/write/updateMetadata.js.map +1 -1
  5. package/dist/cjs/extensions/erc1155/write/sigMint.js +9 -1
  6. package/dist/cjs/extensions/erc1155/write/sigMint.js.map +1 -1
  7. package/dist/cjs/extensions/erc20/write/sigMint.js +9 -2
  8. package/dist/cjs/extensions/erc20/write/sigMint.js.map +1 -1
  9. package/dist/cjs/extensions/erc721/drops/write/updateMetadata.js +1 -0
  10. package/dist/cjs/extensions/erc721/drops/write/updateMetadata.js.map +1 -1
  11. package/dist/cjs/extensions/erc721/write/sigMint.js +9 -1
  12. package/dist/cjs/extensions/erc721/write/sigMint.js.map +1 -1
  13. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +1 -1
  14. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  15. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js +1 -1
  16. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js.map +1 -1
  17. package/dist/cjs/version.js +1 -1
  18. package/dist/cjs/wallets/smart/index.js +1 -1
  19. package/dist/cjs/wallets/smart/index.js.map +1 -1
  20. package/dist/esm/adapters/ethers5.js +3 -3
  21. package/dist/esm/adapters/ethers5.js.map +1 -1
  22. package/dist/esm/extensions/erc1155/drops/write/updateMetadata.js +2 -1
  23. package/dist/esm/extensions/erc1155/drops/write/updateMetadata.js.map +1 -1
  24. package/dist/esm/extensions/erc1155/write/sigMint.js +9 -1
  25. package/dist/esm/extensions/erc1155/write/sigMint.js.map +1 -1
  26. package/dist/esm/extensions/erc20/write/sigMint.js +9 -2
  27. package/dist/esm/extensions/erc20/write/sigMint.js.map +1 -1
  28. package/dist/esm/extensions/erc721/drops/write/updateMetadata.js +1 -0
  29. package/dist/esm/extensions/erc721/drops/write/updateMetadata.js.map +1 -1
  30. package/dist/esm/extensions/erc721/write/sigMint.js +9 -1
  31. package/dist/esm/extensions/erc721/write/sigMint.js.map +1 -1
  32. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +1 -1
  33. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  34. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js +1 -1
  35. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js.map +1 -1
  36. package/dist/esm/version.js +1 -1
  37. package/dist/esm/wallets/smart/index.js +1 -1
  38. package/dist/esm/wallets/smart/index.js.map +1 -1
  39. package/dist/types/adapters/ethers5.d.ts +24 -0
  40. package/dist/types/adapters/ethers5.d.ts.map +1 -1
  41. package/dist/types/extensions/erc1155/drops/write/updateMetadata.d.ts +2 -1
  42. package/dist/types/extensions/erc1155/drops/write/updateMetadata.d.ts.map +1 -1
  43. package/dist/types/extensions/erc1155/write/sigMint.d.ts +1 -2
  44. package/dist/types/extensions/erc1155/write/sigMint.d.ts.map +1 -1
  45. package/dist/types/extensions/erc20/write/sigMint.d.ts +1 -2
  46. package/dist/types/extensions/erc20/write/sigMint.d.ts.map +1 -1
  47. package/dist/types/extensions/erc721/drops/write/updateMetadata.d.ts +1 -0
  48. package/dist/types/extensions/erc721/drops/write/updateMetadata.d.ts.map +1 -1
  49. package/dist/types/extensions/erc721/write/sigMint.d.ts +1 -2
  50. package/dist/types/extensions/erc721/write/sigMint.d.ts.map +1 -1
  51. package/dist/types/version.d.ts +1 -1
  52. package/package.json +1 -1
  53. package/src/adapters/ethers5.test.ts +42 -3
  54. package/src/adapters/ethers5.ts +3 -3
  55. package/src/extensions/erc1155/drops/write/claimTo.test.ts +128 -16
  56. package/src/extensions/erc1155/drops/write/updateMetadata.test.ts +55 -0
  57. package/src/extensions/erc1155/drops/write/updateMetadata.ts +2 -1
  58. package/src/extensions/erc1155/write/sigMint.ts +10 -3
  59. package/src/extensions/erc1155/write/sigMint1155.test.ts +34 -0
  60. package/src/extensions/erc20/write/sigMint.ts +10 -4
  61. package/src/extensions/erc20/write/sigMint20.test.ts +31 -0
  62. package/src/extensions/erc721/drops/write/updateMetadata.test.ts +56 -0
  63. package/src/extensions/erc721/drops/write/updateMetadata.ts +1 -0
  64. package/src/extensions/erc721/write/sigMint.ts +10 -3
  65. package/src/extensions/erc721/write/sigMint721.test.ts +37 -0
  66. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +1 -1
  67. package/src/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.tsx +1 -1
  68. package/src/version.ts +1 -1
  69. package/src/wallets/smart/index.ts +1 -1
@@ -106,6 +106,7 @@ export async function getUpdateMetadataParams(
106
106
  * const transaction = updateMetadata({
107
107
  * contract,
108
108
  * targetTokenId: 0n,
109
+ * client: thirdwebClient,
109
110
  * newMetadata: {
110
111
  * name: "this is the new nft name",
111
112
  * description: "...",
@@ -1,5 +1,5 @@
1
1
  import type { AbiParameterToPrimitiveType, Address } from "abitype";
2
- import type { Hex } from "viem";
2
+ import { type Hex, isHex, stringToHex } from "viem";
3
3
  import {
4
4
  NATIVE_TOKEN_ADDRESS,
5
5
  isNativeTokenAddress,
@@ -131,7 +131,14 @@ export async function generateMintSignature(
131
131
  return "";
132
132
  })(),
133
133
  // uid computation
134
- mintRequest.uid || (await randomBytesHex()),
134
+ ((): Hex => {
135
+ if (mintRequest.uid) {
136
+ return isHex(mintRequest.uid)
137
+ ? mintRequest.uid
138
+ : stringToHex(mintRequest.uid, { size: 32 });
139
+ }
140
+ return randomBytesHex();
141
+ })(),
135
142
  ]);
136
143
 
137
144
  const startTime = mintRequest.validityStartTimestamp || new Date(0);
@@ -212,7 +219,7 @@ type GeneratePayloadInput = {
212
219
  currency?: Address;
213
220
  validityStartTimestamp?: Date;
214
221
  validityEndTimestamp?: Date;
215
- uid?: Hex;
222
+ uid?: string;
216
223
  };
217
224
 
218
225
  const MintRequest721 = [
@@ -156,6 +156,43 @@ describe.runIf(process.env.TW_SECRET_KEY)(
156
156
  expect(signature.length).toBe(132);
157
157
  });
158
158
 
159
+ it("should automatically encode a provided string uid", async () => {
160
+ const { payload, signature } = await generateMintSignature({
161
+ mintRequest: {
162
+ to: TEST_ACCOUNT_B.address,
163
+ royaltyRecipient: TEST_ACCOUNT_B.address,
164
+ royaltyBps: 500,
165
+ primarySaleRecipient: TEST_ACCOUNT_A.address,
166
+ metadata: "https://example.com/token",
167
+ price: "0.2",
168
+ currency: erc20TokenContract.address,
169
+ validityStartTimestamp: new Date(1635724800),
170
+ validityEndTimestamp: new Date(1867260800),
171
+ uid: "abcdef1234567890",
172
+ },
173
+ account: TEST_ACCOUNT_A,
174
+ contract: erc721Contract,
175
+ });
176
+
177
+ expect(payload.to).toBe("0x70997970C51812dc3A010C7d01b50e0d17dc79C8");
178
+ expect(payload.royaltyRecipient).toBe(
179
+ "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
180
+ );
181
+ expect(payload.royaltyBps).toBe(500n);
182
+ expect(payload.primarySaleRecipient).toBe(
183
+ "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
184
+ );
185
+ expect(payload.uri).toBe("https://example.com/token");
186
+ expect(payload.price).toBe(200000000000000000n);
187
+ expect(payload.currency).toBe(erc20TokenContract.address);
188
+ expect(payload.validityStartTimestamp).toBe(1635724n);
189
+ expect(payload.validityEndTimestamp).toBe(1867260n);
190
+ expect(payload.uid).toBe(
191
+ "0x6162636465663132333435363738393000000000000000000000000000000000",
192
+ );
193
+ expect(signature.length).toBe(132);
194
+ });
195
+
159
196
  it("should default sale recipient to the contract's primarySaleRecipient when empty", async () => {
160
197
  const { payload, signature } = await generateMintSignature({
161
198
  mintRequest: {
@@ -265,7 +265,7 @@ function BuyScreenContent(props: BuyScreenContentProps) {
265
265
  : props.connectOptions?.showAllWallets
266
266
  }
267
267
  walletConnect={props.connectOptions?.walletConnect}
268
- wallets={props.connectOptions?.wallets}
268
+ wallets={props.connectOptions?.wallets?.filter((w) => w.id !== "inApp")}
269
269
  />
270
270
  );
271
271
  }
@@ -38,7 +38,7 @@ export function WalletSwitcherConnectionScreen(
38
38
  getDefaultWallets({
39
39
  appMetadata: props.appMetadata,
40
40
  chains: props.chains,
41
- });
41
+ }).filter((w) => w.id !== "inApp");
42
42
 
43
43
  const screenSetup = useSetupScreen({
44
44
  size: "compact",
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.50.0-nightly-6432e8dc6bdd0ed985fe0d76e47b36601bfa8be3-20240831000359";
1
+ export const version = "5.50.0-nightly-5475551e5de0750ff1b780522cb01e974a828dd2-20240902000412";
@@ -133,7 +133,7 @@ export async function connectSmartWallet(
133
133
  .then((address) => address)
134
134
  .catch((err) => {
135
135
  throw new Error(
136
- `Failed to get account address with factory contract ${factoryContract.address} on chain ID ${chain.id}. Are you on the right chain?`,
136
+ `Failed to get account address with factory contract ${factoryContract.address} on chain ID ${chain.id}: ${err?.message || "unknown error"}`,
137
137
  { cause: err },
138
138
  );
139
139
  });