@seams/wallet 0.6.0 → 0.6.2

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.
Files changed (150) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/SeamsWeb.js +1 -0
  3. package/dist/esm/SeamsWeb/operations/registration/registration.js +162 -33
  4. package/dist/esm/SeamsWeb/operations/registration/registrationTiming.js +33 -2
  5. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +3 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +63 -10
  7. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +45 -3
  8. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +19 -0
  9. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +25 -6
  10. package/dist/esm/core/signingEngine/nonce/nearNonceLane.js +0 -29
  11. package/dist/esm/core/signingEngine/session/operationState/trace.js +10 -1
  12. package/dist/esm/core/signingEngine/session/passkey/prfCache.js +24 -4
  13. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +5 -3
  14. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +40 -3
  15. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +31 -35
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +64 -10
  17. package/dist/esm/core/signingEngine/walletCustody/ceremonyDriver.js +1 -1
  18. package/dist/esm/react/SeamsWeb/SeamsWeb.js +1 -0
  19. package/dist/esm/react/SeamsWeb/operations/registration/registration.js +162 -33
  20. package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +33 -2
  21. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +3 -0
  22. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +63 -10
  23. package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +45 -3
  24. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +19 -0
  25. package/dist/esm/react/core/signingEngine/flows/signNear/signTransactions.js +25 -6
  26. package/dist/esm/react/core/signingEngine/nonce/nearNonceLane.js +0 -29
  27. package/dist/esm/react/core/signingEngine/session/operationState/trace.js +10 -1
  28. package/dist/esm/react/core/signingEngine/session/passkey/prfCache.js +24 -4
  29. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +5 -3
  30. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +40 -3
  31. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +31 -35
  32. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +64 -10
  33. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyDriver.js +1 -1
  34. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +13 -1
  35. package/dist/esm/sdk/{NonceCoordinator-C7QltTDC.js → NonceCoordinator-C7mqpJiU.js} +0 -29
  36. package/dist/esm/sdk/{adapters-Dgy69gf0.js → adapters-m94YFj70.js} +96 -46
  37. package/dist/{public/sdk/defaultConfigs-DJCLCrg9.js → esm/sdk/defaultConfigs-CyNOW4Sy.js} +1 -1
  38. package/dist/{public/sdk/display-Cw90-qmF.js → esm/sdk/display-DHdC2yXU.js} +1 -1
  39. package/dist/{public/sdk/ecdsaCapabilityManifest-DA_fklIs.js → esm/sdk/ecdsaCapabilityManifest-C8itxV9S.js} +1 -1
  40. package/dist/esm/sdk/{ecdsaPresignLifecycle-D_KCktCj.js → ecdsaPresignLifecycle-CnSnzoRJ.js} +13 -1
  41. package/dist/{public/sdk/ed25519SeedMaterial-0VmS6K9P.js → esm/sdk/ed25519SeedMaterial-Cghz8-XB.js} +2 -2
  42. package/dist/esm/sdk/{exactSessionState-C2aAv_ED.js → exactSessionState-Bt0HforB.js} +64 -11
  43. package/dist/esm/sdk/{export-viewer-host-NhjFdpm-.js → export-viewer-host-CbqG8ZQV.js} +1 -1
  44. package/dist/esm/sdk/{host-DACTruOj.js → host-BPC1zSVg.js} +2 -2
  45. package/dist/esm/sdk/{localOnly-DTNq69fJ.js → localOnly-CbLYTVbo.js} +2 -2
  46. package/dist/{public/sdk/nearEd25519YaoMaterialActivation-4AuGG2DG.js → esm/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js} +46 -4
  47. package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-jiGcQylO.js → nearEd25519YaoSigningPreparation-DX6xG-IW.js} +1 -1
  48. package/dist/esm/sdk/{prfCache-Dwwauj4v.js → prfCache-CgAr-VEU.js} +24 -4
  49. package/dist/{public/sdk/recovery-entrypoint-CFTX6PFZ.js → esm/sdk/recovery-entrypoint-D39R1avB.js} +3 -3
  50. package/dist/{public/sdk/registration-CuP1WmQu.js → esm/sdk/registration-DtDICj-o.js} +1 -1
  51. package/dist/esm/sdk/{registration-D8nYJKec.js → registration-PIBMSsQR.js} +247 -40
  52. package/dist/esm/sdk/{registrationPreparationPreload-DDe0sbZi.js → registrationPreparationPreload-BZfAC_ba.js} +2 -2
  53. package/dist/{public/sdk/router-DeX_cJ2f.js → esm/sdk/router-CeFS9SgT.js} +3 -3
  54. package/dist/{public/sdk/routerAbNormalSigning-BGpRKRAj.js → esm/sdk/routerAbNormalSigning-DktZKnf1.js} +1 -1
  55. package/dist/{public/sdk/runtime-auth-Ch00YcH5.js → esm/sdk/runtime-auth-D_lUQQlc.js} +8 -8
  56. package/dist/esm/sdk/{runtime-device-link-CEhVZYAw.js → runtime-device-link-CEph1iM0.js} +4 -4
  57. package/dist/{public/sdk/runtime-ecdsa-tempo-B-qMRrmx.js → esm/sdk/runtime-ecdsa-tempo-tUWnafRo.js} +5 -5
  58. package/dist/esm/sdk/{runtime-email-otp-giyMPib8.js → runtime-email-otp-1wIPTDim.js} +4 -4
  59. package/dist/esm/sdk/{runtime-export-CV-6G1Oy.js → runtime-export-Du2d4_Vu.js} +4 -4
  60. package/dist/{public/sdk/runtime-near-DoDcS88O.js → esm/sdk/runtime-near-CGoWxu7u.js} +4 -4
  61. package/dist/{public/sdk/runtime-preferences-Canyenle.js → esm/sdk/runtime-preferences-JwJK_xP3.js} +4 -4
  62. package/dist/esm/sdk/{runtime-recovery-lWyILD1g.js → runtime-recovery-BEqBdpyo.js} +4 -4
  63. package/dist/esm/sdk/{runtimeContext-BdTaYxJD.js → runtimeContext-CTt9ON27.js} +83 -40
  64. package/dist/{public/sdk/runtimeLoader-Dxn8UA8B.js → esm/sdk/runtimeLoader-ZXsvx9zX.js} +9 -9
  65. package/dist/{public/sdk/secp256k1-CQFsI3qQ.js → esm/sdk/secp256k1-CWDid9WH.js} +4 -4
  66. package/dist/{public/sdk/signEvmFamily-CZLET02E.js → esm/sdk/signEvmFamily-pbMepepQ.js} +10 -10
  67. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-DHTBHHgE.js → signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js} +2 -2
  68. package/dist/{public/sdk/signEvmWithUiConfirm-CSxTBQUW.js → esm/sdk/signEvmWithUiConfirm-nk-r3Rff.js} +1 -1
  69. package/dist/esm/sdk/{signNear-BeUWiWm_.js → signNear-DVD9-IO5.js} +50 -13
  70. package/dist/{public/sdk/signatureUses-C1o1pDql.js → esm/sdk/signatureUses-BY1IY7uz.js} +1 -1
  71. package/dist/{public/sdk/signerLoader-C_w8vuhm.js → esm/sdk/signerLoader-D_w-SfR9.js} +3 -3
  72. package/dist/{public/sdk/trace-DWnDLSuV.js → esm/sdk/trace-08ayoiNp.js} +10 -1
  73. package/dist/{public/sdk/transactionState-Dd13hMoY.js → esm/sdk/transactionState-Bpm4GamO.js} +2 -2
  74. package/dist/esm/sdk/tx-confirm-ui.js +134 -93
  75. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  76. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  77. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  78. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  79. package/dist/esm/sdk/wallet-ui.css +92 -32
  80. package/dist/esm/sdk/{walletRecoveryCommit-DNvzgeIX.js → walletRecoveryCommit-G6w6N5RV.js} +3 -3
  81. package/dist/esm/sdk/{warmSessionHydration-CCKeEIIy.js → warmSessionHydration-DDNYdTCz.js} +1 -1
  82. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +13 -1
  83. package/dist/public/headers.manifest.json +1 -1
  84. package/dist/public/sdk/{NonceCoordinator-C7QltTDC.js → NonceCoordinator-C7mqpJiU.js} +0 -29
  85. package/dist/public/sdk/{adapters-Dgy69gf0.js → adapters-m94YFj70.js} +96 -46
  86. package/dist/{esm/sdk/defaultConfigs-DJCLCrg9.js → public/sdk/defaultConfigs-CyNOW4Sy.js} +1 -1
  87. package/dist/{esm/sdk/display-Cw90-qmF.js → public/sdk/display-DHdC2yXU.js} +1 -1
  88. package/dist/{esm/sdk/ecdsaCapabilityManifest-DA_fklIs.js → public/sdk/ecdsaCapabilityManifest-C8itxV9S.js} +1 -1
  89. package/dist/public/sdk/{ecdsaPresignLifecycle-D_KCktCj.js → ecdsaPresignLifecycle-CnSnzoRJ.js} +13 -1
  90. package/dist/{esm/sdk/ed25519SeedMaterial-0VmS6K9P.js → public/sdk/ed25519SeedMaterial-Cghz8-XB.js} +2 -2
  91. package/dist/public/sdk/{exactSessionState-C2aAv_ED.js → exactSessionState-Bt0HforB.js} +64 -11
  92. package/dist/public/sdk/{export-viewer-host-NhjFdpm-.js → export-viewer-host-CbqG8ZQV.js} +1 -1
  93. package/dist/public/sdk/{host-DACTruOj.js → host-BPC1zSVg.js} +2 -2
  94. package/dist/public/sdk/{localOnly-DTNq69fJ.js → localOnly-CbLYTVbo.js} +2 -2
  95. package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-4AuGG2DG.js → public/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js} +46 -4
  96. package/dist/public/sdk/{nearEd25519YaoSigningPreparation-jiGcQylO.js → nearEd25519YaoSigningPreparation-DX6xG-IW.js} +1 -1
  97. package/dist/public/sdk/{prfCache-Dwwauj4v.js → prfCache-CgAr-VEU.js} +24 -4
  98. package/dist/{esm/sdk/recovery-entrypoint-CFTX6PFZ.js → public/sdk/recovery-entrypoint-D39R1avB.js} +3 -3
  99. package/dist/{esm/sdk/registration-CuP1WmQu.js → public/sdk/registration-DtDICj-o.js} +1 -1
  100. package/dist/public/sdk/{registration-D8nYJKec.js → registration-PIBMSsQR.js} +247 -40
  101. package/dist/public/sdk/{registrationPreparationPreload-DDe0sbZi.js → registrationPreparationPreload-BZfAC_ba.js} +2 -2
  102. package/dist/{esm/sdk/router-DeX_cJ2f.js → public/sdk/router-CeFS9SgT.js} +3 -3
  103. package/dist/{esm/sdk/routerAbNormalSigning-BGpRKRAj.js → public/sdk/routerAbNormalSigning-DktZKnf1.js} +1 -1
  104. package/dist/{esm/sdk/runtime-auth-Ch00YcH5.js → public/sdk/runtime-auth-D_lUQQlc.js} +8 -8
  105. package/dist/public/sdk/{runtime-device-link-CEhVZYAw.js → runtime-device-link-CEph1iM0.js} +4 -4
  106. package/dist/{esm/sdk/runtime-ecdsa-tempo-B-qMRrmx.js → public/sdk/runtime-ecdsa-tempo-tUWnafRo.js} +5 -5
  107. package/dist/public/sdk/{runtime-email-otp-giyMPib8.js → runtime-email-otp-1wIPTDim.js} +4 -4
  108. package/dist/public/sdk/{runtime-export-CV-6G1Oy.js → runtime-export-Du2d4_Vu.js} +4 -4
  109. package/dist/{esm/sdk/runtime-near-DoDcS88O.js → public/sdk/runtime-near-CGoWxu7u.js} +4 -4
  110. package/dist/{esm/sdk/runtime-preferences-Canyenle.js → public/sdk/runtime-preferences-JwJK_xP3.js} +4 -4
  111. package/dist/public/sdk/{runtime-recovery-lWyILD1g.js → runtime-recovery-BEqBdpyo.js} +4 -4
  112. package/dist/public/sdk/{runtimeContext-BdTaYxJD.js → runtimeContext-CTt9ON27.js} +83 -40
  113. package/dist/{esm/sdk/runtimeLoader-Dxn8UA8B.js → public/sdk/runtimeLoader-ZXsvx9zX.js} +9 -9
  114. package/dist/{esm/sdk/secp256k1-CQFsI3qQ.js → public/sdk/secp256k1-CWDid9WH.js} +4 -4
  115. package/dist/{esm/sdk/signEvmFamily-CZLET02E.js → public/sdk/signEvmFamily-pbMepepQ.js} +10 -10
  116. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-DHTBHHgE.js → signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js} +2 -2
  117. package/dist/{esm/sdk/signEvmWithUiConfirm-CSxTBQUW.js → public/sdk/signEvmWithUiConfirm-nk-r3Rff.js} +1 -1
  118. package/dist/public/sdk/{signNear-BeUWiWm_.js → signNear-DVD9-IO5.js} +50 -13
  119. package/dist/{esm/sdk/signatureUses-C1o1pDql.js → public/sdk/signatureUses-BY1IY7uz.js} +1 -1
  120. package/dist/{esm/sdk/signerLoader-C_w8vuhm.js → public/sdk/signerLoader-D_w-SfR9.js} +3 -3
  121. package/dist/{esm/sdk/trace-DWnDLSuV.js → public/sdk/trace-08ayoiNp.js} +10 -1
  122. package/dist/{esm/sdk/transactionState-Dd13hMoY.js → public/sdk/transactionState-Bpm4GamO.js} +2 -2
  123. package/dist/public/sdk/tx-confirm-ui.js +134 -93
  124. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  125. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  126. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  127. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  128. package/dist/public/sdk/wallet-ui.css +92 -32
  129. package/dist/public/sdk/{walletRecoveryCommit-DNvzgeIX.js → walletRecoveryCommit-G6w6N5RV.js} +3 -3
  130. package/dist/public/sdk/{warmSessionHydration-CCKeEIIy.js → warmSessionHydration-DDNYdTCz.js} +1 -1
  131. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +92 -8
  132. package/dist/public/wallet-assets.manifest.json +86 -86
  133. package/dist/public/wallet-service/index.html +4 -4
  134. package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +15 -1
  135. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +11 -1
  136. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +6 -0
  137. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +8 -2
  138. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +49 -10
  139. package/dist/types/wallet/src/core/signingEngine/nonce/nearNonceLane.d.ts +2 -1
  140. package/dist/types/wallet/src/core/signingEngine/session/operationState/trace.d.ts +2 -0
  141. package/dist/types/wallet/src/core/signingEngine/session/passkey/prfCache.d.ts +7 -9
  142. package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionHydration.d.ts +7 -8
  143. package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionMaterialWriter.d.ts +9 -9
  144. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/public.d.ts +7 -8
  145. package/dist/types/wallet/src/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.d.ts +3 -0
  146. package/dist/types/wallet/src/core/signingEngine/uiConfirm/uiConfirm.types.d.ts +6 -0
  147. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/shamir3pass/clientSealPreparation.d.ts +2 -0
  148. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +15 -1
  149. package/dist/workers/passkey-mpc-session.worker.js +92 -8
  150. package/package.json +1 -1
@@ -10,27 +10,27 @@ import { f as WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION, n as SIGNER_AUTH_METH
10
10
  import { a as toIndexedDbChainTargetKey } from "./normalization-oJyXl3Vn.js";
11
11
  import { o as normalizeRuntimePolicyScope } from "./participants-Bcnsa_ip.js";
12
12
  import { _ as isEd25519ExtensionOfEcdsaWalletAuthority, g as isCombinedWalletSignerActivationSetV1, m as isActiveEcdsaWalletAuthorityV1 } from "./sessionPolicy-B4FsPuk2.js";
13
- import { Bt as parseWalletAuthAuthorityRef, Ct as sameRouterAbEcdsaDerivationNormalSigningScopeV1, Ft as isEmailOtpWalletAuthAuthority, Ht as walletAuthAuthorityRef, It as isPasskeyWalletAuthAuthority, K as ROUTER_AB_ECDSA_DERIVATION_OPERATION_STEP_UP_PATH, Lt as parseEmailOtpWalletAuthAuthority, Q as computeRouterAbEcdsaOperationStepUpChallengeB64u, Sn as routerAbMpcMaterialActivationRefToWire, Vt as walletAuthAuthoritiesMatch, _t as requireRouterAbEcdsaDerivationNormalSigningStateV1, nt as parseRouterAbEcdsaDerivationNormalSigningScopeV1, ot as parseRouterAbEcdsaOperationStepUpAuthorizationRequestV1, st as parseRouterAbEcdsaOperationStepUpAuthorizationResponseV1, vt as routerAbEcdsaDerivationActiveStateId, xn as routerAbMpcMaterialActivationRefFromWire } from "./ecdsaPresignLifecycle-D_KCktCj.js";
13
+ import { Bt as parseWalletAuthAuthorityRef, Cn as routerAbMpcMaterialActivationRefToWire, Ct as sameRouterAbEcdsaDerivationNormalSigningScopeV1, Ft as isEmailOtpWalletAuthAuthority, Ht as walletAuthAuthorityRef, It as isPasskeyWalletAuthAuthority, K as ROUTER_AB_ECDSA_DERIVATION_OPERATION_STEP_UP_PATH, Lt as parseEmailOtpWalletAuthAuthority, Q as computeRouterAbEcdsaOperationStepUpChallengeB64u, Sn as routerAbMpcMaterialActivationRefFromWire, Vt as walletAuthAuthoritiesMatch, _t as requireRouterAbEcdsaDerivationNormalSigningStateV1, nt as parseRouterAbEcdsaDerivationNormalSigningScopeV1, ot as parseRouterAbEcdsaOperationStepUpAuthorizationRequestV1, st as parseRouterAbEcdsaOperationStepUpAuthorizationResponseV1, vt as routerAbEcdsaDerivationActiveStateId } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
14
14
  import { A as signingLaneAuthBindingKey, C as toThresholdOwnerAddress, D as SigningSessionPlanKind, E as SigningSessionIds, M as buildEvmFamilyEcdsaSignerBinding, N as exactEcdsaSigningLaneIdentity, P as exactEcdsaSigningLaneIdentityFromSelectedLane, R as exactSigningLaneIdentityFromSelectedLane, T as SigningOperationIntent, c as buildResolvedEvmFamilyEcdsaKey, f as deriveEvmFamilyKeyFingerprintFromPublicFacts, j as signingLaneAuthMethod, l as buildVerifiedEcdsaPublicFacts, n as buildBaseEvmFamilyEcdsaKeyIdentity, o as buildHydratedEcdsaSignerMaterial, q as requireEvmFamilyEcdsaSigner, s as buildPasskeyEcdsaAuthBinding, u as deriveEvmFamilyEcdsaKeyHandle, vt as computeEcdsaDerivationRoleLocalRelayerKeyId, x as toRpId, y as toEvmFamilyEcdsaKeyHandle, z as exactSigningLaneIdentityKey } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
15
15
  import { d as parseEcdsaThresholdKeyId, l as parseEcdsaRoleLocalPersistedMaterialRef, r as parseEcdsaClientVerifyingShareB64u } from "./keyMaterialBrands-BbjCfzXv.js";
16
16
  import { a as SIGNING_SESSION_EXPIRY_DETECTION_SOURCES, m as createSigningFlowEvent, o as SigningEventPhase } from "./sdkSentEvents-5Pi-hjHB.js";
17
17
  import { t as parseSignerSlot } from "./signerSlot-DbNAs-kc.js";
18
18
  import { t as demoEmailOtpCodeFromDelivery } from "./challengeDelivery-BjLKoou3.js";
19
- import { b as openEcdsaRoleLocalSigningMaterialWasm, t as buildReadySecp256k1SigningMaterial } from "./secp256k1-CQFsI3qQ.js";
20
- import { D as projectEcdsaRoleLocalPublicFactsToChainTarget, y as routerAbEcdsaDerivationPublicCapabilitiesEqual } from "./ecdsaCapabilityManifest-DA_fklIs.js";
19
+ import { b as openEcdsaRoleLocalSigningMaterialWasm, t as buildReadySecp256k1SigningMaterial } from "./secp256k1-CWDid9WH.js";
20
+ import { D as projectEcdsaRoleLocalPublicFactsToChainTarget, y as routerAbEcdsaDerivationPublicCapabilitiesEqual } from "./ecdsaCapabilityManifest-C8itxV9S.js";
21
21
  import { c as evmNonceLeaseToManagedReservation, l as evmReserveNonceInputToLane, s as evmManagedReservationToLane } from "./nonceLaneKeys-B_RcSS6M.js";
22
- import { c as buildTempoTransactionSigningLane, o as buildEvmTransactionSigningLane, x as selectedEcdsaLane, y as laneCandidateAuthMethod } from "./nearEd25519YaoSigningPreparation-jiGcQylO.js";
22
+ import { c as buildTempoTransactionSigningLane, o as buildEvmTransactionSigningLane, x as selectedEcdsaLane, y as laneCandidateAuthMethod } from "./nearEd25519YaoSigningPreparation-DX6xG-IW.js";
23
23
  import { a as throwEmailOtpSigningSessionAuthStateError, o as buildEmailOtpRoutePlan } from "./routePlan-nLpPFHB-.js";
24
24
  import { r as parseSigningOperationFingerprintDigest } from "./operationFingerprint-CsYO6b0a.js";
25
- import { a as emitSigningBoundaryTrace, c as emitSigningSessionFlowFailure, l as emitSigningSessionFlowTrace, o as emitSigningLaneResolutionTrace, s as emitSigningPlannerDecisionTrace, t as createSigningBoundaryTraceEvent } from "./trace-DWnDLSuV.js";
26
- import { i as loadWebAuthnP256EngineCtor, n as loadSignEvmFamilyWithUiConfirmForTempo, r as loadSignEvmWithUiConfirm, t as loadSecp256k1EngineCtor } from "./signerLoader-C_w8vuhm.js";
25
+ import { c as emitSigningPlannerDecisionTrace, l as emitSigningSessionFlowFailure, o as emitSigningBoundaryTrace, s as emitSigningLaneResolutionTrace, t as createSigningBoundaryTraceEvent, u as emitSigningSessionFlowTrace } from "./trace-08ayoiNp.js";
26
+ import { i as loadWebAuthnP256EngineCtor, n as loadSignEvmFamilyWithUiConfirmForTempo, r as loadSignEvmWithUiConfirm, t as loadSecp256k1EngineCtor } from "./signerLoader-D_w-SfR9.js";
27
27
  import { a as isPasskeySigningAuthPlan, i as isEmailOtpSigningAuthPlan, n as SigningAuthPlanKind } from "./promptText-BEgOkGxB.js";
28
28
  import { t as computeSigningOperationFingerprint, u as signingAuthPlanFromSigningSessionPlan } from "./operationFingerprint-DEPg9A3h.js";
29
- import { S as decideWalletSessionQuotaAdmissionFailure, _ as WALLET_SESSION_FAILURE_CODES, g as walletSessionFailureFromError, m as walletSessionFailureErrorFromPayload, v as WalletSessionQuotaAdmissionError, x as classifyWalletSessionQuotaAdmissionFailure, y as buildOperationAuthorizationQueueKey } from "./routerAbNormalSigning-BGpRKRAj.js";
30
- import { b as withThresholdCommitQueue, f as ecdsaAvailableLaneCandidatesForTarget, h as isConcreteAvailableSigningLane, o as selectEvmFamilyEcdsaMaterialCandidate, r as prepareTransactionSigningOperation, u as availableEcdsaSigningLaneAuthMethod, v as requireAuthoritativeExpiredWalletSessionAuthorizationBoundary, y as clearThresholdCommitQueue } from "./transactionState-Dd13hMoY.js";
29
+ import { S as decideWalletSessionQuotaAdmissionFailure, _ as WALLET_SESSION_FAILURE_CODES, g as walletSessionFailureFromError, m as walletSessionFailureErrorFromPayload, v as WalletSessionQuotaAdmissionError, x as classifyWalletSessionQuotaAdmissionFailure, y as buildOperationAuthorizationQueueKey } from "./routerAbNormalSigning-DktZKnf1.js";
30
+ import { b as withThresholdCommitQueue, f as ecdsaAvailableLaneCandidatesForTarget, h as isConcreteAvailableSigningLane, o as selectEvmFamilyEcdsaMaterialCandidate, r as prepareTransactionSigningOperation, u as availableEcdsaSigningLaneAuthMethod, v as requireAuthoritativeExpiredWalletSessionAuthorizationBoundary, y as clearThresholdCommitQueue } from "./transactionState-Bpm4GamO.js";
31
31
  import { t as bytesToHex } from "./bytes-CwytAKz8.js";
32
- import { d as reserveNonceInputFromBoundary, f as buildEvmDisplayModel, r as isEvmFamilyEcdsaMaterialSupersededError, t as requiredEvmFamilyRequestSignatureUses, u as fromManagedNonceReservationSnapshot } from "./signatureUses-C1o1pDql.js";
33
- import { t as buildTempoDisplayModel } from "./display-Cw90-qmF.js";
32
+ import { d as reserveNonceInputFromBoundary, f as buildEvmDisplayModel, r as isEvmFamilyEcdsaMaterialSupersededError, t as requiredEvmFamilyRequestSignatureUses, u as fromManagedNonceReservationSnapshot } from "./signatureUses-BY1IY7uz.js";
33
+ import { t as buildTempoDisplayModel } from "./display-DHdC2yXU.js";
34
34
  //#region src/core/signingEngine/session/material/linkedEcdsaHolderRuntime.ts
35
35
  const linkedHolderRuntimes = /* @__PURE__ */ new Map();
36
36
  function runtimeKey(input) {
@@ -11,8 +11,8 @@ import "./signingSessionSeal-CdtgXHSL.js";
11
11
  import { t as executeWorkerOperation } from "./executeWorkerOperation-Bn8GEuT_.js";
12
12
  import "./operationFingerprint-CsYO6b0a.js";
13
13
  import { t as bytesToHex } from "./bytes-CwytAKz8.js";
14
- import { f as buildEvmDisplayModel, i as signEvmFamilyWithUiConfirm, t as requiredEvmFamilyRequestSignatureUses } from "./signatureUses-C1o1pDql.js";
15
- import { t as buildTempoDisplayModel } from "./display-Cw90-qmF.js";
14
+ import { f as buildEvmDisplayModel, i as signEvmFamilyWithUiConfirm, t as requiredEvmFamilyRequestSignatureUses } from "./signatureUses-BY1IY7uz.js";
15
+ import { t as buildTempoDisplayModel } from "./display-DHdC2yXU.js";
16
16
  import { i as decodeCoseP256PublicKeyWasm } from "./evmCryptoWasm-BVj135bZ.js";
17
17
  import { t as EvmAdapter } from "./evmAdapter-C5NR5tiV.js";
18
18
  //#region src/core/signingEngine/chains/tempo/tempoSignerWasm.ts
@@ -7,7 +7,7 @@ import "./capabilityKinds-jwCEaqBU.js";
7
7
  import "./evmFamilyEcdsaIdentity-_kuKSW35.js";
8
8
  import "./signingSessionSeal-CdtgXHSL.js";
9
9
  import "./operationFingerprint-CsYO6b0a.js";
10
- import { f as buildEvmDisplayModel, i as signEvmFamilyWithUiConfirm, t as requiredEvmFamilyRequestSignatureUses } from "./signatureUses-C1o1pDql.js";
10
+ import { f as buildEvmDisplayModel, i as signEvmFamilyWithUiConfirm, t as requiredEvmFamilyRequestSignatureUses } from "./signatureUses-BY1IY7uz.js";
11
11
  import { t as EvmAdapter } from "./evmAdapter-C5NR5tiV.js";
12
12
  //#region src/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.ts
13
13
  async function signEvmWithUiConfirm(args) {
@@ -11,7 +11,7 @@ import { n as SIGNER_AUTH_METHODS, t as SENSITIVE_OPERATION_POLICIES } from "./s
11
11
  import { r as normalizeThresholdEd25519ParticipantIds } from "./participants-Bcnsa_ip.js";
12
12
  import { t as toAccountId } from "./accountIds-Ck4GAQfm.js";
13
13
  import { o as normalizeThresholdRuntimePolicyScope } from "./sessionPolicy-B4FsPuk2.js";
14
- import { Ht as walletAuthAuthorityRef, R as parseWalletSessionOperationCredentialV1, Rt as parsePasskeyWalletAuthAuthority } from "./ecdsaPresignLifecycle-D_KCktCj.js";
14
+ import { Ht as walletAuthAuthorityRef, R as parseWalletSessionOperationCredentialV1, Rt as parsePasskeyWalletAuthAuthority } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
15
15
  import { c as parseCapabilityOperationId, d as parseMpcWalletSigningQuotaId, f as parsePrincipalId, h as parseWalletSessionId, m as parseWalletSessionAuthorizationId, p as parseTenantId, s as parseCapabilityId } from "./capabilityKinds-jwCEaqBU.js";
16
16
  import { A as signingLaneAuthBindingKey, D as SigningSessionPlanKind, E as SigningSessionIds, L as exactEd25519SigningLaneIdentityFromSelectedLane, O as summarizeSigningLane, T as SigningOperationIntent, U as nearEd25519SignerBindingFromBoundaryFields, j as signingLaneAuthMethod, k as summarizeSigningSessionPlan, w as SigningKeyRefIntentKind, x as toRpId, z as exactSigningLaneIdentityKey } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
17
17
  import { a as SIGNING_SESSION_EXPIRY_DETECTION_SOURCES, m as createSigningFlowEvent, o as SigningEventPhase } from "./sdkSentEvents-5Pi-hjHB.js";
@@ -23,19 +23,19 @@ import { a as normalizeRegistrationCredential, i as normalizeAuthenticationCrede
23
23
  import { p as nonceLeaseToRef } from "./nonceLaneKeys-B_RcSS6M.js";
24
24
  import { i as buildNearAccountRefs, n as resolveProfileAccountContextFromCandidates } from "./profileAccountProjection-C9rVhbeJ.js";
25
25
  import { i as WorkerResponseType, n as NearSignerWorkerCustomRequestType, r as WorkerRequestType } from "./signer-worker-DYRteieu.js";
26
- import { s as parseWalletSessionAlreadyCommittedResponseV1, t as nearEd25519YaoMaterialActivationFromMetadata, y as fundImplicitNearAccountForTesting } from "./nearEd25519YaoMaterialActivation-4AuGG2DG.js";
26
+ import { s as parseWalletSessionAlreadyCommittedResponseV1, t as nearEd25519YaoMaterialActivationFromMetadata, y as fundImplicitNearAccountForTesting } from "./nearEd25519YaoMaterialActivation-Cz5UJQ_7.js";
27
27
  import { n as buildRelayerJsonPostRequestInit, t as buildBearerAuthorizationHeader } from "./relayerHttp-LsVTZCxA.js";
28
- import { s as buildNearTransactionSigningLane } from "./nearEd25519YaoSigningPreparation-jiGcQylO.js";
28
+ import { s as buildNearTransactionSigningLane } from "./nearEd25519YaoSigningPreparation-DX6xG-IW.js";
29
29
  import { n as computeCapabilityOperationFingerprintDigest, r as parseSigningOperationFingerprintDigest, t as buildCapabilityOperationEnvelope } from "./operationFingerprint-CsYO6b0a.js";
30
- import { a as emitSigningBoundaryTrace, o as emitSigningLaneResolutionTrace, s as emitSigningPlannerDecisionTrace, t as createSigningBoundaryTraceEvent } from "./trace-DWnDLSuV.js";
30
+ import { a as emitEd25519SigningTiming, c as emitSigningPlannerDecisionTrace, o as emitSigningBoundaryTrace, s as emitSigningLaneResolutionTrace, t as createSigningBoundaryTraceEvent } from "./trace-08ayoiNp.js";
31
31
  import { a as toActionArgsWasm, n as fromActionArgsWasm, o as validateActionArgsWasm, t as ActionType } from "./actions-DsBQcjBn.js";
32
32
  import { n as SignedTransaction } from "./NearClient-BQgcqAzG.js";
33
- import { n as PASSKEY_MANAGER_DEFAULT_CONFIGS } from "./defaultConfigs-DJCLCrg9.js";
34
- import { n as buildNearNonceLane } from "./NonceCoordinator-C7QltTDC.js";
33
+ import { n as PASSKEY_MANAGER_DEFAULT_CONFIGS } from "./defaultConfigs-CyNOW4Sy.js";
34
+ import { n as buildNearNonceLane } from "./NonceCoordinator-C7mqpJiU.js";
35
35
  import { a as isPasskeySigningAuthPlan, i as isEmailOtpSigningAuthPlan, n as SigningAuthPlanKind, o as isWarmSessionSigningAuthPlan } from "./promptText-BEgOkGxB.js";
36
36
  import { S as isSigningOperationReviewApprovedState, _ as SigningOperationCommandKind, c as runSigningConfirmationCommand, g as prepareStepUpAuth, h as buildSigningConfirmationAuthParams, l as runTransactionSigningConfirmationCommand, n as confirmationConfigForSigningAuthPlan, o as mapSigningConfirmationProgress, s as resolveSigningConfirmationAuthMethod, u as signingAuthPlanFromSigningSessionPlan, w as runSigningOperationCommand, x as createSigningOperationStateRef } from "./operationFingerprint-DEPg9A3h.js";
37
- import { C as waitForWalletSessionQuotaAdmissionRetry, S as decideWalletSessionQuotaAdmissionFailure, a as buildRouterAbEd25519NormalSigningFinalizeRequestV2, b as buildWalletSessionQuotaAdmissionQueueKey, d as routerAbCanonicalWireBytesToB64u, f as routerAbNormalSigningActionFingerprint, g as walletSessionFailureFromError, i as buildRouterAbEd25519Nep413PrepareRequestV2, n as buildRouterAbEd25519DelegateActionPrepareRequestV2, r as buildRouterAbEd25519NearTransactionPrepareRequestV2, s as finalizeRouterAbNormalSigningV2, u as prepareRouterAbNormalSigningV2, v as WalletSessionQuotaAdmissionError, x as classifyWalletSessionQuotaAdmissionFailure } from "./routerAbNormalSigning-BGpRKRAj.js";
38
- import { a as recordAvailableSigningLanesRead, b as withThresholdCommitQueue, c as selectTransactionLaneFromAvailableLanes, i as receiveTransactionIntent, n as prepareTransactionOperationFromReadiness, r as prepareTransactionSigningOperation, s as selectNearEd25519MaterialCandidate, t as classifyTransactionReadiness, v as requireAuthoritativeExpiredWalletSessionAuthorizationBoundary } from "./transactionState-Dd13hMoY.js";
37
+ import { C as waitForWalletSessionQuotaAdmissionRetry, S as decideWalletSessionQuotaAdmissionFailure, a as buildRouterAbEd25519NormalSigningFinalizeRequestV2, b as buildWalletSessionQuotaAdmissionQueueKey, d as routerAbCanonicalWireBytesToB64u, f as routerAbNormalSigningActionFingerprint, g as walletSessionFailureFromError, i as buildRouterAbEd25519Nep413PrepareRequestV2, n as buildRouterAbEd25519DelegateActionPrepareRequestV2, r as buildRouterAbEd25519NearTransactionPrepareRequestV2, s as finalizeRouterAbNormalSigningV2, u as prepareRouterAbNormalSigningV2, v as WalletSessionQuotaAdmissionError, x as classifyWalletSessionQuotaAdmissionFailure } from "./routerAbNormalSigning-DktZKnf1.js";
38
+ import { a as recordAvailableSigningLanesRead, b as withThresholdCommitQueue, c as selectTransactionLaneFromAvailableLanes, i as receiveTransactionIntent, n as prepareTransactionOperationFromReadiness, r as prepareTransactionSigningOperation, s as selectNearEd25519MaterialCandidate, t as classifyTransactionReadiness, v as requireAuthoritativeExpiredWalletSessionAuthorizationBoundary } from "./transactionState-Bpm4GamO.js";
39
39
  //#region src/core/platform/secretSources.ts
40
40
  const clientSecretSourceBrand = Symbol("ClientSecretSource");
41
41
  const emailOtpWorkerSessionHandleBrand = Symbol("EmailOtpWorkerSessionHandle");
@@ -1771,6 +1771,18 @@ function requireActiveClientMatchesNormalSigningOperation(args) {
1771
1771
  if (!sameBytes(metadata.signingWorkerVerifyingShare, args.signingWorkerVerifyingShare)) throw new Error("Router A/B Ed25519 active Client SigningWorker verifying share mismatch");
1772
1772
  }
1773
1773
  async function tryFinalizeRouterAbEd25519NormalSigningSignature(args) {
1774
+ const operationId = args.prepare.request.intent.operation_id;
1775
+ const signatureStartedAt = performance.now();
1776
+ let outcome = "failed";
1777
+ try {
1778
+ const finalized = await finalizeRouterAbEd25519NormalSigningSignature(args, operationId);
1779
+ outcome = "succeeded";
1780
+ return finalized;
1781
+ } finally {
1782
+ emitEd25519SigningTiming(operationId, "signature_total", signatureStartedAt, outcome);
1783
+ }
1784
+ }
1785
+ async function finalizeRouterAbEd25519NormalSigningSignature(args, operationId) {
1774
1786
  const signingPayload = base64UrlDecode(args.signingDigestB64u);
1775
1787
  if (signingPayload.length !== 32) throw new Error(`Router A/B normal-signing ${args.signingPayloadLabel} must be 32 bytes`);
1776
1788
  const admittedDigest = requireWireBytes32(args.prepare.admissionMaterial.admittedSigningDigest.bytes, "admitted digest");
@@ -1790,11 +1802,13 @@ async function tryFinalizeRouterAbEd25519NormalSigningSignature(args) {
1790
1802
  runtimePolicyScope: args.walletSessionState.runtimePolicyScope,
1791
1803
  relayerUrl: args.walletSessionState.relayerUrl
1792
1804
  } : args.materialFacts;
1805
+ const prepareStartedAt = performance.now();
1793
1806
  const prepareResponse = await prepareRouterAbNormalSigningV2({
1794
1807
  relayServerUrl: materialFacts.relayerUrl,
1795
1808
  credential: args.credential,
1796
1809
  request: args.prepare.request
1797
1810
  });
1811
+ emitEd25519SigningTiming(operationId, "prepare", prepareStartedAt);
1798
1812
  requireRouterAbNormalSigningPrepareMatchesRequest({
1799
1813
  request: args.prepare.request,
1800
1814
  signingPayloadDigest: args.prepare.admissionMaterial.signingPayloadDigest,
@@ -1815,12 +1829,15 @@ async function tryFinalizeRouterAbEd25519NormalSigningSignature(args) {
1815
1829
  signingWorkerId: prepareResponse.signing_worker.server_id,
1816
1830
  signingWorkerVerifyingShare
1817
1831
  });
1832
+ const clientShareStartedAt = performance.now();
1818
1833
  const clientShare = await args.activeClient.createSigningShare({
1819
1834
  admittedDigest,
1820
1835
  signingWorkerCommitments: prepareResponse.server_commitments,
1821
1836
  signingWorkerVerifyingShare
1822
1837
  });
1838
+ emitEd25519SigningTiming(operationId, "client_share", clientShareStartedAt);
1823
1839
  if (clientShare.clientVerifyingShare.length !== 32) throw new Error("Router A/B normal-signing Client verifying share must be 32 bytes");
1840
+ const finalizeStartedAt = performance.now();
1824
1841
  const signingResponse = await finalizeRouterAbNormalSigningV2({
1825
1842
  relayServerUrl: materialFacts.relayerUrl,
1826
1843
  credential: args.credential,
@@ -1834,6 +1851,7 @@ async function tryFinalizeRouterAbEd25519NormalSigningSignature(args) {
1834
1851
  clientSignatureShareB64u: clientShare.clientSignatureShareB64u
1835
1852
  })
1836
1853
  });
1854
+ emitEd25519SigningTiming(operationId, "finalize", finalizeStartedAt);
1837
1855
  requireRouterAbNormalSigningResponseMatchesRequest({
1838
1856
  request: args.prepare.request,
1839
1857
  signingPayloadDigest: args.prepare.admissionMaterial.signingPayloadDigest,
@@ -2643,6 +2661,16 @@ function disposeOwnedNearOperationStepUpMaterialAndRethrow(args, error) {
2643
2661
  disposeOwnedNearOperationStepUpMaterial(args);
2644
2662
  throw error;
2645
2663
  }
2664
+ async function resolveWarmNearSigningMaterial(args) {
2665
+ return {
2666
+ material: await resolvePreparedNearEd25519YaoMaterial(args.preparation, args.executor),
2667
+ walletSessionState: await args.executor.resolveWalletSessionState()
2668
+ };
2669
+ }
2670
+ function requireWarmNearSigningMaterialTask(task) {
2671
+ if (!task) throw new Error("[SigningEngine][near] warm signing material was not prepared");
2672
+ return task;
2673
+ }
2646
2674
  async function resolveNearTransactionOperationStepUpMaterial(args) {
2647
2675
  if (args.authorization.kind === "passkey") {
2648
2676
  if (args.material.kind !== "passkey_live" && args.material.kind !== "passkey_sealed") throw new Error("[SigningEngine][near] passkey transaction material changed factor");
@@ -2983,6 +3011,8 @@ async function runAuthorizedNearTransactionWithActionsSigning({ ctx, commandSubj
2983
3011
  const nearAccountId = toAccountId(nearAccount.accountId);
2984
3012
  const relayerUrl = ctx.relayerUrl;
2985
3013
  const warnings = [];
3014
+ const durableLeaseRecovery = ctx.nonceCoordinator.recoverDurableLeases({ walletId: String(commandSubject.walletSession.walletId) });
3015
+ durableLeaseRecovery.catch(() => {});
2986
3016
  emitNearSigningEvent$2(onEvent, nearAccountId, {
2987
3017
  phase: SigningEventPhase.STEP_02_REQUEST_PREPARED,
2988
3018
  status: "running",
@@ -3082,6 +3112,11 @@ async function runAuthorizedNearTransactionWithActionsSigning({ ctx, commandSubj
3082
3112
  ...passkeyEd25519OperationStepUp ? { passkeyEd25519OperationStepUp } : {},
3083
3113
  ...emailOtpEd25519StepUp ? { emailOtpEd25519StepUp } : {}
3084
3114
  });
3115
+ const warmSigningMaterialTask = preparedStepUp.kind === "warm_session" ? resolveWarmNearSigningMaterial({
3116
+ preparation: yaoSigningPreparation,
3117
+ executor: yaoMaterialExecutor
3118
+ }) : null;
3119
+ warmSigningMaterialTask?.catch(() => {});
3085
3120
  const confirmationAuthPayload = preparedStepUp.confirmationAuthPayload;
3086
3121
  if (isWarmSessionSigningAuthPlan(confirmationAuthPayload.signingAuthPlan)) emitNearSigningEvent$2(onEvent, nearAccountId, {
3087
3122
  phase: SigningEventPhase.STEP_06_AUTH_WARM_SESSION_CLAIMED,
@@ -3176,6 +3211,7 @@ async function runAuthorizedNearTransactionWithActionsSigning({ ctx, commandSubj
3176
3211
  readiness: operationStepUpReadiness
3177
3212
  });
3178
3213
  }
3214
+ const confirmationCompletedAt = performance.now();
3179
3215
  const operationStepUpMaterial = operationStepUpReadiness ? await operationStepUpReadiness : null;
3180
3216
  if (transactionReviewRequired) emitNearSigningEvent$2(onEvent, nearAccountId, {
3181
3217
  phase: SigningEventPhase.STEP_05_CONFIRMATION_APPROVED,
@@ -3208,7 +3244,7 @@ async function runAuthorizedNearTransactionWithActionsSigning({ ctx, commandSubj
3208
3244
  });
3209
3245
  const ownsResolvedOperationStepUpMaterial = operationStepUpMaterial?.kind === "passkey_sealed" || operationStepUpMaterial?.kind === "email_otp_sealed";
3210
3246
  try {
3211
- await ctx.nonceCoordinator.recoverDurableLeases({ walletId: String(signingLane.identity.signer.account.wallet.walletId) });
3247
+ await durableLeaseRecovery;
3212
3248
  } catch (error) {
3213
3249
  disposeOwnedNearOperationStepUpMaterial({
3214
3250
  resolved: resolvedOperationStepUpMaterial,
@@ -3231,14 +3267,14 @@ async function runAuthorizedNearTransactionWithActionsSigning({ ctx, commandSubj
3231
3267
  });
3232
3268
  const resolvedMaterial = stepUpAuthorization.kind === "warm_session" ? {
3233
3269
  kind: "warm_session",
3234
- material: await resolvePreparedNearEd25519YaoMaterial(yaoSigningPreparation, yaoMaterialExecutor)
3270
+ resolved: await requireWarmNearSigningMaterialTask(warmSigningMaterialTask)
3235
3271
  } : {
3236
3272
  kind: "operation_step_up",
3237
3273
  resolved: resolvedOperationStepUpMaterial
3238
3274
  };
3239
- const canonicalThresholdSessionId = resolvedMaterial.kind === "warm_session" ? resolvedMaterial.material.facts.thresholdSessionId : resolvedMaterial.resolved.material.facts.thresholdSessionId;
3240
- const activeYaoClient = resolvedMaterial.kind === "warm_session" ? resolvedMaterial.material.activeClient : resolvedMaterial.resolved.material.activeClient;
3241
- const activeWalletSessionState = resolvedMaterial.kind === "warm_session" ? await yaoMaterialExecutor.resolveWalletSessionState() : null;
3275
+ const canonicalThresholdSessionId = resolvedMaterial.kind === "warm_session" ? resolvedMaterial.resolved.material.facts.thresholdSessionId : resolvedMaterial.resolved.material.facts.thresholdSessionId;
3276
+ const activeYaoClient = resolvedMaterial.kind === "warm_session" ? resolvedMaterial.resolved.material.activeClient : resolvedMaterial.resolved.material.activeClient;
3277
+ const activeWalletSessionState = resolvedMaterial.kind === "warm_session" ? resolvedMaterial.resolved.walletSessionState : null;
3242
3278
  const confirmedNearContext = resolvedMaterial.kind === "warm_session" ? await resolveConfirmedNearTransactionContext({
3243
3279
  confirmation,
3244
3280
  ctx,
@@ -3369,6 +3405,7 @@ async function runAuthorizedNearTransactionWithActionsSigning({ ctx, commandSubj
3369
3405
  warnings,
3370
3406
  nonceLeases: nonceLeaseRefs
3371
3407
  });
3408
+ emitEd25519SigningTiming(String(signingOperation.operationId), "confirmed_to_signed", confirmationCompletedAt);
3372
3409
  emitNearSigningEvent$2(onEvent, nearAccountId, {
3373
3410
  phase: SigningEventPhase.STEP_11_TRANSACTION_SIGNED,
3374
3411
  status: "succeeded",
@@ -5,7 +5,7 @@ import { E as SigningSessionIds } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
5
5
  import { m as createSigningFlowEvent, o as SigningEventPhase } from "./sdkSentEvents-5Pi-hjHB.js";
6
6
  import { i as normalizeAuthenticationCredential } from "./helpers-DpRjHMBx.js";
7
7
  import { r as parseSigningOperationFingerprintDigest } from "./operationFingerprint-CsYO6b0a.js";
8
- import { i as emitEcdsaSigningTiming } from "./trace-DWnDLSuV.js";
8
+ import { i as emitEcdsaSigningTiming } from "./trace-08ayoiNp.js";
9
9
  import { t as createEvmClient } from "./EvmClient-CHw6txjt.js";
10
10
  import { a as isPasskeySigningAuthPlan, i as isEmailOtpSigningAuthPlan, o as isWarmSessionSigningAuthPlan, r as isActiveWalletAuthoritySigningAuthPlan } from "./promptText-BEgOkGxB.js";
11
11
  import { E as runUnplannedSigningOperationCommandSequence, T as runSigningOperationCommandSteps, _ as SigningOperationCommandKind, a as makeRequestId, b as createSigningOperationPlan, g as prepareStepUpAuth, i as inferDigest32FromSignRequest, o as mapSigningConfirmationProgress, r as createSigningConfirmationCommandHandler, s as resolveSigningConfirmationAuthMethod, y as buildSigningOperationCommandSteps } from "./operationFingerprint-DEPg9A3h.js";
@@ -4,7 +4,7 @@ let webAuthnP256EngineCtorPromise = null;
4
4
  let signEvmWithUiConfirmPromise = null;
5
5
  let signEvmFamilyWithUiConfirmForTempoPromise = null;
6
6
  async function loadSecp256k1EngineCtor() {
7
- if (!secp256k1EngineCtorPromise) secp256k1EngineCtorPromise = import("./secp256k1-CQFsI3qQ.js").then((n) => n.n).then((mod) => mod.Secp256k1Engine);
7
+ if (!secp256k1EngineCtorPromise) secp256k1EngineCtorPromise = import("./secp256k1-CWDid9WH.js").then((n) => n.n).then((mod) => mod.Secp256k1Engine);
8
8
  return await secp256k1EngineCtorPromise;
9
9
  }
10
10
  async function loadWebAuthnP256EngineCtor() {
@@ -12,11 +12,11 @@ async function loadWebAuthnP256EngineCtor() {
12
12
  return await webAuthnP256EngineCtorPromise;
13
13
  }
14
14
  async function loadSignEvmWithUiConfirm() {
15
- if (!signEvmWithUiConfirmPromise) signEvmWithUiConfirmPromise = import("./signEvmWithUiConfirm-CSxTBQUW.js").then((mod) => mod.signEvmWithUiConfirm);
15
+ if (!signEvmWithUiConfirmPromise) signEvmWithUiConfirmPromise = import("./signEvmWithUiConfirm-nk-r3Rff.js").then((mod) => mod.signEvmWithUiConfirm);
16
16
  return await signEvmWithUiConfirmPromise;
17
17
  }
18
18
  async function loadSignEvmFamilyWithUiConfirmForTempo() {
19
- if (!signEvmFamilyWithUiConfirmForTempoPromise) signEvmFamilyWithUiConfirmForTempoPromise = import("./signEvmFamilyWithUiConfirmForTempo-DHTBHHgE.js").then((mod) => mod.signEvmFamilyWithUiConfirmForTempo);
19
+ if (!signEvmFamilyWithUiConfirmForTempoPromise) signEvmFamilyWithUiConfirmForTempoPromise = import("./signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js").then((mod) => mod.signEvmFamilyWithUiConfirmForTempo);
20
20
  return await signEvmFamilyWithUiConfirmForTempoPromise;
21
21
  }
22
22
  //#endregion
@@ -65,6 +65,15 @@ function emitEcdsaSigningTiming(operationId, stage, startedAt, outcome = "succee
65
65
  outcome
66
66
  });
67
67
  }
68
+ function emitEd25519SigningTiming(operationId, stage, startedAt, outcome = "succeeded") {
69
+ emitSigningSessionFlowTrace("near", {
70
+ event: "ed25519_signing_timing",
71
+ operationId,
72
+ stage,
73
+ durationMs: Math.max(0, performance.now() - startedAt),
74
+ outcome
75
+ });
76
+ }
68
77
  function emitSigningLaneResolutionTrace(scope, lane, args = {}) {
69
78
  if (!lane || !isSigningSessionTraceEnabled()) return;
70
79
  try {
@@ -115,4 +124,4 @@ function isSigningSessionTraceEnabled() {
115
124
  }
116
125
  }
117
126
  //#endregion
118
- export { emitSigningBoundaryTrace as a, emitSigningSessionFlowFailure as c, emitEcdsaSigningTiming as i, emitSigningSessionFlowTrace as l, emitEcdsaPresignServerTiming as n, emitSigningLaneResolutionTrace as o, emitEcdsaServerTiming as r, emitSigningPlannerDecisionTrace as s, createSigningBoundaryTraceEvent as t };
127
+ export { emitEd25519SigningTiming as a, emitSigningPlannerDecisionTrace as c, emitEcdsaSigningTiming as i, emitSigningSessionFlowFailure as l, emitEcdsaPresignServerTiming as n, emitSigningBoundaryTrace as o, emitEcdsaServerTiming as r, emitSigningLaneResolutionTrace as s, createSigningBoundaryTraceEvent as t, emitSigningSessionFlowTrace as u };
@@ -2,10 +2,10 @@ import { n as normalizeBoundedPositiveInteger, p as mpcMaterialActivationRefsEqu
2
2
  import { m as nearEd25519SigningKeyIdFromString } from "./registrationIntent-DwAIMQYh.js";
3
3
  import { c as toWalletId, o as thresholdEcdsaChainTargetKey, s as thresholdEcdsaChainTargetsEqual } from "./ecdsaChainTarget-BOTPGIU_.js";
4
4
  import { t as toAccountId } from "./accountIds-Ck4GAQfm.js";
5
- import { Ht as walletAuthAuthorityRef } from "./ecdsaPresignLifecycle-D_KCktCj.js";
5
+ import { Ht as walletAuthAuthorityRef } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
6
6
  import { A as signingLaneAuthBindingKey, V as exactSigningLaneWalletId, f as deriveEvmFamilyKeyFingerprintFromPublicFacts, j as signingLaneAuthMethod, x as toRpId } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
7
7
  import { t as parseSignerSlot } from "./signerSlot-DbNAs-kc.js";
8
- import { S as selectedEd25519Lane, a as nearEd25519SessionMatchesMaterialActivation, x as selectedEcdsaLane, y as laneCandidateAuthMethod } from "./nearEd25519YaoSigningPreparation-jiGcQylO.js";
8
+ import { S as selectedEd25519Lane, a as nearEd25519SessionMatchesMaterialActivation, x as selectedEcdsaLane, y as laneCandidateAuthMethod } from "./nearEd25519YaoSigningPreparation-DX6xG-IW.js";
9
9
  //#region src/core/signingEngine/threshold/commitQueueShared.ts
10
10
  const DEFAULT_MAX_QUEUE_LENGTH = 8;
11
11
  const DEFAULT_QUEUE_TIMEOUT_MS = 45e3;
@@ -5668,12 +5668,18 @@ class TransactionReceipt extends C {
5668
5668
  return /* @__PURE__ */ u2("div", {
5669
5669
  class: "seams-transaction-toast",
5670
5670
  "data-completed-stages": completedStages,
5671
+ "data-stage": receipt.state.kind,
5671
5672
  "data-pending": pending,
5672
5673
  children: [
5673
5674
  /* @__PURE__ */ u2("div", {
5674
5675
  class: "seams-toast-progress",
5675
5676
  "aria-hidden": "true",
5676
- children: /* @__PURE__ */ u2("span", {})
5677
+ children: /* @__PURE__ */ u2("span", {
5678
+ class: "seams-toast-progress-fill",
5679
+ children: pending && /* @__PURE__ */ u2("span", {
5680
+ class: "seams-toast-progress-active"
5681
+ })
5682
+ })
5677
5683
  }),
5678
5684
  /* @__PURE__ */ u2("span", {
5679
5685
  class: "seams-receipt-symbol",
@@ -5717,25 +5723,13 @@ class TransactionReceipt extends C {
5717
5723
  /* @__PURE__ */ u2("span", {
5718
5724
  children: "Transaction receipt"
5719
5725
  }),
5720
- /* @__PURE__ */ u2("div", {
5721
- children: [
5722
- /* @__PURE__ */ u2("button", {
5723
- type: "button",
5724
- "aria-label": "Minimize transaction",
5725
- onClick: this.minimize,
5726
- children: /* @__PURE__ */ u2(ReviewIcon, {
5727
- kind: "minimize"
5728
- })
5729
- }),
5730
- /* @__PURE__ */ u2("button", {
5731
- type: "button",
5732
- "aria-label": receiptIsPending(receipt.state) ? "Minimize transaction" : "Close receipt",
5733
- onClick: this.close,
5734
- children: /* @__PURE__ */ u2(ReviewIcon, {
5735
- kind: "close"
5736
- })
5737
- })
5738
- ]
5726
+ /* @__PURE__ */ u2("button", {
5727
+ type: "button",
5728
+ "aria-label": "Minimize transaction",
5729
+ onClick: this.minimize,
5730
+ children: /* @__PURE__ */ u2(ReviewIcon, {
5731
+ kind: "minimize"
5732
+ })
5739
5733
  })
5740
5734
  ]
5741
5735
  }),
@@ -5826,72 +5820,69 @@ class TransactionReceipt extends C {
5826
5820
  })
5827
5821
  ]
5828
5822
  }),
5829
- /* @__PURE__ */ u2("div", {
5830
- class: "seams-receipt-box",
5831
- children: /* @__PURE__ */ u2(ReviewDisclosure, {
5832
- label: "Receipt details",
5833
- children: /* @__PURE__ */ u2("dl", {
5834
- class: "seams-review-fields",
5835
- children: [
5836
- data.model?.signerAccount && /* @__PURE__ */ u2("div", {
5837
- children: [
5838
- /* @__PURE__ */ u2("dt", {
5839
- children: "From"
5840
- }),
5841
- /* @__PURE__ */ u2("dd", {
5842
- class: "seams-review-recipient",
5843
- children: /* @__PURE__ */ u2(CopyReviewValue, {
5844
- value: data.model.signerAccount,
5845
- address: true,
5846
- label: `Copy signer address ${data.model.signerAccount}`
5847
- })
5848
- })
5849
- ]
5850
- }),
5851
- recipient && /* @__PURE__ */ u2("div", {
5852
- children: [
5853
- /* @__PURE__ */ u2("dt", {
5854
- children: "To"
5855
- }),
5856
- /* @__PURE__ */ u2("dd", {
5857
- class: "seams-review-recipient",
5858
- children: /* @__PURE__ */ u2(CopyReviewValue, {
5859
- value: recipient,
5860
- address: true,
5861
- label: `Copy recipient address ${recipient}`
5862
- })
5863
- })
5864
- ]
5865
- }),
5866
- receipt.state.hash && /* @__PURE__ */ u2("div", {
5867
- children: [
5868
- /* @__PURE__ */ u2("dt", {
5869
- children: "Transaction"
5870
- }),
5871
- /* @__PURE__ */ u2("dd", {
5872
- children: [
5873
- /* @__PURE__ */ u2(ReviewAddress, {
5874
- value: receipt.state.hash
5875
- }),
5876
- /* @__PURE__ */ u2(CopyReviewValue, {
5877
- value: receipt.state.hash
5878
- })
5879
- ]
5823
+ /* @__PURE__ */ u2(ReviewDisclosure, {
5824
+ label: "Receipt details",
5825
+ children: /* @__PURE__ */ u2("dl", {
5826
+ class: "seams-review-fields",
5827
+ children: [
5828
+ data.model?.signerAccount && /* @__PURE__ */ u2("div", {
5829
+ children: [
5830
+ /* @__PURE__ */ u2("dt", {
5831
+ children: "From"
5832
+ }),
5833
+ /* @__PURE__ */ u2("dd", {
5834
+ class: "seams-review-recipient",
5835
+ children: /* @__PURE__ */ u2(CopyReviewValue, {
5836
+ value: data.model.signerAccount,
5837
+ address: true,
5838
+ label: `Copy signer address ${data.model.signerAccount}`
5880
5839
  })
5881
- ]
5882
- }),
5883
- /* @__PURE__ */ u2("div", {
5884
- children: [
5885
- /* @__PURE__ */ u2("dt", {
5886
- children: "Status"
5887
- }),
5888
- /* @__PURE__ */ u2("dd", {
5889
- children: heading
5840
+ })
5841
+ ]
5842
+ }),
5843
+ recipient && /* @__PURE__ */ u2("div", {
5844
+ children: [
5845
+ /* @__PURE__ */ u2("dt", {
5846
+ children: "To"
5847
+ }),
5848
+ /* @__PURE__ */ u2("dd", {
5849
+ class: "seams-review-recipient",
5850
+ children: /* @__PURE__ */ u2(CopyReviewValue, {
5851
+ value: recipient,
5852
+ address: true,
5853
+ label: `Copy recipient address ${recipient}`
5890
5854
  })
5891
- ]
5892
- })
5893
- ]
5894
- })
5855
+ })
5856
+ ]
5857
+ }),
5858
+ receipt.state.hash && /* @__PURE__ */ u2("div", {
5859
+ children: [
5860
+ /* @__PURE__ */ u2("dt", {
5861
+ children: "Transaction"
5862
+ }),
5863
+ /* @__PURE__ */ u2("dd", {
5864
+ children: [
5865
+ /* @__PURE__ */ u2(ReviewAddress, {
5866
+ value: receipt.state.hash
5867
+ }),
5868
+ /* @__PURE__ */ u2(CopyReviewValue, {
5869
+ value: receipt.state.hash
5870
+ })
5871
+ ]
5872
+ })
5873
+ ]
5874
+ }),
5875
+ /* @__PURE__ */ u2("div", {
5876
+ children: [
5877
+ /* @__PURE__ */ u2("dt", {
5878
+ children: "Status"
5879
+ }),
5880
+ /* @__PURE__ */ u2("dd", {
5881
+ children: heading
5882
+ })
5883
+ ]
5884
+ })
5885
+ ]
5895
5886
  })
5896
5887
  }),
5897
5888
  /* @__PURE__ */ u2("button", {
@@ -5962,6 +5953,24 @@ function ReceiptStep(props) {
5962
5953
  }
5963
5954
 
5964
5955
  // src/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.tsx
5956
+ var RECEIPT_MORPH_DURATION_MS = 360;
5957
+ var RECEIPT_MORPH_EASING = "cubic-bezier(0.22, 1, 0.36, 1)";
5958
+ var RECEIPT_ANCHORS = [".seams-receipt-symbol", '[role="status"]', ".seams-review-amount"];
5959
+ function captureReceiptAnchors(surface) {
5960
+ const anchors = [];
5961
+ for (const selector of RECEIPT_ANCHORS) {
5962
+ const element = surface.querySelector(selector);
5963
+ if (!element)
5964
+ continue;
5965
+ anchors.push({
5966
+ selector,
5967
+ text: element.textContent,
5968
+ bounds: element.getBoundingClientRect(),
5969
+ fontSize: getComputedStyle(element).fontSize
5970
+ });
5971
+ }
5972
+ return anchors;
5973
+ }
5965
5974
  var nextSurfaceId = 0;
5966
5975
 
5967
5976
  class MountedConfirmationSurface {
@@ -5975,6 +5984,7 @@ class MountedConfirmationSurface {
5975
5984
  this.receiptMotion = [];
5976
5985
  this.receiptShell?.remove();
5977
5986
  this.receiptShell = null;
5987
+ this.element.removeAttribute("data-receipt-morphing");
5978
5988
  };
5979
5989
  this.dispose = () => {
5980
5990
  if (this.state.kind === "disposed")
@@ -6061,6 +6071,7 @@ class MountedConfirmationSurface {
6061
6071
  const viewChanged = this.receipt?.view !== model.view;
6062
6072
  const previousShell = this.receiptShell ?? this.element.querySelector(".modal-container-root");
6063
6073
  const previousBounds = previousShell?.getBoundingClientRect();
6074
+ const anchors = viewChanged ? captureReceiptAnchors(this.element) : [];
6064
6075
  const previousRadius = previousShell ? getComputedStyle(previousShell).borderRadius : "26px";
6065
6076
  if (viewChanged)
6066
6077
  this.clearReceiptMotion();
@@ -6077,18 +6088,48 @@ class MountedConfirmationSurface {
6077
6088
  shell.setAttribute("aria-hidden", "true");
6078
6089
  this.element.appendChild(shell);
6079
6090
  this.receiptShell = shell;
6091
+ this.element.setAttribute("data-receipt-morphing", "");
6080
6092
  const morph = shell.animate([
6081
6093
  { left: `${previousBounds.left}px`, top: `${previousBounds.top}px`, width: `${previousBounds.width}px`, height: `${previousBounds.height}px`, borderRadius: previousRadius },
6082
6094
  { left: `${bounds.left}px`, top: `${bounds.top}px`, width: `${bounds.width}px`, height: `${bounds.height}px`, borderRadius: getComputedStyle(target).borderRadius }
6083
- ], { duration: 360, easing: "cubic-bezier(0.22, 1, 0.36, 1)", fill: "both" });
6084
- const reveal = target.animate([{ opacity: 0 }, { opacity: 1 }], {
6085
- duration: 140,
6086
- delay: 220,
6087
- fill: "backwards",
6088
- easing: "ease-out"
6089
- });
6090
- this.receiptMotion = [morph, reveal];
6091
- reveal.onfinish = this.clearReceiptMotion;
6095
+ ], { duration: RECEIPT_MORPH_DURATION_MS, easing: RECEIPT_MORPH_EASING, fill: "both" });
6096
+ this.receiptMotion = [morph];
6097
+ const shared = new Set;
6098
+ for (const anchor of anchors) {
6099
+ const element = target.querySelector(anchor.selector);
6100
+ if (!element || element.textContent !== anchor.text)
6101
+ continue;
6102
+ const destination = element.getBoundingClientRect();
6103
+ shared.add(element);
6104
+ const scale = parseFloat(anchor.fontSize) / parseFloat(getComputedStyle(element).fontSize);
6105
+ this.receiptMotion.push(element.animate([
6106
+ {
6107
+ transform: `translate(${anchor.bounds.left - destination.left}px, ${anchor.bounds.top - destination.top}px) scale(${scale})`,
6108
+ transformOrigin: "top left"
6109
+ },
6110
+ {
6111
+ transform: "translate(0, 0) scale(1)",
6112
+ transformOrigin: "top left"
6113
+ }
6114
+ ], { duration: RECEIPT_MORPH_DURATION_MS, easing: RECEIPT_MORPH_EASING }));
6115
+ }
6116
+ const details = target.querySelectorAll(".seams-transaction-receipt > :not(.seams-receipt-heading), " + ".seams-receipt-heading > .seams-receipt-symbol, .seams-receipt-heading h2, " + ".seams-receipt-heading p, .seams-transaction-toast > :not(.seams-transaction-toast-text, .seams-toast-progress), " + ".seams-transaction-toast-text > *");
6117
+ let order = 0;
6118
+ for (const detail of details) {
6119
+ if (shared.has(detail))
6120
+ continue;
6121
+ this.receiptMotion.push(detail.animate([
6122
+ { opacity: 0, transform: "translateY(8px)" },
6123
+ { opacity: 1, transform: "translateY(0)" }
6124
+ ], {
6125
+ duration: 120,
6126
+ delay: model.view === "toast" ? 240 : 180 + Math.min(order, 4) * 15,
6127
+ fill: "backwards",
6128
+ easing: "ease-out"
6129
+ }));
6130
+ order += 1;
6131
+ }
6132
+ morph.onfinish = this.clearReceiptMotion;
6092
6133
  }
6093
6134
  }
6094
6135
  remove() {
@@ -1,4 +1,4 @@
1
- import { t as initWalletIFrame } from "./host-DACTruOj.js";
1
+ import { t as initWalletIFrame } from "./host-BPC1zSVg.js";
2
2
  import "./validation-BphUDXs7.js";
3
3
  import "./errors-93h9uAW9.js";
4
4
  //#region src/SeamsWeb/walletIframe/host/entry-ecdsa.ts
@@ -1,4 +1,4 @@
1
- import { t as initWalletIFrame } from "./host-DACTruOj.js";
1
+ import { t as initWalletIFrame } from "./host-BPC1zSVg.js";
2
2
  import "./validation-BphUDXs7.js";
3
3
  import "./errors-93h9uAW9.js";
4
4
  //#region src/SeamsWeb/walletIframe/host/entry-full.ts
@@ -1,4 +1,4 @@
1
- import { t as initWalletIFrame } from "./host-DACTruOj.js";
1
+ import { t as initWalletIFrame } from "./host-BPC1zSVg.js";
2
2
  import "./validation-BphUDXs7.js";
3
3
  import "./errors-93h9uAW9.js";
4
4
  //#region src/SeamsWeb/walletIframe/host/entry-near.ts