thirdweb 5.59.0-nightly-e2b3484764275560aa899f3f894b767faedaa9a1-20240925000331 → 5.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/dist/cjs/contract/actions/compiler-metadata.js +16 -10
  2. package/dist/cjs/contract/actions/compiler-metadata.js.map +1 -1
  3. package/dist/cjs/contract/deployment/publisher.js +2 -0
  4. package/dist/cjs/contract/deployment/publisher.js.map +1 -1
  5. package/dist/cjs/contract/deployment/utils/bootstrap.js +3 -2
  6. package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
  7. package/dist/cjs/exports/utils.js +4 -2
  8. package/dist/cjs/exports/utils.js.map +1 -1
  9. package/dist/cjs/exports/wallets.native.js +3 -1
  10. package/dist/cjs/exports/wallets.native.js.map +1 -1
  11. package/dist/cjs/extensions/erc20/write/transfer.js +1 -0
  12. package/dist/cjs/extensions/erc20/write/transfer.js.map +1 -1
  13. package/dist/cjs/extensions/erc20/write/transferFrom.js +1 -0
  14. package/dist/cjs/extensions/erc20/write/transferFrom.js.map +1 -1
  15. package/dist/cjs/extensions/prebuilts/deploy-published.js +6 -3
  16. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  17. package/dist/cjs/extensions/vote/types.js +2 -0
  18. package/dist/cjs/extensions/vote/types.js.map +1 -1
  19. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +2 -3
  20. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  21. package/dist/cjs/react/native/hooks/wallets/useAutoConnect.js +2 -1
  22. package/dist/cjs/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
  23. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js +1 -1
  24. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +4 -1
  26. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  27. package/dist/cjs/storage/upload.js +19 -0
  28. package/dist/cjs/storage/upload.js.map +1 -1
  29. package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js +10 -2
  30. package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
  31. package/dist/cjs/transaction/extract-error.js +2 -2
  32. package/dist/cjs/transaction/extract-error.js.map +1 -1
  33. package/dist/cjs/utils/any-evm/deploy-metadata.js +14 -5
  34. package/dist/cjs/utils/any-evm/deploy-metadata.js.map +1 -1
  35. package/dist/cjs/utils/fetch.js +2 -2
  36. package/dist/cjs/utils/fetch.js.map +1 -1
  37. package/dist/cjs/utils/process.js +7 -0
  38. package/dist/cjs/utils/process.js.map +1 -0
  39. package/dist/cjs/version.js +1 -1
  40. package/dist/cjs/version.js.map +1 -1
  41. package/dist/cjs/wallets/create-wallet.js +5 -2
  42. package/dist/cjs/wallets/create-wallet.js.map +1 -1
  43. package/dist/cjs/wallets/in-app/core/authentication/authEndpoint.js +30 -0
  44. package/dist/cjs/wallets/in-app/core/authentication/authEndpoint.js.map +1 -0
  45. package/dist/cjs/wallets/in-app/core/authentication/jwt.js +30 -0
  46. package/dist/cjs/wallets/in-app/core/authentication/jwt.js.map +1 -0
  47. package/dist/cjs/wallets/in-app/core/authentication/passkeys.js +3 -14
  48. package/dist/cjs/wallets/in-app/core/authentication/passkeys.js.map +1 -1
  49. package/dist/cjs/wallets/in-app/core/authentication/types.js +0 -35
  50. package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
  51. package/dist/cjs/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.js +15 -13
  52. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -0
  53. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +9 -8
  54. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  55. package/dist/cjs/wallets/in-app/core/wallet/index.js +1 -2
  56. package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
  57. package/dist/cjs/wallets/in-app/core/wallet/web-wallet.js.map +1 -0
  58. package/dist/cjs/wallets/in-app/native/auth/index.js +1 -2
  59. package/dist/cjs/wallets/in-app/native/auth/index.js.map +1 -1
  60. package/dist/cjs/wallets/in-app/native/auth/native-auth.js +8 -178
  61. package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -1
  62. package/dist/cjs/wallets/in-app/native/ecosystem.js +84 -0
  63. package/dist/cjs/wallets/in-app/native/ecosystem.js.map +1 -0
  64. package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js +50 -24
  65. package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
  66. package/dist/cjs/wallets/in-app/native/helpers/auth/logout.js +3 -3
  67. package/dist/cjs/wallets/in-app/native/helpers/auth/logout.js.map +1 -1
  68. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js +28 -54
  69. package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  70. package/dist/cjs/wallets/in-app/native/helpers/storage/local.js +20 -18
  71. package/dist/cjs/wallets/in-app/native/helpers/storage/local.js.map +1 -1
  72. package/dist/cjs/wallets/in-app/native/helpers/wallet/creation.js +8 -4
  73. package/dist/cjs/wallets/in-app/native/helpers/wallet/creation.js.map +1 -1
  74. package/dist/cjs/wallets/in-app/native/helpers/wallet/recoveryCode.js +16 -6
  75. package/dist/cjs/wallets/in-app/native/helpers/wallet/recoveryCode.js.map +1 -1
  76. package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js +7 -4
  77. package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
  78. package/dist/cjs/wallets/in-app/native/helpers/wallet/sharded-wallet.js +72 -0
  79. package/dist/cjs/wallets/in-app/native/helpers/wallet/sharded-wallet.js.map +1 -0
  80. package/dist/cjs/wallets/in-app/native/in-app.js.map +1 -1
  81. package/dist/cjs/wallets/in-app/native/native-connector.js +105 -243
  82. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  83. package/dist/cjs/wallets/in-app/web/ecosystem.js +13 -7
  84. package/dist/cjs/wallets/in-app/web/ecosystem.js.map +1 -1
  85. package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
  86. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js +2 -0
  87. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
  88. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js +2 -3
  89. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
  90. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +2 -3
  91. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
  92. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +2 -3
  93. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
  94. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +6 -0
  95. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  96. package/dist/cjs/wallets/in-app/web/lib/auth/index.js +1 -2
  97. package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
  98. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +9 -14
  99. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  100. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +13 -13
  101. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  102. package/dist/cjs/wallets/native/create-wallet.js +2 -1
  103. package/dist/cjs/wallets/native/create-wallet.js.map +1 -1
  104. package/dist/esm/contract/actions/compiler-metadata.js +16 -10
  105. package/dist/esm/contract/actions/compiler-metadata.js.map +1 -1
  106. package/dist/esm/contract/deployment/publisher.js +2 -0
  107. package/dist/esm/contract/deployment/publisher.js.map +1 -1
  108. package/dist/esm/contract/deployment/utils/bootstrap.js +3 -2
  109. package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
  110. package/dist/esm/exports/utils.js +1 -0
  111. package/dist/esm/exports/utils.js.map +1 -1
  112. package/dist/esm/exports/wallets.native.js +1 -0
  113. package/dist/esm/exports/wallets.native.js.map +1 -1
  114. package/dist/esm/extensions/erc20/write/transfer.js +1 -0
  115. package/dist/esm/extensions/erc20/write/transfer.js.map +1 -1
  116. package/dist/esm/extensions/erc20/write/transferFrom.js +1 -0
  117. package/dist/esm/extensions/erc20/write/transferFrom.js.map +1 -1
  118. package/dist/esm/extensions/prebuilts/deploy-published.js +6 -3
  119. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  120. package/dist/esm/extensions/vote/types.js +2 -0
  121. package/dist/esm/extensions/vote/types.js.map +1 -1
  122. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +2 -3
  123. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  124. package/dist/esm/react/native/hooks/wallets/useAutoConnect.js +2 -1
  125. package/dist/esm/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
  126. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js +1 -1
  127. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  128. package/dist/esm/react/web/ui/ConnectWallet/Details.js +4 -1
  129. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  130. package/dist/esm/storage/upload.js +19 -0
  131. package/dist/esm/storage/upload.js.map +1 -1
  132. package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js +11 -3
  133. package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
  134. package/dist/esm/transaction/extract-error.js +2 -2
  135. package/dist/esm/transaction/extract-error.js.map +1 -1
  136. package/dist/esm/utils/any-evm/deploy-metadata.js +14 -5
  137. package/dist/esm/utils/any-evm/deploy-metadata.js.map +1 -1
  138. package/dist/esm/utils/fetch.js +2 -2
  139. package/dist/esm/utils/fetch.js.map +1 -1
  140. package/dist/esm/utils/process.js +4 -0
  141. package/dist/esm/utils/process.js.map +1 -0
  142. package/dist/esm/version.js +1 -1
  143. package/dist/esm/version.js.map +1 -1
  144. package/dist/esm/wallets/create-wallet.js +5 -2
  145. package/dist/esm/wallets/create-wallet.js.map +1 -1
  146. package/dist/esm/wallets/in-app/core/authentication/authEndpoint.js +27 -0
  147. package/dist/esm/wallets/in-app/core/authentication/authEndpoint.js.map +1 -0
  148. package/dist/esm/wallets/in-app/core/authentication/jwt.js +27 -0
  149. package/dist/esm/wallets/in-app/core/authentication/jwt.js.map +1 -0
  150. package/dist/esm/wallets/in-app/core/authentication/passkeys.js +3 -14
  151. package/dist/esm/wallets/in-app/core/authentication/passkeys.js.map +1 -1
  152. package/dist/esm/wallets/in-app/core/authentication/types.js +1 -34
  153. package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
  154. package/dist/esm/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.js +15 -13
  155. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -0
  156. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +9 -8
  157. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  158. package/dist/esm/wallets/in-app/core/wallet/index.js +1 -2
  159. package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
  160. package/dist/esm/wallets/in-app/core/wallet/web-wallet.js.map +1 -0
  161. package/dist/esm/wallets/in-app/native/auth/index.js +1 -2
  162. package/dist/esm/wallets/in-app/native/auth/index.js.map +1 -1
  163. package/dist/esm/wallets/in-app/native/auth/native-auth.js +8 -172
  164. package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -1
  165. package/dist/esm/wallets/in-app/native/ecosystem.js +81 -0
  166. package/dist/esm/wallets/in-app/native/ecosystem.js.map +1 -0
  167. package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js +48 -22
  168. package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
  169. package/dist/esm/wallets/in-app/native/helpers/auth/logout.js +4 -4
  170. package/dist/esm/wallets/in-app/native/helpers/auth/logout.js.map +1 -1
  171. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js +29 -54
  172. package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
  173. package/dist/esm/wallets/in-app/native/helpers/storage/local.js +21 -16
  174. package/dist/esm/wallets/in-app/native/helpers/storage/local.js.map +1 -1
  175. package/dist/esm/wallets/in-app/native/helpers/wallet/creation.js +8 -4
  176. package/dist/esm/wallets/in-app/native/helpers/wallet/creation.js.map +1 -1
  177. package/dist/esm/wallets/in-app/native/helpers/wallet/recoveryCode.js +16 -6
  178. package/dist/esm/wallets/in-app/native/helpers/wallet/recoveryCode.js.map +1 -1
  179. package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js +7 -4
  180. package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
  181. package/dist/esm/wallets/in-app/native/helpers/wallet/sharded-wallet.js +68 -0
  182. package/dist/esm/wallets/in-app/native/helpers/wallet/sharded-wallet.js.map +1 -0
  183. package/dist/esm/wallets/in-app/native/in-app.js.map +1 -1
  184. package/dist/esm/wallets/in-app/native/native-connector.js +106 -244
  185. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  186. package/dist/esm/wallets/in-app/web/ecosystem.js +13 -7
  187. package/dist/esm/wallets/in-app/web/ecosystem.js.map +1 -1
  188. package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
  189. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js +2 -0
  190. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
  191. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js +2 -3
  192. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
  193. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +2 -3
  194. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
  195. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +2 -3
  196. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
  197. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +6 -0
  198. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  199. package/dist/esm/wallets/in-app/web/lib/auth/index.js +1 -2
  200. package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
  201. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +9 -14
  202. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  203. package/dist/esm/wallets/in-app/web/lib/web-connector.js +13 -13
  204. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  205. package/dist/esm/wallets/native/create-wallet.js +2 -1
  206. package/dist/esm/wallets/native/create-wallet.js.map +1 -1
  207. package/dist/types/contract/actions/compiler-metadata.d.ts +2 -1
  208. package/dist/types/contract/actions/compiler-metadata.d.ts.map +1 -1
  209. package/dist/types/contract/deployment/publisher.d.ts +2 -0
  210. package/dist/types/contract/deployment/publisher.d.ts.map +1 -1
  211. package/dist/types/contract/deployment/utils/bootstrap.d.ts +1 -0
  212. package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
  213. package/dist/types/exports/utils.d.ts +1 -0
  214. package/dist/types/exports/utils.d.ts.map +1 -1
  215. package/dist/types/exports/wallets.native.d.ts +2 -0
  216. package/dist/types/exports/wallets.native.d.ts.map +1 -1
  217. package/dist/types/extensions/erc20/write/transfer.d.ts +3 -3
  218. package/dist/types/extensions/erc20/write/transfer.d.ts.map +1 -1
  219. package/dist/types/extensions/erc20/write/transferFrom.d.ts +3 -3
  220. package/dist/types/extensions/erc20/write/transferFrom.d.ts.map +1 -1
  221. package/dist/types/extensions/prebuilts/deploy-published.d.ts +2 -0
  222. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  223. package/dist/types/extensions/vote/types.d.ts.map +1 -1
  224. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts +2 -1
  225. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  226. package/dist/types/react/native/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  227. package/dist/types/react/web/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  228. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  229. package/dist/types/storage/upload.d.ts +19 -0
  230. package/dist/types/storage/upload.d.ts.map +1 -1
  231. package/dist/types/transaction/actions/zksync/send-eip712-transaction.d.ts.map +1 -1
  232. package/dist/types/transaction/extract-error.d.ts.map +1 -1
  233. package/dist/types/utils/any-evm/deploy-metadata.d.ts +2 -0
  234. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  235. package/dist/types/utils/fetch.d.ts.map +1 -1
  236. package/dist/types/utils/process.d.ts +2 -0
  237. package/dist/types/utils/process.d.ts.map +1 -0
  238. package/dist/types/version.d.ts +1 -1
  239. package/dist/types/version.d.ts.map +1 -1
  240. package/dist/types/wallets/create-wallet.d.ts.map +1 -1
  241. package/dist/types/wallets/ecosystem/types.d.ts +10 -1
  242. package/dist/types/wallets/ecosystem/types.d.ts.map +1 -1
  243. package/dist/types/wallets/in-app/core/authentication/authEndpoint.d.ts +9 -0
  244. package/dist/types/wallets/in-app/core/authentication/authEndpoint.d.ts.map +1 -0
  245. package/dist/types/wallets/in-app/core/authentication/jwt.d.ts +9 -0
  246. package/dist/types/wallets/in-app/core/authentication/jwt.d.ts.map +1 -0
  247. package/dist/types/wallets/in-app/core/authentication/passkeys.d.ts +3 -3
  248. package/dist/types/wallets/in-app/core/authentication/passkeys.d.ts.map +1 -1
  249. package/dist/types/wallets/in-app/core/authentication/types.d.ts +16 -38
  250. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
  251. package/dist/types/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.d.ts +5 -5
  252. package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -0
  253. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts +3 -2
  254. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
  255. package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
  256. package/dist/types/wallets/in-app/core/wallet/web-wallet.d.ts +11 -0
  257. package/dist/types/wallets/in-app/core/wallet/web-wallet.d.ts.map +1 -0
  258. package/dist/types/wallets/in-app/native/auth/index.d.ts +1 -1
  259. package/dist/types/wallets/in-app/native/auth/index.d.ts.map +1 -1
  260. package/dist/types/wallets/in-app/native/auth/native-auth.d.ts +5 -16
  261. package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -1
  262. package/dist/types/wallets/in-app/native/ecosystem.d.ts +59 -0
  263. package/dist/types/wallets/in-app/native/ecosystem.d.ts.map +1 -0
  264. package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts +20 -4
  265. package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts.map +1 -1
  266. package/dist/types/wallets/in-app/native/helpers/auth/logout.d.ts +6 -1
  267. package/dist/types/wallets/in-app/native/helpers/auth/logout.d.ts.map +1 -1
  268. package/dist/types/wallets/in-app/native/helpers/auth/middleware.d.ts +7 -35
  269. package/dist/types/wallets/in-app/native/helpers/auth/middleware.d.ts.map +1 -1
  270. package/dist/types/wallets/in-app/native/helpers/storage/local.d.ts +0 -3
  271. package/dist/types/wallets/in-app/native/helpers/storage/local.d.ts.map +1 -1
  272. package/dist/types/wallets/in-app/native/helpers/wallet/creation.d.ts +11 -3
  273. package/dist/types/wallets/in-app/native/helpers/wallet/creation.d.ts.map +1 -1
  274. package/dist/types/wallets/in-app/native/helpers/wallet/recoveryCode.d.ts +9 -2
  275. package/dist/types/wallets/in-app/native/helpers/wallet/recoveryCode.d.ts.map +1 -1
  276. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts +4 -1
  277. package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts.map +1 -1
  278. package/dist/types/wallets/in-app/native/helpers/wallet/sharded-wallet.d.ts +17 -0
  279. package/dist/types/wallets/in-app/native/helpers/wallet/sharded-wallet.d.ts.map +1 -0
  280. package/dist/types/wallets/in-app/native/native-connector.d.ts +4 -8
  281. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  282. package/dist/types/wallets/in-app/web/ecosystem.d.ts.map +1 -1
  283. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +1 -1
  284. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +1 -1
  285. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts +3 -1
  286. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +1 -1
  287. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts +3 -1
  288. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +1 -1
  289. package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts +3 -1
  290. package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +1 -1
  291. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
  292. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +1 -1
  293. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
  294. package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts +3 -3
  295. package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -1
  296. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +1 -1
  297. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  298. package/dist/types/wallets/native/create-wallet.d.ts.map +1 -1
  299. package/package.json +1 -1
  300. package/src/contract/actions/compiler-metadata.ts +20 -11
  301. package/src/contract/deployment/publisher.ts +4 -0
  302. package/src/contract/deployment/utils/bootstrap.ts +4 -1
  303. package/src/exports/utils.ts +1 -0
  304. package/src/exports/wallets.native.ts +6 -0
  305. package/src/extensions/erc1155/drop1155.test.ts +4 -4
  306. package/src/extensions/erc20/drop20.test.ts +4 -4
  307. package/src/extensions/erc20/write/transfer.ts +15 -9
  308. package/src/extensions/erc20/write/transferFrom.ts +15 -9
  309. package/src/extensions/erc721/drop721.test.ts +4 -4
  310. package/src/extensions/prebuilts/deploy-published.test.ts +1 -1
  311. package/src/extensions/prebuilts/deploy-published.ts +8 -1
  312. package/src/extensions/vote/types.ts +2 -0
  313. package/src/react/core/hooks/wallets/useAutoConnect.ts +3 -2
  314. package/src/react/native/hooks/wallets/useAutoConnect.ts +9 -4
  315. package/src/react/web/hooks/wallets/useAutoConnect.ts +1 -0
  316. package/src/react/web/ui/ConnectWallet/Details.tsx +4 -1
  317. package/src/storage/upload.ts +19 -0
  318. package/src/transaction/actions/zksync/send-eip712-transaction.ts +21 -20
  319. package/src/transaction/extract-error.ts +2 -3
  320. package/src/utils/any-evm/deploy-metadata.ts +26 -11
  321. package/src/utils/fetch.ts +2 -4
  322. package/src/utils/process.ts +3 -0
  323. package/src/version.ts +1 -1
  324. package/src/wallets/create-wallet.ts +7 -5
  325. package/src/wallets/ecosystem/types.ts +10 -1
  326. package/src/wallets/in-app/core/authentication/authEndpoint.ts +42 -0
  327. package/src/wallets/in-app/core/authentication/jwt.ts +37 -0
  328. package/src/wallets/in-app/core/authentication/passkeys.ts +7 -17
  329. package/src/wallets/in-app/core/authentication/types.ts +33 -39
  330. package/src/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.ts +24 -25
  331. package/src/wallets/in-app/core/wallet/in-app-core.ts +16 -7
  332. package/src/wallets/in-app/core/wallet/index.ts +1 -2
  333. package/src/wallets/in-app/core/wallet/web-wallet.ts +14 -0
  334. package/src/wallets/in-app/native/auth/index.ts +5 -6
  335. package/src/wallets/in-app/native/auth/native-auth.ts +14 -242
  336. package/src/wallets/in-app/native/ecosystem.ts +89 -0
  337. package/src/wallets/in-app/native/helpers/api/fetchers.ts +54 -25
  338. package/src/wallets/in-app/native/helpers/auth/logout.ts +9 -8
  339. package/src/wallets/in-app/native/helpers/auth/middleware.ts +39 -82
  340. package/src/wallets/in-app/native/helpers/storage/local.ts +22 -23
  341. package/src/wallets/in-app/native/helpers/wallet/creation.ts +15 -5
  342. package/src/wallets/in-app/native/helpers/wallet/recoveryCode.ts +21 -12
  343. package/src/wallets/in-app/native/helpers/wallet/retrieval.ts +14 -3
  344. package/src/wallets/in-app/native/helpers/wallet/sharded-wallet.ts +72 -0
  345. package/src/wallets/in-app/native/in-app.ts +1 -1
  346. package/src/wallets/in-app/native/native-connector.ts +120 -297
  347. package/src/wallets/in-app/web/ecosystem.ts +14 -8
  348. package/src/wallets/in-app/web/in-app.ts +1 -1
  349. package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +3 -1
  350. package/src/wallets/in-app/web/lib/actions/sign-message.enclave.ts +4 -2
  351. package/src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts +4 -2
  352. package/src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts +4 -2
  353. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +7 -0
  354. package/src/wallets/in-app/web/lib/auth/index.ts +6 -7
  355. package/src/wallets/in-app/web/lib/iframe-wallet.ts +17 -24
  356. package/src/wallets/in-app/web/lib/web-connector.ts +26 -23
  357. package/src/wallets/native/create-wallet.ts +5 -3
  358. package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js +0 -85
  359. package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js.map +0 -1
  360. package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js.map +0 -1
  361. package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js +0 -15
  362. package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js.map +0 -1
  363. package/dist/cjs/wallets/in-app/web/lib/web-wallet.js.map +0 -1
  364. package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js +0 -82
  365. package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js.map +0 -1
  366. package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js.map +0 -1
  367. package/dist/esm/wallets/in-app/web/lib/get-auth-token.js +0 -12
  368. package/dist/esm/wallets/in-app/web/lib/get-auth-token.js.map +0 -1
  369. package/dist/esm/wallets/in-app/web/lib/web-wallet.js.map +0 -1
  370. package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts +0 -13
  371. package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts.map +0 -1
  372. package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts.map +0 -1
  373. package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts +0 -4
  374. package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts.map +0 -1
  375. package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts +0 -15
  376. package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts.map +0 -1
  377. package/src/wallets/in-app/core/wallet/ecosystem-core.ts +0 -121
  378. package/src/wallets/in-app/web/lib/get-auth-token.ts +0 -18
  379. package/src/wallets/in-app/web/lib/web-wallet.ts +0 -23
  380. /package/dist/cjs/wallets/in-app/{web/lib → core/wallet}/web-wallet.js +0 -0
  381. /package/dist/esm/wallets/in-app/{web/lib → core/wallet}/web-wallet.js +0 -0
@@ -0,0 +1,14 @@
1
+ import type { Account } from "../../../interfaces/wallet.js";
2
+ import type {
3
+ AuthResultAndRecoveryCode,
4
+ GetUser,
5
+ } from "../authentication/types.js";
6
+
7
+ /**
8
+ *
9
+ */
10
+ export interface IWebWallet {
11
+ postWalletSetUp(authResult: AuthResultAndRecoveryCode): Promise<void>;
12
+ getUserWalletStatus(): Promise<GetUser>;
13
+ getAccount(): Promise<Account>;
14
+ }
@@ -1,9 +1,8 @@
1
1
  import type { ThirdwebClient } from "../../../../client/client.js";
2
- import {
3
- type AuthArgsType,
4
- type GetAuthenticatedUserParams,
5
- type PreAuthArgsType,
6
- UserWalletStatus,
2
+ import type {
3
+ AuthArgsType,
4
+ GetAuthenticatedUserParams,
5
+ PreAuthArgsType,
7
6
  } from "../../core/authentication/types.js";
8
7
  import { getOrCreateInAppWalletConnector } from "../../core/wallet/in-app-core.js";
9
8
  import type { Ecosystem } from "../../core/wallet/types.js";
@@ -47,7 +46,7 @@ async function getAuthenticatedUser(options: GetAuthenticatedUserParams) {
47
46
  const connector = await getInAppWalletConnector(client);
48
47
  const user = await connector.getUser();
49
48
  switch (user.status) {
50
- case UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED: {
49
+ case "Logged In, Wallet Initialized": {
51
50
  return user;
52
51
  }
53
52
  }
@@ -1,68 +1,27 @@
1
1
  import * as WebBrowser from "expo-web-browser";
2
- import type { Chain } from "../../../../chains/types.js";
3
2
  import type { ThirdwebClient } from "../../../../client/client.js";
4
- import { nativeLocalStorage } from "../../../../utils/storage/nativeStorage.js";
5
- import type { Wallet } from "../../../interfaces/wallet.js";
3
+ import type { ClientScopedStorage } from "../../core/authentication/client-scoped-storage.js";
6
4
  import { getLoginUrl } from "../../core/authentication/getLoginPath.js";
7
- import { guestAuthenticate } from "../../core/authentication/guest.js";
8
- import { siweAuthenticate } from "../../core/authentication/siwe.js";
9
5
  import type {
10
6
  AuthStoredTokenWithCookieReturnType,
11
- MultiStepAuthArgsType,
12
7
  OAuthRedirectObject,
13
8
  } from "../../core/authentication/types.js";
14
9
  import type { Ecosystem } from "../../core/wallet/types.js";
15
- import { verifyOtp } from "../../web/lib/auth/otp.js";
16
- import {
17
- deleteAccount,
18
- getSessionHeaders,
19
- verifyClientId,
20
- } from "../helpers/api/fetchers.js";
21
- import { postAuth, postAuthUserManaged } from "../helpers/auth/middleware.js";
22
- import {
23
- ROUTE_AUTH_ENDPOINT_CALLBACK,
24
- ROUTE_AUTH_JWT_CALLBACK,
25
- } from "../helpers/constants.js";
10
+ import { deleteAccount, verifyClientId } from "../helpers/api/fetchers.js";
26
11
  import { createErrorMessage } from "../helpers/errors.js";
27
12
 
28
- export async function otpLogin(
29
- options: MultiStepAuthArgsType & {
30
- client: ThirdwebClient;
31
- ecosystem?: Ecosystem;
32
- },
33
- ): Promise<AuthStoredTokenWithCookieReturnType> {
34
- const { storedToken } = await verifyOtp(options);
35
- try {
36
- const toStoreToken: AuthStoredTokenWithCookieReturnType["storedToken"] = {
37
- jwtToken: storedToken.jwtToken,
38
- authDetails: storedToken.authDetails,
39
- authProvider: storedToken.authProvider,
40
- developerClientId: storedToken.developerClientId,
41
- cookieString: storedToken.cookieString,
42
- // we should always store the jwt cookie since there's no concept of cookie in react native
43
- shouldStoreCookieString: true,
44
- isNewUser: storedToken.isNewUser,
45
- };
46
-
47
- await postAuth({ storedToken: toStoreToken, client: options.client });
48
-
49
- return { storedToken };
50
- } catch (e) {
51
- throw new Error(
52
- createErrorMessage("Malformed response from post authentication", e),
53
- );
54
- }
55
- }
56
-
57
- export async function authenticate(
58
- auth: OAuthRedirectObject,
59
- client: ThirdwebClient,
60
- ): Promise<AuthStoredTokenWithCookieReturnType> {
13
+ export async function socialAuth(args: {
14
+ auth: OAuthRedirectObject;
15
+ client: ThirdwebClient;
16
+ ecosystem?: Ecosystem;
17
+ }): Promise<AuthStoredTokenWithCookieReturnType> {
18
+ const { auth, client, ecosystem } = args;
61
19
  const loginUrl = getLoginUrl({
62
20
  authOption: auth.strategy,
63
21
  client,
64
22
  mode: "window",
65
23
  redirectUrl: auth.redirectUrl,
24
+ ecosystem,
66
25
  });
67
26
 
68
27
  const result = await WebBrowser.openAuthSessionAsync(
@@ -99,204 +58,17 @@ export async function authenticate(
99
58
  return JSON.parse(authResult);
100
59
  }
101
60
 
102
- export async function socialLogin(
103
- auth: OAuthRedirectObject,
104
- client: ThirdwebClient,
105
- ): Promise<AuthStoredTokenWithCookieReturnType> {
106
- const { storedToken } = await authenticate(auth, client);
107
- try {
108
- const toStoreToken: AuthStoredTokenWithCookieReturnType["storedToken"] = {
109
- jwtToken: storedToken.jwtToken,
110
- authDetails: storedToken.authDetails,
111
- authProvider: storedToken.authProvider,
112
- developerClientId: storedToken.developerClientId,
113
- cookieString: storedToken.cookieString,
114
- // we should always store the jwt cookie since there's no concept of cookie in react native
115
- shouldStoreCookieString: true,
116
- isNewUser: storedToken.isNewUser,
117
- };
118
-
119
- await postAuth({ storedToken: toStoreToken, client });
120
-
121
- return { storedToken };
122
- } catch (e) {
123
- throw new Error(
124
- createErrorMessage("Malformed response from post authentication", e),
125
- );
126
- }
127
- }
128
-
129
- export async function siweLogin(
130
- client: ThirdwebClient,
131
- wallet: Wallet,
132
- chain: Chain,
133
- ecosystem?: Ecosystem,
134
- ): Promise<AuthStoredTokenWithCookieReturnType> {
135
- const { storedToken } = await siweAuthenticate({
136
- client,
137
- ecosystem,
138
- wallet,
139
- chain,
140
- });
141
- try {
142
- const toStoreToken: AuthStoredTokenWithCookieReturnType["storedToken"] = {
143
- jwtToken: storedToken.jwtToken,
144
- authDetails: storedToken.authDetails,
145
- authProvider: storedToken.authProvider,
146
- developerClientId: storedToken.developerClientId,
147
- cookieString: storedToken.cookieString,
148
- // we should always store the jwt cookie since there's no concept of cookie in react native
149
- shouldStoreCookieString: true,
150
- isNewUser: storedToken.isNewUser,
151
- };
152
-
153
- await postAuth({ storedToken: toStoreToken, client });
154
-
155
- return { storedToken };
156
- } catch (e) {
157
- throw new Error(
158
- createErrorMessage("Malformed response from post authentication", e),
159
- );
160
- }
161
- }
162
-
163
- export async function guestLogin(
164
- client: ThirdwebClient,
165
- ecosystem?: Ecosystem,
166
- ): Promise<AuthStoredTokenWithCookieReturnType> {
167
- const { storedToken } = await guestAuthenticate({
168
- client,
169
- ecosystem,
170
- storage: nativeLocalStorage,
171
- });
172
- try {
173
- const toStoreToken: AuthStoredTokenWithCookieReturnType["storedToken"] = {
174
- jwtToken: storedToken.jwtToken,
175
- authDetails: storedToken.authDetails,
176
- authProvider: storedToken.authProvider,
177
- developerClientId: storedToken.developerClientId,
178
- cookieString: storedToken.cookieString,
179
- // we should always store the jwt cookie since there's no concept of cookie in react native
180
- shouldStoreCookieString: true,
181
- isNewUser: storedToken.isNewUser,
182
- };
183
-
184
- await postAuth({ storedToken: toStoreToken, client });
185
-
186
- return { storedToken };
187
- } catch (e) {
188
- throw new Error(
189
- createErrorMessage("Malformed response from post authentication", e),
190
- );
191
- }
192
- }
193
-
194
- export async function customJwt(
195
- authOptions: { jwt: string; password: string },
196
- client: ThirdwebClient,
197
- ): Promise<AuthStoredTokenWithCookieReturnType> {
198
- const { jwt, password } = authOptions;
199
-
200
- const resp = await fetch(ROUTE_AUTH_JWT_CALLBACK, {
201
- method: "POST",
202
- headers: {
203
- ...getSessionHeaders(),
204
- },
205
- body: JSON.stringify({
206
- jwt: jwt,
207
- developerClientId: client.clientId,
208
- }),
209
- });
210
- if (!resp.ok) {
211
- const error = await resp.json();
212
- throw new Error(`JWT authentication error: ${error.message}`);
213
- }
214
-
215
- try {
216
- const { verifiedToken, verifiedTokenJwtString } = await resp.json();
217
-
218
- const toStoreToken: AuthStoredTokenWithCookieReturnType["storedToken"] = {
219
- jwtToken: verifiedToken.jwtToken,
220
- authProvider: verifiedToken.authProvider,
221
- authDetails: {
222
- ...verifiedToken.authDetails,
223
- email: verifiedToken.authDetails.email,
224
- },
225
- developerClientId: verifiedToken.developerClientId,
226
- cookieString: verifiedTokenJwtString,
227
- shouldStoreCookieString: true,
228
- isNewUser: verifiedToken.isNewUser,
229
- };
230
-
231
- await postAuthUserManaged(toStoreToken, client, password);
232
-
233
- return { storedToken: verifiedToken };
234
- } catch (e) {
235
- throw new Error(
236
- createErrorMessage("Malformed response from post jwt authentication", e),
237
- );
238
- }
239
- }
240
-
241
- export async function authEndpoint(
242
- authOptions: { payload: string; encryptionKey: string },
243
- client: ThirdwebClient,
244
- ): Promise<AuthStoredTokenWithCookieReturnType> {
245
- const { payload, encryptionKey } = authOptions;
246
-
247
- const resp = await fetch(ROUTE_AUTH_ENDPOINT_CALLBACK, {
248
- method: "POST",
249
- headers: {
250
- ...getSessionHeaders(),
251
- },
252
- body: JSON.stringify({
253
- payload: payload,
254
- developerClientId: client.clientId,
255
- }),
256
- });
257
- if (!resp.ok) {
258
- const error = await resp.json();
259
- throw new Error(
260
- `Custom auth endpoint authentication error: ${error.message}`,
261
- );
262
- }
263
-
264
- try {
265
- const { verifiedToken, verifiedTokenJwtString } = await resp.json();
266
-
267
- const toStoreToken: AuthStoredTokenWithCookieReturnType["storedToken"] = {
268
- jwtToken: verifiedToken.jwtToken,
269
- authProvider: verifiedToken.authProvider,
270
- authDetails: {
271
- ...verifiedToken.authDetails,
272
- email: verifiedToken.authDetails.email,
273
- },
274
- developerClientId: verifiedToken.developerClientId,
275
- cookieString: verifiedTokenJwtString,
276
- shouldStoreCookieString: true,
277
- isNewUser: verifiedToken.isNewUser,
278
- };
279
-
280
- await postAuthUserManaged(toStoreToken, client, encryptionKey);
281
-
282
- return { storedToken: verifiedToken };
283
- } catch (e) {
284
- throw new Error(
285
- createErrorMessage(
286
- "Malformed response from post auth_endpoint authentication",
287
- e,
288
- ),
289
- );
290
- }
291
- }
292
-
293
61
  export async function deleteActiveAccount(options: {
294
62
  client: ThirdwebClient;
63
+ storage: ClientScopedStorage;
295
64
  }): Promise<boolean> {
296
65
  await verifyClientId(options.client);
297
66
 
298
67
  try {
299
- return deleteAccount(options.client);
68
+ return deleteAccount({
69
+ client: options.client,
70
+ storage: options.storage,
71
+ });
300
72
  } catch (e) {
301
73
  throw new Error(createErrorMessage("Error deleting the active account", e));
302
74
  }
@@ -0,0 +1,89 @@
1
+ import type { ThirdwebClient } from "../../../client/client.js";
2
+ import type { Wallet } from "../../interfaces/wallet.js";
3
+ import type {
4
+ CreateWalletArgs,
5
+ EcosystemWalletId,
6
+ } from "../../wallet-types.js";
7
+ import { createInAppWallet } from "../core/wallet/in-app-core.js";
8
+
9
+ /**
10
+ * Creates an [Ecosystem Wallet](https://portal.thirdweb.com/connect/ecosystems/overview) based on various authentication methods.
11
+ *
12
+ * Available authentication methods:
13
+ * - Email
14
+ * - Phone
15
+ * - Passkey
16
+ * - Google
17
+ * - Apple
18
+ * - Facebook
19
+ * - Discord
20
+ * - LINE
21
+ * - X
22
+ * - Farcaster
23
+ *
24
+ * Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
25
+ *
26
+ * Refer to [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet) for detailed usage examples.
27
+ *
28
+ * @param createOptions - configuration options
29
+ * Refer to [EcosystemWalletCreationOptions](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletCreationOptions) for more details.
30
+ * @returns The created ecosystem wallet.
31
+ * @example
32
+ *
33
+ * ### Connect to an ecosystem wallet
34
+ *
35
+ * ```ts
36
+ * import { ecosystemWallet } from "thirdweb/wallets";
37
+ *
38
+ * const wallet = ecosystemWallet("ecosystem.hooli");
39
+ *
40
+ * const account = await wallet.connect({
41
+ * client,
42
+ * chain,
43
+ * strategy: "google",
44
+ * });
45
+ * ```
46
+ *
47
+ * [View all connection options](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletConnectionOptions)
48
+ *
49
+ * ### Connect to a restricted ecosystem wallet with your designated partner ID
50
+ *
51
+ * The parnter ID will be provided to you by the ecosystem with which you're integrating.
52
+ *
53
+ * ```ts
54
+ * import { ecosystemWallet } from "thirdweb/wallets";
55
+ * const wallet = ecosystemWallet("ecosystem.hooli", {
56
+ * partnerId: "..."
57
+ * });
58
+ * ```
59
+ *
60
+ * Refer to [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet) for more usage examples.
61
+ *
62
+ * @wallet
63
+ */
64
+ export function ecosystemWallet(
65
+ ...args: CreateWalletArgs<EcosystemWalletId>
66
+ ): Wallet<EcosystemWalletId> {
67
+ const [ecosystemId, createOptions] = args;
68
+ const ecosystem = {
69
+ id: ecosystemId,
70
+ partnerId: createOptions?.partnerId,
71
+ };
72
+ return createInAppWallet({
73
+ ecosystem,
74
+ createOptions: {
75
+ auth: {
76
+ ...createOptions?.auth,
77
+ options: [], // controlled by ecosystem
78
+ },
79
+ },
80
+ connectorFactory: async (client: ThirdwebClient) => {
81
+ const { InAppNativeConnector } = await import("./native-connector.js");
82
+ return new InAppNativeConnector({
83
+ client,
84
+ ecosystem,
85
+ // TODO (enclave): passkeyDomain for ecosystem wallets
86
+ });
87
+ },
88
+ }) as Wallet<EcosystemWalletId>;
89
+ }
@@ -2,6 +2,7 @@ import type { ThirdwebClient } from "../../../../../client/client.js";
2
2
  import type { Hex } from "../../../../../utils/encoding/hex.js";
3
3
  import { getClientFetch } from "../../../../../utils/fetch.js";
4
4
  import { randomBytesHex } from "../../../../../utils/random.js";
5
+ import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
5
6
  import type { UserDetailsApiType } from "../../../core/authentication/types.js";
6
7
  import {
7
8
  ROUTE_EMBEDDED_WALLET_DETAILS,
@@ -10,7 +11,6 @@ import {
10
11
  THIRDWEB_SESSION_NONCE_HEADER,
11
12
  } from "../constants.js";
12
13
  import { createErrorMessage } from "../errors.js";
13
- import { getAuthTokenClient } from "../storage/local.js";
14
14
 
15
15
  const EMBEDDED_WALLET_TOKEN_HEADER = "embedded-wallet-token";
16
16
  const PAPER_CLIENT_ID_HEADER = "x-thirdweb-client-id";
@@ -46,13 +46,15 @@ export const verifyClientId = async (client: ThirdwebClient) => {
46
46
  };
47
47
  };
48
48
 
49
- export const authFetchEmbeddedWalletUser = async (
50
- client: ThirdwebClient,
51
- url: string,
52
- props: Parameters<typeof fetch>[1],
53
- retries = 3,
54
- ): Promise<Response> => {
55
- const authTokenClient = await getAuthTokenClient(client.clientId);
49
+ export async function authFetchEmbeddedWalletUser(args: {
50
+ client: ThirdwebClient;
51
+ url: string;
52
+ props: Parameters<typeof fetch>[1];
53
+ storage: ClientScopedStorage;
54
+ retries?: number;
55
+ }): Promise<Response> {
56
+ const { client, url, props, storage, retries = 0 } = args;
57
+ const authTokenClient = await storage.getAuthCookie();
56
58
  const params = { ...props };
57
59
  params.headers = params?.headers
58
60
  ? {
@@ -76,20 +78,22 @@ export const authFetchEmbeddedWalletUser = async (
76
78
  } catch (e) {
77
79
  if (retries > 0) {
78
80
  await new Promise((resolve) => setTimeout(resolve, 500));
79
- return await authFetchEmbeddedWalletUser(
81
+ return await authFetchEmbeddedWalletUser({
80
82
  client,
81
83
  url,
82
- params,
83
- retries - 1,
84
- );
84
+ props: params,
85
+ storage,
86
+ retries: retries - 1,
87
+ });
85
88
  }
86
89
  throw e;
87
90
  }
88
- };
91
+ }
89
92
 
90
93
  export async function fetchUserDetails(args: {
91
94
  email?: string;
92
95
  client: ThirdwebClient;
96
+ storage: ClientScopedStorage;
93
97
  }): Promise<UserDetailsApiType> {
94
98
  const url = new URL(ROUTE_EMBEDDED_WALLET_DETAILS);
95
99
  if (args) {
@@ -97,8 +101,13 @@ export async function fetchUserDetails(args: {
97
101
  url.searchParams.append("email", args.email ?? "none");
98
102
  url.searchParams.append("clientId", args.client.clientId);
99
103
  }
100
- const resp = await authFetchEmbeddedWalletUser(args.client, url.href, {
101
- method: "GET",
104
+ const resp = await authFetchEmbeddedWalletUser({
105
+ client: args.client,
106
+ url: url.href,
107
+ props: {
108
+ method: "GET",
109
+ },
110
+ storage: args.storage,
102
111
  });
103
112
  if (!resp.ok) {
104
113
  const error = await resp.json();
@@ -115,6 +124,7 @@ export async function storeUserShares({
115
124
  walletAddress,
116
125
  maybeEncryptedRecoveryShares,
117
126
  authShare,
127
+ storage,
118
128
  }: {
119
129
  client: ThirdwebClient;
120
130
  walletAddress: string;
@@ -123,11 +133,12 @@ export async function storeUserShares({
123
133
  isClientEncrypted: boolean;
124
134
  }[];
125
135
  authShare?: string;
136
+ storage: ClientScopedStorage;
126
137
  }) {
127
- const resp = await authFetchEmbeddedWalletUser(
138
+ const resp = await authFetchEmbeddedWalletUser({
128
139
  client,
129
- ROUTE_STORE_USER_SHARES,
130
- {
140
+ url: ROUTE_STORE_USER_SHARES,
141
+ props: {
131
142
  method: "POST",
132
143
  headers: { "Content-Type": "application/json" },
133
144
  body: JSON.stringify({
@@ -136,7 +147,8 @@ export async function storeUserShares({
136
147
  authShare,
137
148
  }),
138
149
  },
139
- );
150
+ storage,
151
+ });
140
152
 
141
153
  if (!resp.ok) {
142
154
  const error = await resp.json();
@@ -151,9 +163,18 @@ export async function storeUserShares({
151
163
  }
152
164
  }
153
165
 
154
- export async function getUserShares(client: ThirdwebClient, getShareUrl: URL) {
155
- const resp = await authFetchEmbeddedWalletUser(client, getShareUrl.href, {
156
- method: "GET",
166
+ export async function getUserShares(args: {
167
+ client: ThirdwebClient;
168
+ getShareUrl: URL;
169
+ storage: ClientScopedStorage;
170
+ }) {
171
+ const resp = await authFetchEmbeddedWalletUser({
172
+ client: args.client,
173
+ url: args.getShareUrl.href,
174
+ props: {
175
+ method: "GET",
176
+ },
177
+ storage: args.storage,
157
178
  });
158
179
  if (!resp.ok) {
159
180
  const error = await resp.json();
@@ -179,10 +200,18 @@ export async function getUserShares(client: ThirdwebClient, getShareUrl: URL) {
179
200
  }
180
201
  }
181
202
 
182
- export async function deleteAccount(client: ThirdwebClient) {
203
+ export async function deleteAccount(args: {
204
+ client: ThirdwebClient;
205
+ storage: ClientScopedStorage;
206
+ }) {
183
207
  const url = new URL(ROUTE_EMBEDDED_WALLET_DETAILS);
184
- const resp = await authFetchEmbeddedWalletUser(client, url.href, {
185
- method: "DELETE",
208
+ const resp = await authFetchEmbeddedWalletUser({
209
+ client: args.client,
210
+ url: url.href,
211
+ props: {
212
+ method: "DELETE",
213
+ },
214
+ storage: args.storage,
186
215
  });
187
216
  if (!resp.ok) {
188
217
  const error = await resp.json();
@@ -1,12 +1,13 @@
1
+ import type { ThirdwebClient } from "../../../../../client/client.js";
2
+ import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
1
3
  import type { LogoutReturnType } from "../../../core/authentication/types.js";
2
- import {
3
- removeAuthTokenInClient,
4
- removeLoggedInWalletUserId,
5
- } from "../storage/local.js";
6
-
7
- export async function logoutUser(clientId: string): Promise<LogoutReturnType> {
8
- const isLoggedUserOutIncognito = await removeAuthTokenInClient(clientId);
9
- await removeLoggedInWalletUserId(clientId);
4
+ import { removeLoggedInWalletUserId } from "../storage/local.js";
10
5
 
6
+ export async function logoutUser(args: {
7
+ client: ThirdwebClient;
8
+ storage: ClientScopedStorage;
9
+ }): Promise<LogoutReturnType> {
10
+ const isLoggedUserOutIncognito = await args.storage.removeAuthCookie();
11
+ await removeLoggedInWalletUserId(args.client.clientId); // TODO (enclave): move this to client scoped storage
11
12
  return { success: isLoggedUserOutIncognito };
12
13
  }