thirdweb 5.57.2 → 5.58.0-nightly-3229e1f03c3cbb62ddc8dccf22ad8a8feb0a95f0-20240920000335
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/exports/extensions/erc1155.js +3 -2
- package/dist/cjs/exports/extensions/erc1155.js.map +1 -1
- package/dist/cjs/extensions/erc1155/drops/read/getClaimConditions.js +1 -1
- package/dist/cjs/extensions/erc1155/drops/read/getClaimConditions.js.map +1 -1
- package/dist/cjs/extensions/erc20/drops/read/getClaimConditions.js +1 -1
- package/dist/cjs/extensions/erc20/drops/read/getClaimConditions.js.map +1 -1
- package/dist/cjs/extensions/erc721/drops/read/getClaimConditions.js +1 -1
- package/dist/cjs/extensions/erc721/drops/read/getClaimConditions.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +3 -1
- package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/cjs/react/core/utils/walletIcon.js +5 -1
- package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -0
- package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/cjs/react/native/ui/icons/svgs.js +12 -1
- package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +3 -2
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +3 -2
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
- package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js +2 -1
- package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/cjs/utils/fetch.js +10 -4
- package/dist/cjs/utils/fetch.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/types.js +2 -0
- package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/native-connector.js +1 -0
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +1 -0
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/generate-wallet.enclave.js +26 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js +31 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js +30 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +28 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +27 -0
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +42 -5
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js +195 -0
- package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js +14 -0
- package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/{in-app-account.js → iframe-wallet.js} +8 -5
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -0
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js +98 -37
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/web-wallet.js +3 -0
- package/dist/cjs/wallets/in-app/web/lib/web-wallet.js.map +1 -0
- package/dist/cjs/wallets/types.js +1 -0
- package/dist/cjs/wallets/types.js.map +1 -1
- package/dist/esm/exports/extensions/erc1155.js +1 -1
- package/dist/esm/exports/extensions/erc1155.js.map +1 -1
- package/dist/esm/extensions/erc1155/drops/read/getClaimConditions.js +1 -1
- package/dist/esm/extensions/erc1155/drops/read/getClaimConditions.js.map +1 -1
- package/dist/esm/extensions/erc20/drops/read/getClaimConditions.js +1 -1
- package/dist/esm/extensions/erc20/drops/read/getClaimConditions.js.map +1 -1
- package/dist/esm/extensions/erc721/drops/read/getClaimConditions.js +1 -1
- package/dist/esm/extensions/erc721/drops/read/getClaimConditions.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +3 -1
- package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/esm/react/core/utils/walletIcon.js +4 -0
- package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js +2 -1
- package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
- package/dist/esm/react/native/ui/icons/svgs.js +11 -0
- package/dist/esm/react/native/ui/icons/svgs.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +3 -2
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +3 -2
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +1 -0
- package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js +2 -1
- package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -1
- package/dist/esm/utils/fetch.js +10 -4
- package/dist/esm/utils/fetch.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/types.js +2 -0
- package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/esm/wallets/in-app/native/native-connector.js +1 -0
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +1 -0
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/generate-wallet.enclave.js +23 -0
- package/dist/esm/wallets/in-app/web/lib/actions/generate-wallet.enclave.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js +28 -0
- package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js +27 -0
- package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +25 -0
- package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +24 -0
- package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +42 -5
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js +191 -0
- package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/get-auth-token.js +11 -0
- package/dist/esm/wallets/in-app/web/lib/get-auth-token.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/{in-app-account.js → iframe-wallet.js} +8 -5
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -0
- package/dist/esm/wallets/in-app/web/lib/web-connector.js +98 -37
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/web-wallet.js +2 -0
- package/dist/esm/wallets/in-app/web/lib/web-wallet.js.map +1 -0
- package/dist/esm/wallets/types.js +1 -0
- package/dist/esm/wallets/types.js.map +1 -1
- package/dist/types/exports/extensions/erc1155.d.ts +1 -1
- package/dist/types/exports/extensions/erc1155.d.ts.map +1 -1
- package/dist/types/react/core/hooks/connection/types.d.ts +5 -0
- package/dist/types/react/core/hooks/connection/types.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
- package/dist/types/react/core/utils/walletIcon.d.ts +3 -1
- package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
- package/dist/types/react/native/ui/icons/svgs.d.ts +1 -0
- package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -1
- package/dist/types/utils/fetch.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/types.d.ts +5 -2
- package/dist/types/wallets/in-app/core/authentication/types.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/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +1 -0
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts +15 -0
- package/dist/types/wallets/in-app/web/lib/actions/generate-wallet.enclave.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts +14 -0
- package/dist/types/wallets/in-app/web/lib/actions/get-enclave-user-status.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts +17 -0
- package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts +9 -0
- package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts +16 -0
- package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts +2 -1
- 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 +61 -0
- package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts +4 -0
- package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/{in-app-account.d.ts → iframe-wallet.d.ts} +5 -8
- package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -0
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +4 -2
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts +15 -0
- package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts.map +1 -0
- package/dist/types/wallets/types.d.ts +2 -2
- package/dist/types/wallets/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/exports/extensions/erc1155.ts +1 -0
- package/src/extensions/erc1155/drops/read/getClaimConditions.ts +1 -1
- package/src/extensions/erc20/drops/read/getClaimConditions.ts +1 -1
- package/src/extensions/erc721/drops/read/getClaimConditions.ts +1 -1
- package/src/extensions/prebuilts/deploy-published.test.ts +34 -1
- package/src/react/core/hooks/connection/types.ts +6 -0
- package/src/react/core/hooks/wallets/useAutoConnect.ts +4 -1
- package/src/react/core/utils/walletIcon.ts +5 -0
- package/src/react/native/ui/connect/InAppWalletUI.tsx +2 -0
- package/src/react/native/ui/icons/svgs.ts +12 -0
- package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +5 -1
- package/src/react/web/ui/ConnectWallet/Details.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +5 -1
- package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +1 -0
- package/src/react/web/wallets/shared/oauthSignIn.ts +2 -1
- package/src/utils/fetch.ts +11 -4
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/authentication/types.ts +5 -1
- package/src/wallets/in-app/core/wallet/in-app-core.ts +1 -0
- package/src/wallets/in-app/native/native-connector.ts +1 -0
- package/src/wallets/in-app/web/in-app.ts +1 -0
- package/src/wallets/in-app/web/lib/actions/generate-wallet.enclave.ts +44 -0
- package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +44 -0
- package/src/wallets/in-app/web/lib/actions/sign-message.enclave.ts +52 -0
- package/src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts +48 -0
- package/src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts +51 -0
- package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +42 -6
- package/src/wallets/in-app/web/lib/enclave-wallet.ts +244 -0
- package/src/wallets/in-app/web/lib/get-auth-token.ts +17 -0
- package/src/wallets/in-app/web/lib/{in-app-account.ts → iframe-wallet.ts} +14 -15
- package/src/wallets/in-app/web/lib/web-connector.ts +107 -39
- package/src/wallets/in-app/web/lib/web-wallet.ts +23 -0
- package/src/wallets/types.ts +1 -0
- package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +0 -1
- package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +0 -1
- package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +0 -1
@@ -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;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"}
|
@@ -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;
|
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"}
|
@@ -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,
|
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
@@ -27,7 +27,7 @@ export async function getClaimConditions(
|
|
27
27
|
const conditionPromises: Array<
|
28
28
|
ReturnType<typeof MultiById.getClaimConditionById>
|
29
29
|
> = [];
|
30
|
-
for (let i = startId; i < count; i++) {
|
30
|
+
for (let i = startId; i < startId + count; i++) {
|
31
31
|
conditionPromises.push(
|
32
32
|
MultiById.getClaimConditionById({
|
33
33
|
...options,
|
@@ -24,7 +24,7 @@ export async function getClaimConditions(
|
|
24
24
|
const conditionPromises: Array<
|
25
25
|
ReturnType<typeof MultiById.getClaimConditionById>
|
26
26
|
> = [];
|
27
|
-
for (let i = startId; i < count; i++) {
|
27
|
+
for (let i = startId; i < startId + count; i++) {
|
28
28
|
conditionPromises.push(
|
29
29
|
MultiById.getClaimConditionById({
|
30
30
|
...options,
|
@@ -24,7 +24,7 @@ export async function getClaimConditions(
|
|
24
24
|
const conditionPromises: Array<
|
25
25
|
ReturnType<typeof MultiById.getClaimConditionById>
|
26
26
|
> = [];
|
27
|
-
for (let i = startId; i < count; i++) {
|
27
|
+
for (let i = startId; i < startId + count; i++) {
|
28
28
|
conditionPromises.push(
|
29
29
|
MultiById.getClaimConditionById({
|
30
30
|
...options,
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
2
|
-
import {
|
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
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { Chain } from "../../../../chains/types.js";
|
1
2
|
import type { ThirdwebClient } from "../../../../client/client.js";
|
2
3
|
import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
|
3
4
|
import type { SmartWalletOptions } from "../../../../wallets/smart/types.js";
|
@@ -107,4 +108,9 @@ export type AutoConnectProps = {
|
|
107
108
|
* ```
|
108
109
|
*/
|
109
110
|
onConnect?: (wallet: Wallet) => void;
|
111
|
+
|
112
|
+
/**
|
113
|
+
* Optional chain to autoconnect to
|
114
|
+
*/
|
115
|
+
chain?: Chain;
|
110
116
|
};
|
@@ -56,7 +56,10 @@ export function useAutoConnectCore(
|
|
56
56
|
return autoConnected;
|
57
57
|
}
|
58
58
|
|
59
|
-
|
59
|
+
// this flow can actually be used for a first connection in the case of a redirect
|
60
|
+
// in that case, we default to the passed chain to connect to
|
61
|
+
const lastConnectedChain =
|
62
|
+
(await getLastConnectedChain(storage)) || props.chain;
|
60
63
|
|
61
64
|
async function handleWalletConnection(wallet: Wallet) {
|
62
65
|
return wallet.autoConnect({
|
@@ -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">
|
@@ -293,8 +293,12 @@ export function ConnectButton(props: ConnectButtonProps) {
|
|
293
293
|
: props.connectModal?.size || "compact";
|
294
294
|
}, [wallets.length, props.connectModal?.size]);
|
295
295
|
|
296
|
+
const preferredChain =
|
297
|
+
props.accountAbstraction?.chain || props.chain || props.chains?.[0];
|
298
|
+
|
296
299
|
const autoConnectComp = props.autoConnect !== false && (
|
297
300
|
<AutoConnect
|
301
|
+
chain={preferredChain}
|
298
302
|
appMetadata={props.appMetadata}
|
299
303
|
client={props.client}
|
300
304
|
wallets={wallets}
|
@@ -336,7 +340,7 @@ export function ConnectButton(props: ConnectButtonProps) {
|
|
336
340
|
shouldSetActive={true}
|
337
341
|
accountAbstraction={props.accountAbstraction}
|
338
342
|
auth={props.auth}
|
339
|
-
chain={
|
343
|
+
chain={preferredChain}
|
340
344
|
chains={props.chains}
|
341
345
|
client={props.client}
|
342
346
|
connectLocale={localeQuery.data}
|
@@ -238,8 +238,12 @@ export function ConnectEmbed(props: ConnectEmbedProps) {
|
|
238
238
|
props.requireApproval,
|
239
239
|
]);
|
240
240
|
|
241
|
+
const preferredChain =
|
242
|
+
props.accountAbstraction?.chain || props.chain || props.chains?.[0];
|
243
|
+
|
241
244
|
const autoConnectComp = props.autoConnect !== false && (
|
242
245
|
<AutoConnect
|
246
|
+
chain={preferredChain}
|
243
247
|
appMetadata={props.appMetadata}
|
244
248
|
client={props.client}
|
245
249
|
wallets={wallets}
|
@@ -272,7 +276,7 @@ export function ConnectEmbed(props: ConnectEmbedProps) {
|
|
272
276
|
<ConnectEmbedContent
|
273
277
|
auth={props.auth}
|
274
278
|
accountAbstraction={props.accountAbstraction}
|
275
|
-
chain={
|
279
|
+
chain={preferredChain}
|
276
280
|
chains={props.chains}
|
277
281
|
client={props.client}
|
278
282
|
connectLocale={localeQuery.data}
|
@@ -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
|
-
|
48
|
+
throw new Error(`Unsupported auth option: ${authOption}`);
|
48
49
|
}
|
49
50
|
}
|
50
51
|
|
package/src/utils/fetch.ts
CHANGED
@@ -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 (
|
45
|
-
headers.set("x-secret-key",
|
46
|
-
} else if (
|
47
|
-
headers.set("x-client-id",
|
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.
|
1
|
+
export const version = "5.58.0-nightly-3229e1f03c3cbb62ddc8dccf22ad8a8feb0a95f0-20240920000335";
|
@@ -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
|
-
|
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 = {
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
|
+
import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
3
|
+
import { getClientFetch } from "../../../../../utils/fetch.js";
|
4
|
+
import type { Ecosystem } from "../../types.js";
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Generate a new enclave wallet using an auth token
|
8
|
+
* @internal
|
9
|
+
*/
|
10
|
+
export async function generateWallet({
|
11
|
+
authToken,
|
12
|
+
client,
|
13
|
+
ecosystem,
|
14
|
+
}: {
|
15
|
+
client: ThirdwebClient;
|
16
|
+
ecosystem: Ecosystem;
|
17
|
+
authToken: string;
|
18
|
+
}) {
|
19
|
+
const clientFetch = getClientFetch(client, ecosystem);
|
20
|
+
const response = await clientFetch(
|
21
|
+
`${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/generate`,
|
22
|
+
{
|
23
|
+
method: "POST",
|
24
|
+
headers: {
|
25
|
+
"Content-Type": "application/json",
|
26
|
+
"x-thirdweb-client-id": client.clientId,
|
27
|
+
Authorization: `Bearer embedded-wallet-token:${authToken}`,
|
28
|
+
},
|
29
|
+
},
|
30
|
+
);
|
31
|
+
|
32
|
+
if (!response.ok) {
|
33
|
+
throw new Error("Failed to generate wallet");
|
34
|
+
}
|
35
|
+
|
36
|
+
const { wallet } = (await response.json()) as {
|
37
|
+
wallet: {
|
38
|
+
address: string;
|
39
|
+
type: "enclave";
|
40
|
+
};
|
41
|
+
};
|
42
|
+
|
43
|
+
return wallet;
|
44
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
|
+
import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
3
|
+
import { getClientFetch } from "../../../../../utils/fetch.js";
|
4
|
+
import type { UserStatus } from "../../lib/enclave-wallet.js";
|
5
|
+
import type { Ecosystem } from "../../types.js";
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Gets the user's status from the backend.
|
9
|
+
*
|
10
|
+
* @internal
|
11
|
+
*/
|
12
|
+
export async function getEnclaveUserStatus({
|
13
|
+
authToken,
|
14
|
+
client,
|
15
|
+
ecosystem,
|
16
|
+
}: {
|
17
|
+
authToken: string;
|
18
|
+
client: ThirdwebClient;
|
19
|
+
ecosystem?: Ecosystem;
|
20
|
+
}): Promise<UserStatus | undefined> {
|
21
|
+
const clientFetch = getClientFetch(client, ecosystem);
|
22
|
+
const response = await clientFetch(
|
23
|
+
`${getThirdwebBaseUrl("inAppWallet")}/api/2024-05-05/accounts`,
|
24
|
+
{
|
25
|
+
method: "GET",
|
26
|
+
headers: {
|
27
|
+
"Content-Type": "application/json",
|
28
|
+
"x-thirdweb-client-id": client.clientId,
|
29
|
+
Authorization: `Bearer embedded-wallet-token:${authToken}`,
|
30
|
+
},
|
31
|
+
},
|
32
|
+
);
|
33
|
+
|
34
|
+
if (!response.ok) {
|
35
|
+
if (response.status === 401) {
|
36
|
+
// 401 response indicates there is no user logged in, so we return undefined
|
37
|
+
return undefined;
|
38
|
+
}
|
39
|
+
const result = await response.json();
|
40
|
+
throw new Error(`Failed to get user status: ${result.error}`);
|
41
|
+
}
|
42
|
+
|
43
|
+
return (await response.json()) as UserStatus;
|
44
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
|
+
import { getThirdwebBaseUrl } from "../../../../../utils/domains.js";
|
3
|
+
import { getClientFetch } from "../../../../../utils/fetch.js";
|
4
|
+
import type { Ecosystem } from "../../types.js";
|
5
|
+
import { getAuthToken } from "../get-auth-token.js";
|
6
|
+
|
7
|
+
export async function signMessage({
|
8
|
+
client,
|
9
|
+
ecosystem,
|
10
|
+
payload: { message, isRaw },
|
11
|
+
}: {
|
12
|
+
client: ThirdwebClient;
|
13
|
+
ecosystem?: Ecosystem;
|
14
|
+
payload: {
|
15
|
+
message: string;
|
16
|
+
isRaw: boolean;
|
17
|
+
};
|
18
|
+
}) {
|
19
|
+
const clientFetch = getClientFetch(client, ecosystem);
|
20
|
+
const authToken = await getAuthToken(client, ecosystem);
|
21
|
+
|
22
|
+
const response = await clientFetch(
|
23
|
+
`${getThirdwebBaseUrl("inAppWallet")}/api/v1/enclave-wallet/sign-message`,
|
24
|
+
{
|
25
|
+
method: "POST",
|
26
|
+
headers: {
|
27
|
+
"Content-Type": "application/json",
|
28
|
+
"x-thirdweb-client-id": client.clientId,
|
29
|
+
Authorization: `Bearer embedded-wallet-token:${authToken}`,
|
30
|
+
},
|
31
|
+
body: JSON.stringify({
|
32
|
+
messagePayload: {
|
33
|
+
message,
|
34
|
+
isRaw,
|
35
|
+
},
|
36
|
+
}),
|
37
|
+
},
|
38
|
+
);
|
39
|
+
|
40
|
+
if (!response.ok) {
|
41
|
+
throw new Error("Failed to sign message");
|
42
|
+
}
|
43
|
+
|
44
|
+
const signedMessage = (await response.json()) as {
|
45
|
+
r: string;
|
46
|
+
s: string;
|
47
|
+
v: number;
|
48
|
+
signature: string;
|
49
|
+
hash: string;
|
50
|
+
};
|
51
|
+
return signedMessage;
|
52
|
+
}
|