thirdweb 5.59.0-nightly-e2b3484764275560aa899f3f894b767faedaa9a1-20240925000331 → 5.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/contract/actions/compiler-metadata.js +16 -10
- package/dist/cjs/contract/actions/compiler-metadata.js.map +1 -1
- package/dist/cjs/contract/deployment/publisher.js +2 -0
- package/dist/cjs/contract/deployment/publisher.js.map +1 -1
- package/dist/cjs/contract/deployment/utils/bootstrap.js +3 -2
- package/dist/cjs/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/cjs/exports/utils.js +4 -2
- package/dist/cjs/exports/utils.js.map +1 -1
- 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/prebuilts/deploy-published.js +6 -3
- package/dist/cjs/extensions/prebuilts/deploy-published.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/react/web/ui/ConnectWallet/Details.js +4 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.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/actions/zksync/send-eip712-transaction.js +10 -2
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.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/any-evm/deploy-metadata.js +14 -5
- package/dist/cjs/utils/any-evm/deploy-metadata.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/version.js.map +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/iframe-auth.js +6 -0
- package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js +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/contract/actions/compiler-metadata.js +16 -10
- package/dist/esm/contract/actions/compiler-metadata.js.map +1 -1
- package/dist/esm/contract/deployment/publisher.js +2 -0
- package/dist/esm/contract/deployment/publisher.js.map +1 -1
- package/dist/esm/contract/deployment/utils/bootstrap.js +3 -2
- package/dist/esm/contract/deployment/utils/bootstrap.js.map +1 -1
- package/dist/esm/exports/utils.js +1 -0
- package/dist/esm/exports/utils.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/prebuilts/deploy-published.js +6 -3
- package/dist/esm/extensions/prebuilts/deploy-published.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/react/web/ui/ConnectWallet/Details.js +4 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.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/actions/zksync/send-eip712-transaction.js +11 -3
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.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/any-evm/deploy-metadata.js +14 -5
- package/dist/esm/utils/any-evm/deploy-metadata.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/version.js.map +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/iframe-auth.js +6 -0
- package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/index.js +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/contract/actions/compiler-metadata.d.ts +2 -1
- package/dist/types/contract/actions/compiler-metadata.d.ts.map +1 -1
- package/dist/types/contract/deployment/publisher.d.ts +2 -0
- package/dist/types/contract/deployment/publisher.d.ts.map +1 -1
- package/dist/types/contract/deployment/utils/bootstrap.d.ts +1 -0
- package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
- package/dist/types/exports/utils.d.ts +1 -0
- package/dist/types/exports/utils.d.ts.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/prebuilts/deploy-published.d.ts +2 -0
- package/dist/types/extensions/prebuilts/deploy-published.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/react/web/ui/ConnectWallet/Details.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/actions/zksync/send-eip712-transaction.d.ts.map +1 -1
- package/dist/types/transaction/extract-error.d.ts.map +1 -1
- package/dist/types/utils/any-evm/deploy-metadata.d.ts +2 -0
- package/dist/types/utils/any-evm/deploy-metadata.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/version.d.ts.map +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/iframe-auth.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/contract/actions/compiler-metadata.ts +20 -11
- package/src/contract/deployment/publisher.ts +4 -0
- package/src/contract/deployment/utils/bootstrap.ts +4 -1
- package/src/exports/utils.ts +1 -0
- package/src/exports/wallets.native.ts +6 -0
- package/src/extensions/erc1155/drop1155.test.ts +4 -4
- package/src/extensions/erc20/drop20.test.ts +4 -4
- package/src/extensions/erc20/write/transfer.ts +15 -9
- package/src/extensions/erc20/write/transferFrom.ts +15 -9
- package/src/extensions/erc721/drop721.test.ts +4 -4
- package/src/extensions/prebuilts/deploy-published.test.ts +1 -1
- package/src/extensions/prebuilts/deploy-published.ts +8 -1
- 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/react/web/ui/ConnectWallet/Details.tsx +4 -1
- package/src/storage/upload.ts +19 -0
- package/src/transaction/actions/zksync/send-eip712-transaction.ts +21 -20
- package/src/transaction/extract-error.ts +2 -3
- package/src/utils/any-evm/deploy-metadata.ts +26 -11
- 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/iframe-auth.ts +7 -0
- 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,15 +1,8 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
|
-
import {
|
3
|
-
|
4
|
-
type AuthStoredTokenWithCookieReturnType,
|
5
|
-
RecoveryShareManagement,
|
6
|
-
} from "../../../core/authentication/types.js";
|
2
|
+
import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
|
3
|
+
import type { AuthStoredTokenWithCookieReturnType } from "../../../core/authentication/types.js";
|
7
4
|
import { ErrorMessages } from "../errors.js";
|
8
|
-
import {
|
9
|
-
getDeviceShare,
|
10
|
-
setAuthTokenClient,
|
11
|
-
setWallerUserDetails,
|
12
|
-
} from "../storage/local.js";
|
5
|
+
import { getDeviceShare, setWallerUserDetails } from "../storage/local.js";
|
13
6
|
import { setUpNewUserWallet } from "../wallet/creation.js";
|
14
7
|
import {
|
15
8
|
getCognitoRecoveryPasswordV1,
|
@@ -20,14 +13,16 @@ import { setUpShareForNewDevice } from "../wallet/retrieval.js";
|
|
20
13
|
export async function postAuth({
|
21
14
|
storedToken,
|
22
15
|
client,
|
23
|
-
|
16
|
+
encryptionKey,
|
17
|
+
storage,
|
24
18
|
}: {
|
25
19
|
storedToken: AuthStoredTokenWithCookieReturnType["storedToken"];
|
26
20
|
client: ThirdwebClient;
|
27
|
-
|
21
|
+
encryptionKey?: string;
|
22
|
+
storage: ClientScopedStorage;
|
28
23
|
}) {
|
29
24
|
if (storedToken.shouldStoreCookieString) {
|
30
|
-
await
|
25
|
+
await storage.saveAuthCookie(storedToken.cookieString);
|
31
26
|
}
|
32
27
|
|
33
28
|
await setWallerUserDetails({
|
@@ -42,25 +37,31 @@ export async function postAuth({
|
|
42
37
|
});
|
43
38
|
|
44
39
|
if (storedToken.isNewUser) {
|
45
|
-
const _recoveryCode = await getRecoveryCode(
|
40
|
+
const _recoveryCode = await getRecoveryCode({
|
46
41
|
storedToken,
|
47
42
|
client,
|
48
|
-
recoveryCode,
|
49
|
-
|
43
|
+
recoveryCode: encryptionKey,
|
44
|
+
storage,
|
45
|
+
});
|
50
46
|
if (!_recoveryCode) {
|
51
47
|
throw new Error(ErrorMessages.missingRecoveryCode);
|
52
48
|
}
|
53
|
-
await setUpNewUserWallet(
|
49
|
+
await setUpNewUserWallet({
|
50
|
+
client,
|
51
|
+
recoveryCode: _recoveryCode,
|
52
|
+
storage,
|
53
|
+
});
|
54
54
|
} else {
|
55
55
|
try {
|
56
56
|
// existing device share
|
57
57
|
await getDeviceShare(client.clientId);
|
58
58
|
} catch {
|
59
|
-
const _recoveryCode = await getRecoveryCode(
|
59
|
+
const _recoveryCode = await getRecoveryCode({
|
60
60
|
storedToken,
|
61
61
|
client,
|
62
|
-
recoveryCode,
|
63
|
-
|
62
|
+
recoveryCode: encryptionKey,
|
63
|
+
storage,
|
64
|
+
});
|
64
65
|
if (!_recoveryCode) {
|
65
66
|
throw new Error(ErrorMessages.missingRecoveryCode);
|
66
67
|
}
|
@@ -68,6 +69,7 @@ export async function postAuth({
|
|
68
69
|
await setUpShareForNewDevice({
|
69
70
|
client: client,
|
70
71
|
recoveryCode: _recoveryCode,
|
72
|
+
storage,
|
71
73
|
});
|
72
74
|
} catch (error) {
|
73
75
|
console.error("Error setting up wallet on device", error);
|
@@ -79,63 +81,17 @@ export async function postAuth({
|
|
79
81
|
return storedToken;
|
80
82
|
}
|
81
83
|
|
82
|
-
|
83
|
-
storedToken: AuthStoredTokenWithCookieReturnType["storedToken"]
|
84
|
-
client: ThirdwebClient
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
if (storedToken.
|
90
|
-
await setAuthTokenClient(storedToken.cookieString, client.clientId);
|
91
|
-
}
|
92
|
-
|
93
|
-
await setWallerUserDetails({
|
94
|
-
clientId: client.clientId,
|
95
|
-
userId: storedToken.authDetails.userWalletId,
|
96
|
-
email:
|
97
|
-
"email" in storedToken.authDetails
|
98
|
-
? storedToken.authDetails.email
|
99
|
-
: "phoneNumber" in storedToken.authDetails
|
100
|
-
? storedToken.authDetails.phoneNumber
|
101
|
-
: undefined,
|
102
|
-
});
|
103
|
-
|
104
|
-
if (storedToken.isNewUser) {
|
105
|
-
await setUpNewUserWallet(_password, client);
|
106
|
-
} else {
|
107
|
-
try {
|
108
|
-
// existing device share
|
109
|
-
await getDeviceShare(client.clientId);
|
110
|
-
} catch {
|
111
|
-
// trying to recreate device share from recovery code to derive wallet
|
112
|
-
try {
|
113
|
-
await setUpShareForNewDevice({
|
114
|
-
client,
|
115
|
-
recoveryCode: _password,
|
116
|
-
});
|
117
|
-
} catch (error) {
|
118
|
-
console.error("Error setting up wallet on device", error);
|
119
|
-
throw error;
|
120
|
-
}
|
121
|
-
}
|
122
|
-
}
|
123
|
-
|
124
|
-
return storedToken;
|
125
|
-
}
|
126
|
-
|
127
|
-
async function getRecoveryCode(
|
128
|
-
storedToken: AuthStoredTokenWithCookieReturnType["storedToken"],
|
129
|
-
client: ThirdwebClient,
|
130
|
-
recoveryCode?: string,
|
131
|
-
): Promise<string> {
|
132
|
-
if (
|
133
|
-
storedToken.authDetails.recoveryShareManagement ===
|
134
|
-
RecoveryShareManagement.CLOUD_MANAGED
|
135
|
-
) {
|
84
|
+
async function getRecoveryCode(args: {
|
85
|
+
storedToken: AuthStoredTokenWithCookieReturnType["storedToken"];
|
86
|
+
client: ThirdwebClient;
|
87
|
+
storage: ClientScopedStorage;
|
88
|
+
recoveryCode?: string;
|
89
|
+
}): Promise<string> {
|
90
|
+
const { storedToken, client, storage, recoveryCode } = args;
|
91
|
+
if (storedToken.authDetails.recoveryShareManagement === "AWS_MANAGED") {
|
136
92
|
if (
|
137
|
-
storedToken.authProvider ===
|
138
|
-
storedToken.authProvider ===
|
93
|
+
storedToken.authProvider === "CustomJWT" ||
|
94
|
+
storedToken.authProvider === "CustomAuthEndpoint"
|
139
95
|
) {
|
140
96
|
if (!recoveryCode) {
|
141
97
|
throw new Error(
|
@@ -145,15 +101,16 @@ async function getRecoveryCode(
|
|
145
101
|
return recoveryCode;
|
146
102
|
}
|
147
103
|
try {
|
148
|
-
return await getCognitoRecoveryPasswordV2(client);
|
104
|
+
return await getCognitoRecoveryPasswordV2({ client, storage });
|
149
105
|
} catch {
|
150
|
-
return await getCognitoRecoveryPasswordV1(client).catch(
|
151
|
-
|
152
|
-
|
106
|
+
return await getCognitoRecoveryPasswordV1({ client, storage }).catch(
|
107
|
+
() => {
|
108
|
+
throw new Error("Something went wrong getting cognito recovery code");
|
109
|
+
},
|
110
|
+
);
|
153
111
|
}
|
154
112
|
} else if (
|
155
|
-
storedToken.authDetails.recoveryShareManagement ===
|
156
|
-
RecoveryShareManagement.USER_MANAGED
|
113
|
+
storedToken.authDetails.recoveryShareManagement === "USER_MANAGED"
|
157
114
|
) {
|
158
115
|
if (recoveryCode) {
|
159
116
|
return recoveryCode;
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import AsyncStorage from "@react-native-async-storage/async-storage";
|
2
2
|
import {
|
3
|
-
AUTH_TOKEN_LOCAL_STORAGE_NAME,
|
4
3
|
DEVICE_SHARE_LOCAL_STORAGE_NAME,
|
5
4
|
WALLET_USER_DETAILS_LOCAL_STORAGE_NAME,
|
6
5
|
WALLET_USER_ID_LOCAL_STORAGE_NAME,
|
@@ -22,28 +21,28 @@ const removeItemInAsyncStorage = async (key: string) => {
|
|
22
21
|
await AsyncStorage.removeItem(key);
|
23
22
|
};
|
24
23
|
|
25
|
-
export async function getAuthTokenClient(clientId: string) {
|
26
|
-
|
27
|
-
}
|
28
|
-
|
29
|
-
export async function setAuthTokenClient(
|
30
|
-
|
31
|
-
|
32
|
-
): Promise<void> {
|
33
|
-
|
34
|
-
|
35
|
-
}
|
36
|
-
|
37
|
-
export async function removeAuthTokenInClient(
|
38
|
-
|
39
|
-
): Promise<boolean> {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
}
|
24
|
+
// export async function getAuthTokenClient(clientId: string) {
|
25
|
+
// return getItemFromAsyncStorage(AUTH_TOKEN_LOCAL_STORAGE_NAME(clientId));
|
26
|
+
// }
|
27
|
+
|
28
|
+
// export async function setAuthTokenClient(
|
29
|
+
// cookieString: string,
|
30
|
+
// clientId: string,
|
31
|
+
// ): Promise<void> {
|
32
|
+
// const authToken = AUTH_TOKEN_LOCAL_STORAGE_NAME(clientId);
|
33
|
+
// await setItemInAsyncStorage(authToken, cookieString);
|
34
|
+
// }
|
35
|
+
|
36
|
+
// export async function removeAuthTokenInClient(
|
37
|
+
// clientId: string,
|
38
|
+
// ): Promise<boolean> {
|
39
|
+
// const verifiedTokenString = await getAuthTokenClient(clientId);
|
40
|
+
// if (verifiedTokenString) {
|
41
|
+
// await removeItemInAsyncStorage(AUTH_TOKEN_LOCAL_STORAGE_NAME(clientId));
|
42
|
+
// return true;
|
43
|
+
// }
|
44
|
+
// return false;
|
45
|
+
// }
|
47
46
|
|
48
47
|
export async function setWallerUserDetails({
|
49
48
|
clientId,
|
@@ -2,6 +2,7 @@ import { secp256k1 } from "@noble/curves/secp256k1";
|
|
2
2
|
import { publicKeyToAddress } from "viem/utils";
|
3
3
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
4
4
|
import { stringToHex, toHex } from "../../../../../utils/encoding/hex.js";
|
5
|
+
import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
|
5
6
|
import type { SetUpWalletRpcReturnType } from "../../../core/authentication/types.js";
|
6
7
|
import { storeUserShares } from "../api/fetchers.js";
|
7
8
|
import { logoutUser } from "../auth/logout.js";
|
@@ -15,18 +16,21 @@ import { createErrorMessage } from "../errors.js";
|
|
15
16
|
import { setDeviceShare } from "../storage/local.js";
|
16
17
|
import { encryptShareWeb } from "./encryption.js";
|
17
18
|
|
18
|
-
export async function setUpNewUserWallet(
|
19
|
-
recoveryCode: string
|
20
|
-
client: ThirdwebClient
|
21
|
-
|
19
|
+
export async function setUpNewUserWallet(args: {
|
20
|
+
recoveryCode: string;
|
21
|
+
client: ThirdwebClient;
|
22
|
+
storage: ClientScopedStorage;
|
23
|
+
}) {
|
24
|
+
const { client, recoveryCode, storage } = args;
|
22
25
|
try {
|
23
26
|
return await generateWallet({
|
24
27
|
client,
|
25
28
|
recoveryCode: recoveryCode,
|
29
|
+
storage,
|
26
30
|
});
|
27
31
|
} catch (e) {
|
28
32
|
// we log user out so they aren't in the weird state where they are logged in but the wallet is not initialized
|
29
|
-
await logoutUser(client
|
33
|
+
await logoutUser({ client, storage });
|
30
34
|
throw new Error(
|
31
35
|
`Error creating new ews account. Please try signing in again. Original Error: ${e}`,
|
32
36
|
);
|
@@ -37,9 +41,11 @@ export async function setUpNewUserWallet(
|
|
37
41
|
async function generateWallet({
|
38
42
|
client,
|
39
43
|
recoveryCode,
|
44
|
+
storage,
|
40
45
|
}: {
|
41
46
|
client: ThirdwebClient;
|
42
47
|
recoveryCode: string;
|
48
|
+
storage: ClientScopedStorage;
|
43
49
|
}): Promise<
|
44
50
|
{
|
45
51
|
recoveryCode: string;
|
@@ -49,6 +55,7 @@ async function generateWallet({
|
|
49
55
|
|
50
56
|
const maybeDeviceShare = await storeShares({
|
51
57
|
client,
|
58
|
+
storage,
|
52
59
|
walletAddress: walletDetails.publicAddress,
|
53
60
|
authShare: walletDetails.shares[AUTH_SHARE_INDEX],
|
54
61
|
deviceShare: walletDetails.shares[DEVICE_SHARE_INDEX],
|
@@ -112,6 +119,7 @@ export async function storeShares<R extends string | undefined>({
|
|
112
119
|
authShare,
|
113
120
|
deviceShare,
|
114
121
|
recoveryShares,
|
122
|
+
storage,
|
115
123
|
}: {
|
116
124
|
client: ThirdwebClient;
|
117
125
|
walletAddress: string;
|
@@ -120,6 +128,7 @@ export async function storeShares<R extends string | undefined>({
|
|
120
128
|
recoveryShares?: R extends string
|
121
129
|
? { share: R; recoveryCode: string }[]
|
122
130
|
: never;
|
131
|
+
storage: ClientScopedStorage;
|
123
132
|
}): Promise<{ deviceShareStored: string } | undefined> {
|
124
133
|
let maybeEncryptedRecoveryShares:
|
125
134
|
| { share: string; isClientEncrypted: boolean }[]
|
@@ -144,6 +153,7 @@ export async function storeShares<R extends string | undefined>({
|
|
144
153
|
client,
|
145
154
|
maybeEncryptedRecoveryShares,
|
146
155
|
walletAddress,
|
156
|
+
storage,
|
147
157
|
});
|
148
158
|
|
149
159
|
try {
|
@@ -5,6 +5,7 @@ import {
|
|
5
5
|
} from "@aws-sdk/credential-providers";
|
6
6
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
7
7
|
import { stringToBytes } from "../../../../../utils/encoding/to-bytes.js";
|
8
|
+
import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
|
8
9
|
import { authFetchEmbeddedWalletUser } from "../api/fetchers.js";
|
9
10
|
import {
|
10
11
|
AWS_REGION,
|
@@ -16,14 +17,18 @@ import {
|
|
16
17
|
ROUTE_COGNITO_IDENTITY_POOL_URL,
|
17
18
|
} from "../constants.js";
|
18
19
|
|
19
|
-
export async function getCognitoRecoveryPasswordV1(
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
export async function getCognitoRecoveryPasswordV1(args: {
|
21
|
+
client: ThirdwebClient;
|
22
|
+
storage: ClientScopedStorage;
|
23
|
+
}) {
|
24
|
+
const idTokenResponse = await authFetchEmbeddedWalletUser({
|
25
|
+
client: args.client,
|
26
|
+
url: ROUTE_AUTH_COGNITO_ID_TOKEN_V1,
|
27
|
+
props: {
|
24
28
|
method: "GET",
|
25
29
|
},
|
26
|
-
|
30
|
+
storage: args.storage,
|
31
|
+
});
|
27
32
|
if (!idTokenResponse.ok) {
|
28
33
|
throw new Error(
|
29
34
|
`Failed to fetch id token from Cognito: ${JSON.stringify(
|
@@ -73,14 +78,18 @@ export async function getCognitoRecoveryPasswordV1(client: ThirdwebClient) {
|
|
73
78
|
return result;
|
74
79
|
}
|
75
80
|
|
76
|
-
export async function getCognitoRecoveryPasswordV2(
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
+
export async function getCognitoRecoveryPasswordV2(args: {
|
82
|
+
client: ThirdwebClient;
|
83
|
+
storage: ClientScopedStorage;
|
84
|
+
}) {
|
85
|
+
const idTokenResponse = await authFetchEmbeddedWalletUser({
|
86
|
+
client: args.client,
|
87
|
+
url: ROUTE_AUTH_COGNITO_ID_TOKEN_V2,
|
88
|
+
props: {
|
81
89
|
method: "GET",
|
82
90
|
},
|
83
|
-
|
91
|
+
storage: args.storage,
|
92
|
+
});
|
84
93
|
if (!idTokenResponse.ok) {
|
85
94
|
throw new Error(
|
86
95
|
`Failed to fetch id token from Cognito: ${JSON.stringify(
|
@@ -6,6 +6,7 @@ import {
|
|
6
6
|
} from "../../../../../utils/encoding/hex.js";
|
7
7
|
import type { Account } from "../../../../interfaces/wallet.js";
|
8
8
|
import { privateKeyToAccount } from "../../../../private-key.js";
|
9
|
+
import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
|
9
10
|
import type { SetUpWalletRpcReturnType } from "../../../core/authentication/types.js";
|
10
11
|
import { getUserShares } from "../api/fetchers.js";
|
11
12
|
import {
|
@@ -20,13 +21,17 @@ import { decryptShareWeb } from "./encryption.js";
|
|
20
21
|
* For users on a known device and logged in.
|
21
22
|
* Will throw if called on a new device // user not logged in
|
22
23
|
*/
|
23
|
-
export async function getExistingUserAccount(args: {
|
24
|
-
|
24
|
+
export async function getExistingUserAccount(args: {
|
25
|
+
client: ThirdwebClient;
|
26
|
+
storage: ClientScopedStorage;
|
27
|
+
}) {
|
28
|
+
const { client, storage } = args;
|
25
29
|
const { authShare, deviceShare } = await getShares({
|
26
30
|
client,
|
27
31
|
authShare: { toRetrieve: true },
|
28
32
|
deviceShare: { toRetrieve: true },
|
29
33
|
recoveryShare: { toRetrieve: false },
|
34
|
+
storage,
|
30
35
|
});
|
31
36
|
return getAccountFromShares({
|
32
37
|
client,
|
@@ -74,6 +79,7 @@ async function getShares<
|
|
74
79
|
authShare,
|
75
80
|
deviceShare,
|
76
81
|
recoveryShare,
|
82
|
+
storage,
|
77
83
|
}: {
|
78
84
|
client: ThirdwebClient;
|
79
85
|
authShare: { toRetrieve: A };
|
@@ -86,6 +92,7 @@ async function getShares<
|
|
86
92
|
toRetrieve: R;
|
87
93
|
};
|
88
94
|
deviceShare: { toRetrieve: D };
|
95
|
+
storage: ClientScopedStorage;
|
89
96
|
}): Promise<{
|
90
97
|
authShare: A extends true ? string : undefined;
|
91
98
|
recoveryShare: R extends true ? string : undefined;
|
@@ -119,7 +126,7 @@ async function getShares<
|
|
119
126
|
);
|
120
127
|
}
|
121
128
|
|
122
|
-
const userShares = await getUserShares(client, getShareUrl);
|
129
|
+
const userShares = await getUserShares({ client, getShareUrl, storage });
|
123
130
|
const { authShare: _authShare, maybeEncryptedRecoveryShares } = userShares;
|
124
131
|
|
125
132
|
let recoverShareToReturn: string | undefined;
|
@@ -180,15 +187,18 @@ async function getAccountAddressFromShares(args: {
|
|
180
187
|
export async function setUpShareForNewDevice({
|
181
188
|
recoveryCode,
|
182
189
|
client,
|
190
|
+
storage,
|
183
191
|
}: {
|
184
192
|
recoveryCode: string;
|
185
193
|
client: ThirdwebClient;
|
194
|
+
storage: ClientScopedStorage;
|
186
195
|
}): Promise<SetUpWalletRpcReturnType> {
|
187
196
|
const { recoveryShare, authShare } = await getShares({
|
188
197
|
client,
|
189
198
|
authShare: { toRetrieve: true },
|
190
199
|
recoveryShare: { toRetrieve: true, recoveryCode },
|
191
200
|
deviceShare: { toRetrieve: false },
|
201
|
+
storage,
|
192
202
|
});
|
193
203
|
// instead of recreating a new share, just save the recovery one as the new device share
|
194
204
|
const deviceShare = recoveryShare;
|
@@ -201,6 +211,7 @@ export async function setUpShareForNewDevice({
|
|
201
211
|
client,
|
202
212
|
walletAddress,
|
203
213
|
deviceShare,
|
214
|
+
storage,
|
204
215
|
});
|
205
216
|
|
206
217
|
if (!maybeDeviceShare?.deviceShareStored) {
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../../../client/client.js";
|
2
|
+
import type { Account } from "../../../../interfaces/wallet.js";
|
3
|
+
import type { ClientScopedStorage } from "../../../core/authentication/client-scoped-storage.js";
|
4
|
+
import type {
|
5
|
+
AuthResultAndRecoveryCode,
|
6
|
+
GetUser,
|
7
|
+
} from "../../../core/authentication/types.js";
|
8
|
+
import type { IWebWallet } from "../../../core/wallet/web-wallet.js";
|
9
|
+
import { fetchUserDetails } from "../api/fetchers.js";
|
10
|
+
import { postAuth } from "../auth/middleware.js";
|
11
|
+
import { getWalletUserDetails } from "../storage/local.js";
|
12
|
+
import { getExistingUserAccount } from "./retrieval.js";
|
13
|
+
|
14
|
+
export class ShardedWallet implements IWebWallet {
|
15
|
+
private client: ThirdwebClient;
|
16
|
+
private storage: ClientScopedStorage;
|
17
|
+
|
18
|
+
constructor(args: {
|
19
|
+
client: ThirdwebClient;
|
20
|
+
storage: ClientScopedStorage;
|
21
|
+
}) {
|
22
|
+
this.client = args.client;
|
23
|
+
this.storage = args.storage;
|
24
|
+
}
|
25
|
+
|
26
|
+
async postWalletSetUp(authResult: AuthResultAndRecoveryCode): Promise<void> {
|
27
|
+
await postAuth({
|
28
|
+
storedToken: authResult.storedToken,
|
29
|
+
client: this.client,
|
30
|
+
storage: this.storage,
|
31
|
+
encryptionKey: authResult.encryptionKey,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
|
35
|
+
async getUserWalletStatus(): Promise<GetUser> {
|
36
|
+
const localData = await getWalletUserDetails(this.client.clientId);
|
37
|
+
const userStatus = await fetchUserDetails({
|
38
|
+
client: this.client,
|
39
|
+
email: localData?.email,
|
40
|
+
storage: this.storage,
|
41
|
+
});
|
42
|
+
if (userStatus.status === "Logged In, Wallet Initialized") {
|
43
|
+
return {
|
44
|
+
status: userStatus.status,
|
45
|
+
authDetails: userStatus.storedToken.authDetails,
|
46
|
+
walletAddress: userStatus.walletAddress,
|
47
|
+
account: await this.getAccount(),
|
48
|
+
};
|
49
|
+
}
|
50
|
+
if (userStatus.status === "Logged In, New Device") {
|
51
|
+
return {
|
52
|
+
status: "Logged In, New Device",
|
53
|
+
authDetails: userStatus.storedToken.authDetails,
|
54
|
+
walletAddress: userStatus.walletAddress,
|
55
|
+
};
|
56
|
+
}
|
57
|
+
if (userStatus.status === "Logged In, Wallet Uninitialized") {
|
58
|
+
return {
|
59
|
+
status: "Logged In, Wallet Uninitialized",
|
60
|
+
authDetails: userStatus.storedToken.authDetails,
|
61
|
+
};
|
62
|
+
}
|
63
|
+
// Logged out
|
64
|
+
return { status: "Logged Out" };
|
65
|
+
}
|
66
|
+
getAccount(): Promise<Account> {
|
67
|
+
return getExistingUserAccount({
|
68
|
+
client: this.client,
|
69
|
+
storage: this.storage,
|
70
|
+
});
|
71
|
+
}
|
72
|
+
}
|