thirdweb 5.61.5 → 5.61.6

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 (199) hide show
  1. package/dist/cjs/contract/deployment/deploy-with-abi.js +13 -0
  2. package/dist/cjs/contract/deployment/deploy-with-abi.js.map +1 -1
  3. package/dist/cjs/exports/extensions/unstoppable-domains.js +6 -1
  4. package/dist/cjs/exports/extensions/unstoppable-domains.js.map +1 -1
  5. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/events/BatchMetadataUpdate.js +1 -1
  6. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/events/BatchMetadataUpdate.js.map +1 -1
  7. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/read/getBatchIndex.js +114 -0
  8. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/read/getBatchIndex.js.map +1 -0
  9. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/read/getMetadataBatch.js +128 -0
  10. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/read/getMetadataBatch.js.map +1 -0
  11. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/read/getModuleConfig.js +109 -0
  12. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/read/getModuleConfig.js.map +1 -0
  13. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/write/setBaseURI.js +124 -0
  14. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC1155/write/setBaseURI.js.map +1 -0
  15. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/events/BatchMetadataUpdate.js +1 -1
  16. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/events/BatchMetadataUpdate.js.map +1 -1
  17. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/read/getBatchIndex.js +114 -0
  18. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/read/getBatchIndex.js.map +1 -0
  19. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/read/getMetadataBatch.js +128 -0
  20. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/read/getMetadataBatch.js.map +1 -0
  21. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/read/getModuleConfig.js +109 -0
  22. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/read/getModuleConfig.js.map +1 -0
  23. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/write/setBaseURI.js +124 -0
  24. package/dist/cjs/extensions/modules/__generated__/BatchMetadataERC721/write/setBaseURI.js.map +1 -0
  25. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/encode/encodeBytesOnInstall.js +29 -0
  26. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/encode/encodeBytesOnInstall.js.map +1 -0
  27. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.js +11 -6
  28. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.js.map +1 -1
  29. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/read/getModuleConfig.js +109 -0
  30. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/read/getModuleConfig.js.map +1 -0
  31. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/write/updateTokenIdERC1155.js +121 -0
  32. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/write/updateTokenIdERC1155.js.map +1 -0
  33. package/dist/cjs/extensions/prebuilts/deploy-published.js +0 -17
  34. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  35. package/dist/cjs/extensions/unstoppable-domains/__generated__/UnstoppableDomains/read/exists.js +114 -0
  36. package/dist/cjs/extensions/unstoppable-domains/__generated__/UnstoppableDomains/read/exists.js.map +1 -0
  37. package/dist/cjs/extensions/unstoppable-domains/read/resolveAddress.js +6 -0
  38. package/dist/cjs/extensions/unstoppable-domains/read/resolveAddress.js.map +1 -1
  39. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +1 -1
  40. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
  41. package/dist/cjs/react/web/ui/ConnectWallet/useConnectModal.js.map +1 -1
  42. package/dist/cjs/transaction/read-contract.js +11 -19
  43. package/dist/cjs/transaction/read-contract.js.map +1 -1
  44. package/dist/cjs/version.js +1 -1
  45. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js +0 -2
  46. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
  47. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js +3 -0
  48. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
  49. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +3 -1
  50. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
  51. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +3 -0
  52. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
  53. package/dist/cjs/wallets/wallet-connect/receiver/index.js +1 -1
  54. package/dist/cjs/wallets/wallet-connect/receiver/session-request.js +13 -14
  55. package/dist/cjs/wallets/wallet-connect/receiver/session-request.js.map +1 -1
  56. package/dist/esm/contract/deployment/deploy-with-abi.js +13 -0
  57. package/dist/esm/contract/deployment/deploy-with-abi.js.map +1 -1
  58. package/dist/esm/exports/extensions/unstoppable-domains.js +4 -0
  59. package/dist/esm/exports/extensions/unstoppable-domains.js.map +1 -1
  60. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/events/BatchMetadataUpdate.js +1 -1
  61. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/events/BatchMetadataUpdate.js.map +1 -1
  62. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/read/getBatchIndex.js +106 -0
  63. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/read/getBatchIndex.js.map +1 -0
  64. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/read/getMetadataBatch.js +120 -0
  65. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/read/getMetadataBatch.js.map +1 -0
  66. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/read/getModuleConfig.js +103 -0
  67. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/read/getModuleConfig.js.map +1 -0
  68. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/write/setBaseURI.js +117 -0
  69. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC1155/write/setBaseURI.js.map +1 -0
  70. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/events/BatchMetadataUpdate.js +1 -1
  71. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/events/BatchMetadataUpdate.js.map +1 -1
  72. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/read/getBatchIndex.js +106 -0
  73. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/read/getBatchIndex.js.map +1 -0
  74. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/read/getMetadataBatch.js +120 -0
  75. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/read/getMetadataBatch.js.map +1 -0
  76. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/read/getModuleConfig.js +103 -0
  77. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/read/getModuleConfig.js.map +1 -0
  78. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/write/setBaseURI.js +117 -0
  79. package/dist/esm/extensions/modules/__generated__/BatchMetadataERC721/write/setBaseURI.js.map +1 -0
  80. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/encode/encodeBytesOnInstall.js +25 -0
  81. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/encode/encodeBytesOnInstall.js.map +1 -0
  82. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.js +11 -6
  83. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.js.map +1 -1
  84. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/read/getModuleConfig.js +103 -0
  85. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/read/getModuleConfig.js.map +1 -0
  86. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/write/updateTokenIdERC1155.js +114 -0
  87. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/write/updateTokenIdERC1155.js.map +1 -0
  88. package/dist/esm/extensions/prebuilts/deploy-published.js +0 -18
  89. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  90. package/dist/esm/extensions/unstoppable-domains/__generated__/UnstoppableDomains/read/exists.js +106 -0
  91. package/dist/esm/extensions/unstoppable-domains/__generated__/UnstoppableDomains/read/exists.js.map +1 -0
  92. package/dist/esm/extensions/unstoppable-domains/read/resolveAddress.js +6 -0
  93. package/dist/esm/extensions/unstoppable-domains/read/resolveAddress.js.map +1 -1
  94. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +1 -1
  95. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
  96. package/dist/esm/react/web/ui/ConnectWallet/useConnectModal.js.map +1 -1
  97. package/dist/esm/transaction/read-contract.js +11 -19
  98. package/dist/esm/transaction/read-contract.js.map +1 -1
  99. package/dist/esm/version.js +1 -1
  100. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js +0 -2
  101. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
  102. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js +3 -0
  103. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
  104. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +3 -1
  105. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
  106. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +3 -0
  107. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
  108. package/dist/esm/wallets/wallet-connect/receiver/index.js +1 -1
  109. package/dist/esm/wallets/wallet-connect/receiver/session-request.js +6 -7
  110. package/dist/esm/wallets/wallet-connect/receiver/session-request.js.map +1 -1
  111. package/dist/types/contract/deployment/deploy-with-abi.d.ts.map +1 -1
  112. package/dist/types/exports/extensions/unstoppable-domains.d.ts +2 -0
  113. package/dist/types/exports/extensions/unstoppable-domains.d.ts.map +1 -1
  114. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/events/BatchMetadataUpdate.d.ts +5 -2
  115. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/events/BatchMetadataUpdate.d.ts.map +1 -1
  116. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/read/getBatchIndex.d.ts +83 -0
  117. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/read/getBatchIndex.d.ts.map +1 -0
  118. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/read/getMetadataBatch.d.ts +91 -0
  119. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/read/getMetadataBatch.d.ts.map +1 -0
  120. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/read/getModuleConfig.d.ts +66 -0
  121. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/read/getModuleConfig.d.ts.map +1 -0
  122. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/write/setBaseURI.d.ts +86 -0
  123. package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/write/setBaseURI.d.ts.map +1 -0
  124. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/events/BatchMetadataUpdate.d.ts +5 -2
  125. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/events/BatchMetadataUpdate.d.ts.map +1 -1
  126. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/read/getBatchIndex.d.ts +83 -0
  127. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/read/getBatchIndex.d.ts.map +1 -0
  128. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/read/getMetadataBatch.d.ts +91 -0
  129. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/read/getMetadataBatch.d.ts.map +1 -0
  130. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/read/getModuleConfig.d.ts +66 -0
  131. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/read/getModuleConfig.d.ts.map +1 -0
  132. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/write/setBaseURI.d.ts +86 -0
  133. package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/write/setBaseURI.d.ts.map +1 -0
  134. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/encode/encodeBytesOnInstall.d.ts +26 -0
  135. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/encode/encodeBytesOnInstall.d.ts.map +1 -0
  136. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.d.ts +11 -6
  137. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.d.ts.map +1 -1
  138. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/read/getModuleConfig.d.ts +66 -0
  139. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/read/getModuleConfig.d.ts.map +1 -0
  140. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/write/updateTokenIdERC1155.d.ts +79 -0
  141. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/write/updateTokenIdERC1155.d.ts.map +1 -0
  142. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  143. package/dist/types/extensions/unstoppable-domains/__generated__/UnstoppableDomains/read/exists.d.ts +83 -0
  144. package/dist/types/extensions/unstoppable-domains/__generated__/UnstoppableDomains/read/exists.d.ts.map +1 -0
  145. package/dist/types/extensions/unstoppable-domains/read/resolveAddress.d.ts.map +1 -1
  146. package/dist/types/react/web/ui/ConnectWallet/useConnectModal.d.ts +8 -0
  147. package/dist/types/react/web/ui/ConnectWallet/useConnectModal.d.ts.map +1 -1
  148. package/dist/types/transaction/read-contract.d.ts +11 -19
  149. package/dist/types/transaction/read-contract.d.ts.map +1 -1
  150. package/dist/types/version.d.ts +1 -1
  151. package/dist/types/wallets/in-app/core/authentication/types.d.ts +6 -0
  152. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
  153. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +1 -1
  154. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +1 -1
  155. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +1 -1
  156. package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +1 -1
  157. package/dist/types/wallets/wallet-connect/receiver/index.d.ts +1 -1
  158. package/dist/types/wallets/wallet-connect/receiver/session-request.d.ts.map +1 -1
  159. package/package.json +1 -1
  160. package/src/contract/deployment/deploy-with-abi.ts +14 -0
  161. package/src/exports/extensions/unstoppable-domains.ts +9 -0
  162. package/src/extensions/ens/resolve-avatar.test.ts +1 -4
  163. package/src/extensions/modules/MintableERC1155/mintableERC1155.test.ts +3 -1
  164. package/src/extensions/modules/__generated__/BatchMetadataERC1155/events/BatchMetadataUpdate.ts +1 -1
  165. package/src/extensions/modules/__generated__/BatchMetadataERC1155/read/getBatchIndex.ts +125 -0
  166. package/src/extensions/modules/__generated__/BatchMetadataERC1155/read/getMetadataBatch.ts +142 -0
  167. package/src/extensions/modules/__generated__/BatchMetadataERC1155/read/getModuleConfig.ts +109 -0
  168. package/src/extensions/modules/__generated__/BatchMetadataERC1155/write/setBaseURI.ts +148 -0
  169. package/src/extensions/modules/__generated__/BatchMetadataERC721/events/BatchMetadataUpdate.ts +1 -1
  170. package/src/extensions/modules/__generated__/BatchMetadataERC721/read/getBatchIndex.ts +125 -0
  171. package/src/extensions/modules/__generated__/BatchMetadataERC721/read/getMetadataBatch.ts +142 -0
  172. package/src/extensions/modules/__generated__/BatchMetadataERC721/read/getModuleConfig.ts +109 -0
  173. package/src/extensions/modules/__generated__/BatchMetadataERC721/write/setBaseURI.ts +148 -0
  174. package/src/extensions/modules/__generated__/SequentialTokenIdERC1155/encode/encodeBytesOnInstall.ts +40 -0
  175. package/src/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.ts +18 -9
  176. package/src/extensions/modules/__generated__/SequentialTokenIdERC1155/read/getModuleConfig.ts +109 -0
  177. package/src/extensions/modules/__generated__/SequentialTokenIdERC1155/write/updateTokenIdERC1155.ts +145 -0
  178. package/src/extensions/prebuilts/deploy-published.ts +0 -19
  179. package/src/extensions/unstoppable-domains/__generated__/UnstoppableDomains/read/exists.ts +121 -0
  180. package/src/extensions/unstoppable-domains/read/resolveAddress.test.ts +11 -0
  181. package/src/extensions/unstoppable-domains/read/resolveAddress.ts +9 -0
  182. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.ts +1 -1
  183. package/src/react/web/ui/ConnectWallet/useConnectModal.tsx +11 -0
  184. package/src/transaction/read-contract.ts +11 -19
  185. package/src/version.ts +1 -1
  186. package/src/wallets/in-app/core/authentication/types.ts +13 -2
  187. package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +0 -2
  188. package/src/wallets/in-app/web/lib/actions/sign-message.enclave.ts +4 -0
  189. package/src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts +4 -1
  190. package/src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts +4 -0
  191. package/src/wallets/wallet-connect/receiver/index.ts +1 -1
  192. package/src/wallets/wallet-connect/receiver/session-request.ts +6 -23
  193. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.js +0 -70
  194. package/dist/cjs/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.js.map +0 -1
  195. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.js +0 -64
  196. package/dist/esm/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.js.map +0 -1
  197. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.d.ts +0 -44
  198. package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.d.ts.map +0 -1
  199. package/src/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.ts +0 -70
@@ -4,6 +4,7 @@ import type { ThirdwebClient } from "../../../client/client.js";
4
4
  import { getContract } from "../../../contract/contract.js";
5
5
  import { getAddress, isAddress } from "../../../utils/address.js";
6
6
  import { withCache } from "../../../utils/promise/withCache.js";
7
+ import { exists } from "../__generated__/UnstoppableDomains/read/exists.js";
7
8
  import { getMany } from "../__generated__/UnstoppableDomains/read/getMany.js";
8
9
  import { namehash } from "../__generated__/UnstoppableDomains/read/namehash.js";
9
10
  import { UD_POLYGON_MAINNET } from "../consts.js";
@@ -71,6 +72,14 @@ export async function resolveAddress(
71
72
  labels: name.split("."),
72
73
  });
73
74
 
75
+ // `namehash` always return a value, we should use `exists` to make sure it's valid
76
+ const _exists = await exists({ contract, tokenId: possibleTokenId });
77
+ if (!_exists) {
78
+ throw new Error(
79
+ `Could not resolve a valid tokenId from the domain: ${name}. Make sure it exists.`,
80
+ );
81
+ }
82
+
74
83
  // Resolve ETH address from the tokenId
75
84
  const resolved = await getMany({
76
85
  contract,
@@ -42,7 +42,7 @@ async function fetchBuySupportedDestinations(
42
42
  async () => {
43
43
  const fetchWithHeaders = getClientFetch(client);
44
44
  const res = await fetchWithHeaders(
45
- `${getPaySupportedDestinations()}?isTestMode=${isTestMode}`,
45
+ `${getPaySupportedDestinations()}${isTestMode ? "?isTestMode=true" : ""}`,
46
46
  );
47
47
  const data = (await res.json()) as Response;
48
48
  return data.result.map((item) => ({
@@ -5,6 +5,7 @@ import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
5
5
  import type { SmartWalletOptions } from "../../../../wallets/smart/types.js";
6
6
  import type { AppMetadata } from "../../../../wallets/types.js";
7
7
  import type { Theme } from "../../../core/design-system/index.js";
8
+ import type { SiweAuthOptions } from "../../../core/hooks/auth/useSiweAuth.js";
8
9
  import { SetRootElementContext } from "../../../core/providers/RootElementContext.js";
9
10
  import { WalletUIStatesProvider } from "../../providers/wallet-ui-states-provider.js";
10
11
  import { canFitWideModal } from "../../utils/canFitWideModal.js";
@@ -432,4 +433,14 @@ export type UseConnectModalOptions = {
432
433
  * If you want to hide the branding, set this prop to `false`
433
434
  */
434
435
  showThirdwebBranding?: boolean;
436
+
437
+ /**
438
+ * Enable SIWE (Sign in with Ethererum) by passing an object of type `SiweAuthOptions` to
439
+ * enforce the users to sign a message after connecting their wallet to authenticate themselves.
440
+ *
441
+ * Refer to the [`SiweAuthOptions`](https://portal.thirdweb.com/references/typescript/v5/SiweAuthOptions) for more details
442
+ */
443
+ auth?: SiweAuthOptions;
435
444
  };
445
+
446
+ // TODO: consilidate Button/Embed/Modal props into one type with extras
@@ -72,31 +72,16 @@ export type ReadContractOptions<
72
72
  /**
73
73
  * ### Reads state from a deployed smart contract.
74
74
  *
75
- * You can use raw read calls or read [extensions](https://portal.thirdweb.com/typescript/v5/extensions/use) to read from a contract.
75
+ * Use this for raw read calls from a contract, but you can also use read [extensions](https://portal.thirdweb.com/typescript/v5/extensions/use) for predefined methods for common standards.
76
76
  *
77
77
  * @param options - The transaction options.
78
78
  * @returns A promise that resolves with the result of the read call.
79
79
  * @transaction
80
80
  * @example
81
81
  *
82
- * ### Using a contract read extension
82
+ * ### Raw contract call (recommended)
83
83
  *
84
- * ```ts
85
- * import { getContract } from "thirdweb";
86
- * import { sepolia } from "thirdweb/chains";
87
- * import { useReadContract } from "thirdweb/react";
88
- * import { getOwnedNFTs } form "thirdweb/extensions/erc721";
89
- *
90
- * const contract = getContract({
91
- * client,
92
- * address: "0x...",
93
- * chain: sepolia,
94
- * });
95
- *
96
- * const { data, isLoading } = useReadContract(getOwnedNFTs, { contract, owner: address });
97
- * ```
98
- *
99
- * ### Using a raw contract call
84
+ * You can read from any contract by using the solidity signature of the function you want to call.
100
85
  *
101
86
  * ```ts
102
87
  * import { getContract } from "thirdweb";
@@ -116,7 +101,14 @@ export type ReadContractOptions<
116
101
  * });
117
102
  * ```
118
103
  *
119
- * ### Using `resolveMethod`
104
+ * Note that this is type safe, the params types will be enforced based on the signature.
105
+ *
106
+ * ### Raw contract call with `resolveMethod`
107
+ *
108
+ * If you don't have the solidity signature of the function you want to call, you can use the `resolveMethod` helper to resolve the method from any deployed contract.
109
+ *
110
+ * Note that this is not type safe, and will also have a 1 time overhead of resolving the contract ABI.
111
+ *
120
112
  * ```ts
121
113
  * import { getContract, resolveMethod } from "thirdweb";
122
114
  * import { sepolia } from "thirdweb/chains";
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.61.5";
1
+ export const version = "5.61.6";
@@ -36,8 +36,19 @@ export type SingleStepAuthArgsType =
36
36
  | SocialAuthArgsType
37
37
  | { strategy: "jwt"; jwt: string; encryptionKey: string }
38
38
  | { strategy: "auth_endpoint"; payload: string; encryptionKey: string }
39
- | { strategy: "iframe_email_verification"; email: string }
40
- | { strategy: "iframe" }
39
+ | {
40
+ /**
41
+ * @deprecated
42
+ */
43
+ strategy: "iframe_email_verification";
44
+ email: string;
45
+ }
46
+ | {
47
+ /**
48
+ * @deprecated
49
+ */
50
+ strategy: "iframe";
51
+ }
41
52
  | {
42
53
  strategy: "passkey";
43
54
  /**
@@ -32,13 +32,11 @@ export async function getUserStatus({
32
32
  );
33
33
 
34
34
  if (!response.ok) {
35
- console.log("response", response.status);
36
35
  if (response.status === 401) {
37
36
  // 401 response indicates there is no user logged in, so we return undefined
38
37
  return undefined;
39
38
  }
40
39
  const result = await response.json();
41
- console.log("result", result);
42
40
  throw new Error(`Failed to get user status: ${result.error}`);
43
41
  }
44
42
 
@@ -22,6 +22,10 @@ export async function signMessage({
22
22
  const clientFetch = getClientFetch(client, ecosystem);
23
23
  const authToken = await storage.getAuthCookie();
24
24
 
25
+ if (!authToken) {
26
+ throw new Error("No auth token found when signing message");
27
+ }
28
+
25
29
  const response = await clientFetch(
26
30
  `${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-message`,
27
31
  {
@@ -17,10 +17,13 @@ export async function signTransaction({
17
17
  payload: Record<string, Hex | number | undefined>;
18
18
  storage: ClientScopedStorage;
19
19
  }) {
20
- console.log("payload", payload);
21
20
  const clientFetch = getClientFetch(client, ecosystem);
22
21
  const authToken = await storage.getAuthCookie();
23
22
 
23
+ if (!authToken) {
24
+ throw new Error("No auth token found when signing transaction");
25
+ }
26
+
24
27
  const response = await clientFetch(
25
28
  `${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-transaction`,
26
29
  {
@@ -24,6 +24,10 @@ export async function signTypedData<
24
24
  const clientFetch = getClientFetch(client, ecosystem);
25
25
  const authToken = await storage.getAuthCookie();
26
26
 
27
+ if (!authToken) {
28
+ throw new Error("No auth token found when signing typed data");
29
+ }
30
+
27
31
  const response = await clientFetch(
28
32
  `${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-typed-data`,
29
33
  {
@@ -284,7 +284,7 @@ export async function createWalletConnectClient(
284
284
  * client: client,
285
285
  * });
286
286
  *
287
- * const session = await createWalletConnectSession({
287
+ * const session = createWalletConnectSession({
288
288
  * walletConnectClient: client,
289
289
  * uri: "wc:...",
290
290
  * });
@@ -1,6 +1,12 @@
1
1
  import type { ThirdwebClient } from "../../../client/client.js";
2
2
  import type { Hex } from "../../../utils/encoding/hex.js";
3
3
  import type { Wallet } from "../../interfaces/wallet.js";
4
+ import { handleSendRawTransactionRequest } from "./request-handlers/send-raw-transaction.js";
5
+ import { handleSendTransactionRequest } from "./request-handlers/send-transaction.js";
6
+ import { handleSignTransactionRequest } from "./request-handlers/sign-transaction.js";
7
+ import { handleSignTypedDataRequest } from "./request-handlers/sign-typed-data.js";
8
+ // Due to some edge cases, we can't import these handlers dynamically
9
+ import { handleSignRequest } from "./request-handlers/sign.js";
4
10
  import type {
5
11
  WalletConnectAddEthereumChainRequestParams,
6
12
  WalletConnectClient,
@@ -54,9 +60,6 @@ export async function fulfillRequest(options: {
54
60
  params: request.params as WalletConnectSignRequestPrams,
55
61
  });
56
62
  } else {
57
- const { handleSignRequest } = await import(
58
- "./request-handlers/sign.js"
59
- );
60
63
  result = await handleSignRequest({
61
64
  account,
62
65
  params: request.params as WalletConnectSignRequestPrams,
@@ -71,9 +74,6 @@ export async function fulfillRequest(options: {
71
74
  params: request.params as WalletConnectSignRequestPrams,
72
75
  });
73
76
  } else {
74
- const { handleSignRequest } = await import(
75
- "./request-handlers/sign.js"
76
- );
77
77
  result = await handleSignRequest({
78
78
  account,
79
79
  params: request.params as WalletConnectSignRequestPrams,
@@ -88,9 +88,6 @@ export async function fulfillRequest(options: {
88
88
  params: request.params as WalletConnectSignTypedDataRequestParams,
89
89
  });
90
90
  } else {
91
- const { handleSignTypedDataRequest } = await import(
92
- "./request-handlers/sign-typed-data.js"
93
- );
94
91
  result = await handleSignTypedDataRequest({
95
92
  account,
96
93
  params: request.params as WalletConnectSignTypedDataRequestParams,
@@ -105,9 +102,6 @@ export async function fulfillRequest(options: {
105
102
  params: request.params as WalletConnectSignTypedDataRequestParams,
106
103
  });
107
104
  } else {
108
- const { handleSignTypedDataRequest } = await import(
109
- "./request-handlers/sign-typed-data.js"
110
- );
111
105
  result = await handleSignTypedDataRequest({
112
106
  account,
113
107
  params: request.params as WalletConnectSignTypedDataRequestParams,
@@ -122,9 +116,6 @@ export async function fulfillRequest(options: {
122
116
  params: request.params as WalletConnectTransactionRequestParams,
123
117
  });
124
118
  } else {
125
- const { handleSignTransactionRequest } = await import(
126
- "./request-handlers/sign-transaction.js"
127
- );
128
119
  result = await handleSignTransactionRequest({
129
120
  account,
130
121
  params: request.params as WalletConnectTransactionRequestParams,
@@ -141,10 +132,6 @@ export async function fulfillRequest(options: {
141
132
  params: request.params as WalletConnectTransactionRequestParams,
142
133
  });
143
134
  } else {
144
- const { handleSendTransactionRequest } = await import(
145
- "./request-handlers/send-transaction.js"
146
- );
147
-
148
135
  result = await handleSendTransactionRequest({
149
136
  account,
150
137
  chainId,
@@ -163,10 +150,6 @@ export async function fulfillRequest(options: {
163
150
  params: request.params as WalletConnectRawTransactionRequestParams,
164
151
  });
165
152
  } else {
166
- const { handleSendRawTransactionRequest } = await import(
167
- "./request-handlers/send-raw-transaction.js"
168
- );
169
-
170
153
  result = await handleSendRawTransactionRequest({
171
154
  account,
172
155
  chainId,
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FN_SELECTOR = void 0;
4
- exports.isEncodeBytesOnInstallSupported = isEncodeBytesOnInstallSupported;
5
- exports.decodeEncodeBytesOnInstallResult = decodeEncodeBytesOnInstallResult;
6
- exports.encodeBytesOnInstall = encodeBytesOnInstall;
7
- const read_contract_js_1 = require("../../../../../transaction/read-contract.js");
8
- const viem_1 = require("viem");
9
- const detectExtension_js_1 = require("../../../../../utils/bytecode/detectExtension.js");
10
- exports.FN_SELECTOR = "0xfec7ff72";
11
- const FN_INPUTS = [];
12
- const FN_OUTPUTS = [
13
- {
14
- type: "bytes",
15
- },
16
- ];
17
- /**
18
- * Checks if the `encodeBytesOnInstall` method is supported by the given contract.
19
- * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
20
- * @returns A boolean indicating if the `encodeBytesOnInstall` method is supported.
21
- * @modules SequentialTokenIdERC1155
22
- * @example
23
- * ```ts
24
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
25
- * const supported = SequentialTokenIdERC1155.isEncodeBytesOnInstallSupported(["0x..."]);
26
- * ```
27
- */
28
- function isEncodeBytesOnInstallSupported(availableSelectors) {
29
- return (0, detectExtension_js_1.detectMethod)({
30
- availableSelectors,
31
- method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
32
- });
33
- }
34
- /**
35
- * Decodes the result of the encodeBytesOnInstall function call.
36
- * @param result - The hexadecimal result to decode.
37
- * @returns The decoded result as per the FN_OUTPUTS definition.
38
- * @modules SequentialTokenIdERC1155
39
- * @example
40
- * ```ts
41
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
42
- * const result = SequentialTokenIdERC1155.decodeEncodeBytesOnInstallResultResult("...");
43
- * ```
44
- */
45
- function decodeEncodeBytesOnInstallResult(result) {
46
- return (0, viem_1.decodeAbiParameters)(FN_OUTPUTS, result)[0];
47
- }
48
- /**
49
- * Calls the "encodeBytesOnInstall" function on the contract.
50
- * @param options - The options for the encodeBytesOnInstall function.
51
- * @returns The parsed result of the function call.
52
- * @modules SequentialTokenIdERC1155
53
- * @example
54
- * ```ts
55
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
56
- *
57
- * const result = await SequentialTokenIdERC1155.encodeBytesOnInstall({
58
- * contract,
59
- * });
60
- *
61
- * ```
62
- */
63
- async function encodeBytesOnInstall(options) {
64
- return (0, read_contract_js_1.readContract)({
65
- contract: options.contract,
66
- method: [exports.FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
67
- params: [],
68
- });
69
- }
70
- //# sourceMappingURL=encodeBytesOnInstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encodeBytesOnInstall.js","sourceRoot":"","sources":["../../../../../../../src/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.ts"],"names":[],"mappings":";;;AA0BA,0EAKC;AAaD,4EAEC;AAiBD,oDAMC;AArED,kFAA2E;AAG3E,+BAA2C;AAE3C,yFAAgF;AAEnE,QAAA,WAAW,GAAG,YAAqB,CAAC;AACjD,MAAM,SAAS,GAAG,EAAW,CAAC;AAC9B,MAAM,UAAU,GAAG;IACjB;QACE,IAAI,EAAE,OAAO;KACd;CACO,CAAC;AAEX;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAAC,kBAA4B;IAC1E,OAAO,IAAA,iCAAY,EAAC;QAClB,kBAAkB;QAClB,MAAM,EAAE,CAAC,mBAAW,EAAE,SAAS,EAAE,UAAU,CAAU;KACtD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,gCAAgC,CAAC,MAAW;IAC1D,OAAO,IAAA,0BAAmB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,oBAAoB,CAAC,OAA+B;IACxE,OAAO,IAAA,+BAAY,EAAC;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,CAAC,mBAAW,EAAE,SAAS,EAAE,UAAU,CAAU;QACrD,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;AACL,CAAC"}
@@ -1,64 +0,0 @@
1
- import { readContract } from "../../../../../transaction/read-contract.js";
2
- import { decodeAbiParameters } from "viem";
3
- import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
4
- export const FN_SELECTOR = "0xfec7ff72";
5
- const FN_INPUTS = [];
6
- const FN_OUTPUTS = [
7
- {
8
- type: "bytes",
9
- },
10
- ];
11
- /**
12
- * Checks if the `encodeBytesOnInstall` method is supported by the given contract.
13
- * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
14
- * @returns A boolean indicating if the `encodeBytesOnInstall` method is supported.
15
- * @modules SequentialTokenIdERC1155
16
- * @example
17
- * ```ts
18
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
19
- * const supported = SequentialTokenIdERC1155.isEncodeBytesOnInstallSupported(["0x..."]);
20
- * ```
21
- */
22
- export function isEncodeBytesOnInstallSupported(availableSelectors) {
23
- return detectMethod({
24
- availableSelectors,
25
- method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
26
- });
27
- }
28
- /**
29
- * Decodes the result of the encodeBytesOnInstall function call.
30
- * @param result - The hexadecimal result to decode.
31
- * @returns The decoded result as per the FN_OUTPUTS definition.
32
- * @modules SequentialTokenIdERC1155
33
- * @example
34
- * ```ts
35
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
36
- * const result = SequentialTokenIdERC1155.decodeEncodeBytesOnInstallResultResult("...");
37
- * ```
38
- */
39
- export function decodeEncodeBytesOnInstallResult(result) {
40
- return decodeAbiParameters(FN_OUTPUTS, result)[0];
41
- }
42
- /**
43
- * Calls the "encodeBytesOnInstall" function on the contract.
44
- * @param options - The options for the encodeBytesOnInstall function.
45
- * @returns The parsed result of the function call.
46
- * @modules SequentialTokenIdERC1155
47
- * @example
48
- * ```ts
49
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
50
- *
51
- * const result = await SequentialTokenIdERC1155.encodeBytesOnInstall({
52
- * contract,
53
- * });
54
- *
55
- * ```
56
- */
57
- export async function encodeBytesOnInstall(options) {
58
- return readContract({
59
- contract: options.contract,
60
- method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS],
61
- params: [],
62
- });
63
- }
64
- //# sourceMappingURL=encodeBytesOnInstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encodeBytesOnInstall.js","sourceRoot":"","sources":["../../../../../../../src/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,YAAqB,CAAC;AACjD,MAAM,SAAS,GAAG,EAAW,CAAC;AAC9B,MAAM,UAAU,GAAG;IACjB;QACE,IAAI,EAAE,OAAO;KACd;CACO,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAAC,kBAA4B;IAC1E,OAAO,YAAY,CAAC;QAClB,kBAAkB;QAClB,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAU;KACtD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAAW;IAC1D,OAAO,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAA+B;IACxE,OAAO,YAAY,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAU;QACrD,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;AACL,CAAC"}
@@ -1,44 +0,0 @@
1
- import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
2
- import type { Hex } from "../../../../../utils/encoding/hex.js";
3
- export declare const FN_SELECTOR: "0xfec7ff72";
4
- /**
5
- * Checks if the `encodeBytesOnInstall` method is supported by the given contract.
6
- * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
7
- * @returns A boolean indicating if the `encodeBytesOnInstall` method is supported.
8
- * @modules SequentialTokenIdERC1155
9
- * @example
10
- * ```ts
11
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
12
- * const supported = SequentialTokenIdERC1155.isEncodeBytesOnInstallSupported(["0x..."]);
13
- * ```
14
- */
15
- export declare function isEncodeBytesOnInstallSupported(availableSelectors: string[]): boolean;
16
- /**
17
- * Decodes the result of the encodeBytesOnInstall function call.
18
- * @param result - The hexadecimal result to decode.
19
- * @returns The decoded result as per the FN_OUTPUTS definition.
20
- * @modules SequentialTokenIdERC1155
21
- * @example
22
- * ```ts
23
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
24
- * const result = SequentialTokenIdERC1155.decodeEncodeBytesOnInstallResultResult("...");
25
- * ```
26
- */
27
- export declare function decodeEncodeBytesOnInstallResult(result: Hex): `0x${string}`;
28
- /**
29
- * Calls the "encodeBytesOnInstall" function on the contract.
30
- * @param options - The options for the encodeBytesOnInstall function.
31
- * @returns The parsed result of the function call.
32
- * @modules SequentialTokenIdERC1155
33
- * @example
34
- * ```ts
35
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
36
- *
37
- * const result = await SequentialTokenIdERC1155.encodeBytesOnInstall({
38
- * contract,
39
- * });
40
- *
41
- * ```
42
- */
43
- export declare function encodeBytesOnInstall(options: BaseTransactionOptions): Promise<`0x${string}`>;
44
- //# sourceMappingURL=encodeBytesOnInstall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encodeBytesOnInstall.d.ts","sourceRoot":"","sources":["../../../../../../../src/extensions/modules/__generated__/SequentialTokenIdERC1155/read/encodeBytesOnInstall.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAGlF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sCAAsC,CAAC;AAGhE,eAAO,MAAM,WAAW,cAAwB,CAAC;AAQjD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,kBAAkB,EAAE,MAAM,EAAE,WAK3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,GAAG,iBAE3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,0BAMzE"}
@@ -1,70 +0,0 @@
1
- import { readContract } from "../../../../../transaction/read-contract.js";
2
- import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
3
-
4
- import { decodeAbiParameters } from "viem";
5
- import type { Hex } from "../../../../../utils/encoding/hex.js";
6
- import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
7
-
8
- export const FN_SELECTOR = "0xfec7ff72" as const;
9
- const FN_INPUTS = [] as const;
10
- const FN_OUTPUTS = [
11
- {
12
- type: "bytes",
13
- },
14
- ] as const;
15
-
16
- /**
17
- * Checks if the `encodeBytesOnInstall` method is supported by the given contract.
18
- * @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
19
- * @returns A boolean indicating if the `encodeBytesOnInstall` method is supported.
20
- * @modules SequentialTokenIdERC1155
21
- * @example
22
- * ```ts
23
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
24
- * const supported = SequentialTokenIdERC1155.isEncodeBytesOnInstallSupported(["0x..."]);
25
- * ```
26
- */
27
- export function isEncodeBytesOnInstallSupported(availableSelectors: string[]) {
28
- return detectMethod({
29
- availableSelectors,
30
- method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
31
- });
32
- }
33
-
34
- /**
35
- * Decodes the result of the encodeBytesOnInstall function call.
36
- * @param result - The hexadecimal result to decode.
37
- * @returns The decoded result as per the FN_OUTPUTS definition.
38
- * @modules SequentialTokenIdERC1155
39
- * @example
40
- * ```ts
41
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
42
- * const result = SequentialTokenIdERC1155.decodeEncodeBytesOnInstallResultResult("...");
43
- * ```
44
- */
45
- export function decodeEncodeBytesOnInstallResult(result: Hex) {
46
- return decodeAbiParameters(FN_OUTPUTS, result)[0];
47
- }
48
-
49
- /**
50
- * Calls the "encodeBytesOnInstall" function on the contract.
51
- * @param options - The options for the encodeBytesOnInstall function.
52
- * @returns The parsed result of the function call.
53
- * @modules SequentialTokenIdERC1155
54
- * @example
55
- * ```ts
56
- * import { SequentialTokenIdERC1155 } from "thirdweb/modules";
57
- *
58
- * const result = await SequentialTokenIdERC1155.encodeBytesOnInstall({
59
- * contract,
60
- * });
61
- *
62
- * ```
63
- */
64
- export async function encodeBytesOnInstall(options: BaseTransactionOptions) {
65
- return readContract({
66
- contract: options.contract,
67
- method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
68
- params: [],
69
- });
70
- }