thirdweb 5.53.0-nightly-7dd2869e240522a467c73f0017f080ee118c5bf0-20240908000435 → 5.53.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 (108) hide show
  1. package/dist/cjs/chains/chain-definitions/assetchain-testnet.js +25 -0
  2. package/dist/cjs/chains/chain-definitions/assetchain-testnet.js.map +1 -0
  3. package/dist/cjs/exports/react.native.js +4 -1
  4. package/dist/cjs/exports/react.native.js.map +1 -1
  5. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js +4 -2
  6. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  7. package/dist/cjs/react/core/utils/walletIcon.js +2 -3
  8. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
  9. package/dist/cjs/react/native/ui/components/WalletImage.js +6 -5
  10. package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
  11. package/dist/cjs/react/native/ui/connect/ConnectModal.js +1 -2
  12. package/dist/cjs/react/native/ui/connect/ConnectModal.js.map +1 -1
  13. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +3 -3
  14. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  15. package/dist/cjs/react/native/ui/icons/svgs.js +12 -1
  16. package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
  17. package/dist/cjs/social/profiles.js.map +1 -1
  18. package/dist/cjs/utils/bytecode/resolveImplementation.js +17 -10
  19. package/dist/cjs/utils/bytecode/resolveImplementation.js.map +1 -1
  20. package/dist/cjs/version.js +1 -1
  21. package/dist/cjs/version.js.map +1 -1
  22. package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js +52 -24
  23. package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
  24. package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
  25. package/dist/cjs/wallets/coinbase/utils.js +1 -1
  26. package/dist/cjs/wallets/coinbase/utils.js.map +1 -1
  27. package/dist/esm/chains/chain-definitions/assetchain-testnet.js +22 -0
  28. package/dist/esm/chains/chain-definitions/assetchain-testnet.js.map +1 -0
  29. package/dist/esm/exports/react.native.js +2 -0
  30. package/dist/esm/exports/react.native.js.map +1 -1
  31. package/dist/esm/exports/social.js +0 -1
  32. package/dist/esm/exports/social.js.map +1 -1
  33. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js +4 -2
  34. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  35. package/dist/esm/react/core/utils/walletIcon.js +1 -2
  36. package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
  37. package/dist/esm/react/native/ui/components/WalletImage.js +7 -6
  38. package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
  39. package/dist/esm/react/native/ui/connect/ConnectModal.js +2 -3
  40. package/dist/esm/react/native/ui/connect/ConnectModal.js.map +1 -1
  41. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +3 -3
  42. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  43. package/dist/esm/react/native/ui/icons/svgs.js +11 -0
  44. package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
  45. package/dist/esm/social/profiles.js.map +1 -1
  46. package/dist/esm/utils/bytecode/resolveImplementation.js +17 -10
  47. package/dist/esm/utils/bytecode/resolveImplementation.js.map +1 -1
  48. package/dist/esm/version.js +1 -1
  49. package/dist/esm/version.js.map +1 -1
  50. package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js +50 -22
  51. package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js.map +1 -1
  52. package/dist/esm/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
  53. package/dist/esm/wallets/coinbase/utils.js +1 -1
  54. package/dist/esm/wallets/coinbase/utils.js.map +1 -1
  55. package/dist/types/chains/chain-definitions/assetchain-testnet.d.ts +7 -0
  56. package/dist/types/chains/chain-definitions/assetchain-testnet.d.ts.map +1 -0
  57. package/dist/types/exports/react.d.ts +1 -0
  58. package/dist/types/exports/react.d.ts.map +1 -1
  59. package/dist/types/exports/react.native.d.ts +2 -0
  60. package/dist/types/exports/react.native.d.ts.map +1 -1
  61. package/dist/types/exports/social.d.ts +1 -1
  62. package/dist/types/exports/social.d.ts.map +1 -1
  63. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  64. package/dist/types/react/core/social/useSocialProfiles.d.ts +1 -1
  65. package/dist/types/react/core/social/useSocialProfiles.d.ts.map +1 -1
  66. package/dist/types/react/core/utils/wallet.d.ts +1 -1
  67. package/dist/types/react/core/utils/walletIcon.d.ts +0 -2
  68. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
  69. package/dist/types/react/native/ui/components/WalletImage.d.ts +1 -1
  70. package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
  71. package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -1
  72. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  73. package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
  74. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
  75. package/dist/types/social/profiles.d.ts +2 -2
  76. package/dist/types/social/profiles.d.ts.map +1 -1
  77. package/dist/types/social/types.d.ts +2 -2
  78. package/dist/types/social/types.d.ts.map +1 -1
  79. package/dist/types/version.d.ts +1 -1
  80. package/dist/types/version.d.ts.map +1 -1
  81. package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts +2 -3
  82. package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts.map +1 -1
  83. package/dist/types/wallets/coinbase/coinbaseWebSDK.d.ts.map +1 -1
  84. package/package.json +14 -1
  85. package/src/chains/chain-definitions/assetchain-testnet.ts +22 -0
  86. package/src/event/actions/get-events.test.ts +13 -0
  87. package/src/exports/react.native.ts +9 -0
  88. package/src/exports/react.ts +6 -0
  89. package/src/exports/social.ts +6 -1
  90. package/src/extensions/modules/ClaimableERC1155/claimableERC1155.test.ts +1 -1
  91. package/src/extensions/modules/ClaimableERC20/claimableERC20.test.ts +1 -1
  92. package/src/extensions/modules/ClaimableERC721/claimableERC721.test.ts +1 -1
  93. package/src/extensions/modules/OpenEditionMetadataERC721/openEditionERC721.test.ts +1 -1
  94. package/src/extensions/prebuilts/deploy-modular-core.test.ts +1 -1
  95. package/src/react/core/hooks/transaction/useSendTransaction.ts +4 -2
  96. package/src/react/core/utils/walletIcon.ts +1 -6
  97. package/src/react/native/ui/components/WalletImage.tsx +9 -5
  98. package/src/react/native/ui/connect/ConnectModal.tsx +2 -3
  99. package/src/react/native/ui/connect/InAppWalletUI.tsx +10 -5
  100. package/src/react/native/ui/icons/svgs.ts +12 -0
  101. package/src/social/profiles.ts +3 -3
  102. package/src/social/types.ts +2 -2
  103. package/src/utils/bytecode/resolveImplementation.test.ts +9 -0
  104. package/src/utils/bytecode/resolveImplementation.ts +21 -13
  105. package/src/version.ts +1 -1
  106. package/src/wallets/coinbase/coinbaseMobileSDK.ts +66 -35
  107. package/src/wallets/coinbase/coinbaseWebSDK.ts +0 -1
  108. package/src/wallets/coinbase/utils.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/social/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;CACxD,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/social/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;CACxD,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "5.53.0-nightly-7dd2869e240522a467c73f0017f080ee118c5bf0-20240908000435";
1
+ export declare const version = "5.53.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,2EAA2E,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import type { ProviderInterface } from "@coinbase/wallet-sdk";
2
- import type { COINBASE } from "../constants.js";
3
- import type { CreateWalletArgs } from "../wallet-types.js";
2
+ import type { CoinbaseWalletCreationOptions } from "./coinbaseWebSDK.js";
4
3
  /**
5
4
  * @internal
6
5
  */
7
- export declare function getCoinbaseMobileProvider(options?: CreateWalletArgs<typeof COINBASE>[1]): Promise<ProviderInterface>;
6
+ export declare function getCoinbaseMobileProvider(options?: CoinbaseWalletCreationOptions): Promise<ProviderInterface>;
8
7
  //# sourceMappingURL=coinbaseMobileSDK.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coinbaseMobileSDK.d.ts","sourceRoot":"","sources":["../../../../src/wallets/coinbase/coinbaseMobileSDK.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
1
+ {"version":3,"file":"coinbaseMobileSDK.d.ts","sourceRoot":"","sources":["../../../../src/wallets/coinbase/coinbaseMobileSDK.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAIzE;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,CAAC,EAAE,6BAA6B,GACtC,OAAO,CAAC,iBAAiB,CAAC,CA+B5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"coinbaseWebSDK.d.ts","sourceRoot":"","sources":["../../../../src/wallets/coinbase/coinbaseWebSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coinbaseWebSDK.d.ts","sourceRoot":"","sources":["../../../../src/wallets/coinbase/coinbaseWebSDK.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thirdweb",
3
- "version": "5.53.0-nightly-7dd2869e240522a467c73f0017f080ee118c5bf0-20240908000435",
3
+ "version": "5.53.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/thirdweb-dev/js.git#main"
@@ -118,6 +118,11 @@
118
118
  "import": "./dist/esm/exports/modules.js",
119
119
  "default": "./dist/cjs/exports/modules.js"
120
120
  },
121
+ "./social": {
122
+ "types": "./dist/types/exports/social.d.ts",
123
+ "import": "./dist/esm/exports/social.js",
124
+ "default": "./dist/cjs/exports/social.js"
125
+ },
121
126
  "./package.json": "./package.json"
122
127
  },
123
128
  "typesVersions": {
@@ -172,6 +177,9 @@
172
177
  ],
173
178
  "modules": [
174
179
  "./dist/types/exports/modules.d.ts"
180
+ ],
181
+ "social": [
182
+ "./dist/types/exports/social.d.ts"
175
183
  ]
176
184
  }
177
185
  },
@@ -218,6 +226,7 @@
218
226
  "@aws-sdk/client-lambda": "^3",
219
227
  "@aws-sdk/credential-providers": "^3",
220
228
  "@coinbase/wallet-mobile-sdk": "^1",
229
+ "@mobile-wallet-protocol/client": "^0.0.2",
221
230
  "@react-native-async-storage/async-storage": "^1",
222
231
  "@react-native-clipboard/clipboard": "*",
223
232
  "amazon-cognito-identity-js": "^6",
@@ -283,6 +292,9 @@
283
292
  },
284
293
  "@coinbase/wallet-mobile-sdk": {
285
294
  "optional": true
295
+ },
296
+ "@mobile-wallet-protocol/client": {
297
+ "optional": true
286
298
  }
287
299
  },
288
300
  "engines": {
@@ -294,6 +306,7 @@
294
306
  "@chromatic-com/storybook": "^1.5.0",
295
307
  "@codspeed/vitest-plugin": "3.1.1",
296
308
  "@coinbase/wallet-mobile-sdk": "1.0.13",
309
+ "@mobile-wallet-protocol/client": "0.0.2",
297
310
  "@react-native-async-storage/async-storage": "^1.23.1",
298
311
  "@react-native-clipboard/clipboard": "1.14.1",
299
312
  "@storybook/addon-essentials": "^8.2.9",
@@ -0,0 +1,22 @@
1
+ import { defineChain } from "../utils.js";
2
+
3
+ /**
4
+ * @chain
5
+ */
6
+ export const assetChainTestnet = /* @__PURE__ */ defineChain({
7
+ id: 42421,
8
+ name: "AssetChain Testnet",
9
+ nativeCurrency: {
10
+ name: "Real World Asset",
11
+ symbol: "RWA",
12
+ decimals: 18,
13
+ },
14
+ blockExplorers: [
15
+ {
16
+ name: "Asset Chain Testnet Explorer",
17
+ url: "https://scan-testnet.assetchain.org",
18
+ apiUrl: "https://scan-testnet.assetchain.org/api",
19
+ },
20
+ ],
21
+ testnet: true,
22
+ });
@@ -129,4 +129,17 @@ describe.runIf(process.env.TW_SECRET_KEY)("getEvents", () => {
129
129
  });
130
130
  expect(events.length).toBe(38);
131
131
  });
132
+
133
+ it("should get individual events with filters", async () => {
134
+ const events = await getContractEvents({
135
+ contract: DOODLES_CONTRACT,
136
+ fromBlock: FORK_BLOCK_NUMBER - 1000n,
137
+ events: [
138
+ transferEvent({
139
+ from: "0xB81965DdFdDA3923f292a47A1be83ba3A36B5133",
140
+ }),
141
+ ],
142
+ });
143
+ expect(events.length).toBe(2);
144
+ });
132
145
  });
@@ -101,3 +101,12 @@ export { ConnectEmbed } from "../react/native/ui/connect/ConnectModal.js";
101
101
  export { useWalletInfo, useWalletImage } from "../react/core/utils/wallet.js";
102
102
 
103
103
  export { useConnectionManager } from "../react/core/providers/connection-manager.js";
104
+
105
+ // Social
106
+ export { useSocialProfiles } from "../react/core/social/useSocialProfiles.js";
107
+ export type {
108
+ SocialProfile,
109
+ EnsProfile,
110
+ FarcasterProfile,
111
+ LensProfile,
112
+ } from "../social/types.js";
@@ -187,3 +187,9 @@ export { useSiweAuth } from "../react/core/hooks/auth/useSiweAuth.js";
187
187
 
188
188
  // Social
189
189
  export { useSocialProfiles } from "../react/core/social/useSocialProfiles.js";
190
+ export type {
191
+ SocialProfile,
192
+ EnsProfile,
193
+ FarcasterProfile,
194
+ LensProfile,
195
+ } from "../social/types.js";
@@ -1,2 +1,7 @@
1
1
  export { getSocialProfiles } from "../social/profiles.js";
2
- export { type SocialProfiles } from "../social/types.js";
2
+ export type {
3
+ SocialProfile,
4
+ EnsProfile,
5
+ FarcasterProfile,
6
+ LensProfile,
7
+ } from "../social/types.js";
@@ -19,7 +19,7 @@ import * as BatchMetadataERC1155 from "../BatchMetadataERC1155/index.js";
19
19
  import { getInstalledModules } from "../__generated__/IModularCore/read/getInstalledModules.js";
20
20
  import * as ClaimableERC1155 from "./index.js";
21
21
 
22
- describe("ModularClaimableERC1155", () => {
22
+ describe.runIf(process.env.TW_SECRET_KEY)("ModularClaimableERC1155", () => {
23
23
  let contract: ThirdwebContract;
24
24
  beforeAll(async () => {
25
25
  const address = await deployModularContract({
@@ -16,7 +16,7 @@ import { deployModularContract } from "../../prebuilts/deploy-modular.js";
16
16
  import { getInstalledModules } from "../__generated__/IModularCore/read/getInstalledModules.js";
17
17
  import * as ClaimableERC20 from "./index.js";
18
18
 
19
- describe("ModularDropERC20", () => {
19
+ describe.runIf(process.env.TW_SECRET_KEY)("ModularDropERC20", () => {
20
20
  let contract: ThirdwebContract;
21
21
  beforeAll(async () => {
22
22
  const address = await deployModularContract({
@@ -17,7 +17,7 @@ import * as BatchMetadataERC721 from "../BatchMetadataERC721/index.js";
17
17
  import { getInstalledModules } from "../__generated__/IModularCore/read/getInstalledModules.js";
18
18
  import * as ClaimableERC721 from "./index.js";
19
19
 
20
- describe("ModularClaimableERC721", () => {
20
+ describe.runIf(process.env.TW_SECRET_KEY)("ModularClaimableERC721", () => {
21
21
  let contract: ThirdwebContract;
22
22
  beforeAll(async () => {
23
23
  const address = await deployModularContract({
@@ -19,7 +19,7 @@ import * as ClaimableERC721 from "../ClaimableERC721/index.js";
19
19
  import { getInstalledModules } from "../__generated__/IModularCore/read/getInstalledModules.js";
20
20
  import * as OpenEditionMetadataERC721 from "./index.js";
21
21
 
22
- describe("ModularOpenEditionERC721", () => {
22
+ describe.runIf(process.env.TW_SECRET_KEY)("ModularOpenEditionERC721", () => {
23
23
  let contract: ThirdwebContract;
24
24
  beforeAll(async () => {
25
25
  const address = await deployModularContract({
@@ -13,7 +13,7 @@ import { uninstallPublishedModule } from "../modules/common/uninstallPublishedMo
13
13
  import { deployModularContract } from "./deploy-modular.js";
14
14
  import { deployPublishedContract } from "./deploy-published.js";
15
15
 
16
- describe(
16
+ describe.runIf(process.env.TW_SECRET_KEY)(
17
17
  "deployModularCore",
18
18
  {
19
19
  timeout: 120000,
@@ -10,6 +10,7 @@ import type { WaitForReceiptOptions } from "../../../../transaction/actions/wait
10
10
  import type { PreparedTransaction } from "../../../../transaction/prepare-transaction.js";
11
11
  import { resolvePromisedValue } from "../../../../utils/promise/resolve-promised-value.js";
12
12
  import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
13
+ import { getTokenBalance } from "../../../../wallets/utils/getTokenBalance.js";
13
14
  import { getWalletBalance } from "../../../../wallets/utils/getWalletBalance.js";
14
15
  import type { LocaleId } from "../../../web/ui/types.js";
15
16
  import type { Theme } from "../../design-system/index.js";
@@ -175,10 +176,11 @@ export function useSendTransactionCore(args: {
175
176
  chain: tx.chain,
176
177
  }),
177
178
  _erc20Value?.tokenAddress
178
- ? getWalletBalance({
179
+ ? getTokenBalance({
179
180
  client: tx.client,
180
- address: account.address,
181
+ account,
181
182
  chain: tx.chain,
183
+ tokenAddress: _erc20Value.tokenAddress,
182
184
  })
183
185
  : undefined,
184
186
  getTotalTxCostForBuy(tx, account.address),
@@ -32,12 +32,6 @@ export const emailIcon =
32
32
  export const phoneIcon =
33
33
  "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzU2MzlfNjMyKSI+CjxwYXRoIGQ9Ik0xNC42NjY5IDExLjI4MDJWMTMuMjgwMkMxNC42Njc3IDEzLjQ2NTkgMTQuNjI5NyAxMy42NDk3IDE0LjU1NTMgMTMuODE5OEMxNC40ODA5IDEzLjk4OTkgMTQuMzcxOCAxNC4xNDI2IDE0LjIzNSAxNC4yNjgxQzE0LjA5ODIgMTQuMzkzNyAxMy45MzY3IDE0LjQ4OTIgMTMuNzYwOCAxNC41NDg3QzEzLjU4NDkgMTQuNjA4MiAxMy4zOTg1IDE0LjYzMDMgMTMuMjEzNiAxNC42MTM2QzExLjE2MjIgMTQuMzkwNyA5LjE5MTYxIDEzLjY4OTcgNy40NjAyOCAxMi41NjY5QzUuODQ5NSAxMS41NDMzIDQuNDgzODQgMTAuMTc3NyAzLjQ2MDI4IDguNTY2ODlDMi4zMzM2IDYuODI3NyAxLjYzMjQ0IDQuODQ3NTYgMS40MTM2MSAyLjc4Njg5QzEuMzk2OTUgMi42MDI1NCAxLjQxODg2IDIuNDE2NzMgMS40Nzc5NSAyLjI0MTMxQzEuNTM3MDMgMi4wNjU4OSAxLjYzMTk5IDEuOTA0NjkgMS43NTY3OSAxLjc2Nzk3QzEuODgxNTkgMS42MzEyNiAyLjAzMzQ4IDEuNTIyMDMgMi4yMDI4MSAxLjQ0NzI0QzIuMzcyMTMgMS4zNzI0NSAyLjU1NTE3IDEuMzMzNzQgMi43NDAyOCAxLjMzMzU2SDQuNzQwMjhDNS4wNjM4MiAxLjMzMDM4IDUuMzc3NDggMS40NDQ5NSA1LjYyMjc5IDEuNjU1OTJDNS44NjgxIDEuODY2ODkgNi4wMjgzMyAyLjE1OTg2IDYuMDczNjEgMi40ODAyM0M2LjE1ODAzIDMuMTIwMjcgNi4zMTQ1OCAzLjc0ODcxIDYuNTQwMjggNC4zNTM1NkM2LjYyOTk4IDQuNTkyMTggNi42NDkzOSA0Ljg1MTUgNi41OTYyMiA1LjEwMDgxQzYuNTQzMDUgNS4zNTAxMiA2LjQxOTUyIDUuNTc4OTcgNi4yNDAyOCA1Ljc2MDIzTDUuMzkzNjEgNi42MDY4OUM2LjM0MjY1IDguMjc1OTIgNy43MjQ1OCA5LjY1Nzg2IDkuMzkzNjEgMTAuNjA2OUwxMC4yNDAzIDkuNzYwMjNDMTAuNDIxNSA5LjU4MDk5IDEwLjY1MDQgOS40NTc0NiAxMC44OTk3IDkuNDA0MjlDMTEuMTQ5IDkuMzUxMTIgMTEuNDA4MyA5LjM3MDUzIDExLjY0NjkgOS40NjAyM0MxMi4yNTE4IDkuNjg1OTMgMTIuODgwMiA5Ljg0MjQ4IDEzLjUyMDMgOS45MjY4OUMxMy44NDQxIDkuOTcyNTggMTQuMTM5OSAxMC4xMzU3IDE0LjM1MTMgMTAuMzg1MkMxNC41NjI3IDEwLjYzNDggMTQuNjc1MSAxMC45NTMzIDE0LjY2NjkgMTEuMjgwMloiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF81NjM5XzYzMiI+CjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K";
34
34
 
35
- export const emailAndPhoneIcon =
36
- "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzM2ODVfNjcwMikiPgo8cmVjdCB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHJ4PSI4IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzY4NV82NzAyKSIvPgo8cmVjdCB4PSItMSIgeT0iLTEiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgcng9IjkuOCIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzM2ODVfNjcwMikiLz4KPHBhdGggZD0iTTE3IDExQzEzLjY4NzUgMTEgMTEgMTMuNjg3NSAxMSAxN0MxMSAyMC4zMTI1IDEzLjY4NzUgMjMgMTcgMjNDMTcuNTUzMSAyMyAxOCAyMy40NDY5IDE4IDI0QzE4IDI0LjU1MzEgMTcuNTUzMSAyNSAxNyAyNUMxMi41ODEzIDI1IDkgMjEuNDE4NyA5IDE3QzkgMTIuNTgxMyAxMi41ODEzIDkgMTcgOUMyMS40MTg3IDkgMjUgMTIuNTgxMyAyNSAxN1YxOEMyNSAxOS42NTYyIDIzLjY1NjIgMjEgMjIgMjFDMjEuMDg0NCAyMSAyMC4yNjI1IDIwLjU4NzUgMTkuNzEyNSAxOS45NDA2QzE5IDIwLjU5NjkgMTguMDQ2OSAyMSAxNyAyMUMxNC43OTA2IDIxIDEzIDE5LjIwOTQgMTMgMTdDMTMgMTQuNzkwNiAxNC43OTA2IDEzIDE3IDEzQzE3Ljg3MTkgMTMgMTguNjc4MSAxMy4yNzgxIDE5LjMzNDQgMTMuNzUzMUMxOS41MTI1IDEzLjU5NjkgMTkuNzQzOCAxMy41IDIwIDEzLjVDMjAuNTUzMSAxMy41IDIxIDEzLjk0NjkgMjEgMTQuNVYxOEMyMSAxOC41NTMxIDIxLjQ0NjkgMTkgMjIgMTlDMjIuNTUzMSAxOSAyMyAxOC41NTMxIDIzIDE4VjE3QzIzIDEzLjY4NzUgMjAuMzEyNSAxMSAxNyAxMVpNMTkgMTdDMTkgMTYuNDY5NiAxOC43ODkzIDE1Ljk2MDkgMTguNDE0MiAxNS41ODU4QzE4LjAzOTEgMTUuMjEwNyAxNy41MzA0IDE1IDE3IDE1QzE2LjQ2OTYgMTUgMTUuOTYwOSAxNS4yMTA3IDE1LjU4NTggMTUuNTg1OEMxNS4yMTA3IDE1Ljk2MDkgMTUgMTYuNDY5NiAxNSAxN0MxNSAxNy41MzA0IDE1LjIxMDcgMTguMDM5MSAxNS41ODU4IDE4LjQxNDJDMTUuOTYwOSAxOC43ODkzIDE2LjQ2OTYgMTkgMTcgMTlDMTcuNTMwNCAxOSAxOC4wMzkxIDE4Ljc4OTMgMTguNDE0MiAxOC40MTQyQzE4Ljc4OTMgMTguMDM5MSAxOSAxNy41MzA0IDE5IDE3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI3LjgzODQgMzMuMjY0NEwyOC4yNDI5IDMzLjY5MDdDMjguMjQyOSAzMy42OTA3IDI5LjIwNTUgMzQuNzAzNCAzMS44MzIyIDMxLjkzODNDMzQuNDU4OCAyOS4xNzMxIDMzLjQ5NjIgMjguMTYwNCAzMy40OTYyIDI4LjE2MDRMMzMuMjQxOSAyNy44OTEyQzMyLjYxMzUgMjcuMjMwNSAzMi41NTM5IDI2LjE2ODkgMzMuMTAyNCAyNS4zOTM0TDM0LjIyMjQgMjMuODA5NEMzNC45MDE1IDIyLjg0OTQgMzYuMjEyNiAyMi43MjIzIDM2Ljk5MDQgMjMuNTQxMkwzOC4zODU5IDI1LjAwOTRDMzguNzcwOCAyNS40MTYgMzkuMDI4NiAyNS45NDExIDM4Ljk5NzUgMjYuNTI0N0MzOC45MTc1IDI4LjAxODMgMzguMjc5MiAzMS4yMzA1IDM0LjcyMDIgMzQuOTc4M0MzMC45NDUxIDM4Ljk1MTkgMjcuNDAyOSAzOS4xMSAyNS45NTQ5IDM4Ljk2NjlDMjUuNDk2MiAzOC45MjE4IDI1LjA5OCAzOC42NzUyIDI0Ljc3NzEgMzguMzM2M0wyMy41MTQ5IDM3LjAwNzRDMjIuNjYxNiAzNi4xMTA1IDIyLjkwMTYgMzQuNTcxNyAyMy45OTMxIDMzLjk0MzlMMjUuNjkwOSAzMi45NjZDMjYuNDA3MyAzMi41NTM4IDI3LjI3ODQgMzIuNjc1MiAyNy44Mzg0IDMzLjI2NDRaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzY4NV82NzAyIiB4MT0iMjUuNSIgeTE9Ii02LjI5NTcyZS0wNiIgeDI9IjMwLjIwMTYiIHkyPSI0Ny41MzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzgzNThCQSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM3QjFDRjciLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDFfbGluZWFyXzM2ODVfNjcwMiIgeDE9IjI1LjU2MjUiIHkxPSItMS4wMDAwMSIgeDI9IjMwLjQ2IiB5Mj0iNDguNTE1NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjODM1OEJBIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzdCMUNGNyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzM2ODVfNjcwMiI+CjxyZWN0IHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgcng9IjgiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==";
37
-
38
- export const smartWalletIcon =
39
- "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCA4MCA4MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xXzkxKSIvPgo8cGF0aCBkPSJNMzkuOTk2OSAxOEw0MC4yMzMzIDE4LjAxNTZMNDAuMzUxMyAxOC4wMzMzTDQwLjQ3MzYgMTguMDYyMkw0MC42OTU4IDE4LjEzNzhDNDAuODQ5NCAxOC4yMDA2IDQwLjk5NTQgMTguMjg0MiA0MS4xMzA1IDE4LjM4NjdMNDEuMzM4NyAxOC41Njg5TDQxLjg0OTMgMTkuMDUzM0M0NS44ODkxIDIyLjc3NjggNTAuOTk0NyAyNC43NzYyIDU2LjI0NTggMjQuNjkxMUw1Ni45MzA3IDI0LjY2ODlDNTcuMzc4MyAyNC42NDYyIDU3LjgyIDI0Ljc5MDkgNTguMTg0OSAyNS4wNzk4QzU4LjU0OTggMjUuMzY4NyA1OC44MTY3IDI1Ljc4NSA1OC45NDMxIDI2LjI2MjJDNTkuOTI3MSAyOS45NzY5IDYwLjIyODMgMzMuODczMSA1OS44Mjg3IDM3LjcxOTRDNTkuNDI4OSA0MS41NjU4IDU4LjMzNjcgNDUuMjgzNiA1Ni42MTY1IDQ4LjY1MjNDNTQuODk2NSA1Mi4wMjA3IDUyLjU4MzYgNTQuOTcxNCA0OS44MTU2IDU3LjMyODVDNDcuMDQ3NiA1OS42ODU2IDQzLjg4MDkgNjEuNDAxMiA0MC41MDM2IDYyLjM3MzRDNDAuMTc0IDYyLjQ2ODMgMzkuODI4IDYyLjQ2ODMgMzkuNDk4MiA2Mi4zNzM0QzM2LjEyMDkgNjEuNDAxNCAzMi45NTM4IDU5LjY4NiAzMC4xODU2IDU3LjMyODlDMjcuNDE3NiA1NC45NzE4IDI1LjEwNDUgNTIuMDIxNCAyMy4zODQyIDQ4LjY1MjlDMjEuNjYzOCA0NS4yODQzIDIwLjU3MTMgNDEuNTY2MiAyMC4xNzE1IDM3LjcxOThDMTkuNzcxNyAzMy44NzM0IDIwLjA3MjcgMjkuOTc2OSAyMS4wNTY3IDI2LjI2MjJDMjEuMTgzMSAyNS43ODUgMjEuNDUwMSAyNS4zNjg3IDIxLjgxNSAyNS4wNzk4QzIyLjE3OTkgMjQuNzkwOSAyMi42MjE1IDI0LjY0NjIgMjMuMDY5MyAyNC42Njg5QzI4LjU1MTMgMjQuOTQ3IDMzLjkyOTMgMjIuOTQ0NCAzOC4xNTA3IDE5LjA1MzNMMzguNjc3MyAxOC41NTMzTDM4Ljg2OTYgMTguMzg2N0MzOS4wMDQ3IDE4LjI4NDIgMzkuMTUwNSAxOC4yMDA2IDM5LjMwNCAxOC4xMzc4TDM5LjUyODIgMTguMDYyMkMzOS42MDY5IDE4LjA0MTIgMzkuNjg2NSAxOC4wMjU2IDM5Ljc2NjcgMTguMDE1NkwzOS45OTY5IDE4Wk00MC4wMDA5IDMzLjU1NTZDMzguOTkwNSAzMy41NTUxIDM4LjAxNzMgMzMuOTc4NyAzNy4yNzY1IDM0Ljc0MTFDMzYuNTM1NiAzNS41MDM2IDM2LjA4MTYgMzYuNTQ4NSAzNi4wMDU4IDM3LjY2NjdMMzUuOTk1OCAzOEwzNi4wMDU4IDM4LjMzMzRDMzYuMDU1MSAzOS4wNTQ3IDM2LjI2MjUgMzkuNzUxOCAzNi42MDk4IDQwLjM2NEMzNi45NTY5IDQwLjk3NjIgMzcuNDMzNiA0MS40ODUxIDM3Ljk5ODUgNDEuODQ2N1Y0NS43Nzc4TDM4LjAxMjUgNDYuMDM3OEMzOC4wNzI3IDQ2LjYwMDMgMzguMzI0MiA0Ny4xMTU4IDM4LjcxNTYgNDcuNDc5NEMzOS4xMDcxIDQ3Ljg0MjkgMzkuNjA4NyA0OC4wMjY5IDQwLjExODIgNDcuOTkzOEM0MC42Mjc4IDQ3Ljk2MDUgNDEuMTA2NyA0Ny43MTI3IDQxLjQ1NzEgNDcuMzAwOUM0MS44MDc2IDQ2Ljg4ODkgNDIuMDAyOSA0Ni4zNDQzIDQyLjAwMzYgNDUuNzc3OEw0Mi4wMDU2IDQxLjg0ODlDNDIuNzY5MSA0MS4zNTk2IDQzLjM2NiA0MC42MDQyIDQzLjcwMzQgMzkuNzAwMkM0NC4wNDA3IDM4Ljc5NiA0NC4wOTk2IDM3Ljc5MzggNDMuODcxMSAzNi44NDg3QzQzLjY0MjcgMzUuOTAzNiA0My4xMzk2IDM1LjA2ODUgNDIuNDM5OCAzNC40NzMxQzQxLjc0IDMzLjg3NzYgNDAuODgyNyAzMy41NTUxIDQwLjAwMDkgMzMuNTU1NloiIGZpbGw9InVybCgjcGFpbnQxX2xpbmVhcl8xXzkxKSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzFfOTEiIHgxPSI0MCIgeTE9IjAiIHgyPSI0MCIgeTI9IjgwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM4MzU2QkQiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjN0MyMEY0Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xXzkxIiB4MT0iNDAiIHkxPSIxOCIgeDI9IjQwIiB5Mj0iNjIuNDQ0NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSJ3aGl0ZSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNFMUQ4RkIiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K";
40
-
41
35
  export const genericTokenIcon =
42
36
  "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzQwNDhfNDIzMSkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuNTg0IDQuODU1NjZDNy43MTA2OSA0Ljc4MjUyIDcuODU0MzkgNC43NDQwMiA4LjAwMDY3IDQuNzQ0MDJDOC4xNDY5NSA0Ljc0NDAyIDguMjkwNjUgNC43ODI1MiA4LjQxNzM0IDQuODU1NjZMMTAuNTE1MyA2LjA2NjY2QzEwLjY0MiA2LjEzOTggMTAuNzQ3MiA2LjI0NSAxMC44MjA0IDYuMzcxNjhDMTAuODkzNSA2LjQ5ODM1IDEwLjkzMiA2LjY0MjA1IDEwLjkzMiA2Ljc4ODMzVjkuMjExQzEwLjkzMiA5LjM1NzI3IDEwLjg5MzUgOS41MDA5NyAxMC44MjA0IDkuNjI3NjVDMTAuNzQ3MiA5Ljc1NDMzIDEwLjY0MiA5Ljg1OTUzIDEwLjUxNTMgOS45MzI2Nkw4LjQxNzM0IDExLjE0NEM4LjI5MDY1IDExLjIxNzEgOC4xNDY5NSAxMS4yNTU2IDguMDAwNjcgMTEuMjU1NkM3Ljg1NDM5IDExLjI1NTYgNy43MTA2OSAxMS4yMTcxIDcuNTg0IDExLjE0NEw1LjQ4NiA5LjkzMjY2QzUuMzU5MzIgOS44NTk1MyA1LjI1NDEzIDkuNzU0MzMgNS4xODA5OSA5LjYyNzY1QzUuMTA3ODUgOS41MDA5NyA1LjA2OTM0IDkuMzU3MjcgNS4wNjkzNCA5LjIxMVY2Ljc4ODY2QzUuMDY5MjggNi42NDIzMyA1LjEwNzc2IDYuNDk4NTYgNS4xODA5IDYuMzcxODJDNS4yNTQwNSA2LjI0NTA4IDUuMzU5MjcgNi4xMzk4MyA1LjQ4NiA2LjA2NjY2TDcuNTg0IDQuODU1NjZaTTguMDg0IDUuNDMzQzguMDU4NjcgNS40MTgzNyA4LjAyOTkzIDUuNDEwNjcgOC4wMDA2NyA1LjQxMDY3QzcuOTcxNDEgNS40MTA2NyA3Ljk0MjY3IDUuNDE4MzcgNy45MTczNCA1LjQzM0w1LjgxOTM0IDYuNjQ0MzNDNS43OTQgNi42NTg5NiA1Ljc3Mjk2IDYuNjggNS43NTgzMyA2LjcwNTMzQzUuNzQzNyA2LjczMDY3IDUuNzM2IDYuNzU5NDEgNS43MzYgNi43ODg2NlY5LjIxMTMzQzUuNzM2IDkuMjQwNTkgNS43NDM3IDkuMjY5MzMgNS43NTgzMyA5LjI5NDY2QzUuNzcyOTYgOS4zMiA1Ljc5NCA5LjM0MTA0IDUuODE5MzQgOS4zNTU2Nkw3LjkxNzM0IDEwLjU2NjdDNy45NDI2NyAxMC41ODEzIDcuOTcxNDEgMTAuNTg5IDguMDAwNjcgMTAuNTg5QzguMDI5OTMgMTAuNTg5IDguMDU4NjcgMTAuNTgxMyA4LjA4NCAxMC41NjY3TDEwLjE4MiA5LjM1NTMzQzEwLjIwNzMgOS4zNDA3IDEwLjIyODQgOS4zMTk2NiAxMC4yNDMgOS4yOTQzM0MxMC4yNTc2IDkuMjY4OTkgMTAuMjY1MyA5LjI0MDI1IDEwLjI2NTMgOS4yMTFWNi43ODg2NkMxMC4yNjUzIDYuNzU5NDEgMTAuMjU3NiA2LjczMDY3IDEwLjI0MyA2LjcwNTMzQzEwLjIyODQgNi42OCAxMC4yMDczIDYuNjU4OTYgMTAuMTgyIDYuNjQ0MzNMOC4wODQgNS40MzNaIiBmaWxsPSIjNUM1QzVDIi8+CjwvZz4KPGNpcmNsZSBjeD0iOCIgY3k9IjgiIHI9IjcuNjkyMzEiIHN0cm9rZT0iIzVDNUM1QyIgc3Ryb2tlLXdpZHRoPSIwLjYxNTM4NSIvPgo8Y2lyY2xlIGN4PSI3Ljk5OTU1IiBjeT0iOC4wMDAwNCIgcj0iNS44NDYxNSIgc3Ryb2tlPSIjNUM1QzVDIiBzdHJva2Utd2lkdGg9IjAuNjE1Mzg1Ii8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzQwNDhfNDIzMSI+CjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0IDQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==";
43
37
 
@@ -56,6 +50,7 @@ export const socialIcons = {
56
50
  telegram: telegramIconUri,
57
51
  };
58
52
 
53
+ // TODO: this should return actual <svg> elements so they can be themed
59
54
  export function getWalletIcon(provider: string) {
60
55
  switch (provider) {
61
56
  case "google":
@@ -5,13 +5,15 @@ import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
5
5
  import { getStoredActiveWalletId } from "../../../../wallets/manager/index.js";
6
6
  import type { Theme } from "../../../core/design-system/index.js";
7
7
  import { getLastAuthProvider } from "../../../core/utils/storage.js";
8
- import { getWalletIcon } from "../../../core/utils/walletIcon.js";
9
8
  import {
10
9
  APPLE_ICON,
11
10
  DISCORD_ICON,
11
+ EMAIL_ICON,
12
12
  FACEBOOK_ICON,
13
13
  FARCASTER_ICON,
14
14
  GOOGLE_ICON,
15
+ PASSKEY_ICON,
16
+ PHONE_ICON,
15
17
  TELEGRAM_ICON,
16
18
  WALLET_ICON,
17
19
  } from "../icons/svgs.js";
@@ -63,12 +65,14 @@ export const WalletImage = (props: {
63
65
  return <RNImage theme={props.theme} data={data} size={size} />;
64
66
  };
65
67
 
66
- export function getAuthProviderImage(lastAuthProvider: string | null): string {
67
- switch (lastAuthProvider) {
68
+ export function getAuthProviderImage(authProvider: string | null): string {
69
+ switch (authProvider) {
68
70
  case "phone":
71
+ return PHONE_ICON;
69
72
  case "email":
73
+ return EMAIL_ICON;
70
74
  case "passkey":
71
- return getWalletIcon(lastAuthProvider);
75
+ return PASSKEY_ICON;
72
76
  case "google":
73
77
  return GOOGLE_ICON;
74
78
  case "apple":
@@ -82,6 +86,6 @@ export function getAuthProviderImage(lastAuthProvider: string | null): string {
82
86
  case "telegram":
83
87
  return TELEGRAM_ICON;
84
88
  default:
85
- return getWalletIcon("");
89
+ return WALLET_ICON;
86
90
  }
87
91
  }
@@ -15,7 +15,6 @@ import { useActiveWallet } from "../../../core/hooks/wallets/useActiveWallet.js"
15
15
  import { useDisconnect } from "../../../core/hooks/wallets/useDisconnect.js";
16
16
  import { useConnectionManager } from "../../../core/providers/connection-manager.js";
17
17
  import { useWalletInfo } from "../../../core/utils/wallet.js";
18
- import { getWalletIcon } from "../../../core/utils/walletIcon.js";
19
18
  import { radius, spacing } from "../../design-system/index.js";
20
19
  import { getDefaultWallets } from "../../wallets/defaultWallets.js";
21
20
  import { type ContainerType, Header } from "../components/Header.js";
@@ -28,7 +27,7 @@ import { ThemedButton, ThemedButtonWithIcon } from "../components/button.js";
28
27
  import { Spacer } from "../components/spacer.js";
29
28
  import { ThemedText } from "../components/text.js";
30
29
  import { ThemedView } from "../components/view.js";
31
- import { TW_ICON } from "../icons/svgs.js";
30
+ import { TW_ICON, WALLET_ICON } from "../icons/svgs.js";
32
31
  import { ErrorView } from "./ErrorView.js";
33
32
  import { ExternalWalletsList } from "./ExternalWalletsList.js";
34
33
  import { InAppWalletUI, OtpLogin, PasskeyView } from "./InAppWalletUI.js";
@@ -374,7 +373,7 @@ export function ConnectModal(
374
373
  <OrDivider theme={theme} />
375
374
  <ThemedButtonWithIcon
376
375
  theme={theme}
377
- icon={getWalletIcon("")}
376
+ icon={WALLET_ICON}
378
377
  title="Connect a wallet"
379
378
  onPress={() =>
380
379
  setModalState({ screen: "external_wallets" })
@@ -21,9 +21,9 @@ import {
21
21
  } from "../../../../wallets/types.js";
22
22
  import type { Theme } from "../../../core/design-system/index.js";
23
23
  import { setLastAuthProvider } from "../../../core/utils/storage.js";
24
- import { getWalletIcon } from "../../../core/utils/walletIcon.js";
25
24
  import { radius, spacing } from "../../design-system/index.js";
26
25
  import { RNImage } from "../components/RNImage.js";
26
+ import { getAuthProviderImage } from "../components/WalletImage.js";
27
27
  import { ThemedButton, ThemedButtonWithIcon } from "../components/button.js";
28
28
  import { ThemedInput, ThemedInputWithSubmit } from "../components/input.js";
29
29
  import { Spacer } from "../components/spacer.js";
@@ -93,7 +93,7 @@ export function InAppWalletUI(props: InAppWalletFormUIProps) {
93
93
  <ThemedButtonWithIcon
94
94
  theme={theme}
95
95
  title="Email address"
96
- icon={getWalletIcon("email")}
96
+ icon={getAuthProviderImage("email")}
97
97
  onPress={() => setInputMode("email")}
98
98
  />
99
99
  )
@@ -105,7 +105,7 @@ export function InAppWalletUI(props: InAppWalletFormUIProps) {
105
105
  <ThemedButtonWithIcon
106
106
  theme={theme}
107
107
  title="Phone number"
108
- icon={getWalletIcon("phone")}
108
+ icon={getAuthProviderImage("phone")}
109
109
  onPress={() => setInputMode("phone")}
110
110
  />
111
111
  )
@@ -114,7 +114,7 @@ export function InAppWalletUI(props: InAppWalletFormUIProps) {
114
114
  <ThemedButtonWithIcon
115
115
  theme={theme}
116
116
  title="Passkey"
117
- icon={getWalletIcon("passkey")}
117
+ icon={getAuthProviderImage("passkey")}
118
118
  onPress={() => {
119
119
  props.setScreen({ screen: "passkey", wallet });
120
120
  }}
@@ -363,7 +363,12 @@ export function PasskeyView(props: InAppWalletFormUIProps) {
363
363
  padding: spacing.xl,
364
364
  }}
365
365
  >
366
- <RNImage theme={theme} size={90} data={getWalletIcon("passkey")} />
366
+ <RNImage
367
+ theme={theme}
368
+ size={90}
369
+ data={getAuthProviderImage("passkey")}
370
+ color={theme.colors.accentButtonBg}
371
+ />
367
372
  <Spacer size="xxl" />
368
373
  <ThemedButton
369
374
  theme={theme}
@@ -74,6 +74,18 @@ export const PHONE_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill=
74
74
  </svg>
75
75
  `;
76
76
 
77
+ export const PASSKEY_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
78
+ <path d="M7.99971 6.6665C7.64609 6.6665 7.30695 6.80698 7.0569 7.05703C6.80685 7.30708 6.66638 7.64622 6.66638 7.99984C6.66638 8.67984 6.59971 9.67317 6.49304 10.6665" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
79
+ <path d="M9.33305 8.74658C9.33305 10.3332 9.33305 12.9999 8.66638 14.6666" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
80
+ <path d="M11.5272 14.0133C11.6072 13.6133 11.8139 12.48 11.8606 12" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
81
+ <path d="M1.33386 8.00016C1.33386 6.60095 1.77411 5.2372 2.59225 4.10209C3.41038 2.96699 4.56493 2.11808 5.89234 1.67561C7.21976 1.23314 8.65274 1.21954 9.98831 1.63674C11.3239 2.05394 12.4943 2.88079 13.3339 4.00016" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
82
+ <path d="M1.33386 10.6665H1.33902" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
83
+ <path d="M14.5327 10.6665C14.666 9.33317 14.62 7.09717 14.5327 6.6665" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
84
+ <path d="M3.33386 12.9998C3.6672 11.9998 4.00053 9.99984 4.00053 7.99984C3.99986 7.54575 4.07651 7.09486 4.2272 6.6665" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
85
+ <path d="M5.76709 14.6668C5.90709 14.2268 6.06709 13.7868 6.14709 13.3335" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
86
+ <path d="M6.00012 4.53346C6.60839 4.18228 7.2984 3.99745 8.00076 3.99756C8.70313 3.99767 9.39308 4.18272 10.0012 4.5341C10.6094 4.88548 11.1143 5.39079 11.4652 5.99923C11.8161 6.60766 12.0006 7.29776 12.0001 8.00012V9.33346" stroke="currentColor" stroke-width="1.2549" stroke-linecap="round" stroke-linejoin="round"/>
87
+ </svg>`;
88
+
77
89
  export const RIGHT_ARROW = `<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
78
90
  <path d="M10.5868 16.2882C10.4994 16.2011 10.4301 16.0977 10.3827 15.9837C10.3354 15.8697 10.3111 15.7476 10.3111 15.6242C10.3111 15.5008 10.3354 15.3786 10.3827 15.2647C10.4301 15.1507 10.4994 15.0472 10.5868 14.9601L14.6095 10.9375L3.12509 10.9375C2.87645 10.9375 2.638 10.8387 2.46218 10.6629C2.28637 10.4871 2.18759 10.2486 2.18759 9.99996C2.18759 9.75132 2.28637 9.51287 2.46218 9.33705C2.638 9.16124 2.87645 9.06246 3.12509 9.06246L14.6095 9.06246L10.5868 5.03825C10.4107 4.86213 10.3117 4.62326 10.3117 4.37418C10.3117 4.12511 10.4107 3.88624 10.5868 3.71012C10.7629 3.534 11.0018 3.43506 11.2509 3.43506C11.4999 3.43506 11.7388 3.534 11.9149 3.71012L17.5399 9.33512C17.6273 9.42222 17.6967 9.52571 17.744 9.63967C17.7913 9.75362 17.8157 9.8758 17.8157 9.99918C17.8157 10.1226 17.7913 10.2447 17.744 10.3587C17.6967 10.4727 17.6273 10.5761 17.5399 10.6632L11.9149 16.2882C11.8278 16.3756 11.7243 16.445 11.6104 16.4923C11.4964 16.5396 11.3743 16.564 11.2509 16.564C11.1275 16.564 11.0053 16.5396 10.8914 16.4923C10.7774 16.445 10.6739 16.3756 10.5868 16.2882Z" fill="currentColor"/>
79
91
  </svg>
@@ -1,7 +1,7 @@
1
1
  import type { ThirdwebClient } from "../client/client.js";
2
2
  import { getThirdwebBaseUrl } from "../utils/domains.js";
3
3
  import { getClientFetch } from "../utils/fetch.js";
4
- import type { SocialProfiles } from "./types.js";
4
+ import type { SocialProfile } from "./types.js";
5
5
 
6
6
  /**
7
7
  * Fetches the wallet's available social profiles.
@@ -23,7 +23,7 @@ import type { SocialProfiles } from "./types.js";
23
23
  export async function getSocialProfiles(args: {
24
24
  address: string;
25
25
  client: ThirdwebClient;
26
- }): Promise<SocialProfiles> {
26
+ }): Promise<SocialProfile[]> {
27
27
  const { address, client } = args;
28
28
 
29
29
  const clientFetch = getClientFetch(client);
@@ -42,5 +42,5 @@ export async function getSocialProfiles(args: {
42
42
  }
43
43
  }
44
44
 
45
- return (await response.json()).data as SocialProfiles;
45
+ return (await response.json()).data as SocialProfile[];
46
46
  }
@@ -34,10 +34,10 @@ export type EnsProfile = {
34
34
  telegram?: string;
35
35
  };
36
36
 
37
- export type SocialProfiles = {
37
+ export type SocialProfile = {
38
38
  type: "farcaster" | "lens" | "ens";
39
39
  name?: string;
40
40
  avatar?: string;
41
41
  bio?: string;
42
42
  metadata?: FarcasterProfile | LensProfile | EnsProfile;
43
- }[];
43
+ };
@@ -8,6 +8,8 @@ import {
8
8
  import { ANVIL_CHAIN } from "../../../test/src/chains.js";
9
9
  import { TEST_CLIENT } from "../../../test/src/test-clients.js";
10
10
  import {
11
+ BASE_USDC_IMPLEMENTATION,
12
+ BASE_USDC_PROXY_CONTRACT,
11
13
  NFT_DROP_CONTRACT,
12
14
  NFT_DROP_IMPLEMENTATION,
13
15
  POLYGON_USDT_IMPLEMENTATION,
@@ -31,6 +33,13 @@ describe("Resolve implementation", async () => {
31
33
  );
32
34
  });
33
35
 
36
+ it("should extract implementation address for base USDC proxy contract", async () => {
37
+ const resolved = resolveImplementation(BASE_USDC_PROXY_CONTRACT);
38
+ expect((await resolved).address).to.equal(
39
+ BASE_USDC_IMPLEMENTATION.toLowerCase(),
40
+ );
41
+ });
42
+
34
43
  it("should extract implementation address for ERC1967 proxy contract", async () => {
35
44
  const implementationAddress = await deployContract({
36
45
  client: TEST_CLIENT,
@@ -120,24 +120,32 @@ async function getImplementationFromStorageSlot(
120
120
  });
121
121
 
122
122
  try {
123
- let proxyStorage = "";
124
-
125
- proxyStorage = await eth_getStorageAt(rpcRequest, {
126
- address: contract.address,
127
- position:
128
- "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
129
- });
130
-
131
- if (proxyStorage === ZERO_BYTES32 && contract.chain.id === 137) {
132
- proxyStorage = await eth_getStorageAt(rpcRequest, {
123
+ const proxyStoragePromises = [
124
+ eth_getStorageAt(rpcRequest, {
125
+ address: contract.address,
126
+ position:
127
+ "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
128
+ }),
129
+ eth_getStorageAt(rpcRequest, {
133
130
  address: contract.address,
134
131
  position:
135
132
  // keccak256("matic.network.proxy.implementation") - used in polygon USDT proxy: https://polygonscan.com/address/0xc2132d05d31c914a87c6611c10748aeb04b58e8f#code
136
133
  "0xbaab7dbf64751104133af04abc7d9979f0fda3b059a322a8333f533d3f32bf7f",
137
- });
138
- }
134
+ }),
135
+ eth_getStorageAt(rpcRequest, {
136
+ address: contract.address,
137
+ position:
138
+ // keccak256("org.zeppelinos.proxy.implementation") - e.g. base USDC proxy: https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913#code
139
+ "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3",
140
+ }),
141
+ ];
139
142
 
140
- return `0x${proxyStorage.slice(-40)}`;
143
+ const proxyStorages = await Promise.all(proxyStoragePromises);
144
+ const proxyStorage = proxyStorages.find(
145
+ (storage) => storage !== ZERO_BYTES32,
146
+ );
147
+
148
+ return proxyStorage ? `0x${proxyStorage.slice(-40)}` : AddressZero;
141
149
  } catch {
142
150
  return undefined;
143
151
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.53.0-nightly-7dd2869e240522a467c73f0017f080ee118c5bf0-20240908000435";
1
+ export const version = "5.53.0";