@seams/wallet 0.26.0 → 0.28.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/publicApi/near.js +22 -11
- package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
- package/dist/esm/SeamsWeb/walletIframe/client/router.js +95 -38
- package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +16 -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/host/walletMutationGuard.js +1 -0
- package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +27 -4
- package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
- package/dist/esm/core/authMethods/plugins.js +8 -2
- package/dist/esm/core/rpcClients/near/NearClient.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 +17 -0
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +35 -22
- package/dist/esm/react/components/AccountMenuButton/AccountSettingsDialog.js +157 -0
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +13 -1
- package/dist/esm/react/components/AccountMenuButton/ExternalWalletSettings.js +46 -0
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +14 -2
- package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +154 -5
- package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +27 -3
- package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +2 -2
- package/dist/esm/react/components/AccountMenuButton/index.js +7 -3
- package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
- 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 +13 -4
- package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
- package/dist/esm/react/context/reactLoginStateBuilders.js +20 -0
- package/dist/esm/react/externalNear.js +2 -6
- package/dist/esm/react/index.js +2 -1
- package/dist/esm/react/styles/styles.css +364 -8
- package/dist/esm/react/styles.css +1 -0
- package/dist/esm/react/transactionReview/boundCalls.js +31 -26
- package/dist/esm/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
- package/dist/{public/sdk/NonceCoordinator-CcD2FqXh.js → esm/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
- package/dist/{public/sdk/SeamsWordmark-DqiC9-sd.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
- package/dist/esm/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
- package/dist/esm/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
- package/dist/esm/sdk/appearance-token-vars-01eH9pgA.js +1 -0
- package/dist/{public/sdk/clientSessionPersistenceState-YvVHKRoe.js → esm/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
- package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
- package/dist/esm/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
- package/dist/esm/sdk/configBuilder-DpChXfDO.js +1 -0
- package/dist/esm/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
- package/dist/esm/sdk/confirm-ui-em0vkd2m.js +2 -0
- package/dist/esm/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
- package/dist/esm/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
- package/dist/esm/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
- package/dist/{public/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
- package/dist/esm/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
- package/dist/{public/sdk/ecdsaDerivationExport-CkmSe0ao.js → esm/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
- package/dist/esm/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
- package/dist/esm/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
- package/dist/esm/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
- package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
- package/dist/esm/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
- package/dist/esm/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
- package/dist/esm/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
- package/dist/esm/sdk/host-C51z-AxP.js +1 -0
- package/dist/{public/sdk/icons-DDRXJ2W1.js → esm/sdk/icons-BlMXolHv.js} +1 -1
- package/dist/esm/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
- package/dist/esm/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
- package/dist/esm/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
- package/dist/esm/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
- package/dist/{public/sdk/mountExportPrivateKeySurface-B_052qyI.js → esm/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
- package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
- package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
- package/dist/{public/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
- package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
- package/dist/esm/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
- package/dist/esm/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
- package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → esm/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
- package/dist/esm/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
- package/dist/esm/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
- package/dist/esm/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
- package/dist/esm/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
- package/dist/esm/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
- package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
- package/dist/esm/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
- package/dist/{public/sdk/requireStepUpAuth-DC9LSyRI.js → esm/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
- package/dist/esm/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
- package/dist/esm/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
- package/dist/esm/sdk/runtime-auth-ufbVur2p.js +1 -0
- package/dist/esm/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
- package/dist/{public/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → esm/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
- package/dist/{public/sdk/runtime-email-otp-CaxfpqKI.js → esm/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
- package/dist/esm/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
- package/dist/esm/sdk/runtime-near-59yU_3ud.js +1 -0
- package/dist/esm/sdk/runtime-preferences-B9qLHX8W.js +1 -0
- package/dist/esm/sdk/runtime-recovery-DNyzdMBj.js +1 -0
- package/dist/esm/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
- package/dist/esm/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
- package/dist/{public/sdk/secp256k1--vF2pJgR.js → esm/sdk/secp256k1-CE7-q9Sn.js} +1 -1
- package/dist/esm/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
- package/dist/esm/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
- package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
- package/dist/esm/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
- package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
- package/dist/esm/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
- package/dist/{public/sdk/signingFlow-C7fwkxPx.js → esm/sdk/signingFlow-BcetvUeS.js} +1 -1
- package/dist/{public/sdk/signingQueue-DvHGcaLc.js → esm/sdk/signingQueue-dMFOFOP5.js} +1 -1
- package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
- package/dist/esm/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
- package/dist/esm/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
- package/dist/esm/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
- package/dist/esm/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
- package/dist/esm/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
- package/dist/esm/sdk/tx-confirm-ui.js +181 -18
- package/dist/esm/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
- package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
- 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/{public/sdk/wallet-recovery-jyfGoejZ.js → esm/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
- package/dist/esm/sdk/wallet-ui.css +1 -1
- package/dist/esm/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
- package/dist/{public/sdk/walletAuthority-DGdC9Glh.js → esm/sdk/walletAuthority-BTGAuOi8.js} +1 -1
- package/dist/esm/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
- package/dist/esm/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
- package/dist/{public/sdk/walletOwnershipGeneration-z9NXOk-b.js → esm/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
- package/dist/{public/sdk/walletRecoveryAdminProof-hytB9fXI.js → esm/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
- package/dist/{public/sdk/walletRecoveryCommit-sr8-RYvn.js → esm/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
- package/dist/{public/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → esm/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
- package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
- package/dist/esm/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
- package/dist/esm/shared-ts/src/auth/externalAuth.js +53 -0
- package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
- package/dist/esm/shared-ts/src/utils/errors.js +50 -2
- 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-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
- package/dist/{esm/sdk/NonceCoordinator-CcD2FqXh.js → public/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
- package/dist/{esm/sdk/SeamsWordmark-DqiC9-sd.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
- package/dist/public/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
- package/dist/public/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
- package/dist/public/sdk/appearance-token-vars-01eH9pgA.js +1 -0
- package/dist/{esm/sdk/clientSessionPersistenceState-YvVHKRoe.js → public/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
- package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
- package/dist/public/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
- package/dist/public/sdk/configBuilder-DpChXfDO.js +1 -0
- package/dist/public/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
- package/dist/public/sdk/confirm-ui-em0vkd2m.js +2 -0
- package/dist/public/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
- package/dist/public/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
- package/dist/public/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
- package/dist/{esm/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
- package/dist/public/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
- package/dist/{esm/sdk/ecdsaDerivationExport-CkmSe0ao.js → public/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
- package/dist/public/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
- package/dist/public/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
- package/dist/public/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
- package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
- package/dist/public/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
- package/dist/public/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
- package/dist/public/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
- package/dist/public/sdk/host-C51z-AxP.js +1 -0
- package/dist/{esm/sdk/icons-DDRXJ2W1.js → public/sdk/icons-BlMXolHv.js} +1 -1
- package/dist/public/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
- package/dist/public/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
- package/dist/public/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
- package/dist/public/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
- package/dist/{esm/sdk/mountExportPrivateKeySurface-B_052qyI.js → public/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
- package/dist/public/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
- package/dist/public/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
- package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
- package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
- package/dist/public/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
- package/dist/public/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
- package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → public/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
- package/dist/public/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
- package/dist/public/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
- package/dist/public/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
- package/dist/public/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
- package/dist/public/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
- package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
- package/dist/public/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
- package/dist/{esm/sdk/requireStepUpAuth-DC9LSyRI.js → public/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
- package/dist/public/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
- package/dist/public/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
- package/dist/public/sdk/runtime-auth-ufbVur2p.js +1 -0
- package/dist/public/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
- package/dist/{esm/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → public/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
- package/dist/{esm/sdk/runtime-email-otp-CaxfpqKI.js → public/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
- package/dist/public/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
- package/dist/public/sdk/runtime-near-59yU_3ud.js +1 -0
- package/dist/public/sdk/runtime-preferences-B9qLHX8W.js +1 -0
- package/dist/public/sdk/runtime-recovery-DNyzdMBj.js +1 -0
- package/dist/public/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
- package/dist/public/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
- package/dist/{esm/sdk/secp256k1--vF2pJgR.js → public/sdk/secp256k1-CE7-q9Sn.js} +1 -1
- package/dist/public/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
- package/dist/public/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
- package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
- package/dist/public/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
- package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
- package/dist/public/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
- package/dist/{esm/sdk/signingFlow-C7fwkxPx.js → public/sdk/signingFlow-BcetvUeS.js} +1 -1
- package/dist/{esm/sdk/signingQueue-DvHGcaLc.js → public/sdk/signingQueue-dMFOFOP5.js} +1 -1
- package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
- package/dist/public/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
- package/dist/public/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
- package/dist/public/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
- package/dist/public/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
- package/dist/public/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
- package/dist/public/sdk/tx-confirm-ui.js +181 -18
- package/dist/public/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
- package/dist/public/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
- 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/{esm/sdk/wallet-recovery-jyfGoejZ.js → public/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
- package/dist/public/sdk/wallet-ui.css +1 -1
- package/dist/public/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
- package/dist/{esm/sdk/walletAuthority-DGdC9Glh.js → public/sdk/walletAuthority-BTGAuOi8.js} +1 -1
- package/dist/public/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
- package/dist/public/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
- package/dist/{esm/sdk/walletOwnershipGeneration-z9NXOk-b.js → public/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
- package/dist/{esm/sdk/walletRecoveryAdminProof-hytB9fXI.js → public/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
- package/dist/{esm/sdk/walletRecoveryCommit-sr8-RYvn.js → public/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
- package/dist/{esm/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → public/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
- package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
- package/dist/public/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
- package/dist/public/wallet-assets.manifest.json +275 -251
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/shared-ts/src/auth/externalAuth.d.ts +84 -0
- package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +11 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +4 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +5 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalAuth.d.ts +29 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/sessionObserver.d.ts +1 -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 +5 -3
- package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
- package/dist/types/wallet/src/core/authMethods/plugins.d.ts +2 -0
- package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
- package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -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/seams.d.ts +29 -9
- package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
- package/dist/types/wallet/src/index.d.ts +1 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountSettingsDialog.d.ts +10 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -2
- package/dist/types/wallet/src/react/components/AccountMenuButton/ExternalWalletSettings.d.ts +10 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -2
- package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +1 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +2 -2
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +4 -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/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/context/reactLoginStateBuilders.d.ts +1 -1
- package/dist/types/wallet/src/react/index.d.ts +2 -0
- package/dist/types/wallet/src/react/types.d.ts +13 -3
- package/dist/types/wallet/src/voiceid-host.d.ts +2 -2
- package/package.json +1 -1
- package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +0 -66
- package/dist/esm/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
- package/dist/esm/sdk/configBuilder-CSwJrmcR.js +0 -1
- package/dist/esm/sdk/confirm-ui-BpqwuMSl.js +0 -2
- package/dist/esm/sdk/errors-DLUmUo9m.js +0 -1
- package/dist/esm/sdk/host-aTcpYE27.js +0 -1
- package/dist/esm/sdk/registrationIntent-BVPp0k0k.js +0 -1
- package/dist/esm/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
- package/dist/esm/sdk/runtime-auth-C_Y8gL_n.js +0 -1
- package/dist/esm/sdk/runtime-near-fas7U0MC.js +0 -1
- package/dist/esm/sdk/runtime-preferences-7-f34-by.js +0 -1
- package/dist/esm/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
- package/dist/esm/sdk/runtimeContext-DF8MdfXl.js +0 -6
- package/dist/esm/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
- package/dist/esm/sdk/signNear-DMzOU4dX.js +0 -1
- package/dist/esm/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
- package/dist/esm/sdk/warmSessionHydration-EstsrMF8.js +0 -1
- package/dist/public/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
- package/dist/public/sdk/configBuilder-CSwJrmcR.js +0 -1
- package/dist/public/sdk/confirm-ui-BpqwuMSl.js +0 -2
- package/dist/public/sdk/errors-DLUmUo9m.js +0 -1
- package/dist/public/sdk/host-aTcpYE27.js +0 -1
- package/dist/public/sdk/registrationIntent-BVPp0k0k.js +0 -1
- package/dist/public/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
- package/dist/public/sdk/runtime-auth-C_Y8gL_n.js +0 -1
- package/dist/public/sdk/runtime-near-fas7U0MC.js +0 -1
- package/dist/public/sdk/runtime-preferences-7-f34-by.js +0 -1
- package/dist/public/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
- package/dist/public/sdk/runtimeContext-DF8MdfXl.js +0 -6
- package/dist/public/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
- package/dist/public/sdk/signNear-DMzOU4dX.js +0 -1
- package/dist/public/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
- package/dist/public/sdk/warmSessionHydration-EstsrMF8.js +0 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +0 -9
- /package/dist/esm/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
- /package/dist/esm/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
- /package/dist/esm/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
- /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
- /package/dist/esm/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
- /package/dist/esm/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
- /package/dist/esm/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
- /package/dist/esm/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
- /package/dist/esm/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
- /package/dist/esm/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
- /package/dist/esm/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
- /package/dist/esm/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
- /package/dist/esm/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
- /package/dist/esm/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
- /package/dist/esm/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
- /package/dist/esm/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
- /package/dist/esm/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
- /package/dist/esm/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
- /package/dist/esm/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
- /package/dist/esm/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
- /package/dist/esm/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
- /package/dist/esm/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
- /package/dist/esm/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
- /package/dist/esm/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
- /package/dist/esm/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
- /package/dist/esm/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
- /package/dist/esm/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
- /package/dist/esm/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
- /package/dist/esm/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
- /package/dist/esm/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
- /package/dist/esm/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
- /package/dist/esm/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
- /package/dist/esm/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
- /package/dist/esm/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
- /package/dist/esm/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
- /package/dist/esm/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
- /package/dist/esm/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
- /package/dist/public/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
- /package/dist/public/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
- /package/dist/public/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
- /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
- /package/dist/public/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
- /package/dist/public/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
- /package/dist/public/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
- /package/dist/public/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
- /package/dist/public/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
- /package/dist/public/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
- /package/dist/public/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
- /package/dist/public/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
- /package/dist/public/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
- /package/dist/public/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
- /package/dist/public/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
- /package/dist/public/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
- /package/dist/public/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
- /package/dist/public/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
- /package/dist/public/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
- /package/dist/public/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
- /package/dist/public/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
- /package/dist/public/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
- /package/dist/public/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
- /package/dist/public/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
- /package/dist/public/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
- /package/dist/public/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
- /package/dist/public/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
- /package/dist/public/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
- /package/dist/public/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
- /package/dist/public/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
- /package/dist/public/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
- /package/dist/public/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
- /package/dist/public/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
- /package/dist/public/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
- /package/dist/public/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
- /package/dist/public/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
- /package/dist/public/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ea177740b9a568b4deea722dc18528d4cbfd4098970381660360b3bd1003291b
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CAPABILITY_KINDS, NEAR_ED25519_MPC_OPERATION_KINDS } from "../../shared-ts/src/authorization/capabilityKinds.js";
|
|
2
2
|
import { toError } from "../../shared-ts/src/utils/errors.js";
|
|
3
|
+
import { nearTransactionFailure } from "../../core/signingEngine/nearTransactionSubmission.js";
|
|
3
4
|
import { requireBrowserCapabilityOperation } from "./capabilitySelection.js";
|
|
4
5
|
import { accountExists } from "../../core/rpcClients/near/accountExists.js";
|
|
5
6
|
import { delegateRelayerAuthFromConfigs, sendDelegateAction } from "../operations/near/delegateAction.js";
|
|
@@ -23,16 +24,21 @@ var NearSigner = class {
|
|
|
23
24
|
this.deps = deps;
|
|
24
25
|
}
|
|
25
26
|
async signAndSendTransaction(rawArgs) {
|
|
26
|
-
|
|
27
|
+
let subject;
|
|
28
|
+
try {
|
|
29
|
+
subject = await this.deps.currentWallet.nearSubject(rawArgs);
|
|
30
|
+
requireBrowserCapabilityOperation(this.deps.configs, {
|
|
31
|
+
capabilityKind: CAPABILITY_KINDS.nearEd25519MpcSigning,
|
|
32
|
+
operationKind: NEAR_ED25519_MPC_OPERATION_KINDS.signTransaction
|
|
33
|
+
});
|
|
34
|
+
} catch (error) {
|
|
35
|
+
return nearTransactionFailure(error, "not_submitted");
|
|
36
|
+
}
|
|
37
|
+
return this.deps.commands.signAndSendTransaction({
|
|
27
38
|
...rawArgs,
|
|
28
|
-
...
|
|
39
|
+
...subject,
|
|
29
40
|
options: rawArgs.options ?? {}
|
|
30
|
-
};
|
|
31
|
-
requireBrowserCapabilityOperation(this.deps.configs, {
|
|
32
|
-
capabilityKind: CAPABILITY_KINDS.nearEd25519MpcSigning,
|
|
33
|
-
operationKind: NEAR_ED25519_MPC_OPERATION_KINDS.signTransaction
|
|
34
41
|
});
|
|
35
|
-
return await this.deps.commands.signAndSendTransaction(args);
|
|
36
42
|
}
|
|
37
43
|
async signTransaction(rawArgs) {
|
|
38
44
|
const args = {
|
|
@@ -47,12 +53,17 @@ var NearSigner = class {
|
|
|
47
53
|
return await this.deps.commands.signTransaction(args);
|
|
48
54
|
}
|
|
49
55
|
async sendTransaction(rawArgs) {
|
|
50
|
-
|
|
56
|
+
let subject;
|
|
57
|
+
try {
|
|
58
|
+
subject = await this.deps.currentWallet.nearSubject(rawArgs);
|
|
59
|
+
} catch (error) {
|
|
60
|
+
return nearTransactionFailure(error, "not_submitted");
|
|
61
|
+
}
|
|
62
|
+
return this.deps.commands.sendTransaction({
|
|
51
63
|
...rawArgs,
|
|
52
|
-
...
|
|
64
|
+
...subject,
|
|
53
65
|
options: rawArgs.options ?? {}
|
|
54
|
-
};
|
|
55
|
-
return await this.deps.commands.sendTransaction(args);
|
|
66
|
+
});
|
|
56
67
|
}
|
|
57
68
|
async signDelegateAction(rawArgs) {
|
|
58
69
|
const args = {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toError } from "../../../shared-ts/src/utils/errors.js";
|
|
2
|
+
import { nearTransactionFailure, notifyNearTransactionResult } from "../../../core/signingEngine/nearTransactionSubmission.js";
|
|
2
3
|
//#region src/SeamsWeb/walletIframe/client/nearCommands.ts
|
|
3
4
|
function createApplicationNearCommands(walletIframe, beforeSigning, transactionDispatch) {
|
|
4
5
|
const commands = new ApplicationNearCommands(walletIframe, beforeSigning, transactionDispatch);
|
|
@@ -31,13 +32,12 @@ var ApplicationNearCommands = class {
|
|
|
31
32
|
transaction,
|
|
32
33
|
options: args.options
|
|
33
34
|
}, this.transactionDispatch);
|
|
34
|
-
await args.options
|
|
35
|
+
await notifyNearTransactionResult(args.options, result);
|
|
35
36
|
return result;
|
|
36
37
|
} catch (error) {
|
|
37
|
-
const
|
|
38
|
-
await args.options
|
|
39
|
-
|
|
40
|
-
throw e;
|
|
38
|
+
const result = nearTransactionFailure(error, "not_submitted");
|
|
39
|
+
await notifyNearTransactionResult(args.options, result);
|
|
40
|
+
return result;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
async signTransaction(args) {
|
|
@@ -83,13 +83,12 @@ var ApplicationNearCommands = class {
|
|
|
83
83
|
...args.options && "waitUntil" in args.options ? { waitUntil: args.options.waitUntil } : {}
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
|
-
await args.options
|
|
86
|
+
await notifyNearTransactionResult(args.options, result);
|
|
87
87
|
return result;
|
|
88
88
|
} catch (error) {
|
|
89
|
-
const
|
|
90
|
-
await args.options
|
|
91
|
-
|
|
92
|
-
throw e;
|
|
89
|
+
const result = nearTransactionFailure(error, "not_submitted");
|
|
90
|
+
await notifyNearTransactionResult(args.options, result);
|
|
91
|
+
return result;
|
|
93
92
|
}
|
|
94
93
|
}
|
|
95
94
|
async signDelegateAction(args) {
|
|
@@ -3,6 +3,7 @@ import { extractBorshBytesFromPlainSignedTx, isBoolean, isObject, isPlainSignedT
|
|
|
3
3
|
import { parseMpcMaterialActivationRef } from "../../../shared-ts/src/utils/domainIds.js";
|
|
4
4
|
import { createIframePlacementCommands } from "./placementCommands.js";
|
|
5
5
|
import { toError } from "../../../shared-ts/src/utils/errors.js";
|
|
6
|
+
import { NearTransactionRequest, parseNearTransactionResult } from "../../../core/signingEngine/nearTransactionSubmission.js";
|
|
6
7
|
import { secureRandomBase36 } from "../../../shared-ts/src/utils/secureRandomId.js";
|
|
7
8
|
import { SignedTransaction } from "../../../core/rpcClients/near/NearClient.js";
|
|
8
9
|
import { thresholdEcdsaChainTargetsEqual, toWalletId } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
|
|
@@ -1902,6 +1903,44 @@ var WalletIframeRouter = class {
|
|
|
1902
1903
|
}
|
|
1903
1904
|
}, { timeout: "interactive" })).result;
|
|
1904
1905
|
}
|
|
1906
|
+
async authenticate(input) {
|
|
1907
|
+
return (await this.post({
|
|
1908
|
+
type: "PM_EXTERNAL_AUTH",
|
|
1909
|
+
payload: {
|
|
1910
|
+
action: "authenticate",
|
|
1911
|
+
input
|
|
1912
|
+
}
|
|
1913
|
+
})).result;
|
|
1914
|
+
}
|
|
1915
|
+
async prepareExternalAuth(walletId) {
|
|
1916
|
+
return (await this.post({
|
|
1917
|
+
type: "PM_EXTERNAL_AUTH",
|
|
1918
|
+
payload: {
|
|
1919
|
+
action: "prepare",
|
|
1920
|
+
walletId
|
|
1921
|
+
}
|
|
1922
|
+
})).result;
|
|
1923
|
+
}
|
|
1924
|
+
async removeExternalAuth(input) {
|
|
1925
|
+
return (await this.post({
|
|
1926
|
+
type: "PM_EXTERNAL_AUTH",
|
|
1927
|
+
payload: {
|
|
1928
|
+
action: "unlink",
|
|
1929
|
+
walletId: input.walletId,
|
|
1930
|
+
associationId: input.associationId
|
|
1931
|
+
}
|
|
1932
|
+
})).result;
|
|
1933
|
+
}
|
|
1934
|
+
async associateExternalAuth(input) {
|
|
1935
|
+
return (await this.post({
|
|
1936
|
+
type: "PM_EXTERNAL_AUTH",
|
|
1937
|
+
payload: {
|
|
1938
|
+
action: "associate",
|
|
1939
|
+
walletId: input.walletId,
|
|
1940
|
+
idToken: input.idToken
|
|
1941
|
+
}
|
|
1942
|
+
})).result;
|
|
1943
|
+
}
|
|
1905
1944
|
async getWalletSession(walletId) {
|
|
1906
1945
|
const expectedWalletId = walletId === void 0 ? void 0 : parseRequestedWalletId(walletId);
|
|
1907
1946
|
if (!this.state.ready || !this.state.port) await this.init();
|
|
@@ -2463,31 +2502,39 @@ var WalletIframeRouter = class {
|
|
|
2463
2502
|
};
|
|
2464
2503
|
}
|
|
2465
2504
|
async signAndSendTransaction(payload, transactionDispatch = { kind: "ordinary" }) {
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
...payload
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2505
|
+
const request = new NearTransactionRequest({ kind: "sign_and_send" });
|
|
2506
|
+
try {
|
|
2507
|
+
if (transactionDispatch.kind === "reviewed") payload = {
|
|
2508
|
+
...payload,
|
|
2509
|
+
options: {
|
|
2510
|
+
...payload.options,
|
|
2511
|
+
confirmationConfig: transactionDispatch.reservation.confirmationConfig
|
|
2512
|
+
}
|
|
2513
|
+
};
|
|
2514
|
+
const { options } = payload;
|
|
2515
|
+
const safeOptions = {
|
|
2516
|
+
waitUntil: options.waitUntil,
|
|
2517
|
+
...options.voiceId !== void 0 ? { voiceId: options.voiceId } : {},
|
|
2518
|
+
confirmationConfig: options.confirmationConfig,
|
|
2519
|
+
...typeof options.signerSlot === "number" ? { signerSlot: options.signerSlot } : {},
|
|
2520
|
+
...options.confirmerText ? { confirmerText: options.confirmerText } : {}
|
|
2521
|
+
};
|
|
2522
|
+
return parseNearTransactionResult((await this.post({
|
|
2523
|
+
type: "PM_SIGN_AND_SEND_TX",
|
|
2524
|
+
payload: {
|
|
2525
|
+
walletId: payload.walletId,
|
|
2526
|
+
nearAccountId: payload.nearAccountId,
|
|
2527
|
+
transaction: payload.transaction,
|
|
2528
|
+
options: safeOptions
|
|
2529
|
+
},
|
|
2530
|
+
options: { onProgress: this.wrapOnEvent(options?.onEvent, isSigningFlowEvent) }
|
|
2531
|
+
}, {
|
|
2532
|
+
transactionDispatch,
|
|
2533
|
+
onDispatched: request.dispatched
|
|
2534
|
+
})).result);
|
|
2535
|
+
} catch (error) {
|
|
2536
|
+
return request.failed(error);
|
|
2537
|
+
}
|
|
2491
2538
|
}
|
|
2492
2539
|
async hasPasskeyCredential(walletId) {
|
|
2493
2540
|
return !!(await this.post({
|
|
@@ -2518,18 +2565,26 @@ var WalletIframeRouter = class {
|
|
|
2518
2565
|
})).result);
|
|
2519
2566
|
}
|
|
2520
2567
|
async sendTransaction(args) {
|
|
2521
|
-
const
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2568
|
+
const request = new NearTransactionRequest({
|
|
2569
|
+
kind: "send",
|
|
2570
|
+
transactionId: args.signedTransaction.transactionHash
|
|
2571
|
+
});
|
|
2572
|
+
try {
|
|
2573
|
+
const { options } = args;
|
|
2574
|
+
const safeOptions = options ? { waitUntil: options.waitUntil } : void 0;
|
|
2575
|
+
return parseNearTransactionResult((await this.post({
|
|
2576
|
+
type: "PM_SEND_TRANSACTION",
|
|
2577
|
+
payload: {
|
|
2578
|
+
walletId: args.walletId,
|
|
2579
|
+
nearAccountId: args.nearAccountId,
|
|
2580
|
+
signedTransaction: args.signedTransaction,
|
|
2581
|
+
options: safeOptions
|
|
2582
|
+
},
|
|
2583
|
+
options: { onProgress: this.wrapOnEvent(options?.onEvent, isSigningFlowEvent) }
|
|
2584
|
+
}, { onDispatched: request.dispatched })).result);
|
|
2585
|
+
} catch (error) {
|
|
2586
|
+
return request.failed(error);
|
|
2587
|
+
}
|
|
2533
2588
|
}
|
|
2534
2589
|
async resolveExactKeyExportLane(input) {
|
|
2535
2590
|
return parseResolveExactKeyExportLaneResult((await this.post({
|
|
@@ -2711,7 +2766,7 @@ var WalletIframeRouter = class {
|
|
|
2711
2766
|
requestId,
|
|
2712
2767
|
payload
|
|
2713
2768
|
});
|
|
2714
|
-
if (!this.reviews.has(requestId) && isWalletFlowEvent(payload) && payload.status === "cancelled") {
|
|
2769
|
+
if (!this.reviews.has(requestId) && this.state.pending.get(requestId)?.requestType !== "PM_SIGN_AND_SEND_TX" && this.state.pending.get(requestId)?.requestType !== "PM_SEND_TRANSACTION" && isWalletFlowEvent(payload) && payload.status === "cancelled") {
|
|
2715
2770
|
this.settlePendingRequestCancellation(requestId, false);
|
|
2716
2771
|
this.sendBestEffortCancel(requestId);
|
|
2717
2772
|
return;
|
|
@@ -2902,6 +2957,7 @@ var WalletIframeRouter = class {
|
|
|
2902
2957
|
options: void 0
|
|
2903
2958
|
};
|
|
2904
2959
|
this.state.port.postMessage(serializableFull);
|
|
2960
|
+
postOpts?.onDispatched?.();
|
|
2905
2961
|
} catch (err) {
|
|
2906
2962
|
this.state.pending.delete(requestId);
|
|
2907
2963
|
window.clearTimeout(timer);
|
|
@@ -3055,6 +3111,7 @@ function normalizeSignedTransactionResult(result) {
|
|
|
3055
3111
|
transaction: signedTransaction.transaction,
|
|
3056
3112
|
signature: signedTransaction.signature,
|
|
3057
3113
|
borsh_bytes: extractBorshBytesFromPlainSignedTx(signedTransaction),
|
|
3114
|
+
transactionHash: signedTransaction.transactionHash,
|
|
3058
3115
|
...nonceLease ? { nonceLease } : {},
|
|
3059
3116
|
...serverDispatch ? { serverDispatch } : {}
|
|
3060
3117
|
})
|
|
@@ -3,6 +3,10 @@ import { walletIframeUnlockRequestFromLoginHooks } from "../shared/unlockOptions
|
|
|
3
3
|
//#region src/SeamsWeb/walletIframe/client/sessionCommands.ts
|
|
4
4
|
function createApplicationSessionCommands(walletIframe) {
|
|
5
5
|
return {
|
|
6
|
+
authenticate: authenticate.bind(null, walletIframe),
|
|
7
|
+
prepareExternalAuth: prepareExternalAuth.bind(null, walletIframe),
|
|
8
|
+
associateExternalAuth: associateExternalAuth.bind(null, walletIframe),
|
|
9
|
+
removeExternalAuth: removeExternalAuth.bind(null, walletIframe),
|
|
6
10
|
unlock: unlock.bind(null, walletIframe),
|
|
7
11
|
unlockWithAuthMethod: unlockWithAuthMethod.bind(null, walletIframe),
|
|
8
12
|
lock: lock.bind(null, walletIframe),
|
|
@@ -11,6 +15,18 @@ function createApplicationSessionCommands(walletIframe) {
|
|
|
11
15
|
hasPasskey: hasPasskey.bind(null, walletIframe)
|
|
12
16
|
};
|
|
13
17
|
}
|
|
18
|
+
async function authenticate(walletIframe, input) {
|
|
19
|
+
return (await walletIframe.requireRouter()).authenticate(input);
|
|
20
|
+
}
|
|
21
|
+
async function prepareExternalAuth(walletIframe, walletId) {
|
|
22
|
+
return (await walletIframe.requireRouter()).prepareExternalAuth(walletId);
|
|
23
|
+
}
|
|
24
|
+
async function associateExternalAuth(walletIframe, input) {
|
|
25
|
+
return (await walletIframe.requireRouter()).associateExternalAuth(input);
|
|
26
|
+
}
|
|
27
|
+
async function removeExternalAuth(walletIframe, input) {
|
|
28
|
+
return (await walletIframe.requireRouter()).removeExternalAuth(input);
|
|
29
|
+
}
|
|
14
30
|
async function unlock(walletIframe, walletId, options) {
|
|
15
31
|
const resolvedWalletId = String(walletId || "").trim();
|
|
16
32
|
if (!resolvedWalletId) throw new Error("unlock requires walletId");
|
|
@@ -23,6 +23,7 @@ function sizeFromEntryOrElement(element, entry) {
|
|
|
23
23
|
function sizeForReporter(options, entry) {
|
|
24
24
|
if (options.kind === "request_scroll_surface") {
|
|
25
25
|
const rect = options.element.getBoundingClientRect();
|
|
26
|
+
if (options.element.classList.contains("seams-confirm-surface-pinned")) return sizeFromRect(rect);
|
|
26
27
|
return sizeFromRect({
|
|
27
28
|
width: Math.max(options.element.scrollWidth, rect.width),
|
|
28
29
|
height: Math.max(options.element.scrollHeight, rect.height)
|
|
@@ -753,7 +753,7 @@ var AuthMenuSurface = class extends Component {
|
|
|
753
753
|
"data-auth-menu-provider": "google",
|
|
754
754
|
disabled: !isAuthMenuGoogleActionReady(viewModel),
|
|
755
755
|
onClick: this.onGoogleClick,
|
|
756
|
-
children: [googleIcon(), /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { copy: viewModel.mode === "login" ? "
|
|
756
|
+
children: [googleIcon(), /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { copy: viewModel.mode === "login" ? "Unlock with email code" : "Continue with Google" }) })]
|
|
757
757
|
}) : null,
|
|
758
758
|
viewModel.mode === "login" && viewModel.accountOptions.some(voiceAvailableForWallet.bind(null, selectedLoginAccount(viewModel)?.walletId)) ? /* @__PURE__ */ jsxs("button", {
|
|
759
759
|
type: "button",
|
|
@@ -24,6 +24,7 @@ function authMenuStyles(document) {
|
|
|
24
24
|
var MountedAuthMenuSurface = class {
|
|
25
25
|
element;
|
|
26
26
|
styles;
|
|
27
|
+
entrance = [];
|
|
27
28
|
state;
|
|
28
29
|
constructor(input) {
|
|
29
30
|
const document = input.parent.ownerDocument;
|
|
@@ -39,11 +40,36 @@ var MountedAuthMenuSurface = class {
|
|
|
39
40
|
input.parent.appendChild(this.element);
|
|
40
41
|
try {
|
|
41
42
|
this.update(input.viewModel);
|
|
43
|
+
this.animateEntrance(input.initialHeightCssPx);
|
|
42
44
|
} catch (error) {
|
|
43
45
|
this.dispose();
|
|
44
46
|
throw error;
|
|
45
47
|
}
|
|
46
48
|
}
|
|
49
|
+
animateEntrance(initialHeightCssPx) {
|
|
50
|
+
if (initialHeightCssPx === void 0 || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
51
|
+
const card = this.element.querySelector(".auth-menu-root");
|
|
52
|
+
if (!card) return;
|
|
53
|
+
const height = card.getBoundingClientRect().height;
|
|
54
|
+
this.entrance.push(card.animate([{
|
|
55
|
+
height: `${initialHeightCssPx}px`,
|
|
56
|
+
minHeight: "0px",
|
|
57
|
+
overflow: "hidden"
|
|
58
|
+
}, {
|
|
59
|
+
height: `${height}px`,
|
|
60
|
+
minHeight: "0px",
|
|
61
|
+
overflow: "hidden"
|
|
62
|
+
}], {
|
|
63
|
+
duration: 200,
|
|
64
|
+
easing: "cubic-bezier(0.32, 0.72, 0, 1)"
|
|
65
|
+
}));
|
|
66
|
+
for (const child of card.children) this.entrance.push(child.animate([{ opacity: 0 }, { opacity: 1 }], {
|
|
67
|
+
duration: 140,
|
|
68
|
+
delay: 60,
|
|
69
|
+
fill: "backwards",
|
|
70
|
+
easing: "cubic-bezier(0.25, 1, 0.5, 1)"
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
47
73
|
update(viewModel) {
|
|
48
74
|
if (this.state.kind === "disposed") return;
|
|
49
75
|
this.element.lang = viewModel.appearance.locale ?? "en";
|
|
@@ -59,6 +85,8 @@ var MountedAuthMenuSurface = class {
|
|
|
59
85
|
dispose() {
|
|
60
86
|
if (this.state.kind === "disposed") return;
|
|
61
87
|
this.state = { kind: "disposed" };
|
|
88
|
+
for (const animation of this.entrance) animation.cancel();
|
|
89
|
+
this.entrance = [];
|
|
62
90
|
this.element.removeEventListener("cancel", this.cancel);
|
|
63
91
|
render(null, this.element);
|
|
64
92
|
this.styles.deleteDynamicRule(this.element.id + "-appearance");
|
|
@@ -44,6 +44,7 @@ function walletForHostRequest(request, currentWalletId) {
|
|
|
44
44
|
case "PM_REGISTER_WALLET":
|
|
45
45
|
case "PM_UNLOCK":
|
|
46
46
|
case "PM_UNLOCK_AUTH_METHOD":
|
|
47
|
+
case "PM_EXTERNAL_AUTH":
|
|
47
48
|
case "PM_LOCK":
|
|
48
49
|
case "PM_LOCK_EXACT_WALLET_SESSION":
|
|
49
50
|
case "PM_GET_LAST_WALLET_MOVE_REQUEST":
|
|
@@ -6,6 +6,7 @@ import "../../../shared-ts/src/device-linking/activeWalletSession.js";
|
|
|
6
6
|
import { parseWalletAuthAuthorityRef } from "../../../shared-ts/src/utils/walletAuthAuthority.js";
|
|
7
7
|
import { toAccountId } from "../../../core/types/accountIds.js";
|
|
8
8
|
import { isWalletAuthMethod } from "../../../shared-ts/src/utils/signerDomain.js";
|
|
9
|
+
import { parseExternalWalletAuthentication, parseExternalWalletSettings } from "../../../shared-ts/src/auth/externalAuth.js";
|
|
9
10
|
import { NonceCoordinatorDegradationReason, NonceCoordinatorFallback, NonceLeaseState } from "../../../core/signingEngine/nonce/nonceTypes.js";
|
|
10
11
|
import { parseEcdsaThresholdKeyId } from "../../../core/signingEngine/session/keyMaterialBrands.js";
|
|
11
12
|
import { parseNearEd25519SigningKeyId } from "../../../shared-ts/src/utils/registrationIds.js";
|
|
@@ -89,12 +90,33 @@ function parseWalletIframeExactSessionState(value) {
|
|
|
89
90
|
function parseWalletSessionFromBoundary(value, expectedWalletId) {
|
|
90
91
|
if (value === null || typeof value !== "object" || Array.isArray(value)) throw new Error("Wallet Session must be an object");
|
|
91
92
|
if (Reflect.get(value, "reusableWalletSession") !== void 0) throw new Error("Wallet Session contains removed reusable-session fields");
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
const appIdentity = parseWalletSessionAppIdentity(Reflect.get(value, "appIdentity"));
|
|
94
|
+
const authentication = parseWalletAuthenticationState(Reflect.get(value, "authentication"));
|
|
95
|
+
const capabilityProjection = parseWalletSessionCapabilityProjection(Reflect.get(value, "capabilityProjection"));
|
|
96
|
+
const common = {
|
|
97
|
+
appIdentity,
|
|
96
98
|
nonceDiagnostics: parseNullableNonceDiagnostics(Reflect.get(value, "nonceDiagnostics"))
|
|
97
99
|
};
|
|
100
|
+
let parsed;
|
|
101
|
+
if (authentication.kind === "external_authenticated") {
|
|
102
|
+
if (appIdentity.kind !== "resolved") throw new Error("External authentication requires a resolved wallet");
|
|
103
|
+
if (common.nonceDiagnostics !== null) throw new Error("External authentication has no signing runtime");
|
|
104
|
+
if (capabilityProjection.kind !== "not_requested") throw new Error("External authentication cannot grant signing capabilities");
|
|
105
|
+
const externalSettings = parseExternalWalletSettings(Reflect.get(value, "externalSettings"));
|
|
106
|
+
if (externalSettings.authentication.sessionId !== authentication.sessionId || externalSettings.authentication.walletId !== authentication.walletId || externalSettings.authentication.associationId !== authentication.associationId || externalSettings.authentication.environmentId !== authentication.environmentId || externalSettings.authentication.expiresAtMs !== authentication.expiresAtMs) throw new Error("External settings identity mismatch");
|
|
107
|
+
parsed = {
|
|
108
|
+
appIdentity,
|
|
109
|
+
nonceDiagnostics: common.nonceDiagnostics,
|
|
110
|
+
authentication,
|
|
111
|
+
capabilityProjection,
|
|
112
|
+
externalSettings
|
|
113
|
+
};
|
|
114
|
+
} else parsed = {
|
|
115
|
+
appIdentity: common.appIdentity,
|
|
116
|
+
nonceDiagnostics: common.nonceDiagnostics,
|
|
117
|
+
authentication,
|
|
118
|
+
capabilityProjection
|
|
119
|
+
};
|
|
98
120
|
const expected = expectedWalletId === void 0 ? null : requireWalletId(expectedWalletId);
|
|
99
121
|
const canonicalWalletId = walletSessionCanonicalWalletId(parsed);
|
|
100
122
|
if (expected !== null && canonicalWalletId === null) throw new Error("Wallet iframe Wallet Session omitted the requested wallet identity");
|
|
@@ -106,6 +128,7 @@ function parseWalletAuthenticationState(value) {
|
|
|
106
128
|
if (value === null || typeof value !== "object" || Array.isArray(value)) throw new Error("Wallet Session authentication must be an object");
|
|
107
129
|
switch (Reflect.get(value, "kind")) {
|
|
108
130
|
case "signed_out": return { kind: "signed_out" };
|
|
131
|
+
case "external_authenticated": return parseExternalWalletAuthentication(value);
|
|
109
132
|
case "authenticated": {
|
|
110
133
|
const authMethod = Reflect.get(value, "authMethod");
|
|
111
134
|
if (!isWalletAuthMethod(authMethod)) throw new Error("Wallet Session authentication method is invalid");
|
|
@@ -203,6 +203,7 @@ function parseHostedAuthMenuOpenRequest(value) {
|
|
|
203
203
|
"kind",
|
|
204
204
|
"authMenuSessionId",
|
|
205
205
|
"initialMode",
|
|
206
|
+
"initialHeightCssPx",
|
|
206
207
|
"loginTarget",
|
|
207
208
|
"registrationAccountInput",
|
|
208
209
|
"showRegistrationInput",
|
|
@@ -212,6 +213,8 @@ function parseHostedAuthMenuOpenRequest(value) {
|
|
|
212
213
|
]) || !hasOnlyHostedAuthMenuCopyKeys(record.copy)) return null;
|
|
213
214
|
const authMenuSessionId = hostedAuthMenuSessionIdFromBoundary(record.authMenuSessionId);
|
|
214
215
|
const initialMode = parseAuthMenuMode(record.initialMode);
|
|
216
|
+
const initialHeightCssPx = record.initialHeightCssPx;
|
|
217
|
+
if (initialHeightCssPx !== void 0 && (typeof initialHeightCssPx !== "number" || !Number.isFinite(initialHeightCssPx) || initialHeightCssPx <= 0)) return null;
|
|
215
218
|
const loginTargetRecord = recordFromBoundary(record.loginTarget);
|
|
216
219
|
const loginWalletId = loginTargetRecord?.kind === "wallet" || loginTargetRecord?.kind === "wallet_sync" ? parseWalletId(loginTargetRecord.walletId) : null;
|
|
217
220
|
const loginTarget = loginTargetRecord?.kind === "discoverable" && hasOnlyKeys(loginTargetRecord, ["kind"]) ? { kind: "discoverable" } : loginTargetRecord?.kind === "wallet" && hasOnlyKeys(loginTargetRecord, ["kind", "walletId"]) && loginWalletId?.ok ? {
|
|
@@ -228,6 +231,7 @@ function parseHostedAuthMenuOpenRequest(value) {
|
|
|
228
231
|
kind: "hosted_auth_menu_open_v1",
|
|
229
232
|
authMenuSessionId,
|
|
230
233
|
initialMode,
|
|
234
|
+
initialHeightCssPx,
|
|
231
235
|
loginTarget,
|
|
232
236
|
registrationAccountInput,
|
|
233
237
|
showRegistrationInput: record.showRegistrationInput,
|
|
@@ -242,6 +246,7 @@ function buildHostedAuthMenuOpenRequest(args) {
|
|
|
242
246
|
if (!argsRecord || !hasOnlyKeys(argsRecord, [
|
|
243
247
|
"authMenuSessionId",
|
|
244
248
|
"initialMode",
|
|
249
|
+
"initialHeightCssPx",
|
|
245
250
|
"loginTarget",
|
|
246
251
|
"registrationAccountInput",
|
|
247
252
|
"showRegistrationInput",
|
|
@@ -255,6 +260,7 @@ function buildHostedAuthMenuOpenRequest(args) {
|
|
|
255
260
|
kind: "hosted_auth_menu_open_v1",
|
|
256
261
|
authMenuSessionId: parsedSessionId,
|
|
257
262
|
initialMode: args.initialMode ?? "login",
|
|
263
|
+
initialHeightCssPx: args.initialHeightCssPx,
|
|
258
264
|
loginTarget: args.loginTarget ?? { kind: "discoverable" },
|
|
259
265
|
registrationAccountInput: args.registrationAccountInput ?? "implicit_wallet",
|
|
260
266
|
showRegistrationInput: args.showRegistrationInput ?? false,
|
|
@@ -464,7 +470,7 @@ function parseHostedAuthMenuOutcome(value) {
|
|
|
464
470
|
default: return null;
|
|
465
471
|
}
|
|
466
472
|
}
|
|
467
|
-
const WALLET_PROTOCOL_VERSION = "
|
|
473
|
+
const WALLET_PROTOCOL_VERSION = "18.0.0";
|
|
468
474
|
const WALLET_IFRAME_PROTOCOL_VERSION_MISMATCH = "WALLET_IFRAME_PROTOCOL_VERSION_MISMATCH";
|
|
469
475
|
const HOSTED_WALLET_REDEMPTION_PAYLOAD_FIELDS = [
|
|
470
476
|
"home",
|
|
@@ -5,12 +5,18 @@ function parseWalletAuthMethodPlugins(value) {
|
|
|
5
5
|
const plugins = [];
|
|
6
6
|
const seen = /* @__PURE__ */ new Set();
|
|
7
7
|
for (const candidate of value) {
|
|
8
|
-
if (!isPlainObject(candidate) || Object.keys(candidate).
|
|
8
|
+
if (!isPlainObject(candidate) || Object.keys(candidate).some(unknownVoiceIdOption) || candidate.kind !== "voiceid" || candidate.transcriptionModel !== void 0 && candidate.transcriptionModel !== "aurora" && candidate.transcriptionModel !== "citrinet" || seen.has(candidate.kind)) throw new Error("Unsupported or duplicate wallet auth method plugin.");
|
|
9
9
|
seen.add(candidate.kind);
|
|
10
|
-
plugins.push({
|
|
10
|
+
plugins.push({
|
|
11
|
+
kind: "voiceid",
|
|
12
|
+
transcriptionModel: candidate.transcriptionModel ?? "citrinet"
|
|
13
|
+
});
|
|
11
14
|
}
|
|
12
15
|
return plugins;
|
|
13
16
|
}
|
|
17
|
+
function unknownVoiceIdOption(key) {
|
|
18
|
+
return key !== "kind" && key !== "transcriptionModel";
|
|
19
|
+
}
|
|
14
20
|
//#endregion
|
|
15
21
|
export { parseWalletAuthMethodPlugins };
|
|
16
22
|
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
+
import { requireCanonicalString } from "../../../shared-ts/src/utils/validation.js";
|
|
1
2
|
import { errorMessage } from "../../../shared-ts/src/utils/errors.js";
|
|
2
3
|
import { NearJsonRpcClient, SignedTransaction as SignedTransaction$1 } from "../../../shared-ts/src/near/nearClient.js";
|
|
3
4
|
import { NearRpcError } from "./NearRpcError.js";
|
|
4
5
|
//#region src/core/rpcClients/near/NearClient.ts
|
|
5
6
|
var SignedTransaction = class SignedTransaction extends SignedTransaction$1 {
|
|
7
|
+
transactionHash;
|
|
8
|
+
constructor(input) {
|
|
9
|
+
super(input);
|
|
10
|
+
this.transactionHash = input.transactionHash;
|
|
11
|
+
}
|
|
6
12
|
static fromPlain(input) {
|
|
7
13
|
return new SignedTransaction({
|
|
8
14
|
transaction: input.transaction,
|
|
9
15
|
signature: input.signature,
|
|
10
16
|
borsh_bytes: input.borsh_bytes,
|
|
17
|
+
transactionHash: requireCanonicalString(input.transactionHash, "signed transaction hash"),
|
|
11
18
|
...input.nonceLease ? { nonceLease: input.nonceLease } : {},
|
|
12
19
|
...input.serverDispatch ? { serverDispatch: input.serverDispatch } : {}
|
|
13
20
|
});
|
|
@@ -908,12 +908,15 @@ function toSignedTransactionResult(args) {
|
|
|
908
908
|
const signedTx = signedTransactions[0];
|
|
909
909
|
if (!signedTx || !signedTx.transaction || !signedTx.signature) throw new Error("Incomplete signed transaction data received");
|
|
910
910
|
const nonceLease = args.nonceLeases?.[0];
|
|
911
|
+
const transactionHash = args.okResponse.payload.transactionHashes?.[0];
|
|
912
|
+
if (!transactionHash) throw new Error("Signed transaction is missing its hash");
|
|
911
913
|
const serverDispatch = signedTx.serverDispatch;
|
|
912
914
|
return {
|
|
913
915
|
signedTransaction: new SignedTransaction({
|
|
914
916
|
transaction: signedTx.transaction,
|
|
915
917
|
signature: signedTx.signature,
|
|
916
918
|
borsh_bytes: Array.from(signedTx.borshBytes || []),
|
|
919
|
+
transactionHash,
|
|
917
920
|
...nonceLease ? { nonceLease } : {},
|
|
918
921
|
...serverDispatch ? { serverDispatch } : {}
|
|
919
922
|
}),
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { requireCanonicalString, requireNonEmptyString, requireRecord } from "../../shared-ts/src/utils/validation.js";
|
|
2
|
+
import { safeErrorMessage } from "../../shared-ts/src/utils/errors.js";
|
|
3
|
+
import { decodeNearFinalExecutionOutcome } from "../../shared-ts/src/utils/nearRpcResults.js";
|
|
4
|
+
//#region src/core/signingEngine/nearTransactionSubmission.ts
|
|
5
|
+
var NearTransactionRequest = class {
|
|
6
|
+
state = "not_dispatched";
|
|
7
|
+
constructor(transaction) {
|
|
8
|
+
this.transaction = transaction;
|
|
9
|
+
}
|
|
10
|
+
dispatched = () => {
|
|
11
|
+
this.state = "dispatched";
|
|
12
|
+
};
|
|
13
|
+
failed(error) {
|
|
14
|
+
if (this.state === "not_dispatched") return nearTransactionFailure(error, "not_submitted");
|
|
15
|
+
switch (this.transaction.kind) {
|
|
16
|
+
case "sign_and_send": return nearTransactionFailure(error, "submission_unknown");
|
|
17
|
+
case "send": return unresolvedNearTransaction(this.transaction.transactionId, error);
|
|
18
|
+
default: return assertNeverNearTransactionState(this.transaction);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
function assertNeverNearTransactionState(value) {
|
|
23
|
+
throw new Error(`Unsupported NEAR transaction state: ${String(value)}`);
|
|
24
|
+
}
|
|
25
|
+
function parseNearTransactionResult(raw) {
|
|
26
|
+
const result = requireRecord(raw, "NEAR transaction result");
|
|
27
|
+
if (result.success === true) {
|
|
28
|
+
const transactionId = requireCanonicalString(result.transactionId, "transactionId");
|
|
29
|
+
const outcome = decodeNearFinalExecutionOutcome(result.result);
|
|
30
|
+
if (transactionId !== outcome.transaction.hash) throw new Error("NEAR transaction result contains different transaction hashes");
|
|
31
|
+
if (typeof outcome.status === "object" && "Failure" in outcome.status) return unresolvedNearTransaction(transactionId, /* @__PURE__ */ new Error("NEAR transaction execution failed"));
|
|
32
|
+
return {
|
|
33
|
+
success: true,
|
|
34
|
+
transactionId,
|
|
35
|
+
result: outcome
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (result.success !== false) throw new Error("Invalid NEAR transaction result");
|
|
39
|
+
const error = requireNonEmptyString(result.error, "NEAR transaction error");
|
|
40
|
+
switch (result.kind) {
|
|
41
|
+
case "not_submitted": return {
|
|
42
|
+
success: false,
|
|
43
|
+
kind: "not_submitted",
|
|
44
|
+
error
|
|
45
|
+
};
|
|
46
|
+
case "submission_unknown": return {
|
|
47
|
+
success: false,
|
|
48
|
+
kind: "submission_unknown",
|
|
49
|
+
error
|
|
50
|
+
};
|
|
51
|
+
case "unresolved": return {
|
|
52
|
+
success: false,
|
|
53
|
+
kind: "unresolved",
|
|
54
|
+
transactionId: requireCanonicalString(result.transactionId, "transactionId"),
|
|
55
|
+
error
|
|
56
|
+
};
|
|
57
|
+
default: throw new Error("Invalid NEAR transaction failure");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function nearTransactionFailure(error, fallback) {
|
|
61
|
+
return {
|
|
62
|
+
success: false,
|
|
63
|
+
kind: fallback,
|
|
64
|
+
error: safeErrorMessage(error) || "NEAR transaction failed"
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function unresolvedNearTransaction(transactionId, error) {
|
|
68
|
+
return {
|
|
69
|
+
success: false,
|
|
70
|
+
kind: "unresolved",
|
|
71
|
+
transactionId,
|
|
72
|
+
error: safeErrorMessage(error)
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/** Application hooks cannot replace a settled transaction outcome with their own error. */
|
|
76
|
+
async function notifyNearTransactionResult(options, result) {
|
|
77
|
+
const error = result.success ? void 0 : new Error(result.error);
|
|
78
|
+
if (error) try {
|
|
79
|
+
await options?.onError?.(error);
|
|
80
|
+
} catch {}
|
|
81
|
+
try {
|
|
82
|
+
if (result.success) await options?.afterCall?.(true, result);
|
|
83
|
+
else await options?.afterCall?.(false, void 0, error);
|
|
84
|
+
} catch {}
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
export { NearTransactionRequest, nearTransactionFailure, notifyNearTransactionResult, parseNearTransactionResult };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=nearTransactionSubmission.js.map
|