thirdweb 5.59.0-nightly-e2b3484764275560aa899f3f894b767faedaa9a1-20240925000331 → 5.59.0-nightly-5ab3a81f79e96cb7caed6f591969942b2b67dbb6-20240926000312
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/wallets.native.js +3 -1
- package/dist/cjs/exports/wallets.native.js.map +1 -1
- package/dist/cjs/extensions/erc20/write/transfer.js +1 -0
- package/dist/cjs/extensions/erc20/write/transfer.js.map +1 -1
- package/dist/cjs/extensions/erc20/write/transferFrom.js +1 -0
- package/dist/cjs/extensions/erc20/write/transferFrom.js.map +1 -1
- package/dist/cjs/extensions/vote/types.js +2 -0
- package/dist/cjs/extensions/vote/types.js.map +1 -1
- package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +2 -3
- package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/cjs/react/native/hooks/wallets/useAutoConnect.js +2 -1
- package/dist/cjs/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js +1 -1
- package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/cjs/storage/upload.js +19 -0
- package/dist/cjs/storage/upload.js.map +1 -1
- package/dist/cjs/transaction/extract-error.js +2 -2
- package/dist/cjs/transaction/extract-error.js.map +1 -1
- package/dist/cjs/utils/fetch.js +2 -2
- package/dist/cjs/utils/fetch.js.map +1 -1
- package/dist/cjs/utils/process.js +7 -0
- package/dist/cjs/utils/process.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/create-wallet.js +5 -2
- package/dist/cjs/wallets/create-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/authEndpoint.js +30 -0
- package/dist/cjs/wallets/in-app/core/authentication/authEndpoint.js.map +1 -0
- package/dist/cjs/wallets/in-app/core/authentication/jwt.js +30 -0
- package/dist/cjs/wallets/in-app/core/authentication/jwt.js.map +1 -0
- package/dist/cjs/wallets/in-app/core/authentication/passkeys.js +3 -14
- package/dist/cjs/wallets/in-app/core/authentication/passkeys.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/types.js +0 -35
- package/dist/cjs/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/cjs/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.js +15 -13
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -0
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +9 -8
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/index.js +1 -2
- package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/web-wallet.js.map +1 -0
- package/dist/cjs/wallets/in-app/native/auth/index.js +1 -2
- package/dist/cjs/wallets/in-app/native/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/auth/native-auth.js +8 -178
- package/dist/cjs/wallets/in-app/native/auth/native-auth.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/ecosystem.js +84 -0
- package/dist/cjs/wallets/in-app/native/ecosystem.js.map +1 -0
- package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js +50 -24
- package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/auth/logout.js +3 -3
- package/dist/cjs/wallets/in-app/native/helpers/auth/logout.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js +28 -54
- package/dist/cjs/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/storage/local.js +20 -18
- package/dist/cjs/wallets/in-app/native/helpers/storage/local.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/wallet/creation.js +8 -4
- package/dist/cjs/wallets/in-app/native/helpers/wallet/creation.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/wallet/recoveryCode.js +16 -6
- package/dist/cjs/wallets/in-app/native/helpers/wallet/recoveryCode.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js +7 -4
- package/dist/cjs/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/wallet/sharded-wallet.js +72 -0
- package/dist/cjs/wallets/in-app/native/helpers/wallet/sharded-wallet.js.map +1 -0
- package/dist/cjs/wallets/in-app/native/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/native-connector.js +105 -243
- package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/ecosystem.js +13 -7
- package/dist/cjs/wallets/in-app/web/ecosystem.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/get-enclave-user-status.js +2 -0
- 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/actions/sign-message.enclave.js +2 -3
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +2 -3
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +2 -3
- package/dist/cjs/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js +1 -2
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +9 -14
- 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 +13 -13
- package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/cjs/wallets/native/create-wallet.js +2 -1
- package/dist/cjs/wallets/native/create-wallet.js.map +1 -1
- package/dist/esm/exports/wallets.native.js +1 -0
- package/dist/esm/exports/wallets.native.js.map +1 -1
- package/dist/esm/extensions/erc20/write/transfer.js +1 -0
- package/dist/esm/extensions/erc20/write/transfer.js.map +1 -1
- package/dist/esm/extensions/erc20/write/transferFrom.js +1 -0
- package/dist/esm/extensions/erc20/write/transferFrom.js.map +1 -1
- package/dist/esm/extensions/vote/types.js +2 -0
- package/dist/esm/extensions/vote/types.js.map +1 -1
- package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +2 -3
- package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/esm/react/native/hooks/wallets/useAutoConnect.js +2 -1
- package/dist/esm/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/esm/react/web/hooks/wallets/useAutoConnect.js +1 -1
- package/dist/esm/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
- package/dist/esm/storage/upload.js +19 -0
- package/dist/esm/storage/upload.js.map +1 -1
- package/dist/esm/transaction/extract-error.js +2 -2
- package/dist/esm/transaction/extract-error.js.map +1 -1
- package/dist/esm/utils/fetch.js +2 -2
- package/dist/esm/utils/fetch.js.map +1 -1
- package/dist/esm/utils/process.js +4 -0
- package/dist/esm/utils/process.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/create-wallet.js +5 -2
- package/dist/esm/wallets/create-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/authEndpoint.js +27 -0
- package/dist/esm/wallets/in-app/core/authentication/authEndpoint.js.map +1 -0
- package/dist/esm/wallets/in-app/core/authentication/jwt.js +27 -0
- package/dist/esm/wallets/in-app/core/authentication/jwt.js.map +1 -0
- package/dist/esm/wallets/in-app/core/authentication/passkeys.js +3 -14
- package/dist/esm/wallets/in-app/core/authentication/passkeys.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/types.js +1 -34
- package/dist/esm/wallets/in-app/core/authentication/types.js.map +1 -1
- package/dist/esm/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.js +15 -13
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -0
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +9 -8
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/index.js +1 -2
- package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/web-wallet.js.map +1 -0
- package/dist/esm/wallets/in-app/native/auth/index.js +1 -2
- package/dist/esm/wallets/in-app/native/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/native/auth/native-auth.js +8 -172
- package/dist/esm/wallets/in-app/native/auth/native-auth.js.map +1 -1
- package/dist/esm/wallets/in-app/native/ecosystem.js +81 -0
- package/dist/esm/wallets/in-app/native/ecosystem.js.map +1 -0
- package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js +48 -22
- package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/auth/logout.js +4 -4
- package/dist/esm/wallets/in-app/native/helpers/auth/logout.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js +29 -54
- package/dist/esm/wallets/in-app/native/helpers/auth/middleware.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/storage/local.js +21 -16
- package/dist/esm/wallets/in-app/native/helpers/storage/local.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/wallet/creation.js +8 -4
- package/dist/esm/wallets/in-app/native/helpers/wallet/creation.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/wallet/recoveryCode.js +16 -6
- package/dist/esm/wallets/in-app/native/helpers/wallet/recoveryCode.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js +7 -4
- package/dist/esm/wallets/in-app/native/helpers/wallet/retrieval.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/wallet/sharded-wallet.js +68 -0
- package/dist/esm/wallets/in-app/native/helpers/wallet/sharded-wallet.js.map +1 -0
- package/dist/esm/wallets/in-app/native/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/native/native-connector.js +106 -244
- package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
- package/dist/esm/wallets/in-app/web/ecosystem.js +13 -7
- package/dist/esm/wallets/in-app/web/ecosystem.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/get-enclave-user-status.js +2 -0
- 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/actions/sign-message.enclave.js +2 -3
- package/dist/esm/wallets/in-app/web/lib/actions/sign-message.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js +2 -3
- package/dist/esm/wallets/in-app/web/lib/actions/sign-transaction.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js +2 -3
- package/dist/esm/wallets/in-app/web/lib/actions/sign-typed-data.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/index.js +1 -2
- package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +9 -14
- 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 +13 -13
- package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
- package/dist/esm/wallets/native/create-wallet.js +2 -1
- package/dist/esm/wallets/native/create-wallet.js.map +1 -1
- package/dist/types/exports/wallets.native.d.ts +2 -0
- package/dist/types/exports/wallets.native.d.ts.map +1 -1
- package/dist/types/extensions/erc20/write/transfer.d.ts +3 -3
- package/dist/types/extensions/erc20/write/transfer.d.ts.map +1 -1
- package/dist/types/extensions/erc20/write/transferFrom.d.ts +3 -3
- package/dist/types/extensions/erc20/write/transferFrom.d.ts.map +1 -1
- package/dist/types/extensions/vote/types.d.ts.map +1 -1
- package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts +2 -1
- package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
- package/dist/types/react/native/hooks/wallets/useAutoConnect.d.ts.map +1 -1
- package/dist/types/react/web/hooks/wallets/useAutoConnect.d.ts.map +1 -1
- package/dist/types/storage/upload.d.ts +19 -0
- package/dist/types/storage/upload.d.ts.map +1 -1
- package/dist/types/transaction/extract-error.d.ts.map +1 -1
- package/dist/types/utils/fetch.d.ts.map +1 -1
- package/dist/types/utils/process.d.ts +2 -0
- package/dist/types/utils/process.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/create-wallet.d.ts.map +1 -1
- package/dist/types/wallets/ecosystem/types.d.ts +10 -1
- package/dist/types/wallets/ecosystem/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/authEndpoint.d.ts +9 -0
- package/dist/types/wallets/in-app/core/authentication/authEndpoint.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/authentication/jwt.d.ts +9 -0
- package/dist/types/wallets/in-app/core/authentication/jwt.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/authentication/passkeys.d.ts +3 -3
- package/dist/types/wallets/in-app/core/authentication/passkeys.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/types.d.ts +16 -38
- package/dist/types/wallets/in-app/core/authentication/types.d.ts.map +1 -1
- package/dist/types/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.d.ts +5 -5
- package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts +3 -2
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/web-wallet.d.ts +11 -0
- package/dist/types/wallets/in-app/core/wallet/web-wallet.d.ts.map +1 -0
- package/dist/types/wallets/in-app/native/auth/index.d.ts +1 -1
- package/dist/types/wallets/in-app/native/auth/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/auth/native-auth.d.ts +5 -16
- package/dist/types/wallets/in-app/native/auth/native-auth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/ecosystem.d.ts +59 -0
- package/dist/types/wallets/in-app/native/ecosystem.d.ts.map +1 -0
- package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts +20 -4
- package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/auth/logout.d.ts +6 -1
- package/dist/types/wallets/in-app/native/helpers/auth/logout.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/auth/middleware.d.ts +7 -35
- package/dist/types/wallets/in-app/native/helpers/auth/middleware.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/storage/local.d.ts +0 -3
- package/dist/types/wallets/in-app/native/helpers/storage/local.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/creation.d.ts +11 -3
- package/dist/types/wallets/in-app/native/helpers/wallet/creation.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/recoveryCode.d.ts +9 -2
- package/dist/types/wallets/in-app/native/helpers/wallet/recoveryCode.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts +4 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/retrieval.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/sharded-wallet.d.ts +17 -0
- package/dist/types/wallets/in-app/native/helpers/wallet/sharded-wallet.d.ts.map +1 -0
- package/dist/types/wallets/in-app/native/native-connector.d.ts +4 -8
- package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/ecosystem.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/actions/sign-message.enclave.d.ts +3 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-message.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts +3 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-transaction.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts +3 -1
- package/dist/types/wallets/in-app/web/lib/actions/sign-typed-data.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts +3 -3
- 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 +1 -1
- package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
- package/dist/types/wallets/native/create-wallet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/exports/wallets.native.ts +6 -0
- package/src/extensions/erc20/write/transfer.ts +15 -9
- package/src/extensions/erc20/write/transferFrom.ts +15 -9
- package/src/extensions/vote/types.ts +2 -0
- package/src/react/core/hooks/wallets/useAutoConnect.ts +3 -2
- package/src/react/native/hooks/wallets/useAutoConnect.ts +9 -4
- package/src/react/web/hooks/wallets/useAutoConnect.ts +1 -0
- package/src/storage/upload.ts +19 -0
- package/src/transaction/extract-error.ts +2 -3
- package/src/utils/fetch.ts +2 -4
- package/src/utils/process.ts +3 -0
- package/src/version.ts +1 -1
- package/src/wallets/create-wallet.ts +7 -5
- package/src/wallets/ecosystem/types.ts +10 -1
- package/src/wallets/in-app/core/authentication/authEndpoint.ts +42 -0
- package/src/wallets/in-app/core/authentication/jwt.ts +37 -0
- package/src/wallets/in-app/core/authentication/passkeys.ts +7 -17
- package/src/wallets/in-app/core/authentication/types.ts +33 -39
- package/src/wallets/in-app/{web/lib → core/wallet}/enclave-wallet.ts +24 -25
- package/src/wallets/in-app/core/wallet/in-app-core.ts +16 -7
- package/src/wallets/in-app/core/wallet/index.ts +1 -2
- package/src/wallets/in-app/core/wallet/web-wallet.ts +14 -0
- package/src/wallets/in-app/native/auth/index.ts +5 -6
- package/src/wallets/in-app/native/auth/native-auth.ts +14 -242
- package/src/wallets/in-app/native/ecosystem.ts +89 -0
- package/src/wallets/in-app/native/helpers/api/fetchers.ts +54 -25
- package/src/wallets/in-app/native/helpers/auth/logout.ts +9 -8
- package/src/wallets/in-app/native/helpers/auth/middleware.ts +39 -82
- package/src/wallets/in-app/native/helpers/storage/local.ts +22 -23
- package/src/wallets/in-app/native/helpers/wallet/creation.ts +15 -5
- package/src/wallets/in-app/native/helpers/wallet/recoveryCode.ts +21 -12
- package/src/wallets/in-app/native/helpers/wallet/retrieval.ts +14 -3
- package/src/wallets/in-app/native/helpers/wallet/sharded-wallet.ts +72 -0
- package/src/wallets/in-app/native/in-app.ts +1 -1
- package/src/wallets/in-app/native/native-connector.ts +120 -297
- package/src/wallets/in-app/web/ecosystem.ts +14 -8
- package/src/wallets/in-app/web/in-app.ts +1 -1
- package/src/wallets/in-app/web/lib/actions/get-enclave-user-status.ts +3 -1
- package/src/wallets/in-app/web/lib/actions/sign-message.enclave.ts +4 -2
- package/src/wallets/in-app/web/lib/actions/sign-transaction.enclave.ts +4 -2
- package/src/wallets/in-app/web/lib/actions/sign-typed-data.enclave.ts +4 -2
- package/src/wallets/in-app/web/lib/auth/index.ts +6 -7
- package/src/wallets/in-app/web/lib/iframe-wallet.ts +17 -24
- package/src/wallets/in-app/web/lib/web-connector.ts +26 -23
- package/src/wallets/native/create-wallet.ts +5 -3
- package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js +0 -85
- package/dist/cjs/wallets/in-app/core/wallet/ecosystem-core.js.map +0 -1
- package/dist/cjs/wallets/in-app/web/lib/enclave-wallet.js.map +0 -1
- package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js +0 -15
- package/dist/cjs/wallets/in-app/web/lib/get-auth-token.js.map +0 -1
- package/dist/cjs/wallets/in-app/web/lib/web-wallet.js.map +0 -1
- package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js +0 -82
- package/dist/esm/wallets/in-app/core/wallet/ecosystem-core.js.map +0 -1
- package/dist/esm/wallets/in-app/web/lib/enclave-wallet.js.map +0 -1
- package/dist/esm/wallets/in-app/web/lib/get-auth-token.js +0 -12
- package/dist/esm/wallets/in-app/web/lib/get-auth-token.js.map +0 -1
- package/dist/esm/wallets/in-app/web/lib/web-wallet.js.map +0 -1
- package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts +0 -13
- package/dist/types/wallets/in-app/core/wallet/ecosystem-core.d.ts.map +0 -1
- package/dist/types/wallets/in-app/web/lib/enclave-wallet.d.ts.map +0 -1
- package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts +0 -4
- package/dist/types/wallets/in-app/web/lib/get-auth-token.d.ts.map +0 -1
- package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts +0 -15
- package/dist/types/wallets/in-app/web/lib/web-wallet.d.ts.map +0 -1
- package/src/wallets/in-app/core/wallet/ecosystem-core.ts +0 -121
- package/src/wallets/in-app/web/lib/get-auth-token.ts +0 -18
- package/src/wallets/in-app/web/lib/web-wallet.ts +0 -23
- /package/dist/cjs/wallets/in-app/{web/lib → core/wallet}/web-wallet.js +0 -0
- /package/dist/esm/wallets/in-app/{web/lib → core/wallet}/web-wallet.js +0 -0
@@ -1,39 +1,15 @@
|
|
1
1
|
import * as WebBrowser from "expo-web-browser";
|
2
|
-
import { nativeLocalStorage } from "../../../../utils/storage/nativeStorage.js";
|
3
2
|
import { getLoginUrl } from "../../core/authentication/getLoginPath.js";
|
4
|
-
import {
|
5
|
-
import { siweAuthenticate } from "../../core/authentication/siwe.js";
|
6
|
-
import { verifyOtp } from "../../web/lib/auth/otp.js";
|
7
|
-
import { deleteAccount, getSessionHeaders, verifyClientId, } from "../helpers/api/fetchers.js";
|
8
|
-
import { postAuth, postAuthUserManaged } from "../helpers/auth/middleware.js";
|
9
|
-
import { ROUTE_AUTH_ENDPOINT_CALLBACK, ROUTE_AUTH_JWT_CALLBACK, } from "../helpers/constants.js";
|
3
|
+
import { deleteAccount, verifyClientId } from "../helpers/api/fetchers.js";
|
10
4
|
import { createErrorMessage } from "../helpers/errors.js";
|
11
|
-
export async function
|
12
|
-
const {
|
13
|
-
try {
|
14
|
-
const toStoreToken = {
|
15
|
-
jwtToken: storedToken.jwtToken,
|
16
|
-
authDetails: storedToken.authDetails,
|
17
|
-
authProvider: storedToken.authProvider,
|
18
|
-
developerClientId: storedToken.developerClientId,
|
19
|
-
cookieString: storedToken.cookieString,
|
20
|
-
// we should always store the jwt cookie since there's no concept of cookie in react native
|
21
|
-
shouldStoreCookieString: true,
|
22
|
-
isNewUser: storedToken.isNewUser,
|
23
|
-
};
|
24
|
-
await postAuth({ storedToken: toStoreToken, client: options.client });
|
25
|
-
return { storedToken };
|
26
|
-
}
|
27
|
-
catch (e) {
|
28
|
-
throw new Error(createErrorMessage("Malformed response from post authentication", e));
|
29
|
-
}
|
30
|
-
}
|
31
|
-
export async function authenticate(auth, client) {
|
5
|
+
export async function socialAuth(args) {
|
6
|
+
const { auth, client, ecosystem } = args;
|
32
7
|
const loginUrl = getLoginUrl({
|
33
8
|
authOption: auth.strategy,
|
34
9
|
client,
|
35
10
|
mode: "window",
|
36
11
|
redirectUrl: auth.redirectUrl,
|
12
|
+
ecosystem,
|
37
13
|
});
|
38
14
|
const result = await WebBrowser.openAuthSessionAsync(loginUrl, auth.redirectUrl, {
|
39
15
|
preferEphemeralSession: false,
|
@@ -59,153 +35,13 @@ export async function authenticate(auth, client) {
|
|
59
35
|
}
|
60
36
|
return JSON.parse(authResult);
|
61
37
|
}
|
62
|
-
export async function socialLogin(auth, client) {
|
63
|
-
const { storedToken } = await authenticate(auth, client);
|
64
|
-
try {
|
65
|
-
const toStoreToken = {
|
66
|
-
jwtToken: storedToken.jwtToken,
|
67
|
-
authDetails: storedToken.authDetails,
|
68
|
-
authProvider: storedToken.authProvider,
|
69
|
-
developerClientId: storedToken.developerClientId,
|
70
|
-
cookieString: storedToken.cookieString,
|
71
|
-
// we should always store the jwt cookie since there's no concept of cookie in react native
|
72
|
-
shouldStoreCookieString: true,
|
73
|
-
isNewUser: storedToken.isNewUser,
|
74
|
-
};
|
75
|
-
await postAuth({ storedToken: toStoreToken, client });
|
76
|
-
return { storedToken };
|
77
|
-
}
|
78
|
-
catch (e) {
|
79
|
-
throw new Error(createErrorMessage("Malformed response from post authentication", e));
|
80
|
-
}
|
81
|
-
}
|
82
|
-
export async function siweLogin(client, wallet, chain, ecosystem) {
|
83
|
-
const { storedToken } = await siweAuthenticate({
|
84
|
-
client,
|
85
|
-
ecosystem,
|
86
|
-
wallet,
|
87
|
-
chain,
|
88
|
-
});
|
89
|
-
try {
|
90
|
-
const toStoreToken = {
|
91
|
-
jwtToken: storedToken.jwtToken,
|
92
|
-
authDetails: storedToken.authDetails,
|
93
|
-
authProvider: storedToken.authProvider,
|
94
|
-
developerClientId: storedToken.developerClientId,
|
95
|
-
cookieString: storedToken.cookieString,
|
96
|
-
// we should always store the jwt cookie since there's no concept of cookie in react native
|
97
|
-
shouldStoreCookieString: true,
|
98
|
-
isNewUser: storedToken.isNewUser,
|
99
|
-
};
|
100
|
-
await postAuth({ storedToken: toStoreToken, client });
|
101
|
-
return { storedToken };
|
102
|
-
}
|
103
|
-
catch (e) {
|
104
|
-
throw new Error(createErrorMessage("Malformed response from post authentication", e));
|
105
|
-
}
|
106
|
-
}
|
107
|
-
export async function guestLogin(client, ecosystem) {
|
108
|
-
const { storedToken } = await guestAuthenticate({
|
109
|
-
client,
|
110
|
-
ecosystem,
|
111
|
-
storage: nativeLocalStorage,
|
112
|
-
});
|
113
|
-
try {
|
114
|
-
const toStoreToken = {
|
115
|
-
jwtToken: storedToken.jwtToken,
|
116
|
-
authDetails: storedToken.authDetails,
|
117
|
-
authProvider: storedToken.authProvider,
|
118
|
-
developerClientId: storedToken.developerClientId,
|
119
|
-
cookieString: storedToken.cookieString,
|
120
|
-
// we should always store the jwt cookie since there's no concept of cookie in react native
|
121
|
-
shouldStoreCookieString: true,
|
122
|
-
isNewUser: storedToken.isNewUser,
|
123
|
-
};
|
124
|
-
await postAuth({ storedToken: toStoreToken, client });
|
125
|
-
return { storedToken };
|
126
|
-
}
|
127
|
-
catch (e) {
|
128
|
-
throw new Error(createErrorMessage("Malformed response from post authentication", e));
|
129
|
-
}
|
130
|
-
}
|
131
|
-
export async function customJwt(authOptions, client) {
|
132
|
-
const { jwt, password } = authOptions;
|
133
|
-
const resp = await fetch(ROUTE_AUTH_JWT_CALLBACK, {
|
134
|
-
method: "POST",
|
135
|
-
headers: {
|
136
|
-
...getSessionHeaders(),
|
137
|
-
},
|
138
|
-
body: JSON.stringify({
|
139
|
-
jwt: jwt,
|
140
|
-
developerClientId: client.clientId,
|
141
|
-
}),
|
142
|
-
});
|
143
|
-
if (!resp.ok) {
|
144
|
-
const error = await resp.json();
|
145
|
-
throw new Error(`JWT authentication error: ${error.message}`);
|
146
|
-
}
|
147
|
-
try {
|
148
|
-
const { verifiedToken, verifiedTokenJwtString } = await resp.json();
|
149
|
-
const toStoreToken = {
|
150
|
-
jwtToken: verifiedToken.jwtToken,
|
151
|
-
authProvider: verifiedToken.authProvider,
|
152
|
-
authDetails: {
|
153
|
-
...verifiedToken.authDetails,
|
154
|
-
email: verifiedToken.authDetails.email,
|
155
|
-
},
|
156
|
-
developerClientId: verifiedToken.developerClientId,
|
157
|
-
cookieString: verifiedTokenJwtString,
|
158
|
-
shouldStoreCookieString: true,
|
159
|
-
isNewUser: verifiedToken.isNewUser,
|
160
|
-
};
|
161
|
-
await postAuthUserManaged(toStoreToken, client, password);
|
162
|
-
return { storedToken: verifiedToken };
|
163
|
-
}
|
164
|
-
catch (e) {
|
165
|
-
throw new Error(createErrorMessage("Malformed response from post jwt authentication", e));
|
166
|
-
}
|
167
|
-
}
|
168
|
-
export async function authEndpoint(authOptions, client) {
|
169
|
-
const { payload, encryptionKey } = authOptions;
|
170
|
-
const resp = await fetch(ROUTE_AUTH_ENDPOINT_CALLBACK, {
|
171
|
-
method: "POST",
|
172
|
-
headers: {
|
173
|
-
...getSessionHeaders(),
|
174
|
-
},
|
175
|
-
body: JSON.stringify({
|
176
|
-
payload: payload,
|
177
|
-
developerClientId: client.clientId,
|
178
|
-
}),
|
179
|
-
});
|
180
|
-
if (!resp.ok) {
|
181
|
-
const error = await resp.json();
|
182
|
-
throw new Error(`Custom auth endpoint authentication error: ${error.message}`);
|
183
|
-
}
|
184
|
-
try {
|
185
|
-
const { verifiedToken, verifiedTokenJwtString } = await resp.json();
|
186
|
-
const toStoreToken = {
|
187
|
-
jwtToken: verifiedToken.jwtToken,
|
188
|
-
authProvider: verifiedToken.authProvider,
|
189
|
-
authDetails: {
|
190
|
-
...verifiedToken.authDetails,
|
191
|
-
email: verifiedToken.authDetails.email,
|
192
|
-
},
|
193
|
-
developerClientId: verifiedToken.developerClientId,
|
194
|
-
cookieString: verifiedTokenJwtString,
|
195
|
-
shouldStoreCookieString: true,
|
196
|
-
isNewUser: verifiedToken.isNewUser,
|
197
|
-
};
|
198
|
-
await postAuthUserManaged(toStoreToken, client, encryptionKey);
|
199
|
-
return { storedToken: verifiedToken };
|
200
|
-
}
|
201
|
-
catch (e) {
|
202
|
-
throw new Error(createErrorMessage("Malformed response from post auth_endpoint authentication", e));
|
203
|
-
}
|
204
|
-
}
|
205
38
|
export async function deleteActiveAccount(options) {
|
206
39
|
await verifyClientId(options.client);
|
207
40
|
try {
|
208
|
-
return deleteAccount(
|
41
|
+
return deleteAccount({
|
42
|
+
client: options.client,
|
43
|
+
storage: options.storage,
|
44
|
+
});
|
209
45
|
}
|
210
46
|
catch (e) {
|
211
47
|
throw new Error(createErrorMessage("Error deleting the active account", e));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"native-auth.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/native/auth/native-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"native-auth.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/native/auth/native-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAMxE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAIhC;IACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,IAAI,CAAC,QAAQ;QACzB,MAAM;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAClD,QAAQ,EACR,IAAI,CAAC,WAAW,EAChB;QACE,sBAAsB,EAAE,KAAK;QAC7B,SAAS,EAAE,KAAK;QAChB,0BAA0B,EAAE,KAAK;QACjC,mBAAmB,EAAE,KAAK;KAC3B,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAElD,eAAe;IACf,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAGzC;IACC,MAAM,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,OAAO,aAAa,CAAC;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC"}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { createInAppWallet } from "../core/wallet/in-app-core.js";
|
2
|
+
/**
|
3
|
+
* Creates an [Ecosystem Wallet](https://portal.thirdweb.com/connect/ecosystems/overview) based on various authentication methods.
|
4
|
+
*
|
5
|
+
* Available authentication methods:
|
6
|
+
* - Email
|
7
|
+
* - Phone
|
8
|
+
* - Passkey
|
9
|
+
* - Google
|
10
|
+
* - Apple
|
11
|
+
* - Facebook
|
12
|
+
* - Discord
|
13
|
+
* - LINE
|
14
|
+
* - X
|
15
|
+
* - Farcaster
|
16
|
+
*
|
17
|
+
* Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
|
18
|
+
*
|
19
|
+
* Refer to [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet) for detailed usage examples.
|
20
|
+
*
|
21
|
+
* @param createOptions - configuration options
|
22
|
+
* Refer to [EcosystemWalletCreationOptions](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletCreationOptions) for more details.
|
23
|
+
* @returns The created ecosystem wallet.
|
24
|
+
* @example
|
25
|
+
*
|
26
|
+
* ### Connect to an ecosystem wallet
|
27
|
+
*
|
28
|
+
* ```ts
|
29
|
+
* import { ecosystemWallet } from "thirdweb/wallets";
|
30
|
+
*
|
31
|
+
* const wallet = ecosystemWallet("ecosystem.hooli");
|
32
|
+
*
|
33
|
+
* const account = await wallet.connect({
|
34
|
+
* client,
|
35
|
+
* chain,
|
36
|
+
* strategy: "google",
|
37
|
+
* });
|
38
|
+
* ```
|
39
|
+
*
|
40
|
+
* [View all connection options](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletConnectionOptions)
|
41
|
+
*
|
42
|
+
* ### Connect to a restricted ecosystem wallet with your designated partner ID
|
43
|
+
*
|
44
|
+
* The parnter ID will be provided to you by the ecosystem with which you're integrating.
|
45
|
+
*
|
46
|
+
* ```ts
|
47
|
+
* import { ecosystemWallet } from "thirdweb/wallets";
|
48
|
+
* const wallet = ecosystemWallet("ecosystem.hooli", {
|
49
|
+
* partnerId: "..."
|
50
|
+
* });
|
51
|
+
* ```
|
52
|
+
*
|
53
|
+
* Refer to [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet) for more usage examples.
|
54
|
+
*
|
55
|
+
* @wallet
|
56
|
+
*/
|
57
|
+
export function ecosystemWallet(...args) {
|
58
|
+
const [ecosystemId, createOptions] = args;
|
59
|
+
const ecosystem = {
|
60
|
+
id: ecosystemId,
|
61
|
+
partnerId: createOptions?.partnerId,
|
62
|
+
};
|
63
|
+
return createInAppWallet({
|
64
|
+
ecosystem,
|
65
|
+
createOptions: {
|
66
|
+
auth: {
|
67
|
+
...createOptions?.auth,
|
68
|
+
options: [], // controlled by ecosystem
|
69
|
+
},
|
70
|
+
},
|
71
|
+
connectorFactory: async (client) => {
|
72
|
+
const { InAppNativeConnector } = await import("./native-connector.js");
|
73
|
+
return new InAppNativeConnector({
|
74
|
+
client,
|
75
|
+
ecosystem,
|
76
|
+
// TODO (enclave): passkeyDomain for ecosystem wallets
|
77
|
+
});
|
78
|
+
},
|
79
|
+
});
|
80
|
+
}
|
81
|
+
//# sourceMappingURL=ecosystem.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ecosystem.js","sourceRoot":"","sources":["../../../../../src/wallets/in-app/native/ecosystem.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAG,IAAyC;IAE5C,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,aAAa,EAAE,SAAS;KACpC,CAAC;IACF,OAAO,iBAAiB,CAAC;QACvB,SAAS;QACT,aAAa,EAAE;YACb,IAAI,EAAE;gBACJ,GAAG,aAAa,EAAE,IAAI;gBACtB,OAAO,EAAE,EAAE,EAAE,0BAA0B;aACxC;SACF;QACD,gBAAgB,EAAE,KAAK,EAAE,MAAsB,EAAE,EAAE;YACjD,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACvE,OAAO,IAAI,oBAAoB,CAAC;gBAC9B,MAAM;gBACN,SAAS;gBACT,sDAAsD;aACvD,CAAC,CAAC;QACL,CAAC;KACF,CAA8B,CAAC;AAClC,CAAC"}
|
@@ -2,7 +2,6 @@ import { getClientFetch } from "../../../../../utils/fetch.js";
|
|
2
2
|
import { randomBytesHex } from "../../../../../utils/random.js";
|
3
3
|
import { ROUTE_EMBEDDED_WALLET_DETAILS, ROUTE_STORE_USER_SHARES, ROUTE_VERIFY_THIRDWEB_CLIENT_ID, THIRDWEB_SESSION_NONCE_HEADER, } from "../constants.js";
|
4
4
|
import { createErrorMessage } from "../errors.js";
|
5
|
-
import { getAuthTokenClient } from "../storage/local.js";
|
6
5
|
const EMBEDDED_WALLET_TOKEN_HEADER = "embedded-wallet-token";
|
7
6
|
const PAPER_CLIENT_ID_HEADER = "x-thirdweb-client-id";
|
8
7
|
let sessionNonce = undefined;
|
@@ -31,8 +30,9 @@ export const verifyClientId = async (client) => {
|
|
31
30
|
success: true,
|
32
31
|
};
|
33
32
|
};
|
34
|
-
export
|
35
|
-
const
|
33
|
+
export async function authFetchEmbeddedWalletUser(args) {
|
34
|
+
const { client, url, props, storage, retries = 0 } = args;
|
35
|
+
const authTokenClient = await storage.getAuthCookie();
|
36
36
|
const params = { ...props };
|
37
37
|
params.headers = params?.headers
|
38
38
|
? {
|
@@ -52,11 +52,17 @@ export const authFetchEmbeddedWalletUser = async (client, url, props, retries =
|
|
52
52
|
catch (e) {
|
53
53
|
if (retries > 0) {
|
54
54
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
55
|
-
return await authFetchEmbeddedWalletUser(
|
55
|
+
return await authFetchEmbeddedWalletUser({
|
56
|
+
client,
|
57
|
+
url,
|
58
|
+
props: params,
|
59
|
+
storage,
|
60
|
+
retries: retries - 1,
|
61
|
+
});
|
56
62
|
}
|
57
63
|
throw e;
|
58
64
|
}
|
59
|
-
}
|
65
|
+
}
|
60
66
|
export async function fetchUserDetails(args) {
|
61
67
|
const url = new URL(ROUTE_EMBEDDED_WALLET_DETAILS);
|
62
68
|
if (args) {
|
@@ -64,8 +70,13 @@ export async function fetchUserDetails(args) {
|
|
64
70
|
url.searchParams.append("email", args.email ?? "none");
|
65
71
|
url.searchParams.append("clientId", args.client.clientId);
|
66
72
|
}
|
67
|
-
const resp = await authFetchEmbeddedWalletUser(
|
68
|
-
|
73
|
+
const resp = await authFetchEmbeddedWalletUser({
|
74
|
+
client: args.client,
|
75
|
+
url: url.href,
|
76
|
+
props: {
|
77
|
+
method: "GET",
|
78
|
+
},
|
79
|
+
storage: args.storage,
|
69
80
|
});
|
70
81
|
if (!resp.ok) {
|
71
82
|
const error = await resp.json();
|
@@ -74,24 +85,34 @@ export async function fetchUserDetails(args) {
|
|
74
85
|
const result = (await resp.json());
|
75
86
|
return result;
|
76
87
|
}
|
77
|
-
export async function storeUserShares({ client, walletAddress, maybeEncryptedRecoveryShares, authShare, }) {
|
78
|
-
const resp = await authFetchEmbeddedWalletUser(
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
88
|
+
export async function storeUserShares({ client, walletAddress, maybeEncryptedRecoveryShares, authShare, storage, }) {
|
89
|
+
const resp = await authFetchEmbeddedWalletUser({
|
90
|
+
client,
|
91
|
+
url: ROUTE_STORE_USER_SHARES,
|
92
|
+
props: {
|
93
|
+
method: "POST",
|
94
|
+
headers: { "Content-Type": "application/json" },
|
95
|
+
body: JSON.stringify({
|
96
|
+
walletAddress,
|
97
|
+
maybeEncryptedRecoveryShares,
|
98
|
+
authShare,
|
99
|
+
}),
|
100
|
+
},
|
101
|
+
storage,
|
86
102
|
});
|
87
103
|
if (!resp.ok) {
|
88
104
|
const error = await resp.json();
|
89
105
|
throw new Error(`Something went wrong storing user wallet shares: ${JSON.stringify(error.message, null, 2)}`);
|
90
106
|
}
|
91
107
|
}
|
92
|
-
export async function getUserShares(
|
93
|
-
const resp = await authFetchEmbeddedWalletUser(
|
94
|
-
|
108
|
+
export async function getUserShares(args) {
|
109
|
+
const resp = await authFetchEmbeddedWalletUser({
|
110
|
+
client: args.client,
|
111
|
+
url: args.getShareUrl.href,
|
112
|
+
props: {
|
113
|
+
method: "GET",
|
114
|
+
},
|
115
|
+
storage: args.storage,
|
95
116
|
});
|
96
117
|
if (!resp.ok) {
|
97
118
|
const error = await resp.json();
|
@@ -105,10 +126,15 @@ export async function getUserShares(client, getShareUrl) {
|
|
105
126
|
throw new Error(createErrorMessage("Malformed response from the ews user wallet API", e));
|
106
127
|
}
|
107
128
|
}
|
108
|
-
export async function deleteAccount(
|
129
|
+
export async function deleteAccount(args) {
|
109
130
|
const url = new URL(ROUTE_EMBEDDED_WALLET_DETAILS);
|
110
|
-
const resp = await authFetchEmbeddedWalletUser(
|
111
|
-
|
131
|
+
const resp = await authFetchEmbeddedWalletUser({
|
132
|
+
client: args.client,
|
133
|
+
url: url.href,
|
134
|
+
props: {
|
135
|
+
method: "DELETE",
|
136
|
+
},
|
137
|
+
storage: args.storage,
|
112
138
|
});
|
113
139
|
if (!resp.ok) {
|
114
140
|
const error = await resp.json();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fetchers.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/api/fetchers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;
|
1
|
+
{"version":3,"file":"fetchers.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/api/fetchers.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
export async function logoutUser(
|
3
|
-
const isLoggedUserOutIncognito = await
|
4
|
-
await removeLoggedInWalletUserId(clientId);
|
1
|
+
import { removeLoggedInWalletUserId } from "../storage/local.js";
|
2
|
+
export async function logoutUser(args) {
|
3
|
+
const isLoggedUserOutIncognito = await args.storage.removeAuthCookie();
|
4
|
+
await removeLoggedInWalletUserId(args.client.clientId); // TODO (enclave): move this to client scoped storage
|
5
5
|
return { success: isLoggedUserOutIncognito };
|
6
6
|
}
|
7
7
|
//# sourceMappingURL=logout.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/auth/logout.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/auth/logout.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAGhC;IACC,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACvE,MAAM,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,qDAAqD;IAC7G,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAC/C,CAAC"}
|
@@ -1,12 +1,11 @@
|
|
1
|
-
import { AuthProvider, RecoveryShareManagement, } from "../../../core/authentication/types.js";
|
2
1
|
import { ErrorMessages } from "../errors.js";
|
3
|
-
import { getDeviceShare,
|
2
|
+
import { getDeviceShare, setWallerUserDetails } from "../storage/local.js";
|
4
3
|
import { setUpNewUserWallet } from "../wallet/creation.js";
|
5
4
|
import { getCognitoRecoveryPasswordV1, getCognitoRecoveryPasswordV2, } from "../wallet/recoveryCode.js";
|
6
5
|
import { setUpShareForNewDevice } from "../wallet/retrieval.js";
|
7
|
-
export async function postAuth({ storedToken, client,
|
6
|
+
export async function postAuth({ storedToken, client, encryptionKey, storage, }) {
|
8
7
|
if (storedToken.shouldStoreCookieString) {
|
9
|
-
await
|
8
|
+
await storage.saveAuthCookie(storedToken.cookieString);
|
10
9
|
}
|
11
10
|
await setWallerUserDetails({
|
12
11
|
clientId: client.clientId,
|
@@ -18,11 +17,20 @@ export async function postAuth({ storedToken, client, recoveryCode, }) {
|
|
18
17
|
: undefined,
|
19
18
|
});
|
20
19
|
if (storedToken.isNewUser) {
|
21
|
-
const _recoveryCode = await getRecoveryCode(
|
20
|
+
const _recoveryCode = await getRecoveryCode({
|
21
|
+
storedToken,
|
22
|
+
client,
|
23
|
+
recoveryCode: encryptionKey,
|
24
|
+
storage,
|
25
|
+
});
|
22
26
|
if (!_recoveryCode) {
|
23
27
|
throw new Error(ErrorMessages.missingRecoveryCode);
|
24
28
|
}
|
25
|
-
await setUpNewUserWallet(
|
29
|
+
await setUpNewUserWallet({
|
30
|
+
client,
|
31
|
+
recoveryCode: _recoveryCode,
|
32
|
+
storage,
|
33
|
+
});
|
26
34
|
}
|
27
35
|
else {
|
28
36
|
try {
|
@@ -30,7 +38,12 @@ export async function postAuth({ storedToken, client, recoveryCode, }) {
|
|
30
38
|
await getDeviceShare(client.clientId);
|
31
39
|
}
|
32
40
|
catch {
|
33
|
-
const _recoveryCode = await getRecoveryCode(
|
41
|
+
const _recoveryCode = await getRecoveryCode({
|
42
|
+
storedToken,
|
43
|
+
client,
|
44
|
+
recoveryCode: encryptionKey,
|
45
|
+
storage,
|
46
|
+
});
|
34
47
|
if (!_recoveryCode) {
|
35
48
|
throw new Error(ErrorMessages.missingRecoveryCode);
|
36
49
|
}
|
@@ -38,6 +51,7 @@ export async function postAuth({ storedToken, client, recoveryCode, }) {
|
|
38
51
|
await setUpShareForNewDevice({
|
39
52
|
client: client,
|
40
53
|
recoveryCode: _recoveryCode,
|
54
|
+
storage,
|
41
55
|
});
|
42
56
|
}
|
43
57
|
catch (error) {
|
@@ -48,65 +62,26 @@ export async function postAuth({ storedToken, client, recoveryCode, }) {
|
|
48
62
|
}
|
49
63
|
return storedToken;
|
50
64
|
}
|
51
|
-
|
52
|
-
const
|
53
|
-
if (storedToken.
|
54
|
-
|
55
|
-
|
56
|
-
await setWallerUserDetails({
|
57
|
-
clientId: client.clientId,
|
58
|
-
userId: storedToken.authDetails.userWalletId,
|
59
|
-
email: "email" in storedToken.authDetails
|
60
|
-
? storedToken.authDetails.email
|
61
|
-
: "phoneNumber" in storedToken.authDetails
|
62
|
-
? storedToken.authDetails.phoneNumber
|
63
|
-
: undefined,
|
64
|
-
});
|
65
|
-
if (storedToken.isNewUser) {
|
66
|
-
await setUpNewUserWallet(_password, client);
|
67
|
-
}
|
68
|
-
else {
|
69
|
-
try {
|
70
|
-
// existing device share
|
71
|
-
await getDeviceShare(client.clientId);
|
72
|
-
}
|
73
|
-
catch {
|
74
|
-
// trying to recreate device share from recovery code to derive wallet
|
75
|
-
try {
|
76
|
-
await setUpShareForNewDevice({
|
77
|
-
client,
|
78
|
-
recoveryCode: _password,
|
79
|
-
});
|
80
|
-
}
|
81
|
-
catch (error) {
|
82
|
-
console.error("Error setting up wallet on device", error);
|
83
|
-
throw error;
|
84
|
-
}
|
85
|
-
}
|
86
|
-
}
|
87
|
-
return storedToken;
|
88
|
-
}
|
89
|
-
async function getRecoveryCode(storedToken, client, recoveryCode) {
|
90
|
-
if (storedToken.authDetails.recoveryShareManagement ===
|
91
|
-
RecoveryShareManagement.CLOUD_MANAGED) {
|
92
|
-
if (storedToken.authProvider === AuthProvider.CUSTOM_JWT ||
|
93
|
-
storedToken.authProvider === AuthProvider.CUSTOM_AUTH_ENDPOINT) {
|
65
|
+
async function getRecoveryCode(args) {
|
66
|
+
const { storedToken, client, storage, recoveryCode } = args;
|
67
|
+
if (storedToken.authDetails.recoveryShareManagement === "AWS_MANAGED") {
|
68
|
+
if (storedToken.authProvider === "CustomJWT" ||
|
69
|
+
storedToken.authProvider === "CustomAuthEndpoint") {
|
94
70
|
if (!recoveryCode) {
|
95
71
|
throw new Error(`GetRecoveryCode error: ${ErrorMessages.missingRecoveryCode}`);
|
96
72
|
}
|
97
73
|
return recoveryCode;
|
98
74
|
}
|
99
75
|
try {
|
100
|
-
return await getCognitoRecoveryPasswordV2(client);
|
76
|
+
return await getCognitoRecoveryPasswordV2({ client, storage });
|
101
77
|
}
|
102
78
|
catch {
|
103
|
-
return await getCognitoRecoveryPasswordV1(client).catch(() => {
|
79
|
+
return await getCognitoRecoveryPasswordV1({ client, storage }).catch(() => {
|
104
80
|
throw new Error("Something went wrong getting cognito recovery code");
|
105
81
|
});
|
106
82
|
}
|
107
83
|
}
|
108
|
-
else if (storedToken.authDetails.recoveryShareManagement ===
|
109
|
-
RecoveryShareManagement.USER_MANAGED) {
|
84
|
+
else if (storedToken.authDetails.recoveryShareManagement === "USER_MANAGED") {
|
110
85
|
if (recoveryCode) {
|
111
86
|
return recoveryCode;
|
112
87
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/auth/middleware.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/native/helpers/auth/middleware.ts"],"names":[],"mappings":"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"}
|