thirdweb 5.55.1-nightly-b2a2c9784a33394dffbcd32bbd28b2c612a4e603-20240915000420 → 5.56.0-nightly-a5e605c65e360a9d3d2e553d6783e58582b50a70-20240917000331

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 (127) hide show
  1. package/dist/cjs/contract/deployment/publisher.js +4 -4
  2. package/dist/cjs/contract/deployment/publisher.js.map +1 -1
  3. package/dist/cjs/exports/extensions/thirdweb.js +4 -3
  4. package/dist/cjs/exports/extensions/thirdweb.js.map +1 -1
  5. package/dist/cjs/exports/modules.js +4 -1
  6. package/dist/cjs/exports/modules.js.map +1 -1
  7. package/dist/cjs/exports/react.js +4 -2
  8. package/dist/cjs/exports/react.js.map +1 -1
  9. package/dist/cjs/exports/react.native.js +3 -1
  10. package/dist/cjs/exports/react.native.js.map +1 -1
  11. package/dist/cjs/extensions/modules/common/checkModulesCompatibility.js +95 -0
  12. package/dist/cjs/extensions/modules/common/checkModulesCompatibility.js.map +1 -0
  13. package/dist/cjs/extensions/thirdweb/write/publish.js +106 -0
  14. package/dist/cjs/extensions/thirdweb/write/publish.js.map +1 -0
  15. package/dist/cjs/react/core/hooks/wallets/useAdminAccount.js +23 -0
  16. package/dist/cjs/react/core/hooks/wallets/useAdminAccount.js.map +1 -0
  17. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +2 -1
  18. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  19. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +1 -1
  20. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  21. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js +0 -1
  22. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +7 -5
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  25. package/dist/cjs/utils/arrays.js +23 -0
  26. package/dist/cjs/utils/arrays.js.map +1 -0
  27. package/dist/cjs/utils/extensions/convert-erc20-amount.js +21 -16
  28. package/dist/cjs/utils/extensions/convert-erc20-amount.js.map +1 -1
  29. package/dist/cjs/utils/semver.js +67 -0
  30. package/dist/cjs/utils/semver.js.map +1 -0
  31. package/dist/cjs/version.js +1 -1
  32. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js +0 -1
  33. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  34. package/dist/cjs/wallets/smart/smart-wallet.js +3 -0
  35. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
  36. package/dist/esm/contract/deployment/publisher.js +1 -1
  37. package/dist/esm/contract/deployment/publisher.js.map +1 -1
  38. package/dist/esm/exports/extensions/thirdweb.js +1 -1
  39. package/dist/esm/exports/extensions/thirdweb.js.map +1 -1
  40. package/dist/esm/exports/modules.js +2 -1
  41. package/dist/esm/exports/modules.js.map +1 -1
  42. package/dist/esm/exports/react.js +1 -0
  43. package/dist/esm/exports/react.js.map +1 -1
  44. package/dist/esm/exports/react.native.js +1 -0
  45. package/dist/esm/exports/react.native.js.map +1 -1
  46. package/dist/esm/extensions/modules/common/checkModulesCompatibility.js +93 -0
  47. package/dist/esm/extensions/modules/common/checkModulesCompatibility.js.map +1 -0
  48. package/dist/esm/extensions/thirdweb/write/publish.js +102 -0
  49. package/dist/esm/extensions/thirdweb/write/publish.js.map +1 -0
  50. package/dist/esm/react/core/hooks/wallets/useAdminAccount.js +20 -0
  51. package/dist/esm/react/core/hooks/wallets/useAdminAccount.js.map +1 -0
  52. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +2 -1
  53. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  54. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +1 -1
  55. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  56. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js +0 -1
  57. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js.map +1 -1
  58. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +7 -5
  59. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  60. package/dist/esm/utils/arrays.js +20 -0
  61. package/dist/esm/utils/arrays.js.map +1 -0
  62. package/dist/esm/utils/extensions/convert-erc20-amount.js +21 -16
  63. package/dist/esm/utils/extensions/convert-erc20-amount.js.map +1 -1
  64. package/dist/esm/utils/semver.js +62 -0
  65. package/dist/esm/utils/semver.js.map +1 -0
  66. package/dist/esm/version.js +1 -1
  67. package/dist/esm/wallets/in-app/web/lib/in-app-account.js +0 -1
  68. package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  69. package/dist/esm/wallets/smart/smart-wallet.js +3 -0
  70. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
  71. package/dist/types/contract/deployment/publisher.d.ts +1 -0
  72. package/dist/types/contract/deployment/publisher.d.ts.map +1 -1
  73. package/dist/types/exports/extensions/thirdweb.d.ts +1 -1
  74. package/dist/types/exports/extensions/thirdweb.d.ts.map +1 -1
  75. package/dist/types/exports/modules.d.ts +2 -1
  76. package/dist/types/exports/modules.d.ts.map +1 -1
  77. package/dist/types/exports/react.d.ts +1 -0
  78. package/dist/types/exports/react.d.ts.map +1 -1
  79. package/dist/types/exports/react.native.d.ts +1 -0
  80. package/dist/types/exports/react.native.d.ts.map +1 -1
  81. package/dist/types/extensions/modules/common/checkModulesCompatibility.d.ts +9 -0
  82. package/dist/types/extensions/modules/common/checkModulesCompatibility.d.ts.map +1 -0
  83. package/dist/types/extensions/thirdweb/write/publish.d.ts +29 -0
  84. package/dist/types/extensions/thirdweb/write/publish.d.ts.map +1 -0
  85. package/dist/types/react/core/hooks/wallets/useAdminAccount.d.ts +7 -0
  86. package/dist/types/react/core/hooks/wallets/useAdminAccount.d.ts.map +1 -0
  87. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.d.ts.map +1 -1
  88. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts.map +1 -1
  89. package/dist/types/utils/any-evm/deploy-metadata.d.ts +18 -1
  90. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  91. package/dist/types/utils/arrays.d.ts +5 -0
  92. package/dist/types/utils/arrays.d.ts.map +1 -0
  93. package/dist/types/utils/extensions/convert-erc20-amount.d.ts.map +1 -1
  94. package/dist/types/utils/semver.d.ts +25 -0
  95. package/dist/types/utils/semver.d.ts.map +1 -0
  96. package/dist/types/version.d.ts +1 -1
  97. package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +1 -1
  98. package/dist/types/wallets/interfaces/wallet.d.ts +5 -0
  99. package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
  100. package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
  101. package/package.json +23 -23
  102. package/src/contract/deployment/publisher.ts +2 -1
  103. package/src/exports/extensions/thirdweb.ts +6 -4
  104. package/src/exports/modules.ts +5 -1
  105. package/src/exports/react.native.ts +1 -0
  106. package/src/exports/react.ts +1 -0
  107. package/src/extensions/erc721/lazyMinting/write/createAndReveal.test.ts +1 -1
  108. package/src/extensions/modules/MintableERC1155/mintableERC1155.test.ts +1 -1
  109. package/src/extensions/modules/MintableERC20/mintableERC20.test.ts +1 -1
  110. package/src/extensions/modules/MintableERC721/mintableERC721.test.ts +1 -1
  111. package/src/extensions/modules/common/checkModulesCompatibility.test.ts +46 -0
  112. package/src/extensions/modules/common/checkModulesCompatibility.ts +123 -0
  113. package/src/extensions/thirdweb/write/publish.test.ts +162 -0
  114. package/src/extensions/thirdweb/write/publish.ts +131 -0
  115. package/src/react/core/hooks/wallets/useAdminAccount.ts +25 -0
  116. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +2 -1
  117. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +1 -1
  118. package/src/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.tsx +0 -2
  119. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +9 -5
  120. package/src/utils/any-evm/deploy-metadata.ts +18 -4
  121. package/src/utils/arrays.ts +23 -0
  122. package/src/utils/extensions/convert-erc20-amount.ts +23 -17
  123. package/src/utils/semver.ts +76 -0
  124. package/src/version.ts +1 -1
  125. package/src/wallets/in-app/web/lib/in-app-account.ts +0 -1
  126. package/src/wallets/interfaces/wallet.ts +6 -0
  127. package/src/wallets/smart/smart-wallet.ts +3 -0
@@ -14,6 +14,13 @@ export type FetchDeployMetadataResult = Partial<ExtendedMetadata> & CompilerMeta
14
14
  * @internal
15
15
  */
16
16
  export declare function fetchDeployMetadata(options: FetchDeployMetadataOptions): Promise<FetchDeployMetadataResult>;
17
+ export type RawCompilerMetadata = {
18
+ name: string;
19
+ metadataUri: string;
20
+ bytecodeUri: string;
21
+ analytics?: any;
22
+ [key: string]: any;
23
+ };
17
24
  type ParsedCompilerMetadata = {
18
25
  name: string;
19
26
  abi: Abi;
@@ -53,7 +60,7 @@ type ParsedCompilerMetadata = {
53
60
  licenses: string[];
54
61
  isPartialAbi?: boolean;
55
62
  };
56
- export type CompilerMetadata = Prettify<ParsedCompilerMetadata & {
63
+ export type CompilerMetadata = Prettify<RawCompilerMetadata & ParsedCompilerMetadata & {
57
64
  bytecode: Hex;
58
65
  }>;
59
66
  export type ExtendedMetadata = {
@@ -110,6 +117,16 @@ export type ExtendedMetadata = {
110
117
  hidden?: boolean;
111
118
  }>;
112
119
  compositeAbi?: Abi;
120
+ compilers?: Record<"solc" | "zksolc", {
121
+ evmVersion: string;
122
+ compilerVersion: string;
123
+ metadataUri: string;
124
+ bytecodeUri: string;
125
+ }[]>;
126
+ externalLinks?: Array<{
127
+ name: string;
128
+ url: string;
129
+ }>;
113
130
  [key: string]: unknown;
114
131
  };
115
132
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-metadata.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/deploy-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-metadata.d.ts","sourceRoot":"","sources":["../../../../src/utils/any-evm/deploy-metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare function hasDuplicates<T>(arr: T[], fn: (a: T | undefined, b: T | undefined) => boolean): boolean;
5
+ //# sourceMappingURL=arrays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../../src/utils/arrays.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,EAAE,EACR,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,KAAK,OAAO,GAClD,OAAO,CAgBT"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert-erc20-amount.d.ts","sourceRoot":"","sources":["../../../../src/utils/extensions/convert-erc20-amount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,mBAAmB,GAC3B;IACE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,GACD;IACE,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,QAAQ,CACf;IACE,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,mBAAmB,CACxB,GACA,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
1
+ {"version":3,"file":"convert-erc20-amount.d.ts","sourceRoot":"","sources":["../../../../src/utils/extensions/convert-erc20-amount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,mBAAmB,GAC3B;IACE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,GACD;IACE,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,QAAQ,CACf;IACE,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,mBAAmB,CACxB,GACA,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export type Semver = {
5
+ major: number;
6
+ minor: number;
7
+ patch: number;
8
+ versionString: string;
9
+ };
10
+ /**
11
+ * @internal
12
+ * @param version - The version to convert to a Semver
13
+ */
14
+ export declare function toSemver(version: string): Semver;
15
+ /**
16
+ * @internal
17
+ * @param current - The current version
18
+ * @param next - The next version
19
+ */
20
+ export declare function isIncrementalVersion(current: string, next: string): boolean;
21
+ /**
22
+ * @internal
23
+ */
24
+ export declare function isDowngradeVersion(current: string, next: string): boolean;
25
+ //# sourceMappingURL=semver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../../src/utils/semver.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAYjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAY/D"}
@@ -1,2 +1,2 @@
1
- export declare const version = "5.55.1-nightly-b2a2c9784a33394dffbcd32bbd28b2c612a4e603-20240915000420";
1
+ export declare const version = "5.56.0-nightly-a5e605c65e360a9d3d2e553d6783e58582b50a70-20240917000331";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-app-account.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/in-app-account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-app-account.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/in-app-account.ts"],"names":[],"mappings":"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"}
@@ -119,6 +119,11 @@ export type Wallet<TWalletId extends WalletId = WalletId> = {
119
119
  * Can be used to execute any pre-connection actions like showing a modal, etc.
120
120
  */
121
121
  onConnectRequested?: () => Promise<void>;
122
+ /**
123
+ * Get the admin account of this wallet
124
+ * This is useful for smart wallets to get the underlying personal account
125
+ */
126
+ getAdminAccount?: () => Account | undefined;
122
127
  };
123
128
  /**
124
129
  * Account interface
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/wallets/interfaces/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/wallets/interfaces/wallet.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"smart-wallet.d.ts","sourceRoot":"","sources":["../../../../src/wallets/smart/smart-wallet.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,wBAAgB,WAAW,CACzB,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC1C,MAAM,CAAC,OAAO,CAAC,CAiGjB"}
1
+ {"version":3,"file":"smart-wallet.d.ts","sourceRoot":"","sources":["../../../../src/wallets/smart/smart-wallet.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,wBAAgB,WAAW,CACzB,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC1C,MAAM,CAAC,OAAO,CAAC,CAoGjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thirdweb",
3
- "version": "5.55.1-nightly-b2a2c9784a33394dffbcd32bbd28b2c612a4e603-20240915000420",
3
+ "version": "5.56.0-nightly-a5e605c65e360a9d3d2e553d6783e58582b50a70-20240917000331",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/thirdweb-dev/js.git#main"
@@ -210,7 +210,7 @@
210
210
  "@radix-ui/react-focus-scope": "1.1.0",
211
211
  "@radix-ui/react-icons": "1.3.0",
212
212
  "@radix-ui/react-tooltip": "1.1.2",
213
- "@tanstack/react-query": "5.55.4",
213
+ "@tanstack/react-query": "5.56.2",
214
214
  "@walletconnect/ethereum-provider": "2.16.1",
215
215
  "@walletconnect/sign-client": "2.16.1",
216
216
  "abitype": "1.0.5",
@@ -220,13 +220,13 @@
220
220
  "mipd": "0.0.7",
221
221
  "node-libs-browser": "2.2.1",
222
222
  "uqr": "0.1.2",
223
- "viem": "2.21.4"
223
+ "viem": "2.21.7"
224
224
  },
225
225
  "peerDependencies": {
226
226
  "@aws-sdk/client-lambda": "^3",
227
227
  "@aws-sdk/credential-providers": "^3",
228
228
  "@coinbase/wallet-mobile-sdk": "^1",
229
- "@mobile-wallet-protocol/client": "^0.0.2",
229
+ "@mobile-wallet-protocol/client": "0.0.3",
230
230
  "@react-native-async-storage/async-storage": "^1 || ^2",
231
231
  "amazon-cognito-identity-js": "^6",
232
232
  "aws-amplify": "^5",
@@ -297,28 +297,28 @@
297
297
  "node": ">=18"
298
298
  },
299
299
  "devDependencies": {
300
- "@aws-sdk/client-lambda": "3.592.0",
301
- "@aws-sdk/credential-providers": "3.592.0",
302
- "@chromatic-com/storybook": "^1.5.0",
300
+ "@aws-sdk/client-lambda": "3.651.1",
301
+ "@aws-sdk/credential-providers": "3.651.1",
302
+ "@chromatic-com/storybook": "2.0.2",
303
303
  "@codspeed/vitest-plugin": "3.1.1",
304
- "@coinbase/wallet-mobile-sdk": "1.0.13",
304
+ "@coinbase/wallet-mobile-sdk": "1.1.2",
305
305
  "@mobile-wallet-protocol/client": "0.0.2",
306
306
  "@react-native-async-storage/async-storage": "1.24.0",
307
- "@storybook/addon-essentials": "^8.2.9",
308
- "@storybook/addon-interactions": "^8.2.9",
309
- "@storybook/addon-links": "^8.2.9",
310
- "@storybook/addon-onboarding": "^8.2.9",
311
- "@storybook/blocks": "^8.2.9",
312
- "@storybook/react": "^8.2.9",
313
- "@storybook/react-vite": "^8.2.9",
314
- "@storybook/test": "^8.2.9",
307
+ "@storybook/addon-essentials": "8.3.0",
308
+ "@storybook/addon-interactions": "8.3.0",
309
+ "@storybook/addon-links": "8.3.0",
310
+ "@storybook/addon-onboarding": "8.3.0",
311
+ "@storybook/blocks": "8.3.0",
312
+ "@storybook/react": "8.3.0",
313
+ "@storybook/react-vite": "8.3.0",
314
+ "@storybook/test": "8.3.0",
315
315
  "@testing-library/jest-dom": "^6.4.7",
316
316
  "@testing-library/react": "^16.0.0",
317
317
  "@testing-library/user-event": "^14.5.2",
318
318
  "@types/cross-spawn": "^6.0.6",
319
319
  "@types/react": "^18.3.5",
320
320
  "@vitejs/plugin-react": "^4.3.1",
321
- "@vitest/ui": "2.0.5",
321
+ "@vitest/ui": "2.1.1",
322
322
  "amazon-cognito-identity-js": "6.3.12",
323
323
  "aws-amplify": "5.3.19",
324
324
  "cross-spawn": "7.0.3",
@@ -327,15 +327,15 @@
327
327
  "expo-linking": "6.3.1",
328
328
  "expo-web-browser": "13.0.3",
329
329
  "happy-dom": "^14.12.0",
330
- "msw": "2.4.4",
331
- "react-native": "0.75.2",
330
+ "msw": "2.4.7",
331
+ "react-native": "0.75.3",
332
332
  "react-native-aes-gcm-crypto": "0.2.2",
333
333
  "react-native-passkey": "3.0.0-beta2",
334
- "react-native-quick-crypto": "0.7.0-rc.6",
335
- "react-native-svg": "15.3.0",
336
- "storybook": "^8.2.9",
334
+ "react-native-quick-crypto": "0.7.4",
335
+ "react-native-svg": "15.6.0",
336
+ "storybook": "8.3.0",
337
337
  "typescript": "5.6.2",
338
- "vite": "5.4.3"
338
+ "vite": "5.4.5"
339
339
  },
340
340
  "scripts": {
341
341
  "bench:compare": "bun run ./benchmarks/run.ts",
@@ -12,7 +12,8 @@ import { withCache } from "../../utils/promise/withCache.js";
12
12
 
13
13
  import { type ThirdwebContract, getContract } from "../contract.js";
14
14
 
15
- const CONTRACT_PUBLISHER_ADDRESS = "0xf5b896Ddb5146D5dA77efF4efBb3Eae36E300808"; // Polygon only
15
+ export const CONTRACT_PUBLISHER_ADDRESS =
16
+ "0xf5b896Ddb5146D5dA77efF4efBb3Eae36E300808"; // Polygon only
16
17
  export const THIRDWEB_DEPLOYER = "0xdd99b75f095d0c4d5112aCe938e4e6ed962fb024";
17
18
 
18
19
  /**
@@ -35,10 +35,6 @@ export {
35
35
  } from "../../extensions/thirdweb/__generated__/IContractPublisher/read/getPublishedContractVersions.js";
36
36
 
37
37
  // Write
38
- export {
39
- publishContract,
40
- type PublishContractParams,
41
- } from "../../extensions/thirdweb/__generated__/IContractPublisher/write/publishContract.js";
42
38
  export {
43
39
  setPublisherProfileUri,
44
40
  type SetPublisherProfileUriParams,
@@ -48,6 +44,12 @@ export {
48
44
  type UnpublishContractParams,
49
45
  } from "../../extensions/thirdweb/__generated__/IContractPublisher/write/unpublishContract.js";
50
46
 
47
+ export {
48
+ publishContract,
49
+ type PublishContractParams,
50
+ getContractPublisher,
51
+ } from "../../extensions/thirdweb/write/publish.js";
52
+
51
53
  // --------------------------------------------------------
52
54
  // Multichain Registry
53
55
  // --------------------------------------------------------
@@ -121,6 +121,7 @@ export {
121
121
  rolesOf,
122
122
  type RolesOfParams,
123
123
  } from "../extensions/modules/__generated__/OwnableRoles/read/rolesOf.js";
124
+ export { checkModulesCompatibility } from "../extensions/modules/common/checkModulesCompatibility.js";
124
125
 
125
126
  /**
126
127
  * Write
@@ -158,7 +159,10 @@ export {
158
159
  isUninstallModuleSupported,
159
160
  type UninstallModuleParams,
160
161
  } from "../extensions/modules/__generated__/IModularCore/write/uninstallModule.js";
161
- export { getModuleConfig } from "../extensions/modules/__generated__/IModule/read/getModuleConfig.js";
162
+ export {
163
+ getModuleConfig,
164
+ isGetModuleConfigSupported,
165
+ } from "../extensions/modules/__generated__/IModule/read/getModuleConfig.js";
162
166
  export {
163
167
  installPublishedModule,
164
168
  type InstallPublishedModuleOptions,
@@ -9,6 +9,7 @@ export type {
9
9
 
10
10
  // wallet hooks
11
11
  export { useActiveWallet } from "../react/core/hooks/wallets/useActiveWallet.js";
12
+ export { useAdminWallet } from "../react/core/hooks/wallets/useAdminAccount.js";
12
13
  export { useActiveWalletChain } from "../react/core/hooks/wallets/useActiveWalletChain.js";
13
14
  export { useActiveWalletConnectionStatus } from "../react/core/hooks/wallets/useActiveWalletConnectionStatus.js";
14
15
  export { useActiveAccount } from "../react/core/hooks/wallets/useActiveAccount.js";
@@ -40,6 +40,7 @@ export type { MediaRendererProps } from "../react/web/ui/MediaRenderer/types.js"
40
40
 
41
41
  // wallet hooks
42
42
  export { useActiveWallet } from "../react/core/hooks/wallets/useActiveWallet.js";
43
+ export { useAdminWallet } from "../react/core/hooks/wallets/useAdminAccount.js";
43
44
  export { useActiveWalletChain } from "../react/core/hooks/wallets/useActiveWalletChain.js";
44
45
  export { useActiveWalletConnectionStatus } from "../react/core/hooks/wallets/useActiveWalletConnectionStatus.js";
45
46
  export { useActiveAccount } from "../react/core/hooks/wallets/useActiveAccount.js";
@@ -29,7 +29,7 @@ const realNFTs = [
29
29
  },
30
30
  ];
31
31
 
32
- describe("createAndReveal", () => {
32
+ describe.runIf(process.env.TW_SECRET_KEY)("createAndReveal", () => {
33
33
  let contract: ThirdwebContract;
34
34
  beforeAll(async () => {
35
35
  const address = await deployERC721Contract({
@@ -21,7 +21,7 @@ import { getInstalledModules } from "../__generated__/IModularCore/read/getInsta
21
21
  import { grantMinterRole } from "../common/grantMinterRole.js";
22
22
  import * as MintableERC1155 from "./index.js";
23
23
 
24
- describe("ModularTokenERC1155", () => {
24
+ describe.runIf(process.env.TW_SECRET_KEY)("ModularTokenERC1155", () => {
25
25
  let contract: ThirdwebContract;
26
26
  beforeAll(async () => {
27
27
  const address = await deployModularContract({
@@ -16,7 +16,7 @@ import { getInstalledModules } from "../__generated__/IModularCore/read/getInsta
16
16
  import { grantMinterRole } from "../common/grantMinterRole.js";
17
17
  import * as MintableERC20 from "./index.js";
18
18
 
19
- describe("ModularTokenERC20", () => {
19
+ describe.runIf(process.env.TW_SECRET_KEY)("ModularTokenERC20", () => {
20
20
  let contract: ThirdwebContract;
21
21
  beforeAll(async () => {
22
22
  const address = await deployModularContract({
@@ -20,7 +20,7 @@ import { getInstalledModules } from "../__generated__/IModularCore/read/getInsta
20
20
  import { grantMinterRole } from "../common/grantMinterRole.js";
21
21
  import * as MintableERC721 from "./index.js";
22
22
 
23
- describe("ModularTokenERC721", () => {
23
+ describe.runIf(process.env.TW_SECRET_KEY)("ModularTokenERC721", () => {
24
24
  let contract: ThirdwebContract;
25
25
  beforeAll(async () => {
26
26
  const address = await deployModularContract({
@@ -0,0 +1,46 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { CLAIMABLE_ERC20_MODULE_BYTECODE } from "../../../../test/src/bytecode/claimable-erc20.js";
3
+ import { CLAIMABLE_ERC721_BYTECODE } from "../../../../test/src/bytecode/claimable-erc721.js";
4
+ import { ERC20_CORE_BYTECODE } from "../../../../test/src/bytecode/erc20core.js";
5
+ import { MINTABLE_ERC20_BYTECODE } from "../../../../test/src/bytecode/mintable-erc20.js";
6
+ import { ANVIL_CHAIN } from "../../../../test/src/chains.js";
7
+ import { TEST_CLIENT } from "../../../../test/src/test-clients.js";
8
+ import { checkModulesCompatibility } from "./checkModulesCompatibility.js";
9
+
10
+ describe("compatibleModules", () => {
11
+ it("should return true for compatible modules", async () => {
12
+ const result = await checkModulesCompatibility({
13
+ coreBytecode: ERC20_CORE_BYTECODE,
14
+ moduleBytecodes: [CLAIMABLE_ERC20_MODULE_BYTECODE],
15
+ chain: ANVIL_CHAIN,
16
+ client: TEST_CLIENT,
17
+ });
18
+
19
+ expect(result).toBe(true);
20
+ });
21
+
22
+ it("should return false for incompatible modules", async () => {
23
+ const result = await checkModulesCompatibility({
24
+ coreBytecode: ERC20_CORE_BYTECODE,
25
+ moduleBytecodes: [CLAIMABLE_ERC721_BYTECODE],
26
+ chain: ANVIL_CHAIN,
27
+ client: TEST_CLIENT,
28
+ });
29
+
30
+ expect(result).toBe(false);
31
+ });
32
+
33
+ it("should return false for overlapping modules", async () => {
34
+ const result = await checkModulesCompatibility({
35
+ coreBytecode: ERC20_CORE_BYTECODE,
36
+ moduleBytecodes: [
37
+ CLAIMABLE_ERC20_MODULE_BYTECODE,
38
+ MINTABLE_ERC20_BYTECODE,
39
+ ],
40
+ chain: ANVIL_CHAIN,
41
+ client: TEST_CLIENT,
42
+ });
43
+
44
+ expect(result).toBe(false);
45
+ });
46
+ });
@@ -0,0 +1,123 @@
1
+ import {} from "abitype";
2
+ import type { Chain } from "../../../chains/types.js";
3
+ import type { ThirdwebClient } from "../../../client/client.js";
4
+ import { eth_call } from "../../../rpc/actions/eth_call.js";
5
+ import { getRpcClient } from "../../../rpc/rpc.js";
6
+ import { hasDuplicates } from "../../../utils/arrays.js";
7
+ import { ensureBytecodePrefix } from "../../../utils/bytecode/prefix.js";
8
+ import type { Hex } from "../../../utils/encoding/hex.js";
9
+ import {
10
+ decodeSupportsInterfaceResult,
11
+ encodeSupportsInterface,
12
+ } from "../../erc165/__generated__/IERC165/read/supportsInterface.js";
13
+ import {
14
+ decodeGetSupportedCallbackFunctionsResult,
15
+ FN_SELECTOR as getSupportedCallbackFunctionsSelector,
16
+ } from "../__generated__/IModularCore/read/getSupportedCallbackFunctions.js";
17
+ import {
18
+ decodeGetModuleConfigResult,
19
+ FN_SELECTOR as getModuleConfigSelector,
20
+ } from "../__generated__/IModule/read/getModuleConfig.js";
21
+
22
+ export async function checkModulesCompatibility(options: {
23
+ coreBytecode: string;
24
+ moduleBytecodes: string[];
25
+ chain: Chain;
26
+ client: ThirdwebClient;
27
+ }): Promise<boolean> {
28
+ const addr = "0x0000000000000000000000000000000000000124"; // arbitrary address
29
+ let _coreBytecode = ensureBytecodePrefix(options.coreBytecode);
30
+ if (!_coreBytecode.startsWith("0x6080604052")) {
31
+ const index = _coreBytecode.indexOf("6080604052");
32
+ _coreBytecode = `0x${_coreBytecode.substring(index)}`;
33
+ } else if (_coreBytecode.lastIndexOf("6080604052") > 0) {
34
+ const index = _coreBytecode.lastIndexOf("6080604052");
35
+ _coreBytecode = `0x${_coreBytecode.substring(index)}`;
36
+ }
37
+ const rpcClient = getRpcClient({
38
+ client: options.client,
39
+ chain: options.chain,
40
+ });
41
+
42
+ // get the core's supported callback functions
43
+ const coreCallResult = await eth_call(rpcClient, {
44
+ data: getSupportedCallbackFunctionsSelector,
45
+ to: addr,
46
+ stateOverrides: {
47
+ [addr]: {
48
+ code: _coreBytecode,
49
+ },
50
+ },
51
+ });
52
+
53
+ const decodedCallResult =
54
+ decodeGetSupportedCallbackFunctionsResult(coreCallResult);
55
+ const coreCallbackSelectors = decodedCallResult.flat().map((c) => c.selector);
56
+
57
+ // get the module config for each module
58
+ const modules = await Promise.all(
59
+ options.moduleBytecodes.map(async (b: string) => {
60
+ // TODO: Upload deployed bytecode on publish metadata
61
+ let moduleBytecode = ensureBytecodePrefix(b);
62
+ if (!moduleBytecode.startsWith("0x6080604052")) {
63
+ const index = moduleBytecode.indexOf("6080604052");
64
+ moduleBytecode = `0x${moduleBytecode.substring(index)}`;
65
+ } else if (moduleBytecode.lastIndexOf("6080604052") > 0) {
66
+ const index = moduleBytecode.lastIndexOf("6080604052");
67
+ moduleBytecode = `0x${moduleBytecode.substring(index)}`;
68
+ }
69
+
70
+ const callResult = await eth_call(rpcClient, {
71
+ data: getModuleConfigSelector,
72
+ to: addr,
73
+ stateOverrides: {
74
+ [addr]: {
75
+ code: moduleBytecode,
76
+ },
77
+ },
78
+ });
79
+ return decodeGetModuleConfigResult(callResult);
80
+ }),
81
+ );
82
+
83
+ // check if callback selectors are supported
84
+ for (const module of modules) {
85
+ for (const callback of module.callbackFunctions) {
86
+ if (!coreCallbackSelectors.includes(callback.selector)) {
87
+ return false;
88
+ }
89
+ }
90
+ }
91
+
92
+ // check if the core contract supports required interfaces by modules above
93
+ const requiredInterfaces = modules.flatMap((m) => m.requiredInterfaces);
94
+ if (requiredInterfaces.length > 0) {
95
+ const supportsInterfaceResult = await Promise.all(
96
+ requiredInterfaces.map(async (r) => {
97
+ const callResult = await eth_call(rpcClient, {
98
+ data: encodeSupportsInterface({
99
+ interfaceId: r,
100
+ }),
101
+ to: addr,
102
+ stateOverrides: {
103
+ [addr]: {
104
+ code: _coreBytecode,
105
+ },
106
+ },
107
+ });
108
+ return decodeSupportsInterfaceResult(callResult);
109
+ }),
110
+ );
111
+
112
+ if (supportsInterfaceResult.flat().some((element) => element === false)) {
113
+ return false;
114
+ }
115
+ }
116
+ return !hasDuplicates(
117
+ [
118
+ ...modules.flatMap((m) => m.callbackFunctions.map((c) => c.selector)),
119
+ ...modules.flatMap((m) => m.fallbackFunctions.map((f) => f.selector)),
120
+ ],
121
+ (a: Hex | undefined, b: Hex | undefined): boolean => a === b,
122
+ );
123
+ }