thirdweb 5.53.0 → 5.53.1-nightly-865c5e3b16af70c3660f30ba8cffc5d6e360a389-20240911000352

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 (182) hide show
  1. package/dist/cjs/contract/deployment/utils/bootstrap.js +1 -1
  2. package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
  3. package/dist/cjs/exports/contract.js +4 -1
  4. package/dist/cjs/exports/contract.js.map +1 -1
  5. package/dist/cjs/exports/deploys.js +2 -1
  6. package/dist/cjs/exports/deploys.js.map +1 -1
  7. package/dist/cjs/exports/extensions/erc721.js +4 -2
  8. package/dist/cjs/exports/extensions/erc721.js.map +1 -1
  9. package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +14 -16
  10. package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
  11. package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +19 -0
  12. package/dist/cjs/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
  13. package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js +3 -20
  14. package/dist/cjs/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
  15. package/dist/cjs/extensions/prebuilts/deploy-published.js +30 -14
  16. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  17. package/dist/cjs/react/core/hooks/others/useProfiles.js +1 -1
  18. package/dist/cjs/react/core/utils/walletIcon.js +5 -1
  19. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
  20. package/dist/cjs/react/native/ui/components/WalletImage.js +2 -0
  21. package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -1
  22. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -0
  23. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  24. package/dist/cjs/react/native/ui/icons/svgs.js +2 -1
  25. package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
  26. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  27. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  28. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +1 -0
  29. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  30. package/dist/cjs/utils/any-evm/compute-published-contract-address.js +0 -4
  31. package/dist/cjs/utils/any-evm/compute-published-contract-address.js.map +1 -1
  32. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js +2 -3
  33. package/dist/cjs/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  34. package/dist/cjs/utils/any-evm/deploy-metadata.js +0 -19
  35. package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
  36. package/dist/cjs/utils/domains.js +1 -1
  37. package/dist/cjs/utils/domains.js.map +1 -1
  38. package/dist/cjs/utils/ipfs.js +2 -0
  39. package/dist/cjs/utils/ipfs.js.map +1 -1
  40. package/dist/cjs/version.js +1 -1
  41. package/dist/cjs/version.js.map +1 -1
  42. package/dist/cjs/wallets/in-app/core/authentication/types.js +1 -0
  43. package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
  44. package/dist/cjs/wallets/in-app/native/native-connector.js +2 -0
  45. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  46. package/dist/cjs/wallets/in-app/web/in-app.js +2 -0
  47. package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
  48. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +2 -0
  49. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  50. package/dist/cjs/wallets/types.js +1 -0
  51. package/dist/cjs/wallets/types.js.map +1 -1
  52. package/dist/esm/contract/deployment/utils/bootstrap.js +1 -1
  53. package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
  54. package/dist/esm/exports/contract.js +2 -0
  55. package/dist/esm/exports/contract.js.map +1 -1
  56. package/dist/esm/exports/deploys.js +1 -1
  57. package/dist/esm/exports/deploys.js.map +1 -1
  58. package/dist/esm/exports/extensions/erc721.js +3 -3
  59. package/dist/esm/exports/extensions/erc721.js.map +1 -1
  60. package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +13 -15
  61. package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js.map +1 -1
  62. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js +21 -3
  63. package/dist/esm/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.js.map +1 -1
  64. package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js +1 -20
  65. package/dist/esm/extensions/erc721/lazyMinting/write/reveal.js.map +1 -1
  66. package/dist/esm/extensions/prebuilts/deploy-published.js +29 -14
  67. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  68. package/dist/esm/react/core/hooks/others/useProfiles.js +1 -1
  69. package/dist/esm/react/core/utils/walletIcon.js +4 -0
  70. package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
  71. package/dist/esm/react/native/ui/components/WalletImage.js +3 -1
  72. package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -1
  73. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +2 -1
  74. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  75. package/dist/esm/react/native/ui/icons/svgs.js +1 -0
  76. package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
  77. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
  78. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  79. package/dist/esm/react/web/wallets/shared/oauthSignIn.js +1 -0
  80. package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  81. package/dist/esm/utils/any-evm/compute-published-contract-address.js +0 -4
  82. package/dist/esm/utils/any-evm/compute-published-contract-address.js.map +1 -1
  83. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js +2 -3
  84. package/dist/esm/utils/any-evm/compute-published-contract-deploy-info.js.map +1 -1
  85. package/dist/esm/utils/any-evm/deploy-metadata.js +0 -19
  86. package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
  87. package/dist/esm/utils/domains.js +1 -1
  88. package/dist/esm/utils/domains.js.map +1 -1
  89. package/dist/esm/utils/ipfs.js +2 -0
  90. package/dist/esm/utils/ipfs.js.map +1 -1
  91. package/dist/esm/version.js +1 -1
  92. package/dist/esm/version.js.map +1 -1
  93. package/dist/esm/wallets/in-app/core/authentication/types.js +1 -0
  94. package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
  95. package/dist/esm/wallets/in-app/native/native-connector.js +2 -0
  96. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  97. package/dist/esm/wallets/in-app/web/in-app.js +2 -0
  98. package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
  99. package/dist/esm/wallets/in-app/web/lib/web-connector.js +2 -0
  100. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  101. package/dist/esm/wallets/types.js +1 -0
  102. package/dist/esm/wallets/types.js.map +1 -1
  103. package/dist/types/contract/actions/compiler-metadata.d.ts +2 -2
  104. package/dist/types/contract/actions/compiler-metadata.d.ts.map +1 -1
  105. package/dist/types/contract/actions/get-compiler-metadata.d.ts +1 -1
  106. package/dist/types/contract/actions/get-compiler-metadata.d.ts.map +1 -1
  107. package/dist/types/contract/verification/source-files.d.ts +2 -2
  108. package/dist/types/contract/verification/source-files.d.ts.map +1 -1
  109. package/dist/types/exports/contract.d.ts +1 -0
  110. package/dist/types/exports/contract.d.ts.map +1 -1
  111. package/dist/types/exports/deploys.d.ts +1 -1
  112. package/dist/types/exports/deploys.d.ts.map +1 -1
  113. package/dist/types/exports/extensions/erc721.d.ts +3 -3
  114. package/dist/types/exports/extensions/erc721.d.ts.map +1 -1
  115. package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts +1 -1
  116. package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts.map +1 -1
  117. package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts +12 -0
  118. package/dist/types/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.d.ts.map +1 -1
  119. package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts +1 -0
  120. package/dist/types/extensions/erc721/lazyMinting/write/reveal.d.ts.map +1 -1
  121. package/dist/types/extensions/prebuilts/deploy-published.d.ts +16 -0
  122. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  123. package/dist/types/react/core/hooks/others/useProfiles.d.ts +1 -1
  124. package/dist/types/react/core/utils/storage.d.ts +1 -1
  125. package/dist/types/react/core/utils/storage.d.ts.map +1 -1
  126. package/dist/types/react/core/utils/walletIcon.d.ts +3 -1
  127. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
  128. package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
  129. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  130. package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
  131. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
  132. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  133. package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
  134. package/dist/types/utils/any-evm/compute-published-contract-address.d.ts +0 -4
  135. package/dist/types/utils/any-evm/compute-published-contract-address.d.ts.map +1 -1
  136. package/dist/types/utils/any-evm/compute-published-contract-deploy-info.d.ts.map +1 -1
  137. package/dist/types/utils/any-evm/deploy-metadata.d.ts +3 -6
  138. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  139. package/dist/types/utils/ipfs.d.ts +1 -1
  140. package/dist/types/utils/ipfs.d.ts.map +1 -1
  141. package/dist/types/version.d.ts +1 -1
  142. package/dist/types/version.d.ts.map +1 -1
  143. package/dist/types/wallets/in-app/core/authentication/types.d.ts +1 -0
  144. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
  145. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  146. package/dist/types/wallets/in-app/web/in-app.d.ts +2 -0
  147. package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
  148. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  149. package/dist/types/wallets/types.d.ts +2 -2
  150. package/dist/types/wallets/types.d.ts.map +1 -1
  151. package/package.json +2 -2
  152. package/src/contract/actions/compiler-metadata.ts +2 -2
  153. package/src/contract/deployment/publisher.test.ts +2 -2
  154. package/src/contract/deployment/utils/bootstrap.ts +1 -1
  155. package/src/contract/verification/source-files.ts +2 -2
  156. package/src/exports/contract.ts +6 -0
  157. package/src/exports/deploys.ts +2 -0
  158. package/src/exports/extensions/erc721.ts +3 -1
  159. package/src/extensions/erc721/lazyMinting/read/getBatchesToReveal.ts +15 -15
  160. package/src/extensions/erc721/lazyMinting/write/createAndReveal.test.ts +84 -0
  161. package/src/extensions/erc721/lazyMinting/write/createDelayedRevealBatch.ts +33 -3
  162. package/src/extensions/erc721/lazyMinting/write/reveal.test.ts +1 -45
  163. package/src/extensions/erc721/lazyMinting/write/reveal.ts +2 -23
  164. package/src/extensions/prebuilts/deploy-published.ts +61 -22
  165. package/src/react/core/hooks/others/useProfiles.ts +1 -1
  166. package/src/react/core/utils/walletIcon.ts +5 -0
  167. package/src/react/native/ui/components/WalletImage.tsx +3 -0
  168. package/src/react/native/ui/connect/InAppWalletUI.tsx +2 -0
  169. package/src/react/native/ui/icons/svgs.ts +2 -0
  170. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +1 -0
  171. package/src/react/web/wallets/shared/oauthSignIn.ts +1 -0
  172. package/src/utils/any-evm/compute-published-contract-address.ts +0 -4
  173. package/src/utils/any-evm/compute-published-contract-deploy-info.ts +2 -3
  174. package/src/utils/any-evm/deploy-metadata.ts +9 -34
  175. package/src/utils/domains.ts +1 -1
  176. package/src/utils/ipfs.ts +3 -1
  177. package/src/version.ts +1 -1
  178. package/src/wallets/in-app/core/authentication/types.ts +1 -0
  179. package/src/wallets/in-app/native/native-connector.ts +2 -0
  180. package/src/wallets/in-app/web/in-app.ts +2 -0
  181. package/src/wallets/in-app/web/lib/web-connector.ts +2 -0
  182. package/src/wallets/types.ts +1 -0
@@ -1,8 +1,9 @@
1
- import { simulateTransaction } from "../../../../transaction/actions/simulate.js";
2
1
  import type { BaseTransactionOptions } from "../../../../transaction/types.js";
3
2
  import { reveal as generatedReveal } from "../../__generated__/IDelayedReveal/write/reveal.js";
4
3
  import { hashDelayedRevealPassword } from "../helpers/hashDelayedRevealBatch.js";
5
4
 
5
+ export { isRevealSupported } from "../../__generated__/IDelayedReveal/write/reveal.js";
6
+
6
7
  /**
7
8
  * @extension ERC721
8
9
  */
@@ -44,28 +45,6 @@ export function reveal(options: BaseTransactionOptions<RevealParams>) {
44
45
  options.password,
45
46
  options.contract,
46
47
  );
47
-
48
- const transaction = generatedReveal({
49
- contract: options.contract,
50
- asyncParams: async () => ({
51
- identifier: options.batchId,
52
- key,
53
- }),
54
- });
55
-
56
- let decryptedUri: string;
57
- try {
58
- decryptedUri = await simulateTransaction({
59
- transaction,
60
- });
61
- } catch (error) {
62
- throw new Error("Reveal failed", { cause: error });
63
- }
64
-
65
- if (!decryptedUri.includes("://") || decryptedUri.slice(-1) !== "/") {
66
- throw new Error("Invalid reveal password");
67
- }
68
-
69
48
  return {
70
49
  identifier: options.batchId,
71
50
  key,
@@ -9,6 +9,7 @@ import { simulateTransaction } from "../../transaction/actions/simulate.js";
9
9
  import { prepareContractCall } from "../../transaction/prepare-contract-call.js";
10
10
  import { resolveMethod } from "../../transaction/resolve-method.js";
11
11
  import type { CompilerMetadata } from "../../utils/any-evm/deploy-metadata.js";
12
+ import type { FetchDeployMetadataResult } from "../../utils/any-evm/deploy-metadata.js";
12
13
  import { isZkSyncChain } from "../../utils/any-evm/zksync/isZkSyncChain.js";
13
14
  import type { Account } from "../../wallets/interfaces/wallet.js";
14
15
 
@@ -58,21 +59,56 @@ export async function deployPublishedContract(
58
59
  version,
59
60
  implementationConstructorParams,
60
61
  } = options;
61
- const { compilerMetadata, extendedMetadata } =
62
- await fetchPublishedContractMetadata({
63
- client,
64
- contractId: isZkSyncChain(chain) ? `${contractId}_ZkSync` : contractId,
65
- publisher,
66
- version,
67
- });
62
+ const deployMetadata = await fetchPublishedContractMetadata({
63
+ client,
64
+ contractId: isZkSyncChain(chain) ? `${contractId}_ZkSync` : contractId,
65
+ publisher,
66
+ version,
67
+ });
68
+
69
+ return deployContractfromDeployMetadata({
70
+ account,
71
+ chain,
72
+ deployMetadata,
73
+ client,
74
+ contractParams,
75
+ implementationConstructorParams,
76
+ });
77
+ }
78
+
79
+ /**
80
+ * @internal
81
+ */
82
+ export type DeployContractfromDeployMetadataOptions = {
83
+ client: ThirdwebClient;
84
+ chain: Chain;
85
+ account: Account;
86
+ deployMetadata: FetchDeployMetadataResult;
87
+ contractParams: unknown[];
88
+ implementationConstructorParams?: unknown[];
89
+ };
68
90
 
69
- switch (extendedMetadata?.deployType) {
91
+ /**
92
+ * @internal
93
+ */
94
+ export async function deployContractfromDeployMetadata(
95
+ options: DeployContractfromDeployMetadataOptions,
96
+ ) {
97
+ const {
98
+ client,
99
+ account,
100
+ chain,
101
+ contractParams,
102
+ deployMetadata,
103
+ implementationConstructorParams,
104
+ } = options;
105
+ switch (deployMetadata?.deployType) {
70
106
  case "standard": {
71
107
  return directDeploy({
72
108
  account,
73
109
  client,
74
110
  chain,
75
- compilerMetadata,
111
+ compilerMetadata: deployMetadata,
76
112
  contractParams,
77
113
  });
78
114
  }
@@ -89,19 +125,21 @@ export async function deployPublishedContract(
89
125
  chain,
90
126
  client,
91
127
  account,
92
- contractId,
128
+ contractId: deployMetadata.name,
93
129
  constructorParams: implementationConstructorParams || [],
94
- publisher,
130
+ publisher: deployMetadata.publisher,
95
131
  });
96
- const initializeFunction = compilerMetadata.abi.find(
132
+ const initializeFunction = deployMetadata.abi.find(
97
133
  (i) =>
98
134
  i.type === "function" &&
99
135
  i.name ===
100
- (extendedMetadata.factoryDeploymentData
136
+ (deployMetadata.factoryDeploymentData
101
137
  ?.implementationInitializerFunction || "initialize"),
102
138
  ) as AbiFunction;
103
139
  if (!initializeFunction) {
104
- throw new Error(`Could not find initialize function for ${contractId}`);
140
+ throw new Error(
141
+ `Could not find initialize function for ${deployMetadata.name}`,
142
+ );
105
143
  }
106
144
  const initializeTransaction = prepareContractCall({
107
145
  contract: getContract({
@@ -109,7 +147,10 @@ export async function deployPublishedContract(
109
147
  chain,
110
148
  address: implementationContract.address,
111
149
  }),
112
- method: initializeFunction,
150
+ method: resolveMethod(
151
+ deployMetadata.factoryDeploymentData
152
+ ?.implementationInitializerFunction || "initialize",
153
+ ),
113
154
  params: contractParams,
114
155
  });
115
156
 
@@ -122,14 +163,14 @@ export async function deployPublishedContract(
122
163
  });
123
164
  }
124
165
  case "customFactory": {
125
- if (!extendedMetadata?.factoryDeploymentData?.customFactoryInput) {
166
+ if (!deployMetadata?.factoryDeploymentData?.customFactoryInput) {
126
167
  throw new Error("No custom factory info found");
127
168
  }
128
169
  const factoryAddress =
129
- extendedMetadata?.factoryDeploymentData?.customFactoryInput
170
+ deployMetadata?.factoryDeploymentData?.customFactoryInput
130
171
  ?.customFactoryAddresses?.[chain.id];
131
172
  const factoryFunction =
132
- extendedMetadata.factoryDeploymentData?.customFactoryInput
173
+ deployMetadata.factoryDeploymentData?.customFactoryInput
133
174
  ?.factoryFunction;
134
175
  if (!factoryAddress || !factoryFunction) {
135
176
  throw new Error(`No factory address found on chain ${chain.id}`);
@@ -161,15 +202,13 @@ export async function deployPublishedContract(
161
202
  account,
162
203
  client,
163
204
  chain,
164
- compilerMetadata,
205
+ compilerMetadata: deployMetadata,
165
206
  contractParams,
166
207
  });
167
208
  }
168
209
  default:
169
210
  // If a deployType was specified but we don't support it, throw an error
170
- throw new Error(
171
- `Unsupported deploy type: ${extendedMetadata?.deployType}`,
172
- );
211
+ throw new Error(`Unsupported deploy type: ${deployMetadata?.deployType}`);
173
212
  }
174
213
  }
175
214
 
@@ -13,7 +13,7 @@ import { useActiveWallet } from "../wallets/useActiveWallet.js";
13
13
  *
14
14
  * @example
15
15
  * ```jsx
16
- * import { use } from "thirdweb/react";
16
+ * import { useProfiles } from "thirdweb/react";
17
17
  *
18
18
  * const { data: profiles } = useProfiles();
19
19
  *
@@ -19,6 +19,8 @@ export const twitchIconUri =
19
19
  "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgdmlld0JveD0iMCAwIDExMS43ODY2NyAxMjcuMzg2NjciCiAgIGhlaWdodD0iMTI3LjM4NjY3IgogICB3aWR0aD0iMTExLjc4NjY3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczMzU1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJUd2l0Y2hfbG9nby5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xICgzYmY1YWUwZDI1LCAyMDIxLTA5LTIwKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcwogICBpZD0iZGVmczI5Ij4KICAgIAogICAgCiAgPC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgaWQ9Im5hbWVkdmlldzI3IgogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iNC4xOTkyMjg0IgogICBpbmtzY2FwZTpjeD0iLTUwLjYwNDUzNSIKICAgaW5rc2NhcGU6Y3k9IjE0MC4zODI5MyIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzg3IgogICBpbmtzY2FwZTp3aW5kb3cteD0iMTkxMiIKICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmczMzU1IiAvPgogIDxnCiAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsLTEuMzMzMzMzMywxMDEuMzkzMzMsNjcuNTg5MzMyKSIKICAgaWQ9ImczMzY1Ij4KICAgICAgPHBhdGgKICAgaWQ9InBhdGgzMzY3IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICBkPSJtIDAsMCAtMTMuNjUyLC0xMy42NTEgaCAtMjEuNDQ1IGwgLTExLjY5OSwtMTEuNjk3IHYgMTEuNjk3IEggLTY0LjM0NCBWIDQyLjg5MyBIIDAgWiBtIC03Mi4xNDYsNTAuNjkyIC0zLjg5OSwtMTUuNTk5IHYgLTcwLjE5IGggMTcuNTUgdiAtOS43NTEgaCA5Ljc0NiBsIDkuNzUyLDkuNzUxIGggMTUuNTk2IEwgNy43OTUsLTMuOTA1IHYgNTQuNTk3IHoiIC8+CiAgICA8L2c+PHBhdGgKICAgaWQ9InBhdGgzMzY5IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjMzMzMzIgogICBkPSJtIDQ0LjE5NzMzMSw2Mi4zOTQyNjYgaCAxMC4zOTg2NyBWIDMxLjE5MjkzMyBoIC0xMC4zOTg2NyB6IG0gMjguNTk0NjcsMCBoIDEwLjM5ODY2IFYgMzEuMTkyOTMzIGggLTEwLjM5ODY2IHoiIC8+Cjwvc3ZnPgo=";
20
20
  export const discordIconUri =
21
21
  "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBpZD0iZGlzY29yZCI+PHBhdGggZmlsbD0iIzY2NjVkMiIgZD0iTTg1LjIyLDI0Ljk1OGMtMTEuNDU5LTguNTc1LTIyLjQzOC04LjMzNC0yMi40MzgtOC4zMzRsLTEuMTIyLDEuMjgyCgkJCQljMTMuNjIzLDQuMDg3LDE5Ljk1NCwxMC4wOTcsMTkuOTU0LDEwLjA5N2MtMTkuNDkxLTEwLjczMS00NC4zMTctMTAuNjU0LTY0LjU5LDBjMCwwLDYuNTcxLTYuMzMxLDIwLjk5Ni0xMC40MThsLTAuODAxLTAuOTYyCgkJCQljMCwwLTEwLjg5OS0wLjI0LTIyLjQzOCw4LjMzNGMwLDAtMTEuNTQsMjAuNzU1LTExLjU0LDQ2LjMxOWMwLDAsNi43MzIsMTEuNTQsMjQuNDQyLDEyLjEwMWMwLDAsMi45NjUtMy41MjYsNS4zNjktNi41NzEKCQkJCWMtMTAuMTc3LTMuMDQ1LTE0LjAyNC05LjM3Ni0xNC4wMjQtOS4zNzZjNi4zOTQsNC4wMDEsMTIuODU5LDYuNTA1LDIwLjkxNiw4LjA5NGMxMy4xMDgsMi42OTgsMjkuNDEzLTAuMDc2LDQxLjU5MS04LjA5NAoJCQkJYzAsMC00LjAwNyw2LjQ5MS0xNC41MDUsOS40NTZjMi40MDQsMi45NjUsNS4yODksNi40MTEsNS4yODksNi40MTFjMTcuNzEtMC41NjEsMjQuNDQxLTEyLjEwMSwyNC40NDEtMTIuMDIKCQkJCUM5Ni43NTksNDUuNzEzLDg1LjIyLDI0Ljk1OCw4NS4yMiwyNC45NTh6IE0zNS4wNTUsNjMuODI0Yy00LjQ4OCwwLTguMTc0LTMuOTI3LTguMTc0LTguODE1CgkJCQljMC4zMjgtMTEuNzA3LDE2LjEwMi0xMS42NzEsMTYuMzQ4LDBDNDMuMjI5LDU5Ljg5NywzOS42MjIsNjMuODI0LDM1LjA1NSw2My44MjR6IE02NC4zMDQsNjMuODI0CgkJCQljLTQuNDg4LDAtOC4xNzQtMy45MjctOC4xNzQtOC44MTVjMC4zNi0xMS42ODQsMTUuOTM3LTExLjY4OSwxNi4zNDgsMEM3Mi40NzgsNTkuODk3LDY4Ljg3Miw2My44MjQsNjQuMzA0LDYzLjgyNHoiPjwvcGF0aD48L3N2Zz4=";
22
+ export const lineIconUri =
23
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiB2aWV3Qm94PSIwIDAgMzIwIDMyMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwNmM3NTU7fS5jbHMtMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPjxnIGlkPSJMSU5FX0xPR08iIGRhdGEtbmFtZT0iTElORSBMT0dPIj48cmVjdCBjbGFzcz0iY2xzLTEiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiByeD0iNzIuMTQiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yNjYuNjYsMTQ0LjkyYzAtNDcuNzQtNDcuODYtODYuNTgtMTA2LjY5LTg2LjU4UzUzLjI4LDk3LjE4LDUzLjI4LDE0NC45MmMwLDQyLjgsMzgsNzguNjUsODkuMjIsODUuNDIsMy40OC43NSw4LjIxLDIuMjksOS40LDUuMjYsMS4wOCwyLjcuNzEsNi45My4zNSw5LjY1LDAsMC0xLjI1LDcuNTMtMS41Miw5LjEzLS40NywyLjctMi4xNSwxMC41NSw5LjI0LDUuNzZzNjEuNDQtMzYuMTgsODMuODItNjEuOTVoMEMyNTkuMjUsMTgxLjI0LDI2Ni42NiwxNjQsMjY2LjY2LDE0NC45MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMzEuMTYsMTcyLjQ5aC0zMGEyLDIsMCwwLDEtMi0ydjBoMFYxMjMuOTRoMHYwYTIsMiwwLDAsMSwyLTJoMzBhMiwyLDAsMCwxLDIsMnY3LjU3YTIsMiwwLDAsMS0yLDJIMjEwLjc5djcuODVoMjAuMzdhMiwyLDAsMCwxLDIsMlYxNTFhMiwyLDAsMCwxLTIsMkgyMTAuNzl2Ny44NmgyMC4zN2EyLDIsMCwwLDEsMiwydjcuNTZBMiwyLDAsMCwxLDIzMS4xNiwxNzIuNDlaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTIwLjI5LDE3Mi40OWEyLDIsMCwwLDAsMi0ydi03LjU2YTIsMiwwLDAsMC0yLTJIOTkuOTJ2LTM3YTIsMiwwLDAsMC0yLTJIOTAuMzJhMiwyLDAsMCwwLTIsMnY0Ni41M2gwdjBhMiwyLDAsMCwwLDIsMmgzMFoiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjEyOC43MyIgeT0iMTIxLjg1IiB3aWR0aD0iMTEuNjQiIGhlaWdodD0iNTAuNjQiIHJ4PSIyLjA0Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTg5Ljg0LDEyMS44NWgtNy41NmEyLDIsMCwwLDAtMiwydjI3LjY2bC0yMS4zLTI4Ljc3YTEuMiwxLjIsMCwwLDAtLjE3LS4yMXYwbC0uMTItLjEyLDAsMC0uMTEtLjA5LS4wNiwwLS4xMS0uMDgtLjA2LDAtLjExLS4wNi0uMDcsMC0uMTEsMC0uMDcsMC0uMTIsMC0uMDgsMC0uMTIsMGgtLjA4bC0uMTEsMGgtNy43MWEyLDIsMCwwLDAtMiwydjQ2LjU2YTIsMiwwLDAsMCwyLDJoNy41N2EyLDIsMCwwLDAsMi0yVjE0Mi44MWwyMS4zMywyOC44YTIsMiwwLDAsMCwuNTIuNTJoMGwuMTIuMDguMDYsMCwuMS4wNS4xLDAsLjA3LDAsLjE0LDBoMGEyLjQyLDIuNDIsMCwwLDAsLjU0LjA3aDcuNTJhMiwyLDAsMCwwLDItMlYxMjMuODlBMiwyLDAsMCwwLDE4OS44NCwxMjEuODVaIi8+PC9nPjwvZz48L3N2Zz4=";
22
24
  export const farcasterIconUri =
23
25
  "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxMDAwIiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxMDAwIiByeD0iMjAwIiBmaWxsPSIjODU1RENEIi8+CjxwYXRoIGQ9Ik0yNTcuNzc4IDE1NS41NTZINzQyLjIyMlY4NDQuNDQ0SDY3MS4xMTFWNTI4Ljg4OUg2NzAuNDE0QzY2Mi41NTQgNDQxLjY3NyA1ODkuMjU4IDM3My4zMzMgNTAwIDM3My4zMzNDNDEwLjc0MiAzNzMuMzMzIDMzNy40NDYgNDQxLjY3NyAzMjkuNTg2IDUyOC44ODlIMzI4Ljg4OVY4NDQuNDQ0SDI1Ny43NzhWMTU1LjU1NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMjguODg5IDI1My4zMzNMMTU3Ljc3OCAzNTEuMTExSDE4Mi4yMjJWNzQ2LjY2N0MxNjkuOTQ5IDc0Ni42NjcgMTYwIDc1Ni42MTYgMTYwIDc2OC44ODlWNzk1LjU1NkgxNTUuNTU2QzE0My4yODMgNzk1LjU1NiAxMzMuMzMzIDgwNS41MDUgMTMzLjMzMyA4MTcuNzc4Vjg0NC40NDRIMzgyLjIyMlY4MTcuNzc4QzM4Mi4yMjIgODA1LjUwNSAzNzIuMjczIDc5NS41NTYgMzYwIDc5NS41NTZIMzU1LjU1NlY3NjguODg5QzM1NS41NTYgNzU2LjYxNiAzNDUuNjA2IDc0Ni42NjcgMzMzLjMzMyA3NDYuNjY3SDMwNi42NjdWMjUzLjMzM0gxMjguODg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTY3NS41NTYgNzQ2LjY2N0M2NjMuMjgzIDc0Ni42NjcgNjUzLjMzMyA3NTYuNjE2IDY1My4zMzMgNzY4Ljg4OVY3OTUuNTU2SDY0OC44ODlDNjM2LjYxNiA3OTUuNTU2IDYyNi42NjcgODA1LjUwNSA2MjYuNjY3IDgxNy43NzhWODQ0LjQ0NEg4NzUuNTU2VjgxNy43NzhDODc1LjU1NiA4MDUuNTA1IDg2NS42MDYgNzk1LjU1NiA4NTMuMzMzIDc5NS41NTZIODQ4Ljg4OVY3NjguODg5Qzg0OC44ODkgNzU2LjYxNiA4MzguOTQgNzQ2LjY2NyA4MjYuNjY3IDc0Ni42NjdWMzUxLjExMUg4NTEuMTExTDg4MCAyNTMuMzMzSDcwMi4yMjJWNzQ2LjY2N0g2NzUuNTU2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==";
24
26
  export const telegramIconUri =
@@ -46,6 +48,7 @@ export const socialIcons = {
46
48
  apple: appleIconUri,
47
49
  facebook: facebookIconUri,
48
50
  discord: discordIconUri,
51
+ line: lineIconUri,
49
52
  farcaster: farcasterIconUri,
50
53
  telegram: telegramIconUri,
51
54
  };
@@ -67,6 +70,8 @@ export function getWalletIcon(provider: string) {
67
70
  return passkeyIcon;
68
71
  case "discord":
69
72
  return discordIconUri;
73
+ case "line":
74
+ return lineIconUri;
70
75
  case "farcaster":
71
76
  return farcasterIconUri;
72
77
  case "telegram":
@@ -12,6 +12,7 @@ import {
12
12
  FACEBOOK_ICON,
13
13
  FARCASTER_ICON,
14
14
  GOOGLE_ICON,
15
+ LINE_ICON,
15
16
  PASSKEY_ICON,
16
17
  PHONE_ICON,
17
18
  TELEGRAM_ICON,
@@ -81,6 +82,8 @@ export function getAuthProviderImage(authProvider: string | null): string {
81
82
  return FACEBOOK_ICON;
82
83
  case "discord":
83
84
  return DISCORD_ICON;
85
+ case "line":
86
+ return LINE_ICON;
84
87
  case "farcaster":
85
88
  return FARCASTER_ICON;
86
89
  case "telegram":
@@ -34,6 +34,7 @@ import {
34
34
  FACEBOOK_ICON,
35
35
  FARCASTER_ICON,
36
36
  GOOGLE_ICON,
37
+ LINE_ICON,
37
38
  TELEGRAM_ICON,
38
39
  } from "../icons/svgs.js";
39
40
  import type { ModalState } from "./ConnectModal.js";
@@ -53,6 +54,7 @@ const socialIcons = {
53
54
  facebook: FACEBOOK_ICON,
54
55
  apple: APPLE_ICON,
55
56
  discord: DISCORD_ICON,
57
+ line: LINE_ICON,
56
58
  farcaster: FARCASTER_ICON,
57
59
  telegram: TELEGRAM_ICON,
58
60
  };
@@ -37,6 +37,8 @@ export const DISCORD_ICON = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink
37
37
  </g>
38
38
  </svg>`;
39
39
 
40
+ export const LINE_ICON = `<svg xmlns="http://www.w3.org/2000/svg" width="320" height="320" viewBox="0 0 320 320"><defs><style>.cls-1{fill:#06c755;}.cls-2{fill:#fff;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="LINE_LOGO" data-name="LINE LOGO"><rect class="cls-1" width="320" height="320" rx="72.14"/><path class="cls-2" d="M266.66,144.92c0-47.74-47.86-86.58-106.69-86.58S53.28,97.18,53.28,144.92c0,42.8,38,78.65,89.22,85.42,3.48.75,8.21,2.29,9.4,5.26,1.08,2.7.71,6.93.35,9.65,0,0-1.25,7.53-1.52,9.13-.47,2.7-2.15,10.55,9.24,5.76s61.44-36.18,83.82-61.95h0C259.25,181.24,266.66,164,266.66,144.92Z"/><path class="cls-1" d="M231.16,172.49h-30a2,2,0,0,1-2-2v0h0V123.94h0v0a2,2,0,0,1,2-2h30a2,2,0,0,1,2,2v7.57a2,2,0,0,1-2,2H210.79v7.85h20.37a2,2,0,0,1,2,2V151a2,2,0,0,1-2,2H210.79v7.86h20.37a2,2,0,0,1,2,2v7.56A2,2,0,0,1,231.16,172.49Z"/><path class="cls-1" d="M120.29,172.49a2,2,0,0,0,2-2v-7.56a2,2,0,0,0-2-2H99.92v-37a2,2,0,0,0-2-2H90.32a2,2,0,0,0-2,2v46.53h0v0a2,2,0,0,0,2,2h30Z"/><rect class="cls-1" x="128.73" y="121.85" width="11.64" height="50.64" rx="2.04"/><path class="cls-1" d="M189.84,121.85h-7.56a2,2,0,0,0-2,2v27.66l-21.3-28.77a1.2,1.2,0,0,0-.17-.21v0l-.12-.12,0,0-.11-.09-.06,0-.11-.08-.06,0-.11-.06-.07,0-.11,0-.07,0-.12,0-.08,0-.12,0h-.08l-.11,0h-7.71a2,2,0,0,0-2,2v46.56a2,2,0,0,0,2,2h7.57a2,2,0,0,0,2-2V142.81l21.33,28.8a2,2,0,0,0,.52.52h0l.12.08.06,0,.1.05.1,0,.07,0,.14,0h0a2.42,2.42,0,0,0,.54.07h7.52a2,2,0,0,0,2-2V123.89A2,2,0,0,0,189.84,121.85Z"/></g></g></svg>`;
41
+
40
42
  export const FARCASTER_ICON = `<svg width={width} height={height} viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
41
43
  <rect width="1000" height="1000" rx="200" fill="#855DCD"/>
42
44
  <path d="M257.778 155.556H742.222V844.444H671.111V528.889H670.414C662.554 441.677 589.258 373.333 500 373.333C410.742 373.333 337.446 441.677 329.586 528.889H328.889V844.444H257.778V155.556Z" fill="white"/>
@@ -106,6 +106,7 @@ export const ConnectWalletSocialOptions = (
106
106
  facebook: locale.signInWithFacebook,
107
107
  apple: locale.signInWithApple,
108
108
  discord: locale.signInWithDiscord,
109
+ line: "LINE",
109
110
  farcaster: "Farcaster",
110
111
  telegram: "Telegram",
111
112
  };
@@ -35,6 +35,7 @@ function getOauthLoginPath(
35
35
  case "google":
36
36
  case "farcaster":
37
37
  case "telegram":
38
+ case "line":
38
39
  case "discord":
39
40
  return getLoginUrl({ authOption, client, ecosystem });
40
41
  default:
@@ -20,10 +20,6 @@ import type { FetchDeployMetadataResult } from "./deploy-metadata.js";
20
20
  * ```ts
21
21
  * import { computePublishedContractAddress } from "thirdweb/deploys";
22
22
  *
23
- * const contractMetadata = await fetchPublishedContractMetadata({
24
- * client,
25
- * chain,
26
- * });
27
23
  * const address = await computePublishedContractAddress({
28
24
  * client,
29
25
  * chain,
@@ -46,14 +46,13 @@ export async function computeDeploymentInfoFromMetadata(args: {
46
46
  salt?: string;
47
47
  }) {
48
48
  const { client, chain, contractMetadata, constructorParams, salt } = args;
49
- const { compilerMetadata } = contractMetadata;
50
49
  const create2FactoryAddress = await computeCreate2FactoryAddress({
51
50
  client,
52
51
  chain,
53
52
  });
54
- const bytecode = compilerMetadata.bytecode;
53
+ const bytecode = contractMetadata.bytecode;
55
54
  const constructorAbi =
56
- (compilerMetadata.abi.find(
55
+ (contractMetadata.abi.find(
57
56
  (abi) => abi.type === "constructor",
58
57
  ) as AbiConstructor) || [];
59
58
  const encodedArgs = encodeAbiParameters(
@@ -10,10 +10,8 @@ export type FetchDeployMetadataOptions = {
10
10
  client: ThirdwebClient;
11
11
  };
12
12
 
13
- export type FetchDeployMetadataResult = {
14
- compilerMetadata: CompilerMetadata;
15
- extendedMetadata: ExtendedMetadata | undefined;
16
- };
13
+ export type FetchDeployMetadataResult = Partial<ExtendedMetadata> &
14
+ CompilerMetadata;
17
15
 
18
16
  /**
19
17
  * Fetches the deployment metadata.
@@ -24,31 +22,6 @@ export type FetchDeployMetadataResult = {
24
22
  export async function fetchDeployMetadata(
25
23
  options: FetchDeployMetadataOptions,
26
24
  ): Promise<FetchDeployMetadataResult> {
27
- const [compilerMetadata, extendedMetadata] = await Promise.all([
28
- fetchCompilerMetadata(options),
29
- fetchExtendedMetadata(options).catch(() => undefined),
30
- ]);
31
- return { compilerMetadata, extendedMetadata };
32
- }
33
-
34
- // helpers
35
- /**
36
- * Fetches the published metadata.
37
- * @param options - The options for fetching the published metadata.
38
- * @internal
39
- */
40
- async function fetchExtendedMetadata(
41
- options: FetchDeployMetadataOptions,
42
- ): Promise<ExtendedMetadata> {
43
- return download({
44
- uri: options.uri,
45
- client: options.client,
46
- }).then((r) => r.json());
47
- }
48
-
49
- async function fetchCompilerMetadata(
50
- options: FetchDeployMetadataOptions,
51
- ): Promise<CompilerMetadata> {
52
25
  const rawMeta: RawCompilerMetadata = await download({
53
26
  uri: options.uri,
54
27
  client: options.client,
@@ -144,11 +117,13 @@ export type ExtendedMetadata = {
144
117
  publisherAddress: string;
145
118
  }[]
146
119
  | undefined;
147
- defaultModules?: {
148
- moduleName: string;
149
- moduleVersion: string;
150
- publisherAddress: string;
151
- }[];
120
+ defaultModules?:
121
+ | Array<{
122
+ moduleName: string;
123
+ moduleVersion: string;
124
+ publisherAddress: string;
125
+ }>
126
+ | undefined;
152
127
  publisher?: string | undefined;
153
128
  audit?: string | undefined;
154
129
  logo?: string | undefined;
@@ -32,8 +32,8 @@ type DomainOverrides = {
32
32
  };
33
33
 
34
34
  export const DEFAULT_RPC_URL = "rpc.thirdweb.com";
35
- const DEFAULT_IN_APP_WALLET_URL = "embedded-wallet.thirdweb.com";
36
35
  const DEFAULT_SOCIAL_URL = "social.thirdweb.com";
36
+ const DEFAULT_IN_APP_WALLET_URL = "embedded-wallet.thirdweb.com";
37
37
  const DEFAULT_PAY_URL = "pay.thirdweb.com";
38
38
  const DEFAULT_STORAGE_URL = "storage.thirdweb.com";
39
39
  const DEFAULT_BUNDLER_URL = "bundler.thirdweb.com";
package/src/utils/ipfs.ts CHANGED
@@ -107,7 +107,9 @@ export async function uploadOrExtractURIs<
107
107
  * @throws If the batch contains URIs with different base URIs or if no base URI is found.
108
108
  * @internal
109
109
  */
110
- export function getBaseUriFromBatch(uris: string[]): string {
110
+ export function getBaseUriFromBatch(uris: string | string[]): string {
111
+ // biome-ignore lint/style/noParameterAssign: lemme do my stuff
112
+ uris = Array.isArray(uris) ? uris : [uris];
111
113
  const [base, ...rest] = uris.map((uri) => {
112
114
  // remove query parameters
113
115
  // biome-ignore lint/style/noParameterAssign: lemme do my stuff
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.53.0";
1
+ export const version = "5.53.1-nightly-865c5e3b16af70c3660f30ba8cffc5d6e360a389-20240911000352";
@@ -76,6 +76,7 @@ export enum AuthProvider {
76
76
  APPLE = "Apple",
77
77
  PASSKEY = "Passkey",
78
78
  DISCORD = "Discord",
79
+ LINE = "Line",
79
80
  FARCASTER = "Farcaster",
80
81
  TELEGRAM = "Telegram",
81
82
  }
@@ -109,6 +109,7 @@ export class InAppNativeConnector implements InAppConnector {
109
109
  case "google":
110
110
  case "facebook":
111
111
  case "discord":
112
+ case "line":
112
113
  case "apple": {
113
114
  const ExpoLinking = require("expo-linking");
114
115
  const redirectUrl =
@@ -144,6 +145,7 @@ export class InAppNativeConnector implements InAppConnector {
144
145
  case "google":
145
146
  case "facebook":
146
147
  case "discord":
148
+ case "line":
147
149
  case "farcaster":
148
150
  case "telegram":
149
151
  case "apple": {
@@ -14,6 +14,8 @@ import { createInAppWallet } from "../core/wallet/in-app-core.js";
14
14
  * - Apple
15
15
  * - Facebook
16
16
  * - Discord
17
+ * - Telegram
18
+ * - LINE
17
19
  * - Farcaster
18
20
  *
19
21
  * Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
@@ -215,6 +215,7 @@ export class InAppWebConnector implements InAppConnector {
215
215
  case "google":
216
216
  case "telegram":
217
217
  case "farcaster":
218
+ case "line":
218
219
  case "discord": {
219
220
  return loginWithOauth({
220
221
  authOption: strategy,
@@ -275,6 +276,7 @@ export class InAppWebConnector implements InAppConnector {
275
276
  case "google":
276
277
  case "farcaster":
277
278
  case "telegram":
279
+ case "line":
278
280
  case "discord": {
279
281
  const authToken = await this.authenticate(args);
280
282
  return this.auth.loginWithAuthToken(authToken);
@@ -24,6 +24,7 @@ export const socialAuthOptions = [
24
24
  "apple",
25
25
  "facebook",
26
26
  "discord",
27
+ "line",
27
28
  "farcaster",
28
29
  "telegram",
29
30
  ] as const;