thirdweb 5.46.2-nightly-997c3945a7673517fb28273a9985f70ff892b365-20240817000330 → 5.47.0-nightly-f0d6e343eea28cd49863ba4794b89d6b070c52b2-20240818000714

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 (124) hide show
  1. package/dist/cjs/auth/verify-hash.js +24 -0
  2. package/dist/cjs/auth/verify-hash.js.map +1 -1
  3. package/dist/cjs/exports/extensions/erc20.js +5 -1
  4. package/dist/cjs/exports/extensions/erc20.js.map +1 -1
  5. package/dist/cjs/exports/extensions/thirdweb.js +45 -0
  6. package/dist/cjs/exports/extensions/thirdweb.js.map +1 -0
  7. package/dist/cjs/exports/extensions/vote.js +14 -1
  8. package/dist/cjs/exports/extensions/vote.js.map +1 -1
  9. package/dist/cjs/exports/react.js +6 -1
  10. package/dist/cjs/exports/react.js.map +1 -1
  11. package/dist/cjs/extensions/prebuilts/deploy-split.js +1 -0
  12. package/dist/cjs/extensions/prebuilts/deploy-split.js.map +1 -1
  13. package/dist/cjs/extensions/vote/read/canExecute.js +28 -0
  14. package/dist/cjs/extensions/vote/read/canExecute.js.map +1 -0
  15. package/dist/cjs/extensions/vote/read/getAll.js +52 -0
  16. package/dist/cjs/extensions/vote/read/getAll.js.map +1 -0
  17. package/dist/cjs/extensions/vote/read/getProposalVoteCounts.js +32 -0
  18. package/dist/cjs/extensions/vote/read/getProposalVoteCounts.js.map +1 -0
  19. package/dist/cjs/extensions/vote/read/proposalExists.js +28 -0
  20. package/dist/cjs/extensions/vote/read/proposalExists.js.map +1 -0
  21. package/dist/cjs/extensions/vote/types.js +21 -0
  22. package/dist/cjs/extensions/vote/types.js.map +1 -0
  23. package/dist/cjs/extensions/vote/write/executeProposal.js +56 -0
  24. package/dist/cjs/extensions/vote/write/executeProposal.js.map +1 -0
  25. package/dist/cjs/react/core/utils/wallet.js +2 -2
  26. package/dist/cjs/react/core/utils/wallet.js.map +1 -1
  27. package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js +54 -0
  28. package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js.map +1 -0
  29. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +8 -8
  30. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +23 -22
  32. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js +2 -2
  34. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  35. package/dist/cjs/react/web/ui/TransactionButton/index.js +1 -1
  36. package/dist/cjs/version.js +1 -1
  37. package/dist/esm/auth/verify-hash.js +24 -0
  38. package/dist/esm/auth/verify-hash.js.map +1 -1
  39. package/dist/esm/exports/extensions/erc20.js +2 -0
  40. package/dist/esm/exports/extensions/erc20.js.map +1 -1
  41. package/dist/esm/exports/extensions/thirdweb.js +28 -0
  42. package/dist/esm/exports/extensions/thirdweb.js.map +1 -0
  43. package/dist/esm/exports/extensions/vote.js +6 -0
  44. package/dist/esm/exports/extensions/vote.js.map +1 -1
  45. package/dist/esm/exports/react.js +4 -0
  46. package/dist/esm/exports/react.js.map +1 -1
  47. package/dist/esm/extensions/prebuilts/deploy-split.js +1 -0
  48. package/dist/esm/extensions/prebuilts/deploy-split.js.map +1 -1
  49. package/dist/esm/extensions/vote/read/canExecute.js +25 -0
  50. package/dist/esm/extensions/vote/read/canExecute.js.map +1 -0
  51. package/dist/esm/extensions/vote/read/getAll.js +49 -0
  52. package/dist/esm/extensions/vote/read/getAll.js.map +1 -0
  53. package/dist/esm/extensions/vote/read/getProposalVoteCounts.js +29 -0
  54. package/dist/esm/extensions/vote/read/getProposalVoteCounts.js.map +1 -0
  55. package/dist/esm/extensions/vote/read/proposalExists.js +25 -0
  56. package/dist/esm/extensions/vote/read/proposalExists.js.map +1 -0
  57. package/dist/esm/extensions/vote/types.js +18 -0
  58. package/dist/esm/extensions/vote/types.js.map +1 -0
  59. package/dist/esm/extensions/vote/write/executeProposal.js +52 -0
  60. package/dist/esm/extensions/vote/write/executeProposal.js.map +1 -0
  61. package/dist/esm/react/core/utils/wallet.js +2 -2
  62. package/dist/esm/react/core/utils/wallet.js.map +1 -1
  63. package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js +51 -0
  64. package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js.map +1 -0
  65. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +8 -8
  66. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  67. package/dist/esm/react/web/ui/ConnectWallet/Details.js +24 -23
  68. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  69. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js +2 -2
  70. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  71. package/dist/esm/react/web/ui/TransactionButton/index.js +1 -1
  72. package/dist/esm/version.js +1 -1
  73. package/dist/types/auth/verify-hash.d.ts.map +1 -1
  74. package/dist/types/exports/extensions/erc20.d.ts +2 -0
  75. package/dist/types/exports/extensions/erc20.d.ts.map +1 -1
  76. package/dist/types/exports/extensions/thirdweb.d.ts +15 -0
  77. package/dist/types/exports/extensions/thirdweb.d.ts.map +1 -0
  78. package/dist/types/exports/extensions/vote.d.ts +6 -0
  79. package/dist/types/exports/extensions/vote.d.ts.map +1 -1
  80. package/dist/types/exports/react.d.ts +4 -0
  81. package/dist/types/exports/react.d.ts.map +1 -1
  82. package/dist/types/extensions/prebuilts/deploy-split.d.ts +2 -1
  83. package/dist/types/extensions/prebuilts/deploy-split.d.ts.map +1 -1
  84. package/dist/types/extensions/vote/read/canExecute.d.ts +17 -0
  85. package/dist/types/extensions/vote/read/canExecute.d.ts.map +1 -0
  86. package/dist/types/extensions/vote/read/getAll.d.ts +64 -0
  87. package/dist/types/extensions/vote/read/getAll.d.ts.map +1 -0
  88. package/dist/types/extensions/vote/read/getProposalVoteCounts.d.ts +27 -0
  89. package/dist/types/extensions/vote/read/getProposalVoteCounts.d.ts.map +1 -0
  90. package/dist/types/extensions/vote/read/proposalExists.d.ts +17 -0
  91. package/dist/types/extensions/vote/read/proposalExists.d.ts.map +1 -0
  92. package/dist/types/extensions/vote/types.d.ts +16 -0
  93. package/dist/types/extensions/vote/types.d.ts.map +1 -0
  94. package/dist/types/extensions/vote/write/executeProposal.d.ts +25 -0
  95. package/dist/types/extensions/vote/write/executeProposal.d.ts.map +1 -0
  96. package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
  97. package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts +12 -0
  98. package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts.map +1 -0
  99. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  100. package/dist/types/version.d.ts +1 -1
  101. package/package.json +1 -1
  102. package/src/auth/verify-hash.ts +33 -0
  103. package/src/exports/extensions/erc20.ts +8 -0
  104. package/src/exports/extensions/thirdweb.ts +75 -0
  105. package/src/exports/extensions/vote.ts +14 -0
  106. package/src/exports/react.ts +5 -0
  107. package/src/extensions/prebuilts/deploy-split.ts +2 -1
  108. package/src/extensions/split/read/getAllRecipientsAddresses.test.ts +2 -0
  109. package/src/extensions/split/read/getAllRecipientsPercentages.test.ts +2 -0
  110. package/src/extensions/split/read/getRecipientSplitPercentage.test.ts +2 -0
  111. package/src/extensions/vote/read/canExecute.ts +27 -0
  112. package/src/extensions/vote/read/getAll.ts +106 -0
  113. package/src/extensions/vote/read/getProposalVoteCounts.ts +39 -0
  114. package/src/extensions/vote/read/proposalExists.ts +27 -0
  115. package/src/extensions/vote/types.ts +16 -0
  116. package/src/extensions/vote/write/executeProposal.ts +63 -0
  117. package/src/react/core/utils/wallet.ts +2 -2
  118. package/src/react/web/ui/ConnectWallet/Blobbie.tsx +134 -0
  119. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +8 -8
  120. package/src/react/web/ui/ConnectWallet/Details.tsx +54 -44
  121. package/src/react/web/ui/ConnectWallet/locale/en.ts +2 -2
  122. package/src/react/web/ui/TransactionButton/index.tsx +1 -1
  123. package/src/version.ts +1 -1
  124. package/src/wallets/smart/smart-wallet-zksync.test.ts +28 -1
@@ -318,8 +318,8 @@ export function ConnectButton(props: ConnectButtonProps) {
318
318
  variant="primary"
319
319
  type="button"
320
320
  style={{
321
- minWidth: "150px",
322
- minHeight: "52px",
321
+ minWidth: "165px",
322
+ height: "50px",
323
323
  ...props.connectButton?.style,
324
324
  }}
325
325
  >
@@ -420,8 +420,8 @@ function ConnectButtonInner(
420
420
  variant="primary"
421
421
  type="button"
422
422
  style={{
423
- minWidth: "150px",
424
- minHeight: "52px",
423
+ minWidth: "165px",
424
+ height: "50px",
425
425
  fontSize: "16px",
426
426
  ...props.connectButton?.style,
427
427
  }}
@@ -459,8 +459,8 @@ function ConnectButtonInner(
459
459
  variant="primary"
460
460
  type="button"
461
461
  style={{
462
- minWidth: "150px",
463
- minHeight: "52px",
462
+ minWidth: "165px",
463
+ height: "50px",
464
464
  ...props.connectButton?.style,
465
465
  }}
466
466
  >
@@ -480,8 +480,8 @@ function ConnectButtonInner(
480
480
  }}
481
481
  className={props.signInButton?.className}
482
482
  style={{
483
- minWidth: "150px",
484
- minHeight: "52px",
483
+ minWidth: "165px",
484
+ minHeight: "50px",
485
485
  ...props.signInButton?.style,
486
486
  }}
487
487
  >
@@ -25,7 +25,6 @@ import {
25
25
  type Theme,
26
26
  fontSize,
27
27
  iconSize,
28
- media,
29
28
  radius,
30
29
  spacing,
31
30
  } from "../../../core/design-system/index.js";
@@ -61,13 +60,13 @@ import { Modal } from "../components/Modal.js";
61
60
  import { Skeleton } from "../components/Skeleton.js";
62
61
  import { Spacer } from "../components/Spacer.js";
63
62
  import { Spinner } from "../components/Spinner.js";
64
- import { WalletImage } from "../components/WalletImage.js";
65
63
  import { Container, Line } from "../components/basic.js";
66
64
  import { Button, IconButton } from "../components/buttons.js";
67
65
  import { Link, Text } from "../components/text.js";
68
66
  import { fadeInAnimation } from "../design-system/animations.js";
69
67
  import { StyledButton } from "../design-system/elements.js";
70
68
  import type { LocaleId } from "../types.js";
69
+ import { Blobbie } from "./Blobbie.js";
71
70
  import { MenuButton, MenuLink } from "./MenuButton.js";
72
71
  import { ScreenSetupContext, useSetupScreen } from "./Modal/screen.js";
73
72
  import {
@@ -78,7 +77,6 @@ import { TransactionsScreen } from "./TransactionsScreen.js";
78
77
  import { onModalUnmount } from "./constants.js";
79
78
  import { CoinsIcon } from "./icons/CoinsIcon.js";
80
79
  import { FundsIcon } from "./icons/FundsIcon.js";
81
- import { GenericWalletIcon } from "./icons/GenericWalletIcon.js";
82
80
  import { OutlineWalletIcon } from "./icons/OutlineWalletIcon.js";
83
81
  import { ShuffleIconLucide } from "./icons/ShuffleIconLucide.js";
84
82
  import { SmartWalletBadgeIcon } from "./icons/SmartAccountBadgeIcon.js";
@@ -125,9 +123,9 @@ export const ConnectedWalletDetails: React.FC<{
125
123
  const { connectLocale: locale, client } = props;
126
124
 
127
125
  const setRootEl = useContext(SetRootElementContext);
128
- const activeWallet = useActiveWallet();
129
126
  const activeAccount = useActiveAccount();
130
127
  const walletChain = useActiveWalletChain();
128
+ const theme = useCustomTheme();
131
129
 
132
130
  const { ensAvatarQuery, addressOrENS, balanceQuery } =
133
131
  useConnectedWalletDetails(
@@ -196,20 +194,30 @@ export const ConnectedWalletDetails: React.FC<{
196
194
  {ensAvatarQuery.data ? (
197
195
  <Img
198
196
  src={ensAvatarQuery.data}
199
- width={iconSize.sm}
200
- height={iconSize.sm}
197
+ width="50px"
198
+ height="50px"
201
199
  style={{
202
- borderRadius: radius.xs,
200
+ width: 50,
201
+ height: 50,
203
202
  }}
204
203
  client={client}
205
204
  />
206
- ) : activeWallet?.id ? (
207
- <WalletImage size={iconSize.md} id={activeWallet.id} client={client} />
208
205
  ) : (
209
- <GenericWalletIcon size={iconSize.md} />
206
+ activeAccount && <Blobbie address={activeAccount.address} size={50} />
210
207
  )}
211
-
212
- <Container flex="column" gap="3xs">
208
+ <Container
209
+ flex="column"
210
+ gap="3xs"
211
+ px="sm"
212
+ py="xs"
213
+ style={{
214
+ border: `1px solid ${theme.colors.borderColor}`,
215
+ textOverflow: "ellipsis",
216
+ width: "115px",
217
+ whiteSpace: "nowrap",
218
+ borderRadius: `0 ${radius.md} ${radius.md} 0`,
219
+ }}
220
+ >
213
221
  {/* Address */}
214
222
 
215
223
  {addressOrENS ? (
@@ -376,25 +384,37 @@ function DetailsModal(props: {
376
384
  </IconButton>
377
385
 
378
386
  <Container px="lg" flex="column" center="x">
379
- {ensAvatarQuery.data ? (
380
- <Img
381
- src={ensAvatarQuery.data}
382
- width={iconSize.xxl}
383
- height={iconSize.xxl}
384
- style={{
385
- borderRadius: radius.lg,
386
- }}
387
- client={client}
388
- />
389
- ) : activeWallet?.id ? (
390
- <WalletImage
391
- size={iconSize.xxl}
392
- id={activeWallet.id}
393
- client={client}
394
- />
395
- ) : (
396
- <GenericWalletIcon size={iconSize.xxl} />
397
- )}
387
+ <Container
388
+ style={{
389
+ position: "relative",
390
+ height: `${iconSize.xxl}px`,
391
+ width: `${iconSize.xxl}px`,
392
+ overflow: "visible",
393
+ }}
394
+ >
395
+ {ensAvatarQuery.data ? (
396
+ <Img
397
+ src={ensAvatarQuery.data}
398
+ width={iconSize.xxl}
399
+ height={iconSize.xxl}
400
+ style={{
401
+ borderRadius: radius.md,
402
+ }}
403
+ client={client}
404
+ />
405
+ ) : (
406
+ activeAccount && (
407
+ <Container
408
+ style={{ borderRadius: radius.md, overflow: "hidden" }}
409
+ >
410
+ <Blobbie
411
+ address={activeAccount.address}
412
+ size={Number(iconSize.xxl)}
413
+ />
414
+ </Container>
415
+ )
416
+ )}
417
+ </Container>
398
418
 
399
419
  <Spacer y="md" />
400
420
 
@@ -885,27 +905,17 @@ const WalletInfoButton = /* @__PURE__ */ StyledButton((_) => {
885
905
  return {
886
906
  all: "unset",
887
907
  background: theme.colors.connectedButtonBg,
888
- border: `1px solid ${theme.colors.borderColor}`,
889
- padding: `${spacing.xs} ${spacing.sm}`,
908
+ overflow: "hidden",
890
909
  borderRadius: radius.md,
891
910
  cursor: "pointer",
892
911
  display: "inline-flex",
893
912
  alignItems: "center",
894
- minWidth: "150px",
895
- minHeight: "52px",
896
- gap: spacing.xs,
913
+ minWidth: "165px",
914
+ height: "50px",
897
915
  boxSizing: "border-box",
898
916
  WebkitTapHighlightColor: "transparent",
899
917
  lineHeight: "normal",
900
918
  animation: `${fadeInAnimation} 300ms ease`,
901
- [media.mobile]: {
902
- gap: spacing.sm,
903
- padding: `${spacing.xs} ${spacing.xs}`,
904
- img: {
905
- width: `${iconSize.md}px`,
906
- height: `${iconSize.md}px`,
907
- },
908
- },
909
919
  "&:hover": {
910
920
  transition: "background 250ms ease",
911
921
  background: theme.colors.connectedButtonBgHover,
@@ -3,7 +3,7 @@ import type { ConnectLocale } from "./types.js";
3
3
  const connectLocaleEn: ConnectLocale = {
4
4
  id: "en_US",
5
5
  signIn: "Sign in",
6
- defaultButtonTitle: "Connect Wallet",
6
+ defaultButtonTitle: "Connect",
7
7
  connecting: "Connecting",
8
8
  switchNetwork: "Switch Network",
9
9
  switchingNetwork: "Switching Network",
@@ -95,7 +95,7 @@ const connectLocaleEn: ConnectLocale = {
95
95
  },
96
96
  signingScreen: {
97
97
  title: "Signing In",
98
- prompt: "Sign the signature request in your wallet",
98
+ prompt: "Signing the signature request in your wallet",
99
99
  promptForSafe:
100
100
  "Sign signature request in your wallet & approve transaction in Safe",
101
101
  approveTransactionInSafe: "Approve transaction in Safe",
@@ -136,7 +136,7 @@ export function TransactionButton(props: TransactionButtonProps) {
136
136
  !unstyled
137
137
  ? {
138
138
  opacity: !account || disabled ? 0.5 : 1,
139
- minWidth: "150px",
139
+ minWidth: "165px",
140
140
  position: "relative",
141
141
  ...buttonProps.style,
142
142
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.46.2-nightly-997c3945a7673517fb28273a9985f70ff892b365-20240817000330";
1
+ export const version = "5.47.0-nightly-f0d6e343eea28cd49863ba4794b89d6b070c52b2-20240818000714";
@@ -1,6 +1,7 @@
1
1
  import { beforeAll, describe, expect, it } from "vitest";
2
2
  import { TEST_CLIENT } from "../../../test/src/test-clients.js";
3
3
  import { ANVIL_PKEY_B } from "../../../test/src/test-wallets.js";
4
+ import { abstractTestnet } from "../../chains/chain-definitions/abstract-testnet.js";
4
5
  import { zkSyncSepolia } from "../../chains/chain-definitions/zksync-sepolia.js";
5
6
  import { defineChain } from "../../chains/utils.js";
6
7
  import { getContract } from "../../contract/contract.js";
@@ -61,7 +62,7 @@ describe.runIf(process.env.TW_SECRET_KEY).skip(
61
62
  expect(tx.transactionHash.length).toBe(66);
62
63
  });
63
64
 
64
- it("should send a transaction on zkcandy", async () => {
65
+ it.skip("should send a transaction on zkcandy", async () => {
65
66
  const zkCandy = defineChain(302);
66
67
  const zkCandySmartWallet = smartWallet({
67
68
  chain: zkCandy,
@@ -85,5 +86,31 @@ describe.runIf(process.env.TW_SECRET_KEY).skip(
85
86
  });
86
87
  expect(tx.transactionHash.length).toBe(66);
87
88
  });
89
+
90
+ it("should send a transaction on abstract", async () => {
91
+ const abstractSmartWallet = smartWallet({
92
+ chain: abstractTestnet,
93
+ gasless: true,
94
+ });
95
+ const account = await abstractSmartWallet.connect({
96
+ client: TEST_CLIENT,
97
+ personalAccount,
98
+ });
99
+ const tx = await sendTransaction({
100
+ transaction: claimTo({
101
+ contract: getContract({
102
+ address: "0x8A24a7Df38fA5fCCcFD1259e90Fb6996fDdfcADa", // edition drop
103
+ chain: abstractTestnet,
104
+ client,
105
+ }),
106
+ quantity: 1n,
107
+ to: account.address,
108
+ tokenId: 0n,
109
+ }),
110
+ account: smartAccount,
111
+ });
112
+ console.log("tx", tx.transactionHash);
113
+ expect(tx.transactionHash.length).toBe(66);
114
+ });
88
115
  },
89
116
  );