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
@@ -1,10 +1,11 @@
1
- import type { Chain } from "../../../chains/types.js";
2
1
  import type { ThirdwebClient } from "../../../client/client.js";
3
2
  import { stringify } from "../../../utils/json.js";
4
3
  import { nativeLocalStorage } from "../../../utils/storage/nativeStorage.js";
5
- import type { Account, Wallet } from "../../interfaces/wallet.js";
4
+ import type { Account } from "../../interfaces/wallet.js";
5
+ import { authEndpoint } from "../core/authentication/authEndpoint.js";
6
6
  import { ClientScopedStorage } from "../core/authentication/client-scoped-storage.js";
7
7
  import { guestAuthenticate } from "../core/authentication/guest.js";
8
+ import { customJwt } from "../core/authentication/jwt.js";
8
9
  import {
9
10
  getLinkedProfilesInternal,
10
11
  linkAccount,
@@ -14,35 +15,25 @@ import {
14
15
  registerPasskey,
15
16
  } from "../core/authentication/passkeys.js";
16
17
  import { siweAuthenticate } from "../core/authentication/siwe.js";
17
- import {
18
- type AuthArgsType,
19
- type AuthLoginReturnType,
20
- type AuthStoredTokenWithCookieReturnType,
21
- type GetUser,
22
- type LogoutReturnType,
23
- type MultiStepAuthArgsType,
24
- type MultiStepAuthProviderType,
25
- type OAuthRedirectObject,
26
- UserWalletStatus,
18
+ import type {
19
+ AuthArgsType,
20
+ AuthLoginReturnType,
21
+ AuthStoredTokenWithCookieReturnType,
22
+ GetUser,
23
+ LogoutReturnType,
24
+ MultiStepAuthArgsType,
25
+ MultiStepAuthProviderType,
26
+ SingleStepAuthArgsType,
27
27
  } from "../core/authentication/types.js";
28
28
  import type { InAppConnector } from "../core/interfaces/connector.js";
29
+ import { EnclaveWallet } from "../core/wallet/enclave-wallet.js";
29
30
  import type { Ecosystem } from "../core/wallet/types.js";
31
+ import type { IWebWallet } from "../core/wallet/web-wallet.js";
32
+ import { getUserStatus } from "../web/lib/actions/get-enclave-user-status.js";
30
33
  import { sendOtp, verifyOtp } from "../web/lib/auth/otp.js";
31
- import {
32
- authEndpoint,
33
- authenticate,
34
- customJwt,
35
- deleteActiveAccount,
36
- guestLogin,
37
- otpLogin,
38
- siweLogin,
39
- socialLogin,
40
- } from "./auth/native-auth.js";
41
- import { fetchUserDetails } from "./helpers/api/fetchers.js";
34
+ import { deleteActiveAccount, socialAuth } from "./auth/native-auth.js";
42
35
  import { logoutUser } from "./helpers/auth/logout.js";
43
- import { postAuth } from "./helpers/auth/middleware.js";
44
- import { getWalletUserDetails } from "./helpers/storage/local.js";
45
- import { getExistingUserAccount } from "./helpers/wallet/retrieval.js";
36
+ import { ShardedWallet } from "./helpers/wallet/sharded-wallet.js";
46
37
 
47
38
  type NativeConnectorOptions = {
48
39
  client: ThirdwebClient;
@@ -55,6 +46,7 @@ export class InAppNativeConnector implements InAppConnector {
55
46
  private ecosystem?: Ecosystem;
56
47
  private passkeyDomain?: string;
57
48
  private localStorage: ClientScopedStorage;
49
+ private wallet?: IWebWallet;
58
50
 
59
51
  constructor(options: NativeConnectorOptions) {
60
52
  this.client = options.client;
@@ -67,37 +59,57 @@ export class InAppNativeConnector implements InAppConnector {
67
59
  });
68
60
  }
69
61
 
70
- async getUser(): Promise<GetUser> {
71
- const localData = await getWalletUserDetails(this.client.clientId);
72
- const userStatus = await fetchUserDetails({
62
+ async initializeWallet(authToken?: string) {
63
+ const storedAuthToken = await this.localStorage.getAuthCookie();
64
+ if (!authToken && storedAuthToken === null) {
65
+ throw new Error(
66
+ "No auth token provided and no stored auth token found to initialize the wallet",
67
+ );
68
+ }
69
+ const user = await getUserStatus({
70
+ authToken: authToken || (storedAuthToken as string),
73
71
  client: this.client,
74
- email: localData?.email,
72
+ ecosystem: this.ecosystem,
75
73
  });
76
- if (userStatus.status === UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED) {
77
- return {
78
- status: userStatus.status,
79
- authDetails: userStatus.storedToken.authDetails,
80
- walletAddress: userStatus.walletAddress,
81
- account: await this.getAccount(),
82
- };
74
+ if (!user) {
75
+ throw new Error("Cannot initialize wallet, no user logged in");
76
+ }
77
+ const wallet = user.wallets[0];
78
+ // TODO (enclaves): Migration to enclave wallet if sharded
79
+ if (wallet && wallet.type === "enclave") {
80
+ this.wallet = new EnclaveWallet({
81
+ client: this.client,
82
+ ecosystem: this.ecosystem,
83
+ address: wallet.address,
84
+ storage: this.localStorage,
85
+ });
86
+ } else {
87
+ this.wallet = new ShardedWallet({
88
+ client: this.client,
89
+ storage: this.localStorage,
90
+ });
83
91
  }
84
- if (userStatus.status === UserWalletStatus.LOGGED_IN_NEW_DEVICE) {
85
- return {
86
- status: UserWalletStatus.LOGGED_IN_WALLET_UNINITIALIZED,
87
- authDetails: userStatus.storedToken.authDetails,
88
- };
92
+ }
93
+
94
+ async getUser(): Promise<GetUser> {
95
+ if (!this.wallet) {
96
+ const localAuthToken = await this.localStorage.getAuthCookie();
97
+ if (!localAuthToken) {
98
+ return { status: "Logged Out" };
99
+ }
100
+ await this.initializeWallet(localAuthToken);
89
101
  }
90
- if (userStatus.status === UserWalletStatus.LOGGED_IN_WALLET_UNINITIALIZED) {
91
- return {
92
- status: UserWalletStatus.LOGGED_IN_WALLET_UNINITIALIZED,
93
- authDetails: userStatus.storedToken.authDetails,
94
- };
102
+ if (!this.wallet) {
103
+ throw new Error("Wallet not initialized");
95
104
  }
96
- // Logged out
97
- return { status: UserWalletStatus.LOGGED_OUT };
105
+ return this.wallet.getUserWalletStatus();
98
106
  }
107
+
99
108
  getAccount(): Promise<Account> {
100
- return getExistingUserAccount({ client: this.client });
109
+ if (!this.wallet) {
110
+ throw new Error("Wallet not initialized");
111
+ }
112
+ return this.wallet.getAccount();
101
113
  }
102
114
 
103
115
  preAuthenticate(args: MultiStepAuthProviderType): Promise<void> {
@@ -128,6 +140,7 @@ export class InAppNativeConnector implements InAppConnector {
128
140
  client: this.client,
129
141
  wallet: params.wallet,
130
142
  chain: params.chain,
143
+ ecosystem: params.ecosystem,
131
144
  });
132
145
  }
133
146
  case "google":
@@ -139,95 +152,63 @@ export class InAppNativeConnector implements InAppConnector {
139
152
  const ExpoLinking = require("expo-linking");
140
153
  const redirectUrl =
141
154
  params.redirectUrl || (ExpoLinking.createURL("") as string);
142
- return authenticate({ strategy, redirectUrl }, this.client);
143
- }
144
- case "passkey":
145
- return this.passkeyAuth(params);
146
- default:
147
- throw new Error(`Unsupported authentication type: ${strategy}`);
148
- }
149
- }
150
-
151
- async connect(params: AuthArgsType): Promise<AuthLoginReturnType> {
152
- const strategy = params.strategy;
153
- switch (strategy) {
154
- case "email": {
155
- return await this.validateOtp({
156
- email: params.email,
157
- verificationCode: params.verificationCode,
158
- strategy: "email",
155
+ return socialAuth({
156
+ auth: { strategy, redirectUrl },
159
157
  client: this.client,
158
+ ecosystem: this.ecosystem,
160
159
  });
161
160
  }
162
- case "phone": {
163
- return await this.validateOtp({
164
- phoneNumber: params.phoneNumber,
165
- verificationCode: params.verificationCode,
166
- strategy: "phone",
167
- client: this.client,
168
- });
169
- }
170
- case "google":
171
- case "facebook":
172
- case "discord":
173
- case "line":
174
- case "x":
175
- case "farcaster":
176
- case "telegram":
177
- case "coinbase":
178
- case "apple": {
179
- const ExpoLinking = require("expo-linking");
180
- const redirectUrl =
181
- params.redirectUrl || (ExpoLinking.createURL("") as string); // Will default to the app scheme
182
- return this.socialLogin({
183
- strategy,
184
- redirectUrl,
185
- });
186
- }
187
- case "guest": {
188
- return this.guestLogin({
189
- ecosystem: params.ecosystem,
190
- });
191
- }
192
- case "wallet": {
193
- return this.siweLogin({
194
- wallet: params.wallet,
195
- chain: params.chain,
196
- });
197
- }
198
- case "jwt": {
199
- return this.customJwt({
161
+ case "passkey":
162
+ return this.passkeyAuth(params);
163
+ case "jwt":
164
+ return customJwt({
200
165
  jwt: params.jwt,
201
- password: params.encryptionKey,
166
+ client: this.client,
167
+ storage: this.localStorage,
202
168
  });
203
- }
204
- case "auth_endpoint": {
205
- return this.authEndpoint({
169
+ case "auth_endpoint":
170
+ return authEndpoint({
206
171
  payload: params.payload,
207
- encryptionKey: params.encryptionKey,
172
+ client: this.client,
173
+ storage: this.localStorage,
208
174
  });
209
- }
210
- case "passkey": {
211
- const authToken = await this.passkeyAuth(params);
212
- const account = await this.getAccount();
213
- return {
214
- user: {
215
- status: UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED,
216
- account,
217
- authDetails: authToken.storedToken.authDetails,
218
- walletAddress: account.address,
219
- },
220
- };
221
- }
222
- case "iframe": {
223
- throw new Error("iframe_email_verification is not supported in native");
224
- }
225
- case "iframe_email_verification": {
226
- throw new Error("iframe_email_verification is not supported in native");
227
- }
228
175
  default:
229
- assertUnreachable(strategy);
176
+ throw new Error(`Unsupported authentication type: ${strategy}`);
177
+ }
178
+ }
179
+
180
+ async connect(
181
+ params: MultiStepAuthArgsType | SingleStepAuthArgsType,
182
+ ): Promise<AuthLoginReturnType> {
183
+ const authResult = await this.authenticate({
184
+ ...params,
185
+ client: this.client,
186
+ ecosystem: this.ecosystem,
187
+ });
188
+ await this.initializeWallet(authResult.storedToken.cookieString);
189
+ if (!this.wallet) {
190
+ throw new Error("Wallet not initialized");
230
191
  }
192
+ const encryptionKey =
193
+ params.strategy === "jwt"
194
+ ? params.encryptionKey
195
+ : params.strategy === "auth_endpoint"
196
+ ? params.encryptionKey
197
+ : undefined;
198
+
199
+ await this.wallet.postWalletSetUp({
200
+ ...authResult,
201
+ encryptionKey,
202
+ });
203
+ const account = await this.getAccount();
204
+ return {
205
+ user: {
206
+ status: "Logged In, Wallet Initialized",
207
+ account,
208
+ authDetails: authResult.storedToken.authDetails,
209
+ walletAddress: account.address,
210
+ },
211
+ };
231
212
  }
232
213
 
233
214
  private async passkeyAuth(args: {
@@ -238,6 +219,7 @@ export class InAppNativeConnector implements InAppConnector {
238
219
  }): Promise<AuthStoredTokenWithCookieReturnType> {
239
220
  const { type, passkeyName, client, ecosystem } = args;
240
221
  const domain = this.passkeyDomain;
222
+ const storage = this.localStorage;
241
223
  if (!domain) {
242
224
  throw new Error(
243
225
  "Passkey domain is required for native platforms. Please pass it in the 'auth' options when creating the inAppWallet().",
@@ -246,7 +228,6 @@ export class InAppNativeConnector implements InAppConnector {
246
228
  try {
247
229
  const { PasskeyNativeClient } = await import("./auth/passkeys.js");
248
230
  const passkeyClient = new PasskeyNativeClient();
249
- const storage = nativeLocalStorage;
250
231
  let authToken: AuthStoredTokenWithCookieReturnType;
251
232
 
252
233
  if (type === "sign-up") {
@@ -274,19 +255,6 @@ export class InAppNativeConnector implements InAppConnector {
274
255
  });
275
256
  }
276
257
 
277
- const toStoreToken: AuthStoredTokenWithCookieReturnType["storedToken"] = {
278
- jwtToken: authToken.storedToken.jwtToken,
279
- authDetails: authToken.storedToken.authDetails,
280
- authProvider: authToken.storedToken.authProvider,
281
- developerClientId: authToken.storedToken.developerClientId,
282
- cookieString: authToken.storedToken.cookieString,
283
- // we should always store the jwt cookie since there's no concept of cookie in react native
284
- shouldStoreCookieString: true,
285
- isNewUser: authToken.storedToken.isNewUser,
286
- };
287
-
288
- await postAuth({ storedToken: toStoreToken, client });
289
-
290
258
  return authToken;
291
259
  } catch (error) {
292
260
  console.error(
@@ -299,160 +267,19 @@ export class InAppNativeConnector implements InAppConnector {
299
267
  }
300
268
  }
301
269
 
302
- private async validateOtp(
303
- options: MultiStepAuthArgsType & {
304
- client: ThirdwebClient;
305
- ecosystem?: Ecosystem;
306
- },
307
- ): Promise<AuthLoginReturnType> {
308
- try {
309
- const { storedToken } = await otpLogin(options);
310
- const account = await this.getAccount();
311
- return {
312
- user: {
313
- status: UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED,
314
- account,
315
- authDetails: storedToken.authDetails,
316
- walletAddress: account.address,
317
- },
318
- };
319
- } catch (error) {
320
- console.error(`Error while validating OTP: ${error}`);
321
- if (error instanceof Error) {
322
- throw new Error(`Error while validating otp: ${error.message}`);
323
- }
324
- throw new Error("An unknown error occurred while validating otp");
325
- }
326
- }
327
-
328
270
  // TODO (rn) expose in the interface
329
271
  async deleteActiveAccount() {
330
- return deleteActiveAccount({ client: this.client });
331
- }
332
-
333
- private async socialLogin(
334
- auth: OAuthRedirectObject,
335
- ): Promise<AuthLoginReturnType> {
336
- try {
337
- const { storedToken } = await socialLogin(auth, this.client);
338
- const account = await this.getAccount();
339
- return {
340
- user: {
341
- status: UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED,
342
- account,
343
- authDetails: storedToken.authDetails,
344
- walletAddress: account.address,
345
- },
346
- };
347
- } catch (error) {
348
- console.error(`Error while signing in with: ${auth}. ${error}`);
349
- if (error instanceof Error) {
350
- throw new Error(`Error signing in with ${auth}: ${error.message}`);
351
- }
352
- throw new Error(`An unknown error occurred signing in with ${auth}`);
353
- }
354
- }
355
-
356
- private async siweLogin(options: {
357
- wallet: Wallet;
358
- chain: Chain;
359
- }): Promise<AuthLoginReturnType> {
360
- try {
361
- const { storedToken } = await siweLogin(
362
- this.client,
363
- options.wallet,
364
- options.chain,
365
- );
366
- const account = await this.getAccount();
367
- return {
368
- user: {
369
- status: UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED,
370
- account,
371
- authDetails: storedToken.authDetails,
372
- walletAddress: account.address,
373
- },
374
- };
375
- } catch (error) {
376
- console.error(
377
- `Error while signing in with: ${options.wallet.id}. ${error}`,
378
- );
379
- if (error instanceof Error) {
380
- throw new Error(
381
- `Error signing in with ${options.wallet.id}: ${error.message}`,
382
- );
383
- }
384
- throw new Error(
385
- `An unknown error occurred signing in with ${options.wallet.id}`,
386
- );
387
- }
388
- }
389
-
390
- private async guestLogin(options: {
391
- ecosystem?: Ecosystem;
392
- }): Promise<AuthLoginReturnType> {
393
- try {
394
- const { storedToken } = await guestLogin(this.client, options.ecosystem);
395
- const account = await this.getAccount();
396
- return {
397
- user: {
398
- status: UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED,
399
- account,
400
- authDetails: storedToken.authDetails,
401
- walletAddress: account.address,
402
- },
403
- };
404
- } catch (error) {
405
- if (error instanceof Error) {
406
- throw new Error(`Error generating guest account: ${error.message}`);
407
- }
408
- throw new Error("An unknown error occurred generating guest account");
409
- }
410
- }
411
-
412
- private async customJwt(authOptions: {
413
- jwt: string;
414
- password: string;
415
- }): Promise<AuthLoginReturnType> {
416
- try {
417
- const { storedToken } = await customJwt(authOptions, this.client);
418
- const account = await this.getAccount();
419
- return {
420
- user: {
421
- status: UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED,
422
- account,
423
- authDetails: storedToken.authDetails,
424
- walletAddress: account.address,
425
- },
426
- };
427
- } catch (error) {
428
- console.error(`Error while verifying auth: ${error}`);
429
- throw error;
430
- }
431
- }
432
-
433
- private async authEndpoint(authOptions: {
434
- payload: string;
435
- encryptionKey: string;
436
- }): Promise<AuthLoginReturnType> {
437
- try {
438
- const { storedToken } = await authEndpoint(authOptions, this.client);
439
- const account = await this.getAccount();
440
- return {
441
- user: {
442
- status: UserWalletStatus.LOGGED_IN_WALLET_INITIALIZED,
443
- account,
444
- authDetails: storedToken.authDetails,
445
- walletAddress: account.address,
446
- },
447
- };
448
- } catch (error) {
449
- console.error(`Error while verifying auth_endpoint auth: ${error}`);
450
- throw error;
451
- }
272
+ return deleteActiveAccount({
273
+ client: this.client,
274
+ storage: this.localStorage,
275
+ });
452
276
  }
453
277
 
454
278
  logout(): Promise<LogoutReturnType> {
455
- return logoutUser(this.client.clientId);
279
+ return logoutUser({
280
+ client: this.client,
281
+ storage: this.localStorage,
282
+ });
456
283
  }
457
284
 
458
285
  async linkProfile(args: AuthArgsType) {
@@ -472,7 +299,3 @@ export class InAppNativeConnector implements InAppConnector {
472
299
  });
473
300
  }
474
301
  }
475
-
476
- function assertUnreachable(x: never): never {
477
- throw new Error(`Invalid param: ${x}`);
478
- }
@@ -4,7 +4,7 @@ import type {
4
4
  CreateWalletArgs,
5
5
  EcosystemWalletId,
6
6
  } from "../../wallet-types.js";
7
- import { createEcosystemWallet } from "../core/wallet/ecosystem-core.js";
7
+ import { createInAppWallet } from "../core/wallet/in-app-core.js";
8
8
 
9
9
  /**
10
10
  * Creates an [Ecosystem Wallet](https://portal.thirdweb.com/connect/ecosystems/overview) based on various authentication methods.
@@ -65,18 +65,24 @@ export function ecosystemWallet(
65
65
  ...args: CreateWalletArgs<EcosystemWalletId>
66
66
  ): Wallet<EcosystemWalletId> {
67
67
  const [ecosystemId, createOptions] = args;
68
- return createEcosystemWallet({
68
+ const ecosystem = {
69
69
  id: ecosystemId,
70
- createOptions,
70
+ partnerId: createOptions?.partnerId,
71
+ };
72
+ return createInAppWallet({
73
+ ecosystem,
74
+ createOptions: {
75
+ auth: {
76
+ ...createOptions?.auth,
77
+ options: [], // controlled by ecosystem
78
+ },
79
+ },
71
80
  connectorFactory: async (client: ThirdwebClient) => {
72
81
  const { InAppWebConnector } = await import("./lib/web-connector.js");
73
82
  return new InAppWebConnector({
74
83
  client,
75
- ecosystem: {
76
- id: ecosystemId,
77
- partnerId: createOptions?.partnerId,
78
- },
84
+ ecosystem,
79
85
  });
80
86
  },
81
- });
87
+ }) as Wallet<EcosystemWalletId>;
82
88
  }
@@ -206,5 +206,5 @@ export function inAppWallet(
206
206
  passkeyDomain: createOptions?.auth?.passkeyDomain,
207
207
  });
208
208
  },
209
- });
209
+ }) as Wallet<"inApp">;
210
210
  }
@@ -1,8 +1,8 @@
1
1
  import type { ThirdwebClient } from "../../../../../client/client.js";
2
2
  import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
3
  import { getClientFetch } from "../../../../../utils/fetch.js";
4
+ import type { UserStatus } from "../../../core/wallet/enclave-wallet.js";
4
5
  import type { Ecosystem } from "../../../core/wallet/types.js";
5
- import type { UserStatus } from "../../lib/enclave-wallet.js";
6
6
 
7
7
  /**
8
8
  * Gets the user's status from the backend.
@@ -32,11 +32,13 @@ export async function getUserStatus({
32
32
  );
33
33
 
34
34
  if (!response.ok) {
35
+ console.log("response", response.status);
35
36
  if (response.status === 401) {
36
37
  // 401 response indicates there is no user logged in, so we return undefined
37
38
  return undefined;
38
39
  }
39
40
  const result = await response.json();
41
+ console.log("result", result);
40
42
  throw new Error(`Failed to get user status: ${result.error}`);
41
43
  }
42
44
 
@@ -2,13 +2,14 @@ import type { ThirdwebClient } from "../../../../../client/client.js";
2
2
  import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
3
  import { getClientFetch } from "../../../../../utils/fetch.js";
4
4
  import { stringify } from "../../../../../utils/json.js";
5
+ import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
5
6
  import type { Ecosystem } from "../../../core/wallet/types.js";
6
- import { getAuthToken } from "../get-auth-token.js";
7
7
 
8
8
  export async function signMessage({
9
9
  client,
10
10
  ecosystem,
11
11
  payload: { message, isRaw },
12
+ storage,
12
13
  }: {
13
14
  client: ThirdwebClient;
14
15
  ecosystem?: Ecosystem;
@@ -16,9 +17,10 @@ export async function signMessage({
16
17
  message: string;
17
18
  isRaw: boolean;
18
19
  };
20
+ storage: ClientScopedStorage;
19
21
  }) {
20
22
  const clientFetch = getClientFetch(client, ecosystem);
21
- const authToken = await getAuthToken(client, ecosystem); // TODO (enclave): pass storage from web/native
23
+ const authToken = await storage.getAuthCookie();
22
24
 
23
25
  const response = await clientFetch(
24
26
  `${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-message`,
@@ -3,21 +3,23 @@ import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
3
3
  import type { Hex } from "../../../../../utils/encoding/hex.js";
4
4
  import { getClientFetch } from "../../../../../utils/fetch.js";
5
5
  import { stringify } from "../../../../../utils/json.js";
6
+ import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
6
7
  import type { Ecosystem } from "../../../core/wallet/types.js";
7
- import { getAuthToken } from "../get-auth-token.js";
8
8
 
9
9
  export async function signTransaction({
10
10
  client,
11
11
  ecosystem,
12
12
  payload,
13
+ storage,
13
14
  }: {
14
15
  client: ThirdwebClient;
15
16
  ecosystem?: Ecosystem;
16
17
  payload: Record<string, Hex | number | undefined>;
18
+ storage: ClientScopedStorage;
17
19
  }) {
18
20
  console.log("payload", payload);
19
21
  const clientFetch = getClientFetch(client, ecosystem);
20
- const authToken = await getAuthToken(client, ecosystem); // TODO (enclave): pass storage from web/native
22
+ const authToken = await storage.getAuthCookie();
21
23
 
22
24
  const response = await clientFetch(
23
25
  `${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-transaction`,
@@ -4,8 +4,8 @@ import type { ThirdwebClient } from "../../../../../client/client.js";
4
4
  import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
5
5
  import { getClientFetch } from "../../../../../utils/fetch.js";
6
6
  import { stringify } from "../../../../../utils/json.js";
7
+ import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
7
8
  import type { Ecosystem } from "../../../core/wallet/types.js";
8
- import { getAuthToken } from "../get-auth-token.js";
9
9
 
10
10
  export async function signTypedData<
11
11
  const typedData extends TypedData | Record<string, unknown>,
@@ -14,13 +14,15 @@ export async function signTypedData<
14
14
  client,
15
15
  ecosystem,
16
16
  payload,
17
+ storage,
17
18
  }: {
18
19
  client: ThirdwebClient;
19
20
  ecosystem?: Ecosystem;
20
21
  payload: TypedDataDefinition<typedData, primaryType>;
22
+ storage: ClientScopedStorage;
21
23
  }) {
22
24
  const clientFetch = getClientFetch(client, ecosystem);
23
- const authToken = await getAuthToken(client, ecosystem); // TODO (enclave): pass storage from web/native
25
+ const authToken = await storage.getAuthCookie();
24
26
 
25
27
  const response = await clientFetch(
26
28
  `${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-typed-data`,
@@ -321,6 +321,13 @@ export class Auth {
321
321
  * @internal
322
322
  */
323
323
  async logout(): Promise<LogoutReturnType> {
324
+ if (this.AuthQuerier) {
325
+ await this.AuthQuerier.call<LogoutReturnType>({
326
+ procedureName: "logout",
327
+ params: undefined,
328
+ });
329
+ }
330
+
324
331
  const isRemoveAuthCookie = await this.localStorage.removeAuthCookie();
325
332
  const isRemoveUserId = await this.localStorage.removeWalletUserId();
326
333