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.
- package/dist/cjs/react/core/hooks/others/useProfiles.js +2 -1
- package/dist/cjs/react/core/hooks/others/useProfiles.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +27 -2
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +11 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +4 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
- package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +6 -5
- package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +42 -22
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js +14 -13
- package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js +27 -12
- package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +2 -2
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/profiles.js +3 -2
- package/dist/cjs/wallets/in-app/core/wallet/profiles.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js +2 -2
- package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js +2 -2
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js +3 -3
- package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +0 -17
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +14 -1
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/react/core/hooks/others/useProfiles.js +2 -1
- package/dist/esm/react/core/hooks/others/useProfiles.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +27 -2
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +11 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +4 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
- package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +6 -5
- package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +42 -22
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/linkAccount.js +14 -13
- package/dist/esm/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js +27 -12
- package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +2 -2
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/profiles.js +3 -2
- package/dist/esm/wallets/in-app/core/wallet/profiles.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +2 -2
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/index.js +2 -2
- package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js +4 -4
- package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +0 -17
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +15 -2
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/types/react/core/hooks/others/useProfiles.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/LinkProfileScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts +5 -2
- package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/types.d.ts +1 -0
- package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/profiles.d.ts +3 -2
- package/dist/types/wallets/in-app/core/wallet/profiles.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +3 -0
- package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/react/core/hooks/others/useProfiles.ts +2 -1
- package/src/react/web/ui/ConnectWallet/Details.tsx +44 -4
- package/src/react/web/ui/ConnectWallet/screens/LinkProfileScreen.tsx +27 -0
- package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +18 -15
- package/src/react/web/wallets/ecosystem/EcosystemWalletConnectUI.tsx +6 -6
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +82 -49
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/authentication/linkAccount.ts +17 -14
- package/src/wallets/in-app/core/authentication/types.ts +1 -0
- package/src/wallets/in-app/core/wallet/ecosystem-core.ts +47 -13
- package/src/wallets/in-app/core/wallet/in-app-core.ts +2 -5
- package/src/wallets/in-app/core/wallet/profiles.ts +6 -4
- package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +1 -1
- package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +5 -2
- package/src/wallets/in-app/web/lib/auth/index.ts +2 -2
- package/src/wallets/in-app/web/lib/enclave-wallet.ts +5 -4
- package/src/wallets/in-app/web/lib/iframe-wallet.ts +0 -21
- package/src/wallets/in-app/web/lib/web-connector.ts +20 -2
- package/dist/cjs/react/web/wallets/in-app/LinkButton.js +0 -23
- package/dist/cjs/react/web/wallets/in-app/LinkButton.js.map +0 -1
- package/dist/esm/react/web/wallets/in-app/LinkButton.js +0 -20
- package/dist/esm/react/web/wallets/in-app/LinkButton.js.map +0 -1
- package/dist/types/react/web/wallets/in-app/LinkButton.d.ts +0 -5
- package/dist/types/react/web/wallets/in-app/LinkButton.d.ts.map +0 -1
- 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;
|
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;
|
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;
|
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,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
|
24
|
-
|
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:
|
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
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
{
|
71
|
-
|
72
|
-
|
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
|
-
|
53
|
-
|
54
|
-
|
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
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
return
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
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.
|
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
|
-
"
|
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
|
-
|
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
|
-
"
|
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
|
83
|
+
const linkedAccountsResp = await clientFetch(
|
81
84
|
`${IN_APP_URL}/api/2024-05-05/accounts`,
|
82
85
|
{
|
83
86
|
method: "GET",
|
@@ -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
|
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
|
}
|