thirdweb 5.58.0-nightly-3229e1f03c3cbb62ddc8dccf22ad8a8feb0a95f0-20240920000335 → 5.58.1

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 (117) hide show
  1. package/dist/cjs/react/core/hooks/others/useProfiles.js +2 -1
  2. package/dist/cjs/react/core/hooks/others/useProfiles.js.map +1 -1
  3. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +27 -2
  4. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  5. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +11 -0
  6. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
  7. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +4 -1
  8. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  9. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +6 -5
  10. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
  11. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +42 -22
  12. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  13. package/dist/cjs/version.js +1 -1
  14. package/dist/cjs/version.js.map +1 -1
  15. package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js +14 -13
  16. package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
  17. package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js +27 -12
  18. package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
  19. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +2 -2
  20. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  21. package/dist/cjs/wallets/in-app/core/wallet/profiles.js +3 -2
  22. package/dist/cjs/wallets/in-app/core/wallet/profiles.js.map +1 -1
  23. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js +2 -2
  24. package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
  25. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +1 -1
  26. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  27. package/dist/cjs/wallets/in-app/web/lib/auth/index.js +2 -2
  28. package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
  29. package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js +3 -3
  30. package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js.map +1 -1
  31. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +0 -17
  32. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  33. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +14 -1
  34. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  35. package/dist/esm/react/core/hooks/others/useProfiles.js +2 -1
  36. package/dist/esm/react/core/hooks/others/useProfiles.js.map +1 -1
  37. package/dist/esm/react/web/ui/ConnectWallet/Details.js +27 -2
  38. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  39. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +11 -0
  40. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
  41. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +4 -1
  42. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  43. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +6 -5
  44. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
  45. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +42 -22
  46. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  47. package/dist/esm/version.js +1 -1
  48. package/dist/esm/version.js.map +1 -1
  49. package/dist/esm/wallets/in-app/core/authentication/linkAccount.js +14 -13
  50. package/dist/esm/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
  51. package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js +27 -12
  52. package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
  53. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +2 -2
  54. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  55. package/dist/esm/wallets/in-app/core/wallet/profiles.js +3 -2
  56. package/dist/esm/wallets/in-app/core/wallet/profiles.js.map +1 -1
  57. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js +1 -1
  58. package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
  59. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +2 -2
  60. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  61. package/dist/esm/wallets/in-app/web/lib/auth/index.js +2 -2
  62. package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
  63. package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js +4 -4
  64. package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js.map +1 -1
  65. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +0 -17
  66. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  67. package/dist/esm/wallets/in-app/web/lib/web-connector.js +15 -2
  68. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  69. package/dist/types/react/core/hooks/others/useProfiles.d.ts.map +1 -1
  70. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +1 -1
  71. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  72. package/dist/types/react/web/ui/ConnectWallet/screens/LinkProfileScreen.d.ts.map +1 -1
  73. package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts.map +1 -1
  74. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  75. package/dist/types/version.d.ts +1 -1
  76. package/dist/types/version.d.ts.map +1 -1
  77. package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts +5 -2
  78. package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts.map +1 -1
  79. package/dist/types/wallets/in-app/core/authentication/types.d.ts +1 -0
  80. package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
  81. package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts.map +1 -1
  82. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
  83. package/dist/types/wallets/in-app/core/wallet/profiles.d.ts +3 -2
  84. package/dist/types/wallets/in-app/core/wallet/profiles.d.ts.map +1 -1
  85. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +1 -1
  86. package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +1 -1
  87. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +3 -0
  88. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
  89. package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts.map +1 -1
  90. package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -1
  91. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  92. package/package.json +1 -1
  93. package/src/react/core/hooks/others/useProfiles.ts +2 -1
  94. package/src/react/web/ui/ConnectWallet/Details.tsx +44 -4
  95. package/src/react/web/ui/ConnectWallet/screens/LinkProfileScreen.tsx +27 -0
  96. package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +18 -15
  97. package/src/react/web/wallets/ecosystem/EcosystemWalletConnectUI.tsx +6 -6
  98. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +82 -49
  99. package/src/version.ts +1 -1
  100. package/src/wallets/in-app/core/authentication/linkAccount.ts +17 -14
  101. package/src/wallets/in-app/core/authentication/types.ts +1 -0
  102. package/src/wallets/in-app/core/wallet/ecosystem-core.ts +47 -13
  103. package/src/wallets/in-app/core/wallet/in-app-core.ts +2 -5
  104. package/src/wallets/in-app/core/wallet/profiles.ts +6 -4
  105. package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +1 -1
  106. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +5 -2
  107. package/src/wallets/in-app/web/lib/auth/index.ts +2 -2
  108. package/src/wallets/in-app/web/lib/enclave-wallet.ts +5 -4
  109. package/src/wallets/in-app/web/lib/iframe-wallet.ts +0 -21
  110. package/src/wallets/in-app/web/lib/web-connector.ts +20 -2
  111. package/dist/cjs/react/web/wallets/in-app/LinkButton.js +0 -23
  112. package/dist/cjs/react/web/wallets/in-app/LinkButton.js.map +0 -1
  113. package/dist/esm/react/web/wallets/in-app/LinkButton.js +0 -20
  114. package/dist/esm/react/web/wallets/in-app/LinkButton.js.map +0 -1
  115. package/dist/types/react/web/wallets/in-app/LinkButton.d.ts +0 -5
  116. package/dist/types/react/web/wallets/in-app/LinkButton.d.ts.map +0 -1
  117. package/src/react/web/wallets/in-app/LinkButton.tsx +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"enclave-wallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/enclave-wallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAOnE,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,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EACH;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GACxC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GACxC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GAC1C;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KAC3C,EAAE,CAAC;IACJ,OAAO,EACH;QACE;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;SAC7B;KACF,GACD,EAAE,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,qBAAa,aAAc,YAAW,UAAU;IACvC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,YAAY,EAAE,mBAAmB,CAAC;gBAEhC,EACV,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,QAAQ,CAAC;QACV,MAAM,EAAE,cAAc,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAYF;;;;OAIG;IACG,eAAe,CAAC,EACpB,aAAa,EACb,SAAS,GACV,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAKrD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IA0C7C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;CAyGrC"}
1
+ {"version":3,"file":"enclave-wallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/enclave-wallet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAOnE,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,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG;IACvB,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EACH;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GACxC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GACxC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GAC1C;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KAC3C,EAAE,CAAC;IACJ,OAAO,EACH;QACE;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;SAC7B;KACF,GACD,EAAE,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,qBAAa,aAAc,YAAW,UAAU;IACvC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,YAAY,EAAE,mBAAmB,CAAC;gBAEhC,EACV,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,QAAQ,CAAC;QACV,MAAM,EAAE,cAAc,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAYF;;;;OAIG;IACG,eAAe,CAAC,EACpB,aAAa,EACb,SAAS,GACV,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAKrD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IA2C7C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;CAyGrC"}
@@ -1 +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;AAEhE,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;CA0JrC"}
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"}
@@ -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;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;IAiEvB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM;IAqCzC;;;;;;;;;;;;;;;;;;;;;;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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thirdweb",
3
- "version": "5.58.0-nightly-3229e1f03c3cbb62ddc8dccf22ad8a8feb0a95f0-20240920000335",
3
+ "version": "5.58.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/thirdweb-dev/js.git#main"
@@ -1,4 +1,5 @@
1
1
  import { type UseQueryResult, useQuery } from "@tanstack/react-query";
2
+ import { isEcosystemWallet } from "../../../../wallets/ecosystem/is-ecosystem-wallet.js";
2
3
  import type { Profile } from "../../../../wallets/in-app/core/authentication/types.js";
3
4
  import { getProfiles } from "../../../../wallets/in-app/core/wallet/profiles.js";
4
5
  import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
@@ -28,7 +29,7 @@ export function useProfiles(): UseQueryResult<Profile[]> {
28
29
 
29
30
  return useQuery({
30
31
  queryKey: ["profiles", wallet?.id],
31
- enabled: !!wallet && wallet.id === "inApp",
32
+ enabled: !!wallet && (wallet.id === "inApp" || isEcosystemWallet(wallet)),
32
33
  queryFn: async () => {
33
34
  return getProfiles(wallet as Wallet<"inApp">);
34
35
  },
@@ -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
 
@@ -3,10 +3,13 @@ import { CrossCircledIcon } from "@radix-ui/react-icons";
3
3
  import { useQueryClient } from "@tanstack/react-query";
4
4
  import { Suspense, lazy } from "react";
5
5
  import type { ThirdwebClient } from "../../../../../client/client.js";
6
+ import { isEcosystemWallet } from "../../../../../wallets/ecosystem/is-ecosystem-wallet.js";
6
7
  import type { Wallet } from "../../../../../wallets/interfaces/wallet.js";
8
+ import type { EcosystemWalletId } from "../../../../../wallets/wallet-types.js";
7
9
  import { iconSize } from "../../../../core/design-system/index.js";
8
10
  import { useActiveWallet } from "../../../../core/hooks/wallets/useActiveWallet.js";
9
11
  import { useActiveWalletChain } from "../../../../core/hooks/wallets/useActiveWalletChain.js";
12
+ import EcosystemWalletConnectUI from "../../../wallets/ecosystem/EcosystemWalletConnectUI.js";
10
13
  import { LoadingScreen } from "../../../wallets/shared/LoadingScreen.js";
11
14
  import { Container, Line, ModalHeader } from "../../components/basic.js";
12
15
  import { Text } from "../../components/text.js";
@@ -58,6 +61,30 @@ export function LinkProfileScreen(props: {
58
61
  );
59
62
  }
60
63
 
64
+ if (isEcosystemWallet(activeWallet)) {
65
+ return (
66
+ <Suspense fallback={<LoadingScreen />}>
67
+ <EcosystemWalletConnectUI
68
+ wallet={activeWallet as Wallet<EcosystemWalletId>}
69
+ done={() => {
70
+ queryClient.invalidateQueries({ queryKey: ["profiles"] });
71
+ props.onBack();
72
+ }}
73
+ connectLocale={props.locale}
74
+ client={props.client}
75
+ size="compact"
76
+ chain={chain}
77
+ meta={{
78
+ title: props.locale.manageWallet.linkProfile,
79
+ showThirdwebBranding: false,
80
+ }}
81
+ isLinking={true}
82
+ goBack={props.onBack}
83
+ />
84
+ </Suspense>
85
+ );
86
+ }
87
+
61
88
  return (
62
89
  <Container
63
90
  style={{
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { ShuffleIcon } from "@radix-ui/react-icons";
3
3
  import type { ThirdwebClient } from "../../../../../client/client.js";
4
+ import { isEcosystemWallet } from "../../../../../wallets/ecosystem/is-ecosystem-wallet.js";
4
5
  import { isInAppWallet } from "../../../../../wallets/in-app/core/wallet/index.js";
5
6
  import { injectedProvider } from "../../../../../wallets/injected/mipdStore.js";
6
7
  import { fontSize, iconSize } from "../../../../core/design-system/index.js";
@@ -56,21 +57,23 @@ export function ManageWalletScreen(props: {
56
57
  />
57
58
 
58
59
  {/* Multi-auth */}
59
- {activeWallet?.id === "inApp" && (
60
- <MenuButton
61
- onClick={() => {
62
- props.setScreen("linked-profiles");
63
- }}
64
- style={{
65
- fontSize: fontSize.sm,
66
- }}
67
- >
68
- <MultiUserIcon size={iconSize.md} />
69
- <Text color="primaryText">
70
- {props.locale.manageWallet.linkedProfiles}
71
- </Text>
72
- </MenuButton>
73
- )}
60
+ {activeWallet &&
61
+ (activeWallet?.id === "inApp" ||
62
+ isEcosystemWallet(activeWallet)) && (
63
+ <MenuButton
64
+ onClick={() => {
65
+ props.setScreen("linked-profiles");
66
+ }}
67
+ style={{
68
+ fontSize: fontSize.sm,
69
+ }}
70
+ >
71
+ <MultiUserIcon size={iconSize.md} />
72
+ <Text color="primaryText">
73
+ {props.locale.manageWallet.linkedProfiles}
74
+ </Text>
75
+ </MenuButton>
76
+ )}
74
77
 
75
78
  {/* Wallet Connect Receiver */}
76
79
  <MenuButton
@@ -47,12 +47,12 @@ function EcosystemWalletConnectUI(props: {
47
47
  return <LoadingScreen />;
48
48
  }
49
49
 
50
- const goBackToMain =
51
- props.size === "compact"
52
- ? props.goBack
53
- : () => {
54
- setSelectionData({});
55
- };
50
+ const goBackToMain = () => {
51
+ if (props.size === "compact") {
52
+ props.goBack?.();
53
+ }
54
+ setSelectionData({});
55
+ };
56
56
 
57
57
  const done = () => {
58
58
  props.done();
@@ -135,6 +135,27 @@ export const ConnectWalletSocialOptions = (
135
135
  const isEmailEnabled = emailIndex !== -1;
136
136
  const phoneIndex = authOptions.indexOf("phone");
137
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]);
138
159
 
139
160
  const [manualInputMode, setManualInputMode] = useState<
140
161
  "email" | "phone" | "none" | null
@@ -175,10 +196,6 @@ export const ConnectWalletSocialOptions = (
175
196
  type = "tel";
176
197
  }
177
198
 
178
- const socialLogins = authOptions.filter((o) =>
179
- socialAuthOptions.includes(o as SocialAuthOption),
180
- );
181
-
182
199
  const hasSocialLogins = socialLogins.length > 0;
183
200
  const ecosystemInfo = isEcosystemWallet(wallet)
184
201
  ? {
@@ -249,7 +266,7 @@ export const ConnectWalletSocialOptions = (
249
266
 
250
267
  const connectPromise = (() => {
251
268
  if (props.isLinking) {
252
- if (wallet.id !== "inApp") {
269
+ if (wallet.id !== "inApp" && !isEcosystemWallet(wallet)) {
253
270
  throw new Error("Only in-app wallets support multi-auth");
254
271
  }
255
272
  return linkProfile(wallet, connectOptions);
@@ -315,49 +332,46 @@ export const ConnectWalletSocialOptions = (
315
332
  )}
316
333
  {/* Social Login */}
317
334
  {hasSocialLogins && (
318
- <Container
319
- flex="row"
320
- center="x"
321
- gap={socialLogins.length > 4 ? "xs" : "sm"}
322
- style={{
323
- justifyContent: "space-between",
324
- display: "grid",
325
- gridTemplateColumns: `repeat(${socialLogins.length}, 1fr)`,
326
- }}
327
- >
328
- {socialLogins.map((loginMethod) => {
329
- const imgIconSize = (() => {
330
- if (!showOnlyIcons) {
331
- return iconSize.md;
332
- }
333
- if (socialLogins.length > 4) {
334
- return iconSize.md;
335
- }
336
- return iconSize.lg;
337
- })();
338
-
339
- return (
340
- <SocialButton
341
- aria-label={`Login with ${loginMethod}`}
342
- data-variant={showOnlyIcons ? "icon" : "full"}
343
- key={loginMethod}
344
- variant={"outline"}
345
- disabled={props.disabled}
346
- onClick={() => {
347
- handleSocialLogin(loginMethod as SocialAuthOption);
348
- }}
349
- >
350
- <Img
351
- src={socialIcons[loginMethod as SocialAuthOption]}
352
- width={imgIconSize}
353
- height={imgIconSize}
354
- client={props.client}
355
- />
356
- {!showOnlyIcons &&
357
- `${socialLogins.length === 1 ? "Continue with " : ""}${loginMethodsLabel[loginMethod as SocialAuthOption]}`}
358
- </SocialButton>
359
- );
360
- })}
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
+ ))}
361
375
  </Container>
362
376
  )}
363
377
 
@@ -476,8 +490,27 @@ export const ConnectWalletSocialOptions = (
476
490
  );
477
491
  };
478
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
+
479
513
  const SocialButton = /* @__PURE__ */ styled(Button)({
480
- flexGrow: 1,
481
514
  "&[data-variant='full']": {
482
515
  display: "flex",
483
516
  justifyContent: "flex-start",
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.58.0-nightly-3229e1f03c3cbb62ddc8dccf22ad8a8feb0a95f0-20240920000335";
1
+ export const version = "5.58.1";
@@ -1,5 +1,7 @@
1
1
  import type { ThirdwebClient } from "../../../../client/client.js";
2
2
  import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
3
+ import { getClientFetch } from "../../../../utils/fetch.js";
4
+ import type { Ecosystem } from "../../web/types.js";
3
5
  import type { Profile } from "./types.js";
4
6
 
5
7
  /**
@@ -11,14 +13,17 @@ import type { Profile } from "./types.js";
11
13
  */
12
14
  export async function linkAccount({
13
15
  client,
16
+ ecosystem,
14
17
  tokenToLink,
15
18
  }: {
16
19
  client: ThirdwebClient;
20
+ ecosystem?: Ecosystem;
17
21
  tokenToLink: string;
18
22
  }): Promise<Profile[]> {
23
+ const clientFetch = getClientFetch(client, ecosystem);
19
24
  const IN_APP_URL = getThirdwebBaseUrl("inAppWallet");
20
25
  const currentAccountToken = localStorage.getItem(
21
- `walletToken-${client.clientId}`,
26
+ `walletToken-${client.clientId}${ecosystem?.id ? `-${ecosystem.id}` : ""}`,
22
27
  );
23
28
 
24
29
  if (!currentAccountToken) {
@@ -26,12 +31,10 @@ export async function linkAccount({
26
31
  }
27
32
 
28
33
  const headers: Record<string, string> = {
29
- "Content-Type": "application/json",
30
34
  Authorization: `Bearer iaw-auth-token:${currentAccountToken}`,
31
- "x-thirdweb-client-id": client.clientId,
35
+ "Content-Type": "application/json",
32
36
  };
33
-
34
- const linkedDetailsResp = await fetch(
37
+ const linkedDetailsResp = await clientFetch(
35
38
  `${IN_APP_URL}/api/2024-05-05/account/connect`,
36
39
  {
37
40
  method: "POST",
@@ -61,23 +64,23 @@ export async function linkAccount({
61
64
  */
62
65
  export async function getLinkedProfilesInternal({
63
66
  client,
64
- }: { client: ThirdwebClient }): Promise<Profile[]> {
67
+ ecosystem,
68
+ }: { client: ThirdwebClient; ecosystem?: Ecosystem }): Promise<Profile[]> {
69
+ const clientFetch = getClientFetch(client, ecosystem);
65
70
  const IN_APP_URL = getThirdwebBaseUrl("inAppWallet");
66
71
  const currentAccountToken = localStorage.getItem(
67
- `walletToken-${client.clientId}`,
72
+ `walletToken-${client.clientId}${ecosystem?.id ? `-${ecosystem.id}` : ""}`,
68
73
  );
69
74
 
70
- if (!currentAccountToken) {
71
- throw new Error("Failed to get linked accounts, no user logged in");
72
- }
73
-
74
75
  const headers: Record<string, string> = {
75
- "Content-Type": "application/json",
76
76
  Authorization: `Bearer iaw-auth-token:${currentAccountToken}`,
77
- "x-thirdweb-client-id": client.clientId,
77
+ "Content-Type": "application/json",
78
78
  };
79
+ if (!currentAccountToken) {
80
+ throw new Error("Failed to get linked accounts, no user logged in");
81
+ }
79
82
 
80
- const linkedAccountsResp = await fetch(
83
+ const linkedAccountsResp = await clientFetch(
81
84
  `${IN_APP_URL}/api/2024-05-05/accounts`,
82
85
  {
83
86
  method: "GET",
@@ -243,4 +243,5 @@ export type GetUser =
243
243
 
244
244
  export type GetAuthenticatedUserParams = {
245
245
  client: ThirdwebClient;
246
+ ecosystem?: Ecosystem;
246
247
  };
@@ -8,6 +8,16 @@ import type {
8
8
  CreateWalletArgs,
9
9
  EcosystemWalletId,
10
10
  } from "../../../wallet-types.js";
11
+ import type { Ecosystem } from "../../web/types.js";
12
+ import {
13
+ getLinkedProfilesInternal,
14
+ linkAccount as linkProfileWithToken,
15
+ } from "../authentication/linkAccount.js";
16
+ import type {
17
+ MultiStepAuthArgsType,
18
+ Profile,
19
+ SingleStepAuthArgsType,
20
+ } from "../authentication/types.js";
11
21
  import type { InAppConnector } from "../interfaces/connector.js";
12
22
  import { getOrCreateInAppWalletConnector } from "./in-app-core.js";
13
23
 
@@ -25,6 +35,10 @@ export function createEcosystemWallet(args: {
25
35
  let account: Account | undefined = undefined;
26
36
  let chain: Chain | undefined = undefined;
27
37
  let client: ThirdwebClient | undefined;
38
+ const ecosystem: Ecosystem = {
39
+ id,
40
+ partnerId: createOptions?.partnerId,
41
+ };
28
42
 
29
43
  return {
30
44
  id,
@@ -38,7 +52,13 @@ export function createEcosystemWallet(args: {
38
52
  return chain;
39
53
  },
40
54
  getConfig: () => createOptions,
55
+ getProfiles: async () => {
56
+ if (!client) {
57
+ return [];
58
+ }
41
59
 
60
+ return getLinkedProfilesInternal({ client, ecosystem });
61
+ },
42
62
  getAccount: () => account,
43
63
  autoConnect: async (options) => {
44
64
  const { autoConnectInAppWallet } = await import("./index.js");
@@ -46,10 +66,7 @@ export function createEcosystemWallet(args: {
46
66
  const connector = await getOrCreateInAppWalletConnector(
47
67
  options.client,
48
68
  connectorFactory,
49
- {
50
- id,
51
- partnerId: createOptions?.partnerId,
52
- },
69
+ ecosystem,
53
70
  );
54
71
 
55
72
  const [connectedAccount, connectedChain] = await autoConnectInAppWallet(
@@ -75,10 +92,7 @@ export function createEcosystemWallet(args: {
75
92
  const connector = await getOrCreateInAppWalletConnector(
76
93
  options.client,
77
94
  connectorFactory,
78
- {
79
- id,
80
- partnerId: createOptions?.partnerId,
81
- },
95
+ ecosystem,
82
96
  );
83
97
 
84
98
  const [connectedAccount, connectedChain] = await connectInAppWallet(
@@ -104,10 +118,7 @@ export function createEcosystemWallet(args: {
104
118
  const connector = await getOrCreateInAppWalletConnector(
105
119
  client,
106
120
  connectorFactory,
107
- {
108
- id,
109
- partnerId: createOptions?.partnerId,
110
- },
121
+ ecosystem,
111
122
  );
112
123
  const result = await connector.logout();
113
124
  if (!result.success) {
@@ -122,5 +133,28 @@ export function createEcosystemWallet(args: {
122
133
  chain = newChain;
123
134
  emitter.emit("chainChanged", newChain);
124
135
  },
125
- };
136
+ // This is not included on the global interface but is force-resolved in linkProfile
137
+ linkProfile: async (
138
+ options: SingleStepAuthArgsType | MultiStepAuthArgsType,
139
+ ): Promise<Profile[]> => {
140
+ if (!client) {
141
+ throw new Error(
142
+ "No client found, please connect the wallet before linking a profile",
143
+ );
144
+ }
145
+
146
+ const connector = await getOrCreateInAppWalletConnector(
147
+ client,
148
+ connectorFactory,
149
+ ecosystem,
150
+ );
151
+
152
+ const { storedToken } = await connector.authenticate(options);
153
+ return await linkProfileWithToken({
154
+ client,
155
+ ecosystem,
156
+ tokenToLink: storedToken.cookieString,
157
+ });
158
+ },
159
+ } as Wallet<EcosystemWalletId>;
126
160
  }
@@ -17,10 +17,7 @@ import type {
17
17
  } from "../authentication/types.js";
18
18
  import type { InAppConnector } from "../interfaces/connector.js";
19
19
 
20
- const connectorCache = new WeakMap<
21
- { client: ThirdwebClient; ecosystem?: Ecosystem },
22
- InAppConnector
23
- >();
20
+ const connectorCache = new Map<string, InAppConnector>();
24
21
 
25
22
  /**
26
23
  * @internal
@@ -30,7 +27,7 @@ export async function getOrCreateInAppWalletConnector(
30
27
  connectorFactory: (client: ThirdwebClient) => Promise<InAppConnector>,
31
28
  ecosystem?: Ecosystem,
32
29
  ) {
33
- const key = { client, ecosystem };
30
+ const key = JSON.stringify({ clientId: client.clientId, ecosystem });
34
31
  if (connectorCache.has(key)) {
35
32
  return connectorCache.get(key) as InAppConnector;
36
33
  }