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
@@ -8,6 +8,7 @@ import type { Prettify } from "../type-utils.js";
|
|
8
8
|
type FetchDeployMetadataOptions = {
|
9
9
|
uri: string;
|
10
10
|
client: ThirdwebClient;
|
11
|
+
compilerType?: "solc" | "zksolc";
|
11
12
|
};
|
12
13
|
|
13
14
|
export type FetchDeployMetadataResult = Partial<ExtendedMetadata> &
|
@@ -22,19 +23,25 @@ export type FetchDeployMetadataResult = Partial<ExtendedMetadata> &
|
|
22
23
|
export async function fetchDeployMetadata(
|
23
24
|
options: FetchDeployMetadataOptions,
|
24
25
|
): Promise<FetchDeployMetadataResult> {
|
26
|
+
const isZksolc = options.compilerType === "zksolc";
|
25
27
|
const rawMeta: RawCompilerMetadata = await download({
|
26
28
|
uri: options.uri,
|
27
29
|
client: options.client,
|
28
30
|
}).then((r) => r.json());
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
|
32
|
+
if (
|
33
|
+
isZksolc &&
|
34
|
+
(!rawMeta.compilers?.zksolc || rawMeta.compilers?.zksolc.length === 0)
|
35
|
+
) {
|
36
|
+
throw new Error(`No zksolc metadata found for contract: ${rawMeta.name}`);
|
37
|
+
}
|
38
|
+
|
39
|
+
const metadataUri = isZksolc
|
40
|
+
? rawMeta.compilers.zksolc[0].metadataUri
|
41
|
+
: rawMeta.metadataUri;
|
42
|
+
const bytecodeUri = isZksolc
|
43
|
+
? rawMeta.compilers.zksolc[0].bytecodeUri
|
44
|
+
: rawMeta.bytecodeUri;
|
38
45
|
const [deployBytecode, parsedMeta] = await Promise.all([
|
39
46
|
download({ uri: bytecodeUri, client: options.client }).then(
|
40
47
|
(res) => res.text() as Promise<Hex>,
|
@@ -42,6 +49,7 @@ export async function fetchDeployMetadata(
|
|
42
49
|
fetchAndParseCompilerMetadata({
|
43
50
|
client: options.client,
|
44
51
|
uri: metadataUri,
|
52
|
+
compilerType: options.compilerType,
|
45
53
|
}),
|
46
54
|
]);
|
47
55
|
|
@@ -66,12 +74,18 @@ async function fetchAndParseCompilerMetadata(
|
|
66
74
|
requestTimeoutMs: CONTRACT_METADATA_TIMEOUT_SEC,
|
67
75
|
})
|
68
76
|
).json();
|
69
|
-
if (
|
77
|
+
if (
|
78
|
+
(!metadata || !metadata.output) &&
|
79
|
+
(!metadata.source_metadata || !metadata.source_metadata.output)
|
80
|
+
) {
|
70
81
|
throw new Error(
|
71
82
|
`Could not resolve metadata for contract at ${options.uri}`,
|
72
83
|
);
|
73
84
|
}
|
74
|
-
return {
|
85
|
+
return {
|
86
|
+
...metadata,
|
87
|
+
...formatCompilerMetadata(metadata, options.compilerType),
|
88
|
+
};
|
75
89
|
}
|
76
90
|
|
77
91
|
// types
|
@@ -128,6 +142,7 @@ type ParsedCompilerMetadata = {
|
|
128
142
|
};
|
129
143
|
licenses: string[];
|
130
144
|
isPartialAbi?: boolean;
|
145
|
+
zk_version?: string;
|
131
146
|
};
|
132
147
|
|
133
148
|
export type CompilerMetadata = Prettify<
|
package/src/utils/fetch.ts
CHANGED
@@ -8,6 +8,7 @@ import {
|
|
8
8
|
detectPlatform,
|
9
9
|
} from "./detect-platform.js";
|
10
10
|
import { isJWT } from "./jwt/is-jwt.js";
|
11
|
+
import { IS_DEV } from "./process.js";
|
11
12
|
|
12
13
|
const DEFAULT_REQUEST_TIMEOUT = 60000;
|
13
14
|
|
@@ -112,10 +113,7 @@ export function isThirdwebUrl(url: string): boolean {
|
|
112
113
|
|
113
114
|
try {
|
114
115
|
// special case for localhost in development only
|
115
|
-
if (
|
116
|
-
process.env.NODE_ENV === "development" ||
|
117
|
-
process.env.NODE_ENV === "test"
|
118
|
-
) {
|
116
|
+
if (IS_DEV) {
|
119
117
|
if (hostname === "localhost") {
|
120
118
|
IS_THIRDWEB_URL_CACHE.set(url, true);
|
121
119
|
return true;
|
package/src/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = "5.59.0
|
1
|
+
export const version = "5.59.0";
|
@@ -140,6 +140,13 @@ export function createWallet<const ID extends WalletId>(
|
|
140
140
|
creationOptions as CreateWalletArgs<"inApp">[1],
|
141
141
|
) as Wallet<ID>;
|
142
142
|
}
|
143
|
+
/**
|
144
|
+
* ECOSYSTEM WALLET
|
145
|
+
*/
|
146
|
+
case isEcosystemWallet(id):
|
147
|
+
return ecosystemWallet(
|
148
|
+
...(args as CreateWalletArgs<EcosystemWalletId>),
|
149
|
+
) as Wallet<ID>;
|
143
150
|
|
144
151
|
/**
|
145
152
|
* COINBASE WALLET VIA SDK
|
@@ -160,11 +167,6 @@ export function createWallet<const ID extends WalletId>(
|
|
160
167
|
},
|
161
168
|
}) as Wallet<ID>;
|
162
169
|
}
|
163
|
-
case isEcosystemWallet(id):
|
164
|
-
return ecosystemWallet(
|
165
|
-
...(args as CreateWalletArgs<EcosystemWalletId>),
|
166
|
-
) as Wallet<ID>;
|
167
|
-
|
168
170
|
/**
|
169
171
|
* WALLET CONNECT AND INJECTED WALLETS + walletConnect standalone
|
170
172
|
*/
|
@@ -4,11 +4,20 @@ import type {
|
|
4
4
|
} from "../in-app/core/wallet/types.js";
|
5
5
|
|
6
6
|
export type EcosystemWalletCreationOptions = {
|
7
|
-
partnerId?: string;
|
8
7
|
auth?: {
|
8
|
+
/**
|
9
|
+
* Whether to display the social auth prompt in a popup or redirect
|
10
|
+
*/
|
9
11
|
mode?: "popup" | "redirect" | "window";
|
12
|
+
/**
|
13
|
+
* Optional url to redirect to after authentication
|
14
|
+
*/
|
10
15
|
redirectUrl?: string;
|
11
16
|
};
|
17
|
+
/**
|
18
|
+
* The partnerId of the ecosystem wallet to connect to
|
19
|
+
*/
|
20
|
+
partnerId?: string;
|
12
21
|
};
|
13
22
|
|
14
23
|
export type EcosystemWalletConnectionOptions = InAppWalletConnectionOptions;
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
2
|
+
import { getSessionHeaders } from "../../native/helpers/api/fetchers.js";
|
3
|
+
import { ROUTE_AUTH_ENDPOINT_CALLBACK } from "../../native/helpers/constants.js";
|
4
|
+
import { createErrorMessage } from "../../native/helpers/errors.js";
|
5
|
+
import type { ClientScopedStorage } from "./client-scoped-storage.js";
|
6
|
+
import type { AuthStoredTokenWithCookieReturnType } from "./types.js";
|
7
|
+
|
8
|
+
export async function authEndpoint(args: {
|
9
|
+
payload: string;
|
10
|
+
client: ThirdwebClient;
|
11
|
+
storage: ClientScopedStorage;
|
12
|
+
}): Promise<AuthStoredTokenWithCookieReturnType> {
|
13
|
+
const resp = await fetch(ROUTE_AUTH_ENDPOINT_CALLBACK, {
|
14
|
+
method: "POST",
|
15
|
+
headers: {
|
16
|
+
...getSessionHeaders(),
|
17
|
+
},
|
18
|
+
body: JSON.stringify({
|
19
|
+
payload: args.payload,
|
20
|
+
developerClientId: args.client.clientId,
|
21
|
+
}),
|
22
|
+
});
|
23
|
+
if (!resp.ok) {
|
24
|
+
const error = await resp.json();
|
25
|
+
throw new Error(
|
26
|
+
`Custom auth endpoint authentication error: ${error.message}`,
|
27
|
+
);
|
28
|
+
}
|
29
|
+
|
30
|
+
try {
|
31
|
+
const { verifiedToken } = await resp.json();
|
32
|
+
|
33
|
+
return { storedToken: verifiedToken };
|
34
|
+
} catch (e) {
|
35
|
+
throw new Error(
|
36
|
+
createErrorMessage(
|
37
|
+
"Malformed response from post auth_endpoint authentication",
|
38
|
+
e,
|
39
|
+
),
|
40
|
+
);
|
41
|
+
}
|
42
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
2
|
+
import { getSessionHeaders } from "../../native/helpers/api/fetchers.js";
|
3
|
+
import { ROUTE_AUTH_JWT_CALLBACK } from "../../native/helpers/constants.js";
|
4
|
+
import { createErrorMessage } from "../../native/helpers/errors.js";
|
5
|
+
import type { ClientScopedStorage } from "./client-scoped-storage.js";
|
6
|
+
import type { AuthStoredTokenWithCookieReturnType } from "./types.js";
|
7
|
+
|
8
|
+
export async function customJwt(args: {
|
9
|
+
jwt: string;
|
10
|
+
client: ThirdwebClient;
|
11
|
+
storage: ClientScopedStorage;
|
12
|
+
}): Promise<AuthStoredTokenWithCookieReturnType> {
|
13
|
+
const resp = await fetch(ROUTE_AUTH_JWT_CALLBACK, {
|
14
|
+
method: "POST",
|
15
|
+
headers: {
|
16
|
+
...getSessionHeaders(),
|
17
|
+
},
|
18
|
+
body: JSON.stringify({
|
19
|
+
jwt: args.jwt,
|
20
|
+
developerClientId: args.client.clientId,
|
21
|
+
}),
|
22
|
+
});
|
23
|
+
|
24
|
+
if (!resp.ok) {
|
25
|
+
const error = await resp.json();
|
26
|
+
throw new Error(`JWT authentication error: ${error.message}`);
|
27
|
+
}
|
28
|
+
|
29
|
+
try {
|
30
|
+
const { verifiedToken } = await resp.json();
|
31
|
+
return { storedToken: verifiedToken };
|
32
|
+
} catch (e) {
|
33
|
+
throw new Error(
|
34
|
+
createErrorMessage("Malformed response from post jwt authentication", e),
|
35
|
+
);
|
36
|
+
}
|
37
|
+
}
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../../../client/client.js";
|
2
2
|
import { getThirdwebBaseUrl } from "../../../../utils/domains.js";
|
3
3
|
import { getClientFetch } from "../../../../utils/fetch.js";
|
4
|
-
import type { AsyncStorage } from "../../../../utils/storage/AsyncStorage.js";
|
5
4
|
import type { Ecosystem } from "../wallet/types.js";
|
6
|
-
import { ClientScopedStorage } from "./client-scoped-storage.js";
|
5
|
+
import type { ClientScopedStorage } from "./client-scoped-storage.js";
|
7
6
|
import type { AuthStoredTokenWithCookieReturnType } from "./types.js";
|
8
7
|
|
9
8
|
function getVerificationPath() {
|
@@ -56,7 +55,7 @@ export interface PasskeyClient {
|
|
56
55
|
|
57
56
|
export async function registerPasskey(options: {
|
58
57
|
client: ThirdwebClient;
|
59
|
-
storage:
|
58
|
+
storage: ClientScopedStorage;
|
60
59
|
passkeyClient: PasskeyClient;
|
61
60
|
ecosystem?: Ecosystem;
|
62
61
|
username?: string;
|
@@ -65,11 +64,6 @@ export async function registerPasskey(options: {
|
|
65
64
|
if (!options.passkeyClient.isAvailable()) {
|
66
65
|
throw new Error("Passkeys are not available on this device");
|
67
66
|
}
|
68
|
-
const storage = new ClientScopedStorage({
|
69
|
-
storage: options.storage,
|
70
|
-
clientId: options.client.clientId,
|
71
|
-
ecosystemId: options.ecosystem?.id,
|
72
|
-
});
|
73
67
|
const fetchWithId = getClientFetch(options.client, options.ecosystem);
|
74
68
|
const generatedName = options.username ?? generateUsername(options.ecosystem);
|
75
69
|
// 1. request challenge from server
|
@@ -125,7 +119,7 @@ export async function registerPasskey(options: {
|
|
125
119
|
);
|
126
120
|
}
|
127
121
|
// 4. store the credentialId in local storage
|
128
|
-
await storage.savePasskeyCredentialId(registration.credentialId);
|
122
|
+
await options.storage.savePasskeyCredentialId(registration.credentialId);
|
129
123
|
|
130
124
|
// 5. returns back the IAW authentication token
|
131
125
|
return verifData;
|
@@ -133,7 +127,7 @@ export async function registerPasskey(options: {
|
|
133
127
|
|
134
128
|
export async function loginWithPasskey(options: {
|
135
129
|
client: ThirdwebClient;
|
136
|
-
storage:
|
130
|
+
storage: ClientScopedStorage;
|
137
131
|
passkeyClient: PasskeyClient;
|
138
132
|
rp: RpInfo;
|
139
133
|
ecosystem?: Ecosystem;
|
@@ -141,11 +135,6 @@ export async function loginWithPasskey(options: {
|
|
141
135
|
if (!options.passkeyClient.isAvailable()) {
|
142
136
|
throw new Error("Passkeys are not available on this device");
|
143
137
|
}
|
144
|
-
const storage = new ClientScopedStorage({
|
145
|
-
storage: options.storage,
|
146
|
-
clientId: options.client.clientId,
|
147
|
-
ecosystemId: options.ecosystem?.id,
|
148
|
-
});
|
149
138
|
const fetchWithId = getClientFetch(options.client, options.ecosystem);
|
150
139
|
// 1. request challenge from server/iframe
|
151
140
|
const res = await fetchWithId(getChallengePath("sign-in"));
|
@@ -155,7 +144,8 @@ export async function loginWithPasskey(options: {
|
|
155
144
|
}
|
156
145
|
const challenge = challengeData.challenge;
|
157
146
|
// 1.2. find the user's credentialId in local storage
|
158
|
-
const credentialId =
|
147
|
+
const credentialId =
|
148
|
+
(await options.storage.getPasskeyCredentialId()) ?? undefined;
|
159
149
|
// 2. initiate login
|
160
150
|
const authentication = await options.passkeyClient.authenticate({
|
161
151
|
credentialId,
|
@@ -198,7 +188,7 @@ export async function loginWithPasskey(options: {
|
|
198
188
|
}
|
199
189
|
|
200
190
|
// 5. store the credentialId in local storage
|
201
|
-
await storage.savePasskeyCredentialId(authentication.credentialId);
|
191
|
+
await options.storage.savePasskeyCredentialId(authentication.credentialId);
|
202
192
|
|
203
193
|
// 6. return the auth'd user type
|
204
194
|
return verifData;
|
@@ -66,30 +66,25 @@ export type AuthArgsType = (MultiStepAuthArgsType | SingleStepAuthArgsType) & {
|
|
66
66
|
};
|
67
67
|
|
68
68
|
// TODO: remove usage of enums, instead use object with as const
|
69
|
-
|
70
|
-
USER_MANAGED = "USER_MANAGED",
|
71
|
-
CLOUD_MANAGED = "AWS_MANAGED",
|
72
|
-
ENCLAVE = "ENCLAVE",
|
73
|
-
}
|
69
|
+
type RecoveryShareManagement = "USER_MANAGED" | "AWS_MANAGED" | "ENCLAVE";
|
74
70
|
|
75
71
|
// TODO: remove usage of enums, instead use object with as const
|
76
|
-
export
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
}
|
72
|
+
export type AuthProvider =
|
73
|
+
| "Cognito"
|
74
|
+
| "Guest"
|
75
|
+
| "Google"
|
76
|
+
| "EmailOtp"
|
77
|
+
| "CustomJWT"
|
78
|
+
| "CustomAuthEndpoint"
|
79
|
+
| "Facebook"
|
80
|
+
| "Apple"
|
81
|
+
| "Passkey"
|
82
|
+
| "Discord"
|
83
|
+
| "Coinbase"
|
84
|
+
| "X"
|
85
|
+
| "Line"
|
86
|
+
| "Farcaster"
|
87
|
+
| "Telegram";
|
93
88
|
|
94
89
|
export type OAuthRedirectObject = {
|
95
90
|
strategy: OAuthOption;
|
@@ -134,10 +129,15 @@ export type AuthAndWalletRpcReturnType = AuthStoredTokenWithCookieReturnType & {
|
|
134
129
|
walletDetails: SetUpWalletRpcReturnType | WalletAddressObjectType;
|
135
130
|
};
|
136
131
|
|
132
|
+
export type AuthResultAndRecoveryCode = AuthStoredTokenWithCookieReturnType & {
|
133
|
+
deviceShareStored?: string;
|
134
|
+
encryptionKey?: string;
|
135
|
+
};
|
136
|
+
|
137
137
|
export type AuthLoginReturnType = { user: InitializedUser };
|
138
138
|
|
139
139
|
// Auth Types
|
140
|
-
type AuthDetails = (
|
140
|
+
export type AuthDetails = (
|
141
141
|
| {
|
142
142
|
email?: string;
|
143
143
|
}
|
@@ -153,21 +153,15 @@ type AuthDetails = (
|
|
153
153
|
};
|
154
154
|
|
155
155
|
type InitializedUser = {
|
156
|
-
status:
|
156
|
+
status: "Logged In, Wallet Initialized";
|
157
157
|
walletAddress: string;
|
158
158
|
authDetails: AuthDetails;
|
159
159
|
account: Account; // TODO (rn) this doesn't feel right here, should access it from the connector
|
160
160
|
};
|
161
161
|
|
162
|
-
// In
|
163
|
-
export enum UserWalletStatus {
|
164
|
-
LOGGED_OUT = "Logged Out",
|
165
|
-
LOGGED_IN_WALLET_UNINITIALIZED = "Logged In, Wallet Uninitialized",
|
166
|
-
LOGGED_IN_NEW_DEVICE = "Logged In, New Device",
|
167
|
-
LOGGED_IN_WALLET_INITIALIZED = "Logged In, Wallet Initialized",
|
168
|
-
}
|
162
|
+
// In App Wallet Types
|
169
163
|
|
170
|
-
|
164
|
+
type WalletAddressObjectType = {
|
171
165
|
/**
|
172
166
|
* User's wallet address
|
173
167
|
*/
|
@@ -199,33 +193,33 @@ export type LogoutReturnType = { success: boolean };
|
|
199
193
|
// this is the return type from the InAppWallet Class getUserWalletStatus method iframe call
|
200
194
|
export type GetUserWalletStatusRpcReturnType =
|
201
195
|
| {
|
202
|
-
status:
|
196
|
+
status: "Logged Out";
|
203
197
|
user: undefined;
|
204
198
|
}
|
205
199
|
| {
|
206
|
-
status:
|
200
|
+
status: "Logged In, Wallet Uninitialized";
|
207
201
|
user: { authDetails: AuthDetails };
|
208
202
|
}
|
209
203
|
| {
|
210
|
-
status:
|
204
|
+
status: "Logged In, New Device";
|
211
205
|
user: { authDetails: AuthDetails; walletAddress: string };
|
212
206
|
}
|
213
207
|
| {
|
214
|
-
status:
|
208
|
+
status: "Logged In, Wallet Initialized";
|
215
209
|
user: Omit<InitializedUser, "account" | "status">;
|
216
210
|
};
|
217
211
|
|
218
212
|
// this is the return type from the InAppWallet Class getUserWalletStatus method
|
219
213
|
export type GetUser =
|
220
214
|
| {
|
221
|
-
status:
|
215
|
+
status: "Logged Out";
|
222
216
|
}
|
223
217
|
| {
|
224
|
-
status:
|
218
|
+
status: "Logged In, Wallet Uninitialized";
|
225
219
|
authDetails: AuthDetails;
|
226
220
|
}
|
227
221
|
| {
|
228
|
-
status:
|
222
|
+
status: "Logged In, New Device";
|
229
223
|
authDetails: AuthDetails;
|
230
224
|
walletAddress: string;
|
231
225
|
}
|
@@ -11,19 +11,18 @@ import type {
|
|
11
11
|
Account,
|
12
12
|
SendTransactionOption,
|
13
13
|
} from "../../../interfaces/wallet.js";
|
14
|
-
import
|
15
|
-
import {
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
import {
|
25
|
-
import {
|
26
|
-
import type { IWebWallet, PostWalletSetup } from "./web-wallet.js";
|
14
|
+
import { getUserStatus } from "../../web/lib/actions/get-enclave-user-status.js";
|
15
|
+
import { signMessage as signEnclaveMessage } from "../../web/lib/actions/sign-message.enclave.js";
|
16
|
+
import { signTransaction as signEnclaveTransaction } from "../../web/lib/actions/sign-transaction.enclave.js";
|
17
|
+
import { signTypedData as signEnclaveTypedData } from "../../web/lib/actions/sign-typed-data.enclave.js";
|
18
|
+
import type { ClientScopedStorage } from "../authentication/client-scoped-storage.js";
|
19
|
+
import type {
|
20
|
+
AuthDetails,
|
21
|
+
AuthResultAndRecoveryCode,
|
22
|
+
GetUser,
|
23
|
+
} from "../authentication/types.js";
|
24
|
+
import type { Ecosystem } from "./types.js";
|
25
|
+
import type { IWebWallet } from "./web-wallet.js";
|
27
26
|
|
28
27
|
export type UserStatus = {
|
29
28
|
linkedAccounts: {
|
@@ -74,12 +73,8 @@ export class EnclaveWallet implements IWebWallet {
|
|
74
73
|
* @returns `{walletAddress: string }` The user's wallet details
|
75
74
|
* @internal
|
76
75
|
*/
|
77
|
-
async postWalletSetUp({
|
78
|
-
|
79
|
-
authToken,
|
80
|
-
}: PostWalletSetup): Promise<WalletAddressObjectType> {
|
81
|
-
await this.localStorage.saveAuthCookie(authToken);
|
82
|
-
return { walletAddress };
|
76
|
+
async postWalletSetUp(authResult: AuthResultAndRecoveryCode): Promise<void> {
|
77
|
+
await this.localStorage.saveAuthCookie(authResult.storedToken.cookieString);
|
83
78
|
}
|
84
79
|
|
85
80
|
/**
|
@@ -89,7 +84,7 @@ export class EnclaveWallet implements IWebWallet {
|
|
89
84
|
async getUserWalletStatus(): Promise<GetUser> {
|
90
85
|
const token = await this.localStorage.getAuthCookie();
|
91
86
|
if (!token) {
|
92
|
-
return { status:
|
87
|
+
return { status: "Logged Out" };
|
93
88
|
}
|
94
89
|
|
95
90
|
const userStatus = await getUserStatus({
|
@@ -99,11 +94,11 @@ export class EnclaveWallet implements IWebWallet {
|
|
99
94
|
});
|
100
95
|
|
101
96
|
if (!userStatus) {
|
102
|
-
return { status:
|
97
|
+
return { status: "Logged Out" };
|
103
98
|
}
|
104
99
|
const wallet = userStatus.wallets[0];
|
105
100
|
|
106
|
-
const authDetails = {
|
101
|
+
const authDetails: AuthDetails = {
|
107
102
|
email: userStatus.linkedAccounts.find(
|
108
103
|
(account) => account.details.email !== undefined,
|
109
104
|
)?.details.email,
|
@@ -111,18 +106,18 @@ export class EnclaveWallet implements IWebWallet {
|
|
111
106
|
(account) => account.details.phone !== undefined,
|
112
107
|
)?.details.phone,
|
113
108
|
userWalletId: userStatus.id || "",
|
114
|
-
recoveryShareManagement:
|
109
|
+
recoveryShareManagement: "ENCLAVE",
|
115
110
|
};
|
116
111
|
|
117
112
|
if (!wallet) {
|
118
113
|
return {
|
119
|
-
status:
|
114
|
+
status: "Logged In, Wallet Uninitialized",
|
120
115
|
authDetails,
|
121
116
|
};
|
122
117
|
}
|
123
118
|
|
124
119
|
return {
|
125
|
-
status:
|
120
|
+
status: "Logged In, Wallet Initialized",
|
126
121
|
walletAddress: wallet.address,
|
127
122
|
authDetails,
|
128
123
|
account: await this.getAccount(),
|
@@ -136,6 +131,7 @@ export class EnclaveWallet implements IWebWallet {
|
|
136
131
|
async getAccount(): Promise<Account> {
|
137
132
|
const client = this.client;
|
138
133
|
const ecosystem = this.ecosystem;
|
134
|
+
const storage = this.localStorage;
|
139
135
|
|
140
136
|
const _signTransaction = async (tx: SendTransactionOption) => {
|
141
137
|
const rpcRequest = getRpcClient({
|
@@ -176,6 +172,7 @@ export class EnclaveWallet implements IWebWallet {
|
|
176
172
|
return signEnclaveTransaction({
|
177
173
|
client,
|
178
174
|
ecosystem,
|
175
|
+
storage,
|
179
176
|
payload: transaction,
|
180
177
|
});
|
181
178
|
};
|
@@ -223,6 +220,7 @@ export class EnclaveWallet implements IWebWallet {
|
|
223
220
|
client,
|
224
221
|
ecosystem,
|
225
222
|
payload: messagePayload,
|
223
|
+
storage,
|
226
224
|
});
|
227
225
|
return signature as Hex;
|
228
226
|
},
|
@@ -232,6 +230,7 @@ export class EnclaveWallet implements IWebWallet {
|
|
232
230
|
client,
|
233
231
|
ecosystem,
|
234
232
|
payload: parsedTypedData,
|
233
|
+
storage,
|
235
234
|
});
|
236
235
|
|
237
236
|
return signature as Hex;
|
@@ -4,7 +4,10 @@ import { getCachedChainIfExists } from "../../../../chains/utils.js";
|
|
4
4
|
import type { ThirdwebClient } from "../../../../client/client.js";
|
5
5
|
import type { Account, Wallet } from "../../../interfaces/wallet.js";
|
6
6
|
import { createWalletEmitter } from "../../../wallet-emitter.js";
|
7
|
-
import type {
|
7
|
+
import type {
|
8
|
+
CreateWalletArgs,
|
9
|
+
EcosystemWalletId,
|
10
|
+
} from "../../../wallet-types.js";
|
8
11
|
import type { InAppConnector } from "../interfaces/connector.js";
|
9
12
|
import type { Ecosystem } from "./types.js";
|
10
13
|
|
@@ -33,15 +36,17 @@ export async function getOrCreateInAppWalletConnector(
|
|
33
36
|
export function createInAppWallet(args: {
|
34
37
|
createOptions?: CreateWalletArgs<"inApp">[1];
|
35
38
|
connectorFactory: (client: ThirdwebClient) => Promise<InAppConnector>;
|
36
|
-
|
37
|
-
|
39
|
+
ecosystem?: Ecosystem;
|
40
|
+
}): Wallet<"inApp" | EcosystemWalletId> {
|
41
|
+
const { createOptions, connectorFactory, ecosystem } = args;
|
42
|
+
const walletId = ecosystem ? ecosystem.id : "inApp";
|
38
43
|
const emitter = createWalletEmitter<"inApp">();
|
39
44
|
let account: Account | undefined = undefined;
|
40
45
|
let chain: Chain | undefined = undefined;
|
41
46
|
let client: ThirdwebClient | undefined;
|
42
47
|
|
43
48
|
return {
|
44
|
-
id:
|
49
|
+
id: walletId,
|
45
50
|
subscribe: emitter.subscribe,
|
46
51
|
getChain() {
|
47
52
|
if (!chain) {
|
@@ -59,6 +64,7 @@ export function createInAppWallet(args: {
|
|
59
64
|
const connector = await getOrCreateInAppWalletConnector(
|
60
65
|
options.client,
|
61
66
|
connectorFactory,
|
67
|
+
ecosystem,
|
62
68
|
);
|
63
69
|
const [connectedAccount, connectedChain] = await autoConnectInAppWallet(
|
64
70
|
options,
|
@@ -72,7 +78,7 @@ export function createInAppWallet(args: {
|
|
72
78
|
chain = connectedChain;
|
73
79
|
trackConnect({
|
74
80
|
client: options.client,
|
75
|
-
walletType:
|
81
|
+
walletType: walletId,
|
76
82
|
walletAddress: account.address,
|
77
83
|
});
|
78
84
|
// return only the account
|
@@ -83,6 +89,7 @@ export function createInAppWallet(args: {
|
|
83
89
|
const connector = await getOrCreateInAppWalletConnector(
|
84
90
|
options.client,
|
85
91
|
connectorFactory,
|
92
|
+
ecosystem,
|
86
93
|
);
|
87
94
|
|
88
95
|
const [connectedAccount, connectedChain] = await connectInAppWallet(
|
@@ -96,7 +103,7 @@ export function createInAppWallet(args: {
|
|
96
103
|
chain = connectedChain;
|
97
104
|
trackConnect({
|
98
105
|
client: options.client,
|
99
|
-
walletType:
|
106
|
+
walletType: walletId,
|
100
107
|
walletAddress: account.address,
|
101
108
|
});
|
102
109
|
// return only the account
|
@@ -108,6 +115,7 @@ export function createInAppWallet(args: {
|
|
108
115
|
const connector = await getOrCreateInAppWalletConnector(
|
109
116
|
client,
|
110
117
|
connectorFactory,
|
118
|
+
ecosystem,
|
111
119
|
);
|
112
120
|
const result = await connector.logout();
|
113
121
|
if (!result.success) {
|
@@ -125,6 +133,7 @@ export function createInAppWallet(args: {
|
|
125
133
|
const connector = await getOrCreateInAppWalletConnector(
|
126
134
|
client,
|
127
135
|
connectorFactory,
|
136
|
+
ecosystem,
|
128
137
|
);
|
129
138
|
const [connectedAccount, connectedChain] = await autoConnectInAppWallet(
|
130
139
|
{
|
@@ -142,5 +151,5 @@ export function createInAppWallet(args: {
|
|
142
151
|
}
|
143
152
|
emitter.emit("chainChanged", newChain);
|
144
153
|
},
|
145
|
-
}
|
154
|
+
};
|
146
155
|
}
|
@@ -12,7 +12,6 @@ import type {
|
|
12
12
|
WalletAutoConnectionOption,
|
13
13
|
WalletConnectionOption,
|
14
14
|
} from "../../../wallet-types.js";
|
15
|
-
import { UserWalletStatus } from "../authentication/types.js";
|
16
15
|
import type { InAppConnector } from "../interfaces/connector.js";
|
17
16
|
|
18
17
|
/**
|
@@ -142,7 +141,7 @@ async function convertToSmartAccount(options: {
|
|
142
141
|
async function getAuthenticatedUser(connector: InAppConnector) {
|
143
142
|
const user = await connector.getUser();
|
144
143
|
switch (user.status) {
|
145
|
-
case
|
144
|
+
case "Logged In, Wallet Initialized": {
|
146
145
|
return user;
|
147
146
|
}
|
148
147
|
}
|