@seams/wallet 0.24.0 → 0.27.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/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +1 -0
- package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
- package/dist/esm/SeamsWeb/walletIframe/client/evmFamilyCommands.js +1 -0
- package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
- package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +73 -39
- package/dist/esm/SeamsWeb/walletIframe/client/router.js +61 -38
- package/dist/esm/SeamsWeb/walletIframe/host/auth-menu/domain.js +1 -0
- package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
- package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -0
- package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +8 -1
- package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
- package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +7 -0
- package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
- package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
- package/dist/esm/core/ui/messages.js +12 -0
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +5 -7
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +21 -5
- package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +66 -0
- package/dist/esm/react/components/AccountMenuButton/AccountsSection.css +18 -11
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -11
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.css +17 -15
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +156 -106
- package/dist/esm/react/components/AccountMenuButton/MenuItem.css +37 -29
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.css +53 -21
- package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +124 -82
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +45 -27
- package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +115 -93
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +179 -92
- package/dist/esm/react/components/AccountMenuButton/hooks/useProfileState.js +62 -49
- package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +36 -12
- package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +10 -2
- package/dist/esm/react/components/AccountMenuButton/icons/Icon.css +10 -0
- package/dist/esm/react/components/AccountMenuButton/icons/LogOutIcon2.js +15 -16
- package/dist/esm/react/components/AccountMenuButton/icons/SpinnerIcon.js +12 -18
- package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.css +3 -3
- package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.js +11 -5
- package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +20 -6
- package/dist/esm/react/components/AccountMenuButton/index.js +18 -42
- package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
- package/dist/esm/react/components/FingerprintIcon.js +13 -19
- package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +13 -2
- package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
- package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
- package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +20 -5
- package/dist/esm/react/components/QRCodeIcon.js +37 -43
- package/dist/esm/react/components/QRCodeScanner.css +65 -60
- package/dist/esm/react/components/ShowQRCode.css +145 -40
- package/dist/esm/react/components/ShowQRCode.js +27 -37
- package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
- package/dist/esm/react/components/theme/Theme.css +67 -0
- package/dist/esm/react/components/theme/ThemeProvider.js +6 -6
- package/dist/esm/react/externalEvm.js +11 -4
- package/dist/esm/react/externalNear.js +15 -10
- package/dist/esm/react/externalWalletPicker.css +117 -0
- package/dist/esm/react/index.js +3 -2
- package/dist/esm/react/styles/styles.css +2148 -550
- package/dist/esm/react/styles.css +7 -1
- package/dist/esm/react/transactionReview/TransactionReviewHost.js +3 -0
- package/dist/esm/react/transactionReview/boundCalls.js +31 -26
- package/dist/esm/sdk/{ConfirmationDrawer-CTaGM1AE.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
- package/dist/esm/sdk/NonceCoordinator-3YhmDTS5.js +1 -0
- package/dist/{public/sdk/SeamsWordmark-CFpsGoLw.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
- package/dist/esm/sdk/accountLifecycle-6DHYWf0v.js +1 -0
- package/dist/esm/sdk/actions-DrtSTGus.js +1 -0
- package/dist/esm/sdk/activeWalletSession-BJ4B-nJo.js +1 -0
- package/dist/esm/sdk/adapters-d9yh1bdC.js +1 -0
- package/dist/esm/sdk/appearance-DL7c6bML.js +1 -0
- package/dist/esm/sdk/appearance-token-vars-BJydfWT_.js +1 -0
- package/dist/esm/sdk/canonicalPrimitives-Jd3i_Ngz.js +1 -0
- package/dist/esm/sdk/chains-B72I4PDH.js +1 -0
- package/dist/esm/sdk/challengeDelivery-Dj9HrjW9.js +1 -0
- package/dist/esm/sdk/clientSessionPersistenceState-BCkJAYSz.js +1 -0
- package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
- package/dist/esm/sdk/{commitQueue-Bs23Rs57.js → commitQueue-CYruPlkm.js} +1 -1
- package/dist/esm/sdk/configBuilder-CSwJrmcR.js +1 -0
- package/dist/esm/sdk/configuration-DBEc3bsj.js +1 -0
- package/dist/esm/sdk/confirm-ui-nU6ymgiv.js +2 -0
- package/dist/esm/sdk/confirmTypes-BvVtQs-M.js +1 -0
- package/dist/esm/sdk/device-linking-DiCNt3iA.js +1 -0
- package/dist/esm/sdk/deviceLinkApproval-CfEiotVt.js +2 -0
- package/dist/esm/sdk/digestEncoding-CqNXPZY9.js +1 -0
- package/dist/esm/sdk/{chains-gV2K9gA4.js → digests-BIaE0DMd.js} +1 -1
- package/dist/esm/sdk/{display-BXjW58UF.js → display-D0EPmU4w.js} +1 -1
- package/dist/esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js +1 -0
- package/dist/esm/sdk/{ecdsaChainTarget-DbLthshF.js → ecdsaChainTarget-Bm5X4k-V.js} +1 -1
- package/dist/esm/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js +1 -0
- package/dist/esm/sdk/ecdsaDerivationExport-DJKOzDbS.js +1 -0
- package/dist/esm/sdk/{ecdsaWalletRecords-BgcXXCZy.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
- package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js +1 -0
- package/dist/esm/sdk/{enrichDisplayModelWithAbi-CudPUW0T.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
- package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
- package/dist/esm/sdk/{evmCryptoWasm-DacbCVNM.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
- package/dist/esm/sdk/{export-viewer-host-DsWOvc0t.js → export-viewer-host-BtrKVXxu.js} +1 -1
- package/dist/esm/sdk/exportKeypairOperation-CGE9ZU1m.js +1 -0
- package/dist/esm/sdk/helpers-Dubwo5uK.js +1 -0
- package/dist/esm/sdk/host-DayrOrgm.js +1 -0
- package/dist/esm/sdk/icons-BlMXolHv.js +1 -0
- package/dist/esm/sdk/indexedDB-C4SDsyOG.js +1 -0
- package/dist/esm/sdk/intentDigest-HvRsBQ1z.js +1 -0
- package/dist/esm/sdk/keyMaterialEnvelope-Dm2ZEilb.js +1 -0
- package/dist/esm/sdk/{lanes-C7OvAK_L.js → lanes-BU-fGqY4.js} +1 -1
- package/dist/esm/sdk/localOnly-BATWJj78.js +1 -0
- package/dist/{public/sdk/mountExportPrivateKeySurface-CV1KrFWg.js → esm/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
- package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-CVXU1zzl.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
- package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +1 -0
- package/dist/esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +1 -0
- package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
- package/dist/esm/sdk/{nonceLaneKeys-BS4fek17.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
- package/dist/esm/sdk/{normalization-BN-2VWZf.js → normalization-Df9fZWJC.js} +1 -1
- package/dist/esm/sdk/operationFingerprint-Bas59T7L.js +1 -0
- package/dist/esm/sdk/participants-BXdREC5k.js +1 -0
- package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js → esm/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
- package/dist/esm/sdk/presignaturePool-BbvqRWYw.js +1 -0
- package/dist/{public/sdk/presignatures-B9GrGx0L.js → esm/sdk/presignatures-BCeq56DG.js} +1 -1
- package/dist/esm/sdk/recovery-entrypoint-DJbMDC_m.js +1 -0
- package/dist/esm/sdk/recoveryAuthorization-CQsjb8Tm.js +1 -0
- package/dist/esm/sdk/registration-CNLUYN-p.js +1 -0
- package/dist/esm/sdk/registration-HSwOHZOo.js +1 -0
- package/dist/esm/sdk/{registrationAccounts-BHikxS5q.js → registrationAccounts-4r74gX1l.js} +1 -1
- package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
- package/dist/esm/sdk/registrationSignerPlan-DK2b3N_p.js +1 -0
- package/dist/esm/sdk/requireStepUpAuth-COqCGb1i.js +1 -0
- package/dist/esm/sdk/resealedEnvelopeResult-B1p5UkYg.js +1 -0
- package/dist/esm/sdk/routerAbNormalSigning-D-UZmCBS.js +1 -0
- package/dist/esm/sdk/runtime-auth-BCoj7_-G.js +1 -0
- package/dist/esm/sdk/runtime-device-link-DAsq5tGT.js +1 -0
- package/dist/esm/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +1 -0
- package/dist/esm/sdk/runtime-email-otp-BxSKK9AG.js +1 -0
- package/dist/esm/sdk/runtime-export-BWnQXMzT.js +1 -0
- package/dist/esm/sdk/runtime-near-CuzPZrDS.js +1 -0
- package/dist/esm/sdk/runtime-preferences-B-nDWlm3.js +1 -0
- package/dist/esm/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
- package/dist/esm/sdk/runtime-recovery-codes-DeUjQsxZ.js +1 -0
- package/dist/esm/sdk/runtimeContext-5JcewRo3.js +6 -0
- package/dist/esm/sdk/secp256k1-CE7-q9Sn.js +1 -0
- package/dist/esm/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
- package/dist/esm/sdk/signEvmFamily-BY5jlZEG.js +1 -0
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js → signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
- package/dist/esm/sdk/{signEvmWithUiConfirm-BNkupz3z.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
- package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
- package/dist/esm/sdk/{signatureUses-DrqCoN12.js → signatureUses-kSrUHSSH.js} +1 -1
- package/dist/esm/sdk/signerSlot-D2RZnb27.js +1 -0
- package/dist/esm/sdk/{signingFlow-BVvteILM.js → signingFlow-BcetvUeS.js} +2 -2
- package/dist/esm/sdk/signingQueue-dMFOFOP5.js +1 -0
- package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
- package/dist/esm/sdk/thresholdEcdsa-CqR1fFA-.js +1 -0
- package/dist/esm/sdk/{trace-CGNqO1FV.js → trace--mRP2OQc.js} +1 -1
- package/dist/esm/sdk/{transaction-activity-DPq9RTh5.js → transaction-activity-DCzHGg3b.js} +1 -1
- package/dist/esm/sdk/transactionReview-CGIlI835.js +1 -0
- package/dist/esm/sdk/{transactionReviewAdmission--8tDis7M.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
- package/dist/{public/sdk/transactionState-BS1VLT7B.js → esm/sdk/transactionState-29T9xfvL.js} +1 -1
- package/dist/esm/sdk/tx-confirm-ui.js +173 -18
- package/dist/esm/sdk/{types-DdzuHlAQ.js → types-f7dyj5N6.js} +1 -1
- package/dist/esm/sdk/unlockedEd25519ExportRootCapability-yzxQjIFd.js +1 -0
- package/dist/esm/sdk/voiceid-host.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/esm/sdk/wallet-recovery-BZB2Vu3X.js +1 -0
- package/dist/esm/sdk/wallet-ui.css +1 -1
- package/dist/esm/sdk/walletAuthMethodRecord-DLBB5fez.js +1 -0
- package/dist/esm/sdk/walletAuthority-BTGAuOi8.js +1 -0
- package/dist/esm/sdk/walletCapabilityBindings-D5YYB7nN.js +1 -0
- package/dist/esm/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js +1 -0
- package/dist/esm/sdk/walletCustodyOperation-DimzAbCB.js +1 -0
- package/dist/esm/sdk/walletDbName-Ca0rCq5r.js +1 -0
- package/dist/esm/sdk/walletOwnershipGeneration-CgjCtPrV.js +1 -0
- package/dist/esm/sdk/walletRecoveryAdminProof-CvSYbyg5.js +1 -0
- package/dist/esm/sdk/walletRecoveryCommit-Cc2LAkCS.js +1 -0
- package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEvGKQSg.js +1 -0
- package/dist/esm/sdk/{walletSessionAuthorizationProjection-BJgnZaBc.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +1 -1
- package/dist/esm/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js +1 -0
- package/dist/esm/sdk/{walletSessionAuthorizationStore-zkxcMdSp.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
- package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
- package/dist/{public/sdk/webauthnP256-BvTL8nq4.js → esm/sdk/webauthnP256-BsQQPurm.js} +1 -1
- package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
- package/dist/esm/shared-ts/src/utils/errors.js +56 -3
- package/dist/esm/shared-ts/src/utils/index.js +1 -1
- package/dist/esm/voiceid-host.js +1 -1
- package/dist/public/headers.manifest.json +1 -1
- package/dist/public/sdk/{ConfirmationDrawer-CTaGM1AE.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
- package/dist/public/sdk/NonceCoordinator-3YhmDTS5.js +1 -0
- package/dist/{esm/sdk/SeamsWordmark-CFpsGoLw.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
- package/dist/public/sdk/accountLifecycle-6DHYWf0v.js +1 -0
- package/dist/public/sdk/actions-DrtSTGus.js +1 -0
- package/dist/public/sdk/activeWalletSession-BJ4B-nJo.js +1 -0
- package/dist/public/sdk/adapters-d9yh1bdC.js +1 -0
- package/dist/public/sdk/appearance-DL7c6bML.js +1 -0
- package/dist/public/sdk/appearance-token-vars-BJydfWT_.js +1 -0
- package/dist/public/sdk/canonicalPrimitives-Jd3i_Ngz.js +1 -0
- package/dist/public/sdk/chains-B72I4PDH.js +1 -0
- package/dist/public/sdk/challengeDelivery-Dj9HrjW9.js +1 -0
- package/dist/public/sdk/clientSessionPersistenceState-BCkJAYSz.js +1 -0
- package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
- package/dist/public/sdk/{commitQueue-Bs23Rs57.js → commitQueue-CYruPlkm.js} +1 -1
- package/dist/public/sdk/configBuilder-CSwJrmcR.js +1 -0
- package/dist/public/sdk/configuration-DBEc3bsj.js +1 -0
- package/dist/public/sdk/confirm-ui-nU6ymgiv.js +2 -0
- package/dist/public/sdk/confirmTypes-BvVtQs-M.js +1 -0
- package/dist/public/sdk/device-linking-DiCNt3iA.js +1 -0
- package/dist/public/sdk/deviceLinkApproval-CfEiotVt.js +2 -0
- package/dist/public/sdk/digestEncoding-CqNXPZY9.js +1 -0
- package/dist/public/sdk/{chains-gV2K9gA4.js → digests-BIaE0DMd.js} +1 -1
- package/dist/public/sdk/{display-BXjW58UF.js → display-D0EPmU4w.js} +1 -1
- package/dist/public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js +1 -0
- package/dist/public/sdk/{ecdsaChainTarget-DbLthshF.js → ecdsaChainTarget-Bm5X4k-V.js} +1 -1
- package/dist/public/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js +1 -0
- package/dist/public/sdk/ecdsaDerivationExport-DJKOzDbS.js +1 -0
- package/dist/public/sdk/{ecdsaWalletRecords-BgcXXCZy.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
- package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js +1 -0
- package/dist/public/sdk/{enrichDisplayModelWithAbi-CudPUW0T.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
- package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
- package/dist/public/sdk/{evmCryptoWasm-DacbCVNM.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
- package/dist/public/sdk/{export-viewer-host-DsWOvc0t.js → export-viewer-host-BtrKVXxu.js} +1 -1
- package/dist/public/sdk/exportKeypairOperation-CGE9ZU1m.js +1 -0
- package/dist/public/sdk/helpers-Dubwo5uK.js +1 -0
- package/dist/public/sdk/host-DayrOrgm.js +1 -0
- package/dist/public/sdk/icons-BlMXolHv.js +1 -0
- package/dist/public/sdk/indexedDB-C4SDsyOG.js +1 -0
- package/dist/public/sdk/intentDigest-HvRsBQ1z.js +1 -0
- package/dist/public/sdk/keyMaterialEnvelope-Dm2ZEilb.js +1 -0
- package/dist/public/sdk/{lanes-C7OvAK_L.js → lanes-BU-fGqY4.js} +1 -1
- package/dist/public/sdk/localOnly-BATWJj78.js +1 -0
- package/dist/{esm/sdk/mountExportPrivateKeySurface-CV1KrFWg.js → public/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
- package/dist/public/sdk/{mountRecoveryCodeBackupSurface-CVXU1zzl.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
- package/dist/public/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +1 -0
- package/dist/public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +1 -0
- package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
- package/dist/public/sdk/{nonceLaneKeys-BS4fek17.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
- package/dist/public/sdk/{normalization-BN-2VWZf.js → normalization-Df9fZWJC.js} +1 -1
- package/dist/public/sdk/operationFingerprint-Bas59T7L.js +1 -0
- package/dist/public/sdk/participants-BXdREC5k.js +1 -0
- package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js → public/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
- package/dist/public/sdk/presignaturePool-BbvqRWYw.js +1 -0
- package/dist/{esm/sdk/presignatures-B9GrGx0L.js → public/sdk/presignatures-BCeq56DG.js} +1 -1
- package/dist/public/sdk/recovery-entrypoint-DJbMDC_m.js +1 -0
- package/dist/public/sdk/recoveryAuthorization-CQsjb8Tm.js +1 -0
- package/dist/public/sdk/registration-CNLUYN-p.js +1 -0
- package/dist/public/sdk/registration-HSwOHZOo.js +1 -0
- package/dist/public/sdk/{registrationAccounts-BHikxS5q.js → registrationAccounts-4r74gX1l.js} +1 -1
- package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
- package/dist/public/sdk/registrationSignerPlan-DK2b3N_p.js +1 -0
- package/dist/public/sdk/requireStepUpAuth-COqCGb1i.js +1 -0
- package/dist/public/sdk/resealedEnvelopeResult-B1p5UkYg.js +1 -0
- package/dist/public/sdk/routerAbNormalSigning-D-UZmCBS.js +1 -0
- package/dist/public/sdk/runtime-auth-BCoj7_-G.js +1 -0
- package/dist/public/sdk/runtime-device-link-DAsq5tGT.js +1 -0
- package/dist/public/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +1 -0
- package/dist/public/sdk/runtime-email-otp-BxSKK9AG.js +1 -0
- package/dist/public/sdk/runtime-export-BWnQXMzT.js +1 -0
- package/dist/public/sdk/runtime-near-CuzPZrDS.js +1 -0
- package/dist/public/sdk/runtime-preferences-B-nDWlm3.js +1 -0
- package/dist/public/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
- package/dist/public/sdk/runtime-recovery-codes-DeUjQsxZ.js +1 -0
- package/dist/public/sdk/runtimeContext-5JcewRo3.js +6 -0
- package/dist/public/sdk/secp256k1-CE7-q9Sn.js +1 -0
- package/dist/public/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
- package/dist/public/sdk/signEvmFamily-BY5jlZEG.js +1 -0
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js → signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
- package/dist/public/sdk/{signEvmWithUiConfirm-BNkupz3z.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
- package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
- package/dist/public/sdk/{signatureUses-DrqCoN12.js → signatureUses-kSrUHSSH.js} +1 -1
- package/dist/public/sdk/signerSlot-D2RZnb27.js +1 -0
- package/dist/public/sdk/{signingFlow-BVvteILM.js → signingFlow-BcetvUeS.js} +2 -2
- package/dist/public/sdk/signingQueue-dMFOFOP5.js +1 -0
- package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
- package/dist/public/sdk/thresholdEcdsa-CqR1fFA-.js +1 -0
- package/dist/public/sdk/{trace-CGNqO1FV.js → trace--mRP2OQc.js} +1 -1
- package/dist/public/sdk/{transaction-activity-DPq9RTh5.js → transaction-activity-DCzHGg3b.js} +1 -1
- package/dist/public/sdk/transactionReview-CGIlI835.js +1 -0
- package/dist/public/sdk/{transactionReviewAdmission--8tDis7M.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
- package/dist/{esm/sdk/transactionState-BS1VLT7B.js → public/sdk/transactionState-29T9xfvL.js} +1 -1
- package/dist/public/sdk/tx-confirm-ui.js +173 -18
- package/dist/public/sdk/{types-DdzuHlAQ.js → types-f7dyj5N6.js} +1 -1
- package/dist/public/sdk/unlockedEd25519ExportRootCapability-yzxQjIFd.js +1 -0
- package/dist/public/sdk/voiceid-host.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/public/sdk/wallet-recovery-BZB2Vu3X.js +1 -0
- package/dist/public/sdk/wallet-ui.css +1 -1
- package/dist/public/sdk/walletAuthMethodRecord-DLBB5fez.js +1 -0
- package/dist/public/sdk/walletAuthority-BTGAuOi8.js +1 -0
- package/dist/public/sdk/walletCapabilityBindings-D5YYB7nN.js +1 -0
- package/dist/public/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js +1 -0
- package/dist/public/sdk/walletCustodyOperation-DimzAbCB.js +1 -0
- package/dist/public/sdk/walletDbName-Ca0rCq5r.js +1 -0
- package/dist/public/sdk/walletOwnershipGeneration-CgjCtPrV.js +1 -0
- package/dist/public/sdk/walletRecoveryAdminProof-CvSYbyg5.js +1 -0
- package/dist/public/sdk/walletRecoveryCommit-Cc2LAkCS.js +1 -0
- package/dist/public/sdk/walletRegistrationSetupPrewarm-CEvGKQSg.js +1 -0
- package/dist/public/sdk/{walletSessionAuthorizationProjection-BJgnZaBc.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +1 -1
- package/dist/public/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js +1 -0
- package/dist/public/sdk/{walletSessionAuthorizationStore-zkxcMdSp.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
- package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
- package/dist/{esm/sdk/webauthnP256-BvTL8nq4.js → public/sdk/webauthnP256-BsQQPurm.js} +1 -1
- package/dist/public/wallet-assets.manifest.json +476 -260
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/shared-ts/src/utils/errors.d.ts +1 -0
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.d.ts +24 -0
- package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -0
- package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +3 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +1 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createDeviceDomain.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/deviceLinkApproval.d.ts +27 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +4 -1
- package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
- package/dist/types/wallet/src/core/authMethods/plugins.d.ts +4 -0
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/recoveredEd25519Authority.d.ts +8 -0
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +1 -0
- package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
- package/dist/types/wallet/src/core/rpcClients/relayer/walletSessionAuthorizationStatus.d.ts +2 -0
- package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
- package/dist/types/wallet/src/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.d.ts +1 -0
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
- package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
- package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +2 -0
- package/dist/types/wallet/src/core/types/seams.d.ts +15 -3
- package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
- package/dist/types/wallet/src/index.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +11 -2
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +9 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +13 -5
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +19 -3
- package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
- package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
- package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
- package/dist/types/wallet/src/react/components/ShowQRCode.d.ts +1 -1
- package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
- package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
- package/dist/types/wallet/src/react/externalNear.d.ts +3 -23
- package/dist/types/wallet/src/react/index.d.ts +3 -1
- package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +7 -0
- package/dist/types/wallet/src/voiceid-host.d.ts +1 -1
- package/package.json +1 -1
- package/dist/esm/react/externalNear.css +0 -90
- package/dist/esm/sdk/NonceCoordinator-Bti1HQPo.js +0 -1
- package/dist/esm/sdk/accountLifecycle-B98g9zN9.js +0 -1
- package/dist/esm/sdk/actions-GYsSR2Q2.js +0 -1
- package/dist/esm/sdk/activeWalletSession-H9JBdHyQ.js +0 -1
- package/dist/esm/sdk/adapters-D5MZ5NG5.js +0 -2
- package/dist/esm/sdk/appearance-DVFno9Tv.js +0 -1
- package/dist/esm/sdk/appearance-token-vars-CgYTfCKg.js +0 -1
- package/dist/esm/sdk/canonicalPrimitives-B6YMrI3W.js +0 -1
- package/dist/esm/sdk/challengeDelivery-FW9gYyr0.js +0 -1
- package/dist/esm/sdk/clientSessionPersistenceState-BPYK9PYV.js +0 -1
- package/dist/esm/sdk/configBuilder-DrxXNUpV.js +0 -1
- package/dist/esm/sdk/configuration-CAqANpTI.js +0 -1
- package/dist/esm/sdk/ecdsaCapabilityManifest--FjbES8k.js +0 -1
- package/dist/esm/sdk/ecdsaDerivationClientWasm-7Rp4TmYE.js +0 -1
- package/dist/esm/sdk/ecdsaDerivationExport-dInN7N6e.js +0 -1
- package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +0 -1
- package/dist/esm/sdk/errors-ADOZT8oV.js +0 -1
- package/dist/esm/sdk/exportKeypairOperation-BazJvSov.js +0 -1
- package/dist/esm/sdk/helpers-CXqXyyCU.js +0 -1
- package/dist/esm/sdk/host-C0Is56lU.js +0 -1
- package/dist/esm/sdk/icons-DyndJzSh.js +0 -1
- package/dist/esm/sdk/indexedDB-C1odKEC6.js +0 -1
- package/dist/esm/sdk/intentDigest-BMXki7yB.js +0 -1
- package/dist/esm/sdk/keyMaterialEnvelope-B-Q5KTJC.js +0 -1
- package/dist/esm/sdk/localOnly-BB3Rx3J6.js +0 -1
- package/dist/esm/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +0 -1
- package/dist/esm/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +0 -1
- package/dist/esm/sdk/operationFingerprint-Bn0lUYlm.js +0 -1
- package/dist/esm/sdk/presignaturePool-CultzkOG.js +0 -1
- package/dist/esm/sdk/recovery-entrypoint-QBvJBngm.js +0 -1
- package/dist/esm/sdk/recoveryAuthorization-DB-zxeHq.js +0 -1
- package/dist/esm/sdk/registration-CM5a7WYO.js +0 -1
- package/dist/esm/sdk/registration-Hv0xi7-L.js +0 -1
- package/dist/esm/sdk/registrationIntent-DTs2SR9E.js +0 -1
- package/dist/esm/sdk/registrationSignerPlan-CgbFVsAp.js +0 -1
- package/dist/esm/sdk/requireStepUpAuth-B7tC4MrA.js +0 -1
- package/dist/esm/sdk/resealedEnvelopeResult--iCVt_Bh.js +0 -1
- package/dist/esm/sdk/routerAbNormalSigning-Div3lZWV.js +0 -1
- package/dist/esm/sdk/runtime-auth-CVw1KoVD.js +0 -1
- package/dist/esm/sdk/runtime-device-link-Dp0YMZTQ.js +0 -1
- package/dist/esm/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +0 -1
- package/dist/esm/sdk/runtime-email-otp-gsr_FsQn.js +0 -1
- package/dist/esm/sdk/runtime-export-upMPrZ4V.js +0 -1
- package/dist/esm/sdk/runtime-near-B64Hn3nc.js +0 -1
- package/dist/esm/sdk/runtime-preferences-CULdHkbg.js +0 -1
- package/dist/esm/sdk/runtime-recovery-D2saBaJy.js +0 -1
- package/dist/esm/sdk/runtime-recovery-codes-Bvc0IXMJ.js +0 -1
- package/dist/esm/sdk/runtimeContext-CNFJjcns.js +0 -6
- package/dist/esm/sdk/secp256k1-BGVlx50C.js +0 -1
- package/dist/esm/sdk/sessionObservationRevision-84ZzJ-fC.js +0 -1
- package/dist/esm/sdk/signEvmFamily-PjwUc5MT.js +0 -1
- package/dist/esm/sdk/signNear-r8VCOoTh.js +0 -1
- package/dist/esm/sdk/signerSlot-D4ZOuK7e.js +0 -1
- package/dist/esm/sdk/signingQueue-BJzOrwDq.js +0 -1
- package/dist/esm/sdk/surface-measurement-reporter-NUm_54LH.js +0 -1
- package/dist/esm/sdk/thresholdEcdsa-tnY83qyG.js +0 -1
- package/dist/esm/sdk/transactionReview-DSGnpreN.js +0 -1
- package/dist/esm/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +0 -1
- package/dist/esm/sdk/wallet-recovery-BjIQdOha.js +0 -1
- package/dist/esm/sdk/walletAuthMethodRecord-yIqCeE-o.js +0 -1
- package/dist/esm/sdk/walletCapabilityBindings-CUPk3mVH.js +0 -1
- package/dist/esm/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +0 -1
- package/dist/esm/sdk/walletCustodyOperation-DzPcxEBS.js +0 -1
- package/dist/esm/sdk/walletDbName-DDJXrgA5.js +0 -1
- package/dist/esm/sdk/walletOwnershipGeneration-DI9ogcXF.js +0 -1
- package/dist/esm/sdk/walletRecoveryAdminProof-BJxmg3f7.js +0 -1
- package/dist/esm/sdk/walletRecoveryCommit-B7WsdR7y.js +0 -1
- package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +0 -1
- package/dist/esm/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +0 -1
- package/dist/esm/sdk/warmSessionHydration-DqZyfi1h.js +0 -1
- package/dist/public/sdk/NonceCoordinator-Bti1HQPo.js +0 -1
- package/dist/public/sdk/accountLifecycle-B98g9zN9.js +0 -1
- package/dist/public/sdk/actions-GYsSR2Q2.js +0 -1
- package/dist/public/sdk/activeWalletSession-H9JBdHyQ.js +0 -1
- package/dist/public/sdk/adapters-D5MZ5NG5.js +0 -2
- package/dist/public/sdk/appearance-DVFno9Tv.js +0 -1
- package/dist/public/sdk/appearance-token-vars-CgYTfCKg.js +0 -1
- package/dist/public/sdk/canonicalPrimitives-B6YMrI3W.js +0 -1
- package/dist/public/sdk/challengeDelivery-FW9gYyr0.js +0 -1
- package/dist/public/sdk/clientSessionPersistenceState-BPYK9PYV.js +0 -1
- package/dist/public/sdk/configBuilder-DrxXNUpV.js +0 -1
- package/dist/public/sdk/configuration-CAqANpTI.js +0 -1
- package/dist/public/sdk/ecdsaCapabilityManifest--FjbES8k.js +0 -1
- package/dist/public/sdk/ecdsaDerivationClientWasm-7Rp4TmYE.js +0 -1
- package/dist/public/sdk/ecdsaDerivationExport-dInN7N6e.js +0 -1
- package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +0 -1
- package/dist/public/sdk/errors-ADOZT8oV.js +0 -1
- package/dist/public/sdk/exportKeypairOperation-BazJvSov.js +0 -1
- package/dist/public/sdk/helpers-CXqXyyCU.js +0 -1
- package/dist/public/sdk/host-C0Is56lU.js +0 -1
- package/dist/public/sdk/icons-DyndJzSh.js +0 -1
- package/dist/public/sdk/indexedDB-C1odKEC6.js +0 -1
- package/dist/public/sdk/intentDigest-BMXki7yB.js +0 -1
- package/dist/public/sdk/keyMaterialEnvelope-B-Q5KTJC.js +0 -1
- package/dist/public/sdk/localOnly-BB3Rx3J6.js +0 -1
- package/dist/public/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +0 -1
- package/dist/public/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +0 -1
- package/dist/public/sdk/operationFingerprint-Bn0lUYlm.js +0 -1
- package/dist/public/sdk/presignaturePool-CultzkOG.js +0 -1
- package/dist/public/sdk/recovery-entrypoint-QBvJBngm.js +0 -1
- package/dist/public/sdk/recoveryAuthorization-DB-zxeHq.js +0 -1
- package/dist/public/sdk/registration-CM5a7WYO.js +0 -1
- package/dist/public/sdk/registration-Hv0xi7-L.js +0 -1
- package/dist/public/sdk/registrationIntent-DTs2SR9E.js +0 -1
- package/dist/public/sdk/registrationSignerPlan-CgbFVsAp.js +0 -1
- package/dist/public/sdk/requireStepUpAuth-B7tC4MrA.js +0 -1
- package/dist/public/sdk/resealedEnvelopeResult--iCVt_Bh.js +0 -1
- package/dist/public/sdk/routerAbNormalSigning-Div3lZWV.js +0 -1
- package/dist/public/sdk/runtime-auth-CVw1KoVD.js +0 -1
- package/dist/public/sdk/runtime-device-link-Dp0YMZTQ.js +0 -1
- package/dist/public/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +0 -1
- package/dist/public/sdk/runtime-email-otp-gsr_FsQn.js +0 -1
- package/dist/public/sdk/runtime-export-upMPrZ4V.js +0 -1
- package/dist/public/sdk/runtime-near-B64Hn3nc.js +0 -1
- package/dist/public/sdk/runtime-preferences-CULdHkbg.js +0 -1
- package/dist/public/sdk/runtime-recovery-D2saBaJy.js +0 -1
- package/dist/public/sdk/runtime-recovery-codes-Bvc0IXMJ.js +0 -1
- package/dist/public/sdk/runtimeContext-CNFJjcns.js +0 -6
- package/dist/public/sdk/secp256k1-BGVlx50C.js +0 -1
- package/dist/public/sdk/sessionObservationRevision-84ZzJ-fC.js +0 -1
- package/dist/public/sdk/signEvmFamily-PjwUc5MT.js +0 -1
- package/dist/public/sdk/signNear-r8VCOoTh.js +0 -1
- package/dist/public/sdk/signerSlot-D4ZOuK7e.js +0 -1
- package/dist/public/sdk/signingQueue-BJzOrwDq.js +0 -1
- package/dist/public/sdk/surface-measurement-reporter-NUm_54LH.js +0 -1
- package/dist/public/sdk/thresholdEcdsa-tnY83qyG.js +0 -1
- package/dist/public/sdk/transactionReview-DSGnpreN.js +0 -1
- package/dist/public/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +0 -1
- package/dist/public/sdk/wallet-recovery-BjIQdOha.js +0 -1
- package/dist/public/sdk/walletAuthMethodRecord-yIqCeE-o.js +0 -1
- package/dist/public/sdk/walletCapabilityBindings-CUPk3mVH.js +0 -1
- package/dist/public/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +0 -1
- package/dist/public/sdk/walletCustodyOperation-DzPcxEBS.js +0 -1
- package/dist/public/sdk/walletDbName-DDJXrgA5.js +0 -1
- package/dist/public/sdk/walletOwnershipGeneration-DI9ogcXF.js +0 -1
- package/dist/public/sdk/walletRecoveryAdminProof-BJxmg3f7.js +0 -1
- package/dist/public/sdk/walletRecoveryCommit-B7WsdR7y.js +0 -1
- package/dist/public/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +0 -1
- package/dist/public/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +0 -1
- package/dist/public/sdk/warmSessionHydration-DqZyfi1h.js +0 -1
- /package/dist/esm/sdk/{accountIds-D5NI31F2.js → accountIds-CW2BP-d9.js} +0 -0
- /package/dist/esm/sdk/{authenticatorOptions-EF_Rps52.js → authenticatorOptions-WCDKYRux.js} +0 -0
- /package/dist/esm/sdk/{authorizationAdmission-DbhNiY3X.js → authorizationAdmission-28jo_IVJ.js} +0 -0
- /package/dist/esm/sdk/{browser-B2RI00tM.js → browser-CKS7Tq2r.js} +0 -0
- /package/dist/esm/sdk/{bytes-DVe42j_r.js → bytes-DXo6uALR.js} +0 -0
- /package/dist/esm/sdk/{canonicalSignerErrorCode-AwNMAn8S.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
- /package/dist/esm/sdk/{capabilityKinds-BzrNeEyO.js → capabilityKinds-DVlGMspk.js} +0 -0
- /package/dist/esm/sdk/{configHelpers-BNqoU2cv.js → configHelpers-CXDY3bKC.js} +0 -0
- /package/dist/esm/sdk/{csp-stylesheet-DeuiM0Mo.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
- /package/dist/esm/sdk/{events-1dzC4Ocx.js → events-D6l0_ugy.js} +0 -0
- /package/dist/esm/sdk/{executeWorkerOperation-B-9JuL55.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
- /package/dist/esm/sdk/{jsonRpc-CHutSlC9.js → jsonRpc-BVDv1wfm.js} +0 -0
- /package/dist/esm/sdk/{keccak-C9kCkZem.js → keccak-mS0Mejjx.js} +0 -0
- /package/dist/esm/sdk/{normalization-DtruiNPw.js → normalization-B3i1-rPQ.js} +0 -0
- /package/dist/esm/sdk/{prfCache-8Wm3etlV.js → prfCache-DEHaUPSW.js} +0 -0
- /package/dist/esm/sdk/{profileAccountProjection-D01e10UY.js → profileAccountProjection-C5sNt-s2.js} +0 -0
- /package/dist/esm/sdk/{promptText-Bz3YRl9D.js → promptText-bcKcsSka.js} +0 -0
- /package/dist/esm/sdk/{registrationAuthMethodInput-BvbWl0y_.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
- /package/dist/esm/sdk/{sdkSentEvents-DUht3AOD.js → sdkSentEvents-DjOlKtdW.js} +0 -0
- /package/dist/esm/sdk/{shared-DcHtE-D-.js → shared-CkHhXgFB.js} +0 -0
- /package/dist/esm/sdk/{signer-worker-DlK58rEA.js → signer-worker-BNodGJKY.js} +0 -0
- /package/dist/esm/sdk/{signerDomain-D-EUTlLK.js → signerDomain-BAsLT3XN.js} +0 -0
- /package/dist/esm/sdk/{signingSessionSeal-DqbjG8c8.js → signingSessionSeal-BFOBKj-J.js} +0 -0
- /package/dist/esm/sdk/{types-fJKfUgTi.js → types-C4OErbBf.js} +0 -0
- /package/dist/esm/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-CpgyEnKg.js} +0 -0
- /package/dist/esm/sdk/{walletSessionFailure-CLUIF3Eh.js → walletSessionFailure-CxsVtroW.js} +0 -0
- /package/dist/esm/sdk/{webauthnPromptCoordinator-CU9ag7vz.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
- /package/dist/public/sdk/{accountIds-D5NI31F2.js → accountIds-CW2BP-d9.js} +0 -0
- /package/dist/public/sdk/{authenticatorOptions-EF_Rps52.js → authenticatorOptions-WCDKYRux.js} +0 -0
- /package/dist/public/sdk/{authorizationAdmission-DbhNiY3X.js → authorizationAdmission-28jo_IVJ.js} +0 -0
- /package/dist/public/sdk/{browser-B2RI00tM.js → browser-CKS7Tq2r.js} +0 -0
- /package/dist/public/sdk/{bytes-DVe42j_r.js → bytes-DXo6uALR.js} +0 -0
- /package/dist/public/sdk/{canonicalSignerErrorCode-AwNMAn8S.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
- /package/dist/public/sdk/{capabilityKinds-BzrNeEyO.js → capabilityKinds-DVlGMspk.js} +0 -0
- /package/dist/public/sdk/{configHelpers-BNqoU2cv.js → configHelpers-CXDY3bKC.js} +0 -0
- /package/dist/public/sdk/{csp-stylesheet-DeuiM0Mo.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
- /package/dist/public/sdk/{events-1dzC4Ocx.js → events-D6l0_ugy.js} +0 -0
- /package/dist/public/sdk/{executeWorkerOperation-B-9JuL55.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
- /package/dist/public/sdk/{jsonRpc-CHutSlC9.js → jsonRpc-BVDv1wfm.js} +0 -0
- /package/dist/public/sdk/{keccak-C9kCkZem.js → keccak-mS0Mejjx.js} +0 -0
- /package/dist/public/sdk/{normalization-DtruiNPw.js → normalization-B3i1-rPQ.js} +0 -0
- /package/dist/public/sdk/{prfCache-8Wm3etlV.js → prfCache-DEHaUPSW.js} +0 -0
- /package/dist/public/sdk/{profileAccountProjection-D01e10UY.js → profileAccountProjection-C5sNt-s2.js} +0 -0
- /package/dist/public/sdk/{promptText-Bz3YRl9D.js → promptText-bcKcsSka.js} +0 -0
- /package/dist/public/sdk/{registrationAuthMethodInput-BvbWl0y_.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
- /package/dist/public/sdk/{sdkSentEvents-DUht3AOD.js → sdkSentEvents-DjOlKtdW.js} +0 -0
- /package/dist/public/sdk/{shared-DcHtE-D-.js → shared-CkHhXgFB.js} +0 -0
- /package/dist/public/sdk/{signer-worker-DlK58rEA.js → signer-worker-BNodGJKY.js} +0 -0
- /package/dist/public/sdk/{signerDomain-D-EUTlLK.js → signerDomain-BAsLT3XN.js} +0 -0
- /package/dist/public/sdk/{signingSessionSeal-DqbjG8c8.js → signingSessionSeal-BFOBKj-J.js} +0 -0
- /package/dist/public/sdk/{types-fJKfUgTi.js → types-C4OErbBf.js} +0 -0
- /package/dist/public/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-CpgyEnKg.js} +0 -0
- /package/dist/public/sdk/{walletSessionFailure-CLUIF3Eh.js → walletSessionFailure-CxsVtroW.js} +0 -0
- /package/dist/public/sdk/{webauthnPromptCoordinator-CU9ag7vz.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,N as t,O as n,d as r,g as i,i as a,j as o,k as s,u as c}from"./domainIds-t1lp25yU.js";import{A as l,k as u,l as d}from"./chains-gV2K9gA4.js";import{B as ee,D as f,J as p,M as m,O as h,P as g}from"./activeWalletSession-H9JBdHyQ.js";import{i as _,r as te}from"./base64-BmKR3UqU.js";import{l as ne}from"./capabilityKinds-BzrNeEyO.js";import{r as re}from"./canonicalPrimitives-B6YMrI3W.js";import{c as ie,s as ae}from"./accountIds-D5NI31F2.js";import{F as oe,I as se,L as v,N as y,P as b,R as ce,an as le,dn as x,ln as S,pn as ue,pt as de,z as fe}from"./emailOtpEcdsaDerivationIdentity-CIh9IPai.js";import{i as pe}from"./signerSlot-D4ZOuK7e.js";const me=[`kind`,`keyFamilies`,`signers`],he=[`kind`,`keyFamily`,`walletId`,`walletKeyId`,`registeredPublicKeyB64u`],ge=[`kind`,`keyFamily`,`walletId`,`walletKeyId`,`thresholdPublicKey33B64u`,`evmAddress`];function _e(e){if(e.length===0)throw Error(`exact administered signer manifest must contain at least one active family`);let t,n,r,i=new Set;for(let a of e){if(t!==void 0&&t!==a.walletId)throw Error(`exact administered signer manifest must use one wallet identity`);if(t=a.walletId,i.has(a.walletKeyId))throw Error(`exact administered signer manifest repeats wallet key ${a.walletKeyId}`);switch(i.add(a.walletKeyId),a.keyFamily){case`ed25519`:if(n!==void 0)throw Error(`exact administered signer manifest repeats the ed25519 family`);if(a.kind!==`exact_administered_ed25519_signer_v1`)throw Error(`exact administered signer manifest has an invalid Ed25519 signer`);n=a;break;case`ecdsa_secp256k1`:if(r!==void 0)throw Error(`exact administered signer manifest repeats the ecdsa family`);if(a.kind!==`exact_administered_ecdsa_signer_v1`)throw Error(`exact administered signer manifest has an invalid ECDSA signer`);r=a;break}}if(n!==void 0&&r!==void 0)return{kind:`exact_administered_signer_manifest_v1`,keyFamilies:[`ed25519`,`ecdsa_secp256k1`],signers:[n,r]};if(n!==void 0)return{kind:`exact_administered_signer_manifest_v1`,keyFamilies:[`ed25519`],signers:[n]};if(r!==void 0)return{kind:`exact_administered_signer_manifest_v1`,keyFamilies:[`ecdsa_secp256k1`],signers:[r]};throw Error(`exact administered signer manifest must contain a supported family`)}function ve(e){let t=Ce(e,me,`ExactAdministeredSignerManifestV1`);if(t.kind!==`exact_administered_signer_manifest_v1`)throw Error(`ExactAdministeredSignerManifestV1.kind is invalid`);let n=be(t.keyFamilies);if(!Array.isArray(t.signers))throw Error(`ExactAdministeredSignerManifestV1.signers must be an array`);let r=[];for(let e=0;e<t.signers.length;e+=1)r.push(ye(t.signers[e],`signers[${e}]`));let i=_e(r);if(!xe(n,i.keyFamilies))throw Error(`ExactAdministeredSignerManifestV1.keyFamilies do not match signers`);return i}function ye(t,n){let r=u(t,n);switch(r.keyFamily){case`ed25519`:if(p(r,he,n),r.kind!==`exact_administered_ed25519_signer_v1`)throw Error(`${n}.kind is invalid for Ed25519`);return{kind:`exact_administered_ed25519_signer_v1`,keyFamily:`ed25519`,walletId:g(s(r.walletId),`${n}.walletId`),walletKeyId:g(e(r.walletKeyId),`${n}.walletKeyId`),registeredPublicKeyB64u:f(r.registeredPublicKeyB64u,`${n}.registeredPublicKeyB64u`)};case`ecdsa_secp256k1`:if(p(r,ge,n),r.kind!==`exact_administered_ecdsa_signer_v1`)throw Error(`${n}.kind is invalid for ECDSA`);return{kind:`exact_administered_ecdsa_signer_v1`,keyFamily:`ecdsa_secp256k1`,walletId:g(s(r.walletId),`${n}.walletId`),walletKeyId:g(e(r.walletKeyId),`${n}.walletKeyId`),thresholdPublicKey33B64u:m(r.thresholdPublicKey33B64u,`${n}.thresholdPublicKey33B64u`),evmAddress:Se(r.evmAddress,`${n}.evmAddress`)};default:throw Error(`${n}.keyFamily is unsupported`)}}function be(e){if(!Array.isArray(e)||e.length===0||e.length>2)throw Error(`ExactAdministeredSignerManifestV1.keyFamilies must be non-empty`);if(e.length===1&&e[0]===`ed25519`)return[`ed25519`];if(e.length===1&&e[0]===`ecdsa_secp256k1`)return[`ecdsa_secp256k1`];if(e.length===2&&e[0]===`ed25519`&&e[1]===`ecdsa_secp256k1`)return[`ed25519`,`ecdsa_secp256k1`];throw Error(`ExactAdministeredSignerManifestV1.keyFamilies must be canonical and duplicate-free`)}function xe(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Se(e,t){if(typeof e!=`string`||!/^0x[0-9a-fA-F]{40}$/.test(e))throw Error(`${t} must be a 20-byte hexadecimal EVM address`);return e}function Ce(e,t,n){let r=u(e,n);p(r,t,n);for(let e of t)if(!(e in r))throw Error(`${n}.${e} is required`);return r}const C=new TextEncoder;function w(e,t){if(typeof e!=`string`||e.length===0)throw Error(`${t} must be a non-empty visible ASCII string`);for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);if(r<33||r>126)throw Error(`${t} must contain visible ASCII bytes`)}return e}function we(e,t){if(typeof e!=`number`||!Number.isInteger(e)||e<0||e>255)throw Error(`${t} must be a byte`);return e}function Te(e,t,n,r){if(!Array.isArray(e))throw Error(`${t} must be a byte array`);if(e.length<n||e.length>r)throw Error(`${t} has an invalid length`);let i=[];for(let n=0;n<e.length;n+=1)i.push(we(e[n],`${t}[${n}]`));return i}function T(e,t,n){let r=Te(e,t,32,32);if(n&&Ee(r))throw Error(`${t} must be nonzero`);return r}function Ee(e){for(let t of e)if(t!==0)return!1;return!0}function E(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function De(e){let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!1),t}function Oe(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function ke(e){return Oe([De(e.length),e])}function Ae(e,t){return Oe([ke(C.encode(e)),ke(t)])}async function je(e){let t=await globalThis.crypto.subtle.digest(`SHA-256`,e);return new Uint8Array(t)}async function Me(e){let t=Oe([ke(C.encode(`seams/router-ab/ed25519-yao/application-binding/v1`)),Ae(`walletId`,C.encode(e.wallet_id)),Ae(`nearEd25519SigningKeyId`,C.encode(e.near_ed25519_signing_key_id)),Ae(`signingRootId`,C.encode(e.signing_root_id)),Ae(`keyCreationSignerSlot`,De(e.key_creation_signer_slot))]);return Array.from(await je(t))}const Ne=`/router-ab/ed25519/yao/registration/admit`,Pe=`/router-ab/ed25519/yao/registration/execute`,Fe=`/router-ab/ed25519/yao/recovery/admit`,Ie=`/router-ab/ed25519/yao/recovery/execute`,Le=`/router-ab/ed25519/yao/recovery/activate`,Re=`x-seams-wallet-recovery-challenge-id`,ze=`/router-ab/ed25519/yao/recovery/bootstrap`,Be=`router_ab_ed25519_yao_email_otp_recovery_v1`,Ve=`/router-ab/ed25519/yao/export/admit`,He=`/router-ab/ed25519/yao/export/execute`,Ue=64*1024;function We(e,t){return e.operation===t.operation&&D(e.session_id,t.session_id)&&D(e.stable_key_context_binding,t.stable_key_context_binding)&&ue(e.material_activation,t.material_activation)&&e.lifecycle.lifecycle_id===t.lifecycle.lifecycle_id&&e.lifecycle.work_kind===t.lifecycle.work_kind&&e.lifecycle.primitive_request_kind===t.lifecycle.primitive_request_kind&&e.lifecycle.root_share_epoch===t.lifecycle.root_share_epoch&&e.lifecycle.account_id===t.lifecycle.account_id&&e.lifecycle.session_id===t.lifecycle.session_id&&e.lifecycle.signer_set_id===t.lifecycle.signer_set_id&&e.lifecycle.selected_server_id===t.lifecycle.selected_server_id}function D(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Ge(e,t){return e[0]===t[0]&&e[1]===t[1]}function Ke(e,t){return e.lifecycle_id===t.lifecycle_id&&e.root_share_epoch===t.root_share_epoch&&e.account_id===t.account_id&&e.threshold_session_id===t.threshold_session_id&&e.signer_set_id===t.signer_set_id&&e.signing_worker_id===t.signing_worker_id&&ue(e.material_activation,t.material_activation)}function qe(e,t){return e.wallet_id===t.wallet_id&&e.near_ed25519_signing_key_id===t.near_ed25519_signing_key_id&&e.signing_root_id===t.signing_root_id&&e.key_creation_signer_slot===t.key_creation_signer_slot}function Je(e,t){return Ke(e.scope,t.scope)&&qe(e.application_binding,t.application_binding)&&Ge(e.participant_ids,t.participant_ids)}const O=`registration_prepare`,Ye=`registration`,Xe=`recovery`,Ze=`recovery`,k=`key_export`,Qe=`export`;function A(e,t,n){let r=new Set(n);for(let n of Object.keys(e))if(!r.has(n))throw Error(`${t}.${n} is not a supported field`);for(let r of n)if(!Object.hasOwn(e,r))throw Error(`${t}.${r} is required`)}function $e(e,t){if(!Number.isInteger(e)||typeof e!=`number`||e<=0||e>4294967295)throw Error(`${t} must be a positive u32`);return e}function et(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive safe integer`);return e}function tt(e,t){switch(e){case`registration`:case`recovery`:case`refresh`:case`export`:case`lane_provisioning`:case`lane_refresh`:return e;default:throw Error(`${t} is invalid`)}}function nt(e,t){switch(e){case`deriver_a`:case`deriver_b`:return e;default:throw Error(`${t} is invalid`)}}function rt(e,t){switch(e){case`activation`:case`export`:return e;default:throw Error(`${t} is invalid`)}}function it(e,t){switch(e){case`activation_client`:case`activation_signing_worker`:case`export_client`:return e;default:throw Error(`${t} is invalid`)}}function at(e,t){switch(e){case`registration_prepare`:case`key_export`:case`recovery`:case`server_share_refresh`:return e;default:throw Error(`${t} is invalid`)}}function ot(e,t){switch(e){case`registration`:case`recovery`:case`export`:case`refresh`:return e;default:throw Error(`${t} is invalid`)}}function j(e){let t=u(e,`application_binding`);return A(t,`application_binding`,[`wallet_id`,`near_ed25519_signing_key_id`,`signing_root_id`,`key_creation_signer_slot`]),{wallet_id:w(t.wallet_id,`application_binding.wallet_id`),near_ed25519_signing_key_id:w(t.near_ed25519_signing_key_id,`application_binding.near_ed25519_signing_key_id`),signing_root_id:w(t.signing_root_id,`application_binding.signing_root_id`),key_creation_signer_slot:$e(t.key_creation_signer_slot,`application_binding.key_creation_signer_slot`)}}function st(e){let t=u(e,`scope`);A(t,`scope`,[`lifecycle_id`,`root_share_epoch`,`account_id`,`threshold_session_id`,`signer_set_id`,`signing_worker_id`,`material_activation`]);let n=w(t.account_id,`scope.account_id`),r=w(t.signing_worker_id,`scope.signing_worker_id`),i=S(t.material_activation);if(i.material_owner!==n||i.signing_worker!==r)throw Error(`scope.material_activation does not match the lifecycle owner and worker`);return{lifecycle_id:w(t.lifecycle_id,`scope.lifecycle_id`),root_share_epoch:w(t.root_share_epoch,`scope.root_share_epoch`),account_id:n,threshold_session_id:w(t.threshold_session_id,`scope.threshold_session_id`),signer_set_id:w(t.signer_set_id,`scope.signer_set_id`),signing_worker_id:r,material_activation:i}}function M(e){if(!Array.isArray(e)||e.length!==2)throw Error(`participant_ids must contain exactly two values`);let t=$e(e[0],`participant_ids[0]`),n=$e(e[1],`participant_ids[1]`);if(t>65535||n>65535||t>=n)throw Error(`participant_ids must be distinct, nonzero, ascending u16 values`);return[t,n]}function N(e){return M(e)}function ct(e){let t=u(e,`binding.lifecycle`);A(t,`binding.lifecycle`,[`lifecycle_id`,`work_kind`,`primitive_request_kind`,`root_share_epoch`,`account_id`,`session_id`,`signer_set_id`,`selected_server_id`]);let n={lifecycle_id:w(t.lifecycle_id,`binding.lifecycle.lifecycle_id`),work_kind:at(t.work_kind,`binding.lifecycle.work_kind`),primitive_request_kind:ot(t.primitive_request_kind,`binding.lifecycle.primitive_request_kind`),root_share_epoch:w(t.root_share_epoch,`binding.lifecycle.root_share_epoch`),account_id:w(t.account_id,`binding.lifecycle.account_id`),session_id:w(t.session_id,`binding.lifecycle.session_id`),signer_set_id:w(t.signer_set_id,`binding.lifecycle.signer_set_id`),selected_server_id:w(t.selected_server_id,`binding.lifecycle.selected_server_id`)};if(n.work_kind===O&&n.primitive_request_kind!==Ye||n.work_kind===Xe&&n.primitive_request_kind!==Ze||n.work_kind===k&&n.primitive_request_kind!==Qe)throw Error(`binding.lifecycle primitive request kind does not match its work kind`);return n}function lt(e){let t=u(e,`binding`);A(t,`binding`,[`lifecycle`,`operation`,`session_id`,`stable_key_context_binding`,`material_activation`]);let n={lifecycle:ct(t.lifecycle),operation:tt(t.operation,`binding.operation`),session_id:T(t.session_id,`binding.session_id`,!0),stable_key_context_binding:T(t.stable_key_context_binding,`binding.stable_key_context_binding`,!1),material_activation:S(t.material_activation)};if(n.operation===`registration`&&n.lifecycle.work_kind!==O||n.operation===`recovery`&&n.lifecycle.work_kind!==Xe||n.operation===`export`&&n.lifecycle.work_kind!==k)throw Error(`binding operation does not match its lifecycle work kind`);if(n.material_activation.material_owner!==n.lifecycle.account_id||n.material_activation.signing_worker!==n.lifecycle.selected_server_id)throw Error(`binding material activation does not match its lifecycle owner and worker`);return n}function ut(e){return lt(e)}function dt(e){let t=lt(e);if(t.operation!==`export`||t.lifecycle.work_kind!==k||t.lifecycle.primitive_request_kind!==Qe)throw Error(`export binding requires the exact export lifecycle`);return{lifecycle:{lifecycle_id:t.lifecycle.lifecycle_id,work_kind:k,primitive_request_kind:Qe,root_share_epoch:t.lifecycle.root_share_epoch,account_id:t.lifecycle.account_id,session_id:t.lifecycle.session_id,signer_set_id:t.lifecycle.signer_set_id,selected_server_id:t.lifecycle.selected_server_id},operation:`export`,session_id:t.session_id,stable_key_context_binding:t.stable_key_context_binding,material_activation:t.material_activation}}function ft(e){let t=u(e,`export binding`);return A(t,`export binding`,[`ceremony`,`registered_public_key`,`state_epoch`,`runtime_policy_binding`,`authorization_digest`]),{ceremony:dt(t.ceremony),registered_public_key:T(t.registered_public_key,`export binding.registered_public_key`,!0),state_epoch:et(t.state_epoch,`export binding.state_epoch`),runtime_policy_binding:T(t.runtime_policy_binding,`export binding.runtime_policy_binding`,!0),authorization_digest:T(t.authorization_digest,`export binding.authorization_digest`,!0)}}function P(e){let t=lt(e);switch(t.operation){case`registration`:if(t.lifecycle.work_kind!==O||t.lifecycle.primitive_request_kind!==Ye)throw Error(`activation binding has the wrong registration lifecycle kind`);return{lifecycle:{lifecycle_id:t.lifecycle.lifecycle_id,work_kind:O,primitive_request_kind:Ye,root_share_epoch:t.lifecycle.root_share_epoch,account_id:t.lifecycle.account_id,session_id:t.lifecycle.session_id,signer_set_id:t.lifecycle.signer_set_id,selected_server_id:t.lifecycle.selected_server_id},operation:`registration`,session_id:t.session_id,stable_key_context_binding:t.stable_key_context_binding,material_activation:t.material_activation};case`recovery`:if(t.lifecycle.work_kind!==Xe||t.lifecycle.primitive_request_kind!==Ze)throw Error(`activation binding has the wrong recovery lifecycle kind`);return{lifecycle:{lifecycle_id:t.lifecycle.lifecycle_id,work_kind:Xe,primitive_request_kind:Ze,root_share_epoch:t.lifecycle.root_share_epoch,account_id:t.lifecycle.account_id,session_id:t.lifecycle.session_id,signer_set_id:t.lifecycle.signer_set_id,selected_server_id:t.lifecycle.selected_server_id},operation:`recovery`,session_id:t.session_id,stable_key_context_binding:t.stable_key_context_binding,material_activation:t.material_activation};case`refresh`:case`export`:case`lane_provisioning`:case`lane_refresh`:throw Error(`activation binding has a non-activation operation`)}}function pt(e){let t=u(e,`keyset`);A(t,`keyset`,[`deriver_a_input_public_key`,`deriver_b_input_public_key`,`signing_worker_recipient_public_key`]);let n={deriver_a_input_public_key:T(t.deriver_a_input_public_key,`keyset.deriver_a_input_public_key`,!0),deriver_b_input_public_key:T(t.deriver_b_input_public_key,`keyset.deriver_b_input_public_key`,!0),signing_worker_recipient_public_key:T(t.signing_worker_recipient_public_key,`keyset.signing_worker_recipient_public_key`,!0)};if(E(n.deriver_a_input_public_key,n.deriver_b_input_public_key)||E(n.deriver_a_input_public_key,n.signing_worker_recipient_public_key)||E(n.deriver_b_input_public_key,n.signing_worker_recipient_public_key))throw Error(`keyset public keys must be distinct`);return n}function F(e,t){let n=u(e,t);A(n,t,[`kind`,`deriver`,`operation`,`session`,`stable_context_binding`,`encapsulated_key`,`ciphertext`]);let r={kind:rt(n.kind,`${t}.kind`),deriver:nt(n.deriver,`${t}.deriver`),operation:tt(n.operation,`${t}.operation`),session:T(n.session,`${t}.session`,!0),stable_context_binding:T(n.stable_context_binding,`${t}.stable_context_binding`,!0),encapsulated_key:T(n.encapsulated_key,`${t}.encapsulated_key`,!0),ciphertext:Te(n.ciphertext,`${t}.ciphertext`,16,Ue)};if(r.kind===`activation`&&r.operation===`export`||r.kind===`export`&&r.operation!==`export`)throw Error(`${t} operation does not match its circuit family`);return r}function mt(e,t,n,r){if(t.kind!==`activation`||t.deriver!==n||t.operation!==e.operation||!E(t.session,e.session_id)||!E(t.stable_context_binding,e.stable_key_context_binding))throw Error(`${r} does not match the admitted activation binding`);switch(e.operation){case`registration`:return{kind:`activation`,deriver:n,operation:`registration`,session:t.session,stable_context_binding:t.stable_context_binding,encapsulated_key:t.encapsulated_key,ciphertext:t.ciphertext};case`recovery`:return{kind:`activation`,deriver:n,operation:`recovery`,session:t.session,stable_context_binding:t.stable_context_binding,encapsulated_key:t.encapsulated_key,ciphertext:t.ciphertext}}}function ht(e,t,n,r){if(t.kind!==`export`||t.deriver!==n||t.operation!==`export`||!E(t.session,e.ceremony.session_id)||!E(t.stable_context_binding,e.ceremony.stable_key_context_binding))throw Error(`${r} does not match the admitted export binding`);return{kind:`export`,deriver:n,operation:`export`,session:t.session,stable_context_binding:t.stable_context_binding,encapsulated_key:t.encapsulated_key,ciphertext:t.ciphertext}}function I(e,t){let n=u(e,t);return A(n,t,[`kind`,`deriver`,`session`,`transcript`,`encapsulated_key`,`ciphertext`]),{kind:it(n.kind,`${t}.kind`),deriver:nt(n.deriver,`${t}.deriver`),session:T(n.session,`${t}.session`,!0),transcript:T(n.transcript,`${t}.transcript`,!0),encapsulated_key:T(n.encapsulated_key,`${t}.encapsulated_key`,!0),ciphertext:Te(n.ciphertext,`${t}.ciphertext`,16,Ue)}}function L(e){let t=u(e,`public_receipt`);return A(t,`public_receipt`,[`transcript`,`registered_public_key`,`joined_client_commitment`,`joined_signing_worker_commitment`,`signing_worker_verifying_share`,`state_epoch`,`material_activation`]),{transcript:T(t.transcript,`public_receipt.transcript`,!0),registered_public_key:T(t.registered_public_key,`public_receipt.registered_public_key`,!0),joined_client_commitment:T(t.joined_client_commitment,`public_receipt.joined_client_commitment`,!0),joined_signing_worker_commitment:T(t.joined_signing_worker_commitment,`public_receipt.joined_signing_worker_commitment`,!0),signing_worker_verifying_share:T(t.signing_worker_verifying_share,`public_receipt.signing_worker_verifying_share`,!0),state_epoch:et(t.state_epoch,`public_receipt.state_epoch`),material_activation:S(t.material_activation)}}function gt(e,t,n,r,i){if(n.kind!==`activation_client`||n.deriver!==r||!E(n.session,e.session_id)||!E(n.transcript,t.transcript))throw Error(`${i} does not match the terminal activation receipt`);return{kind:`activation_client`,deriver:r,session:n.session,transcript:n.transcript,encapsulated_key:n.encapsulated_key,ciphertext:n.ciphertext}}function _t(e,t,n,r,i){if(n.kind!==`export_client`||n.deriver!==r||!E(n.session,e.ceremony.session_id)||!E(n.transcript,t))throw Error(`${i} does not match the terminal export result`);return{kind:`export_client`,deriver:r,session:n.session,transcript:n.transcript,encapsulated_key:n.encapsulated_key,ciphertext:n.ciphertext}}function R(e,t){try{return{ok:!0,value:e(t)}}catch(e){return{ok:!1,code:`invalid_body`,message:e instanceof Error?e.message:String(e)}}}function vt(e){let t=u(e,`registration admission request`);return A(t,`registration admission request`,[`scope`,`application_binding`,`participant_ids`]),{scope:st(t.scope),application_binding:j(t.application_binding),participant_ids:M(t.participant_ids)}}function yt(e){let t=u(e,`recovery admission request`);A(t,`recovery admission request`,[`scope`,`active_material_activation`,`application_binding`,`participant_ids`,`active_capability_binding`,`replacement_capability_binding`,`registered_public_key`]);let n=T(t.active_capability_binding,`recovery admission request.active_capability_binding`,!0),r=T(t.replacement_capability_binding,`recovery admission request.replacement_capability_binding`,!0);if(E(n,r))throw Error(`recovery replacement capability binding must be fresh`);let i=st(t.scope),a=S(t.active_material_activation),o=i.material_activation;if(a.activation_id===o.activation_id||a.lifecycle_binding===o.lifecycle_binding)throw Error(`recovery replacement material activation identity must be fresh`);if(a.capability!==o.capability||a.material_owner!==o.material_owner||a.key_binding!==o.key_binding||a.signing_worker!==o.signing_worker)throw Error(`recovery replacement material activation changed stable identity facts`);return{scope:i,active_material_activation:a,application_binding:j(t.application_binding),participant_ids:M(t.participant_ids),active_capability_binding:n,replacement_capability_binding:r,registered_public_key:T(t.registered_public_key,`recovery admission request.registered_public_key`,!0)}}function bt(e){let t=u(e,`warm recovery bootstrap request`);if(A(t,`warm recovery bootstrap request`,[`kind`,`walletId`,`nearAccountId`,`nearEd25519SigningKeyId`,`signerSlot`,`thresholdSessionId`,`signingWorkerId`,`participantIds`]),t.kind!==`router_ab_ed25519_yao_warm_recovery_bootstrap_request_v1`)throw Error(`warm recovery bootstrap request.kind is invalid`);return{kind:`router_ab_ed25519_yao_warm_recovery_bootstrap_request_v1`,walletId:w(t.walletId,`warm recovery bootstrap request.walletId`),nearAccountId:w(t.nearAccountId,`warm recovery bootstrap request.nearAccountId`),nearEd25519SigningKeyId:w(t.nearEd25519SigningKeyId,`warm recovery bootstrap request.nearEd25519SigningKeyId`),signerSlot:et(t.signerSlot,`warm recovery bootstrap request.signerSlot`),thresholdSessionId:w(t.thresholdSessionId,`warm recovery bootstrap request.thresholdSessionId`),signingWorkerId:w(t.signingWorkerId,`warm recovery bootstrap request.signingWorkerId`),participantIds:M(t.participantIds)}}function xt(e){let t=u(e,`export admission receipt`);return A(t,`export admission receipt`,[`binding`,`keyset`]),{binding:ft(t.binding),keyset:pt(t.keyset)}}function St(e){let t=u(e,`export execute request`);A(t,`export execute request`,[`binding`,`deriver_a_input`,`deriver_b_input`]);let n=ft(t.binding);return{binding:n,deriver_a_input:ht(n,F(t.deriver_a_input,`deriver_a_input`),`deriver_a`,`deriver_a_input`),deriver_b_input:ht(n,F(t.deriver_b_input,`deriver_b_input`),`deriver_b`,`deriver_b_input`)}}function Ct(e){let t=u(e,`export result`);A(t,`export result`,[`binding`,`transcript`,`deriver_a_client_package`,`deriver_b_client_package`]);let n=ft(t.binding),r=T(t.transcript,`export result.transcript`,!0);return{binding:n,transcript:r,deriver_a_client_package:_t(n,r,I(t.deriver_a_client_package,`deriver_a_client_package`),`deriver_a`,`deriver_a_client_package`),deriver_b_client_package:_t(n,r,I(t.deriver_b_client_package,`deriver_b_client_package`),`deriver_b`,`deriver_b_client_package`)}}function wt(e){let t=u(e,`activation admission receipt`);A(t,`activation admission receipt`,[`binding`,`keyset`]);let n=P(t.binding),r=pt(t.keyset);switch(n.operation){case`registration`:return{binding:n,keyset:r};case`recovery`:return{binding:n,keyset:r}}}function Tt(e){let t=u(e,`activation execute request`);A(t,`activation execute request`,[`binding`,`deriver_a_input`,`deriver_b_input`]);let n=P(t.binding),r=mt(n,F(t.deriver_a_input,`deriver_a_input`),`deriver_a`,`deriver_a_input`),i=mt(n,F(t.deriver_b_input,`deriver_b_input`),`deriver_b`,`deriver_b_input`);if(n.operation===`registration`){if(r.operation!==`registration`||i.operation!==`registration`)throw Error(`activation inputs do not match registration binding`);return{binding:n,deriver_a_input:r,deriver_b_input:i}}if(r.operation!==`recovery`||i.operation!==`recovery`)throw Error(`activation inputs do not match recovery binding`);return{binding:n,deriver_a_input:r,deriver_b_input:i}}function Et(e){let t=u(e,`activation result`);A(t,`activation result`,[`binding`,`deriver_a_client_package`,`deriver_b_client_package`,`public_receipt`]);let n=P(t.binding),r=L(t.public_receipt);if(!ue(n.material_activation,r.material_activation))throw Error(`activation result receipt material does not match the admitted binding`);let i=I(t.deriver_a_client_package,`deriver_a_client_package`),a=I(t.deriver_b_client_package,`deriver_b_client_package`),o=gt(n,r,i,`deriver_a`,`deriver_a_client_package`),s=gt(n,r,a,`deriver_b`,`deriver_b_client_package`);switch(n.operation){case`registration`:return{binding:n,deriver_a_client_package:o,deriver_b_client_package:s,public_receipt:r};case`recovery`:return{binding:n,deriver_a_client_package:o,deriver_b_client_package:s,public_receipt:r}}}function Dt(e){let t=P(e);switch(t.operation){case`registration`:throw Error(`recovery activation requires a recovery binding`);case`recovery`:return t}}function Ot(e){let t=u(e,`recovery activation receipt`);A(t,`recovery activation receipt`,[`binding`,`public_receipt`,`active_capability_binding`,`retired_capability_binding`]);let n=T(t.active_capability_binding,`recovery activation receipt.active_capability_binding`,!0),r=T(t.retired_capability_binding,`recovery activation receipt.retired_capability_binding`,!0);if(E(n,r))throw Error(`recovery activation receipt capability bindings must be distinct`);return{binding:Dt(t.binding),public_receipt:L(t.public_receipt),active_capability_binding:n,retired_capability_binding:r}}function kt(e,t){return e.binding.operation===t}function At(e,t){return e.binding.operation===t}function jt(e,t){return e.binding.operation===t}function z(e){return{ok:!1,code:`invalid_body`,message:`activation value must use the ${e} operation`}}function Mt(e){return R(vt,e)}function Nt(e){return R(yt,e)}function Pt(e){return R(bt,e)}function Ft(e){return R(xt,e)}function It(e){return R(St,e)}function Lt(e){return R(Ct,e)}function Rt(e){return R(wt,e)}function zt(e){let t=Rt(e);return t.ok?kt(t.value,`registration`)?{ok:!0,value:t.value}:z(`registration`):t}function Bt(e){let t=Rt(e);return t.ok?kt(t.value,`recovery`)?{ok:!0,value:t.value}:z(`recovery`):t}function Vt(e){return R(Tt,e)}function Ht(e){let t=Vt(e);return t.ok?At(t.value,`registration`)?{ok:!0,value:t.value}:z(`registration`):t}function Ut(e){let t=Vt(e);return t.ok?At(t.value,`recovery`)?{ok:!0,value:t.value}:z(`recovery`):t}function Wt(e){return R(Et,e)}function Gt(e){let t=Wt(e);return t.ok?jt(t.value,`registration`)?{ok:!0,value:t.value}:z(`registration`):t}function Kt(e){let t=Wt(e);return t.ok?jt(t.value,`recovery`)?{ok:!0,value:t.value}:z(`recovery`):t}function qt(e){return R(Ot,e)}function Jt(e){return R(Yt,e)}function Yt(e){return I(e,`encrypted_package`)}const Xt=`seams/linked-device/ecdsa-source-contribution-envelope/v1`;function Zt(e){let t=l(e,`linked-device ordinary source contribution`);switch(t.kind){case`linked_device_ed25519_source_contribution_v1`:return an(t);case`linked_device_ecdsa_source_contribution_v1`:return on(t);default:throw Error(`linked-device ordinary source contribution kind is invalid`)}}function Qt(e){let t=K(e,[`state`,`reservation_id`,`participant_ids`,`activation_receipt`,`deriver_a_client_package`,`deriver_b_client_package`],`linked-device Ed25519 source-preserving reservation`);if(t.state!==`inactive`)throw Error(`linked-device Ed25519 source-preserving reservation is not inactive`);let n=L(t.activation_receipt),r=N(t.participant_ids),i=B(t.deriver_a_client_package,`deriver_a`),a=B(t.deriver_b_client_package,`deriver_b`);if(!D(n.transcript,i.transcript)||!D(n.transcript,a.transcript))throw Error(`linked-device Ed25519 reservation packages have mismatched transcripts`);return{state:`inactive`,reservationId:G(t.reservation_id,`reservation_id`),participantIds:r,activationReceipt:n,deriver_a_client_package:i,deriver_b_client_package:a}}function $t(e){if(!Array.isArray(e)||e.length===0||e.length>2)throw Error(`linked-device ordinary source contributions must contain one or two entries`);let t=e.map(Zt),n=t.map(e=>e.keyFamily);if(new Set(n).size!==n.length)throw Error(`linked-device ordinary source contributions repeat a key family`);if(t.length===2&&(t[0]?.keyFamily!==`ed25519`||t[1]?.keyFamily!==`ecdsa_secp256k1`))throw Error(`linked-device ordinary source contributions must be Ed25519 then ECDSA`);let r=t[0];if(!r)throw Error(`linked-device ordinary source contributions are empty`);return[r,...t.slice(1)]}function en(e){let t=K(e,[`linkSessionId`,`enrollmentId`,`sourceAuthorityId`,`source`,`target`],`linked-device ECDSA source contribution preparation`),n=mn(t.source),r=hn(t.target);return Sn(n.activation,r.activation),{linkSessionId:wn(t.linkSessionId),enrollmentId:Tn(t.enrollmentId),sourceAuthorityId:En(t.sourceAuthorityId),source:n,target:r}}function tn(e){let t=l(e,`linked-device ordinary source contribution preparation`);if(t.kind===`linked_device_ed25519_source_contribution_preparation_v1`)return rn(t);if(Object.prototype.hasOwnProperty.call(t,`source`)&&Object.prototype.hasOwnProperty.call(t,`target`))return en(t);throw Error(`linked-device ordinary source contribution preparation family is invalid`)}function nn(e){if(!Array.isArray(e)||e.length===0||e.length>2)throw Error(`linked-device ordinary source contribution preparations must contain one or two entries`);let t=e.map(tn),n=t.map(e=>`kind`in e?`ed25519`:`ecdsa_secp256k1`);if(new Set(n).size!==n.length)throw Error(`linked-device ordinary source contribution preparations repeat a key family`);if(t.length===2&&(n[0]!==`ed25519`||n[1]!==`ecdsa_secp256k1`))throw Error(`linked-device ordinary source contribution preparations must be ordered Ed25519 then ECDSA`);let r=t[0];if(!r)throw Error(`linked-device ordinary source contribution preparation is empty`);return[r,...t.slice(1)]}function rn(e){if(K(e,[`kind`,`linkSessionId`,`enrollmentId`,`sourceAuthorityId`,`walletKeyId`,`targetDeviceId`,`targetFactorVerificationDigestB64u`,`sourceBinding`,`targetAdmission`,`applicationBinding`,`sourceRevocationEpoch`,`participantIds`,`targetMaterialActivation`,`targetClientRecipientPublicKeyB64u`,`targetSigningWorkerRecipientPublicKeyB64u`,`sourceRegisteredPublicKeyB64u`],`linked-device Ed25519 source contribution preparation`),e.kind!==`linked_device_ed25519_source_contribution_preparation_v1`)throw Error(`linked-device Ed25519 source contribution preparation kind is invalid`);let t=P(e.sourceBinding),n=zt(e.targetAdmission);if(!n.ok)throw Error(`targetAdmission ${n.message}`);let r=n.value,i=j(e.applicationBinding);if(typeof e.sourceRevocationEpoch!=`number`||!Number.isSafeInteger(e.sourceRevocationEpoch)||e.sourceRevocationEpoch<0)throw Error(`sourceRevocationEpoch must be a non-negative safe integer`);let o=V(e.targetMaterialActivation,`targetMaterialActivation`),s=wn(e.linkSessionId),c=Tn(e.enrollmentId),l=En(e.sourceAuthorityId),u=Dn(e.walletKeyId),d=H(e.targetDeviceId),ee=U(e.targetFactorVerificationDigestB64u,`targetFactorVerificationDigestB64u`),p=W(e.targetClientRecipientPublicKeyB64u,32,`targetClientRecipientPublicKeyB64u`),m=W(e.targetSigningWorkerRecipientPublicKeyB64u,32,`targetSigningWorkerRecipientPublicKeyB64u`);if(p===m)throw Error(`linked-device Ed25519 source contribution recipients must differ`);let h=N(e.participantIds);if(yn(t,s,`sourceBinding`),!a(o,x(r.binding.material_activation)))throw Error(`targetAdmission activation differs from targetMaterialActivation`);if(!bn(t,r.binding))throw Error(`source and target Ed25519 contribution bindings differ`);if(t.material_activation.activation_id===o.activationId)throw Error(`source and target Ed25519 contribution activations must differ`);return{kind:`linked_device_ed25519_source_contribution_preparation_v1`,linkSessionId:s,enrollmentId:c,sourceAuthorityId:l,walletKeyId:u,targetDeviceId:d,targetFactorVerificationDigestB64u:ee,sourceBinding:t,targetAdmission:r,applicationBinding:i,sourceRevocationEpoch:e.sourceRevocationEpoch,participantIds:h,targetMaterialActivation:o,targetClientRecipientPublicKeyB64u:p,targetSigningWorkerRecipientPublicKeyB64u:m,sourceRegisteredPublicKeyB64u:f(e.sourceRegisteredPublicKeyB64u,`sourceRegisteredPublicKeyB64u`)}}function an(e){if(K(e,[`kind`,`keyFamily`,`linkSessionId`,`enrollmentId`,`sourceAuthorityId`,`walletKeyId`,`targetDeviceId`,`targetFactorVerificationDigestB64u`,`targetMaterialActivation`,`targetClientRecipientPublicKeyB64u`,`targetSigningWorkerRecipientPublicKeyB64u`,`sourceBinding`,`reservationId`,`targetBinding`,`activationReceipt`,`participantIds`,`deriver_a_client_package`,`deriver_b_client_package`,`sourceRegisteredPublicKeyB64u`],`linked-device Ed25519 source contribution`),e.kind!==`linked_device_ed25519_source_contribution_v1`)throw Error(`linked-device Ed25519 source contribution kind is invalid`);if(e.keyFamily!==`ed25519`)throw Error(`linked-device Ed25519 source contribution family is invalid`);let t=P(e.sourceBinding),n=V(e.targetMaterialActivation,`source contribution targetMaterialActivation`),r=_n(e.targetBinding,`targetBinding`),i=L(e.activationReceipt),o=G(e.reservationId,`reservationId`),s=N(e.participantIds),c=wn(e.linkSessionId),l=Tn(e.enrollmentId),u=En(e.sourceAuthorityId),d=Dn(e.walletKeyId),ee=H(e.targetDeviceId),p=U(e.targetFactorVerificationDigestB64u,`targetFactorVerificationDigestB64u`),m=W(e.targetClientRecipientPublicKeyB64u,32,`targetClientRecipientPublicKeyB64u`),h=W(e.targetSigningWorkerRecipientPublicKeyB64u,32,`targetSigningWorkerRecipientPublicKeyB64u`);if(m===h)throw Error(`linked-device Ed25519 source contribution recipients must differ`);if(yn(t,c,`sourceBinding`),vn(r,c,n,`targetBinding`),!bn(t,r))throw Error(`linked-device Ed25519 source contribution stable identity differs`);if(!a(x(i.material_activation),n))throw Error(`linked-device Ed25519 source contribution receipt activation differs`);let g=f(e.sourceRegisteredPublicKeyB64u,`sourceRegisteredPublicKeyB64u`);if(!D(i.registered_public_key,Array.from(te(g))))throw Error(`linked-device Ed25519 source contribution receipt public key differs`);let _=B(e.deriver_a_client_package,`deriver_a`),ne=B(e.deriver_b_client_package,`deriver_b`);if(!D(i.transcript,_.transcript)||!D(i.transcript,ne.transcript))throw Error(`linked-device Ed25519 source contribution package transcript differs`);if(t.material_activation.activation_id===n.activationId)throw Error(`linked-device Ed25519 source contribution reuses the source activation`);return{kind:`linked_device_ed25519_source_contribution_v1`,keyFamily:`ed25519`,linkSessionId:c,enrollmentId:l,sourceAuthorityId:u,walletKeyId:d,targetDeviceId:ee,targetFactorVerificationDigestB64u:p,targetMaterialActivation:n,targetClientRecipientPublicKeyB64u:m,targetSigningWorkerRecipientPublicKeyB64u:h,sourceBinding:t,reservationId:o,targetBinding:r,activationReceipt:i,participantIds:s,deriver_a_client_package:_,deriver_b_client_package:ne,sourceRegisteredPublicKeyB64u:g}}function on(e){if(K(e,[`kind`,`keyFamily`,`linkSessionId`,`enrollmentId`,`sourceAuthorityId`,`walletKeyId`,`targetDeviceId`,`targetFactorVerificationDigestB64u`,`sourceSigner`,`sourceDerivation`,`target`,`package`],`linked-device ECDSA source contribution`),e.kind!==`linked_device_ecdsa_source_contribution_v1`)throw Error(`linked-device ECDSA source contribution kind is invalid`);if(e.keyFamily!==`ecdsa_secp256k1`)throw Error(`linked-device ECDSA source contribution family is invalid`);let t=wn(e.linkSessionId),n=Tn(e.enrollmentId),r=En(e.sourceAuthorityId),i=Dn(e.walletKeyId),a=H(e.targetDeviceId),o=U(e.targetFactorVerificationDigestB64u,`targetFactorVerificationDigestB64u`),s=mn(e.sourceSigner),c=sn(e.sourceDerivation),l=hn(e.target);Sn(s.activation,l.activation);let u=fn(e.package);if(u.binding.linkSessionId!==t||u.binding.enrollmentId!==n||u.binding.sourceAuthorityId!==r||u.binding.target.targetDeviceId!==a||u.binding.target.targetFactorVerificationDigestB64u!==o)throw Error(`linked-device ECDSA source contribution package binding differs`);if(!xn(u.binding.source,s))throw Error(`linked-device ECDSA source contribution signer differs from package binding`);if(!Cn(u.binding.target,l))throw Error(`linked-device ECDSA source contribution target differs from package binding`);return{kind:`linked_device_ecdsa_source_contribution_v1`,keyFamily:`ecdsa_secp256k1`,linkSessionId:t,enrollmentId:n,sourceAuthorityId:r,walletKeyId:i,targetDeviceId:a,targetFactorVerificationDigestB64u:o,sourceSigner:s,sourceDerivation:c,target:l,package:u}}function sn(e){let t=K(e,[`applicationBindingDigestB64u`,`clientShareRetryCounter`,`ecdsaThresholdKeyId`,`sourceNormalSigning`],`linked-device ECDSA source derivation`),n=t.clientShareRetryCounter;if(typeof n!=`number`||!Number.isSafeInteger(n)||n<0)throw Error(`linked-device ECDSA source derivation retry counter is invalid`);let r=U(t.applicationBindingDigestB64u,`sourceDerivation.applicationBindingDigestB64u`),i=de(t.sourceNormalSigning),a=le(t.ecdsaThresholdKeyId);if(i.scope.context.application_binding_digest_b64u!==r||i.scope.public_identity.client_share_retry_counter!==n||i.scope.ecdsa_threshold_key_id!==a)throw Error(`linked-device ECDSA source derivation differs from normal signing`);return{applicationBindingDigestB64u:r,clientShareRetryCounter:n,ecdsaThresholdKeyId:a,sourceNormalSigning:i}}function cn(e){let t=K(e,[`state`,`binding`,`sourceDerivation`,`targetRelayerPublicKey33B64u`,`thresholdPublicKey33B64u`,`thresholdEthereumAddress20B64u`,`normalSigning`],`linked-device ECDSA source-preserving activation receipt`);if(t.state!==`inactive`)throw Error(`linked-device ECDSA source-preserving activation receipt is not inactive`);let n=pn(t.binding),r=sn(t.sourceDerivation),i=m(t.targetRelayerPublicKey33B64u,`targetRelayerPublicKey33B64u`),a=m(t.thresholdPublicKey33B64u,`thresholdPublicKey33B64u`),o=W(t.thresholdEthereumAddress20B64u,20,`thresholdEthereumAddress20B64u`),s=de(t.normalSigning);return ln({binding:n,sourceDerivation:r,targetRelayerPublicKey33B64u:i,thresholdPublicKey33B64u:a,thresholdEthereumAddress20B64u:o,normalSigning:s}),{state:`inactive`,binding:n,sourceDerivation:r,targetRelayerPublicKey33B64u:i,thresholdPublicKey33B64u:a,thresholdEthereumAddress20B64u:o,normalSigning:s}}function ln(e){let t=e.sourceDerivation.sourceNormalSigning.scope,n=e.normalSigning.scope;if(!a(x(t.material_activation),e.binding.source.activation)||!a(x(n.material_activation),e.binding.target.activation)||t.wallet_id!==n.wallet_id||t.wallet_id!==e.binding.source.activation.materialOwner||n.wallet_id!==e.binding.target.activation.materialOwner||t.ecdsa_threshold_key_id!==n.ecdsa_threshold_key_id||t.signing_root_id!==n.signing_root_id||t.signing_root_version!==n.signing_root_version||t.context.application_binding_digest_b64u!==n.context.application_binding_digest_b64u||t.activation_epoch!==n.activation_epoch||t.public_identity.derivation_client_share_public_key33_b64u!==e.binding.source.clientPublicKey33B64u||t.public_identity.server_public_key33_b64u!==e.binding.source.relayerPublicKey33B64u||t.public_identity.threshold_public_key33_b64u!==e.binding.source.thresholdPublicKey33B64u||t.public_identity.ethereum_address20_b64u!==e.binding.source.thresholdEthereumAddress20B64u||n.public_identity.context_binding_b64u!==t.public_identity.context_binding_b64u||n.public_identity.derivation_client_share_public_key33_b64u!==e.binding.targetClientPublicKey33B64u||n.public_identity.server_public_key33_b64u!==e.targetRelayerPublicKey33B64u||n.public_identity.threshold_public_key33_b64u!==e.thresholdPublicKey33B64u||n.public_identity.ethereum_address20_b64u!==e.thresholdEthereumAddress20B64u||n.public_identity.client_share_retry_counter!==t.public_identity.client_share_retry_counter||n.public_identity.server_share_retry_counter!==t.public_identity.server_share_retry_counter||n.signing_worker.server_id!==e.binding.target.activation.signingWorker||n.signing_worker.key_epoch!==t.signing_worker.key_epoch||n.signing_worker.recipient_encryption_key!==un(e.binding.target.signingWorkerRecipientPublicKeyB64u))throw Error(`linked-device ECDSA normal signing state differs from its activation receipt`)}function un(e){let t=te(e);if(t.length!==32||_(t)!==e)throw Error(`linked-device signing-worker recipient key is invalid`);let n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return`x25519:${n}`}function B(e,t){let n=dn(e,`${t} client package`);if(n.kind!==`activation_client`||n.deriver!==t)throw Error(`${t} client package is not an activation client package`);return t===`deriver_a`?{kind:`activation_client`,deriver:`deriver_a`,session:n.session,transcript:n.transcript,encapsulated_key:n.encapsulated_key,ciphertext:n.ciphertext}:{kind:`activation_client`,deriver:`deriver_b`,session:n.session,transcript:n.transcript,encapsulated_key:n.encapsulated_key,ciphertext:n.ciphertext}}function dn(e,t){let n=Jt(e);if(!n.ok)throw Error(`${t} ${n.message}`);return n.value}function fn(e){let t=K(e,[`binding`,`encryptedDelta`,`encryptedTargetClientShare`],`linked-device ECDSA source contribution package`),n=pn(t.binding),r=gn(t.encryptedDelta,`encryptedDelta`),i=gn(t.encryptedTargetClientShare,`encryptedTargetClientShare`),a=r.bindingDigestB64u;if(i.bindingDigestB64u!==a)throw Error(`linked-device ECDSA source contribution envelope bindings differ`);if(r.recipientPublicKeyB64u!==n.target.signingWorkerRecipientPublicKeyB64u||i.recipientPublicKeyB64u!==n.target.clientRecipientPublicKeyB64u)throw Error(`linked-device ECDSA source contribution envelope recipients differ`);return{binding:n,encryptedDelta:r,encryptedTargetClientShare:i}}function pn(e){let t=K(e,[`linkSessionId`,`enrollmentId`,`sourceAuthorityId`,`source`,`target`,`targetClientPublicKey33B64u`],`linked-device ECDSA source contribution binding`),n=mn(t.source),r=hn(t.target);return Sn(n.activation,r.activation),{linkSessionId:G(t.linkSessionId,`binding.linkSessionId`),enrollmentId:G(t.enrollmentId,`binding.enrollmentId`),sourceAuthorityId:G(t.sourceAuthorityId,`binding.sourceAuthorityId`),source:n,target:r,targetClientPublicKey33B64u:m(t.targetClientPublicKey33B64u,`binding.targetClientPublicKey33B64u`)}}function mn(e){let t=K(e,[`activation`,`clientPublicKey33B64u`,`relayerPublicKey33B64u`,`thresholdPublicKey33B64u`,`thresholdEthereumAddress20B64u`],`linked-device ECDSA source signer`);return{activation:V(t.activation,`source.activation`),clientPublicKey33B64u:m(t.clientPublicKey33B64u,`source.clientPublicKey33B64u`),relayerPublicKey33B64u:m(t.relayerPublicKey33B64u,`source.relayerPublicKey33B64u`),thresholdPublicKey33B64u:m(t.thresholdPublicKey33B64u,`source.thresholdPublicKey33B64u`),thresholdEthereumAddress20B64u:W(t.thresholdEthereumAddress20B64u,20,`source.thresholdEthereumAddress20B64u`)}}function hn(e){let t=K(e,[`activation`,`targetDeviceId`,`targetFactorVerificationDigestB64u`,`clientRecipientPublicKeyB64u`,`signingWorkerRecipientPublicKeyB64u`],`linked-device ECDSA target recipient`),n=W(t.clientRecipientPublicKeyB64u,32,`target.clientRecipientPublicKeyB64u`),r=W(t.signingWorkerRecipientPublicKeyB64u,32,`target.signingWorkerRecipientPublicKeyB64u`);if(n===r)throw Error(`linked-device ECDSA target recipients must differ`);return{activation:V(t.activation,`target.activation`),targetDeviceId:H(t.targetDeviceId),targetFactorVerificationDigestB64u:U(t.targetFactorVerificationDigestB64u,`target.targetFactorVerificationDigestB64u`),clientRecipientPublicKeyB64u:n,signingWorkerRecipientPublicKeyB64u:r}}function gn(e,t){let n=K(e,[`kind`,`recipientPublicKeyB64u`,`bindingDigestB64u`,`encappedKeyB64u`,`ciphertextB64u`],`linked-device ECDSA ${t}`);if(n.kind!==Xt)throw Error(`${t}.kind is invalid`);return{kind:Xt,recipientPublicKeyB64u:W(n.recipientPublicKeyB64u,32,`${t}.recipientPublicKeyB64u`),bindingDigestB64u:U(n.bindingDigestB64u,`${t}.bindingDigestB64u`),encappedKeyB64u:W(n.encappedKeyB64u,32,`${t}.encappedKeyB64u`),ciphertextB64u:h(n.ciphertextB64u,`${t}.ciphertextB64u`)}}function _n(e,t){let n=P(e);if(n.operation!==`registration`)throw Error(`${t} must use the registration operation`);return n}function vn(e,t,n,r){if(e.material_activation.activation_id!==n.activationId)throw Error(`${r} activation does not match the target activation`);if(e.material_activation.material_owner!==n.materialOwner)throw Error(`${r} material owner does not match the target activation`);if(e.material_activation.signing_worker!==n.signingWorker)throw Error(`${r} signing worker does not match the target activation`);if(e.session_id.length!==32||String(t).length===0)throw Error(`${r} link binding is invalid`)}function yn(e,t,n){if(e.session_id.length!==32||String(t).length===0)throw Error(`${n} link binding is invalid`)}function bn(e,t){return e.stable_key_context_binding.every((e,n)=>e===t.stable_key_context_binding[n])&&e.material_activation.capability===t.material_activation.capability&&e.material_activation.material_owner===t.material_activation.material_owner&&e.material_activation.key_binding===t.material_activation.key_binding&&e.material_activation.lifecycle_binding===t.material_activation.lifecycle_binding&&e.material_activation.signing_worker===t.material_activation.signing_worker&&e.lifecycle.root_share_epoch===t.lifecycle.root_share_epoch&&e.lifecycle.account_id===t.lifecycle.account_id&&e.lifecycle.signer_set_id===t.lifecycle.signer_set_id&&e.lifecycle.selected_server_id===t.lifecycle.selected_server_id}function xn(e,t){return a(e.activation,t.activation)&&e.clientPublicKey33B64u===t.clientPublicKey33B64u&&e.relayerPublicKey33B64u===t.relayerPublicKey33B64u&&e.thresholdPublicKey33B64u===t.thresholdPublicKey33B64u&&e.thresholdEthereumAddress20B64u===t.thresholdEthereumAddress20B64u}function Sn(e,t){if(a(e,t)||e.materialOwner!==t.materialOwner||e.signingWorker!==t.signingWorker)throw Error(`linked-device ECDSA source and target activations are invalid`)}function Cn(e,t){return a(e.activation,t.activation)&&e.targetDeviceId===t.targetDeviceId&&e.targetFactorVerificationDigestB64u===t.targetFactorVerificationDigestB64u&&e.clientRecipientPublicKeyB64u===t.clientRecipientPublicKeyB64u&&e.signingWorkerRecipientPublicKeyB64u===t.signingWorkerRecipientPublicKeyB64u}function V(e,t){let n=i(e);if(!n.ok)throw Error(`${t} ${n.error.message}`);return n.value}function wn(e){let t=c(G(e,`linkSessionId`));if(!t.ok)throw Error(`linkSessionId ${t.error.message}`);return t.value}function Tn(e){let t=r(G(e,`enrollmentId`));if(!t.ok)throw Error(`enrollmentId ${t.error.message}`);return t.value}function En(e){let t=n(G(e,`sourceAuthorityId`));if(!t.ok)throw Error(`sourceAuthorityId ${t.error.message}`);return t.value}function Dn(t){let n=e(G(t,`walletKeyId`));if(!n.ok)throw Error(`walletKeyId ${n.error.message}`);return n.value}function H(e){let t=ne(G(e,`targetDeviceId`));if(!t.ok)throw Error(`targetDeviceId ${t.error.message}`);return t.value}function U(e,t){try{return re(e)}catch(e){throw Error(`${t} ${e instanceof Error?e.message:`is invalid`}`)}}function W(e,t,n){if(typeof e!=`string`||!/^[A-Za-z0-9_-]+$/.test(e))throw Error(`${n} must be canonical base64url`);let r;try{r=te(e)}catch{throw Error(`${n} must be canonical base64url`)}if(r.length!==t||_(r)!==e)throw Error(`${n} must decode to ${t} bytes`);return e}function G(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e||[...e].some(e=>{let t=e.charCodeAt(0);return t<32||t===127}))throw Error(`${t} must be a non-empty visible string`);return e}function K(e,t,n){let r=l(e,n),i=new Set(t),a=Object.keys(r);if(a.length!==t.length||a.some(e=>!i.has(e))||t.some(e=>!Object.prototype.hasOwnProperty.call(r,e)))throw Error(`${n} contains unknown or missing fields`);return r}function On(e){return Tr(e)}function kn(e){return wr(e.signerActivations)}function An(e){return Cr(e.signerActivations)}function jn(e){return e.provenance.kind===`wallet_recovery`}function Mn(e){return{kind:`wallet_ed25519_signer_activation_v1`,signer:e.signer,materialActivation:e.materialActivation}}function Nn(e){return{kind:`wallet_ecdsa_signer_activation_v1`,signer:e.signer,materialActivation:e.materialActivation}}function Pn(e){let t=ve(e.manifest),n=Sr(e.materialActivations);if(!hr(t.keyFamilies,n.keyFamilies))throw Error(`wallet signer activation materials must match the signer manifest families`);if(gr(t)){if(!yr(n))throw Error(`Ed25519 signer activation requires one Ed25519 material activation`);return{kind:`wallet_signer_activation_set_v1`,keyFamilies:[`ed25519`],ed25519:Mn({signer:t.signers[0],materialActivation:n.ed25519})}}if(_r(t)){if(!br(n))throw Error(`ECDSA signer activation requires one ECDSA material activation`);return{kind:`wallet_signer_activation_set_v1`,keyFamilies:[`ecdsa_secp256k1`],ecdsa:Nn({signer:t.signers[0],materialActivation:n.ecdsa})}}if(!vr(t)||!xr(n))throw Error(`wallet signer activation set has unsupported families`);if(n.ed25519.activationId===n.ecdsa.activationId)throw Error(`wallet signer activation references must be distinct`);return{kind:`wallet_signer_activation_set_v1`,keyFamilies:[`ed25519`,`ecdsa_secp256k1`],ed25519:Mn({signer:t.signers[0],materialActivation:n.ed25519}),ecdsa:Nn({signer:t.signers[1],materialActivation:n.ecdsa})}}function Fn(e){try{let t=u(e,`WalletSignerActivationSetV1`);if(t.kind!==`wallet_signer_activation_set_v1`)return Q(`wallet signer activation set kind is unsupported`);if(!Object.prototype.hasOwnProperty.call(t,`keyFamilies`))return Q(`WalletSignerActivationSetV1.keyFamilies is required`);let n=mr(t.keyFamilies,`WalletSignerActivationSetV1.keyFamilies`);if(n.length===1&&n[0]===`ed25519`)return q(t,[`kind`,`keyFamilies`,`ed25519`],`WalletSignerActivationSetV1`),{ok:!0,value:{kind:`wallet_signer_activation_set_v1`,keyFamilies:[`ed25519`],ed25519:nr(t.ed25519,`ed25519`)}};if(n.length===1&&n[0]===`ecdsa_secp256k1`)return q(t,[`kind`,`keyFamilies`,`ecdsa`],`WalletSignerActivationSetV1`),{ok:!0,value:{kind:`wallet_signer_activation_set_v1`,keyFamilies:[`ecdsa_secp256k1`],ecdsa:rr(t.ecdsa,`ecdsa`)}};q(t,[`kind`,`keyFamilies`,`ed25519`,`ecdsa`],`WalletSignerActivationSetV1`);let r=nr(t.ed25519,`ed25519`),i=rr(t.ecdsa,`ecdsa`);return r.materialActivation.activationId===i.materialActivation.activationId?Q(`wallet signer activation references must be distinct`):{ok:!0,value:{kind:`wallet_signer_activation_set_v1`,keyFamilies:[`ed25519`,`ecdsa_secp256k1`],ed25519:r,ecdsa:i}}}catch(e){return Q(Er(e,`wallet signer activation set is invalid`))}}function In(e){let t=[v(`seams/wallet-signer-activation-set/v1`,`domain`),v(e.kind,`kind`),ce(e.keyFamilies.length,`keyFamilies`)];for(let n of e.keyFamilies)t.push(v(n,`keyFamilies.item`));return(Cr(e)||Tr(e))&&t.push(b(ar(e.ed25519),`ed25519`)),(wr(e)||Tr(e))&&t.push(b(or(e.ecdsa),`ecdsa`)),y(t)}async function Ln(e){return re(_(await d(In(e))))}function Rn(e){return{kind:`wallet_authority_v1`,authorityId:e.authorityId,walletId:e.walletId,principal:e.principal,provenance:e.provenance,permissions:e.permissions,signerActivations:e.signerActivations,signerActivationSetDigestB64u:e.signerActivationSetDigestB64u,authorityDigestB64u:e.authorityDigestB64u,revocationEpoch:e.revocationEpoch,createdAtMs:e.createdAtMs,updatedAtMs:e.updatedAtMs}}function zn(e){return Zn(e),{...Rn(e),state:`pending_local_install`,localInstallPackageSetDigestB64u:e.localInstallPackageSetDigestB64u}}function Bn(e){return Zn(e),{...Rn(e),state:`active`,activatedAtMs:e.activatedAtMs}}async function Vn(e){let t=e.authority.signerActivations;if(!t.ed25519)throw Error(`active Wallet Authority has no Ed25519 material activation to replace`);let n=t.ecdsa?Pn({manifest:_e([t.ed25519.signer,t.ecdsa.signer]),materialActivations:{keyFamilies:[`ed25519`,`ecdsa_secp256k1`],ed25519:e.materialActivation,ecdsa:t.ecdsa.materialActivation}}):Pn({manifest:_e([t.ed25519.signer]),materialActivations:{keyFamilies:[`ed25519`],ed25519:e.materialActivation}}),r=await Ln(n),i={kind:e.authority.kind,authorityId:e.authority.authorityId,walletId:e.authority.walletId,principal:e.authority.principal,provenance:e.authority.provenance,permissions:e.authority.permissions,signerActivations:n,signerActivationSetDigestB64u:r,authorityDigestB64u:e.authority.authorityDigestB64u,revocationEpoch:e.authority.revocationEpoch,createdAtMs:e.authority.createdAtMs,updatedAtMs:Math.max(e.authority.updatedAtMs,e.updatedAtMs),state:`active`,activatedAtMs:e.authority.activatedAtMs};return Bn({...i,authorityDigestB64u:await qn(i)})}function Hn(e){return Zn(e),{...Rn(e),state:`active`,activatedAtMs:e.activatedAtMs}}function Un(e){return Zn(e),{...Rn(e),state:`revoked`,activatedAtMs:e.activatedAtMs,revokedAtMs:e.revokedAtMs}}const Wn=[`kind`,`authorityId`,`walletId`,`principal`,`provenance`,`permissions`,`signerActivations`,`signerActivationSetDigestB64u`,`authorityDigestB64u`,`revocationEpoch`,`createdAtMs`,`updatedAtMs`,`state`];function Gn(e){try{let t=u(e,`WalletAuthorityV1`),n=Xn(t);switch(t.state){case`pending_local_install`:return q(t,[...Wn,`localInstallPackageSetDigestB64u`],`WalletAuthorityV1`),{ok:!0,value:zn({kind:`wallet_authority_v1`,...n,state:`pending_local_install`,localInstallPackageSetDigestB64u:J(t.localInstallPackageSetDigestB64u,`localInstallPackageSetDigestB64u`)})};case`active`:return q(t,[...Wn,`activatedAtMs`],`WalletAuthorityV1`),{ok:!0,value:Bn({kind:`wallet_authority_v1`,...n,state:`active`,activatedAtMs:Y(t.activatedAtMs,`activatedAtMs`)})};case`revoked`:return q(t,[...Wn,`activatedAtMs`,`revokedAtMs`],`WalletAuthorityV1`),{ok:!0,value:Un({kind:`wallet_authority_v1`,...n,state:`revoked`,activatedAtMs:Y(t.activatedAtMs,`activatedAtMs`),revokedAtMs:Y(t.revokedAtMs,`revokedAtMs`)})};default:return Q(`WalletAuthorityV1.state is unsupported`)}}catch(e){return Q(Er(e,`wallet authority is invalid`))}}function Kn(e){return y([v(`seams/wallet-authority/v1`,`domain`),v(e.kind,`kind`),v(e.authorityId,`authorityId`),v(e.walletId,`walletId`),b(ur(e.principal),`principal`),b(dr(e.provenance),`provenance`),b(fr(e.permissions),`permissions`),oe(e.signerActivationSetDigestB64u,`signerActivationSetDigestB64u`),v(e.state,`state`),fe(e.revocationEpoch,`revocationEpoch`)])}async function qn(e){return re(_(await d(Kn(e))))}async function Jn(e){return await Ln(e.signerActivations)===e.signerActivationSetDigestB64u?await qn(e)===e.authorityDigestB64u:!1}async function Yn(e,t){let[n,r]=await Promise.all([Jn(e),Jn(t)]);return n&&r&&e.authorityDigestB64u===t.authorityDigestB64u&&e.signerActivationSetDigestB64u===t.signerActivationSetDigestB64u&&e.createdAtMs===t.createdAtMs&&e.updatedAtMs===t.updatedAtMs&&e.activatedAtMs===t.activatedAtMs}function Xn(e){if(e.kind!==`wallet_authority_v1`)throw Error(`WalletAuthorityV1.kind is unsupported`);let t=Z(n(e.authorityId),`authorityId`),r=Z(s(e.walletId),`walletId`),i=Qn(e.principal),a=$n(e.provenance),o=Z(ee(e.permissions),`permissions`),c=Z(Fn(e.signerActivations),`signerActivations`),l=J(e.signerActivationSetDigestB64u,`signerActivationSetDigestB64u`),u=J(e.authorityDigestB64u,`authorityDigestB64u`),d=Y(e.revocationEpoch,`revocationEpoch`),f=Y(e.createdAtMs,`createdAtMs`),p=Y(e.updatedAtMs,`updatedAtMs`);return tr(c,r),{authorityId:t,walletId:r,principal:i,provenance:a,permissions:o,signerActivations:c,signerActivationSetDigestB64u:l,authorityDigestB64u:u,revocationEpoch:d,createdAtMs:f,updatedAtMs:p}}function Zn(e){if(e.kind!==`wallet_authority_v1`)throw Error(`wallet authority kind is unsupported`);if(!Number.isSafeInteger(e.revocationEpoch)||e.revocationEpoch<0)throw Error(`wallet authority revocationEpoch must be a non-negative safe integer`);if(X(e.createdAtMs,`createdAtMs`),X(e.updatedAtMs,`updatedAtMs`),e.updatedAtMs<e.createdAtMs)throw Error(`wallet authority updatedAtMs cannot precede createdAtMs`);switch(J(e.signerActivationSetDigestB64u,`signerActivationSetDigestB64u`),J(e.authorityDigestB64u,`authorityDigestB64u`),tr(e.signerActivations,e.walletId),er(e.provenance),e.state){case`pending_local_install`:J(e.localInstallPackageSetDigestB64u,`localInstallPackageSetDigestB64u`);break;case`active`:X(e.activatedAtMs,`activatedAtMs`);break;case`revoked`:if(X(e.activatedAtMs,`activatedAtMs`),X(e.revokedAtMs,`revokedAtMs`),e.revokedAtMs<e.activatedAtMs)throw Error(`revokedAtMs cannot precede activatedAtMs`);break}}function Qn(e){let t=pr(e,[`kind`,`deviceId`],`WalletAuthorityPrincipalV1`);if(t.kind!==`owner_device`)throw Error(`wallet authority principal kind is unsupported`);return{kind:`owner_device`,deviceId:Z(ne(t.deviceId),`deviceId`)}}function $n(e){let t=u(e,`WalletAuthorityProvenanceV1`);switch(t.kind){case`wallet_registration`:return q(t,[`kind`],`WalletAuthorityProvenanceV1`),{kind:`wallet_registration`};case`device_link`:return q(t,[`kind`,`enrollmentId`,`sourceAuthorityId`,`linkSessionId`],`WalletAuthorityProvenanceV1`),{kind:`device_link`,enrollmentId:Z(r(t.enrollmentId),`enrollmentId`),sourceAuthorityId:Z(n(t.sourceAuthorityId),`sourceAuthorityId`),linkSessionId:Z(c(t.linkSessionId),`linkSessionId`)};case`wallet_recovery`:return q(t,[`kind`,`recoveryOperationId`,`continuityAuthorityId`],`WalletAuthorityProvenanceV1`),{kind:`wallet_recovery`,recoveryOperationId:Z(o(t.recoveryOperationId),`recoveryOperationId`),continuityAuthorityId:Z(n(t.continuityAuthorityId),`continuityAuthorityId`)};default:throw Error(`wallet authority provenance kind is unsupported`)}}function er(e){switch(e.kind){case`wallet_registration`:return;case`device_link`:if(!e.enrollmentId||!e.sourceAuthorityId||!e.linkSessionId)throw Error(`device-link provenance requires every audit identity`);return;case`wallet_recovery`:if(!e.recoveryOperationId||!e.continuityAuthorityId)throw Error(`wallet-recovery provenance requires every audit identity`);return}Dr(e,`wallet authority provenance`)}function tr(e,t){if(Cr(e)){if(e.ed25519.signer.walletId!==t)throw Error(`Ed25519 signer activation uses a different wallet id`);return}if(wr(e)){if(e.ecdsa.signer.walletId!==t)throw Error(`ECDSA signer activation uses a different wallet id`);return}if(Tr(e)){if(e.ed25519.signer.walletId!==t||e.ecdsa.signer.walletId!==t)throw Error(`signer activations must use the authority wallet id`);return}throw Error(`wallet signer activation families are unsupported`)}function nr(e,t){let n=pr(e,[`kind`,`signer`,`materialActivation`],t);if(n.kind!==`wallet_ed25519_signer_activation_v1`)throw Error(`${t}.kind is invalid`);let r=ir(n.signer,`ed25519`,`${t}.signer`);if(!gr(r))throw Error(`${t}.signer is not Ed25519`);return Mn({signer:r.signers[0],materialActivation:Z(i(n.materialActivation),`${t}.materialActivation`)})}function rr(e,t){let n=pr(e,[`kind`,`signer`,`materialActivation`],t);if(n.kind!==`wallet_ecdsa_signer_activation_v1`)throw Error(`${t}.kind is invalid`);let r=ir(n.signer,`ecdsa_secp256k1`,`${t}.signer`);if(!_r(r))throw Error(`${t}.signer is not ECDSA`);return Nn({signer:r.signers[0],materialActivation:Z(i(n.materialActivation),`${t}.materialActivation`)})}function ir(e,t,n){return ve({kind:`exact_administered_signer_manifest_v1`,keyFamilies:[t],signers:[e]})}function ar(e){return y([v(e.kind,`ed25519.kind`),b(sr(e.signer),`ed25519.signer`),b(lr(e.materialActivation),`ed25519.materialActivation`)])}function or(e){return y([v(e.kind,`ecdsa.kind`),b(cr(e.signer),`ecdsa.signer`),b(lr(e.materialActivation),`ecdsa.materialActivation`)])}function sr(e){return y([v(e.kind,`ed25519.signer.kind`),v(e.keyFamily,`ed25519.signer.keyFamily`),v(e.walletId,`ed25519.signer.walletId`),v(e.walletKeyId,`ed25519.signer.walletKeyId`),b(se(e.registeredPublicKeyB64u,`ed25519.signer.registeredPublicKeyB64u`),`ed25519.signer.registeredPublicKeyB64u`)])}function cr(e){return y([v(e.kind,`ecdsa.signer.kind`),v(e.keyFamily,`ecdsa.signer.keyFamily`),v(e.walletId,`ecdsa.signer.walletId`),v(e.walletKeyId,`ecdsa.signer.walletKeyId`),b(se(e.thresholdPublicKey33B64u,`ecdsa.signer.thresholdPublicKey33B64u`),`ecdsa.signer.thresholdPublicKey33B64u`),v(e.evmAddress,`ecdsa.signer.evmAddress`)])}function lr(e){return y([v(e.kind,`materialActivation.kind`),v(e.activationId,`materialActivation.activationId`),v(e.capability,`materialActivation.capability`),v(e.materialOwner,`materialActivation.materialOwner`),v(e.keyBinding,`materialActivation.keyBinding`),v(e.lifecycleBinding,`materialActivation.lifecycleBinding`),v(e.signingWorker,`materialActivation.signingWorker`)])}function ur(e){return y([v(e.kind,`principal.kind`),v(e.deviceId,`principal.deviceId`)])}function dr(e){switch(e.kind){case`wallet_registration`:return v(e.kind,`provenance.kind`);case`device_link`:return y([v(e.kind,`provenance.kind`),v(e.enrollmentId,`provenance.enrollmentId`),v(e.sourceAuthorityId,`provenance.sourceAuthorityId`),v(e.linkSessionId,`provenance.linkSessionId`)]);case`wallet_recovery`:return y([v(e.kind,`provenance.kind`),v(e.recoveryOperationId,`provenance.recoveryOperationId`),v(e.continuityAuthorityId,`provenance.continuityAuthorityId`)])}return Dr(e,`wallet authority provenance`)}function fr(e){let t=[ce(e.length,`permissions`)];for(let n of e)t.push(b(v(n,`permissions.item`),`permissions.item`));return y(t)}function pr(e,t,n){let r=u(e,n);return q(r,t,n),r}function q(e,t,n){let r=new Set(t),i=Object.keys(e);if(i.length!==t.length)throw Error(`${n} contains unexpected fields`);for(let e of i)if(!r.has(e))throw Error(`${n}.${e} is not allowed`);for(let r of t)if(!Object.prototype.hasOwnProperty.call(e,r))throw Error(`${n}.${r} is required`)}function mr(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);if(e.length===1&&e[0]===`ed25519`)return[`ed25519`];if(e.length===1&&e[0]===`ecdsa_secp256k1`)return[`ecdsa_secp256k1`];if(e.length===2&&e[0]===`ed25519`&&e[1]===`ecdsa_secp256k1`)return[`ed25519`,`ecdsa_secp256k1`];throw Error(`${t} must use canonical family order`)}function hr(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function gr(e){return e.keyFamilies.length===1&&e.keyFamilies[0]===`ed25519`}function _r(e){return e.keyFamilies.length===1&&e.keyFamilies[0]===`ecdsa_secp256k1`}function vr(e){return e.keyFamilies.length===2}function yr(e){return e.keyFamilies.length===1&&e.keyFamilies[0]===`ed25519`}function br(e){return e.keyFamilies.length===1&&e.keyFamilies[0]===`ecdsa_secp256k1`}function xr(e){return e.keyFamilies.length===2}function Sr(e){if(yr(e))return{keyFamilies:[`ed25519`],ed25519:Z(i(e.ed25519),`materialActivations.ed25519`)};if(br(e))return{keyFamilies:[`ecdsa_secp256k1`],ecdsa:Z(i(e.ecdsa),`materialActivations.ecdsa`)};if(xr(e))return{keyFamilies:[`ed25519`,`ecdsa_secp256k1`],ed25519:Z(i(e.ed25519),`materialActivations.ed25519`),ecdsa:Z(i(e.ecdsa),`materialActivations.ecdsa`)};throw Error(`wallet signer activation materials are unsupported`)}function Cr(e){return e.keyFamilies.length===1&&e.keyFamilies[0]===`ed25519`}function wr(e){return e.keyFamilies.length===1&&e.keyFamilies[0]===`ecdsa_secp256k1`}function Tr(e){return e.keyFamilies.length===2}function J(e,t){try{return re(e)}catch(e){throw Error(`${t} ${Er(e,`is invalid`)}`)}}function Y(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`);return e}function X(e,t){if(!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative safe integer`)}function Z(e,t){if(e.ok)return e.value;throw Error(`${t} ${e.error.message}`)}function Q(e){return{ok:!1,error:{code:`invalid`,message:e}}}function Er(e,t){return e instanceof Error?e.message:t}function Dr(e,t){throw Error(`${t} branch is unsupported: ${String(e)}`)}async function Or(e,t,n){let r=await Ln(t),i={kind:`wallet_authority_v1`,authorityId:e.authorityId,walletId:e.walletId,principal:e.principal,provenance:e.provenance,permissions:e.permissions,signerActivations:t,signerActivationSetDigestB64u:r,authorityDigestB64u:e.authorityDigestB64u,revocationEpoch:e.revocationEpoch,createdAtMs:e.createdAtMs,updatedAtMs:Math.max(e.updatedAtMs,n),state:`active`,activatedAtMs:e.activatedAtMs};return Hn({...i,authorityDigestB64u:await qn(i)})}async function kr(e){if(e.ed25519.signer.walletId!==e.authority.walletId)throw Error(`NEAR signer belongs to a different wallet authority`);let t=e.authority.signerActivations.ecdsa,n=e.ed25519.signer,r=Pn({manifest:_e([n,t.signer]),materialActivations:{keyFamilies:[`ed25519`,`ecdsa_secp256k1`],ed25519:e.ed25519.materialActivation,ecdsa:t.materialActivation}});if(!On(r))throw Error(`Deferred Ed25519 activation did not produce a combined signer activation set`);return Or(e.authority,r,e.now)}function Ar(e,t){return e.authorityId===t.authorityId&&e.walletId===t.walletId&&e.revocationEpoch===t.revocationEpoch&&e.createdAtMs===t.createdAtMs&&e.activatedAtMs===t.activatedAtMs&&_(ur(e.principal))===_(ur(t.principal))&&_(dr(e.provenance))===_(dr(t.provenance))&&_(fr(e.permissions))===_(fr(t.permissions))}function jr(e,t){return An(e)&&On(t.signerActivations)&&Ar(e,t)&&_(ar(e.signerActivations.ed25519))===_(ar(t.signerActivations.ed25519))}function Mr(e,t){return kn(e)&&On(t.signerActivations)&&e.provenance.kind===`wallet_registration`&&Ar(e,t)&&_(or(e.signerActivations.ecdsa))===_(or(t.signerActivations.ecdsa))}function Nr(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function $(e){return typeof e==`string`?e.trim():``}function Pr(e,t){let n=$(e);return n?{ok:!0,value:n}:{ok:!1,error:{code:`missing`,message:`${t} is required`}}}function Fr(e){let t=typeof e==`number`?e:Number(e);return!Number.isSafeInteger(t)||t<1?{ok:!1,error:{code:`invalid`,message:`signerSlot must be an integer >= 1`}}:{ok:!0,value:t}}function Ir(e){return{ok:!1,error:{code:`invalid`,message:`${e} must be an object`}}}function Lr(e){let n=t(e);return n.ok?{ok:!0,value:n.value}:{ok:!1,error:n.error}}function Rr(e){let t=Nr(e);if(!t)return Ir(`WalletIdentity`);let n=s(t.walletId);return n.ok?{ok:!0,value:{walletId:n.value}}:{ok:!1,error:n.error}}function zr(e){return{walletId:e.walletId}}function Br(e){return{wallet:e.wallet,rpId:e.rpId}}function Vr(e){let t=$(e.credentialIdB64u);if(!t)throw Error(`credentialIdB64u is required`);return{kind:`passkey`,walletAuthMethodId:e.walletAuthMethodId,scope:e.scope,credentialIdB64u:t}}function Hr(e){let t=$(e.emailHashHex),n=$(e.registrationAuthorityId);if(!t)throw Error(`emailHashHex is required`);if(!n)throw Error(`registrationAuthorityId is required`);return{kind:`email_otp`,walletAuthMethodId:e.walletAuthMethodId,wallet:e.wallet,emailHashHex:t,registrationAuthorityId:n}}function Ur(e){return{kind:`voiceid`,walletAuthMethodId:e.walletAuthMethodId,wallet:e.wallet,deviceKeyId:e.deviceKeyId}}function Wr(e){return{kind:`implicit_near_account`,wallet:e.wallet,nearAccountId:e.nearAccountId}}function Gr(e){return{kind:`named_near_account`,wallet:e.wallet,nearAccountId:e.nearAccountId}}function Kr(e){let t=Nr(e);if(!t)return Ir(`NearAccountBinding`);let n=Rr(t.wallet);if(!n.ok)return n;let r=$(t.kind);if(r===`implicit_near_account`){let e=ae(t.nearAccountId);return e.ok?{ok:!0,value:Wr({wallet:n.value,nearAccountId:e.value})}:{ok:!1,error:{code:e.code,message:e.message}}}if(r===`named_near_account`){let e=ie(t.nearAccountId);return e.ok?{ok:!0,value:Gr({wallet:n.value,nearAccountId:e.value})}:{ok:!1,error:{code:e.code,message:e.message}}}return{ok:!1,error:{code:`invalid`,message:`NearAccountBinding kind is invalid`}}}function qr(e){let t=Fr(e.signerSlot);if(!t.ok)throw Error(t.error.message);return{kind:`near_ed25519_signer`,account:e.account,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:t.value}}function Jr(e){let t=Nr(e);if(!t)return Ir(`NearEd25519SignerBinding`);let n=Kr(t.account);if(!n.ok)return n;let r=Pr(t.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`);if(!r.ok)return r;let i=Fr(t.signerSlot);return i.ok?{ok:!0,value:qr({account:n.value,nearEd25519SigningKeyId:pe(r.value),signerSlot:i.value})}:i}export{Ut as $,tn as A,Ie as B,Vn as C,cn as D,gn as E,Ve as F,j as G,Pe as H,He as I,Ft as J,ut as K,Le as L,xn as M,Cn as N,Qt as O,Be as P,Bt as Q,Fe as R,Fn as S,Jn as T,ze as U,Ne as V,L as W,Lt as X,It as Y,N as Z,jn as _,Br as a,Gt as at,Mr as b,zr as c,We as ct,qn as d,Me as dt,qt as et,Ln as f,ve as ft,An as g,kn as h,qr as i,Ht as it,$t as j,nn as k,Jr as l,D as lt,kr as m,Wr as n,Nt as nt,Vr as o,Mt as ot,In as p,Jt as q,Gr as r,zt as rt,Ur as s,Pt as st,Hr as t,Kt as tt,Lr as u,Je as ut,On as v,Yn as w,Gn as x,jr as y,Re as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{V as e,i as t}from"./domainIds-t1lp25yU.js";import{X as n}from"./activeWalletSession-H9JBdHyQ.js";import{i as r}from"./base64-BmKR3UqU.js";import{r as i}from"./secureRandomId-8LSc91aN.js";import{i as a,r as o}from"./canonicalPrimitives-B6YMrI3W.js";import{n as s}from"./presignatures-B9GrGx0L.js";import{Bt as c,C as l,Gt as u,Kt as d,ct as f,dn as p,en as m,et as h,in as g,p as _,rn as v,w as y}from"./emailOtpEcdsaDerivationIdentity-CIh9IPai.js";import{A as b,B as x,C as S,I as C,M as w,a as T,h as E,i as D,j as O,o as k,r as A,z as j}from"./ecdsaCapabilityManifest--FjbES8k.js";import{d as M,f as N,i as P,p as F}from"./indexedDB-C1odKEC6.js";import{F as I,N as L,P as R}from"./walletOwnershipGeneration-DI9ogcXF.js";import{i as z,n as B}from"./profileAccountProjection-D01e10UY.js";import{M as V,N as H,P as U}from"./accountLifecycle-B98g9zN9.js";async function W(t,n){let r=e(n.explicitProfileId||``),i=e(n.explicitChainIdKey||``).toLowerCase(),a=e(n.explicitAccountAddress||``).toLowerCase();if(r||i||a){if(!r||!i||!a)throw Error(`IndexedDBManager: profileId, chainIdKey, and accountAddress are required for explicit key target writes`);let o=n.accountRefs.find(t=>e(t.chainIdKey||``).toLowerCase()===i);if(o){let e=await t.resolveProfileAccountContext(o).catch(()=>null);if(e?.profileId&&String(e.profileId).trim()!==r)throw Error(`IndexedDBManager: Explicit key target (${r}, ${i}, ${o.accountAddress}) mismatches mapped profile ${String(e.profileId).trim()}`)}return{profileId:r,chainIdKey:i,accountAddress:a}}let o=await B(t,n.accountRefs);return o?.profileId?{profileId:o.profileId,chainIdKey:o.accountRef.chainIdKey,accountAddress:o.accountRef.accountAddress}:null}async function G(e){let t=await W(e.deps.clientDB,{accountRefs:e.accountRefs});return!t?.profileId||!t.chainIdKey?null:e.deps.keyMaterialStore.getKeyMaterial(t.profileId,e.signerSlot,t.chainIdKey,e.keyKind)}async function K(t,n){if(!Number.isSafeInteger(n.signerSlot)||n.signerSlot<1)throw Error(`IndexedDBManager: Invalid signerSlot for key write`);let r=e(n.keyKind||``);if(!r)throw Error(`IndexedDBManager: Missing keyKind for key write`);let i=e(n.algorithm||``).toLowerCase();if(!i)throw Error(`IndexedDBManager: Missing algorithm for key write`);let a=e(n.publicKey||``);if(!a)throw Error(`IndexedDBManager: Missing publicKey for key write`);let o=e(n.signerId||``);if(!o)throw Error(`IndexedDBManager: Missing signerId for key write`);let s=await W(t.clientDB,n);if(!s?.profileId||!s.chainIdKey||!s.accountAddress)throw Error(`IndexedDBManager: Missing profile/account mapping for key write. Persist profile/account first or pass explicit profileId + chainIdKey.`);let c=Number.isSafeInteger(n.schemaVersion)&&typeof n.schemaVersion==`number`&&n.schemaVersion>=1?n.schemaVersion:1,l={profileId:s.profileId,signerSlot:n.signerSlot,chainIdKey:s.chainIdKey,accountAddress:s.accountAddress,keyKind:r,algorithm:i,publicKey:a,signerId:o,timestamp:typeof n.timestamp==`number`?n.timestamp:Date.now(),schemaVersion:c},u=e(n.wrapKeySalt||``);u&&(l.wrapKeySalt=u),n.payload&&(l.payload=n.payload),await t.keyMaterialStore.storeKeyMaterial(l)}async function q(e){let t=await W(e.store,{accountRefs:z(e.binding.nearAccountId)});if(!t)throw Error(`Wallet custody Ed25519 material requires a persisted wallet profile`);await e.store.storeKeyMaterial(U({target:t,...e}))}async function J(e){let t=await W(e.store,{accountRefs:z(e.nearAccountId)});t&&await e.store.deleteKeyMaterial(t.profileId,e.signerSlot,t.chainIdKey,V)}async function Y(e){let t=await G({deps:{clientDB:e.store,keyMaterialStore:e.store},accountRefs:z(e.nearAccountId),signerSlot:e.signerSlot,keyKind:V});if(!t)return{kind:`absent`};let n=t.payloadEnvelope;if(!n?.ciphertext||!n.nonce)return{kind:`unusable`,reason:`cached custody material has no sealed payload`};if(n.alg!==`chacha20poly1305-hkdf-sha256-wallet-custody-seed-v1`)return{kind:`unusable`,reason:`cached custody material was sealed under another key`};let r=t.payload?.binding;if(!r||typeof r!=`object`)return{kind:`unusable`,reason:`cached custody material has no binding`};let i=r;if(i.kind!==`wallet_custody_ed25519_active_client_v1`)return{kind:`unusable`,reason:`cached custody material is not a wallet custody record`};try{H(i)}catch(e){return{kind:`unusable`,reason:e instanceof Error?e.message:`cached custody binding is incomplete`}}let a=String(e.expectedRegisteredPublicKeyB64u||``).trim();return a&&a!==String(i.registeredPublicKeyB64u||``).trim()?{kind:`unusable`,reason:`cached custody material is for another key set`}:{kind:`found`,material:{binding:i,sealed:{ciphertextB64u:n.ciphertext,nonceB64u:n.nonce}}}}function X(e){let s=c(e.authority);if(!s||String(s.walletId)!==String(e.walletId))throw Error(`ECDSA custody import authority is invalid`);let M=h(e.publicCapability),N=f(e.activationReceipt),P=p(N.ecdsa_activation.material_activation);if(!t(P,p(M.material_activation)))throw Error(`ECDSA custody continuity changed the material activation`);let F=[y(e.participantIds[0]),y(e.participantIds[1])],I=k({keyHandle:j(e.keyHandle),ecdsaThresholdKeyId:C(e.ecdsaThresholdKeyId),clientVerifyingPublicKey33B64u:b(e.publicFacts.derivationClientSharePublicKey33B64u),participantIds:F,relayerKeyId:x(e.relayerKeyId)}),L=E({capability:P.capability,signerId:m(i(`ecdsa-signer`,32,`ECDSA custody signer identities`)),authority:s,scope:D({targetMemberships:e.chainTargets}),materialOwner:P.materialOwner,signingRootId:v(e.signingRootId),signingRootVersion:g(e.signingRootVersion)}),R=A({targetManifest:T({manifestId:u(i(`ecdsa-manifest`,32,`ECDSA custody manifest identities`)),manifestRevision:d(1)}),signer:L,roleLocalBinding:I,bindingDigest:O(e.publicFacts.contextBinding32B64u),durableMaterialRef:w(i(`ecdsa-role-local-material`,32,`ECDSA custody material identities`))}),z=e.publicFacts.ethereumAddress,B=_({keyHandle:l(e.keyHandle),publicKeyB64u:e.publicFacts.groupPublicKey33B64u,participantIds:F,thresholdOwnerAddress:z}),V=S({walletId:s.walletId,chainTarget:e.chainTargets[0],keyHandle:I.keyHandle,ecdsaThresholdKeyId:I.ecdsaThresholdKeyId,signingRootId:L.signingRootId,signingRootVersion:L.signingRootVersion,applicationBindingDigestB64u:M.context.application_binding_digest_b64u,clientParticipantId:F[0],relayerParticipantId:F[1],participantIds:F,contextBinding32B64u:e.publicFacts.contextBinding32B64u,derivationClientSharePublicKey33B64u:e.publicFacts.derivationClientSharePublicKey33B64u,relayerPublicKey33B64u:e.publicFacts.relayerPublicKey33B64u,groupPublicKey33B64u:e.publicFacts.groupPublicKey33B64u,ethereumAddress:z,publicCapability:M}),H={kind:`router_ab_ecdsa_derivation_normal_signing_v1`,scope:{wallet_id:String(s.walletId),ecdsa_threshold_key_id:String(I.ecdsaThresholdKeyId),signing_root_id:String(L.signingRootId),signing_root_version:String(L.signingRootVersion),context:N.ecdsa_activation.context,public_identity:N.ecdsa_activation.public_identity,material_activation:N.ecdsa_activation.material_activation,signing_worker:N.ecdsa_activation.signing_worker,activation_epoch:N.ecdsa_activation.activation_epoch}};return{activationBinding:R,serverCommit:{correlationId:N.activation_correlation_id,activationRequestDigest:o(r(Uint8Array.from(N.activation_request_digest.bytes))),serverGeneration:N.server_generation,protocolReceipt:N},readyStateBlobB64u:e.readyStateBlobB64u,registeredPublicFacts:B,roleLocalPublicFacts:V,routerAbEcdsaDerivationNormalSigning:H,runtimePolicyScope:n(e.runtimePolicyScope),committedAt:a(new Date(N.ecdsa_activation.activated_at_ms).toISOString())}}async function Z(e){return F(X(e))}async function Q(e){return await N(e.store,X(e),t=>e.store.persistPreparedWalletCustodyEcdsaContinuity(t))}async function $(e){let t=new P(s);for(let n of e.walletAuthMethodIds){let r=await t.getWalletAuthMethodV2(String(n));if(!r||r.status!==`active`||r.walletId!==e.walletId||r.walletAuthorityId!==e.walletAuthorityId)throw Error(`ECDSA custody continuity method ${String(n)} is not an active member of the wallet authority`)}}async function ee(e){if(e.targetAuthority.walletId!==e.walletId||e.targetAuthority.walletAuthMethodId===e.sourceWalletAuthMethodId)throw Error(`ECDSA custody continuity target is invalid`);await $({walletId:e.walletId,walletAuthorityId:e.walletAuthorityId,walletAuthMethodIds:[e.sourceWalletAuthMethodId,e.targetAuthority.walletAuthMethodId]});let t=new M,n=await t.listActiveWalletCapabilitySubjects(e.walletId);if(n.kind!==`resolved`)throw Error(`ECDSA custody continuity inventory is ${n.kind}`);if(n.subjects.length===0)return;let r=n.subjects.filter(t=>t.authority.walletAuthMethodId===e.sourceWalletAuthMethodId);if(r.length===0)throw Error(`ECDSA custody continuity found no active capability for source method ${String(e.sourceWalletAuthMethodId)} among [${n.subjects.map(e=>String(e.authority.walletAuthMethodId)).join(`, `)}]`);for(let n of r){let r=await t.lookup(n);if(r.kind!==`active`)throw Error(`ECDSA custody continuity source is ${r.kind}`);let i={capability:n.capability,authority:e.targetAuthority},a=await t.lookup(i);if(a.kind===`active`){let e=a.manifest.durableMaterial,t=r.manifest.durableMaterial;if(e.activationDigest!==t.activationDigest||e.bindingDigest!==t.bindingDigest||e.roleLocalBinding.ecdsaThresholdKeyId!==t.roleLocalBinding.ecdsaThresholdKeyId||!R(e.roleLocalBinding,t.roleLocalBinding)||!I(e.roleLocalPublicFacts,t.roleLocalPublicFacts)||!L(a.manifest.signer.registeredPublicFacts,r.manifest.signer.registeredPublicFacts))throw Error(`ECDSA custody continuity target conflicts with source material`);continue}if(a.kind!==`missing`)throw Error(`ECDSA custody continuity target is ${a.kind}`);let o=await t.openActiveMaterialLookup(r);if(o.kind!==`active`)throw Error(`ECDSA custody continuity material is ${o.kind}`);let s=o.manifest,c=s.durableMaterial.roleLocalPublicFacts,l=await Q({store:t,authority:e.targetAuthority,chainTargets:s.signer.scope.targetMemberships,walletId:String(e.walletId),keyHandle:c.keyHandle,ecdsaThresholdKeyId:String(c.ecdsaThresholdKeyId),signingRootId:String(c.signingRootId),signingRootVersion:String(c.signingRootVersion),relayerKeyId:String(s.durableMaterial.roleLocalBinding.relayerKeyId),participantIds:c.participantIds,publicCapability:c.publicCapability,activationReceipt:s.activation.serverActivation.serverActivationReceipt.protocolReceipt,runtimePolicyScope:s.durableMaterial.runtimePolicyScope,readyStateBlobB64u:o.readyStateBlobB64u,publicFacts:{contextBinding32B64u:c.contextBinding32B64u,derivationClientSharePublicKey33B64u:c.derivationClientSharePublicKey33B64u,clientVerifyingShare33B64u:c.publicCapability.public_identity.derivation_client_share_public_key33_b64u,relayerPublicKey33B64u:c.relayerPublicKey33B64u,groupPublicKey33B64u:c.groupPublicKey33B64u,ethereumAddress:c.ethereumAddress,clientShareRetryCounter:c.publicCapability.public_identity.client_share_retry_counter,relayerShareRetryCounter:c.publicCapability.public_identity.server_share_retry_counter}});if(l.kind!==`committed`)throw Error(`ECDSA custody continuity import is ${l.kind}`)}}export{Y as a,W as c,J as i,K as l,Q as n,q as o,Z as r,G as s,ee as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./chains-gV2K9gA4.js";import{o as t}from"./canonicalPrimitives-B6YMrI3W.js";async function n(n){return t(`seams:wallet-custody:challenge:v1|${e({walletId:n.walletId,operation:n.operation,payload:n.payload,requestOrigin:n.requestOrigin})}`)}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,u as t}from"./chains-gV2K9gA4.js";import{X as n,tt as r}from"./activeWalletSession-H9JBdHyQ.js";import{i}from"./base64-BmKR3UqU.js";import{r as a}from"./secureRandomId-8LSc91aN.js";function o(e){try{return n(e)}catch{return}}const s=864e5,c={ttlMs:s,remainingUses:3},l=3;function u(e){let t=Math.floor(Number(e.requestedRemainingUses)||0);return!Number.isFinite(t)||t<=0?null:Math.min(t,3)}function d(e){let t=Math.max(0,Math.floor(Number(e.ttlMs)||0)),n=Math.max(0,Math.floor(Number(e.remainingUses)||0));return{ttlMs:Math.min(t,2592e6),remainingUses:Math.min(n,1e6)}}function f(){return a(`tsess`,32,`threshold session IDs`)}async function p(n){return i(await t(e(n)))}async function m(e){return h({nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,authority:e.authority.authority,relayerKeyId:e.relayerKeyId,runtimePolicyScope:e.runtimePolicyScope,routerAbNormalSigning:e.routerAbNormalSigning,participantIds:e.participantIds,thresholdSessionId:e.thresholdSessionId,ttlMs:e.ttlMs,remainingUses:e.remainingUses})}async function h(e){let t=e.thresholdSessionId||f(),{ttlMs:n,remainingUses:i}=d({ttlMs:e.ttlMs??c.ttlMs,remainingUses:e.remainingUses??c.remainingUses}),a=r(e.participantIds),s=o(e.runtimePolicyScope),l={version:`threshold_session_v1`,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,authority:e.authority,relayerKeyId:e.relayerKeyId,thresholdSessionId:t,...s?{runtimePolicyScope:s}:{},routerAbNormalSigning:e.routerAbNormalSigning,...a?{participantIds:a}:{},ttlMs:n,remainingUses:i},u=await p(l);return{policy:l,policyJson:JSON.stringify(l),sessionPolicyDigest32:u}}const g=`seams_wallet`;export{m as a,u as c,l as i,c as n,d as o,s as r,o as s,g as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,i as r}from"./domainIds-t1lp25yU.js";import{E as i,c as a,k as o,l as s}from"./chains-gV2K9gA4.js";import{X as c}from"./activeWalletSession-H9JBdHyQ.js";import{i as l,r as u}from"./base64-BmKR3UqU.js";import{i as d,n as f,r as p}from"./canonicalPrimitives-B6YMrI3W.js";import{a as m,i as h,n as g}from"./presignatures-B9GrGx0L.js";import{a as ee}from"./ecdsaChainTarget-DbLthshF.js";import{$t as _,Bt as v,C as te,Ct as ne,Gt as y,Jt as b,Kt as x,Q as re,Qt as ie,St as ae,Tt as S,Ut as oe,Yt as C,Zt as w,_t as se,cn as ce,ct as le,en as ue,fn as de,in as fe,p as pe,pt as me,qt as T,rn as he,w as ge}from"./emailOtpEcdsaDerivationIdentity-CIh9IPai.js";import{A as E,B as _e,C as ve,I as ye,M as be,P as xe,_ as Se,a as D,b as O,c as Ce,d as we,f as Te,g as Ee,h as De,i as Oe,j as k,l as ke,m as A,n as Ae,o as je,p as j,r as Me,s as Ne,t as Pe,u as Fe,v as Ie,z as Le}from"./ecdsaCapabilityManifest--FjbES8k.js";const M=`seams/router-ab-ecdsa-presign/fixed-2of2/v1`;function N(e,t){if(typeof e!=`string`||!e)throw Error(`${t} is required`);if(e.trim()!==e)throw Error(`${t} must be canonical`);return e}function P(e){if(typeof e!=`object`||!e)throw Error(`poolIdentity is required`);let t=e;if(!Number.isSafeInteger(t.ownershipGeneration)||Number(t.ownershipGeneration)<1)throw Error(`poolIdentity.ownershipGeneration must be a positive safe integer`);if(t.pairRole!==`client`)throw Error(`poolIdentity.pairRole must be client`);if(t.protocolId!==`seams/router-ab-ecdsa-presign/fixed-2of2/v1`)throw Error(`poolIdentity.protocolId is unsupported`);let n=N(t.relayerUrl,`poolIdentity.relayerUrl`);if(n.replace(/\/+$/g,``)!==n)throw Error(`poolIdentity.relayerUrl must be canonical`);return{ownershipGeneration:Number(t.ownershipGeneration),relayerUrl:n,materialActivationB64u:N(t.materialActivationB64u,`poolIdentity.materialActivationB64u`),materialActivationId:N(t.materialActivationId,`poolIdentity.materialActivationId`),capability:N(t.capability,`poolIdentity.capability`),keyBinding:N(t.keyBinding,`poolIdentity.keyBinding`),walletId:N(t.walletId,`poolIdentity.walletId`),signingScopeB64u:N(t.signingScopeB64u,`poolIdentity.signingScopeB64u`),pairRole:`client`,keyEpoch:N(t.keyEpoch,`poolIdentity.keyEpoch`),activationEpoch:Re(t.activationEpoch),protocolId:M}}function Re(e){let t=n(e);if(!t.ok)throw Error(`poolIdentity.activationEpoch is invalid`);return t.value}function ze(e,t){return e.ownershipGeneration===t.ownershipGeneration&&e.relayerUrl===t.relayerUrl&&e.materialActivationB64u===t.materialActivationB64u&&e.materialActivationId===t.materialActivationId&&e.capability===t.capability&&e.keyBinding===t.keyBinding&&e.walletId===t.walletId&&e.signingScopeB64u===t.signingScopeB64u&&e.pairRole===t.pairRole&&e.keyEpoch===t.keyEpoch&&e.activationEpoch===t.activationEpoch&&e.protocolId===t.protocolId}function F(e){return[e.protocolId,e.relayerUrl,e.signingScopeB64u,e.materialActivationB64u,e.ownershipGeneration].join(`|`)}function Be(e){let t=re(e.scope),n=e.materialActivation,r=String(e.relayerUrl||``).trim().replace(/\/+$/g,``);return{ownershipGeneration:e.ownershipGeneration,relayerUrl:r,materialActivationB64u:l(ce(n)),materialActivationId:n.activation_id,capability:n.capability,keyBinding:n.key_binding,walletId:t.wallet_id,signingScopeB64u:l(se(t)),pairRole:`client`,keyEpoch:t.signing_worker.key_epoch,activationEpoch:t.activation_epoch,protocolId:M}}const Ve=`ecdsa_capability_manifest_v3`,He=`ecdsa_current_capability_manifest_v2`,Ue=`ecdsa_role_local_material_v2`,We=`ecdsa_activation_commit_journal_v1`,Ge=`ecdsa_material_sealing_key_v1`,Ke=m.ecdsaCapabilityManifests,qe=m.ecdsaCurrentCapabilityManifests,Je=m.ecdsaRoleLocalMaterial,Ye=m.ecdsaActivationCommitJournals,Xe=m.ecdsaMaterialSealingKeys,I=m.ecdsaClientPresignatures;function L(e,t,n){let r=Object.keys(e).sort(),i=[...n].sort();if(r.length!==i.length||r.some((e,t)=>e!==i[t]))throw Error(`${t} has unexpected fields`)}function Ze(e){let n=v(e.authority);if(!n)throw Error(`ECDSA capability selector authority is invalid`);return{capability:O(t(e.capability)),authority:n}}function R(e){return{capability:e.capability,authority:e.authority}}function z(e){return R(e.candidate.activationBinding.signer)}function B(e){return R(e.signer)}function V(e){return[String(e.capability),String(e.authority.walletId),String(e.authority.authorityDigest)]}function H(e){return{capability_ref:e.capability,wallet_id:e.authority.walletId,authority_digest:e.authority.authorityDigest,wallet_auth_method_id:e.authority.walletAuthMethodId}}function Qe(e){return v({kind:`wallet_auth_authority_ref`,walletId:e.wallet_id,authorityDigest:e.authority_digest,walletAuthMethodId:e.wallet_auth_method_id})}function $e(e,t){return e.kind===t.kind&&e.walletId===t.walletId&&e.authorityDigest===t.authorityDigest&&e.walletAuthMethodId===t.walletAuthMethodId}function et(e,t){let n=V(e),r=V(t);return n[0]===r[0]&&n[1]===r[1]&&n[2]===r[2]}function U(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function tt(e,t){return e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}function W(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`evm`:return t.kind===`evm`&&e.namespace===t.namespace&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;case`tempo`:return t.kind===`tempo`&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;default:return Y(e)}}function nt(e,t){return e.kind===t.kind&&e.targetMemberships.length===t.targetMemberships.length&&e.targetMemberships.every((e,n)=>W(e,t.targetMemberships[n]))}function G(e,t){return e.kind===t.kind&&e.keyHandle===t.keyHandle&&e.ecdsaThresholdKeyId===t.ecdsaThresholdKeyId&&e.clientVerifyingPublicKey33B64u===t.clientVerifyingPublicKey33B64u&&U(e.participantIds,t.participantIds)&&e.relayerKeyId===t.relayerKeyId}function rt(e,t){return e.walletId===t.walletId&&W(e.chainTarget,t.chainTarget)&&e.keyHandle===t.keyHandle&&e.ecdsaThresholdKeyId===t.ecdsaThresholdKeyId&&e.signingRootId===t.signingRootId&&e.signingRootVersion===t.signingRootVersion&&e.applicationBindingDigestB64u===t.applicationBindingDigestB64u&&e.clientParticipantId===t.clientParticipantId&&e.relayerParticipantId===t.relayerParticipantId&&U(e.participantIds,t.participantIds)&&e.contextBinding32B64u===t.contextBinding32B64u&&e.derivationClientSharePublicKey33B64u===t.derivationClientSharePublicKey33B64u&&e.relayerPublicKey33B64u===t.relayerPublicKey33B64u&&e.groupPublicKey33B64u===t.groupPublicKey33B64u&&e.ethereumAddress===t.ethereumAddress&&ne(e.publicCapability,t.publicCapability)}function it(e,t){return e.kind===t.kind&&e.keyHandle===t.keyHandle&&e.publicKeyB64u===t.publicKeyB64u&&U(e.participantIds,t.participantIds)&&e.thresholdOwnerAddress===t.thresholdOwnerAddress}function at(e,t){return e.manifestId===t.manifestId&&e.manifestRevision===t.manifestRevision}function ot(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`no_current_manifest`:return!0;case`exact_manifest`:return t.kind===`exact_manifest`&&e.manifestId===t.manifestId&&e.manifestRevision===t.manifestRevision;default:return Y(e)}}function st(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`no_current_generation`:return!0;case`exact_generation`:return t.kind===`exact_generation`&&e.serverGeneration===t.serverGeneration;default:return Y(e)}}function ct(e,t){return e.kind===t.kind&&e.capability===t.capability&&e.signerId===t.signerId&&e.walletId===t.walletId&&$e(e.authority,t.authority)&&nt(e.scope,t.scope)&&e.materialOwner===t.materialOwner&&e.signingRootId===t.signingRootId&&e.signingRootVersion===t.signingRootVersion}function lt(e,t){return ct(e,t)&&it(e.registeredPublicFacts,t.registeredPublicFacts)}function ut(e,t){return e.kind===t.kind&&e.sealingKeyId===t.sealingKeyId&&e.iv12B64u===t.iv12B64u&&e.ciphertextB64u===t.ciphertextB64u&&e.ciphertextDigest===t.ciphertextDigest}function dt(e,t){return e.kind===t.kind&&at(e.targetManifest,t.targetManifest)&&ct(e.signer,t.signer)&&G(e.roleLocalBinding,t.roleLocalBinding)&&e.bindingDigest===t.bindingDigest&&e.durableMaterialRef===t.durableMaterialRef}function K(e,t){return e.kind===t.kind&&e.correlationId===t.correlationId&&e.activationRequestDigest===t.activationRequestDigest&&e.serverGeneration===t.serverGeneration&&ft(e.serverActivationReceipt,t.serverActivationReceipt)}function ft(e,t){return e.kind===t.kind&&e.lifecycleId===t.lifecycleId&&e.activationDigest===t.activationDigest&&e.activatedAt===t.activatedAt&&S(e.protocolReceipt,t.protocolReceipt)}function pt(e,t){return e.kind===t.kind&&e.correlationId===t.correlationId&&st(e.expectedGeneration,t.expectedGeneration)&&e.requestDigest===t.requestDigest&&e.canonicalRequest===t.canonicalRequest}function mt(e,t){return e.kind===t.kind&&dt(e.activationBinding,t.activationBinding)&&ut(e.encryptedPending,t.encryptedPending)}function ht(e,t){if(e.kind!==t.kind||!(e.journalId===t.journalId&&ot(e.expectedManifest,t.expectedManifest)&&pt(e.activationCommand,t.activationCommand)&&mt(e.candidate,t.candidate)&&e.createdAt===t.createdAt))return!1;switch(e.kind){case`activation_prepared`:return!0;case`server_activation_committed`:return t.kind===`server_activation_committed`&&K(e.serverActivation,t.serverActivation);default:return Y(e)}}function gt(e,t){return e.kind===t.kind&&r(e.materialActivation,t.materialActivation)&&ae(e.routerAbEcdsaDerivationNormalSigning,t.routerAbEcdsaDerivationNormalSigning)&&rt(e.roleLocalPublicFacts,t.roleLocalPublicFacts)&&G(e.roleLocalBinding,t.roleLocalBinding)&&e.durableMaterialRef===t.durableMaterialRef&&e.bindingDigest===t.bindingDigest&&e.lifecycleId===t.lifecycleId&&e.ciphertextDigest===t.ciphertextDigest&&e.activationDigest===t.activationDigest&&e.activatedAt===t.activatedAt&&tt(e.runtimePolicyScope,t.runtimePolicyScope)}function _t(e,t){return e.kind===t.kind&&r(e.materialActivation,t.materialActivation)&&K(e.serverActivation,t.serverActivation)&&e.retention===t.retention}function vt(e,t){return e.kind===t.kind&&at(e.identity,t.identity)&<(e.signer,t.signer)&&_t(e.activation,t.activation)&>(e.durableMaterial,t.durableMaterial)&&e.committedAt===t.committedAt}function yt(e,t){try{let n=o(t.serverActivationReceipt,`ECDSA server activation receipt`);return t.kind===e.kind&&f(t.correlationId)===e.correlationId&&p(t.activationRequestDigest)===e.activationRequestDigest&&_(t.serverGeneration)===e.serverGeneration&&n.kind===e.serverActivationReceipt.kind&&n.lifecycleId===String(e.serverActivationReceipt.lifecycleId)&&n.activationDigest===String(e.serverActivationReceipt.activationDigest)&&d(n.activatedAt)===e.serverActivationReceipt.activatedAt&&S(le(n.protocolReceipt),e.serverActivationReceipt.protocolReceipt)}catch{return!1}}function bt(e){let t=j({activationBinding:e.preparation.activationBinding,encryptedPending:e.encryptedPending});return xt({...e.preparation,candidate:t})}function xt(e){let t={journalId:e.journalId,candidate:e.candidate,requestDigest:e.requestDigest,canonicalRequest:e.canonicalRequest,createdAt:e.createdAt};switch(e.expectedManifest.kind){case`no_current_manifest`:if(e.expectedGeneration.kind!==`no_current_generation`)throw Error(`Initial ECDSA activation cannot expect a server generation`);return A({...t,expectedManifest:e.expectedManifest,expectedGeneration:e.expectedGeneration});case`exact_manifest`:if(e.expectedGeneration.kind!==`exact_generation`)throw Error(`Replacement ECDSA activation requires an exact server generation`);return A({...t,expectedManifest:e.expectedManifest,expectedGeneration:e.expectedGeneration});default:return Y(e.expectedManifest)}}function St(e,t){if(typeof e!=`string`||e.length===0||!/^[A-Za-z0-9_-]+$/.test(e))throw Error(`${t} must be non-empty unpadded base64url`);let n=u(e);if(n.length===0||l(n)!==e)throw n.fill(0),Error(`${t} must be canonical base64url`);return n}function q(e){return new TextEncoder().encode(a(e))}async function Ct(){return await crypto.subtle.generateKey({name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}async function wt(e){let t=St(e.stateBlobB64u,`ECDSA state blob`),n=crypto.getRandomValues(new Uint8Array(12)),r=q(e.aadProjection);try{let i=new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:n,additionalData:r},e.key,t));try{return{iv12B64u:C(l(n)),ciphertextB64u:T(l(i)),digestB64u:l(await s(i))}}finally{i.fill(0)}}finally{t.fill(0),r.fill(0)}}async function Tt(e){let t=u(e);try{return l(await s(t))}finally{t.fill(0)}}async function Et(e){let t=u(e.iv12B64u),n=u(e.ciphertextB64u),r=q(e.aadProjection),i=null;try{if(i=new Uint8Array(await crypto.subtle.decrypt({name:`AES-GCM`,iv:t,additionalData:r},e.key,n)),i.length===0)throw Error(`decrypted ECDSA state blob must not be empty`);return l(i)}finally{t.fill(0),n.fill(0),r.fill(0),i?.fill(0)}}function Dt(e){let t=o(e,`ECDSA manifest identity`);return L(t,`ECDSA manifest identity`,[`manifestId`,`manifestRevision`]),D({manifestId:y(t.manifestId),manifestRevision:x(t.manifestRevision)})}function Ot(e){let t=o(e,`ECDSA manifest expectation`);switch(t.kind){case`no_current_manifest`:return L(t,`ECDSA no-current manifest expectation`,[`kind`]),we();case`exact_manifest`:return L(t,`ECDSA exact manifest expectation`,[`kind`,`manifestId`,`manifestRevision`]),ke(D({manifestId:y(t.manifestId),manifestRevision:x(t.manifestRevision)}));default:throw Error(`ECDSA manifest expectation kind is invalid`)}}function kt(e){let t=o(e,`ECDSA capability target`);switch(t.kind){case`evm`:return L(t,`ECDSA EVM capability target`,[`kind`,`namespace`,`chainId`,`networkSlug`]),ee({kind:t.kind,namespace:t.namespace,chainId:t.chainId,networkSlug:t.networkSlug});case`tempo`:return L(t,`ECDSA Tempo capability target`,[`kind`,`chainId`,`networkSlug`]),ee({kind:t.kind,chainId:t.chainId,networkSlug:t.networkSlug});default:throw Error(`ECDSA capability target kind is invalid`)}}function At(e){let t=o(e,`ECDSA capability scope`);if(L(t,`ECDSA capability scope`,[`kind`,`targetMemberships`]),t.kind!==`evm_family`)throw Error(`ECDSA capability scope kind is invalid`);let n=i(t.targetMemberships,`ECDSA capability target memberships`),r=[];for(let e of n)r.push(kt(e));let[a,...s]=r;if(!a)throw Error(`ECDSA capability scope requires at least one target`);return Oe({targetMemberships:[a,...s]})}function jt(e){let t=o(e,`ECDSA role-local material binding`);if(L(t,`ECDSA role-local material binding`,[`kind`,`keyHandle`,`ecdsaThresholdKeyId`,`clientVerifyingPublicKey33B64u`,`participantIds`,`relayerKeyId`]),t.kind!==`ecdsa_role_local_material_binding`)throw Error(`ECDSA role-local material binding kind is invalid`);let n=i(t.participantIds,`ECDSA role-local participant ids`),r=[];for(let e of n)r.push(ge(e));let[a,...s]=r;if(!a)throw Error(`ECDSA role-local material requires at least one participant`);return je({keyHandle:Le(t.keyHandle),ecdsaThresholdKeyId:ye(t.ecdsaThresholdKeyId),clientVerifyingPublicKey33B64u:E(t.clientVerifyingPublicKey33B64u),participantIds:[a,...s],relayerKeyId:_e(t.relayerKeyId)})}function Mt(n){let r=o(n,`prepared ECDSA signer`);if(L(r,`prepared ECDSA signer`,[`kind`,`capability`,`signerId`,`walletId`,`authority`,`scope`,`materialOwner`,`signingRootId`,`signingRootVersion`]),r.kind!==`prepared_evm_family_signer`)throw Error(`prepared ECDSA signer kind is invalid`);let i=v(r.authority);if(!i)throw Error(`prepared ECDSA signer authority is invalid`);if(String(r.walletId)!==String(i.walletId))throw Error(`prepared ECDSA signer wallet does not match its authority`);return De({capability:O(t(r.capability)),signerId:ue(r.signerId),authority:i,scope:At(r.scope),materialOwner:O(e(r.materialOwner)),signingRootId:he(r.signingRootId),signingRootVersion:fe(r.signingRootVersion)})}function Nt(e){let t=o(e,`encrypted ECDSA pending candidate`);if(L(t,`encrypted ECDSA pending candidate`,[`kind`,`sealingKeyId`,`iv12B64u`,`ciphertextB64u`,`ciphertextDigest`]),t.kind!==`encrypted_ecdsa_pending_candidate`)throw Error(`encrypted ECDSA pending candidate kind is invalid`);return Ce({sealingKeyId:w(t.sealingKeyId),iv12B64u:C(t.iv12B64u),ciphertextB64u:T(t.ciphertextB64u),ciphertextDigest:ie(t.ciphertextDigest)})}function Pt(e){let t=o(e,`ECDSA activation binding`);if(L(t,`ECDSA activation binding`,[`kind`,`targetManifest`,`signer`,`roleLocalBinding`,`bindingDigest`,`durableMaterialRef`]),t.kind!==`ecdsa_activation_binding`)throw Error(`ECDSA activation binding kind is invalid`);return Me({targetManifest:Dt(t.targetManifest),signer:Mt(t.signer),roleLocalBinding:jt(t.roleLocalBinding),bindingDigest:k(t.bindingDigest),durableMaterialRef:be(t.durableMaterialRef)})}function Ft(e){let t=o(e,`prepared ECDSA activation candidate`);if(L(t,`prepared ECDSA activation candidate`,[`kind`,`activationBinding`,`encryptedPending`]),t.kind!==`prepared_ecdsa_activation_candidate`)throw Error(`prepared ECDSA activation candidate kind is invalid`);return j({activationBinding:Pt(t.activationBinding),encryptedPending:Nt(t.encryptedPending)})}function It(e){let t=o(e,`ECDSA server generation expectation`);switch(t.kind){case`no_current_generation`:return L(t,`ECDSA no-current server generation expectation`,[`kind`]),Te();case`exact_generation`:return L(t,`ECDSA exact server generation expectation`,[`kind`,`serverGeneration`]),Fe(_(t.serverGeneration));default:throw Error(`ECDSA server generation expectation kind is invalid`)}}function Lt(e){let t=o(e,`prepared ECDSA activation journal`);if(L(t,`prepared ECDSA activation journal`,[`kind`,`journalId`,`expectedManifest`,`activationCommand`,`candidate`,`createdAt`]),t.kind!==`activation_prepared`)throw Error(`prepared ECDSA activation journal kind is invalid`);let n=o(t.activationCommand,`ECDSA activation command`);if(L(n,`ECDSA activation command`,[`kind`,`correlationId`,`expectedGeneration`,`requestDigest`,`canonicalRequest`]),n.kind!==`ecdsa_server_activation_command`)throw Error(`ECDSA activation command kind is invalid`);let r=f(t.journalId);if(f(n.correlationId)!==r)throw Error(`ECDSA activation command correlation does not match its journal`);let i=Ot(t.expectedManifest),a=It(n.expectedGeneration),s={journalId:r,candidate:Ft(t.candidate),requestDigest:p(n.requestDigest),canonicalRequest:oe(n.canonicalRequest),createdAt:d(t.createdAt)};switch(i.kind){case`no_current_manifest`:if(a.kind!==`no_current_generation`)throw Error(`initial ECDSA journal has an exact server generation`);return A({...s,expectedManifest:i,expectedGeneration:a});case`exact_manifest`:if(a.kind!==`exact_generation`)throw Error(`replacement ECDSA journal is missing its exact server generation`);return A({...s,expectedManifest:i,expectedGeneration:a})}return Y(i)}function Rt(e){return{kind:`activation_prepared`,journalId:e.journalId,expectedManifest:e.expectedManifest,activationCommand:e.activationCommand,candidate:e.candidate,createdAt:e.createdAt}}function zt(e){return e.kind===`activation_prepared`?e:xt({journalId:e.journalId,expectedManifest:e.expectedManifest,expectedGeneration:e.activationCommand.expectedGeneration,candidate:e.candidate,requestDigest:e.activationCommand.requestDigest,canonicalRequest:e.activationCommand.canonicalRequest,createdAt:e.createdAt})}function Bt(e){let t=o(e,`server-committed ECDSA activation journal`);if(L(t,`server-committed ECDSA activation journal`,[`kind`,`journalId`,`expectedManifest`,`activationCommand`,`candidate`,`createdAt`,`serverActivation`]),t.kind!==`server_activation_committed`)throw Error(`server-committed ECDSA activation journal kind is invalid`);let n=Lt(Rt(t)),r=Vt(t.serverActivation),i=Se({preparedJournal:n,serverCommit:r.serverCommit});if(!yt(i.serverActivation,r.record))throw Error(`ECDSA server activation commit fields are inconsistent`);return i}function Vt(e){let t=o(e,`ECDSA server activation commit`);if(L(t,`ECDSA server activation commit`,[`kind`,`correlationId`,`activationRequestDigest`,`serverGeneration`,`serverActivationReceipt`]),t.kind!==`ecdsa_server_activation_commit`)throw Error(`ECDSA server activation commit kind is invalid`);let n=o(t.serverActivationReceipt,`ECDSA server activation receipt`);if(L(n,`ECDSA server activation receipt`,[`kind`,`lifecycleId`,`activationDigest`,`activatedAt`,`protocolReceipt`]),n.kind!==`ecdsa_server_activation_receipt`)throw Error(`ECDSA server activation receipt kind is invalid`);return{record:t,serverCommit:{correlationId:f(t.correlationId),activationRequestDigest:p(t.activationRequestDigest),serverGeneration:_(t.serverGeneration),protocolReceipt:n.protocolReceipt}}}function Ht(e){let t=o(e,`ECDSA activation journal`);switch(t.kind){case`activation_prepared`:return Lt(t);case`server_activation_committed`:return Bt(t);default:throw Error(`ECDSA activation journal kind is invalid`)}}function Ut(e){let t=o(e,`registered ECDSA public facts`);if(L(t,`registered ECDSA public facts`,[`kind`,`keyHandle`,`publicKeyB64u`,`participantIds`,`thresholdOwnerAddress`]),t.kind!==`verified_ecdsa_public_facts`)throw Error(`registered ECDSA public facts kind is invalid`);return pe({keyHandle:te(t.keyHandle),publicKeyB64u:t.publicKeyB64u,participantIds:i(t.participantIds,`registered ECDSA participant ids`),thresholdOwnerAddress:t.thresholdOwnerAddress})}function J(e){let t=o(e,`active ECDSA manifest proof`);L(t,`active ECDSA manifest proof`,[`activation_binding`,`server_activation`,`registered_public_facts`,`role_local_public_facts`,`router_ab_ecdsa_derivation_normal_signing`,`runtime_policy_scope`,`ciphertext_digest`,`committed_at`]);let n=Pt(t.activation_binding),r=Vt(t.server_activation),i=Ne({activationBinding:n,serverCommit:r.serverCommit});if(!yt(i,r.record))throw Error(`ECDSA server activation commit fields are inconsistent`);let a=Ae({activationBinding:n,serverActivation:i,routerAbEcdsaDerivationNormalSigning:me(t.router_ab_ecdsa_derivation_normal_signing),roleLocalPublicFacts:ve(t.role_local_public_facts),ciphertextDigest:b(t.ciphertext_digest),runtimePolicyScope:c(t.runtime_policy_scope)}),s=d(t.committed_at);return{activationBinding:n,serverActivation:i,durableMaterial:a,activeManifest:Pe({activationBinding:n,serverActivation:i,registeredPublicFacts:Ut(t.registered_public_facts),durableMaterial:a,committedAt:s}),committedAt:s}}function Wt(e){let t=o(e,`ECDSA capability manifest row`),n=[`record_version`,`manifest_id`,`manifest_revision`,`capability_ref`,`wallet_id`,`authority_digest`,`wallet_auth_method_id`,`manifest_state`,`active_proof`];switch(t.manifest_state){case`active`:{L(t,`active ECDSA capability manifest row`,n);let e=J(t.active_proof),r=B(e.activeManifest);return Gt(t,e.activeManifest,r),{state:`active`,selector:r,manifest:e.activeManifest,activeProof:e}}case`replaced`:{L(t,`replaced ECDSA capability manifest row`,[...n,`replacement_proof`]);let e=J(t.active_proof),r=J(t.replacement_proof),i=Ee({activeManifest:e.activeManifest,replacementManifest:r.activeManifest}),a=B(e.activeManifest);return Gt(t,e.activeManifest,a),{state:`replaced`,selector:a,manifest:i,activeProof:e,replacementProof:r}}default:throw Error(`ECDSA capability manifest row state is invalid`)}}function Gt(e,t,n){if(e.record_version!==`ecdsa_capability_manifest_v3`||y(e.manifest_id)!==t.identity.manifestId||x(e.manifest_revision)!==t.identity.manifestRevision||String(e.capability_ref)!==String(n.capability)||String(e.wallet_id)!==String(n.authority.walletId)||String(e.authority_digest)!==String(n.authority.authorityDigest))throw Error(`ECDSA capability manifest row identity is inconsistent`)}function Kt(e){return{record_version:He,...H(B(e)),manifest_id:e.identity.manifestId,manifest_revision:e.identity.manifestRevision}}function qt(e){let n=o(e,`current ECDSA capability pointer`);if(L(n,`current ECDSA capability pointer`,[`record_version`,`capability_ref`,`wallet_id`,`authority_digest`,`wallet_auth_method_id`,`manifest_id`,`manifest_revision`]),n.record_version!==He)throw Error(`current ECDSA capability pointer version is invalid`);let r=Qe(n);if(!r)throw Error(`current ECDSA capability pointer authority is invalid`);return{selector:{capability:O(t(n.capability_ref)),authority:r},manifestId:y(n.manifest_id),manifestRevision:x(n.manifest_revision)}}function Jt(e,t){return{record_version:Ue,durable_material_ref:e.binding.durableMaterialRef,binding_digest:e.binding.bindingDigest,...H(B(t)),sealing_key_id:e.sealingKeyId,iv:e.iv12B64u,ciphertext:e.ciphertextB64u}}function Yt(e){let n=o(e,`ECDSA role-local material row`);if(L(n,`ECDSA role-local material row`,[`record_version`,`durable_material_ref`,`binding_digest`,`capability_ref`,`wallet_id`,`authority_digest`,`wallet_auth_method_id`,`sealing_key_id`,`iv`,`ciphertext`]),n.record_version!==Ue)throw Error(`ECDSA role-local material row version is invalid`);let r=Qe(n);if(!r)throw Error(`ECDSA role-local material authority is invalid`);return{durableMaterialRef:be(n.durable_material_ref),bindingDigest:k(n.binding_digest),selector:{capability:O(t(n.capability_ref)),authority:r}}}function Xt(e,t){let n=o(e,`ECDSA role-local material row`),r=Yt(n),i=Ie({binding:t.durableMaterial,sealingKeyId:w(n.sealing_key_id),iv12B64u:C(n.iv),ciphertextB64u:T(n.ciphertext)});if(r.durableMaterialRef!==i.binding.durableMaterialRef||r.bindingDigest!==i.binding.bindingDigest||!et(r.selector,B(t.activeManifest)))throw Error(`ECDSA role-local material row binding is inconsistent`);return i}function Zt(e,t){return e.binding.durableMaterialRef===t.durableMaterial.durableMaterialRef&&e.binding.bindingDigest===t.durableMaterial.bindingDigest&&e.binding.lifecycleId===t.durableMaterial.lifecycleId&&e.binding.ciphertextDigest===t.durableMaterial.ciphertextDigest&&e.binding.activationDigest===t.durableMaterial.activationDigest&&e.binding.activatedAt===t.durableMaterial.activatedAt&&r(e.binding.materialActivation,t.durableMaterial.materialActivation)&&G(e.binding.roleLocalBinding,t.durableMaterial.roleLocalBinding)}function Qt(e){return{record_version:We,journal_id:e.journalId,...H(z(e)),journal:e}}function $t(e){let t=o(e,`ECDSA activation commit journal row`);if(L(t,`ECDSA activation commit journal row`,[`record_version`,`journal_id`,`capability_ref`,`wallet_id`,`authority_digest`,`wallet_auth_method_id`,`journal`]),t.record_version!==We)throw Error(`ECDSA activation commit journal row version is invalid`);let n=Ht(t.journal),r=z(n);if(f(t.journal_id)!==n.journalId||String(t.capability_ref)!==String(r.capability)||String(t.wallet_id)!==String(r.authority.walletId)||String(t.authority_digest)!==String(r.authority.authorityDigest))throw Error(`ECDSA activation commit journal row identity is inconsistent`);return{journal:n,selector:r}}function en(e){return typeof CryptoKey>`u`||!(e instanceof CryptoKey)||e.type!==`secret`||e.extractable||e.algorithm.name!==`AES-GCM`?!1:e.usages.includes(`encrypt`)&&e.usages.includes(`decrypt`)}function tn(e,t){return{record_version:Ge,key_id:e,key:t}}function nn(e){let t=o(e,`ECDSA material sealing key row`);if(L(t,`ECDSA material sealing key row`,[`record_version`,`key_id`,`key`]),t.record_version!==Ge)throw Error(`ECDSA material sealing key row version is invalid`);if(!en(t.key))throw Error(`ECDSA material sealing key must be a non-extractable AES-GCM key`);return{keyId:w(t.key_id),key:t.key}}function Y(e){throw Error(`Unexpected ECDSA persistence branch: ${String(e)}`)}const rn=5*6e4;function an(e,t,n){let i=e.binding.routerAbEcdsaDerivationNormalSigning.scope,a=de(e.binding.materialActivation);return i.wallet_id===t.walletId&&l(se(i))===t.signingScopeB64u&&l(ce(a))===t.materialActivationB64u&&i.signing_worker.key_epoch===t.keyEpoch&&i.activation_epoch===t.activationEpoch&&a.activation_id===t.materialActivationId&&a.capability===t.capability&&a.key_binding===t.keyBinding&&a.material_owner===t.walletId&&e.binding.durableMaterialRef===n.durableMaterialRef&&e.binding.bindingDigest===n.bindingDigest&&r(e.binding.materialActivation,n.materialActivation)}function on(e,t){return e.materialActivation.activationId===t.materialActivationId&&e.materialActivation.capability===t.capability&&e.materialActivation.keyBinding===t.keyBinding&&e.materialActivation.materialOwner===t.walletId}function sn(e){if(typeof e!=`string`||!/^ecdsa-client-presignature-[A-Za-z0-9_-]+$/.test(e))throw Error(`ECDSA durable presignature record id is invalid`);return e}function X(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} is invalid`);return e}function Z(e){if(!e||typeof e!=`object`||!(`record_id`in e))return null;let t=e.record_id;return typeof t==`string`?t:null}function cn(){return typeof IDBTransaction<`u`&&`durability`in IDBTransaction.prototype}async function ln(e,t=1/0){let n=0;for(;e&&n<t;)await e.delete(),n+=1,e=await e.continue();return n}async function un(e,t,n){return await ln(await e.store(I).index(h.walletExpiresAt).openCursor(IDBKeyRange.bound([t,0],[t,n])),32)}async function dn(e,t,n){await un(e,t.walletId,n);let r=e.store(I),i=await r.index(h.poolIdentityKey).getAll(F(t));t.ownershipGeneration===1&&i.push(...await r.index(h.poolIdentityKey).getAll(pn(t)));let a=[];for(let e of i)try{let t=Q(e);t.expires_at_ms<=n?await r.delete(t.record_id):(e.pool_identity_key!==t.pool_identity_key&&await r.put(t),a.push(t))}catch{let t=Z(e);t&&await r.delete(t)}return a}function fn(e){let{ownershipGeneration:t,...n}=e.poolIdentity;return{domain:`seams/ecdsa-client-presignature/v1`,version:1,pool_identity:t===1?n:e.poolIdentity,durable_material_ref:e.durableMaterialRef,presignature_id:e.presignatureId,group_public_key33_b64u:e.groupPublicKey33B64u,big_r33_b64u:e.bigR33B64u,created_at_ms:e.createdAtMs,expires_at_ms:e.expiresAtMs,sealing_key_id:e.sealingKeyId}}function pn(e){return[e.protocolId,e.relayerUrl,e.signingScopeB64u,e.materialActivationB64u].join(`|`)}function Q(e){let t=o(e,`ECDSA durable presignature row`);if(L(t,`ECDSA durable presignature row`,[`kind`,`record_id`,`pool_identity`,`pool_identity_key`,`wallet_id`,`material_activation_id`,`durable_material_ref`,`presignature_id`,`group_public_key33_b64u`,`big_r33_b64u`,`created_at_ms`,`expires_at_ms`,`sealed`]),t.kind!==`sealed_available_client_presignature_v1`)throw Error(`ECDSA durable presignature row kind is invalid`);let n=o(t.pool_identity,`ECDSA durable presignature pool identity`),r=!Object.hasOwn(n,`ownershipGeneration`);L(n,`ECDSA durable presignature pool identity`,[...r?[]:[`ownershipGeneration`],`activationEpoch`,`capability`,`keyBinding`,`keyEpoch`,`materialActivationB64u`,`materialActivationId`,`pairRole`,`protocolId`,`relayerUrl`,`signingScopeB64u`,`walletId`]);let i=P(r?{...n,ownershipGeneration:1}:n),a=sn(t.record_id),s=String(t.pool_identity_key??``);if(s!==F(i)&&!(r&&s===pn(i)))throw Error(`ECDSA durable presignature pool identity index is inconsistent`);let c=String(t.wallet_id??``).trim(),l=String(t.material_activation_id??``).trim();if(!c||c!==i.walletId)throw Error(`ECDSA durable presignature wallet binding is inconsistent`);if(!l||l!==i.materialActivationId)throw Error(`ECDSA durable presignature activation binding is inconsistent`);let u=xe(t.durable_material_ref);if(!on(u,i))throw Error(`ECDSA durable presignature material binding is inconsistent`);let d=String(t.presignature_id??``).trim();if(!d)throw Error(`ECDSA durable presignature id is invalid`);let f=E(t.group_public_key33_b64u),p=E(t.big_r33_b64u),m=X(t.created_at_ms,`created_at_ms`),h=X(t.expires_at_ms,`expires_at_ms`);if(m>Date.now()+3e5)throw Error(`ECDSA durable presignature creation timestamp is in the future`);if(h<=m)throw Error(`ECDSA durable presignature expiry must follow creation`);if(h-m>7776e6)throw Error(`ECDSA durable presignature lifetime exceeds the maximum`);let g=o(t.sealed,`ECDSA durable presignature sealed payload`);if(L(g,`ECDSA durable presignature sealed payload`,[`kind`,`sealing_key_id`,`iv12_b64u`,`ciphertext_b64u`,`ciphertext_digest_b64u`]),g.kind!==`ecdsa_activation_aes_gcm_v1`)throw Error(`ECDSA durable presignature sealing kind is invalid`);return{kind:`sealed_available_client_presignature_v1`,record_id:a,pool_identity:i,pool_identity_key:F(i),wallet_id:c,material_activation_id:l,durable_material_ref:u,presignature_id:d,group_public_key33_b64u:f,big_r33_b64u:p,created_at_ms:m,expires_at_ms:h,sealed:{kind:`ecdsa_activation_aes_gcm_v1`,sealing_key_id:w(g.sealing_key_id),iv12_b64u:C(g.iv12_b64u),ciphertext_b64u:T(g.ciphertext_b64u),ciphertext_digest_b64u:b(g.ciphertext_digest_b64u)}}}function mn(e){return{kind:`sealed_available_client_presignature_v1`,recordId:e.record_id,poolIdentity:e.pool_identity,durableMaterialRef:e.durable_material_ref,presignatureId:e.presignature_id,groupPublicKey33B64u:e.group_public_key33_b64u,bigR33B64u:e.big_r33_b64u,createdAtMs:e.created_at_ms,expiresAtMs:e.expires_at_ms,sealingKeyId:e.sealed.sealing_key_id}}async function hn(e){let t=crypto.getRandomValues(new Uint8Array(12)),n=q(fn(e.metadata));try{let r=new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:t,additionalData:n},e.key,e.plaintext97));try{let e=l(r);return{iv12B64u:C(l(t)),ciphertextB64u:T(e),ciphertextDigestB64u:b(l(await s(r)))}}finally{r.fill(0)}}finally{t.fill(0),n.fill(0),e.plaintext97.fill(0)}}async function gn(e){let t=u(e.sealed.iv12_b64u),n=u(e.sealed.ciphertext_b64u),r=q(fn(e.metadata)),i=null;try{if(l(await s(n))!==e.sealed.ciphertext_digest_b64u)throw Error(`ECDSA durable presignature ciphertext digest mismatch`);if(i=new Uint8Array(await crypto.subtle.decrypt({name:`AES-GCM`,iv:t,additionalData:r},e.key,n)),i.length!==97)throw Error(`ECDSA durable presignature plaintext length is invalid`);return i.slice()}finally{t.fill(0),n.fill(0),r.fill(0),i?.fill(0)}}async function _n(e,t,n){let r=e.store(I),i=await r.index(h.walletMaterialActivationId).getAll([t,n]);for(let e of i){let t=Z(e);t&&await r.delete(t)}}async function $(e,t){let n=await e.store(m.appState).get(`wallet_ownership_generation:${t}`);if(n===void 0)return 1;let r=o(n,`Wallet ownership generation`).value;if(typeof r!=`number`||!Number.isSafeInteger(r)||r<1)throw Error(`Stored wallet ownership generation is invalid`);return r}async function vn(e,t,n){if(await $(e,t)!==n)throw Error(`Wallet ownership generation requires fresh authentication`)}async function yn(e,t,n){let r=await $(e,t);if(n<r)throw Error(`Wallet session belongs to an obsolete ownership generation`);if(n===r)return;await e.store(m.appState).put({key:`wallet_ownership_generation:${t}`,value:n});let i=await e.store(m.ecdsaClientPresignatures).index(h.walletId).openCursor(t);for(;i;){let e=!0;try{e=Q(i.value).pool_identity.ownershipGeneration<n}catch{}e&&await i.delete(),i=await i.continue()}}async function bn(e,t){await g.runTransaction([m.appState],`readonly`,xn.bind(null,e,t))}function xn(e,t,n){return vn(n,e,t)}async function Sn(e,t){await g.runTransaction([m.appState,m.ecdsaClientPresignatures],`readwrite`,Cn.bind(null,e,t))}async function Cn(e,t,n){t<=await $(n,e)||await yn(n,e,t)}export{B as $,vt as A,Ze as B,I as C,Tt as D,bt as E,rt as F,Yt as G,Bt as H,K as I,nn as J,Xt as K,wt as L,gt as M,it as N,Et as O,G as P,z as Q,Ct as R,qe as S,Y as T,$t as U,J as V,Wt as W,tt as X,zt as Y,H as Z,cn as _,rn as a,Kt as at,Ke as b,hn as c,F as ct,sn as d,P as dt,R as et,X as f,_n as g,dn as h,Sn as i,Jt as it,nt as j,ht as k,on as l,ze as lt,Z as m,bn as n,et as nt,an as o,tn as ot,Q as p,qt as q,vn as r,Qt as rt,gn as s,$e as st,yn as t,V as tt,mn as u,Be as ut,Ye as v,Xe as w,Je as x,Ve as y,Zt as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ct as e,it as t}from"./activeWalletSession-H9JBdHyQ.js";import{r as n}from"./base64-BmKR3UqU.js";import{r,t as i}from"./secureRandomId-8LSc91aN.js";import{o as a}from"./signerSlot-D4ZOuK7e.js";import{t as o}from"./indexedDB-C1odKEC6.js";import{n as s,s as c,t as l,u}from"./helpers-CXqXyyCU.js";import{i as ee}from"./pendingWalletRecoveryCodeBackup-lr1oISjL.js";import{t as d}from"./walletCustodyOperation-DzPcxEBS.js";import{t as f}from"./webauthnPromptCoordinator-CU9ag7vz.js";import{i as p}from"./collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js";function m(e){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)return{kind:`invalid`};let t=new Map(Object.entries(e)),n=[...t.keys()];if(t.size===5&&n.every(e=>[`ok`,`challengeId`,`challenge_digest`,`expiresAtMs`,`otpChannel`].includes(e))&&t.get(`ok`)===!0)return{kind:`success`,challengeId:t.get(`challengeId`),challengeDigest:t.get(`challenge_digest`),expiresAtMs:t.get(`expiresAtMs`),otpChannel:t.get(`otpChannel`)};let r=[`ok`,`code`,`message`,`retryAfterMs`];if((t.size===3||t.size===4)&&n.every(e=>r.includes(e))&&t.get(`ok`)===!1&&typeof t.get(`code`)==`string`&&typeof t.get(`message`)==`string`&&(t.size===3||typeof t.get(`retryAfterMs`)==`number`)){let e=t.get(`message`);return{kind:`failure`,message:typeof e==`string`&&e.trim()?e.trim():null}}return{kind:`invalid`}}async function h(e){let t;try{t=await S({relayUrl:e.relayUrl,path:`/wallets/custody/email-otp/challenge`,body:{walletId:e.walletId,providerSubjectId:e.providerSubjectId,operation:e.operation,payload:e.payload,...e.requestOrigin?{requestOrigin:e.requestOrigin}:{}},fetchImpl:e.fetchImpl})}catch(e){return{kind:`transport_failed`,message:e instanceof Error?e.message:`Email OTP challenge request failed`}}let n=m(await t.json().catch(()=>null)),r=n.kind===`failure`&&n.message?n.message:``;if(t.status!==200||n.kind!==`success`)return{kind:t.status>=400&&t.status<500?`rejected`:`transport_failed`,message:r||`Email OTP challenge failed (HTTP ${t.status})`};let i=typeof n.challengeId==`string`?n.challengeId.trim():``,a=typeof n.challengeDigest==`string`?n.challengeDigest.trim():``,o=Number(n.expiresAtMs),s=typeof n.otpChannel==`string`?n.otpChannel.trim():``;return!i||!a||!Number.isSafeInteger(o)||o<=0||!s?{kind:`transport_failed`,message:`Email OTP challenge returned an unusable payload`}:{kind:`ready`,challengeId:i,challenge_digest:a,expiresAtMs:o,otpChannel:s}}function g(e){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)return{kind:`invalid`};let t=new Map(Object.entries(e)),n=[`ok`,`activeCodeCount`,`totalCodeCount`,`issuedAtMs`,`storeVersion`,`backupOutstanding`],r=[...t.keys()];if(t.size===n.length&&r.every(e=>n.includes(e))&&t.get(`ok`)===!0)return{kind:`success`,activeCodeCount:t.get(`activeCodeCount`),totalCodeCount:t.get(`totalCodeCount`),issuedAtMs:t.get(`issuedAtMs`),storeVersion:t.get(`storeVersion`),backupOutstanding:t.get(`backupOutstanding`)};let i=[`ok`,`code`,`message`];if(t.size===i.length&&r.every(e=>i.includes(e))&&t.get(`ok`)===!1&&typeof t.get(`code`)==`string`){let e=t.get(`message`);return{kind:`failure`,message:typeof e==`string`&&e.trim()?e.trim():null}}return{kind:`invalid`}}async function _(e){let t;try{t=await S({relayUrl:e.relayUrl,path:`/wallets/${encodeURIComponent(e.walletId)}/recovery/status`,body:{requestId:e.requestId,factorProof:e.factorProof},fetchImpl:e.fetchImpl})}catch(e){return{kind:`transport_failed`,message:e instanceof Error?e.message:`recovery status request failed`}}let n=g(await t.json().catch(()=>null)),r=n.kind===`failure`&&n.message?n.message:``;if(t.status===401||t.status===403)return{kind:`unauthorized`,message:r||`recovery status is unauthorized`};if(t.status===404)return{kind:`no_recovery_set`,message:r||`this wallet has no recovery set`};if(t.status!==200)return{kind:`transport_failed`,message:r||`recovery status failed (HTTP ${t.status})`};if(n.kind!==`success`)return{kind:`transport_failed`,message:`recovery status returned an unusable payload`};let i=Number(n.activeCodeCount),a=Number(n.totalCodeCount),o=Number(n.issuedAtMs),s=typeof n.storeVersion==`string`?n.storeVersion.trim():``;return!Number.isSafeInteger(i)||i<0||!Number.isSafeInteger(a)||a<i||!Number.isSafeInteger(o)||o<=0||!s||typeof n.backupOutstanding!=`boolean`?{kind:`transport_failed`,message:`recovery status returned an unusable payload`}:{kind:`ready`,walletId:e.walletId,activeCodeCount:i,totalCodeCount:a,issuedAtMs:o,storeVersion:s,backupOutstanding:n.backupOutstanding,pendingLocalBackup:!1}}function v(e){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)return{kind:`invalid`};let t=new Map(Object.entries(e)),n=[...t.keys()];if(t.size===2&&n.includes(`ok`)&&n.includes(`issuedAtMs`)&&t.get(`ok`)===!0)return{kind:`success`,issuedAtMs:t.get(`issuedAtMs`)};if(t.size===3&&n.includes(`ok`)&&n.includes(`code`)&&n.includes(`message`)&&t.get(`ok`)===!1&&typeof t.get(`code`)==`string`){let e=t.get(`message`);return{kind:`failure`,message:typeof e==`string`&&e.trim()?e.trim():null}}return{kind:`invalid`}}async function y(e){let t;try{t=await S({relayUrl:e.relayUrl,path:`/wallets/recovery/acknowledge-backup`,body:{walletId:e.walletId,requestId:e.requestId,expectedIssuedAtMs:e.expectedIssuedAtMs,factorProof:e.factorProof},fetchImpl:e.fetchImpl})}catch(e){return{kind:`transport_failed`,message:e instanceof Error?e.message:`recovery backup acknowledgement failed`}}let n=v(await t.json().catch(()=>null)),r=n.kind===`failure`&&n.message?n.message:``;if(t.status===401||t.status===403)return{kind:`unauthorized`,message:r||`recovery backup acknowledgement is unauthorized`};if(t.status===404)return{kind:`no_recovery_set`,message:r||`this wallet has no recovery set`};if(t.status===409)return{kind:`conflict`,message:r||`Recovery codes changed. Check status and review the current set.`};if(t.status!==200)return{kind:`transport_failed`,message:r||`recovery backup acknowledgement failed (HTTP ${t.status})`};if(n.kind!==`success`)return{kind:`transport_failed`,message:`recovery backup acknowledgement returned an unusable payload`};let i=Number(n.issuedAtMs);return!Number.isSafeInteger(i)||i<=0?{kind:`transport_failed`,message:`recovery backup acknowledgement returned an unusable payload`}:{kind:`acknowledged`,walletId:e.walletId,issuedAtMs:i}}function b(e){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)return{kind:`invalid`};let t=new Map(Object.entries(e)),n=[...t.keys()];if(t.size===3&&n.every(e=>[`ok`,`issuedAtMs`,`storeVersion`].includes(e))&&t.get(`ok`)===!0)return{kind:`success`,issuedAtMs:t.get(`issuedAtMs`),storeVersion:t.get(`storeVersion`)};if(t.size===3&&n.every(e=>[`ok`,`code`,`message`].includes(e))&&t.get(`ok`)===!1&&typeof t.get(`code`)==`string`){let e=t.get(`message`);return{kind:`failure`,message:typeof e==`string`&&e.trim()?e.trim():null}}return{kind:`invalid`}}async function x(e){let t=await S({relayUrl:e.relayUrl,path:`/wallets/recovery/rotate`,body:{walletId:e.walletId,expectedStoreVersion:e.expectedStoreVersion,manifestKekWraps:e.replacement.manifestKekWraps,entries:[e.replacement.entry],recoveryCodeLocators:e.recoveryCodeLocators,factorProof:e.factorProof},fetchImpl:e.fetchImpl}),n=b(await t.json().catch(()=>null)),r=n.kind===`failure`&&n.message?n.message:``;if(t.status===200&&n.kind===`success`){let e=Number(n.issuedAtMs),t=typeof n.storeVersion==`string`?n.storeVersion.trim():``;return!Number.isSafeInteger(e)||e<=0||!t?{kind:`transport_failed`,message:`rotation returned an unusable response`}:{kind:`rotated`,issuedAtMs:e,storeVersion:t}}return t.status===404?{kind:`no_recovery_set`,message:r||`no recovery set`}:t.status===409?{kind:`conflict`,message:r||`recovery set changed`}:t.status===400?{kind:`rejected`,message:r||`rotation rejected`}:{kind:`transport_failed`,message:r||`rotation failed (HTTP ${t.status})`}}async function S(n){let r=`${e(n.relayUrl)}${n.path}`;return await(n.fetchImpl||fetch)(r,t({headers:{Accept:`application/json`},body:n.body}))}var C=class extends Error{code=`wallet_origin_webauthn_unavailable`;constructor(e){super(e),this.name=`WalletOriginWebAuthnUnavailableError`}};async function w(e,t,n){let r=T(e,t);try{return e===`create`?await navigator.credentials.create({publicKey:r,...n.abortSignal?{signal:n.abortSignal}:{}}):await navigator.credentials.get({publicKey:r,...n.abortSignal?{signal:n.abortSignal}:{}})}catch(t){throw e===`create`&&(N(t)||P(t))?new C(`Wallet-origin WebAuthn registration is unavailable: ${F(t)}`):t}}function T(e,t){return e===`create`?E(t):D(t)}function E(e){return{...e,challenge:M(e.challenge),user:{...e.user,id:M(e.user.id)},excludeCredentials:e.excludeCredentials?.map(O),extensions:k(e.extensions)}}function D(e){return{...e,challenge:M(e.challenge),allowCredentials:e.allowCredentials?.map(O),extensions:k(e.extensions)}}function O(e){return{...e,id:M(e.id)}}function k(e){if(!e)return e;let t={...e},n=t.prf;if(n&&typeof n==`object`){let e={...n};if(e.eval&&typeof e.eval==`object`&&(e.eval=A(e.eval)),e.evalByCredential&&typeof e.evalByCredential==`object`){let t={};for(let[n,r]of Object.entries(e.evalByCredential))t[n]=r&&typeof r==`object`?A(r):r;e.evalByCredential=t}t.prf=e}return t}function A(e){return{...e,...j(e.first)?{first:M(e.first)}:{},...j(e.second)?{second:M(e.second)}:{}}}function j(e){return e instanceof ArrayBuffer||ArrayBuffer.isView(e)}function M(e){if(e instanceof ArrayBuffer)return e.slice(0);let t=e,n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength).slice();if(e instanceof DataView)return new DataView(n.buffer);let r=Object.getPrototypeOf(e).constructor;return new r(n.buffer)}function N(e){let t=F(e);return/origin of the document is not the same as its ancestors/i.test(t)}function P(e){let t=I(e),n=F(e),r=t===`NotAllowedError`,i=/document is not focused|not focused|focus/i.test(n);return!!(r&&i)}function F(e){return String(e?.message||``)}function I(e){let t=e?.name;return typeof t==`string`?t:``}function L(e,t){return(e||t||``).toLowerCase()}function R(e){let t=n(String(e||``));if(t.length!==32)throw Error(`Invalid WebAuthn challenge: expected 32 bytes, got ${t.length}`);return t}function z(e){if(e.kind!==`wallet_registration`)throw Error(`Wallet registration challenge is unavailable`);return e.challengeB64u}function B(e){let t=a(String(e.walletId||``).trim());if(String(e.intendedUserName||``).trim()!==String(t))throw Error(`WebAuthn registration user.name must match walletId`);return{walletId:t}}var V=class{rpIdOverride;abortController;removePageAbortHandlers;removeExternalAbortListener;constructor(e){this.rpIdOverride=e}getRpId(){try{return L(this.rpIdOverride,window?.location?.hostname)}catch{return this.rpIdOverride||``}}getAuthenticationCredentialsSerializedForChallengeB64u(e){let t=`webauthn-get-${i(12,`WebAuthn get request IDs`)}`;return f.runImmediate({owner:{kind:`wallet_request`,requestId:t,operation:`authentication`},operation:this.executeAuthenticationCredential.bind(this,e)})}async executeAuthenticationCredential({subjectId:e,challengeB64u:t,allowCredentials:r=[],includeSecondPrfOutput:i=!1,cancellation:a={kind:`none`}}){this.abortController=new AbortController,this.removePageAbortHandlers=q(this.abortController),this.removeExternalAbortListener=H(this.abortController,a);let o=this.getRpId(),u={challenge:R(t),rpId:o,userVerification:`preferred`,timeout:6e4,extensions:{prf:{eval:{first:l(),second:s()}}}};r.length>0&&(u.allowCredentials=r.map(e=>({id:n(e.id),type:`public-key`,transports:e.transports})));try{let e=c({credential:await w(`get`,u,{abortSignal:this.abortController.signal}),firstPrfOutput:!0,secondPrfOutput:i});return G(e,t),e}finally{this.removePageAbortHandlers?.(),this.removePageAbortHandlers=void 0,this.removeExternalAbortListener?.(),this.removeExternalAbortListener=void 0,this.abortController=void 0}}generateRegistrationCredentialsInternal(e){switch(e.prompt.kind){case`reserved`:return f.runReserved({reservation:e.prompt.reservation,owner:e.prompt.owner,operation:this.executeRegistrationCredential.bind(this,e)});case`immediate`:return f.runImmediate({owner:{kind:`wallet_request`,requestId:e.prompt.requestId,operation:`registration`},operation:this.executeRegistrationCredential.bind(this,e)})}}async executeRegistrationCredential(e){this.abortController=new AbortController,this.removePageAbortHandlers=q(this.abortController),this.removeExternalAbortListener=H(this.abortController,e.prompt.cancellation);let t=this.getRpId(),r=B({walletId:e.walletId,intendedUserName:e.intendedUserName}),i=e.kind===`wallet_recovery`?e.recoveryRegistration:null,a=e.kind===`wallet_add_auth_method`?e.registration:null,o=i??a,c=o?.rpId??t;if(o&&c!==t)throw Error(`Wallet recovery RP ID does not match the wallet origin`);let u=o?{challenge:R(o.challengeB64u),rp:{name:`Seams Wallet`,id:c},user:{id:n(o.user.idB64u),name:o.user.name,displayName:o.user.displayName},pubKeyCredParams:o.pubKeyCredParams.map(e=>({...e})),authenticatorSelection:{...o.authenticatorSelection},timeout:o.timeoutMs,attestation:o.attestation,extensions:{prf:{eval:{first:n(o.extensions.prf.eval.firstB64u),second:n(o.extensions.prf.eval.secondB64u)}}},excludeCredentials:o.excludeCredentials.map(e=>({type:e.type,id:n(e.id)}))}:{challenge:R(z(e)),rp:{name:`WebAuthn Passkey`,id:c},user:{id:new TextEncoder().encode(K(e.walletId,e.signerSlot)),name:r.walletId,displayName:r.walletId},pubKeyCredParams:[{alg:-7,type:`public-key`},{alg:-257,type:`public-key`}],authenticatorSelection:{residentKey:`required`,userVerification:`preferred`},timeout:6e4,attestation:`none`,extensions:{prf:{eval:{first:l(),second:s()}}}};try{return await w(`create`,u,{abortSignal:this.abortController.signal})}finally{this.removePageAbortHandlers?.(),this.removePageAbortHandlers=void 0,this.removeExternalAbortListener?.(),this.removeExternalAbortListener=void 0,this.abortController=void 0}}};function H(e,t){if(t.kind===`none`)return;let n=t.signal,r=e.abort.bind(e);if(n.aborted){r();return}return n.addEventListener(`abort`,r,{once:!0}),n.removeEventListener.bind(n,`abort`,r)}function U(e){return String(e||``).trim().replace(/=+$/g,``)}function W(e){let t=String(e.response?.clientDataJSON||``).trim();if(!t)throw Error(`WebAuthn authentication response missing clientDataJSON`);let r=``;try{r=new TextDecoder().decode(n(t))}catch(e){throw Error(`WebAuthn authentication response has invalid clientDataJSON encoding: ${e instanceof Error?e.message:String(e)}`)}let i;try{i=JSON.parse(r)}catch(e){throw Error(`WebAuthn authentication response has invalid clientDataJSON JSON: ${e instanceof Error?e.message:String(e)}`)}let a=i&&typeof i==`object`?i.challenge:void 0;if(typeof a!=`string`||!a.trim())throw Error(`WebAuthn authentication response clientDataJSON missing challenge`);return a}function G(e,t){let n=U(W(e)),r=U(t);if(n!==r)throw Error(`Unexpected authentication response challenge "${n}", expected "${r}"`)}function K(e,t){return t===void 0||t===1?e:`${e} (${t})`}function q(e){let t=()=>{document.hidden&&e.abort()},n=()=>{e.abort()},r=()=>{e.abort()};return document.addEventListener(`visibilitychange`,t,{passive:!0}),window.addEventListener(`pagehide`,n,{passive:!0}),window.addEventListener(`beforeunload`,r,{passive:!0}),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`pagehide`,n),window.removeEventListener(`beforeunload`,r)}}async function J(e){let t=e.request.payload.walletId,n=window.location.origin,r=await d({walletId:t,operation:e.request.operation,payload:e.request.payload,requestOrigin:n}),i=await p({credentialStore:o,touchIdPrompt:new V(e.rpId),walletId:t,challengeB64u:r,includeSecondPrfOutput:!1}),a=ee(i);if(!a)throw Error(`Wallet recovery proof did not receive a passkey credential`);return{kind:`passkey`,walletId:t,rpId:e.rpId,credentialIdB64u:a,challenge_digest:r,webauthn_authentication:u(i)}}function Y(){return r(`wallet-recovery-admin`,16,`wallet recovery administration request IDs`)}async function X(e){let t=Y(),n={walletId:e.walletId,requestId:t},r=await J({rpId:e.rpId,request:{operation:`recovery_status`,payload:n}});return await _({relayUrl:e.relayUrl,walletId:e.walletId,requestId:t,factorProof:r})}async function Z(e){let t=Y(),n={walletId:e.walletId,requestId:t,expectedIssuedAtMs:e.expectedIssuedAtMs},r=await J({rpId:e.rpId,request:{operation:`recovery_backup_acknowledge`,payload:n}});return await y({relayUrl:e.relayUrl,walletId:e.walletId,requestId:t,expectedIssuedAtMs:e.expectedIssuedAtMs,factorProof:r})}async function Q(e){let t=await o.resolveSelectedWalletAuthority(e);if(t.kind!==`resolved`||t.selection.lockState!==`unlocked`||String(t.selection.walletId)!==e||t.selection.walletAuthMethodId!==t.authMethod.walletAuthMethodId||t.authMethod.kind!==`email_otp`||t.authMethod.status!==`active`||t.authority.state!==`active`||String(t.authMethod.walletId)!==e||String(t.authority.walletId)!==e)throw Error(`Unlock this wallet with its active Email OTP method`);let n=await o.listWalletAuthMethodsForWallet(e),r=null;for(let e of n)if(!(e.kind!==`email_otp`||e.status!==`active`||e.localStatus!==`synced`||String(e.authority.bindingId)!==String(t.authMethod.walletAuthMethodId))){if(r!==null)throw Error(`The selected Email OTP owner method is duplicated`);r=String(e.authority.factor.providerUserId||``).trim()}if(!r)throw Error(`The selected Email OTP owner method is unavailable on this wallet`);return{walletAuthMethodId:String(t.authMethod.walletAuthMethodId),providerSubjectId:r}}async function $(e){let t=e.request.payload.walletId,{providerSubjectId:n}=await Q(t),r=window.location.origin,i=await d({walletId:t,operation:e.request.operation,payload:e.request.payload,requestOrigin:r}),a=await h({relayUrl:e.relayUrl,walletId:t,providerSubjectId:n,operation:e.request.operation,payload:e.request.payload,requestOrigin:r});if(a.kind!==`ready`)throw Error(a.message);if(a.challenge_digest!==i)throw Error(`Recovery Email OTP challenge does not match this operation`);let o=await e.context.signingEngine.requestEmailOtpOwnerConfirmation({purpose:e.request.operation,walletId:t,emailAddress:`your email`,challengeId:a.challengeId});if(o.challengeId!==a.challengeId)throw Error(`Recovery Email OTP confirmation changed its challenge`);return{kind:`email_otp`,provider_subject_id:n,challenge_id:o.challengeId,otp_code:o.otpCode,challenge_digest:i}}async function te(e){let t=Y(),n={walletId:e.walletId,requestId:t},r=await $({context:e.context,relayUrl:e.relayUrl,request:{operation:`recovery_status`,payload:n}});return await _({relayUrl:e.relayUrl,walletId:e.walletId,requestId:t,factorProof:r})}async function ne(e){let t=Y(),n={walletId:e.walletId,requestId:t,expectedIssuedAtMs:e.expectedIssuedAtMs},r=await $({context:e.context,relayUrl:e.relayUrl,request:{operation:`recovery_backup_acknowledge`,payload:n}});return await y({relayUrl:e.relayUrl,walletId:e.walletId,requestId:t,expectedIssuedAtMs:e.expectedIssuedAtMs,factorProof:r})}export{X as a,_ as c,te as i,h as l,Z as n,Q as o,$ as r,V as s,ne as t,x as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,E as t,M as n,N as r,O as i,c as a,j as o,k as s,s as c}from"./domainIds-t1lp25yU.js";import{E as l,c as u,d,k as f}from"./chains-gV2K9gA4.js";import{D as p,E as m,G as h,H as g,J as _,M as v,N as y,O as b,W as x,X as S,ct as C,it as w,j as T,k as E}from"./activeWalletSession-H9JBdHyQ.js";import{i as D,r as O}from"./base64-BmKR3UqU.js";import{s as ee}from"./walletDbName-DDJXrgA5.js";import{n as te,t as ne}from"./signingSessionSeal-DqbjG8c8.js";import{l as re}from"./capabilityKinds-BzrNeEyO.js";import{k}from"./registrationIntent-DTs2SR9E.js";import{d as ie,t as A}from"./accountIds-D5NI31F2.js";import{w as ae}from"./walletCapabilityBindings-CUPk3mVH.js";import{$t as oe,Ht as se,Ot as ce,an as le,ct as ue,dn as de,et as fe,fn as pe,in as me,ln as he,nn as ge,rn as _e,sn as ve,tn as ye}from"./emailOtpEcdsaDerivationIdentity-CIh9IPai.js";import{i as be}from"./walletAuthMethodRecord-yIqCeE-o.js";import{C as xe}from"./ecdsaCapabilityManifest--FjbES8k.js";import{D as Se,g as j,h as Ce,m as M,t as N,v as P}from"./indexedDB-C1odKEC6.js";import{o as we}from"./helpers-CXqXyyCU.js";import{M as Te,h as Ee,m as De}from"./accountLifecycle-B98g9zN9.js";import{r as Oe}from"./walletCustodyEcdsaContinuity-DlOBCmwb.js";import{a as ke,n as F,t as Ae}from"./wallet-recovery-BjIQdOha.js";import{n as je}from"./challengeDelivery-FW9gYyr0.js";function Me(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`wallet recovery target must be an object`);let t=e,n=Object.keys(t);switch(t.kind){case`passkey`:{if(n.length!==2||!n.includes(`rpId`))throw Error(`Passkey recovery target fields are invalid`);let e=r(t.rpId);if(!e.ok)throw Error(`Passkey recovery target RP ID is invalid`);return{kind:`passkey`,rpId:e.value}}case`google_email_otp`:if(n.length!==2||!n.includes(`googleProvider`)||t.googleProvider!==`google`)throw Error(`Google Email OTP recovery target fields are invalid`);return{kind:`google_email_otp`,googleProvider:`google`};default:throw Error(`wallet recovery target kind is unsupported`)}}const Ne=[`ok`,`walletId`,`target`,`recoveryOperationId`,`targetDeviceId`,`targetAuthorityId`,`targetWalletAuthMethodId`,`wrap`,`entries`,`keyManifest`,`reservationId`,`reservationExpiresAtMs`,`storeVersion`],Pe=[...Ne,`registration`];function I(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Fe(e,t,n){let r=new Set(t),i=Object.keys(e);if(i.length!==r.size||i.some(e=>!r.has(e)))throw Error(`${n} contains unexpected fields`)}function L(e,t,n){let r=I(e,n);return Fe(r,t,n),r}function R(e,t){return Object.prototype.hasOwnProperty.call(e,t)?Reflect.get(e,t):void 0}function Ie(e){try{return I(e,`walletRecoveryPrepare response`)}catch{return null}}function Le(e){let t=s(e.walletId);if(!t.ok)throw Error(`wallet recovery ${t.error.message}`);return JSON.stringify({walletId:String(t.value),wrap:e.prepared.wrap,entry:e.prepared.entries[0]})}async function Re(e){let t=await ze(e);return t.ok?await Be({response:t.response,target:e.target,reservationId:e.reservationId}):{kind:t.kind}}async function ze(e){let t=`${C(e.relayUrl)}/wallets/recovery/prepare`,n=e.fetchImpl||fetch;try{return{ok:!0,response:await n(t,w({body:{recoveryCodeB64u:e.recoveryCodeB64u,reservationId:e.reservationId,target:e.target}}))}}catch{return{ok:!1,kind:`transport_uncertain`}}}async function Be(e){let n=e.response,r=Ie(await n.json().catch(()=>({})));if(n.status===200&&r&&R(r,`ok`)===!0)try{let n=L(r,e.target.kind===`passkey`?Pe:Ne,`walletRecoveryPrepare`),a=Ke()(R(n,`wrap`),`walletRecoveryPrepare.wrap`),c=qe(R(n,`entries`)),l=s(R(n,`walletId`));if(!l.ok)throw Error(`walletRecoveryPrepare.walletId is invalid`);let u=l.value,d=Me(R(n,`target`));if(!We(d,e.target))throw Error(`wallet recovery preparation changed the recovery target`);let f=o(R(n,`recoveryOperationId`)),p=re(R(n,`targetDeviceId`)),m=i(R(n,`targetAuthorityId`)),h=t(R(n,`targetWalletAuthMethodId`));if(!f.ok||!p.ok||!m.ok||!h.ok)throw Error(`wallet recovery preparation target identity is invalid`);let g=Je(R(n,`keyManifest`),u),_=P(R(n,`reservationId`)),v=y(R(n,`reservationExpiresAtMs`),`walletRecoveryPrepare.reservationExpiresAtMs`),b=z(R(n,`storeVersion`),`storeVersion`);if(_!==e.reservationId)throw Error(`wallet recovery preparation changed the reservation identity`);let x={kind:`prepared`,walletId:u,recoveryOperationId:f.value,targetDeviceId:p.value,targetAuthorityId:m.value,targetWalletAuthMethodId:h.value,wrap:a,entries:c,keyManifest:g,reservationId:_,reservationExpiresAtMs:v,storeVersion:b};switch(d.kind){case`passkey`:{let e=Ve(String(u),d.rpId)(R(n,`registration`),`registration`);if(e.walletAuthMethodId!==h.value)throw Error(`wallet recovery registration changed the target auth method`);return{...x,target:d,registration:e}}case`google_email_otp`:if(Object.prototype.hasOwnProperty.call(n,`registration`))throw Error(`Google Email OTP recovery cannot carry passkey registration`);return{...x,target:d};default:return Ge(d)}}catch{return{kind:`transport_uncertain`}}return n.status===409?{kind:`retryable_conflict`}:n.status===401&&r&&R(r,`code`)===`recovery_code_used`?{kind:`consumed`}:n.status===401||n.status===400?{kind:`refused`}:{kind:`transport_uncertain`}}function Ve(e,i){let a=D(new TextEncoder().encode(e)),o=x({type:g(`public-key`),id:(e,t)=>{let r=h(n)(e,t);return ot(r,t),r}});return x({kind:g(`webauthn_recovery_registration_v1`),challengeId:z,challengeB64u:(e,t)=>at(e,32,t),replacementId:z,walletAuthMethodId:h(t),rpId:h(r),user:x({idB64u:ot,name:z,displayName:z},(t,n)=>{if(t.idB64u!==a||t.name!==e||t.displayName!==e)throw Error(`${n} is bound to another wallet`)}),pubKeyCredParams:(e,t)=>{if(!Array.isArray(e)||e.length!==2)throw Error(`${t} is invalid`);return[He(-7)(e[0],`${t}[0]`),He(-257)(e[1],`${t}[1]`)]},authenticatorSelection:x({residentKey:g(`required`),userVerification:g(`preferred`)}),timeoutMs:(e,t)=>{let n=Number(e);if(!Number.isSafeInteger(n)||n<=0)throw Error(`${t} is invalid`);return n},attestation:g(`none`),extensions:x({prf:x({eval:x({firstB64u:Ue(ne),secondB64u:Ue(te)})})}),excludeCredentials:(e,t)=>l(e,t).map((e,n)=>o(e,`${t}[${n}]`))},(e,t)=>{if(e.rpId!==i)throw Error(`${t} changed the relying party`)})}function He(e){return x({type:g(`public-key`),alg:(t,n)=>{if(t!==e)throw Error(`${n} is invalid`);return e}})}function Ue(e){return(t,n)=>{let r=at(t,e.length,n);if(r!==D(e))throw Error(`${n} is unsupported`);return r}}function We(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`passkey`:return t.kind===`passkey`&&e.rpId===t.rpId;case`google_email_otp`:return t.kind===`google_email_otp`&&e.googleProvider===t.googleProvider;default:return Ge(e)}}function Ge(e){throw Error(`unsupported wallet recovery target: ${String(e)}`)}function Ke(){return x({nonceB64u:E,wrappedManifestKekB64u:b,aadHashB64u:m})}function qe(e){if(!Array.isArray(e)||e.length!==1)throw Error(`walletRecoveryPrepare.entries must contain exactly one custody seed`);return[ke(e[0],`walletRecoveryPrepare.entries[0]`)]}function z(e,t){if(typeof e!=`string`||!e.trim())throw Error(`walletRecoveryPrepare.${t} must be a non-empty string`);return e.trim()}function Je(e,t){let n=L(e,[`version`,`walletId`,`entries`],`walletRecoveryPrepare.keyManifest`);if(R(n,`version`)!==`wallet_recovery_preparation_key_manifest_v1`)throw Error(`walletRecoveryPrepare.keyManifest version is invalid`);let r=z(R(n,`walletId`),`keyManifest.walletId`);if(r!==t)throw Error(`walletRecoveryPrepare.keyManifest changed the wallet identity`);let i=R(n,`entries`);if(!Array.isArray(i)||i.length===0)throw Error(`walletRecoveryPrepare.keyManifest must contain a key set`);let a=i.map(e=>Ye(e,r));if(new Set(a.map(e=>e.keySetId)).size!==a.length)throw Error(`walletRecoveryPrepare.keyManifest contains duplicate key sets`);return{version:`wallet_recovery_preparation_key_manifest_v1`,walletId:r,entries:a}}function Ye(e,t){switch(R(I(e,`walletRecoveryPrepare.keyManifest.entries[]`),`kind`)){case`near_ed25519`:{let n=L(e,[`kind`,`keySetId`,`signerId`,`nearAccountId`,`recordedKeyManifestDigestB64u`,`recoveryBasis`],`walletRecoveryPrepare.keyManifest.entries[].near_ed25519`),r=z(R(n,`signerId`),`keyManifest.entries[].signerId`),i=z(R(n,`keySetId`),`keyManifest.entries[].keySetId`),a=`near_ed25519:${r}`;if(i!==a)throw Error(`walletRecoveryPrepare NEAR key-set identity is inconsistent`);let o=z(R(n,`nearAccountId`),`keyManifest.entries[].nearAccountId`),s=Xe(R(n,`recoveryBasis`),t);return{kind:`near_ed25519`,keySetId:a,signerId:r,nearAccountId:o,recordedKeyManifestDigestB64u:m(R(n,`recordedKeyManifestDigestB64u`),`walletRecoveryPrepare.keyManifest.entries[].recordedKeyManifestDigestB64u`),recoveryBasis:s}}case`evm_family_ecdsa`:{let n=L(e,[`kind`,`keySetId`,`keyHandle`,`evmFamilySigningKeySlotId`,`recordedKeyManifestDigestB64u`,`recoveryBasis`],`walletRecoveryPrepare.keyManifest.entries[].evm_family_ecdsa`),r=z(R(n,`keyHandle`),`keyManifest.entries[].keyHandle`),i=z(R(n,`keySetId`),`keyManifest.entries[].keySetId`),a=`evm_family_ecdsa:${r}`;if(i!==a)throw Error(`walletRecoveryPrepare ECDSA key-set identity is inconsistent`);let o=Ze(R(n,`recoveryBasis`),t);return{kind:`evm_family_ecdsa`,keySetId:a,keyHandle:r,evmFamilySigningKeySlotId:ve(R(n,`evmFamilySigningKeySlotId`)),recordedKeyManifestDigestB64u:m(R(n,`recordedKeyManifestDigestB64u`),`walletRecoveryPrepare.keyManifest.entries[].recordedKeyManifestDigestB64u`),recoveryBasis:o}}default:throw Error(`walletRecoveryPrepare key-manifest entry kind is invalid`)}}function Xe(e,t){let n=L(e,[`capabilityKind`,`activeCapabilityBinding`,`scope`,`applicationBinding`,`participantIds`,`registeredPublicKey`,`runtimePolicyScope`,`activationTranscript`,`activationStateEpoch`,`signingWorkerVerifyingShare`],`walletRecoveryPrepare.keyManifest.entries[].recoveryBasis`),r=R(n,`capabilityKind`);if(r!==`registration`&&r!==`recovery`)throw Error(`walletRecoveryPrepare NEAR recovery capability kind is invalid`);let i=B(R(n,`activeCapabilityBinding`),32,`NEAR recovery active capability binding`),a=tt(R(n,`scope`)),o=nt(R(n,`applicationBinding`)),s=it(R(n,`participantIds`),`NEAR recovery participant IDs`),c=B(R(n,`registeredPublicKey`),32,`NEAR recovery registered public key`),l=rt(R(n,`runtimePolicyScope`)),u=B(R(n,`activationTranscript`),32,`NEAR recovery activation transcript`),d=Number(R(n,`activationStateEpoch`));if(!Number.isSafeInteger(d)||d<=0)throw Error(`walletRecoveryPrepare NEAR recovery activation state epoch is invalid`);let f=B(R(n,`signingWorkerVerifyingShare`),32,`NEAR recovery signing-worker verifying share`);if(o.wallet_id!==t||a.account_id!==t||a.root_share_epoch!==l.signingRootVersion)throw Error(`walletRecoveryPrepare NEAR recovery basis changed its wallet scope`);return{capabilityKind:r,activeCapabilityBinding:i,scope:a,applicationBinding:o,participantIds:s,registeredPublicKey:c,runtimePolicyScope:l,activationTranscript:u,activationStateEpoch:d,signingWorkerVerifyingShare:f}}function Ze(e,t){let n=L(e,[`publicCapability`,`activationReceipt`,`serverGeneration`,`clientRootPublicKey33B64u`,`chainTargets`,`ecdsaThresholdKeyId`,`signingRootId`,`signingRootVersion`,`runtimePolicyScope`,`participantIds`,`possessionChallenge`],`walletRecoveryPrepare.keyManifest.entries[].recoveryBasis`),r=fe(R(n,`publicCapability`)),i=ue(R(n,`activationReceipt`));if(r.client_id!==t)throw Error(`walletRecoveryPrepare ECDSA recovery capability changed the wallet scope`);let a=_e(R(n,`signingRootId`)),o=me(R(n,`signingRootVersion`)),s=rt(R(n,`runtimePolicyScope`));if(s.signingRootVersion!==o)throw Error(`walletRecoveryPrepare ECDSA recovery scope changed the signing root`);let c=oe(R(n,`serverGeneration`));if(String(i.server_generation)!==String(c))throw Error(`walletRecoveryPrepare ECDSA activation receipt changed server generation`);let l=Ae(R(n,`possessionChallenge`));if(l.walletId!==t||l.expectedServerGeneration!==String(c)||l.derivationClientSharePublicKey33B64u!==r.public_identity.derivation_client_share_public_key33_b64u)throw Error(`walletRecoveryPrepare ECDSA possession challenge changed its capability`);return{publicCapability:r,activationReceipt:i,serverGeneration:c,clientRootPublicKey33B64u:ge(z(R(n,`clientRootPublicKey33B64u`),`keyManifest.entries[].recoveryBasis.clientRootPublicKey33B64u`)),chainTargets:Qe(R(n,`chainTargets`)),ecdsaThresholdKeyId:le(R(n,`ecdsaThresholdKeyId`)),signingRootId:a,signingRootVersion:o,runtimePolicyScope:s,participantIds:et(R(n,`participantIds`)),possessionChallenge:l}}function Qe(e){if(!Array.isArray(e)||e.length===0)throw Error(`walletRecoveryPrepare ECDSA recovery chain targets are invalid`);let t=e.map((e,t)=>$e(e,t));if(new Set(t.map(Se)).size!==t.length)throw Error(`walletRecoveryPrepare ECDSA recovery chain targets are duplicated`);let n=t[0];if(!n)throw Error(`walletRecoveryPrepare ECDSA recovery chain targets are invalid`);return[n,...t.slice(1)]}function $e(e,t){let n=`walletRecoveryPrepare.keyManifest.entries[].recoveryBasis.chainTargets[${t}]`,r=I(e,n),i=R(r,`kind`);Fe(r,i===`evm`?[`kind`,`namespace`,`chainId`,`networkSlug`]:[`kind`,`chainId`,`networkSlug`],n);let a=R(r,`namespace`),o=Number(R(r,`chainId`));if(!Number.isSafeInteger(o)||o<=0)throw Error(`walletRecoveryPrepare ECDSA recovery chain id is invalid`);let s=R(r,`networkSlug`),c=typeof s==`string`&&s.trim()?s.trim():null;if(i===`evm`){if(a!==`eip155`)throw Error(`walletRecoveryPrepare ECDSA recovery EVM namespace is invalid`);return{kind:`evm`,namespace:`eip155`,chainId:o,networkSlug:c??`evm-${o}`}}if(i===`tempo`)return{kind:`tempo`,chainId:o,networkSlug:c??`tempo-${o}`};throw Error(`walletRecoveryPrepare ECDSA recovery chain family is invalid`)}function et(e){if(!Array.isArray(e)||e.length!==2||e[0]!==1||e[1]!==2)throw Error(`walletRecoveryPrepare ECDSA recovery participant IDs are invalid`);return[1,2]}function tt(e){let t=L(e,[`lifecycle_id`,`root_share_epoch`,`account_id`,`threshold_session_id`,`signer_set_id`,`signing_worker_id`,`material_activation`],`walletRecoveryPrepare.keyManifest.entries[].recoveryBasis.scope`);return{lifecycle_id:z(R(t,`lifecycle_id`),`keyManifest.entries[].recoveryBasis.scope.lifecycle_id`),root_share_epoch:z(R(t,`root_share_epoch`),`keyManifest.entries[].recoveryBasis.scope.root_share_epoch`),account_id:z(R(t,`account_id`),`keyManifest.entries[].recoveryBasis.scope.account_id`),threshold_session_id:z(R(t,`threshold_session_id`),`keyManifest.entries[].recoveryBasis.scope.threshold_session_id`),signer_set_id:z(R(t,`signer_set_id`),`keyManifest.entries[].recoveryBasis.scope.signer_set_id`),signing_worker_id:z(R(t,`signing_worker_id`),`keyManifest.entries[].recoveryBasis.scope.signing_worker_id`),material_activation:he(R(t,`material_activation`))}}function nt(e){let t=L(e,[`wallet_id`,`near_ed25519_signing_key_id`,`signing_root_id`,`key_creation_signer_slot`],`walletRecoveryPrepare.keyManifest.entries[].recoveryBasis.applicationBinding`),n=Number(R(t,`key_creation_signer_slot`));if(!Number.isSafeInteger(n)||n<=0)throw Error(`walletRecoveryPrepare NEAR recovery key-creation signer slot is invalid`);return{wallet_id:z(R(t,`wallet_id`),`keyManifest.entries[].recoveryBasis.applicationBinding.wallet_id`),near_ed25519_signing_key_id:z(R(t,`near_ed25519_signing_key_id`),`keyManifest.entries[].recoveryBasis.applicationBinding.near_ed25519_signing_key_id`),signing_root_id:z(R(t,`signing_root_id`),`keyManifest.entries[].recoveryBasis.applicationBinding.signing_root_id`),key_creation_signer_slot:n}}function rt(e){let t=L(e,[`orgId`,`projectId`,`envId`,`signingRootVersion`],`walletRecoveryPrepare.keyManifest.entries[].recoveryBasis.runtimePolicyScope`);try{return S(t)}catch{throw Error(`walletRecoveryPrepare NEAR recovery runtime policy scope is invalid`)}}function it(e,t){if(!Array.isArray(e)||e.length!==2||!Number.isSafeInteger(e[0])||!Number.isSafeInteger(e[1])||Number(e[0])<=0||Number(e[1])<=0||Number(e[0])===Number(e[1]))throw Error(`walletRecoveryPrepare ${t} is invalid`);return[Number(e[0]),Number(e[1])]}function at(e,t,n){let r=z(e,n),i=O(r);if(i.length!==t||D(i)!==r)throw Error(`walletRecoveryPrepare ${n} is invalid`);return r}function ot(e,t){let n=z(e,t),r=O(n);if(r.length===0||D(r)!==n)throw Error(`walletRecoveryPrepare ${t} is invalid`);return n}function B(e,t,n){if(!Array.isArray(e)||e.length!==t||e.some(e=>!Number.isInteger(e)||e<0||e>255))throw Error(`walletRecoveryPrepare ${n} is invalid`);return e.map(Number)}const st=`/wallets/recovery/finalize`;async function ct(e){let t=`${C(e.relayUrl)}${st}`,n=e.fetchImpl||fetch,r;try{r=we(e.webauthnRegistration)}catch{return{kind:`refused`}}let i;try{let t=new Set;i=e.ecdsaMaterialPossessionProofs.map(e=>{if(typeof e.keySetId!=`string`||!e.keySetId.startsWith(`evm_family_ecdsa:`)||e.keySetId.length<=17)throw Error(`ECDSA possession proof key-set id is invalid`);if(t.has(e.keySetId))throw Error(`ECDSA possession proof key-set ids are duplicated`);return t.add(e.keySetId),{keySetId:e.keySetId,proof:F(e.proof)}})}catch{return{kind:`refused`}}let a;try{if(a=k(e.replacementEnvelope,`walletRecoveryFinalize.replacementEnvelope`),String(a.walletId)!==String(e.walletId))throw Error(`replacement envelope changed the wallet identity`);if(String(a.envelopeId)!==String(e.replacementId))throw Error(`replacement envelope changed the replacement identity`);if(a.factor.kind!==`passkey`)throw Error(`replacement envelope is not bound to a passkey`)}catch{return{kind:`refused`}}let o;try{o=await n(t,w({body:{kind:`finalize`,walletId:e.walletId,reservationId:e.reservationId,recoveryOperationId:e.recoveryOperationId,targetDeviceId:e.targetDeviceId,targetAuthorityId:e.targetAuthorityId,targetWalletAuthMethodId:e.targetWalletAuthMethodId,challengeId:e.challengeId,replacementId:e.replacementId,webauthnRegistration:r,replacementEnvelope:a,ecdsaMaterialPossessionProofs:i}}))}catch{return{kind:`transport_uncertain`}}let s=ut(await o.json().catch(()=>({})));if(o.status===200&&s.kind===`success`)try{let t=await j(s.projection,dt(e,a));if(t.kind!==`passkey`)throw Error(`recovery projection branch changed`);return{kind:`promoted`,storeVersion:t.storeVersion,authority:t.authority,authMethod:t.authMethod}}catch{return{kind:`transport_uncertain`}}return o.status===409?{kind:`retryable_conflict`}:o.status===400||o.status===401?{kind:`refused`}:{kind:`transport_uncertain`}}async function lt(e){let t;try{if(t=k(e.replacementEnvelope,`walletRecoveryReplay.replacementEnvelope`),String(t.walletId)!==String(e.walletId)||String(t.envelopeId)!==String(e.replacementId)||t.factor.kind!==`passkey`)throw Error(`recovery replay envelope identity is invalid`)}catch{return{kind:`refused`}}let n;try{n=await(e.fetchImpl??fetch)(`${C(e.relayUrl)}${st}`,w({body:{kind:`replay`,walletId:e.walletId,reservationId:e.reservationId,recoveryOperationId:e.recoveryOperationId,targetDeviceId:e.targetDeviceId,targetAuthorityId:e.targetAuthorityId,targetWalletAuthMethodId:e.targetWalletAuthMethodId,replacementId:e.replacementId,replacementEnvelope:t}}))}catch{return{kind:`transport_uncertain`}}let r=ut(await n.json().catch(()=>({})));if(n.status===200&&r.kind===`success`)try{let n=await j(r.projection,dt(e,t));if(n.kind!==`passkey`)throw Error(`recovery projection branch changed`);return{kind:`promoted`,storeVersion:n.storeVersion,authority:n.authority,authMethod:n.authMethod}}catch{return{kind:`transport_uncertain`}}return n.status===409?{kind:`retryable_conflict`}:n.status===400||n.status===401?{kind:`refused`}:{kind:`transport_uncertain`}}function ut(e){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)return{kind:`invalid`};let t=new Map(Object.entries(e)),n=[...t.keys()];if(t.size===2&&n.includes(`ok`)&&n.includes(`projection`)&&t.get(`ok`)===!0)return{kind:`success`,projection:t.get(`projection`)};let r=t.get(`code`),i=t.get(`message`);return t.size===3&&n.includes(`ok`)&&n.includes(`code`)&&n.includes(`message`)&&t.get(`ok`)===!1&&typeof r==`string`&&typeof i==`string`?{kind:`failure`,code:r,message:i}:{kind:`invalid`}}function dt(e,n){if(n.factor.kind!==`passkey`)throw Error(`replacement envelope is not a passkey envelope`);return{kind:`passkey`,walletId:V(s(e.walletId)),recoveryOperationId:V(o(e.recoveryOperationId)),targetDeviceId:V(re(e.targetDeviceId)),targetAuthorityId:V(i(e.targetAuthorityId)),targetWalletAuthMethodId:V(t(e.targetWalletAuthMethodId)),rpId:n.factor.rpId,credentialIdB64u:n.factor.credentialIdB64u}}function V(e){if(!e.ok)throw Error(`invalid recovery identity`);return e.value}function H(e){return e.target.kind===`passkey`}function ft(e){return{kind:`email_otp_enrollment_reference_v1`,enrollmentId:e.enrollment.enrollmentId,enrollmentSealKeyVersion:e.enrollment.kind===`existing`?e.enrollment.enrollmentSealKeyVersion:e.enrollment.material.enrollmentSealKeyVersion}}const pt=[`kind`,`keySetId`,`applicationBindingDigestB64u`,`registeredPublicKeyB64u`,`participantIds`,`stateEpoch`,`signingWorkerVerifyingShareB64u`,`materialActivation`,`sealed`],mt=[`kind`,`keySetId`,`possessionProof`,`readyStateBlobB64u`,`publicFacts`],ht=[`contextBinding32B64u`,`derivationClientSharePublicKey33B64u`,`clientVerifyingShare33B64u`,`relayerPublicKey33B64u`,`groupPublicKey33B64u`,`ethereumAddress`,`clientShareRetryCounter`,`relayerShareRetryCounter`],gt=[`kind`,`version`,`recoveryOperationId`,`walletId`,`reservationId`,`targetDeviceId`,`targetAuthorityId`,`targetWalletAuthMethodId`,`replacementEnvelope`,`keyManifest`,`nearKeySets`,`ecdsaKeySets`,`target`];function U(e,t,n){if(_(e,t,n),Object.keys(e).length!==t.length)throw Error(n+` fields are invalid`)}function W(e,t){if(typeof e!=`string`||!e||e.trim()!==e)throw Error(t+` must be a non-empty canonical string`);return e}function G(e,t,n){let r=W(e,t),i=O(r);if(n!==void 0&&i.byteLength!==n)throw Error(t+` must decode to `+n+` bytes`);return r}function _t(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)throw Error(t+` must be a non-negative safe integer`);return e}function vt(e,t){if(!Array.isArray(e)||e.length!==2||e.some(yt))throw Error(t+` must contain two positive participant IDs`);return[e[0],e[1]]}function yt(e){return typeof e!=`number`||!Number.isSafeInteger(e)||e<1}function bt(e,t){let n=W(f(t,`recovery durable NEAR key set`).keySetId,`recovery durable NEAR keySetId`),r=e.entries.find(e=>e.keySetId===n);if(!r||r.kind!==`near_ed25519`)throw Error(`recovery durable NEAR key-set manifest entry is invalid`);return r}function xt(e,t){let n=W(f(t,`recovery durable ECDSA key set`).keySetId,`recovery durable ECDSA keySetId`),r=e.entries.find(e=>e.keySetId===n);if(!r||r.kind!==`evm_family_ecdsa`)throw Error(`recovery durable ECDSA key-set manifest entry is invalid`);return r}function St(e){let t=ee(e);if(!t)throw Error(`recovery runtime policy scope is invalid`);return t}function Ct(t,n){let r=f(t,`recovery durable NEAR key set`);if(U(r,pt,`recovery durable NEAR key set`),r.kind!==`near_ed25519`||r.keySetId!==n.keySetId)throw Error(`recovery durable NEAR key-set identity is invalid`);let i=n.recoveryBasis,a=i.scope.threshold_session_id;if(!e(a).ok)throw Error(`recovery durable NEAR thresholdSessionId is invalid`);let o={kind:Te,applicationBindingDigestB64u:m(r.applicationBindingDigestB64u,`recovery durable NEAR application binding digest`),registeredPublicKeyB64u:p(r.registeredPublicKeyB64u,`recovery durable NEAR registered public key`),participantIds:vt(r.participantIds,`recovery durable NEAR participantIds`),stateEpoch:W(r.stateEpoch,`recovery durable NEAR stateEpoch`),walletId:i.applicationBinding.wallet_id,nearAccountId:n.nearAccountId,nearEd25519SigningKeyId:i.applicationBinding.near_ed25519_signing_key_id,signerSlot:T(i.applicationBinding.key_creation_signer_slot,`recovery durable NEAR signerSlot`),signingWorkerId:i.scope.signing_worker_id,signingWorkerVerifyingShareB64u:p(r.signingWorkerVerifyingShareB64u,`recovery durable NEAR signing-worker verifying share`)},s=f(r.sealed,`recovery durable NEAR sealed material`);return U(s,[`ciphertextB64u`,`nonceB64u`],`recovery durable NEAR sealed material`),{kind:`near_ed25519`,keySetId:n.keySetId,binding:o,thresholdSessionId:a,runtimePolicyScope:St(i.runtimePolicyScope),materialActivation:he(r.materialActivation),sealed:{ciphertextB64u:b(s.ciphertextB64u,`recovery durable NEAR ciphertext`),nonceB64u:E(s.nonceB64u,`recovery durable NEAR nonce`)}}}function wt(e){let t=f(e,`recovery durable ECDSA public facts`);U(t,ht,`recovery durable ECDSA public facts`);let n=W(t.ethereumAddress,`recovery durable ECDSA ethereumAddress`).toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(n))throw Error(`recovery durable ECDSA ethereumAddress is invalid`);return{contextBinding32B64u:m(t.contextBinding32B64u,`recovery durable ECDSA context binding`),derivationClientSharePublicKey33B64u:v(t.derivationClientSharePublicKey33B64u,`recovery durable ECDSA client share`),clientVerifyingShare33B64u:v(t.clientVerifyingShare33B64u,`recovery durable ECDSA client verifying share`),relayerPublicKey33B64u:v(t.relayerPublicKey33B64u,`recovery durable ECDSA relayer public key`),groupPublicKey33B64u:v(t.groupPublicKey33B64u,`recovery durable ECDSA group public key`),ethereumAddress:n,clientShareRetryCounter:_t(t.clientShareRetryCounter,`recovery durable ECDSA client-share retry counter`),relayerShareRetryCounter:_t(t.relayerShareRetryCounter,`recovery durable ECDSA relayer-share retry counter`)}}function Tt(e,t){let n=f(e,`recovery durable ECDSA key set`);if(U(n,mt,`recovery durable ECDSA key set`),n.kind!==`evm_family_ecdsa`||n.keySetId!==t.keySetId)throw Error(`recovery durable ECDSA key-set identity is invalid`);return{kind:`evm_family_ecdsa`,entry:t,possessionProof:F(n.possessionProof),readyStateBlobB64u:G(n.readyStateBlobB64u,`recovery durable ECDSA ready-state blob`),publicFacts:wt(n.publicFacts)}}function Et(e){let t=f(e,`recovery durable registration`);if(U(t,[`kind`,`id`,`rawId`,`type`,`authenticatorAttachment`,`response`],`recovery durable registration`),t.kind!==`wallet_recovery_redacted_registration_v1`)throw Error(`recovery durable registration kind is invalid`);if(t.authenticatorAttachment!==null&&typeof t.authenticatorAttachment!=`string`)throw Error(`recovery durable registration authenticatorAttachment is invalid`);let n=f(t.response,`recovery durable registration response`);if(U(n,[`clientDataJSON`,`attestationObject`,`transports`],`recovery durable registration response`),!Array.isArray(n.transports))throw Error(`recovery durable registration transports are invalid`);return{kind:`wallet_recovery_redacted_registration_v1`,id:W(t.id,`recovery durable registration id`),rawId:G(t.rawId,`recovery durable registration rawId`),type:W(t.type,`recovery durable registration type`),authenticatorAttachment:t.authenticatorAttachment,response:{clientDataJSON:G(n.clientDataJSON,`recovery durable registration clientDataJSON`),attestationObject:G(n.attestationObject,`recovery durable registration attestationObject`),transports:n.transports.map((e,t)=>W(e,`recovery durable registration transports[`+t+`]`))}}}function Dt(e){let t=f(e,`recovery durable Email OTP enrollment`);if(t.kind===`existing`)return U(t,[`kind`,`enrollmentId`,`enrollmentSealKeyVersion`],`recovery durable existing Email OTP enrollment`),{kind:`existing`,enrollmentId:W(t.enrollmentId,`recovery enrollmentId`),enrollmentSealKeyVersion:W(t.enrollmentSealKeyVersion,`recovery enrollment seal-key version`)};if(t.kind!==`create`)throw Error(`recovery durable Email OTP enrollment kind is invalid`);U(t,[`kind`,`enrollmentId`,`providerSubject`,`verifiedEmail`,`material`],`recovery durable create Email OTP enrollment`);let n=f(t.material,`recovery durable enrollment material`);return U(n,[`enrollmentSealKeyVersion`,`clientUnlockPublicKeyB64u`,`unlockKeyVersion`,`serverSealedFactorCiphertextB64u`],`recovery durable enrollment material`),{kind:`create`,enrollmentId:W(t.enrollmentId,`recovery enrollmentId`),providerSubject:W(t.providerSubject,`recovery enrollment providerSubject`),verifiedEmail:W(t.verifiedEmail,`recovery enrollment verifiedEmail`),material:{enrollmentSealKeyVersion:W(n.enrollmentSealKeyVersion,`recovery enrollment material seal-key version`),clientUnlockPublicKeyB64u:G(n.clientUnlockPublicKeyB64u,`recovery enrollment client unlock public key`),unlockKeyVersion:W(n.unlockKeyVersion,`recovery enrollment unlock-key version`),serverSealedFactorCiphertextB64u:G(n.serverSealedFactorCiphertextB64u,`recovery enrollment sealed factor ciphertext`)}}}function K(e){let n=f(e,`wallet recovery durable payload`);if(n.kind!==`wallet_recovery_durable_payload_v1`||n.version!==1)throw Error(`wallet recovery durable payload version is invalid`);U(n,[...gt,...f(n.target,`wallet recovery durable target`).kind===`passkey`?[`replacementId`,`challengeId`,`registration`]:[`providerSubject`,`verifiedEmail`,`emailHashHex`,`registrationAuthorityId`,`replacementId`,`enrollment`]],`wallet recovery durable payload`);let c=o(n.recoveryOperationId),l=s(n.walletId),u;try{u=P(n.reservationId)}catch(e){throw Error(`wallet recovery durable reservationId is invalid`,{cause:e})}let d=re(n.targetDeviceId),p=i(n.targetAuthorityId),m=t(n.targetWalletAuthMethodId);if(!c.ok||!l.ok||!d.ok||!p.ok||!m.ok)throw Error(`wallet recovery durable payload identity is invalid`);if(!Array.isArray(n.nearKeySets)||!Array.isArray(n.ecdsaKeySets))throw Error(`wallet recovery durable key-set arrays are invalid`);let h=Je(n.keyManifest,String(l.value)),g=n.nearKeySets.map(e=>Ct(e,bt(h,e))),_=n.ecdsaKeySets.map(e=>Tt(e,xt(h,e))),v=[...g.map(e=>e.keySetId),..._.map(e=>e.entry.keySetId)];if(new Set(v).size!==v.length)throw Error(`wallet recovery durable key-set ids are duplicated`);if(h.entries.length!==v.length||h.entries.some(e=>!v.includes(e.keySetId)))throw Error(`wallet recovery durable key-set manifest coverage is invalid`);let y={kind:`wallet_recovery_durable_payload_v1`,version:1,recoveryOperationId:c.value,walletId:l.value,reservationId:u,targetDeviceId:d.value,targetAuthorityId:p.value,targetWalletAuthMethodId:m.value,replacementEnvelope:k(n.replacementEnvelope,`wallet recovery durable replacementEnvelope`),keyManifest:h,nearKeySets:g,ecdsaKeySets:_};if(String(y.replacementEnvelope.walletId)!==String(l.value))throw Error(`wallet recovery durable replacement envelope wallet changed`);if(y.replacementEnvelope.ownership.kind!==`method_bound`||y.replacementEnvelope.ownership.walletAuthMethodId!==m.value)throw Error(`wallet recovery durable replacement envelope method changed`);for(let e of g)if(e.binding.walletId!==String(l.value))throw Error(`wallet recovery durable NEAR binding wallet changed`);let b=f(n.target,`wallet recovery durable target`);if(b.kind===`passkey`){U(b,[`kind`,`rpId`],`wallet recovery durable passkey target`);let e=r(b.rpId);if(!e.ok)throw Error(`wallet recovery durable passkey RP ID is invalid`);let t=Et(n.registration);if(t.rawId!==y.replacementEnvelope.factor.credentialIdB64u)throw Error(`wallet recovery durable passkey registration identity changed`);if(y.replacementEnvelope.factor.kind!==`passkey`)throw Error(`wallet recovery durable passkey envelope factor is invalid`);if(y.replacementEnvelope.factor.rpId!==e.value||y.replacementEnvelope.factor.credentialIdB64u!==t.rawId)throw Error(`wallet recovery durable passkey envelope identity changed`);let i=W(n.replacementId,`wallet recovery durable replacementId`);if(String(y.replacementEnvelope.envelopeId)!==i)throw Error(`wallet recovery durable passkey envelope id changed`);return{...y,target:{kind:`passkey`,rpId:e.value},replacementId:i,challengeId:W(n.challengeId,`wallet recovery durable challengeId`),registration:t}}if(b.kind!==`google_email_otp`)throw Error(`wallet recovery durable target kind is invalid`);U(b,[`kind`],`wallet recovery durable Email OTP target`);let x=W(n.providerSubject,`wallet recovery providerSubject`);if(!a(x).ok)throw Error(`wallet recovery durable providerSubject is invalid`);let S=W(n.verifiedEmail,`wallet recovery durable verifiedEmail`),C=W(n.emailHashHex,`wallet recovery durable emailHashHex`);if(!/^[0-9a-f]{64}$/.test(C))throw Error(`wallet recovery durable emailHashHex is invalid`);let w=W(n.registrationAuthorityId,`wallet recovery durable registrationAuthorityId`),T=Dt(n.enrollment);if(y.replacementEnvelope.factor.kind!==`email_otp`)throw Error(`wallet recovery durable Email OTP envelope factor is invalid`);let E=T.kind===`existing`?{enrollmentId:T.enrollmentId,enrollmentSealKeyVersion:T.enrollmentSealKeyVersion}:{enrollmentId:T.enrollmentId,enrollmentSealKeyVersion:T.material.enrollmentSealKeyVersion};if(y.replacementEnvelope.factor.enrollmentId!==E.enrollmentId||y.replacementEnvelope.factor.enrollmentSealKeyVersion!==E.enrollmentSealKeyVersion)throw Error(`wallet recovery durable Email OTP envelope identity changed`);if(T.kind===`create`&&(T.providerSubject!==x||T.verifiedEmail!==S))throw Error(`wallet recovery durable Email OTP enrollment identity changed`);let D=W(n.replacementId,`wallet recovery durable replacementId`);if(String(y.replacementEnvelope.envelopeId)!==D)throw Error(`wallet recovery durable Email OTP envelope id changed`);return{...y,target:{kind:`google_email_otp`},providerSubject:x,verifiedEmail:S,emailHashHex:C,registrationAuthorityId:w,replacementId:D,enrollment:T}}function Ot(e){let t=e.nearKeySets.map(e=>({kind:e.kind,keySetId:e.keySetId,applicationBindingDigestB64u:e.binding.applicationBindingDigestB64u,registeredPublicKeyB64u:e.binding.registeredPublicKeyB64u,participantIds:e.binding.participantIds,stateEpoch:e.binding.stateEpoch,signingWorkerVerifyingShareB64u:e.binding.signingWorkerVerifyingShareB64u,materialActivation:e.materialActivation,sealed:e.sealed})),n=e.ecdsaKeySets.map(e=>({kind:e.kind,keySetId:e.entry.keySetId,possessionProof:e.possessionProof,readyStateBlobB64u:e.readyStateBlobB64u,publicFacts:e.publicFacts})),r={kind:e.kind,version:e.version,recoveryOperationId:String(e.recoveryOperationId),walletId:String(e.walletId),reservationId:String(e.reservationId),targetDeviceId:String(e.targetDeviceId),targetAuthorityId:String(e.targetAuthorityId),targetWalletAuthMethodId:String(e.targetWalletAuthMethodId),replacementEnvelope:e.replacementEnvelope,keyManifest:e.keyManifest,nearKeySets:t,ecdsaKeySets:n},i=H(e)?{...r,target:e.target,replacementId:e.replacementId,challengeId:e.challengeId,registration:e.registration}:{...r,target:e.target,providerSubject:e.providerSubject,verifiedEmail:e.verifiedEmail,emailHashHex:e.emailHashHex,registrationAuthorityId:e.registrationAuthorityId,replacementId:e.replacementId,enrollment:e.enrollment};return K(i),i}async function q(e){if(H(e))return;let t=await d(e.verifiedEmail);if(e.emailHashHex!==t)throw Error(`wallet recovery durable email hash does not match verified email`);if(e.enrollment.kind===`create`&&(e.enrollment.providerSubject!==e.providerSubject||e.enrollment.verifiedEmail!==e.verifiedEmail))throw Error(`wallet recovery durable enrollment does not match Email OTP identity`)}function J(e){if(H(e)){let t=n(e.registration.rawId);if(!t.ok)throw Error(`wallet recovery durable passkey credential id is invalid`);return{kind:`passkey`,rpId:e.target.rpId,credentialIdB64u:t.value}}let t=a(e.providerSubject);if(!t.ok)throw Error(`wallet recovery durable providerSubject is invalid`);return{kind:`google_email_otp`,providerSubject:t.value,emailHashHex:e.emailHashHex,registrationAuthorityId:e.registrationAuthorityId,enrollment:ft(e)}}function kt(e){return{kind:`near_ed25519`,keySetId:e.entry.keySetId,applicationBindingDigestB64u:e.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:D(e.metadata.registeredPublicKey),participantIds:e.metadata.participantIds,stateEpoch:String(e.metadata.stateEpoch),signingWorkerVerifyingShareB64u:D(e.metadata.signingWorkerVerifyingShare),materialActivation:pe(e.metadata.materialActivation),sealed:{ciphertextB64u:e.localMaterial.b64u,nonceB64u:e.localMaterial.nonceB64u}}}function At(e){return{kind:`evm_family_ecdsa`,keySetId:e.entry.keySetId,possessionProof:F(e.activation.possessionProof),readyStateBlobB64u:e.readyStateBlobB64u,publicFacts:e.publicFacts}}function jt(e){return{kind:`wallet_recovery_redacted_registration_v1`,id:e.id,rawId:e.rawId,type:e.type,authenticatorAttachment:e.authenticatorAttachment??null,response:{clientDataJSON:e.response.clientDataJSON,attestationObject:e.response.attestationObject,transports:[...e.response.transports]}}}async function Mt(e){let t={kind:`wallet_recovery_durable_payload_v1`,version:1,recoveryOperationId:String(e.prepared.recoveryOperationId),walletId:e.walletId,reservationId:e.prepared.reservationId,targetDeviceId:e.prepared.targetDeviceId,targetAuthorityId:e.prepared.targetAuthorityId,targetWalletAuthMethodId:e.prepared.targetWalletAuthMethodId,replacementEnvelope:k(e.recovered.replacementEnvelope,`wallet recovery durable replacement envelope`),keyManifest:{version:`wallet_recovery_preparation_key_manifest_v1`,walletId:String(e.walletId),entries:[...e.recovered.nearKeySets.map(e=>e.entry),...e.recovered.ecdsaKeySets.map(e=>e.entry)]},nearKeySets:e.recovered.nearKeySets.map(kt),ecdsaKeySets:e.recovered.ecdsaKeySets.map(At)};if(e.replacement.kind===`passkey`){if(e.target.kind!==`passkey`)throw Error(`wallet recovery durable payload branch is invalid`);let n=e.prepared.registration;if(!n)throw Error(`wallet recovery registration options are unavailable`);let r=jt(e.replacement.registration);if(r.rawId!==e.replacement.credentialIdB64u)throw Error(`wallet recovery passkey registration rawId changed its credential identity`);let i=K({...t,target:{kind:`passkey`,rpId:e.target.rpId},replacementId:n.replacementId,challengeId:n.challengeId,registration:r});return await q(i),i}if(e.target.kind!==`google_email_otp`)throw Error(`wallet recovery durable payload branch is invalid`);let n=e.replacement.enrollment;if(e.replacement.factor.walletAuthMethodId!==t.targetWalletAuthMethodId)throw Error(`wallet recovery Email OTP factor method changed its target identity`);let r=await d(e.replacement.verifiedEmail),i=K({...t,target:{kind:`google_email_otp`},enrollment:n,providerSubject:e.replacement.providerSubject,verifiedEmail:e.replacement.verifiedEmail,emailHashHex:r,registrationAuthorityId:e.replacement.registrationAuthorityId,replacementId:e.replacement.factor.replacementId});return await q(i),i}function Nt(e){return new TextEncoder().encode(u({kind:`pending_wallet_recovery_commit_v1`,version:1,...e}))}function Pt(e){return Nt({recoveryOperationId:e.recoveryOperationId,walletId:e.walletId,reservationId:e.reservationId,targetDeviceId:e.targetDeviceId,targetAuthorityId:e.targetAuthorityId,targetWalletAuthMethodId:e.targetWalletAuthMethodId,target:J(e)})}async function Ft(e){let t=await crypto.subtle.generateKey({name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`]);if(!(t instanceof CryptoKey))throw Error(`wallet recovery durable key generation failed`);let n=crypto.getRandomValues(new Uint8Array(12)),r=new TextEncoder().encode(JSON.stringify(Ot(e)));return{kind:`wallet_recovery_encrypted_material_v1`,key:t,iv:n,ciphertext:new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:n,additionalData:Pt(e)},t,r))}}async function It(e){let t=await crypto.subtle.decrypt({name:`AES-GCM`,iv:e.localMaterial.iv.slice(),additionalData:Lt(e)},e.localMaterial.key,e.localMaterial.ciphertext.slice()),n=K(JSON.parse(new TextDecoder().decode(t)));if(await q(n),!Rt(e,n))throw Error(`wallet recovery durable payload identity does not match its journal`);return n}function Lt(e){return Nt({recoveryOperationId:e.recoveryOperationId,walletId:e.walletId,reservationId:e.reservationId,targetDeviceId:e.targetDeviceId,targetAuthorityId:e.targetAuthorityId,targetWalletAuthMethodId:e.targetWalletAuthMethodId,target:e.target})}function Y(e){let t=o(e);if(!t.ok)throw Error(`wallet recovery operation id is invalid`);return t.value}function Rt(e,t){let n={kind:`pending_wallet_recovery_commit_v1`,version:1,recoveryOperationId:Y(t.recoveryOperationId),walletId:t.walletId,reservationId:t.reservationId,targetDeviceId:t.targetDeviceId,targetAuthorityId:t.targetAuthorityId,targetWalletAuthMethodId:t.targetWalletAuthMethodId,localMaterial:e.localMaterial,createdAtMs:e.createdAtMs,updatedAtMs:e.updatedAtMs},r=J(t);if(e.stage===`awaiting_server_promotion`)return M(e,{...n,stage:`awaiting_server_promotion`,target:r});switch(r.kind){case`passkey`:return e.projection.kind===`passkey`?M(e,{...n,stage:`server_promoted`,target:r,projection:e.projection}):!1;case`google_email_otp`:return e.projection.kind===`google_email_otp`?M(e,{...n,stage:`server_promoted`,target:r,projection:e.projection}):!1}}function zt(e,t,n,r){return{kind:`pending_wallet_recovery_commit_v1`,version:1,recoveryOperationId:Y(e.recoveryOperationId),walletId:e.walletId,reservationId:e.reservationId,targetDeviceId:e.targetDeviceId,targetAuthorityId:e.targetAuthorityId,targetWalletAuthMethodId:e.targetWalletAuthMethodId,target:J(e),localMaterial:t,createdAtMs:n,updatedAtMs:r}}function Bt(e,t,n=Date.now()){return{...zt(e,t,n,n),stage:`awaiting_server_promotion`}}function Vt(e,t,n,r=Date.now()){let i=zt(t,e.localMaterial,e.createdAtMs,Math.max(r,e.createdAtMs+1));if(H(t)){if(n.kind!==`passkey`)throw Error(`wallet recovery promotion projection branch changed`);return{...i,stage:`server_promoted`,target:J(t),projection:n}}if(n.kind!==`google_email_otp`)throw Error(`wallet recovery promotion projection branch changed`);return{...i,stage:`server_promoted`,target:J(t),projection:n}}const Ht=`/wallets/recovery/google-email-otp/finalize`;async function Ut(e){let t=await X(e,`/wallets/recovery/google/verify`,{recoveryOperationId:e.recoveryOperationId,reservationId:e.reservationId,idToken:e.idToken});if(!t.ok)return t.failure;try{let n=Jt(t.body),r=qt(n,e),i=Q(c(n.challengeId)),a=Number(n.expiresAtMs);if(!Number.isSafeInteger(a)||a<=0)throw Error(`invalid expiry`);return{kind:`verified`,...r,challengeId:i,delivery:je(n.delivery,`walletRecoveryGoogleVerify.delivery`),expiresAtMs:a}}catch{return{kind:`transport_uncertain`}}}async function Wt(e){let t=await X(e,`/wallets/recovery/email-otp/verify`,{recoveryOperationId:e.recoveryOperationId,reservationId:e.reservationId,challengeId:e.challengeId,otpCode:e.otpCode});if(!t.ok)return t.failure;try{let n=Yt(t.body),r=qt(n,e),i=Q(c(n.challengeId));if(i!==e.challengeId)throw Error(`challenge changed`);return{kind:`verified`,...r,challengeId:i}}catch{return{kind:`transport_uncertain`}}}async function Gt(e){let t,n;try{if(t=k(e.replacementEnvelope,`walletRecoveryGoogleEmailOtpFinalize.replacementEnvelope`),t.factor.kind!==`email_otp`)throw Error(`wrong factor`);n=e.ecdsaMaterialPossessionProofs.map(e=>({keySetId:e.keySetId,proof:F(e.proof)}))}catch{return{kind:`refused`}}let r=await X(e,Ht,{kind:`finalize`,recoveryOperationId:e.recoveryOperationId,reservationId:e.reservationId,replacementEnvelope:t,ecdsaMaterialPossessionProofs:n,...e.emailOtpEnrollment?{emailOtpEnrollment:e.emailOtpEnrollment}:{}});if(!r.ok)return r.failure;try{let n=await j(Xt(r.body,`walletRecoveryGoogleEmailOtpFinalize`).projection,en(e,t));if(n.kind!==`google_email_otp`)throw Error(`recovery projection branch changed`);return{kind:`promoted`,storeVersion:n.storeVersion,authority:n.authority,authMethod:n.authMethod}}catch{return{kind:`transport_uncertain`}}}async function Kt(e){let t;try{if(t=k(e.replacementEnvelope,`walletRecoveryGoogleEmailOtpReplay.replacementEnvelope`),t.factor.kind!==`email_otp`||String(t.walletId)!==String(e.walletId))throw Error(`recovery replay envelope identity is invalid`)}catch{return{kind:`refused`}}let n=await X(e,Ht,{kind:`replay`,recoveryOperationId:e.recoveryOperationId,reservationId:e.reservationId,replacementEnvelope:t});if(!n.ok)return n.failure;try{let r=await j(Xt(n.body,`walletRecoveryGoogleEmailOtpReplay`).projection,en(e,t));if(r.kind!==`google_email_otp`)throw Error(`recovery projection branch changed`);return{kind:`promoted`,storeVersion:r.storeVersion,authority:r.authority,authMethod:r.authMethod}}catch{return{kind:`transport_uncertain`}}}async function X(e,t,n){let r;try{r=await(e.fetchImpl??fetch)(`${C(e.relayUrl)}${t}`,w({body:n}))}catch{return{ok:!1,failure:{kind:`transport_uncertain`}}}let i=await r.json().catch(()=>void 0);return r.status===200?{ok:!0,body:i}:r.status===409||r.status===429?{ok:!1,failure:{kind:`retryable_conflict`}}:r.status===400||r.status===401?{ok:!1,failure:{kind:`refused`}}:{ok:!1,failure:{kind:`transport_uncertain`}}}function qt(e,t){let n=Q(o(e.recoveryOperationId)),r=P(e.reservationId);if(n!==t.recoveryOperationId||r!==t.reservationId)throw Error(`recovery operation identity changed`);return{recoveryOperationId:n,reservationId:r}}function Jt(e){let t=Zt(e,[`ok`,`recoveryOperationId`,`reservationId`,`challengeId`,`delivery`,`expiresAtMs`],`walletRecoveryGoogleVerify`);return $t(t,`walletRecoveryGoogleVerify`),{recoveryOperationId:Z(t,`recoveryOperationId`),reservationId:Z(t,`reservationId`),challengeId:Z(t,`challengeId`),delivery:Z(t,`delivery`),expiresAtMs:Z(t,`expiresAtMs`)}}function Yt(e){let t=Zt(e,[`ok`,`recoveryOperationId`,`reservationId`,`challengeId`],`walletRecoveryEmailOtpVerify`);return $t(t,`walletRecoveryEmailOtpVerify`),{recoveryOperationId:Z(t,`recoveryOperationId`),reservationId:Z(t,`reservationId`),challengeId:Z(t,`challengeId`)}}function Xt(e,t){let n=Zt(e,[`ok`,`projection`],t);return $t(n,t),{projection:Z(n,`projection`)}}function Zt(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${n} must be a JSON object`);let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)throw Error(`${n} must be a plain JSON object`);let i=Object.keys(e);if(i.length!==t.length||!Qt(i,t))throw Error(`${n} has an unexpected response shape`);return e}function Qt(e,t){for(let n of t)if(!e.includes(n))return!1;return!0}function $t(e,t){if(Z(e,`ok`)!==!0)throw Error(`${t} did not succeed`)}function Z(e,t){let n=Object.getOwnPropertyDescriptor(e,t);if(!n||!(`value`in n))throw Error(`response field ${t} is missing`);return n.value}function Q(e){if(!e.ok)throw Error(`invalid domain identity`);return e.value}function $(e){if(typeof e!=`string`||!e.trim())throw Error(`value must be a string`);return e.trim()}function en(e,t){if(t.factor.kind!==`email_otp`)throw Error(`replacement envelope is not an Email OTP envelope`);return{kind:`google_email_otp`,walletId:e.walletId,recoveryOperationId:e.recoveryOperationId,targetDeviceId:e.targetDeviceId,targetAuthorityId:e.targetAuthorityId,targetWalletAuthMethodId:e.targetWalletAuthMethodId,providerSubject:Q(a(e.expectedProviderSubject)),emailHashHex:tn(e.expectedEmailHashHex),registrationAuthorityId:$(e.expectedRegistrationAuthorityId),enrollment:{kind:`email_otp_enrollment_reference_v1`,enrollmentId:$(t.factor.enrollmentId),enrollmentSealKeyVersion:$(t.factor.enrollmentSealKeyVersion)}}}function tn(e){let t=$(e);if(!/^[0-9a-f]{64}$/.test(t))throw Error(`email hash is invalid`);return t}async function nn(e,t){if(e.version!==t.version||e.storeVersion!==t.storeVersion||e.walletId!==t.walletId||e.recoveryOperationId!==t.recoveryOperationId||e.targetDeviceId!==t.targetDeviceId||e.targetAuthorityId!==t.targetAuthorityId||e.targetWalletAuthMethodId!==t.targetWalletAuthMethodId||!await ae(e.authority,t.authority)||!be(e.authMethod,t.authMethod)||e.kind!==t.kind)return!1;switch(e.kind){case`passkey`:return t.kind===`passkey`?e.target.kind===t.target.kind&&e.target.rpId===t.target.rpId&&e.target.credentialIdB64u===t.target.credentialIdB64u:!1;case`google_email_otp`:return t.kind===`google_email_otp`?e.target.kind===t.target.kind&&e.target.provider===t.target.provider&&e.target.providerSubject===t.target.providerSubject&&e.target.emailHashHex===t.target.emailHashHex&&e.target.registrationAuthorityId===t.target.registrationAuthorityId&&e.target.enrollment.kind===t.target.enrollment.kind&&e.target.enrollment.enrollmentId===t.target.enrollment.enrollmentId&&e.target.enrollment.enrollmentSealKeyVersion===t.target.enrollment.enrollmentSealKeyVersion:!1;default:return rn(e)}}function rn(e){throw Error(`unsupported wallet recovery projection: ${String(e)}`)}function an(e){let t=Y(e.payload.recoveryOperationId);switch(e.kind){case`passkey`:return Ce({kind:`passkey`,storeVersion:e.promotion.storeVersion,walletId:e.payload.walletId,recoveryOperationId:t,targetDeviceId:e.payload.targetDeviceId,targetAuthorityId:e.payload.targetAuthorityId,targetWalletAuthMethodId:e.payload.targetWalletAuthMethodId,authority:e.promotion.authority,authMethod:e.promotion.authMethod});case`google_email_otp`:{let n=a(e.payload.providerSubject);if(!n.ok)throw Error(`wallet recovery provider subject is invalid`);return Ce({kind:`google_email_otp`,storeVersion:e.promotion.storeVersion,walletId:e.payload.walletId,recoveryOperationId:t,targetDeviceId:e.payload.targetDeviceId,targetAuthorityId:e.payload.targetAuthorityId,targetWalletAuthMethodId:e.payload.targetWalletAuthMethodId,authority:e.promotion.authority,authMethod:e.promotion.authMethod,providerSubject:n.value,emailHashHex:e.payload.emailHashHex,registrationAuthorityId:e.payload.registrationAuthorityId,enrollment:ft(e.payload)})}}}function on(e){return e.ecdsaKeySets.map(e=>({keySetId:e.entry.keySetId,proof:e.possessionProof}))}function sn(e){return{id:e.registration.id,rawId:e.registration.rawId,type:e.registration.type,authenticatorAttachment:e.registration.authenticatorAttachment??void 0,response:{clientDataJSON:e.registration.response.clientDataJSON,attestationObject:e.registration.response.attestationObject,transports:[...e.registration.response.transports]},clientExtensionResults:{prf:{results:{first:void 0,second:void 0}}}}}async function cn(e){let{payload:t}=e;if(H(t)){let n=await ct({relayUrl:e.relayUrl,walletId:String(t.walletId),reservationId:String(t.reservationId),recoveryOperationId:Y(t.recoveryOperationId),targetDeviceId:String(t.targetDeviceId),targetAuthorityId:String(t.targetAuthorityId),targetWalletAuthMethodId:String(t.targetWalletAuthMethodId),challengeId:t.challengeId,replacementId:t.replacementId,webauthnRegistration:sn(t),replacementEnvelope:t.replacementEnvelope,ecdsaMaterialPossessionProofs:on(t),fetchImpl:e.fetchImpl});return n.kind===`promoted`?{kind:`passkey`,payload:t,promotion:n}:n}let n=await Gt({relayUrl:e.relayUrl,recoveryOperationId:Y(t.recoveryOperationId),reservationId:t.reservationId,walletId:t.walletId,targetDeviceId:t.targetDeviceId,targetAuthorityId:t.targetAuthorityId,targetWalletAuthMethodId:t.targetWalletAuthMethodId,expectedProviderSubject:t.providerSubject,expectedEmailHashHex:t.emailHashHex,expectedRegistrationAuthorityId:t.registrationAuthorityId,replacementEnvelope:t.replacementEnvelope,ecdsaMaterialPossessionProofs:on(t),emailOtpEnrollment:ln(t.enrollment),fetchImpl:e.fetchImpl});return n.kind===`promoted`?{kind:`google_email_otp`,payload:t,promotion:n}:n}function ln(e){return e.kind===`create`?{kind:`create`,material:e.material}:null}async function un(e){let{payload:t}=e;if(H(t)){let n=await lt({relayUrl:e.relayUrl,walletId:String(t.walletId),reservationId:String(t.reservationId),recoveryOperationId:Y(t.recoveryOperationId),targetDeviceId:String(t.targetDeviceId),targetAuthorityId:String(t.targetAuthorityId),targetWalletAuthMethodId:String(t.targetWalletAuthMethodId),replacementId:t.replacementId,replacementEnvelope:t.replacementEnvelope,fetchImpl:e.fetchImpl});return n.kind===`promoted`?{kind:`passkey`,payload:t,promotion:n}:n}let n=await Kt({relayUrl:e.relayUrl,recoveryOperationId:Y(t.recoveryOperationId),reservationId:t.reservationId,walletId:t.walletId,targetDeviceId:t.targetDeviceId,targetAuthorityId:t.targetAuthorityId,targetWalletAuthMethodId:t.targetWalletAuthMethodId,expectedProviderSubject:t.providerSubject,expectedEmailHashHex:t.emailHashHex,expectedRegistrationAuthorityId:t.registrationAuthorityId,replacementEnvelope:t.replacementEnvelope,fetchImpl:e.fetchImpl});return n.kind===`promoted`?{kind:`google_email_otp`,payload:t,promotion:n}:n}function dn(e){return e.kind===`passkey`||e.kind===`google_email_otp`}async function fn(e){let t=await un(e);return dn(t)||t.kind!==`refused`?t:await cn(e)}function pn(e,t){return{walletId:e.walletId,factor:{kind:`passkey`,credentialIdB64u:t.target.credentialIdB64u},verifier:{kind:`webauthn`,rpId:t.target.rpId},bindingId:t.authMethod.walletAuthMethodId}}function mn(e,t){let n=ce({walletId:e.walletId,provider:`google`,providerUserId:e.providerSubject,emailHashHex:e.emailHashHex});return{walletId:n.walletId,factor:n.factor,verifier:n.verifier,bindingId:t.authMethod.walletAuthMethodId}}async function hn(e,t){if(H(e)){if(t.kind!==`passkey`)throw Error(`wallet recovery projection branch changed`);return se({authority:pn(e,t)})}if(t.kind!==`google_email_otp`)throw Error(`wallet recovery projection branch changed`);return se({authority:mn(e,t)})}async function gn(e){let t=[],n=[];for(let r of e.payload.ecdsaKeySets){let i=r.entry,a=i.recoveryBasis,o=await ye({walletId:e.payload.walletId,signingRootId:a.signingRootId,signingRootVersion:a.signingRootVersion}),s=await Oe({authority:e.authority,chainTargets:a.chainTargets,walletId:String(e.payload.walletId),keyHandle:i.keyHandle,ecdsaThresholdKeyId:a.ecdsaThresholdKeyId,signingRootId:a.signingRootId,signingRootVersion:a.signingRootVersion,relayerKeyId:o,participantIds:a.participantIds,publicCapability:a.publicCapability,activationReceipt:a.activationReceipt,runtimePolicyScope:a.runtimePolicyScope,readyStateBlobB64u:r.readyStateBlobB64u,publicFacts:r.publicFacts});n.push(s);for(let n of a.chainTargets)t.push(_n({payload:e.payload,keySet:r,chainTarget:n,materialRef:s.roleLocalMaterialRef,relayerKeyId:o}))}return{walletKeys:t,ecdsaContinuity:n}}function _n(e){let t=e.keySet.entry,n=t.recoveryBasis,r=e.keySet.publicFacts,i=xe({walletId:e.payload.walletId,chainTarget:e.chainTarget,keyHandle:t.keyHandle,ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,signingRootId:n.signingRootId,signingRootVersion:n.signingRootVersion,applicationBindingDigestB64u:n.publicCapability.context.application_binding_digest_b64u,clientParticipantId:1,relayerParticipantId:2,participantIds:n.participantIds,contextBinding32B64u:r.contextBinding32B64u,derivationClientSharePublicKey33B64u:r.derivationClientSharePublicKey33B64u,relayerPublicKey33B64u:r.relayerPublicKey33B64u,groupPublicKey33B64u:r.groupPublicKey33B64u,ethereumAddress:r.ethereumAddress,publicCapability:n.publicCapability});return{keyScope:`evm-family`,chainTarget:e.chainTarget,walletId:String(e.payload.walletId),evmFamilySigningKeySlotId:t.evmFamilySigningKeySlotId,keyHandle:t.keyHandle,ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,signingRootId:n.signingRootId,signingRootVersion:n.signingRootVersion,thresholdEcdsaPublicKeyB64u:r.groupPublicKey33B64u,thresholdOwnerAddress:r.ethereumAddress,relayerKeyId:e.relayerKeyId,relayerVerifyingShareB64u:r.relayerPublicKey33B64u,participantIds:n.participantIds,publicCapability:n.publicCapability,roleLocalMaterialRef:e.materialRef,ecdsaRoleLocalPublicFacts:i}}function vn(e){if(e.nearKeySets.length!==1)throw Error(`wallet recovery requires exactly one NEAR key set`);return e.nearKeySets[0]}function yn(e){return[...e.registration.response.transports]}function bn(e){return`ed25519:${ie(O(vn(e).binding.registeredPublicKeyB64u))}`}function xn(t,n){let r=e(n.thresholdSessionId);if(!r.ok)throw Error(`recovery NEAR threshold session id is invalid`);return{walletId:t.walletId,nearAccountId:A(n.binding.nearAccountId),thresholdSessionId:r.value,runtimePolicyScope:n.runtimePolicyScope,materialActivation:de(n.materialActivation)}}async function Sn(e){if(H(e.payload)){if(e.projection.kind!==`passkey`)throw Error(`wallet recovery projection branch changed`);let t={walletId:e.payload.walletId,rpId:e.projection.target.rpId,credentialIdB64u:e.projection.target.credentialIdB64u,credentialPublicKeyB64u:e.projection.authMethod.credentialPublicKeyB64u,transports:yn(e.payload),walletKeys:e.walletKeys};if(e.payload.nearKeySets.length===0)return Ee({kind:`evm_family_ecdsa`,...t});let n=vn(e.payload);return Ee({kind:`near_ed25519`,...t,nearAccountId:A(n.binding.nearAccountId),nearEd25519SigningKeyId:n.binding.nearEd25519SigningKeyId,signerSlot:n.binding.signerSlot,operationalPublicKey:bn(e.payload),relayerKeyId:n.binding.signingWorkerId,participantIds:n.binding.participantIds,custodyMaterials:e.payload.nearKeySets.map(e=>({binding:e.binding,sealed:e.sealed}))})}if(e.projection.kind!==`google_email_otp`)throw Error(`wallet recovery projection branch changed`);let t=mn(e.payload,e.projection),n={walletId:e.payload.walletId,email:e.payload.verifiedEmail,registrationAuthorityId:e.payload.registrationAuthorityId,authority:t,walletKeys:e.walletKeys};if(e.payload.nearKeySets.length===0)return De({kind:`evm_family_ecdsa`,...n});let r=vn(e.payload);return De({kind:`near_ed25519`,...n,nearAccountId:A(r.binding.nearAccountId),nearEd25519SigningKeyId:r.binding.nearEd25519SigningKeyId,signerSlot:r.binding.signerSlot,operationalPublicKey:bn(e.payload),relayerKeyId:r.binding.signingWorkerId,participantIds:r.binding.participantIds,custodyMaterials:e.payload.nearKeySets.map(e=>({binding:e.binding,sealed:e.sealed}))})}async function Cn(e){let t=e.pending.projection,n=await hn(e.payload,t),r=await gn({payload:e.payload,authority:n}),i=await Sn({payload:e.payload,projection:t,walletKeys:r.walletKeys});await N.publishPendingWalletRecoveryCommit({pending:e.pending,authority:t.authority,authMethod:t.authMethod,registration:i,ecdsaContinuity:r.ecdsaContinuity,ed25519PublicCapabilityReferences:e.payload.nearKeySets.map(t=>xn(e.payload,t))})}async function wn(e){let t=await N.listPendingWalletRecoveryCommits(),n=[];for(let r of t)try{let t=await It(r),i=r.stage===`awaiting_server_promotion`?await fn({relayUrl:e.relayUrl,payload:t,fetchImpl:e.fetchImpl}):await un({relayUrl:e.relayUrl,payload:t,fetchImpl:e.fetchImpl});if(!dn(i)){if(i.kind===`refused`){await N.deletePendingWalletRecoveryCommit(r.recoveryOperationId),n.push({kind:`discarded`,recoveryOperationId:String(r.recoveryOperationId)});continue}n.push({kind:`pending`,recoveryOperationId:String(r.recoveryOperationId),failure:i});continue}let a=i,o=an(a),s=r.stage===`awaiting_server_promotion`?await N.advancePendingWalletRecoveryCommit({awaiting:r,promoted:Vt(r,a.payload,o,r.updatedAtMs+1)}):r;if(r.stage===`server_promoted`&&!await nn(r.projection,o))throw Error(`wallet recovery replay projection changed`);await Cn({pending:s,payload:a.payload}),n.push({kind:`completed`,recoveryOperationId:String(r.recoveryOperationId)})}catch(e){console.warn(`[SeamsWeb] pending wallet recovery replay failed before classification:`,String(r.recoveryOperationId),e instanceof Error?e.message:String(e||`unknown error`)),n.push({kind:`corrupt`,recoveryOperationId:String(r.recoveryOperationId)})}return n}async function Tn(e){let t=await Mt(e.operation);return{payload:t,pending:Bt(t,await Ft(t),e.nowMs)}}async function En(e){let t=an(e.promotion);return N.advancePendingWalletRecoveryCommit({awaiting:e.awaiting,promoted:Vt(e.awaiting,e.promotion.payload,t,e.awaiting.updatedAtMs+1)})}export{Gt as a,H as c,Re as d,wn as i,ct as l,En as n,Wt as o,Cn as r,Ut as s,Tn as t,Le as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lt as e}from"./activeWalletSession-H9JBdHyQ.js";const t=`/wallets/register/setup`;function n(n){e(n,[t])}export{n,t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ct as e,i as t,it as n,n as r,ot as i}from"./activeWalletSession-H9JBdHyQ.js";import{d as a,h as o}from"./capabilityKinds-BzrNeEyO.js";const s=(e,t)=>globalThis.fetch(e,t),c=new WeakMap;let l=0;const u=new Map;function d(e){return JSON.stringify([e])}function f(t,n){return d(t.operationCredential.token)+JSON.stringify([e(t.relayerUrl),n.walletSessionId,n.quotaId])}function p(e,t,n,r){let i=c.get(e);i||(i=new Map,c.set(e,i));let a=i.get(t);if(a&&a.sequence>n)return r;if(u.delete(t),i.delete(t),i.set(t,{kind:`local_wallet_session_observation`,sequence:n,status:r}),i.size>32){let e=i.keys().next();e.done||i.delete(e.value)}return r}function m(e){let t=e.remainingUses-1;return t>0?{...e,remainingUses:t}:{...e,status:`exhausted`,remainingUses:0,quotaLifecycle:`exhausted`}}var h=class e{readsByFetch=new Map;suppliedStatus={kind:`remote`};static fromPrepare(t,n){let r=new e;return r.suppliedStatus={kind:`server_response`,key:f(t,n),status:n,observation:m(n)},r}static fromRegistration(t,n){let r=g(n),i=new e;return i.suppliedStatus={kind:`server_response`,key:f({relayerUrl:t,operationCredential:n.operationCredential},r),status:r,observation:r},i}static acceptRegistrationSession(e,t){let n=g(t);if(u.set(f({relayerUrl:e,operationCredential:t.operationCredential},n),n),u.size>8){let e=u.keys().next();e.done||u.delete(e.value)}}static forHostObservation(){let t=new e;return t.suppliedStatus={kind:`host_observation`},t}static forgetCredential(e){let t=d(e);for(let e of[c.get(s),u])if(e)for(let n of[...e.keys()])n.startsWith(t)&&e.delete(n)}static observationForConfirmation(e,t){return c.get(e.fetchImpl??s)?.get(f(e,t))??null}read(e,t){if(this.suppliedStatus.kind===`server_response`){if(this.suppliedStatus.key!==f(e,t))throw Error(`Wallet Session response identity changed before reconciliation`);return p(e.fetchImpl??s,this.suppliedStatus.key,++l,this.suppliedStatus.observation),Promise.resolve(this.suppliedStatus.status)}let n=e.fetchImpl??s,r=this.readsByFetch.get(n);r||(r=new Map,this.readsByFetch.set(n,r));let i=f(e,t),a=r.get(i);if(a)return a;let o=++l,c=this.suppliedStatus.kind===`host_observation`?u.get(i):void 0,d=c?Promise.resolve(p(n,i,o,c)):D(e).read(t).then(p.bind(null,n,i,o));return r.set(i,d),d}};function g(e){return{status:`active`,walletSessionId:e.walletSessionId,quotaId:e.quotaId,remainingUses:e.remainingUses,expiresAtMs:e.expiresAtMs,quotaLifecycle:`active`,authorization:e.walletSession}}const _=[`ok`,`status`,`walletSessionId`,`quotaId`,`remainingUses`,`expiresAtMs`,`quotaLifecycle`,`authorization`],v=[`ok`,`status`,`walletSessionId`,`quotaId`];function y(e){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)return{kind:`error`,message:null};let t=new Map(Object.entries(e)),n=[...t.keys()],r=t.get(`status`),i=t.get(`walletSessionId`),a=t.get(`quotaId`);if(t.get(`ok`)===!0&&typeof r==`string`){let e=r===`active`||r===`exhausted`||r===`expired`||r===`superseded`||r===`authority_unavailable`||r===`method_unavailable`||r===`capability_unavailable`?r:null;if(e&&n.length===_.length){let r=new Set(_);if(n.every(e=>r.has(e)))return{kind:`observed`,status:e,walletSessionId:i,quotaId:a,remainingUses:t.get(`remainingUses`),expiresAtMs:t.get(`expiresAtMs`),quotaLifecycle:t.get(`quotaLifecycle`),authorization:t.get(`authorization`)}}if((r===`missing`||r===`invalid`)&&n.length===v.length){let e=new Set(v);if(n.every(t=>e.has(t)))return{kind:`terminal`,status:r,walletSessionId:i,quotaId:a}}}if(n.every(e=>e===`code`||e===`message`)){let e=t.get(`message`);return{kind:`error`,message:typeof e==`string`?e:null}}return{kind:`error`,message:null}}function b(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function x(e,t){let n=o(e.walletSessionId),r=a(e.quotaId);return!n.ok||!r.ok||n.value!==t.walletSessionId||r.value!==t.quotaId?null:{walletSessionId:n.value,quotaId:r.value}}function S(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function C(e,t){if(e.quotaLifecycle!==`active`&&e.quotaLifecycle!==`exhausted`||!S(e.remainingUses)||e.quotaLifecycle===`exhausted`!=(e.remainingUses===0)||!b(e.expiresAtMs))return null;let n;try{n=r(e.authorization)}catch{return null}return n.quotaId!==t.quotaId||n.expiresAtMs!==e.expiresAtMs?null:{remainingUses:e.remainingUses,expiresAtMs:e.expiresAtMs,quotaLifecycle:e.quotaLifecycle,authorization:n}}function w(e,t){return T(y(e),t)}function T(e,t){if(e.kind===`error`)return null;let n=x(e,t);if(!n)return null;if(e.kind===`terminal`)return{status:e.status,...n};switch(e.status){case`active`:{let t=C(e,n);return!t||t.quotaLifecycle!==`active`?null:{status:`active`,...n,...t}}case`exhausted`:{let t=C(e,n);return!t||t.remainingUses!==0?null:{status:`exhausted`,...n,...t,remainingUses:0}}case`expired`:case`superseded`:case`authority_unavailable`:case`method_unavailable`:case`capability_unavailable`:{let t=C(e,n);return t?{status:e.status,...n,...t}:null}default:return null}}var E=class{relayerUrl;operationCredential;fetchImpl;constructor(n){if(this.relayerUrl=e(n.relayerUrl),!this.relayerUrl)throw Error(`Relayer URL is required`);this.operationCredential=t(n.operationCredential),this.fetchImpl=n.fetchImpl??s}async read(e){let t=await this.fetchImpl(`${this.relayerUrl}/wallet/session/status`,{...n({body:{walletSessionId:e.walletSessionId,quotaId:e.quotaId},headers:i(this.operationCredential)}),credentials:`omit`}),r=y(await t.json().catch(()=>null));if(!t.ok){let e=r.kind===`error`&&r.message?r.message:`Wallet Session status request failed with HTTP ${t.status}`;throw Error(e)}let a=T(r,e);if(!a)throw Error(`Wallet Session status response is invalid`);return a}};function D(e){return new E(e)}export{D as n,w as r,h as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./prfCache-8Wm3etlV.js";function t(t){return{hydrateSigningSession:n=>e(t.getWarmSessionMaterialWriter(),n)}}export{t as createWarmSessionHydrationService};
|