thirdweb 5.57.3 → 5.58.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 (176) hide show
  1. package/dist/cjs/exports/extensions/erc1155.js +3 -2
  2. package/dist/cjs/exports/extensions/erc1155.js.map +1 -1
  3. package/dist/cjs/react/core/utils/walletIcon.js +5 -1
  4. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
  5. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -0
  6. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  7. package/dist/cjs/react/native/ui/icons/svgs.js +12 -1
  8. package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
  9. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +27 -2
  10. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  11. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +42 -21
  12. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  13. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +2 -1
  14. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  15. package/dist/cjs/utils/fetch.js +10 -4
  16. package/dist/cjs/utils/fetch.js.map +1 -1
  17. package/dist/cjs/version.js +1 -1
  18. package/dist/cjs/wallets/in-app/core/authentication/types.js +2 -0
  19. package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
  20. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +2 -2
  21. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  22. package/dist/cjs/wallets/in-app/native/native-connector.js +1 -0
  23. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  24. package/dist/cjs/wallets/in-app/web/in-app.js +1 -0
  25. package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
  26. package/dist/cjs/wallets/in-app/web/lib/actions/generate-wallet.enclave.js +26 -0
  27. package/dist/cjs/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +1 -0
  28. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js +31 -0
  29. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -0
  30. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js +30 -0
  31. package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -0
  32. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +28 -0
  33. package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -0
  34. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +27 -0
  35. package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -0
  36. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +42 -5
  37. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  38. package/dist/cjs/wallets/in-app/web/lib/auth/index.js +2 -2
  39. package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
  40. package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js +195 -0
  41. package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js.map +1 -0
  42. package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js +14 -0
  43. package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js.map +1 -0
  44. package/dist/cjs/wallets/in-app/web/lib/{in-app-account.js → iframe-wallet.js} +8 -22
  45. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -0
  46. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +111 -37
  47. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  48. package/dist/cjs/wallets/in-app/web/lib/web-wallet.js +3 -0
  49. package/dist/cjs/wallets/in-app/web/lib/web-wallet.js.map +1 -0
  50. package/dist/cjs/wallets/types.js +1 -0
  51. package/dist/cjs/wallets/types.js.map +1 -1
  52. package/dist/esm/exports/extensions/erc1155.js +1 -1
  53. package/dist/esm/exports/extensions/erc1155.js.map +1 -1
  54. package/dist/esm/react/core/utils/walletIcon.js +4 -0
  55. package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
  56. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +2 -1
  57. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  58. package/dist/esm/react/native/ui/icons/svgs.js +11 -0
  59. package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
  60. package/dist/esm/react/web/ui/ConnectWallet/Details.js +27 -2
  61. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  62. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +42 -21
  63. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  64. package/dist/esm/react/web/wallets/shared/oauthSignIn.js +2 -1
  65. package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
  66. package/dist/esm/utils/fetch.js +10 -4
  67. package/dist/esm/utils/fetch.js.map +1 -1
  68. package/dist/esm/version.js +1 -1
  69. package/dist/esm/wallets/in-app/core/authentication/types.js +2 -0
  70. package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
  71. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +2 -2
  72. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  73. package/dist/esm/wallets/in-app/native/native-connector.js +1 -0
  74. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  75. package/dist/esm/wallets/in-app/web/in-app.js +1 -0
  76. package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
  77. package/dist/esm/wallets/in-app/web/lib/actions/generate-wallet.enclave.js +23 -0
  78. package/dist/esm/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +1 -0
  79. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js +28 -0
  80. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -0
  81. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js +27 -0
  82. package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -0
  83. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +25 -0
  84. package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -0
  85. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +24 -0
  86. package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -0
  87. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +42 -5
  88. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  89. package/dist/esm/wallets/in-app/web/lib/auth/index.js +2 -2
  90. package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
  91. package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js +191 -0
  92. package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js.map +1 -0
  93. package/dist/esm/wallets/in-app/web/lib/get-auth-token.js +11 -0
  94. package/dist/esm/wallets/in-app/web/lib/get-auth-token.js.map +1 -0
  95. package/dist/esm/wallets/in-app/web/lib/{in-app-account.js → iframe-wallet.js} +8 -22
  96. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -0
  97. package/dist/esm/wallets/in-app/web/lib/web-connector.js +111 -37
  98. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  99. package/dist/esm/wallets/in-app/web/lib/web-wallet.js +2 -0
  100. package/dist/esm/wallets/in-app/web/lib/web-wallet.js.map +1 -0
  101. package/dist/esm/wallets/types.js +1 -0
  102. package/dist/esm/wallets/types.js.map +1 -1
  103. package/dist/types/exports/extensions/erc1155.d.ts +1 -1
  104. package/dist/types/exports/extensions/erc1155.d.ts.map +1 -1
  105. package/dist/types/react/core/utils/walletIcon.d.ts +3 -1
  106. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
  107. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  108. package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
  109. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
  110. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +1 -1
  111. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  112. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  113. package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
  114. package/dist/types/utils/fetch.d.ts.map +1 -1
  115. package/dist/types/version.d.ts +1 -1
  116. package/dist/types/wallets/in-app/core/authentication/types.d.ts +6 -2
  117. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
  118. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
  119. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  120. package/dist/types/wallets/in-app/web/in-app.d.ts +1 -0
  121. package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
  122. package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts +15 -0
  123. package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts.map +1 -0
  124. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +14 -0
  125. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +1 -0
  126. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts +17 -0
  127. package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +1 -0
  128. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts +9 -0
  129. package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +1 -0
  130. package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts +16 -0
  131. package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +1 -0
  132. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +5 -1
  133. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
  134. package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts +61 -0
  135. package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts.map +1 -0
  136. package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts +4 -0
  137. package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts.map +1 -0
  138. package/dist/types/wallets/in-app/web/lib/{in-app-account.d.ts → iframe-wallet.d.ts} +5 -8
  139. package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -0
  140. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +4 -2
  141. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  142. package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts +15 -0
  143. package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts.map +1 -0
  144. package/dist/types/wallets/types.d.ts +2 -2
  145. package/dist/types/wallets/types.d.ts.map +1 -1
  146. package/package.json +1 -1
  147. package/src/exports/extensions/erc1155.ts +1 -0
  148. package/src/extensions/prebuilts/deploy-published.test.ts +34 -1
  149. package/src/react/core/utils/walletIcon.ts +5 -0
  150. package/src/react/native/ui/connect/InAppWalletUI.tsx +2 -0
  151. package/src/react/native/ui/icons/svgs.ts +12 -0
  152. package/src/react/web/ui/ConnectWallet/Details.tsx +44 -4
  153. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +82 -48
  154. package/src/react/web/wallets/shared/oauthSignIn.ts +2 -1
  155. package/src/utils/fetch.ts +11 -4
  156. package/src/version.ts +1 -1
  157. package/src/wallets/in-app/core/authentication/types.ts +6 -1
  158. package/src/wallets/in-app/core/wallet/in-app-core.ts +2 -5
  159. package/src/wallets/in-app/native/native-connector.ts +1 -0
  160. package/src/wallets/in-app/web/in-app.ts +1 -0
  161. package/src/wallets/in-app/web/lib/actions/generate-wallet.enclave.ts +44 -0
  162. package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +44 -0
  163. package/src/wallets/in-app/web/lib/actions/sign-message.enclave.ts +52 -0
  164. package/src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts +48 -0
  165. package/src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts +51 -0
  166. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +45 -6
  167. package/src/wallets/in-app/web/lib/auth/index.ts +2 -2
  168. package/src/wallets/in-app/web/lib/enclave-wallet.ts +245 -0
  169. package/src/wallets/in-app/web/lib/get-auth-token.ts +17 -0
  170. package/src/wallets/in-app/web/lib/{in-app-account.ts → iframe-wallet.ts} +14 -36
  171. package/src/wallets/in-app/web/lib/web-connector.ts +125 -39
  172. package/src/wallets/in-app/web/lib/web-wallet.ts +23 -0
  173. package/src/wallets/types.ts +1 -0
  174. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +0 -1
  175. package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +0 -1
  176. package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +0 -1
@@ -5,9 +5,10 @@ import { type Hex } from "../../../../utils/encoding/hex.js";
5
5
  import type { Prettify } from "../../../../utils/type-utils.js";
6
6
  import type { Account } from "../../../interfaces/wallet.js";
7
7
  import { ClientScopedStorage } from "../../core/authentication/client-scoped-storage.js";
8
- import { type GetUser, type SetUpWalletRpcReturnType, type WalletAddressObjectType } from "../../core/authentication/types.js";
8
+ import { type GetUser, type WalletAddressObjectType } from "../../core/authentication/types.js";
9
9
  import type { ClientIdWithQuerierType, Ecosystem } from "../types.js";
10
10
  import type { InAppWalletIframeCommunicator } from "../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
11
+ import type { IWebWallet, PostWalletSetup } from "./web-wallet.js";
11
12
  export type WalletManagementTypes = {
12
13
  createWallet: undefined;
13
14
  setUpNewDevice: undefined;
@@ -43,13 +44,10 @@ export type SignerProcedureTypes = {
43
44
  partnerId?: string;
44
45
  };
45
46
  };
46
- type PostWalletSetup = SetUpWalletRpcReturnType & {
47
- walletUserId: string;
48
- };
49
47
  /**
50
48
  *
51
49
  */
52
- export declare class IFrameWallet {
50
+ export declare class IFrameWallet implements IWebWallet {
53
51
  client: ThirdwebClient;
54
52
  ecosystem?: Ecosystem;
55
53
  protected walletManagerQuerier: InAppWalletIframeCommunicator<WalletManagementTypes & WalletManagementUiTypes>;
@@ -66,7 +64,7 @@ export declare class IFrameWallet {
66
64
  * @returns `{walletAddress : string }` The user's wallet details
67
65
  * @internal
68
66
  */
69
- postWalletSetUp({ deviceShareStored, walletAddress, isIframeStorageEnabled, walletUserId, }: PostWalletSetup): Promise<WalletAddressObjectType>;
67
+ postWalletSetUp(props: PostWalletSetup): Promise<WalletAddressObjectType>;
70
68
  /**
71
69
  * Gets the various status states of the user
72
70
  * @example
@@ -110,5 +108,4 @@ export declare class IFrameWallet {
110
108
  */
111
109
  getAccount(): Promise<Account>;
112
110
  }
113
- export {};
114
- //# sourceMappingURL=in-app-account.d.ts.map
111
+ //# sourceMappingURL=iframe-wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe-wallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/iframe-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,mCAAmC,CAAC;AAG1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EACV,OAAO,EAER,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,uBAAuB,EACvB,SAAS,EAKV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AACnH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,EAAE,SAAS,CAAC;IACxB,cAAc,EAAE,SAAS,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,SAAS,CAAC;IAC1B,gBAAgB,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,SAAS,CAAC;IACtB,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,eAAe,EAAE;QACf,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QACzD,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,eAAe,EAAE;QACf,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACtC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CAEH,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,YAAW,UAAU;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IAC7B,SAAS,CAAC,oBAAoB,EAAE,6BAA6B,CAC3D,qBAAqB,GAAG,uBAAuB,CAChD,CAAC;IACF,SAAS,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAE5C;;;OAGG;gBACS,EACV,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,QAAQ,CACT,uBAAuB,GAAG;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CACF;IAYD;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,uBAAuB,CAAC;IAanC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IA6B7C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;CAsIrC"}
@@ -3,7 +3,7 @@ import type { SocialAuthOption } from "../../../../wallets/types.js";
3
3
  import type { Account } from "../../../interfaces/wallet.js";
4
4
  import { type AuthLoginReturnType, type AuthStoredTokenWithCookieReturnType, type GetUser, type LogoutReturnType, type MultiStepAuthArgsType, type MultiStepAuthProviderType, type SingleStepAuthArgsType } from "../../core/authentication/types.js";
5
5
  import type { InAppConnector } from "../../core/interfaces/connector.js";
6
- import type { InAppWalletConstructorType } from "../types.js";
6
+ import type { Ecosystem, InAppWalletConstructorType } from "../types.js";
7
7
  import { InAppWalletIframeCommunicator } from "../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
8
8
  import { Auth, type AuthQuerierTypes } from "./auth/iframe-auth.js";
9
9
  /**
@@ -11,8 +11,9 @@ import { Auth, type AuthQuerierTypes } from "./auth/iframe-auth.js";
11
11
  */
12
12
  export declare class InAppWebConnector implements InAppConnector {
13
13
  protected client: ThirdwebClient;
14
+ protected ecosystem?: Ecosystem;
14
15
  protected querier: InAppWalletIframeCommunicator<AuthQuerierTypes>;
15
- private wallet;
16
+ private wallet?;
16
17
  /**
17
18
  * Used to manage the Auth state of the user.
18
19
  */
@@ -25,6 +26,7 @@ export declare class InAppWebConnector implements InAppConnector {
25
26
  * @internal
26
27
  */
27
28
  constructor({ client, onAuthSuccess, ecosystem, passkeyDomain, }: InAppWalletConstructorType);
29
+ initializeWallet(authToken?: string): Promise<void>;
28
30
  /**
29
31
  * Gets the user if they're logged in
30
32
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"web-connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAO7D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mCAAmC,EACxC,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAE5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAC9G,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKpE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,6BAA6B,CAAC,gBAAgB,CAAC,CAAC;IAEnE,OAAO,CAAC,MAAM,CAAe;IAC7B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAO,CAAC,qBAAqB;IAO7B;;;;OAIG;gBACS,EACV,MAAM,EACN,aAAa,EACb,SAAS,EACT,aAAa,GACd,EAAE,0BAA0B;IAsD7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,eAAe,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,wBAAwB,CACtB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,EACtC,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAUD,kBAAkB,CAAC,UAAU,EAAE,mCAAmC;IAIxE;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mCAAmC,CAAC;IAsE/C;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mBAAmB,CAAC;IAgDzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAI3B,WAAW;CA8B1B"}
1
+ {"version":3,"file":"web-connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAO7D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mCAAmC,EACxC,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAE5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAC9G,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOpE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,OAAO,EAAE,6BAA6B,CAAC,gBAAgB,CAAC,CAAC;IAEnE,OAAO,CAAC,MAAM,CAAC,CAA+B;IAC9C;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAO,CAAC,qBAAqB;IAO7B;;;;OAIG;gBACS,EACV,MAAM,EACN,aAAa,EACb,SAAS,EACT,aAAa,GACd,EAAE,0BAA0B;IAkFvB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM;IAsCzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAOxB,eAAe,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,wBAAwB,CACtB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,EACtC,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAUD,kBAAkB,CAAC,UAAU,EAAE,mCAAmC;IAIxE;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mCAAmC,CAAC;IAuE/C;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mBAAmB,CAAC;IAiDzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAI3B,WAAW;CA8B1B"}
@@ -0,0 +1,15 @@
1
+ import type { Account } from "../../../interfaces/wallet.js";
2
+ import type { GetUser, SetUpWalletRpcReturnType, WalletAddressObjectType } from "../../core/authentication/types.js";
3
+ export type PostWalletSetup = (SetUpWalletRpcReturnType | WalletAddressObjectType) & {
4
+ walletUserId: string;
5
+ authToken: string;
6
+ };
7
+ /**
8
+ *
9
+ */
10
+ export interface IWebWallet {
11
+ postWalletSetUp(args: PostWalletSetup): Promise<WalletAddressObjectType>;
12
+ getUserWalletStatus(): Promise<GetUser>;
13
+ getAccount(): Promise<Account>;
14
+ }
15
+ //# sourceMappingURL=web-wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-wallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EACV,OAAO,EACP,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,CAC1B,wBAAwB,GACxB,uBAAuB,CAC1B,GAAG;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzE,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAChC"}
@@ -17,10 +17,10 @@ export type AppMetadata = {
17
17
  */
18
18
  logoUrl?: string;
19
19
  };
20
- export declare const socialAuthOptions: readonly ["google", "apple", "facebook", "discord", "line", "x", "farcaster", "telegram"];
20
+ export declare const socialAuthOptions: readonly ["google", "apple", "facebook", "discord", "line", "x", "coinbase", "farcaster", "telegram"];
21
21
  export type SocialAuthOption = (typeof socialAuthOptions)[number];
22
22
  export type OAuthOption = SocialAuthOption | "guest";
23
- export declare const authOptions: readonly ["google", "apple", "facebook", "discord", "line", "x", "farcaster", "telegram", "guest", "email", "phone", "passkey"];
23
+ export declare const authOptions: readonly ["google", "apple", "facebook", "discord", "line", "x", "coinbase", "farcaster", "telegram", "guest", "email", "phone", "passkey"];
24
24
  export type AuthOption = (typeof authOptions)[number];
25
25
  export type DisconnectFn = () => Promise<void>;
26
26
  export type SwitchChainFn = (chain: Chain) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/wallets/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,2FASpB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAErD,eAAO,MAAM,WAAW,iIAMd,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/wallets/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,uGAUpB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAErD,eAAO,MAAM,WAAW,6IAMd,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thirdweb",
3
- "version": "5.57.3",
3
+ "version": "5.58.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/thirdweb-dev/js.git#main"
@@ -6,6 +6,7 @@ export {
6
6
  } from "../../extensions/erc1155/__generated__/IERC1155/read/balanceOfBatch.js";
7
7
  export {
8
8
  getNFT,
9
+ isGetNFTSupported,
9
10
  type GetNFTParams,
10
11
  } from "../../extensions/erc1155/read/getNFT.js";
11
12
  export {
@@ -1,5 +1,8 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { ANVIL_CHAIN } from "../../../test/src/chains.js";
2
+ import {
3
+ ANVIL_CHAIN,
4
+ FORKED_ETHEREUM_CHAIN_WITH_MINING,
5
+ } from "../../../test/src/chains.js";
3
6
  import { TEST_CLIENT } from "../../../test/src/test-clients.js";
4
7
  import { TEST_ACCOUNT_A } from "../../../test/src/test-wallets.js";
5
8
  import { isContractDeployed } from "../../utils/bytecode/is-contract-deployed.js";
@@ -46,6 +49,21 @@ describe.runIf(process.env.TW_SECRET_KEY)(
46
49
  address,
47
50
  });
48
51
  expect(isDeployed).toBe(true);
52
+
53
+ const ethAddress = await deployPublishedContract({
54
+ client: TEST_CLIENT,
55
+ chain: FORKED_ETHEREUM_CHAIN_WITH_MINING,
56
+ account: TEST_ACCOUNT_A,
57
+ contractId: "AccountFactory",
58
+ contractParams: {
59
+ defaultAdmin: TEST_ACCOUNT_A.address,
60
+ entrypoint: ENTRYPOINT_ADDRESS_v0_6,
61
+ },
62
+ salt: "test",
63
+ });
64
+
65
+ // ensure they are the same address!
66
+ expect(address).toBe(ethAddress);
49
67
  });
50
68
 
51
69
  it("should deploy a published autofactory contract", async () => {
@@ -82,6 +100,21 @@ describe.runIf(process.env.TW_SECRET_KEY)(
82
100
  address,
83
101
  });
84
102
  expect(isDeployed).toBe(true);
103
+
104
+ // deploy on forked ethereum
105
+ const ethAddress = await deployPublishedContract({
106
+ client: TEST_CLIENT,
107
+ chain: FORKED_ETHEREUM_CHAIN_WITH_MINING,
108
+ account: TEST_ACCOUNT_A,
109
+ contractId: "Airdrop",
110
+ contractParams: {
111
+ defaultAdmin: TEST_ACCOUNT_A.address,
112
+ contractURI: "",
113
+ },
114
+ salt: "test",
115
+ });
116
+ // ensure they are the same address!
117
+ expect(address).toBe(ethAddress);
85
118
  });
86
119
 
87
120
  // TODO: Replace these tests' live contracts with mocks
@@ -19,6 +19,8 @@ export const twitchIconUri =
19
19
  "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgdmlld0JveD0iMCAwIDExMS43ODY2NyAxMjcuMzg2NjciCiAgIGhlaWdodD0iMTI3LjM4NjY3IgogICB3aWR0aD0iMTExLjc4NjY3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczMzU1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJUd2l0Y2hfbG9nby5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xICgzYmY1YWUwZDI1LCAyMDIxLTA5LTIwKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcwogICBpZD0iZGVmczI5Ij4KICAgIAogICAgCiAgPC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgaWQ9Im5hbWVkdmlldzI3IgogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iNC4xOTkyMjg0IgogICBpbmtzY2FwZTpjeD0iLTUwLjYwNDUzNSIKICAgaW5rc2NhcGU6Y3k9IjE0MC4zODI5MyIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzg3IgogICBpbmtzY2FwZTp3aW5kb3cteD0iMTkxMiIKICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmczMzU1IiAvPgogIDxnCiAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsLTEuMzMzMzMzMywxMDEuMzkzMzMsNjcuNTg5MzMyKSIKICAgaWQ9ImczMzY1Ij4KICAgICAgPHBhdGgKICAgaWQ9InBhdGgzMzY3IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICBkPSJtIDAsMCAtMTMuNjUyLC0xMy42NTEgaCAtMjEuNDQ1IGwgLTExLjY5OSwtMTEuNjk3IHYgMTEuNjk3IEggLTY0LjM0NCBWIDQyLjg5MyBIIDAgWiBtIC03Mi4xNDYsNTAuNjkyIC0zLjg5OSwtMTUuNTk5IHYgLTcwLjE5IGggMTcuNTUgdiAtOS43NTEgaCA5Ljc0NiBsIDkuNzUyLDkuNzUxIGggMTUuNTk2IEwgNy43OTUsLTMuOTA1IHYgNTQuNTk3IHoiIC8+CiAgICA8L2c+PHBhdGgKICAgaWQ9InBhdGgzMzY5IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjMzMzMzIgogICBkPSJtIDQ0LjE5NzMzMSw2Mi4zOTQyNjYgaCAxMC4zOTg2NyBWIDMxLjE5MjkzMyBoIC0xMC4zOTg2NyB6IG0gMjguNTk0NjcsMCBoIDEwLjM5ODY2IFYgMzEuMTkyOTMzIGggLTEwLjM5ODY2IHoiIC8+Cjwvc3ZnPgo=";
20
20
  export const discordIconUri =
21
21
  "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBpZD0iZGlzY29yZCI+PHBhdGggZmlsbD0iIzY2NjVkMiIgZD0iTTg1LjIyLDI0Ljk1OGMtMTEuNDU5LTguNTc1LTIyLjQzOC04LjMzNC0yMi40MzgtOC4zMzRsLTEuMTIyLDEuMjgyCgkJCQljMTMuNjIzLDQuMDg3LDE5Ljk1NCwxMC4wOTcsMTkuOTU0LDEwLjA5N2MtMTkuNDkxLTEwLjczMS00NC4zMTctMTAuNjU0LTY0LjU5LDBjMCwwLDYuNTcxLTYuMzMxLDIwLjk5Ni0xMC40MThsLTAuODAxLTAuOTYyCgkJCQljMCwwLTEwLjg5OS0wLjI0LTIyLjQzOCw4LjMzNGMwLDAtMTEuNTQsMjAuNzU1LTExLjU0LDQ2LjMxOWMwLDAsNi43MzIsMTEuNTQsMjQuNDQyLDEyLjEwMWMwLDAsMi45NjUtMy41MjYsNS4zNjktNi41NzEKCQkJCWMtMTAuMTc3LTMuMDQ1LTE0LjAyNC05LjM3Ni0xNC4wMjQtOS4zNzZjNi4zOTQsNC4wMDEsMTIuODU5LDYuNTA1LDIwLjkxNiw4LjA5NGMxMy4xMDgsMi42OTgsMjkuNDEzLTAuMDc2LDQxLjU5MS04LjA5NAoJCQkJYzAsMC00LjAwNyw2LjQ5MS0xNC41MDUsOS40NTZjMi40MDQsMi45NjUsNS4yODksNi40MTEsNS4yODksNi40MTFjMTcuNzEtMC41NjEsMjQuNDQxLTEyLjEwMSwyNC40NDEtMTIuMDIKCQkJCUM5Ni43NTksNDUuNzEzLDg1LjIyLDI0Ljk1OCw4NS4yMiwyNC45NTh6IE0zNS4wNTUsNjMuODI0Yy00LjQ4OCwwLTguMTc0LTMuOTI3LTguMTc0LTguODE1CgkJCQljMC4zMjgtMTEuNzA3LDE2LjEwMi0xMS42NzEsMTYuMzQ4LDBDNDMuMjI5LDU5Ljg5NywzOS42MjIsNjMuODI0LDM1LjA1NSw2My44MjR6IE02NC4zMDQsNjMuODI0CgkJCQljLTQuNDg4LDAtOC4xNzQtMy45MjctOC4xNzQtOC44MTVjMC4zNi0xMS42ODQsMTUuOTM3LTExLjY4OSwxNi4zNDgsMEM3Mi40NzgsNTkuODk3LDY4Ljg3Miw2My44MjQsNjQuMzA0LDYzLjgyNHoiPjwvcGF0aD48L3N2Zz4=";
22
+ export const coinbaseIconUri =
23
+ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTU2IiBoZWlnaHQ9IjU1NiIgdmlld0JveD0iMCAwIDU1NiA1NTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xNDhfNSkiPgo8cGF0aCBkPSJNMjc4IDBDNDMxLjUzMyAwIDU1NiAxMjQuNDY3IDU1NiAyNzhDNTU2IDQzMS41MzMgNDMxLjUzMyA1NTYgMjc4IDU1NkMxMjQuNDY3IDU1NiAwIDQzMS41MzMgMCAyNzhDMCAxMjQuNDY3IDEyNC40NjcgMCAyNzggMFoiIGZpbGw9IiMwMDUyRkYiLz4KPHBhdGggZD0iTTI3OC40ODIgMzc1LjE5QzIyNC40OSAzNzUuMTkgMTgwLjg2MiAzMzEuNDEgMTgwLjg2MiAyNzcuNUMxODAuODYyIDIyMy41OSAyMjQuNjEgMTc5LjgxIDI3OC40ODIgMTc5LjgxQzMyNi44MSAxNzkuODEgMzY2Ljk0MyAyMTUuMDI3IDM3NC42NTYgMjYxLjIxOEg0NzNDNDY0LjY4NCAxNjAuODc1IDM4MC44MDMgODIgMjc4LjM2MiA4MkMxNzAuNDk3IDgyIDgzIDE2OS41NTkgODMgMjc3LjVDODMgMzg1LjQ0MSAxNzAuNDk3IDQ3MyAyNzguMzYyIDQ3M0MzODAuODAzIDQ3MyA0NjQuNjg0IDM5NC4xMjUgNDczIDI5My43ODJIMzc0LjUzNkMzNjYuODIzIDMzOS45NzMgMzI2LjgxIDM3NS4xOSAyNzguNDgyIDM3NS4xOVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMTQ4XzUiPgo8cmVjdCB3aWR0aD0iNTU2IiBoZWlnaHQ9IjU1NiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K";
22
24
  export const lineIconUri =
23
25
  "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiB2aWV3Qm94PSIwIDAgMzIwIDMyMCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwNmM3NTU7fS5jbHMtMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPjxnIGlkPSJMSU5FX0xPR08iIGRhdGEtbmFtZT0iTElORSBMT0dPIj48cmVjdCBjbGFzcz0iY2xzLTEiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiByeD0iNzIuMTQiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yNjYuNjYsMTQ0LjkyYzAtNDcuNzQtNDcuODYtODYuNTgtMTA2LjY5LTg2LjU4UzUzLjI4LDk3LjE4LDUzLjI4LDE0NC45MmMwLDQyLjgsMzgsNzguNjUsODkuMjIsODUuNDIsMy40OC43NSw4LjIxLDIuMjksOS40LDUuMjYsMS4wOCwyLjcuNzEsNi45My4zNSw5LjY1LDAsMC0xLjI1LDcuNTMtMS41Miw5LjEzLS40NywyLjctMi4xNSwxMC41NSw5LjI0LDUuNzZzNjEuNDQtMzYuMTgsODMuODItNjEuOTVoMEMyNTkuMjUsMTgxLjI0LDI2Ni42NiwxNjQsMjY2LjY2LDE0NC45MloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMzEuMTYsMTcyLjQ5aC0zMGEyLDIsMCwwLDEtMi0ydjBoMFYxMjMuOTRoMHYwYTIsMiwwLDAsMSwyLTJoMzBhMiwyLDAsMCwxLDIsMnY3LjU3YTIsMiwwLDAsMS0yLDJIMjEwLjc5djcuODVoMjAuMzdhMiwyLDAsMCwxLDIsMlYxNTFhMiwyLDAsMCwxLTIsMkgyMTAuNzl2Ny44NmgyMC4zN2EyLDIsMCwwLDEsMiwydjcuNTZBMiwyLDAsMCwxLDIzMS4xNiwxNzIuNDlaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTIwLjI5LDE3Mi40OWEyLDIsMCwwLDAsMi0ydi03LjU2YTIsMiwwLDAsMC0yLTJIOTkuOTJ2LTM3YTIsMiwwLDAsMC0yLTJIOTAuMzJhMiwyLDAsMCwwLTIsMnY0Ni41M2gwdjBhMiwyLDAsMCwwLDIsMmgzMFoiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjEyOC43MyIgeT0iMTIxLjg1IiB3aWR0aD0iMTEuNjQiIGhlaWdodD0iNTAuNjQiIHJ4PSIyLjA0Ii8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTg5Ljg0LDEyMS44NWgtNy41NmEyLDIsMCwwLDAtMiwydjI3LjY2bC0yMS4zLTI4Ljc3YTEuMiwxLjIsMCwwLDAtLjE3LS4yMXYwbC0uMTItLjEyLDAsMC0uMTEtLjA5LS4wNiwwLS4xMS0uMDgtLjA2LDAtLjExLS4wNi0uMDcsMC0uMTEsMC0uMDcsMC0uMTIsMC0uMDgsMC0uMTIsMGgtLjA4bC0uMTEsMGgtNy43MWEyLDIsMCwwLDAtMiwydjQ2LjU2YTIsMiwwLDAsMCwyLDJoNy41N2EyLDIsMCwwLDAsMi0yVjE0Mi44MWwyMS4zMywyOC44YTIsMiwwLDAsMCwuNTIuNTJoMGwuMTIuMDguMDYsMCwuMS4wNS4xLDAsLjA3LDAsLjE0LDBoMGEyLjQyLDIuNDIsMCwwLDAsLjU0LjA3aDcuNTJhMiwyLDAsMCwwLDItMlYxMjMuODlBMiwyLDAsMCwwLDE4OS44NCwxMjEuODVaIi8+PC9nPjwvZz48L3N2Zz4=";
24
26
  export const farcasterIconUri =
@@ -52,6 +54,7 @@ export const passkeyIcon =
52
54
  export const socialIcons = {
53
55
  google: googleIconUri,
54
56
  apple: appleIconUri,
57
+ coinbase: coinbaseIconUri,
55
58
  facebook: facebookIconUri,
56
59
  discord: discordIconUri,
57
60
  line: lineIconUri,
@@ -65,6 +68,8 @@ export function getWalletIcon(provider: string) {
65
68
  switch (provider) {
66
69
  case "google":
67
70
  return googleIconUri;
71
+ case "coinbase":
72
+ return coinbaseIconUri;
68
73
  case "apple":
69
74
  return appleIconUri;
70
75
  case "facebook":
@@ -30,6 +30,7 @@ import { Spacer } from "../components/spacer.js";
30
30
  import { ThemedText } from "../components/text.js";
31
31
  import {
32
32
  APPLE_ICON,
33
+ COINBASE_ICON,
33
34
  DISCORD_ICON,
34
35
  FACEBOOK_ICON,
35
36
  FARCASTER_ICON,
@@ -53,6 +54,7 @@ const defaultAuthOptions: InAppWalletAuth[] = [
53
54
  const socialIcons = {
54
55
  google: GOOGLE_ICON,
55
56
  facebook: FACEBOOK_ICON,
57
+ coinbase: COINBASE_ICON,
56
58
  apple: APPLE_ICON,
57
59
  discord: DISCORD_ICON,
58
60
  line: LINE_ICON,
@@ -37,6 +37,18 @@ export const DISCORD_ICON = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink
37
37
  </g>
38
38
  </svg>`;
39
39
 
40
+ export const COINBASE_ICON = `<svg width="556" height="556" viewBox="0 0 556 556" fill="none" xmlns="http://www.w3.org/2000/svg">
41
+ <g clip-path="url(#clip0_148_5)">
42
+ <path d="M278 0C431.533 0 556 124.467 556 278C556 431.533 431.533 556 278 556C124.467 556 0 431.533 0 278C0 124.467 124.467 0 278 0Z" fill="#0052FF"/>
43
+ <path d="M278.482 375.19C224.49 375.19 180.862 331.41 180.862 277.5C180.862 223.59 224.61 179.81 278.482 179.81C326.81 179.81 366.943 215.027 374.656 261.218H473C464.684 160.875 380.803 82 278.362 82C170.497 82 83 169.559 83 277.5C83 385.441 170.497 473 278.362 473C380.803 473 464.684 394.125 473 293.782H374.536C366.823 339.973 326.81 375.19 278.482 375.19Z" fill="white"/>
44
+ </g>
45
+ <defs>
46
+ <clipPath id="clip0_148_5">
47
+ <rect width="556" height="556" fill="white"/>
48
+ </clipPath>
49
+ </defs>
50
+ </svg>`;
51
+
40
52
  export const LINE_ICON = `<svg xmlns="http://www.w3.org/2000/svg" width="320" height="320" viewBox="0 0 320 320"><defs><style>.cls-1{fill:#06c755;}.cls-2{fill:#fff;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="LINE_LOGO" data-name="LINE LOGO"><rect class="cls-1" width="320" height="320" rx="72.14"/><path class="cls-2" d="M266.66,144.92c0-47.74-47.86-86.58-106.69-86.58S53.28,97.18,53.28,144.92c0,42.8,38,78.65,89.22,85.42,3.48.75,8.21,2.29,9.4,5.26,1.08,2.7.71,6.93.35,9.65,0,0-1.25,7.53-1.52,9.13-.47,2.7-2.15,10.55,9.24,5.76s61.44-36.18,83.82-61.95h0C259.25,181.24,266.66,164,266.66,144.92Z"/><path class="cls-1" d="M231.16,172.49h-30a2,2,0,0,1-2-2v0h0V123.94h0v0a2,2,0,0,1,2-2h30a2,2,0,0,1,2,2v7.57a2,2,0,0,1-2,2H210.79v7.85h20.37a2,2,0,0,1,2,2V151a2,2,0,0,1-2,2H210.79v7.86h20.37a2,2,0,0,1,2,2v7.56A2,2,0,0,1,231.16,172.49Z"/><path class="cls-1" d="M120.29,172.49a2,2,0,0,0,2-2v-7.56a2,2,0,0,0-2-2H99.92v-37a2,2,0,0,0-2-2H90.32a2,2,0,0,0-2,2v46.53h0v0a2,2,0,0,0,2,2h30Z"/><rect class="cls-1" x="128.73" y="121.85" width="11.64" height="50.64" rx="2.04"/><path class="cls-1" d="M189.84,121.85h-7.56a2,2,0,0,0-2,2v27.66l-21.3-28.77a1.2,1.2,0,0,0-.17-.21v0l-.12-.12,0,0-.11-.09-.06,0-.11-.08-.06,0-.11-.06-.07,0-.11,0-.07,0-.12,0-.08,0-.12,0h-.08l-.11,0h-7.71a2,2,0,0,0-2,2v46.56a2,2,0,0,0,2,2h7.57a2,2,0,0,0,2-2V142.81l21.33,28.8a2,2,0,0,0,.52.52h0l.12.08.06,0,.1.05.1,0,.07,0,.14,0h0a2.42,2.42,0,0,0,.54.07h7.52a2,2,0,0,0,2-2V123.89A2,2,0,0,0,189.84,121.85Z"/></g></g></svg>`;
41
53
 
42
54
  export const FARCASTER_ICON = `<svg width={width} height={height} viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -18,10 +18,19 @@ import { getLastAuthProvider } from "../../../../react/core/utils/storage.js";
18
18
  import { isContractDeployed } from "../../../../utils/bytecode/is-contract-deployed.js";
19
19
  import { formatNumber } from "../../../../utils/formatNumber.js";
20
20
  import { webLocalStorage } from "../../../../utils/storage/webStorage.js";
21
+ import { isEcosystemWallet } from "../../../../wallets/ecosystem/is-ecosystem-wallet.js";
22
+ import type { Ecosystem } from "../../../../wallets/in-app/web/types.js";
21
23
  import type { Account, Wallet } from "../../../../wallets/interfaces/wallet.js";
22
24
  import type { SmartWalletOptions } from "../../../../wallets/smart/types.js";
23
- import type { AppMetadata } from "../../../../wallets/types.js";
24
- import type { WalletId } from "../../../../wallets/wallet-types.js";
25
+ import {
26
+ type AppMetadata,
27
+ type SocialAuthOption,
28
+ socialAuthOptions,
29
+ } from "../../../../wallets/types.js";
30
+ import type {
31
+ EcosystemWalletId,
32
+ WalletId,
33
+ } from "../../../../wallets/wallet-types.js";
25
34
  import {
26
35
  CustomThemeProvider,
27
36
  parseTheme,
@@ -49,6 +58,7 @@ import {
49
58
  import { useActiveAccount } from "../../../core/hooks/wallets/useActiveAccount.js";
50
59
  import { useActiveWallet } from "../../../core/hooks/wallets/useActiveWallet.js";
51
60
  import { useActiveWalletChain } from "../../../core/hooks/wallets/useActiveWalletChain.js";
61
+ import { useAdminWallet } from "../../../core/hooks/wallets/useAdminAccount.js";
52
62
  import { useDisconnect } from "../../../core/hooks/wallets/useDisconnect.js";
53
63
  import { useSwitchActiveWalletChain } from "../../../core/hooks/wallets/useSwitchActiveWalletChain.js";
54
64
  import { SetRootElementContext } from "../../../core/providers/RootElementContext.js";
@@ -1062,6 +1072,7 @@ function InAppWalletUserInfo(props: {
1062
1072
  const { client, locale } = props;
1063
1073
  const account = useActiveAccount();
1064
1074
  const activeWallet = useActiveWallet();
1075
+ const adminWallet = useAdminWallet();
1065
1076
  const { data: walletInfo } = useWalletInfo(activeWallet?.id);
1066
1077
  const isSmartWallet = hasSmartAccount(activeWallet);
1067
1078
  const { data: walletName } = useQuery({
@@ -1071,6 +1082,15 @@ function InAppWalletUserInfo(props: {
1071
1082
  if (lastAuthProvider === "guest") {
1072
1083
  return "Guest";
1073
1084
  }
1085
+ if (
1086
+ lastAuthProvider &&
1087
+ (activeWallet?.id === "inApp" || activeWallet?.id === "smart") &&
1088
+ socialAuthOptions.includes(lastAuthProvider as SocialAuthOption)
1089
+ ) {
1090
+ return (
1091
+ lastAuthProvider.slice(0, 1).toUpperCase() + lastAuthProvider.slice(1)
1092
+ );
1093
+ }
1074
1094
  return walletInfo?.name;
1075
1095
  },
1076
1096
  enabled: !!activeWallet?.id && !!walletInfo,
@@ -1079,6 +1099,24 @@ function InAppWalletUserInfo(props: {
1079
1099
  const userInfoQuery = useQuery({
1080
1100
  queryKey: ["in-app-wallet-user", client, account?.address],
1081
1101
  queryFn: async () => {
1102
+ const isInAppWallet =
1103
+ adminWallet &&
1104
+ (adminWallet.id === "inApp" || adminWallet.id.startsWith("ecosystem."));
1105
+
1106
+ if (!isInAppWallet) {
1107
+ return null;
1108
+ }
1109
+
1110
+ let ecosystem: Ecosystem | undefined;
1111
+ if (isEcosystemWallet(adminWallet)) {
1112
+ const ecosystemWallet = adminWallet as Wallet<EcosystemWalletId>;
1113
+ const partnerId = ecosystemWallet.getConfig()?.partnerId;
1114
+ ecosystem = {
1115
+ id: ecosystemWallet.id,
1116
+ partnerId,
1117
+ };
1118
+ }
1119
+
1082
1120
  const { getUserEmail, getUserPhoneNumber } = await import(
1083
1121
  "../../../../wallets/in-app/web/lib/auth/index.js"
1084
1122
  );
@@ -1086,18 +1124,20 @@ function InAppWalletUserInfo(props: {
1086
1124
  const [email, phone] = await Promise.all([
1087
1125
  getUserEmail({
1088
1126
  client: client,
1127
+ ecosystem,
1089
1128
  }),
1090
1129
  getUserPhoneNumber({
1091
1130
  client: client,
1131
+ ecosystem,
1092
1132
  }),
1093
1133
  ]);
1094
1134
 
1095
1135
  return email || phone || null;
1096
1136
  },
1097
- enabled: !isSmartWallet,
1137
+ enabled: !!adminWallet,
1098
1138
  });
1099
1139
 
1100
- if (isSmartWallet) {
1140
+ if (!userInfoQuery.data && isSmartWallet) {
1101
1141
  return <ConnectedToSmartWallet client={client} connectLocale={locale} />;
1102
1142
  }
1103
1143
 
@@ -111,6 +111,7 @@ export const ConnectWalletSocialOptions = (
111
111
  discord: locale.signInWithDiscord,
112
112
  line: "LINE",
113
113
  x: "X",
114
+ coinbase: "Coinbase",
114
115
  farcaster: "Farcaster",
115
116
  telegram: "Telegram",
116
117
  };
@@ -134,6 +135,27 @@ export const ConnectWalletSocialOptions = (
134
135
  const isEmailEnabled = emailIndex !== -1;
135
136
  const phoneIndex = authOptions.indexOf("phone");
136
137
  const isPhoneEnabled = phoneIndex !== -1;
138
+ const socialLogins: SocialAuthOption[] = authOptions.filter((o) =>
139
+ socialAuthOptions.includes(o as SocialAuthOption),
140
+ ) as SocialAuthOption[];
141
+
142
+ const columnCount = useMemo(() => {
143
+ switch (socialLogins.length) {
144
+ case 7:
145
+ return 4;
146
+ case 6:
147
+ return 4;
148
+ default:
149
+ return 5;
150
+ }
151
+ }, [socialLogins.length]);
152
+
153
+ const socialLoginColumns: SocialAuthOption[][] = useMemo(() => {
154
+ return Array.from(
155
+ { length: Math.ceil(socialLogins.length / columnCount) },
156
+ (_, i) => socialLogins.slice(i * columnCount, (i + 1) * columnCount),
157
+ );
158
+ }, [socialLogins, columnCount]);
137
159
 
138
160
  const [manualInputMode, setManualInputMode] = useState<
139
161
  "email" | "phone" | "none" | null
@@ -174,10 +196,6 @@ export const ConnectWalletSocialOptions = (
174
196
  type = "tel";
175
197
  }
176
198
 
177
- const socialLogins = authOptions.filter((o) =>
178
- socialAuthOptions.includes(o as SocialAuthOption),
179
- );
180
-
181
199
  const hasSocialLogins = socialLogins.length > 0;
182
200
  const ecosystemInfo = isEcosystemWallet(wallet)
183
201
  ? {
@@ -314,49 +332,46 @@ export const ConnectWalletSocialOptions = (
314
332
  )}
315
333
  {/* Social Login */}
316
334
  {hasSocialLogins && (
317
- <Container
318
- flex="row"
319
- center="x"
320
- gap={socialLogins.length > 4 ? "xs" : "sm"}
321
- style={{
322
- justifyContent: "space-between",
323
- display: "grid",
324
- gridTemplateColumns: `repeat(${socialLogins.length}, 1fr)`,
325
- }}
326
- >
327
- {socialLogins.map((loginMethod) => {
328
- const imgIconSize = (() => {
329
- if (!showOnlyIcons) {
330
- return iconSize.md;
331
- }
332
- if (socialLogins.length > 4) {
333
- return iconSize.md;
334
- }
335
- return iconSize.lg;
336
- })();
337
-
338
- return (
339
- <SocialButton
340
- aria-label={`Login with ${loginMethod}`}
341
- data-variant={showOnlyIcons ? "icon" : "full"}
342
- key={loginMethod}
343
- variant={"outline"}
344
- disabled={props.disabled}
345
- onClick={() => {
346
- handleSocialLogin(loginMethod as SocialAuthOption);
347
- }}
348
- >
349
- <Img
350
- src={socialIcons[loginMethod as SocialAuthOption]}
351
- width={imgIconSize}
352
- height={imgIconSize}
353
- client={props.client}
354
- />
355
- {!showOnlyIcons &&
356
- `${socialLogins.length === 1 ? "Continue with " : ""}${loginMethodsLabel[loginMethod as SocialAuthOption]}`}
357
- </SocialButton>
358
- );
359
- })}
335
+ <Container flex="column" gap={socialLogins.length > 4 ? "xs" : "sm"}>
336
+ {socialLoginColumns.map((column) => (
337
+ <SocialButtonRow key={column[0]}>
338
+ {column.map((loginMethod) => {
339
+ const imgIconSize = (() => {
340
+ if (!showOnlyIcons) {
341
+ return iconSize.md;
342
+ }
343
+ if (socialLogins.length > 4) {
344
+ return iconSize.md;
345
+ }
346
+ return iconSize.lg;
347
+ })();
348
+ return (
349
+ <SocialButton
350
+ aria-label={`Login with ${loginMethod}`}
351
+ data-variant={showOnlyIcons ? "icon" : "full"}
352
+ key={loginMethod}
353
+ variant={"outline"}
354
+ disabled={props.disabled}
355
+ onClick={() => {
356
+ handleSocialLogin(loginMethod as SocialAuthOption);
357
+ }}
358
+ style={{
359
+ flexGrow: socialLogins.length < 7 ? 1 : 0,
360
+ }}
361
+ >
362
+ <Img
363
+ src={socialIcons[loginMethod as SocialAuthOption]}
364
+ width={imgIconSize}
365
+ height={imgIconSize}
366
+ client={props.client}
367
+ />
368
+ {!showOnlyIcons &&
369
+ `${socialLogins.length === 1 ? "Continue with " : ""}${loginMethodsLabel[loginMethod as SocialAuthOption]}`}
370
+ </SocialButton>
371
+ );
372
+ })}
373
+ </SocialButtonRow>
374
+ ))}
360
375
  </Container>
361
376
  )}
362
377
 
@@ -475,8 +490,27 @@ export const ConnectWalletSocialOptions = (
475
490
  );
476
491
  };
477
492
 
493
+ const SocialButtonRow = (props: { children: React.ReactNode[] }) => (
494
+ <Container
495
+ flex="row"
496
+ center="x"
497
+ gap={props.children.length > 4 ? "xs" : "sm"}
498
+ style={{
499
+ justifyContent: "center",
500
+ display: "flex",
501
+ ...{
502
+ "& > *": {
503
+ flexBasis: `${100 / props.children.length}%`,
504
+ maxWidth: `${100 / props.children.length}%`,
505
+ },
506
+ },
507
+ }}
508
+ >
509
+ {props.children}
510
+ </Container>
511
+ );
512
+
478
513
  const SocialButton = /* @__PURE__ */ styled(Button)({
479
- flexGrow: 1,
480
514
  "&[data-variant='full']": {
481
515
  display: "flex",
482
516
  justifyContent: "flex-start",
@@ -41,10 +41,11 @@ function getOauthLoginPath(
41
41
  case "line":
42
42
  case "x":
43
43
  case "guest":
44
+ case "coinbase":
44
45
  case "discord":
45
46
  return getLoginUrl({ authOption, client, ecosystem });
46
47
  default:
47
- return "";
48
+ throw new Error(`Unsupported auth option: ${authOption}`);
48
49
  }
49
50
  }
50
51
 
@@ -32,19 +32,26 @@ export function getClientFetch(client: ThirdwebClient, ecosystem?: Ecosystem) {
32
32
  if (!headers) {
33
33
  headers = new Headers();
34
34
  }
35
+ // auth token if secret key === jwt
35
36
  const authToken =
36
37
  client.secretKey && isJWT(client.secretKey)
37
38
  ? client.secretKey
38
39
  : undefined;
40
+ // secret key if secret key !== jwt
41
+ const secretKey =
42
+ client.secretKey && !isJWT(client.secretKey)
43
+ ? client.secretKey
44
+ : undefined;
45
+ const clientId = client.clientId;
39
46
 
40
47
  // if we have an auth token set, use that (thirdweb.com/dashboard sets this for the user)
41
48
  // pay urls should never send the auth token, because we always want the "developer" to be the one making the request, not the "end user"
42
49
  if (authToken && !isPayUrl(url)) {
43
50
  headers.set("authorization", `Bearer ${authToken}`);
44
- } else if (client.secretKey) {
45
- headers.set("x-secret-key", client.secretKey);
46
- } else if (client.clientId) {
47
- headers.set("x-client-id", client.clientId);
51
+ } else if (secretKey) {
52
+ headers.set("x-secret-key", secretKey);
53
+ } else if (clientId) {
54
+ headers.set("x-client-id", clientId);
48
55
  }
49
56
 
50
57
  if (ecosystem) {
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.57.3";
1
+ export const version = "5.58.0";
@@ -67,6 +67,7 @@ export type AuthArgsType = (MultiStepAuthArgsType | SingleStepAuthArgsType) & {
67
67
  export enum RecoveryShareManagement {
68
68
  USER_MANAGED = "USER_MANAGED",
69
69
  CLOUD_MANAGED = "AWS_MANAGED",
70
+ ENCLAVE = "ENCLAVE",
70
71
  }
71
72
 
72
73
  // TODO: remove usage of enums, instead use object with as const
@@ -81,6 +82,7 @@ export enum AuthProvider {
81
82
  APPLE = "Apple",
82
83
  PASSKEY = "Passkey",
83
84
  DISCORD = "Discord",
85
+ COINBASE = "Coinbase",
84
86
  X = "X",
85
87
  LINE = "Line",
86
88
  FARCASTER = "Farcaster",
@@ -133,7 +135,8 @@ export type AuthStoredTokenWithCookieReturnType = {
133
135
  };
134
136
  };
135
137
  export type AuthAndWalletRpcReturnType = AuthStoredTokenWithCookieReturnType & {
136
- walletDetails: SetUpWalletRpcReturnType;
138
+ // Will just be WalletAddressObjectType for enclave wallets
139
+ walletDetails: SetUpWalletRpcReturnType | WalletAddressObjectType;
137
140
  };
138
141
 
139
142
  export type AuthLoginReturnType = { user: InitializedUser };
@@ -151,6 +154,7 @@ export type AuthDetails = (
151
154
  encryptionKey?: string;
152
155
  backupRecoveryCodes?: string[];
153
156
  recoveryShareManagement: RecoveryShareManagement;
157
+ walletType?: "sharded" | "enclave";
154
158
  };
155
159
 
156
160
  export type InitializedUser = {
@@ -239,4 +243,5 @@ export type GetUser =
239
243
 
240
244
  export type GetAuthenticatedUserParams = {
241
245
  client: ThirdwebClient;
246
+ ecosystem?: Ecosystem;
242
247
  };