@seams/wallet 0.28.0 → 0.29.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.
Files changed (350) hide show
  1. package/README.md +29 -4
  2. package/dist/.build-inputs.sha256 +1 -1
  3. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +11 -0
  4. package/dist/esm/SeamsWeb/publicApi/near.js +3 -0
  5. package/dist/esm/SeamsWeb/publicApi/ownerNearOperation.js +175 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +4 -0
  7. package/dist/esm/SeamsWeb/walletIframe/client/ownerNearOperation.js +67 -0
  8. package/dist/esm/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +27 -17
  9. package/dist/esm/SeamsWeb/walletIframe/client/router.js +30 -7
  10. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +4 -0
  11. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +5 -0
  12. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +15 -1
  13. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +1 -1
  14. package/dist/esm/SeamsWeb/walletIframe/shared/ownerNearOperation.js +152 -0
  15. package/dist/esm/core/accountData/near/accountProjection.js +1 -1
  16. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +4 -3
  17. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +1 -1
  18. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +1 -1
  19. package/dist/esm/core/signingEngine/flows/shared/signingConfirmation.js +1 -1
  20. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +1 -1
  21. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +1 -1
  22. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +2 -2
  23. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +2 -2
  24. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +3 -8
  25. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +1 -1
  26. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -4
  27. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +1 -1
  28. package/dist/esm/index.js +3 -2
  29. package/dist/esm/react/boundWallet.js +24 -0
  30. package/dist/esm/react/context/useLoginStateRefresher.js +1 -0
  31. package/dist/esm/react/hooks/useAccountInput.js +1 -1
  32. package/dist/esm/react/hooks/useOwnerNearOperation.js +10 -0
  33. package/dist/esm/react/index.js +3 -2
  34. package/dist/esm/sdk/{ConfirmationDrawer-MJoE0AAo.js → ConfirmationDrawer-BRnd5SEf.js} +1 -1
  35. package/dist/esm/sdk/NonceCoordinator-CNXYrOoy.js +1 -0
  36. package/dist/{public/sdk/SeamsWordmark-DwvPx2UA.js → esm/sdk/SeamsWordmark-CeEi2RlU.js} +1 -1
  37. package/dist/esm/sdk/accountLifecycle-B5a9SCM7.js +1 -0
  38. package/dist/esm/sdk/{adapters-C-g_hkkZ.js → adapters-B2k8y0MB.js} +1 -1
  39. package/dist/{public/sdk/appearance-token-vars-01eH9pgA.js → esm/sdk/appearance-token-vars-DkF3EBbF.js} +1 -1
  40. package/dist/esm/sdk/authorization-gVWwKwav.js +1 -0
  41. package/dist/esm/sdk/clientSessionPersistenceState-BxpITYM_.js +1 -0
  42. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js → collectAuthenticationCredentialForChallengeB64u-BoFVpdRS.js} +1 -1
  43. package/dist/esm/sdk/{commitQueue-CYruPlkm.js → commitQueue-C1wkey4q.js} +1 -1
  44. package/dist/esm/sdk/confirm-ui-Dx6c4-Rk.js +2 -0
  45. package/dist/{public/sdk/device-linking-DiCNt3iA.js → esm/sdk/device-linking-_o3_fgiG.js} +1 -1
  46. package/dist/esm/sdk/{deviceLinkApproval-x3WkiYrd.js → deviceLinkApproval-CObsEWBa.js} +1 -1
  47. package/dist/esm/sdk/{display-D0EPmU4w.js → display-CUWg48tD.js} +1 -1
  48. package/dist/{public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js → esm/sdk/ecdsaCapabilityManifest--1Ztngfx.js} +1 -1
  49. package/dist/{public/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js → esm/sdk/ecdsaDerivationClientWasm-DJh2uN-q.js} +1 -1
  50. package/dist/esm/sdk/ecdsaDerivationExport-BUUUGc6o.js +1 -0
  51. package/dist/esm/sdk/{ecdsaWalletRecords-WLyq414E.js → ecdsaWalletRecords-CKaXfsVu.js} +1 -1
  52. package/dist/esm/sdk/ed25519OperationFingerprint-Dev4P6Og.js +1 -0
  53. package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js → esm/sdk/emailOtpEcdsaDerivationIdentity-Qd4pBwHv.js} +1 -1
  54. package/dist/esm/sdk/{enrichDisplayModelWithAbi-O6Mw4i2E.js → enrichDisplayModelWithAbi-JeAcpa7r.js} +1 -1
  55. package/dist/esm/sdk/{evmCryptoWasm-BUPb4hBH.js → evmCryptoWasm-CeH6Qeaa.js} +1 -1
  56. package/dist/esm/sdk/{export-viewer-host-BSTfHhau.js → export-viewer-host-O0OV1Oou.js} +1 -1
  57. package/dist/esm/sdk/exportKeypairOperation-DkqY9Bpf.js +1 -0
  58. package/dist/esm/sdk/host-BeE2dIU4.js +1 -0
  59. package/dist/{public/sdk/icons-BlMXolHv.js → esm/sdk/icons-pSZJ5Xrm.js} +1 -1
  60. package/dist/esm/sdk/indexedDB-CA4tGqkr.js +1 -0
  61. package/dist/esm/sdk/{intentDigest-HvRsBQ1z.js → intentDigest-gM3r4SVX.js} +1 -1
  62. package/dist/esm/sdk/{lanes-BU-fGqY4.js → lanes-vBKm6yBJ.js} +1 -1
  63. package/dist/esm/sdk/{localOnly-Xs89Xajm.js → localOnly-U_MucUAe.js} +1 -1
  64. package/dist/{public/sdk/mountExportPrivateKeySurface-CsUEKeum.js → esm/sdk/mountExportPrivateKeySurface-C2-fnvP6.js} +1 -1
  65. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-kFLo5zLk.js → esm/sdk/mountRecoveryCodeBackupSurface-C_tJNPJX.js} +1 -1
  66. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-CnbgQfZc.js +1 -0
  67. package/dist/esm/sdk/{nonceLaneKeys-BF_UpvIy.js → nonceLaneKeys-DtBpxubF.js} +1 -1
  68. package/dist/esm/sdk/{normalization-Df9fZWJC.js → normalization-DmfGvZ_3.js} +1 -1
  69. package/dist/esm/sdk/ownerNearOperation-DjNDxW3_.js +1 -0
  70. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js → esm/sdk/pendingWalletRecoveryCodeBackup-DXFrQmO5.js} +1 -1
  71. package/dist/esm/sdk/{presignaturePool-BbvqRWYw.js → presignaturePool-Dq4RhzXn.js} +1 -1
  72. package/dist/{public/sdk/recovery-entrypoint-DJbMDC_m.js → esm/sdk/recovery-entrypoint-s9OoKBcl.js} +1 -1
  73. package/dist/esm/sdk/registration-CTtTocyo.js +1 -0
  74. package/dist/esm/sdk/{registration-C2fb9kRQ.js → registration-D3p7muCc.js} +1 -1
  75. package/dist/esm/sdk/{registrationAccounts-4r74gX1l.js → registrationAccounts-Bso0ntMs.js} +1 -1
  76. package/dist/esm/sdk/{registrationIntent-Do1tD1V7.js → registrationIntent-C1-Kyx_-.js} +1 -1
  77. package/dist/{public/sdk/registrationSignerPlan-DK2b3N_p.js → esm/sdk/registrationSignerPlan-CeMidFme.js} +1 -1
  78. package/dist/{public/sdk/requireStepUpAuth-COqCGb1i.js → esm/sdk/requireStepUpAuth-iVo6h_U-.js} +1 -1
  79. package/dist/esm/sdk/resealedEnvelopeResult-DXDo-72P.js +1 -0
  80. package/dist/{public/sdk/routerAbNormalSigning-D-UZmCBS.js → esm/sdk/routerAbNormalSigning-DVFFkNhJ.js} +1 -1
  81. package/dist/esm/sdk/runtime-auth-Dsmw_dUA.js +1 -0
  82. package/dist/esm/sdk/runtime-device-link-qmYvGep9.js +1 -0
  83. package/dist/esm/sdk/runtime-ecdsa-tempo-Zh95TuLV.js +1 -0
  84. package/dist/esm/sdk/runtime-email-otp-CnLuW4H1.js +1 -0
  85. package/dist/esm/sdk/runtime-export-m8lvrXtw.js +1 -0
  86. package/dist/esm/sdk/runtime-near-BiXzXXhH.js +1 -0
  87. package/dist/esm/sdk/runtime-preferences-DlKHDIjb.js +1 -0
  88. package/dist/esm/sdk/runtime-recovery-C6lS71Jp.js +1 -0
  89. package/dist/esm/sdk/{runtime-recovery-codes-si1fGktB.js → runtime-recovery-codes-B033ake_.js} +1 -1
  90. package/dist/esm/sdk/runtimeContext-RNS2E5wy.js +7 -0
  91. package/dist/{public/sdk/secp256k1-CE7-q9Sn.js → esm/sdk/secp256k1-DPeaOjM0.js} +1 -1
  92. package/dist/esm/sdk/signEvmFamily-Cksw3RpU.js +1 -0
  93. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js → signEvmFamilyWithUiConfirmForTempo-B7p9UVix.js} +1 -1
  94. package/dist/esm/sdk/{signEvmWithUiConfirm-CGrLtMV6.js → signEvmWithUiConfirm-B14zYdwE.js} +1 -1
  95. package/dist/esm/sdk/signNear-D0rFEYP1.js +1 -0
  96. package/dist/esm/sdk/{signatureUses-kSrUHSSH.js → signatureUses-BLOoPRsb.js} +1 -1
  97. package/dist/{public/sdk/signingFlow-BcetvUeS.js → esm/sdk/signingFlow-Bd1X0e-1.js} +2 -2
  98. package/dist/{public/sdk/signingQueue-dMFOFOP5.js → esm/sdk/signingQueue-DoUBeaCv.js} +1 -1
  99. package/dist/esm/sdk/{thresholdEcdsa-CqR1fFA-.js → thresholdEcdsa-BxfOZmiR.js} +1 -1
  100. package/dist/esm/sdk/{trace--mRP2OQc.js → trace-BnhLKxcu.js} +1 -1
  101. package/dist/esm/sdk/{transaction-activity-DCzHGg3b.js → transaction-activity-BXSxMp1E.js} +1 -1
  102. package/dist/{public/sdk/transactionState-29T9xfvL.js → esm/sdk/transactionState-G_FPe-U8.js} +1 -1
  103. package/dist/esm/sdk/{types-f7dyj5N6.js → types-A-w1cYlJ.js} +1 -1
  104. package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-yzxQjIFd.js → unlockedEd25519ExportRootCapability-5F1egCSv.js} +1 -1
  105. package/dist/esm/sdk/voiceid-host.js +1 -1
  106. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  107. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  108. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  109. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  110. package/dist/esm/sdk/{wallet-recovery-BZB2Vu3X.js → wallet-recovery-DXdm68_Q.js} +1 -1
  111. package/dist/{public/sdk/walletAuthMethodRecord-DLBB5fez.js → esm/sdk/walletAuthMethodRecord-BW-XV4fv.js} +1 -1
  112. package/dist/{public/sdk/walletAuthority-BTGAuOi8.js → esm/sdk/walletAuthority-DbGaSw7D.js} +1 -1
  113. package/dist/esm/sdk/{walletCapabilityBindings-D5YYB7nN.js → walletCapabilityBindings-mPx-6_r-.js} +1 -1
  114. package/dist/{public/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js → esm/sdk/walletCustodyEcdsaContinuity-BnyL1Ryu.js} +1 -1
  115. package/dist/{public/sdk/walletOwnershipGeneration-CgjCtPrV.js → esm/sdk/walletOwnershipGeneration-BZc6UKqX.js} +1 -1
  116. package/dist/esm/sdk/walletRecoveryAdminProof-DdwikrW3.js +1 -0
  117. package/dist/esm/sdk/walletRecoveryCommit-DbAoiJp5.js +1 -0
  118. package/dist/esm/sdk/{walletSessionAuthorizationStore-B9Vwkshr.js → walletSessionAuthorizationStore-BivTUoKY.js} +1 -1
  119. package/dist/esm/sdk/{webauthnP256-BsQQPurm.js → webauthnP256-BGHikiNl.js} +1 -1
  120. package/dist/esm/shared-ts/src/auth/externalAuth.js +2 -2
  121. package/dist/esm/shared-ts/src/utils/index.js +2 -2
  122. package/dist/esm/voiceid-host.js +1 -1
  123. package/dist/public/headers.manifest.json +1 -1
  124. package/dist/public/sdk/{ConfirmationDrawer-MJoE0AAo.js → ConfirmationDrawer-BRnd5SEf.js} +1 -1
  125. package/dist/public/sdk/NonceCoordinator-CNXYrOoy.js +1 -0
  126. package/dist/{esm/sdk/SeamsWordmark-DwvPx2UA.js → public/sdk/SeamsWordmark-CeEi2RlU.js} +1 -1
  127. package/dist/public/sdk/accountLifecycle-B5a9SCM7.js +1 -0
  128. package/dist/public/sdk/{adapters-C-g_hkkZ.js → adapters-B2k8y0MB.js} +1 -1
  129. package/dist/{esm/sdk/appearance-token-vars-01eH9pgA.js → public/sdk/appearance-token-vars-DkF3EBbF.js} +1 -1
  130. package/dist/public/sdk/authorization-gVWwKwav.js +1 -0
  131. package/dist/public/sdk/clientSessionPersistenceState-BxpITYM_.js +1 -0
  132. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js → collectAuthenticationCredentialForChallengeB64u-BoFVpdRS.js} +1 -1
  133. package/dist/public/sdk/{commitQueue-CYruPlkm.js → commitQueue-C1wkey4q.js} +1 -1
  134. package/dist/public/sdk/confirm-ui-Dx6c4-Rk.js +2 -0
  135. package/dist/{esm/sdk/device-linking-DiCNt3iA.js → public/sdk/device-linking-_o3_fgiG.js} +1 -1
  136. package/dist/public/sdk/{deviceLinkApproval-x3WkiYrd.js → deviceLinkApproval-CObsEWBa.js} +1 -1
  137. package/dist/public/sdk/{display-D0EPmU4w.js → display-CUWg48tD.js} +1 -1
  138. package/dist/{esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js → public/sdk/ecdsaCapabilityManifest--1Ztngfx.js} +1 -1
  139. package/dist/{esm/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js → public/sdk/ecdsaDerivationClientWasm-DJh2uN-q.js} +1 -1
  140. package/dist/public/sdk/ecdsaDerivationExport-BUUUGc6o.js +1 -0
  141. package/dist/public/sdk/{ecdsaWalletRecords-WLyq414E.js → ecdsaWalletRecords-CKaXfsVu.js} +1 -1
  142. package/dist/public/sdk/ed25519OperationFingerprint-Dev4P6Og.js +1 -0
  143. package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js → public/sdk/emailOtpEcdsaDerivationIdentity-Qd4pBwHv.js} +1 -1
  144. package/dist/public/sdk/{enrichDisplayModelWithAbi-O6Mw4i2E.js → enrichDisplayModelWithAbi-JeAcpa7r.js} +1 -1
  145. package/dist/public/sdk/{evmCryptoWasm-BUPb4hBH.js → evmCryptoWasm-CeH6Qeaa.js} +1 -1
  146. package/dist/public/sdk/{export-viewer-host-BSTfHhau.js → export-viewer-host-O0OV1Oou.js} +1 -1
  147. package/dist/public/sdk/exportKeypairOperation-DkqY9Bpf.js +1 -0
  148. package/dist/public/sdk/host-BeE2dIU4.js +1 -0
  149. package/dist/{esm/sdk/icons-BlMXolHv.js → public/sdk/icons-pSZJ5Xrm.js} +1 -1
  150. package/dist/public/sdk/indexedDB-CA4tGqkr.js +1 -0
  151. package/dist/public/sdk/{intentDigest-HvRsBQ1z.js → intentDigest-gM3r4SVX.js} +1 -1
  152. package/dist/public/sdk/{lanes-BU-fGqY4.js → lanes-vBKm6yBJ.js} +1 -1
  153. package/dist/public/sdk/{localOnly-Xs89Xajm.js → localOnly-U_MucUAe.js} +1 -1
  154. package/dist/{esm/sdk/mountExportPrivateKeySurface-CsUEKeum.js → public/sdk/mountExportPrivateKeySurface-C2-fnvP6.js} +1 -1
  155. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-kFLo5zLk.js → public/sdk/mountRecoveryCodeBackupSurface-C_tJNPJX.js} +1 -1
  156. package/dist/public/sdk/nearEd25519YaoSigningPreparation-CnbgQfZc.js +1 -0
  157. package/dist/public/sdk/{nonceLaneKeys-BF_UpvIy.js → nonceLaneKeys-DtBpxubF.js} +1 -1
  158. package/dist/public/sdk/{normalization-Df9fZWJC.js → normalization-DmfGvZ_3.js} +1 -1
  159. package/dist/public/sdk/ownerNearOperation-DjNDxW3_.js +1 -0
  160. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js → public/sdk/pendingWalletRecoveryCodeBackup-DXFrQmO5.js} +1 -1
  161. package/dist/public/sdk/{presignaturePool-BbvqRWYw.js → presignaturePool-Dq4RhzXn.js} +1 -1
  162. package/dist/{esm/sdk/recovery-entrypoint-DJbMDC_m.js → public/sdk/recovery-entrypoint-s9OoKBcl.js} +1 -1
  163. package/dist/public/sdk/registration-CTtTocyo.js +1 -0
  164. package/dist/public/sdk/{registration-C2fb9kRQ.js → registration-D3p7muCc.js} +1 -1
  165. package/dist/public/sdk/{registrationAccounts-4r74gX1l.js → registrationAccounts-Bso0ntMs.js} +1 -1
  166. package/dist/public/sdk/{registrationIntent-Do1tD1V7.js → registrationIntent-C1-Kyx_-.js} +1 -1
  167. package/dist/{esm/sdk/registrationSignerPlan-DK2b3N_p.js → public/sdk/registrationSignerPlan-CeMidFme.js} +1 -1
  168. package/dist/{esm/sdk/requireStepUpAuth-COqCGb1i.js → public/sdk/requireStepUpAuth-iVo6h_U-.js} +1 -1
  169. package/dist/public/sdk/resealedEnvelopeResult-DXDo-72P.js +1 -0
  170. package/dist/{esm/sdk/routerAbNormalSigning-D-UZmCBS.js → public/sdk/routerAbNormalSigning-DVFFkNhJ.js} +1 -1
  171. package/dist/public/sdk/runtime-auth-Dsmw_dUA.js +1 -0
  172. package/dist/public/sdk/runtime-device-link-qmYvGep9.js +1 -0
  173. package/dist/public/sdk/runtime-ecdsa-tempo-Zh95TuLV.js +1 -0
  174. package/dist/public/sdk/runtime-email-otp-CnLuW4H1.js +1 -0
  175. package/dist/public/sdk/runtime-export-m8lvrXtw.js +1 -0
  176. package/dist/public/sdk/runtime-near-BiXzXXhH.js +1 -0
  177. package/dist/public/sdk/runtime-preferences-DlKHDIjb.js +1 -0
  178. package/dist/public/sdk/runtime-recovery-C6lS71Jp.js +1 -0
  179. package/dist/public/sdk/{runtime-recovery-codes-si1fGktB.js → runtime-recovery-codes-B033ake_.js} +1 -1
  180. package/dist/public/sdk/runtimeContext-RNS2E5wy.js +7 -0
  181. package/dist/{esm/sdk/secp256k1-CE7-q9Sn.js → public/sdk/secp256k1-DPeaOjM0.js} +1 -1
  182. package/dist/public/sdk/signEvmFamily-Cksw3RpU.js +1 -0
  183. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js → signEvmFamilyWithUiConfirmForTempo-B7p9UVix.js} +1 -1
  184. package/dist/public/sdk/{signEvmWithUiConfirm-CGrLtMV6.js → signEvmWithUiConfirm-B14zYdwE.js} +1 -1
  185. package/dist/public/sdk/signNear-D0rFEYP1.js +1 -0
  186. package/dist/public/sdk/{signatureUses-kSrUHSSH.js → signatureUses-BLOoPRsb.js} +1 -1
  187. package/dist/{esm/sdk/signingFlow-BcetvUeS.js → public/sdk/signingFlow-Bd1X0e-1.js} +2 -2
  188. package/dist/{esm/sdk/signingQueue-dMFOFOP5.js → public/sdk/signingQueue-DoUBeaCv.js} +1 -1
  189. package/dist/public/sdk/{thresholdEcdsa-CqR1fFA-.js → thresholdEcdsa-BxfOZmiR.js} +1 -1
  190. package/dist/public/sdk/{trace--mRP2OQc.js → trace-BnhLKxcu.js} +1 -1
  191. package/dist/public/sdk/{transaction-activity-DCzHGg3b.js → transaction-activity-BXSxMp1E.js} +1 -1
  192. package/dist/{esm/sdk/transactionState-29T9xfvL.js → public/sdk/transactionState-G_FPe-U8.js} +1 -1
  193. package/dist/public/sdk/{types-f7dyj5N6.js → types-A-w1cYlJ.js} +1 -1
  194. package/dist/public/sdk/{unlockedEd25519ExportRootCapability-yzxQjIFd.js → unlockedEd25519ExportRootCapability-5F1egCSv.js} +1 -1
  195. package/dist/public/sdk/voiceid-host.js +1 -1
  196. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  197. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  198. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  199. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  200. package/dist/public/sdk/{wallet-recovery-BZB2Vu3X.js → wallet-recovery-DXdm68_Q.js} +1 -1
  201. package/dist/{esm/sdk/walletAuthMethodRecord-DLBB5fez.js → public/sdk/walletAuthMethodRecord-BW-XV4fv.js} +1 -1
  202. package/dist/{esm/sdk/walletAuthority-BTGAuOi8.js → public/sdk/walletAuthority-DbGaSw7D.js} +1 -1
  203. package/dist/public/sdk/{walletCapabilityBindings-D5YYB7nN.js → walletCapabilityBindings-mPx-6_r-.js} +1 -1
  204. package/dist/{esm/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js → public/sdk/walletCustodyEcdsaContinuity-BnyL1Ryu.js} +1 -1
  205. package/dist/{esm/sdk/walletOwnershipGeneration-CgjCtPrV.js → public/sdk/walletOwnershipGeneration-BZc6UKqX.js} +1 -1
  206. package/dist/public/sdk/walletRecoveryAdminProof-DdwikrW3.js +1 -0
  207. package/dist/public/sdk/walletRecoveryCommit-DbAoiJp5.js +1 -0
  208. package/dist/public/sdk/{walletSessionAuthorizationStore-B9Vwkshr.js → walletSessionAuthorizationStore-BivTUoKY.js} +1 -1
  209. package/dist/public/sdk/{webauthnP256-BsQQPurm.js → webauthnP256-BGHikiNl.js} +1 -1
  210. package/dist/public/wallet-assets.manifest.json +258 -258
  211. package/dist/public/wallet-service/index.html +4 -4
  212. package/dist/types/shared-ts/src/auth/externalAuth.d.ts +51 -8
  213. package/dist/types/shared-ts/src/authorization/index.d.ts +1 -1
  214. package/dist/types/shared-ts/src/authorization/walletOwnerOperation.d.ts +10 -0
  215. package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +4 -0
  216. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +2 -0
  217. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
  218. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +1 -0
  219. package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +1 -0
  220. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationPasskeyMaterial.d.ts +24 -0
  221. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  222. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +1 -0
  223. package/dist/types/wallet/src/SeamsWeb/publicApi/nearCommands.d.ts +2 -0
  224. package/dist/types/wallet/src/SeamsWeb/publicApi/ownerNearOperation.d.ts +58 -0
  225. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +14 -6
  226. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +57 -56
  227. package/dist/types/wallet/src/SeamsWeb/signingSurface/nearOwnerOperation.d.ts +16 -0
  228. package/dist/types/wallet/src/SeamsWeb/signingSurface/nearPasskeyOperationMaterial.d.ts +72 -0
  229. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +3 -0
  230. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/ownerNearOperation.d.ts +25 -0
  231. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -1
  232. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +5 -1
  233. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createNearCommands.d.ts +2 -1
  234. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +6 -2
  235. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalAuth.d.ts +10 -8
  236. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalOwnerApproval.d.ts +24 -0
  237. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ownerNearOperation.d.ts +12 -0
  238. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +2 -2
  239. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionState.d.ts +8 -0
  240. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +17 -7
  241. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/ownerNearOperation.d.ts +51 -0
  242. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/registrationSetup.d.ts +1 -0
  243. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +4 -0
  244. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +4 -0
  245. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +2 -2
  246. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +1 -0
  247. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +21 -0
  248. package/dist/types/wallet/src/core/types/seams.d.ts +7 -0
  249. package/dist/types/wallet/src/index.d.ts +2 -0
  250. package/dist/types/wallet/src/react/boundWallet.d.ts +21 -1
  251. package/dist/types/wallet/src/react/hooks/useOwnerNearOperation.d.ts +4 -0
  252. package/dist/types/wallet/src/react/index.d.ts +3 -0
  253. package/package.json +1 -1
  254. package/dist/esm/sdk/NonceCoordinator-3YhmDTS5.js +0 -1
  255. package/dist/esm/sdk/accountLifecycle-6DHYWf0v.js +0 -1
  256. package/dist/esm/sdk/clientSessionPersistenceState-BCkJAYSz.js +0 -1
  257. package/dist/esm/sdk/confirm-ui-em0vkd2m.js +0 -2
  258. package/dist/esm/sdk/ecdsaDerivationExport-DJKOzDbS.js +0 -1
  259. package/dist/esm/sdk/exportKeypairOperation-CjST_NUK.js +0 -1
  260. package/dist/esm/sdk/host-C51z-AxP.js +0 -1
  261. package/dist/esm/sdk/indexedDB-C4SDsyOG.js +0 -1
  262. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +0 -1
  263. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +0 -1
  264. package/dist/esm/sdk/registration-Byl4l4yZ.js +0 -1
  265. package/dist/esm/sdk/resealedEnvelopeResult-CLW00Vbw.js +0 -1
  266. package/dist/esm/sdk/runtime-auth-ufbVur2p.js +0 -1
  267. package/dist/esm/sdk/runtime-device-link-CagI2Q62.js +0 -1
  268. package/dist/esm/sdk/runtime-ecdsa-tempo-Rctxr0yM.js +0 -1
  269. package/dist/esm/sdk/runtime-email-otp-BQtcG-LF.js +0 -1
  270. package/dist/esm/sdk/runtime-export-wTeEaqlk.js +0 -1
  271. package/dist/esm/sdk/runtime-near-59yU_3ud.js +0 -1
  272. package/dist/esm/sdk/runtime-preferences-B9qLHX8W.js +0 -1
  273. package/dist/esm/sdk/runtime-recovery-DNyzdMBj.js +0 -1
  274. package/dist/esm/sdk/runtimeContext-ByeM6Z4Z.js +0 -6
  275. package/dist/esm/sdk/sessionObservationRevision-ihBwjS3y.js +0 -1
  276. package/dist/esm/sdk/signEvmFamily-BY5jlZEG.js +0 -1
  277. package/dist/esm/sdk/signNear-DMpJFkwF.js +0 -1
  278. package/dist/esm/sdk/signer-worker-BNodGJKY.js +0 -1
  279. package/dist/esm/sdk/walletRecoveryAdminProof-B4Ic07jY.js +0 -1
  280. package/dist/esm/sdk/walletRecoveryCommit-Cc2LAkCS.js +0 -1
  281. package/dist/public/sdk/NonceCoordinator-3YhmDTS5.js +0 -1
  282. package/dist/public/sdk/accountLifecycle-6DHYWf0v.js +0 -1
  283. package/dist/public/sdk/clientSessionPersistenceState-BCkJAYSz.js +0 -1
  284. package/dist/public/sdk/confirm-ui-em0vkd2m.js +0 -2
  285. package/dist/public/sdk/ecdsaDerivationExport-DJKOzDbS.js +0 -1
  286. package/dist/public/sdk/exportKeypairOperation-CjST_NUK.js +0 -1
  287. package/dist/public/sdk/host-C51z-AxP.js +0 -1
  288. package/dist/public/sdk/indexedDB-C4SDsyOG.js +0 -1
  289. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +0 -1
  290. package/dist/public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +0 -1
  291. package/dist/public/sdk/registration-Byl4l4yZ.js +0 -1
  292. package/dist/public/sdk/resealedEnvelopeResult-CLW00Vbw.js +0 -1
  293. package/dist/public/sdk/runtime-auth-ufbVur2p.js +0 -1
  294. package/dist/public/sdk/runtime-device-link-CagI2Q62.js +0 -1
  295. package/dist/public/sdk/runtime-ecdsa-tempo-Rctxr0yM.js +0 -1
  296. package/dist/public/sdk/runtime-email-otp-BQtcG-LF.js +0 -1
  297. package/dist/public/sdk/runtime-export-wTeEaqlk.js +0 -1
  298. package/dist/public/sdk/runtime-near-59yU_3ud.js +0 -1
  299. package/dist/public/sdk/runtime-preferences-B9qLHX8W.js +0 -1
  300. package/dist/public/sdk/runtime-recovery-DNyzdMBj.js +0 -1
  301. package/dist/public/sdk/runtimeContext-ByeM6Z4Z.js +0 -6
  302. package/dist/public/sdk/sessionObservationRevision-ihBwjS3y.js +0 -1
  303. package/dist/public/sdk/signEvmFamily-BY5jlZEG.js +0 -1
  304. package/dist/public/sdk/signNear-DMpJFkwF.js +0 -1
  305. package/dist/public/sdk/signer-worker-BNodGJKY.js +0 -1
  306. package/dist/public/sdk/walletRecoveryAdminProof-B4Ic07jY.js +0 -1
  307. package/dist/public/sdk/walletRecoveryCommit-Cc2LAkCS.js +0 -1
  308. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +0 -10
  309. /package/dist/{public/sdk/accountIds-CW2BP-d9.js → esm/sdk/accountIds-DGWFzEnw.js} +0 -0
  310. /package/dist/{public/sdk/actions-DrtSTGus.js → esm/sdk/actions-7SvZZut1.js} +0 -0
  311. /package/dist/{public/sdk/authenticatorOptions-WCDKYRux.js → esm/sdk/authenticatorOptions-B4q62CLs.js} +0 -0
  312. /package/dist/{public/sdk/confirmTypes-BvVtQs-M.js → esm/sdk/confirmTypes-DmEPoxys.js} +0 -0
  313. /package/dist/{public/sdk/csp-stylesheet-DUSqfXvZ.js → esm/sdk/csp-stylesheet-5LU6VGKK.js} +0 -0
  314. /package/dist/{public/sdk/digestEncoding-CqNXPZY9.js → esm/sdk/digestEncoding-34kXJoJr.js} +0 -0
  315. /package/dist/{public/sdk/ecdsaChainTarget-Bm5X4k-V.js → esm/sdk/ecdsaChainTarget-BoRVQtjQ.js} +0 -0
  316. /package/dist/{public/sdk/executeWorkerOperation-C9FOCCR7.js → esm/sdk/executeWorkerOperation-CAYSt0NA.js} +0 -0
  317. /package/dist/{public/sdk/helpers-Dubwo5uK.js → esm/sdk/helpers-B7c1zc7h.js} +0 -0
  318. /package/dist/{public/sdk/jsonRpc-BVDv1wfm.js → esm/sdk/jsonRpc-DGzeiNSa.js} +0 -0
  319. /package/dist/{public/sdk/keccak-mS0Mejjx.js → esm/sdk/keccak-DGHI1G6t.js} +0 -0
  320. /package/dist/{public/sdk/keyMaterialEnvelope-Dm2ZEilb.js → esm/sdk/keyMaterialEnvelope-Czkks9Ki.js} +0 -0
  321. /package/dist/{public/sdk/presignatures-BCeq56DG.js → esm/sdk/presignatures-CkhuZ0YQ.js} +0 -0
  322. /package/dist/{public/sdk/profileAccountProjection-C5sNt-s2.js → esm/sdk/profileAccountProjection-dvLchPBo.js} +0 -0
  323. /package/dist/{public/sdk/registrationAuthMethodInput-BR1WVbK3.js → esm/sdk/registrationAuthMethodInput-C4o7yFBJ.js} +0 -0
  324. /package/dist/{public/sdk/sdkSentEvents-DjOlKtdW.js → esm/sdk/sdkSentEvents-BFwv3mBw.js} +0 -0
  325. /package/dist/{public/sdk/signerDomain-BAsLT3XN.js → esm/sdk/signerDomain-D-EUTlLK.js} +0 -0
  326. /package/dist/{public/sdk/signerSlot-D2RZnb27.js → esm/sdk/signerSlot-BlijMq8C.js} +0 -0
  327. /package/dist/{public/sdk/surface-measurement-reporter-DXsvq401.js → esm/sdk/surface-measurement-reporter-DJ_dQhBV.js} +0 -0
  328. /package/dist/{public/sdk/walletCustodyOperation-DimzAbCB.js → esm/sdk/walletOwnerOperation-CScYv2K6.js} +0 -0
  329. /package/dist/{public/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js → esm/sdk/walletSessionAuthorizationStatus-GhcGvDCX.js} +0 -0
  330. /package/dist/{esm/sdk/accountIds-CW2BP-d9.js → public/sdk/accountIds-DGWFzEnw.js} +0 -0
  331. /package/dist/{esm/sdk/actions-DrtSTGus.js → public/sdk/actions-7SvZZut1.js} +0 -0
  332. /package/dist/{esm/sdk/authenticatorOptions-WCDKYRux.js → public/sdk/authenticatorOptions-B4q62CLs.js} +0 -0
  333. /package/dist/{esm/sdk/confirmTypes-BvVtQs-M.js → public/sdk/confirmTypes-DmEPoxys.js} +0 -0
  334. /package/dist/{esm/sdk/csp-stylesheet-DUSqfXvZ.js → public/sdk/csp-stylesheet-5LU6VGKK.js} +0 -0
  335. /package/dist/{esm/sdk/digestEncoding-CqNXPZY9.js → public/sdk/digestEncoding-34kXJoJr.js} +0 -0
  336. /package/dist/{esm/sdk/ecdsaChainTarget-Bm5X4k-V.js → public/sdk/ecdsaChainTarget-BoRVQtjQ.js} +0 -0
  337. /package/dist/{esm/sdk/executeWorkerOperation-C9FOCCR7.js → public/sdk/executeWorkerOperation-CAYSt0NA.js} +0 -0
  338. /package/dist/{esm/sdk/helpers-Dubwo5uK.js → public/sdk/helpers-B7c1zc7h.js} +0 -0
  339. /package/dist/{esm/sdk/jsonRpc-BVDv1wfm.js → public/sdk/jsonRpc-DGzeiNSa.js} +0 -0
  340. /package/dist/{esm/sdk/keccak-mS0Mejjx.js → public/sdk/keccak-DGHI1G6t.js} +0 -0
  341. /package/dist/{esm/sdk/keyMaterialEnvelope-Dm2ZEilb.js → public/sdk/keyMaterialEnvelope-Czkks9Ki.js} +0 -0
  342. /package/dist/{esm/sdk/presignatures-BCeq56DG.js → public/sdk/presignatures-CkhuZ0YQ.js} +0 -0
  343. /package/dist/{esm/sdk/profileAccountProjection-C5sNt-s2.js → public/sdk/profileAccountProjection-dvLchPBo.js} +0 -0
  344. /package/dist/{esm/sdk/registrationAuthMethodInput-BR1WVbK3.js → public/sdk/registrationAuthMethodInput-C4o7yFBJ.js} +0 -0
  345. /package/dist/{esm/sdk/sdkSentEvents-DjOlKtdW.js → public/sdk/sdkSentEvents-BFwv3mBw.js} +0 -0
  346. /package/dist/{esm/sdk/signerDomain-BAsLT3XN.js → public/sdk/signerDomain-D-EUTlLK.js} +0 -0
  347. /package/dist/{esm/sdk/signerSlot-D2RZnb27.js → public/sdk/signerSlot-BlijMq8C.js} +0 -0
  348. /package/dist/{esm/sdk/surface-measurement-reporter-DXsvq401.js → public/sdk/surface-measurement-reporter-DJ_dQhBV.js} +0 -0
  349. /package/dist/{esm/sdk/walletCustodyOperation-DimzAbCB.js → public/sdk/walletOwnerOperation-CScYv2K6.js} +0 -0
  350. /package/dist/{esm/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js → public/sdk/walletSessionAuthorizationStatus-GhcGvDCX.js} +0 -0
@@ -1 +0,0 @@
1
- import{E as e,k as t}from"./domainIds-t1lp25yU.js";import{g as n}from"./digests-BIaE0DMd.js";import{r}from"./activeWalletSession-BJ4B-nJo.js";import{t as i}from"./walletIframeIdentity-CpgyEnKg.js";import{o as a}from"./errors-BJBDbwHk.js";const o=`__SEAMS_WALLET_SDK_BASE__`,s=`SEAMS_WALLET_SDK_BASE_CHANGED`,c=`__SEAMS_WALLET_ASSET_VERSION__`;function l(){if(typeof window>`u`)return;let e=window[o];return typeof e==`string`&&e.length>0?e:void 0}function u(e){if(typeof window>`u`)return;let t=window;t[o]=e,window.dispatchEvent(new CustomEvent(s,{detail:e}))}function d(){if(typeof window>`u`)return;let e=window[c];return typeof e==`string`&&e.length>0?e:void 0}function f(e){if(typeof window>`u`)return;let t=e.trim();t&&(window[c]=t)}function p(e){if(typeof window>`u`)return()=>{};let t=t=>{let n=t.detail;typeof n==`string`&&n.length>0&&e(n)};return window.addEventListener(s,t,{passive:!0}),()=>window.removeEventListener(s,t)}const m={login:{title:`Welcome back`,subtitle:``,passkeyCta:`Unlock with passkey`},register:{title:`Create a wallet`,subtitle:``,passkeyNameLabel:`Wallet name`,passkeyCta:`Create wallet with passkey`},common:{closeLabel:`Close`}};function h(e,t){return typeof e==`string`&&e.trim()||null}function g(e,t){let n=h(e,t);return n===null?null:n}function _(e){try{return i(e)}catch{return null}}function v(e,t){let n=new Set(t);return Object.keys(e).every(e=>n.has(e))}function y(e){return g(e,`authMenuSessionId`)}function b(e){return g(e,`externalAuthRequestId`)}function x(e){return n(e)?e:null}function S(e,t=new Set,n=!1){if(e===void 0)return n;if(e===null||typeof e==`string`||typeof e==`boolean`)return!0;if(typeof e==`number`)return Number.isFinite(e);if(typeof e!=`object`||t.has(e))return!1;if(t.add(e),Array.isArray(e))return e.every(e=>S(e,t,n));let r=x(e);return r!==null&&Object.values(r).every(e=>S(e,t,n))}function C(e,t){return h(e,`copy`)??t}function w(e,t){let n=x(e);return{title:C(n?.title,t.title),subtitle:C(n?.subtitle,t.subtitle),passkeyCta:C(n?.passkeyCta,t.passkeyCta)}}function T(e){let t=x(e),n=x(t?.register);return{login:w(t?.login,m.login),register:{...w(t?.register,m.register),passkeyNameLabel:C(n?.passkeyNameLabel,m.register.passkeyNameLabel)},common:{closeLabel:C(x(t?.common)?.closeLabel,m.common.closeLabel)}}}function E(e){return e===`google`?e:null}function D(e){return e===`login`||e===`register`?e:null}function O(e){return e===`implicit_wallet`||e===`sponsored_named_near_account`?e:null}function k(e){return e===`close_button`||e===`component_unmounted`||e===`connection_closed`?e:null}function A(e,t){if(e===void 0)return!0;let n=x(e);return n!==null&&v(n,t)}function j(e){let t=x(e);return!t||!v(t,[`login`,`register`,`common`])?!1:A(t.login,[`title`,`subtitle`,`passkeyCta`])&&A(t.register,[`title`,`subtitle`,`passkeyCta`,`passkeyNameLabel`])&&A(t.common,[`closeLabel`])}function M(e){if(!Array.isArray(e))return null;let t=[];for(let n of e){let e=E(n);if(!e)return null;t.push(e)}return t}function N(e){let n=x(e);if(!n||!S(n,new Set,!0)||n.kind!==`hosted_auth_menu_open_v1`||!v(n,[`kind`,`authMenuSessionId`,`initialMode`,`initialHeightCssPx`,`loginTarget`,`registrationAccountInput`,`showRegistrationInput`,`showProgress`,`copy`,`enabledExternalProviders`])||!j(n.copy))return null;let r=y(n.authMenuSessionId),i=D(n.initialMode),a=n.initialHeightCssPx;if(a!==void 0&&(typeof a!=`number`||!Number.isFinite(a)||a<=0))return null;let o=x(n.loginTarget),s=o?.kind===`wallet`||o?.kind===`wallet_sync`?t(o.walletId):null,c=o?.kind===`discoverable`&&v(o,[`kind`])?{kind:`discoverable`}:o?.kind===`wallet`&&v(o,[`kind`,`walletId`])&&s?.ok?{kind:`wallet`,walletId:s.value}:o?.kind===`wallet_sync`&&v(o,[`kind`,`walletId`])&&s?.ok?{kind:`wallet_sync`,walletId:s.value}:null,l=O(n.registrationAccountInput),u=M(n.enabledExternalProviders);return!r||!i||!c||!l||typeof n.showRegistrationInput!=`boolean`||typeof n.showProgress!=`boolean`||!u||!S(n.copy,new Set,!0)?null:{kind:`hosted_auth_menu_open_v1`,authMenuSessionId:r,initialMode:i,initialHeightCssPx:a,loginTarget:c,registrationAccountInput:l,showRegistrationInput:n.showRegistrationInput,showProgress:n.showProgress,copy:T(n.copy),enabledExternalProviders:u}}function P(e){let t=x(e);if(!t||!S(t)||t.kind!==`hosted_auth_menu_error_v1`||!v(t,[`kind`,`authMenuSessionId`,`mode`,`message`]))return null;let n=y(t.authMenuSessionId),r=D(t.mode),i=h(t.message,`message`);return n&&r&&i?{kind:t.kind,authMenuSessionId:n,mode:r,message:i}:null}function F(e){let t=x(e);if(!t||!S(t))return null;switch(t.kind){case`google_id_token`:{if(!v(t,[`kind`,`idToken`]))return null;let e=h(t.idToken,`idToken`);return e?{kind:t.kind,idToken:e}:null}case`cancelled`:return v(t,[`kind`,`reason`])&&t.reason===`user_cancelled`?{kind:t.kind,reason:t.reason}:null;case`failed`:{if(!v(t,[`kind`,`code`,`message`]))return null;let e=t.code===`provider_unavailable`||t.code===`provider_error`||t.code===`invalid_evidence`?t.code:null,n=h(t.message,`message`);return e&&n?{kind:t.kind,code:e,message:n}:null}default:return null}}function I(e){let t=x(e);if(!t||!S(t)||t.kind!==`hosted_auth_menu_external_auth_resolution_v1`||!v(t,[`kind`,`authMenuSessionId`,`externalAuthRequestId`,`requestId`,`evidence`]))return null;let n=y(t.authMenuSessionId),r=b(t.externalAuthRequestId),i=_(t.requestId),a=F(t.evidence);return!n||!r||!i||!a?null:{kind:t.kind,authMenuSessionId:n,externalAuthRequestId:r,requestId:i,evidence:a}}function L(e){let t=x(e);if(!t||!S(t)||t.kind!==`hosted_auth_menu_cancel_v1`||!v(t,[`kind`,`authMenuSessionId`,`requestId`,`reason`]))return null;let n=y(t.authMenuSessionId),r=_(t.requestId),i=k(t.reason);return n&&r&&i?{kind:t.kind,authMenuSessionId:n,requestId:r,reason:i}:null}const R=`18.0.0`,z=`WALLET_IFRAME_PROTOCOL_VERSION_MISMATCH`,B=[`home`,`exchangeCode`,`nonce`,`appOrigin`,`walletOrigin`,`relayUrl`];function V(e,t){if(typeof e!=`string`||e.length===0||e.length>512||e.trim()!==e||/[\s\u0000-\u001f\u007f]/.test(e))throw Error(`${t} must be a compact opaque identifier`);return e}function H(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e)throw Error(`${t} must be a canonical HTTP origin`);let n;try{n=new URL(e)}catch{throw Error(`${t} must be a canonical HTTP origin`)}if(n.protocol!==`https:`&&n.protocol!==`http:`||n.origin!==e||n.pathname!==`/`||n.search!==``||n.hash!==``)throw Error(`${t} must be a canonical HTTP origin`);return n.origin}function U(e){if(!n(e))throw Error(`hosted-wallet redemption payload must be an exact object`);if(Object.keys(e).length!==B.length)throw Error(`hosted-wallet redemption payload fields are invalid`);for(let t of B)if(!Object.hasOwn(e,t))throw Error(`hosted-wallet redemption payload fields are invalid`);return{home:r(e.home),exchangeCode:V(e.exchangeCode,`exchangeCode`),nonce:V(e.nonce,`nonce`),appOrigin:H(e.appOrigin,`appOrigin`),walletOrigin:H(e.walletOrigin,`walletOrigin`),relayUrl:V(e.relayUrl,`relayUrl`)}}function W(t){if(!n(t)||!v(t,[`scanRequestId`,`action`])||typeof t.scanRequestId!=`string`||t.scanRequestId.length===0||!n(t.action))return null;let r=t.action;if(r.kind===`cancel`)return v(r,[`kind`])?{scanRequestId:t.scanRequestId,action:{kind:r.kind}}:null;if(r.kind!==`select`||!v(r,[`kind`,`baseWalletAuthMethodId`]))return null;let i=e(r.baseWalletAuthMethodId);return i.ok?{scanRequestId:t.scanRequestId,action:{kind:r.kind,baseWalletAuthMethodId:i.value}}:null}function G(e){if(!n(e)||!v(e,[`activationId`,`action`])||typeof e.activationId!=`string`||e.activationId.length===0||!n(e.action))return null;let t=e.action;switch(t.kind){case`create_passkey`:case`send_email_otp`:case`resend_email_otp`:return v(t,[`kind`])?{activationId:e.activationId,action:{kind:t.kind}}:null;case`submit_email_otp`:return v(t,[`kind`,`otpCode`])&&typeof t.otpCode==`string`&&/^\d{6}$/.test(t.otpCode)?{activationId:e.activationId,action:{kind:t.kind,otpCode:t.otpCode}}:null;default:return null}}function K(e,t){return{success:!1,kind:t,error:a(e)||`NEAR transaction failed`}}function q(e,t){return{success:!1,kind:`unresolved`,transactionId:e,error:a(t)}}function J(){return{appIdentity:{kind:`anonymous`},authentication:{kind:`signed_out`},capabilityProjection:{kind:`not_requested`},nonceDiagnostics:null}}let Y=0;function X(){return Y+=1,Y}export{p as _,z as a,W as c,P as d,I as f,l as g,d as h,q as i,G as l,U as m,J as n,R as o,N as p,K as r,b as s,X as t,L as u,f as v,u as y};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-dVx5-UGu.js";import{i as t}from"./domainIds-t1lp25yU.js";import{n}from"./secureRandomId-8LSc91aN.js";import{X as r,a as i,t as a}from"./activeWalletSession-BJ4B-nJo.js";import{t as o}from"./chains-B72I4PDH.js";import{r as s}from"./transactionReviewAdmission-Cf_qUZJt.js";import{n as c}from"./signerDomain-BAsLT3XN.js";import{c as l,o as u,s as d}from"./ecdsaChainTarget-Bm5X4k-V.js";import{s as f}from"./normalization-Df9fZWJC.js";import{u as p}from"./walletAuthority-BTGAuOi8.js";import{F as m,I as h,Nt as g,Pt as _,U as ee,it as v,lt as y,nt as b,rt as x,ut as S}from"./digestEncoding-CqNXPZY9.js";import{I as C,O as te,P as w,R as ne,y as T}from"./ecdsaCapabilityManifest-DAJEVjlP.js";import{a as E,m as re,o as D}from"./sdkSentEvents-DjOlKtdW.js";import{g as ie,u as ae}from"./emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js";import{c as O,i as k,n as oe,r as se,s as ce}from"./types-f7dyj5N6.js";import{c as le,l as ue,s as A}from"./nonceLaneKeys-BF_UpvIy.js";import{t as de}from"./walletSessionAuthorizationStatus-DG7DPcgR.js";import{D as j,E as fe,F as M,S as N,b as pe,g as me,v as he,x as ge}from"./nearEd25519YaoSigningPreparation-DHNk0F8e.js";import{r as _e,t as ve}from"./lanes-BU-fGqY4.js";import{r as ye}from"./operationFingerprint-Bas59T7L.js";import{c as be,l as xe,o as Se,s as Ce,t as we,u as P}from"./trace--mRP2OQc.js";import{t as Te}from"./challengeDelivery-Dj9HrjW9.js";import{a as Ee,i as De,n as Oe,t as ke}from"./authorizationAdmission-28jo_IVJ.js";import{i as Ae}from"./walletSessionFailure-CxsVtroW.js";import{a as je,n as Me,o as Ne,r as Pe,s as Fe}from"./signingQueue-dMFOFOP5.js";import{h as Ie,i as Le,l as Re,n as ze,s as F}from"./clientSessionPersistenceState-BCkJAYSz.js";import{l as Be,n as Ve,p as He,u as Ue}from"./signingFlow-BcetvUeS.js";import{t as We}from"./display-D0EPmU4w.js";import{i as Ge,r as Ke,t as I}from"./types-C4OErbBf.js";import{E as qe,u as Je}from"./requireStepUpAuth-COqCGb1i.js";import{o as Ye,r as Xe}from"./transactionState-29T9xfvL.js";function Ze(e){let t=m(e.routerAbState);return{kind:`router_ab_ecdsa_derivation_signing_material_ref_v1`,activeStateId:h(t),ecdsaThresholdKeyId:C(t.scope.ecdsa_threshold_key_id),clientVerifier33B64u:ne(t.scope.public_identity.derivation_client_share_public_key33_b64u),serverVerifier33B64u:t.scope.public_identity.server_public_key33_b64u,thresholdVerifier33B64u:t.scope.public_identity.threshold_public_key33_b64u}}function Qe(e){return e.session.capabilitySubjects.filter(n=>n.kind===`sign`&&n.keyFamily===`ecdsa_secp256k1`&&t(n.materialActivation,e.materialActivation)).length===1}function $e(e){return e.capability.manifest.signer.scope.targetMemberships.some(t=>d(t,e.chainTarget))}function et(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function tt(e){let{selectedAuthority:t,selectedAuthMethod:n}=e;return n.walletId===e.walletId&&n.status===`active`&&n.walletAuthorityId===t.authorityId&&t.walletId===e.walletId&&t.state===`active`}function nt(e){let t=e.capability.authority,n=e.runtime.authBinding;switch(n.kind){case`voiceid`:return y(t,n.voiceIdAuthority);case`email_otp`:return b(t)&&y(t,n.emailOtpAuthority);case`passkey`:return x(t)&&t.verifier.rpId===n.rpId&&t.factor.credentialIdB64u===n.credentialIdB64u;default:return n}}function rt(e){switch(e.runtime.authBinding.kind){case`voiceid`:return e.selectedAuthMethod.kind===`voiceid`&&e.selectedAuthMethod.walletAuthMethodId===e.runtime.authBinding.voiceIdAuthority.bindingId&&e.selectedAuthMethod.deviceKeyId===e.runtime.authBinding.voiceIdAuthority.factor.deviceKeyId;case`email_otp`:return e.selectedAuthMethod.kind===`email_otp`&&e.selectedAuthMethod.emailHashHex===e.runtime.authBinding.emailHashHex;case`passkey`:return e.selectedAuthMethod.kind===`passkey`&&String(e.selectedAuthMethod.rpId)===String(e.runtime.authBinding.rpId)&&e.selectedAuthMethod.credentialIdB64u===e.runtime.authBinding.credentialIdB64u;default:return e.runtime.authBinding}}function L(e){if(!Number.isSafeInteger(e.nowMs)||e.nowMs<0)return!1;let{capability:n,authorization:r}=e,i=r.session,a=r.operationCredential,o=r.runtime,s=n.manifest.signer,c=r.selectedAuthority.signerActivations.ecdsa;if(!c||!tt({selectedAuthority:r.selectedAuthority,selectedAuthMethod:r.selectedAuthMethod,walletId:i.walletId})||i.walletId!==s.walletId||i.authorityId!==r.selectedAuthority.authorityId||i.authMethodId!==r.selectedAuthMethod.walletAuthMethodId||i.authorityDigestB64u!==r.selectedAuthority.authorityDigestB64u||i.authorityRevocationEpoch!==r.selectedAuthority.revocationEpoch||s.authority.walletId!==r.selectedAuthority.walletId||s.authority.walletAuthMethodId!==r.selectedAuthMethod.walletAuthMethodId||i.authorizationId.trim().length===0||i.quotaId.trim().length===0||a.walletSessionId.trim().length===0||a.token.trim().length===0||o.walletId!==i.walletId||!rt({selectedAuthMethod:r.selectedAuthMethod,runtime:o})||!t(o.materialActivation,n.manifest.activation.materialActivation)||!t(o.roleLocalMaterialRef.materialActivation,o.materialActivation)||!$e({capability:n,chainTarget:o.chainTarget})||!nt({capability:n,runtime:o})||!Qe({session:i,materialActivation:n.manifest.activation.materialActivation})||!t(c.materialActivation,n.manifest.activation.materialActivation)||c.signer.walletId!==i.walletId||o.expiresAtMs<=0||!Number.isSafeInteger(o.remainingUses)||o.remainingUses<0)return!1;switch(o.kind){case`exact_ecdsa_direct_capability_runtime_v1`:break;case`exact_ecdsa_sealed_runtime_v1`:if(o.sealedRecord.authMethod!==r.selectedAuthMethod.kind||o.sealedRecord.storeKey.trim().length===0||o.sealedRecord.thresholdSessionId.trim().length===0)return!1;break;default:return o}return!(i.expiresAtMs<=e.nowMs||o.expiresAtMs<=e.nowMs||o.keyHandle!==String(n.material.publicFacts.keyHandle)||o.ecdsaThresholdKeyId!==String(n.material.publicFacts.ecdsaThresholdKeyId)||o.thresholdEcdsaPublicKeyB64u!==String(n.material.publicFacts.groupPublicKey33B64u)||!et(o.participantIds,n.material.publicFacts.participantIds))}function it(e){return e.kind===`exact_ecdsa_direct_capability_runtime_v1`&&e.authBinding.kind===`voiceid`}function at(e){return e.authBinding.kind===`passkey`}function ot(e){return e.authBinding.kind===`email_otp`}function st(e){if(at(e.runtime)&&e.selected.authMethod.kind===`passkey`||ot(e.runtime)&&e.selected.authMethod.kind===`email_otp`||it(e.runtime)&&e.selected.authMethod.kind===`voiceid`)return{kind:`ecdsa_preprocessing_session`,selectedAuthority:e.selected.authority,selectedAuthMethod:e.selected.authMethod,session:e.session,operationCredential:e.operationCredential,runtime:e.runtime};throw Error(`ECDSA preprocessing session auth method is inconsistent`)}function ct(e){if(x(e))return{kind:`passkey`,rpId:String(e.verifier.rpId),credentialIdB64u:String(e.factor.credentialIdB64u)};if(b(e))return{kind:`email_otp`,providerSubjectId:String(e.factor.providerUserId),emailHashHex:String(e.verifier.emailHashHex),emailOtpAuthority:e};if(v(e))return{kind:`voiceid`,voiceIdAuthority:e};throw Error(`ECDSA authority is unsupported.`)}function lt(e){if(!Number.isSafeInteger(e.status.expiresAtMs)||e.status.expiresAtMs<=0||!Number.isSafeInteger(e.status.remainingUses)||e.status.remainingUses<0)throw Error(`Exact ECDSA direct capability requires valid session facts`);return{kind:`exact_ecdsa_direct_capability_runtime_v1`,walletId:e.runtime.walletId,chainTarget:e.runtime.chainTarget,materialActivation:e.runtime.materialActivation,normalSigning:e.runtime.normalSigning,relayerUrl:e.runtime.relayerUrl,relayerKeyId:e.runtime.relayerKeyId,clientVerifyingPublicKey33B64u:e.runtime.clientVerifyingPublicKey33B64u,participantIds:e.runtime.participantIds,ecdsaThresholdKeyId:e.runtime.ecdsaThresholdKeyId,thresholdEcdsaPublicKeyB64u:e.runtime.thresholdEcdsaPublicKeyB64u,keyHandle:e.runtime.keyHandle,runtimePolicyScope:e.runtime.runtimePolicyScope,roleLocalMaterialRef:e.runtime.roleLocalMaterialRef,authBinding:ct(e.authority),expiresAtMs:e.status.expiresAtMs,remainingUses:e.status.remainingUses}}function ut(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`voiceid`:return t.kind===`voiceid`&&y(e.voiceIdAuthority,t.voiceIdAuthority);case`email_otp`:return t.kind===`email_otp`&&e.providerSubjectId===t.providerSubjectId&&e.emailHashHex===t.emailHashHex&&y(e.emailOtpAuthority,t.emailOtpAuthority);case`passkey`:return t.kind===`passkey`&&e.rpId===t.rpId&&e.credentialIdB64u===t.credentialIdB64u;default:return e}}function dt(e,n){if(e.kind!==n.kind||e.walletId!==n.walletId||!d(e.chainTarget,n.chainTarget)||!t(e.materialActivation,n.materialActivation)||e.keyHandle!==n.keyHandle||e.ecdsaThresholdKeyId!==n.ecdsaThresholdKeyId||!ut(e.authBinding,n.authBinding))return!1;switch(e.kind){case`exact_ecdsa_direct_capability_runtime_v1`:return n.kind===`exact_ecdsa_direct_capability_runtime_v1`;case`exact_ecdsa_sealed_runtime_v1`:return n.kind===`exact_ecdsa_sealed_runtime_v1`&&e.sealedRecord.authMethod===n.sealedRecord.authMethod&&e.sealedRecord.storeKey===n.sealedRecord.storeKey&&e.sealedRecord.thresholdSessionId===n.sealedRecord.thresholdSessionId;default:return e}}function ft(e){let t=e.session.walletId;if(!Number.isSafeInteger(e.nowMs)||e.nowMs<0)throw Error(`Exact EVM-family Wallet Session authorization requires a valid timestamp`);if(!tt({selectedAuthority:e.selected.authority,selectedAuthMethod:e.selected.authMethod,walletId:t})||e.selected.selection.walletId!==t||e.selected.selection.walletAuthMethodId!==e.selected.authMethod.walletAuthMethodId||e.selected.selection.lockState!==`unlocked`)throw Error(`Exact EVM-family Wallet Session authorization selected authority is invalid`);let n=st(e);if(!L({capability:e.capability,authorization:n,nowMs:e.nowMs}))throw Error(`Exact EVM-family Wallet Session authorization identity is inconsistent`);return n}function pt(e){let t=ht(mt(e),e.nowMs);if(!t)throw Error(`Exact ECDSA signing authorization requires remaining signing uses`);return t}function mt(e){return{kind:`authorized_ecdsa_preprocessing_capability`,capability:e.capability,authorization:ft(e)}}function ht(e,t){let n=e.authorization,r=n.runtime;return r.remainingUses<=0||!L({capability:e.capability,authorization:n,nowMs:t})?null:at(r)&&n.selectedAuthMethod.kind===`passkey`||ot(r)&&n.selectedAuthMethod.kind===`email_otp`||it(r)&&n.selectedAuthMethod.kind===`voiceid`?{kind:`exact_evm_family_wallet_session_authorization_v1`,selectedAuthority:n.selectedAuthority,selectedAuthMethod:n.selectedAuthMethod,session:n.session,operationCredential:n.operationCredential,runtime:r}:null}function gt(e){if(e.authorization.runtime.remainingUses<=0||!L({capability:e.capability,authorization:e.authorization,nowMs:e.nowMs}))throw Error(`Exact Wallet Session authorization does not bind the ECDSA signing capability`);return{kind:`authorized_evm_family_ecdsa_signing_capability`,capability:e.capability,authorization:e.authorization}}async function _t(e){let n=e.manifest.signer,r=n.registeredPublicFacts,i=e.material.publicFacts,a=await S({authority:e.authority});if(a.authorityDigest!==n.authority.authorityDigest||a.walletId!==n.walletId||e.material.authority.walletId!==n.walletId||e.material.authority.authorityDigest!==n.authority.authorityDigest||!t(e.material.materialActivation,e.manifest.activation.materialActivation)||i.walletId!==n.walletId||i.keyHandle!==r.keyHandle||String(i.groupPublicKey33B64u)!==String(r.publicKeyB64u)||i.ethereumAddress!==r.thresholdOwnerAddress||i.participantIds.length!==r.participantIds.length||i.participantIds.some((e,t)=>e!==r.participantIds[t]))throw Error(`Canonical EVM-family ECDSA signing capability identity is inconsistent`);return{kind:`canonical_evm_family_ecdsa_signing_capability`,authority:e.authority,manifest:e.manifest,material:e.material}}function R(e){let t=e&&typeof e==`object`&&`code`in e?String(e.code||``).trim():``;if(t===`sealed_refresh_parity_fetch_failed`||t===`sealed_refresh_parity_http_error`||t===`sealed_refresh_parity_aborted`)return!0;let n=String(e instanceof Error?e.message:e||``);return n.includes(`Failed to fetch relayer well-known capabilities`)||/Well-known endpoint returned HTTP 5\d\d/.test(n)}function z(e){return e instanceof Error?e.message:String(e||`unknown error`)}async function vt(e,t){try{await e()}catch(e){if(t.kind===`key_enrollment_bootstrap_parity`){console.warn(`[threshold-ecdsa] key enrollment bootstrap skipped sealed-refresh startup parity enforcement`,{walletId:String(t.walletId||``).trim(),chainTarget:u(t.chainTarget),error:z(e)});return}if(t.kind===`transaction_bootstrap_parity`&&R(e)){console.warn(`[threshold-ecdsa] transaction bootstrap skipped retryable sealed-refresh capability fetch failure`,{walletId:String(t.walletId||``).trim(),chainTarget:u(t.chainTarget),error:z(e)});return}if(t.kind===`email_otp_bootstrap_parity`&&t.authMethod===c.emailOtp&&R(e)){console.warn(`[threshold-ecdsa] Email OTP bootstrap skipped retryable sealed-refresh capability fetch failure`,{walletId:String(t.walletId||``).trim(),chainTarget:u(t.chainTarget),error:z(e)});return}if(t.kind===`default_bootstrap_parity`&&R(e)){console.warn(`[threshold-ecdsa] default bootstrap skipped retryable sealed-refresh capability fetch failure`,{walletId:String(t.walletId||``).trim(),chainTarget:u(t.chainTarget),error:z(e)});return}throw e}}async function yt(e,t){try{await e()}catch(e){if(!R(e))throw e;console.warn(`[threshold-ecdsa] transaction signing skipped retryable sealed-refresh capability fetch failure`,{walletId:String(t.walletId||``).trim(),chainTarget:u(t.chainTarget),error:z(e)})}}function bt(e){if(e.kind===`tempoTransaction`)return`tempo`;if(e.kind===`eip1559`)return`evm_compatible`;let t=String(e.chain||``).trim();if(t===`tempo`||t===`evm`)return t;throw Error(`[SigningEngine][ecdsa] transaction request requires a concrete chain family`)}function xt(e){let t=Number(e.request.tx.chainId);if(!Number.isSafeInteger(t)||t<=0)throw Error(`[SigningEngine][ecdsa] transaction request requires a concrete chainId`);if(t!==e.chainTarget.chainId)throw Error(`[SigningEngine][ecdsa] transaction request chainId does not match chainTarget`);let n=bt(e.request);if(n!==`evm_compatible`&&n!==e.chainTarget.kind)throw Error(`[SigningEngine][ecdsa] transaction request chain does not match chainTarget`);return e.chainTarget}function St(){let e=Error(`Request cancelled`);return e.code=`cancelled`,e}function Ct(e){if(typeof e==`function`&&e())throw St()}function wt(e){return String(e||``).trim().toLowerCase().replace(/[\s-]+/g,`_`)}function B(e){return!e||typeof e!=`object`||!(`code`in e)?``:wt(e.code)}function Tt(e){return e?typeof e==`string`?e.trim():e instanceof Error||typeof e==`object`&&`message`in e?String(e.message||``).trim():String(e).trim():``}function Et(e){let t=`${e.code} ${e.message}`.toLowerCase();return t.trim()?t.includes(`nonce_too_low`)||t.includes(`nonce too low`)?`nonce_too_low`:t.includes(`nonce_too_high`)||t.includes(`nonce too high`)?`nonce_too_high`:t.includes(`already_known`)||t.includes(`already known`)?`already_known`:t.includes(`replacement_transaction_underpriced`)||t.includes(`replacement transaction underpriced`)?`replacement_underpriced`:t.includes(`nonce_conflict`)||t.includes(`nonce`)&&t.includes(`conflict`)||t.includes(`invalid nonce`)||t.includes(`nonce has already been used`)?`nonce_conflict`:null:null}function Dt(e){let t=e.chain===`tempo`?`Tempo`:`EVM`,n=Error(`[SigningEngine] ${t} nonce conflict (${e.reason}) on ${e.networkKey}. Refresh nonce context and retry.`);if(n.code=`nonce_conflict_retryable`,n.retryable=!0,n.details={chain:e.chain,reason:e.reason,networkKey:e.networkKey,chainId:e.chainId},e.cause!==void 0)try{n.cause=e.cause}catch{}return n}function V(e){let t=e.chain===`tempo`?`Tempo`:`EVM`,n=Error(`[SigningEngine] ${t} nonce lane blocked on ${e.networkKey} (nonce=${e.blockedNonce}). Reconcile lane and retry.`);if(n.code=`nonce_lane_blocked`,n.retryable=!0,n.details={chain:e.chain,networkKey:e.networkKey,chainId:e.chainId,blockedNonce:e.blockedNonce,...typeof e.ageMs==`number`?{ageMs:e.ageMs}:{}},e.cause!==void 0)try{n.cause=e.cause}catch{}return n}function Ot(e){if(!e.error||typeof e.error!=`object`)return e.error;let t=B(e.error);if(t===`nonce_conflict_retryable`)return e.error;let n=Et({code:t,message:Tt(e.error)});return n?Dt({chain:e.chain,networkKey:e.networkKey,chainId:e.chainId,reason:n,cause:e.error}):e.error}function kt(e){if(!e.error||typeof e.error!=`object`)return e.error;if(B(e.error)===`nonce_lane_blocked`){let t=typeof e.error.details==`object`&&e.error.details||{},n=String(t?.blockedNonce||``).trim(),r=Number(t?.ageMs);return V({chain:e.chain,networkKey:e.networkKey,chainId:e.chainId,blockedNonce:n||`unknown`,...Number.isFinite(r)?{ageMs:r}:{},cause:e.error})}let t=Tt(e.error).toLowerCase();return t.includes(`nonce lane blocked`)||t.includes(`nonce`)&&t.includes(`blocked`)?V({chain:e.chain,networkKey:e.networkKey,chainId:e.chainId,blockedNonce:`unknown`,cause:e.error}):e.error}function H(e){let t=Ot(e);return kt({...e,error:t})}function At(e){return!e||typeof e!=`object`?!1:B(e)===`nonce_conflict_retryable`}function jt(e){return!e||typeof e!=`object`?!1:B(e)===`nonce_lane_blocked`}function U(e){if(!e)return{present:!1};let t=M(e.identity,`ECDSA lane summary`);return{present:!0,walletId:t.walletId,authMethod:O(e.auth),curve:e.curve,chain:e.chain,chainFamily:`chainFamily`in e?e.chainFamily:e.chain,keyKind:`keyKind`in e?e.keyKind:`threshold_ecdsa_secp256k1`,sessionOrigin:`sessionOrigin`in e?e.sessionOrigin:void 0,storageSource:`storageSource`in e?e.storageSource:void 0,retention:`retention`in e?e.retention:void 0,walletSessionId:e.authorization.operationCredential.walletSessionId,materialActivationId:e.materialActivation.activationId,chainTarget:t.chainTarget,evmFamilyKeyPresent:!!t.key}}function W(e,t){try{console.warn(`[SigningEngine][ecdsa] ${e}`,JSON.stringify(t,null,2))}catch{}}function Mt(e){let t=e.lane;if(!t)throw W(`missing selected signing lane`,{context:e.context,chain:e.chain,...e.diagnostics}),Error(`[SigningEngine][ecdsa] missing selected signing lane for ${e.context}`);if(t.curve!==`ecdsa`||t.keyKind!==`threshold_ecdsa_secp256k1`)throw W(`selected signing lane is not ECDSA`,{context:e.context,expectedChain:e.chain,lane:U(t),...e.diagnostics}),Error(`[SigningEngine][ecdsa] ${e.context} requires an ECDSA signing lane`);let n=t.identity,r=M(n,`${e.context} resolved ECDSA lane`),i=r.chainTarget;if(i.kind!==e.chain)throw W(`selected signing lane chain mismatch`,{context:e.context,expectedChain:e.chain,lane:U(t),...e.diagnostics}),Error(`[SigningEngine][ecdsa] ${e.context} chain does not match selected lane`);let a=r.key;if(!a?.ecdsaThresholdKeyId||!a.signingRootId||!a.signingRootVersion)throw W(`selected signing lane missing full ECDSA identity`,{context:e.context,expectedChain:e.chain,lane:U(t),...e.diagnostics}),Error(`[SigningEngine][ecdsa] incomplete ECDSA lane identity for ${e.context}`);if(!a||String(a.walletId)!==String(r.walletId)||String(r.keyHandle||``).trim()===``)throw W(`selected signing lane missing matching shared key identity`,{context:e.context,expectedChain:e.chain,lane:U(t),...e.diagnostics}),Error(`[SigningEngine][ecdsa] missing shared key identity for ${e.context}`);let o=he({key:a,materialActivation:r.materialActivation,keyHandle:r.keyHandle,walletId:r.walletId,auth:n.auth,authorization:t.authorization,chainTarget:i});return{...t,...o,key:a,keyHandle:r.keyHandle,chainTarget:i,keyKind:`threshold_ecdsa_secp256k1`,chainFamily:r.chainTarget.kind}}function Nt(e){let t=e.authMethod;return{primaryAuthMethod:t,linkedAuthMethods:[t],...e.email?{email:e.email}:{},...e.passkeyCredentialIds?.length?{passkeyCredentialIds:e.passkeyCredentialIds}:{}}}async function Pt(e){if(e.senderSignatureAlgorithm===`webauthnP256`)return Nt({authMethod:c.passkey});if(e.signerAuthMethod!==void 0)return Nt({authMethod:e.signerAuthMethod});throw Error(`[SigningEngine][ecdsa] signer auth method is unavailable`)}function G(e,t){try{e?.(re({...t,flowId:t.flowId??Ft(t)}))}catch{}}function Ft(e){let t=e.data||{};return[`signing`,String(t.chain||`evm_family`),String(t.networkKey||`unknown_network`),String(t.nonce||``)||String(e.phase)].join(`:`)}function K(e,t){G(e,t)}function It(e){if(Lt())try{console.debug(`[SigningOperationMachine][evm-family]`,e)}catch{}}function Lt(){try{return globalThis.localStorage?.getItem(`seams:debug:signing-operation`)===`1`}catch{return!1}}function Rt(e){let n=e.capability.authority;if(!b(n))throw Error(`[SigningEngine] Email OTP operation step-up requires an Email OTP capability authority`);if(e.claimedAuthority&&!y(n,e.claimedAuthority))throw Error(`[SigningEngine] Email OTP step-up authority does not match the selected capability`);if(!t(e.capability.manifest.activation.materialActivation,e.materialActivation))throw Error(`[SigningEngine] Email OTP step-up material activation does not match the selected capability`);let r=String(e.operationFingerprint||``).trim();if(!r)throw Error(`[SigningEngine] Email OTP operation step-up requires an operation fingerprint`);return{kind:`capability_step_up`,capabilityAuthority:n,materialActivation:e.materialActivation,operationFingerprint:r}}function zt(e){switch(e.kind){case`live_session`:if(e.committedLane.authority.factor.kind!==`email_otp`)throw Error(`[SigningEngine][ecdsa] Email OTP challenge requires Email OTP authority`);return{kind:`live_session`,authLane:e.committedLane.authLane};case`capability_step_up`:return{kind:`capability_step_up`,capabilityAuthority:e.capabilityAuthority,materialActivation:e.materialActivation,operationFingerprint:e.operationFingerprint}}}function Bt(e){let t=null;return{challenge:async()=>{if(typeof e.requestEmailOtpTransactionSigningChallenge!=`function`)throw Error(`[SigningEngine] Email OTP ECDSA signing step-up is not configured`);if(e.authority.kind===`capability_step_up`){if(t!==null&&t!==e.authority.operationFingerprint)throw Error(`[SigningEngine] Email OTP step-up challenge is bound to a different operation`);t=e.authority.operationFingerprint}K(e.onEvent,{phase:D.STEP_06_AUTH_EMAIL_OTP_CHALLENGE_STARTED,status:`running`,walletId:e.walletId,interaction:{kind:`none`,overlay:`none`}}),Se(`evm-family`,we({event:`auth_side_effect_started`,lane:e.selectedLane,sideEffect:`email_otp_challenge`,phase:`confirmed`}));let n=await e.requestEmailOtpTransactionSigningChallenge({walletSession:e.walletSession,chain:e.chain,authority:zt(e.authority),operationFingerprintDigest:e.operationFingerprintDigest}),r=String(n.challengeId||``).trim();if(!r)throw Error(`[SigningEngine] Email OTP challenge response did not include challengeId`);return K(e.onEvent,{phase:D.STEP_06_AUTH_EMAIL_OTP_INPUT_REQUIRED,status:`waiting_for_user`,walletId:e.walletId,interaction:{kind:`otp_input`,overlay:`show`},data:{emailHint:n.emailHint,demoOtpCode:Te(n.delivery)}}),{challengeId:r,email:String(n.emailHint||``).trim()}}}}function Vt(e){return b(e.authority)}function Ht(e){let t=e.selection.committedLane;if(!Vt(t))throw Error(`[SigningEngine][ecdsa] Email OTP step-up requires Email OTP authority`);return t.authLane?{kind:`live_session`,committedLane:t}:{kind:`capability_step_up`,capabilityAuthority:t.authority,materialActivation:t.authorization.runtime.materialActivation,operationFingerprint:`sha256:${String(e.operationFingerprintDigest)}`}}function Ut(e){if(e.selection)return b(e.selection.committedLane.authority)?Ht({selection:e.selection,operationFingerprintDigest:e.operationFingerprintDigest}):void 0}async function Wt(e){let t=l(e.walletSession.walletId),n=e.senderSignatureAlgorithm===`secp256k1`&&e.ecdsaAuthorization===`reusable_wallet_session`?e.preparedOperation:null,r=n?n.metadata:null,i=n?.lane,a=r?.selection,o=e.confirmedDeps,s=(e.ecdsaAuthorization===`operation_step_up`&&b(e.capability.authority)?Rt({capability:e.capability,materialActivation:e.materialActivation,operationFingerprint:e.operationFingerprint}):void 0)??(i&&O(i.auth)===c.emailOtp?Ut({selection:a,operationFingerprintDigest:e.operationFingerprintDigest}):void 0),u=s?Bt({walletId:t,walletSession:e.walletSession,chain:e.chain,...i?{selectedLane:i}:{},authority:s,operationFingerprintDigest:e.operationFingerprintDigest,onEvent:e.onEvent,requestEmailOtpTransactionSigningChallenge:o.requestEmailOtpTransactionSigningChallenge}):null,d=oe.TransactionSign,f=null,p;if(n){let e=n,r=e.signingSessionPlan;if(p=r,r.kind===k.NotReady)throw Error(`[SigningEngine] ECDSA signing session is not ready: ${r.reason}`);f=Je({plan:r,accountId:String(t),intent:d,curve:`ecdsa`,expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses})}let m=f?null:await ee(),h=f||m.signingAuthPlan,g=m?.emailOtpAuthBridge||u;if(h.kind!==I.EmailOtpReauth||!g)return{signingAuthPlan:h,...p?{signingSessionPlan:p}:{}};let _=async()=>{let e=await g.challenge();return{challengeId:e.challengeId,...e.email?{emailHint:e.email}:{}}};return{signingAuthPlan:h,...p?{signingSessionPlan:p}:{},emailOtpSigning:{prepare:_,resend:async()=>await _()}};async function ee(){if(e.ecdsaAuthorization===`operation_step_up`){if(e.capability.authority.factor.kind===`voiceid`)throw Error(`Unlock this wallet with VoiceID again before signing.`);if(x(e.capability.authority))return{signingAuthPlan:{kind:I.PasskeyReauth,method:`passkey`}};if(b(e.capability.authority)){if(!u)throw Error(`[SigningEngine] Email OTP step-up authority is unavailable for the selected capability`);return{signingAuthPlan:{kind:I.EmailOtpReauth,method:`email_otp`},emailOtpAuthBridge:u}}throw Error(`The EVM authentication method cannot authorize this step-up.`)}if(!(Array.isArray(e.accountAuth.linkedAuthMethods)?e.accountAuth.linkedAuthMethods:[]).includes(e.accountAuth.primaryAuthMethod))throw Error(`[SigningEngine] primary auth method is not linked: ${String(e.accountAuth.primaryAuthMethod||``)}`);if(e.accountAuth.primaryAuthMethod===c.passkey)return{signingAuthPlan:{kind:I.PasskeyReauth,method:`passkey`}};if(e.accountAuth.primaryAuthMethod===c.emailOtp){if(!u)throw Error(`[SigningEngine] Email OTP transaction signing requires ECDSA lane state`);return{signingAuthPlan:{kind:I.EmailOtpReauth,method:`email_otp`},emailOtpAuthBridge:u}}throw Error(`[SigningEngine] unsupported primary auth method: ${String(e.accountAuth.primaryAuthMethod||``)}`)}}function Gt(e){if(e.selectedAuthMethod.kind!==`email_otp`||e.runtime.kind!==`exact_ecdsa_sealed_runtime_v1`||e.runtime.authBinding.kind!==`email_otp`||e.operationCredential.token.trim().length===0||e.runtime.sealedRecord.thresholdSessionId.trim().length===0)throw Error(`Exact Email OTP ECDSA signing-session authorization is incomplete`);return{kind:`signing_session`,operationCredential:e.operationCredential,thresholdSessionId:e.runtime.sealedRecord.thresholdSessionId,curve:`ecdsa`,chainTarget:e.runtime.chainTarget}}function Kt(e,t){return{...e,primaryAuthMethod:t,linkedAuthMethods:Array.from(new Set([...e.linkedAuthMethods,t]))}}function qt(e){let t=e.chainTarget.kind===`tempo`?_e:ve,n={key:e.key,materialActivation:e.materialActivation,keyHandle:e.keyHandle,walletId:e.walletId,chainTarget:e.chainTarget,authorization:e.authorization};return Mt({lane:t(e.auth.kind===`email_otp`?{...n,auth:e.auth,retention:`session`,sessionOrigin:`per_operation`}:{...n,auth:e.auth,storageSource:`manual-bootstrap`}),chain:e.chain,context:`build exact ECDSA candidate signing lane`})}function Jt(e){return{authMethod:e.auth.kind,chain:e.chain,chainTarget:e.chainTarget,state:e.state,walletSessionId:e.authorization.operationCredential.walletSessionId,materialActivationId:e.materialActivation.activationId,remainingUses:e.authorization.runtime.remainingUses,expiresAtMs:e.authorization.runtime.expiresAtMs}}function q(e){return{...Jt(e),source:`canonical_capability`}}function Yt(e){return e.selectedAuthMethod.kind===`email_otp`&&e.runtime.authBinding.kind===`email_otp`}function Xt(e){return e.runtime.kind===`exact_ecdsa_direct_capability_runtime_v1`}function Zt(e){return e.runtime.kind===`exact_ecdsa_sealed_runtime_v1`}function Qt(e){if(e.auth.kind!==`passkey`)throw Error(`[SigningEngine][ecdsa] passkey committed lane requires passkey candidate`);return{...e,auth:e.auth}}function $t(e){let t=String(e.authority.walletId);if(!(String(e.lane.key.walletId)===t&&String(e.candidate.walletId)===t))throw Error(`[SigningEngine][ecdsa] ${e.context} committed lane authority wallet mismatch`)}function en(e){return{selectedLaneCandidate:q(e.candidate)}}async function tn(e){let t=Qt(e.candidate),n=(await e.deps.resolveCanonicalEcdsaSigningCapability({walletId:t.walletId,chainTarget:t.chainTarget,materialActivation:t.materialActivation})).authority;if(!x(n)||String(n.verifier.rpId)!==String(t.auth.rpId)||n.factor.credentialIdB64u!==t.auth.credentialIdB64u)throw Error(`[SigningEngine][ecdsa] exact Passkey capability authority changed`);return $t({authority:n,lane:e.lane,candidate:t,context:`Passkey`}),{lane:e.lane,authority:n,authorization:e.lane.authorization}}async function nn(e){let t=e.candidate,n=(await e.deps.resolveCanonicalEcdsaSigningCapability({walletId:t.walletId,chainTarget:t.chainTarget,materialActivation:t.materialActivation})).authority;if(t.auth.kind!==`voiceid`||!v(n)||n.bindingId!==t.auth.walletAuthMethodId||n.factor.deviceKeyId!==t.auth.deviceKeyId)throw Error(`VoiceID ECDSA capability authority changed.`);return $t({authority:n,lane:e.lane,candidate:t,context:`VoiceID`}),{lane:e.lane,authority:n,authorization:e.lane.authorization}}async function rn(e){let t=N(e.lane),n=await e.deps.resolveDurableEmailOtpEcdsaSigningSessionAuthority({lane:t,chain:e.lane.chainTarget.kind});return n?Yt(n)?{kind:`durable_authority_backed`,authorization:n}:null:(W(`Email OTP exact ECDSA authority not found`,{lane:U(e.lane),candidate:q(e.candidate)}),null)}function an(e){if(e.authority)return e.authority;throw W(`Email OTP exact ECDSA signing-session authority missing`,{lane:U(e.lane),candidate:q(e.candidate)}),Error(`Email OTP ECDSA committed lane is missing wallet-session authority; unlock wallet again`)}function on(e){let t=Gt(e.authority.authorization);if(t.kind===`signing_session`&&t.curve===`ecdsa`&&d(t.chainTarget,e.lane.chainTarget))return t;throw W(`Email OTP ECDSA committed lane rejected for authority shape`,{authorityKind:t.kind,authorityCurve:t.kind===`signing_session`?t.curve:null,lane:U(e.lane),candidate:q(e.candidate)}),Error(`Email OTP ECDSA committed lane authority is not an ECDSA signing session; unlock wallet again`)}function sn(e){if(e.committedLane&&e.committedLane.authority.factor.kind===e.expectedFactor)return e.committedLane;throw W(`ECDSA committed lane missing for ready signing`,{expectedFactor:e.expectedFactor,lane:U(e.lane),candidate:q(e.candidate)}),Error(`[SigningEngine][ecdsa] committed lane is unavailable for ready signing`)}function cn(e){let t=e.authority.authorization;if(t.runtime.authBinding.kind!==`email_otp`)throw Error(`[SigningEngine][ecdsa] Email OTP authority runtime binding is invalid`);let n=t.runtime.authBinding.emailOtpAuthority;if($t({authority:n,lane:e.lane,candidate:e.candidate,context:`Email OTP`}),Xt(t))return{lane:e.lane,authority:n,authorization:t};if(Zt(t))return{lane:e.lane,authority:n,authorization:t,authLane:on({authority:e.authority,lane:e.lane,candidate:e.candidate})};throw Error(`[SigningEngine][ecdsa] Email OTP authorization runtime is unsupported`)}async function ln(e){let t=qt(e.laneCandidate),n=t,r=e.laneCandidate.auth.kind,i=r===c.emailOtp?await rn({deps:e.deps,lane:n,candidate:e.laneCandidate}):null,a=r===c.emailOtp?an({authority:i,lane:n,candidate:e.laneCandidate}):null,o=r===c.emailOtp&&a?cn({authority:a,lane:n,candidate:e.laneCandidate}):null,s=r===c.passkey?await tn({deps:e.deps,lane:t,candidate:e.laneCandidate}):null,l=r===`voiceid`?await nn({deps:e.deps,lane:t,candidate:e.laneCandidate}):null,u=o??s??l,d=u?.authority.factor.kind,f=Kt(await Pt({senderSignatureAlgorithm:e.senderSignatureAlgorithm,signerAuthMethod:d??r}),r),p=en({candidate:e.laneCandidate});return{kind:`ready`,accountAuth:f,lane:t,committedLane:sn({committedLane:u,expectedFactor:r,lane:t,candidate:e.laneCandidate}),diagnostics:p}}function un(e){let t={walletId:e.walletId,curve:`ecdsa`,authSelectionPolicy:e.authSelectionPolicy,operationUsesNeeded:e.operationUsesNeeded,...e.operationId?{operationId:e.operationId}:{}};return e.signingTarget.kind===`tempo`?{...t,chain:`tempo`,chainTarget:e.signingTarget}:{...t,chain:`evm`,chainTarget:e.signingTarget}}function dn(e){return{kind:`account_class`,authMethod:e.candidateAuthMethod}}function fn(e){let t=new Set;for(let n of Re(e.availableLanes,e.signingTarget))Ie(n)&&d(n.chainTarget,e.signingTarget)&&t.add(F(n));if(t.size!==1)throw Error(`[SigningEngine][ecdsa] exact capability authority is unavailable or ambiguous`);return Array.from(t)[0]}function pn(e){if(!e)return{present:!1};if(!Ie(e))return{present:!0,curve:e.curve,chain:e.chainTarget.kind,chainTarget:e.chainTarget,state:e.state};let t=ie({walletId:e.key.walletId,publicFacts:e.publicFacts});return{present:!0,authMethod:F(e),curve:e.curve,chain:e.chainTarget?.kind,chainTarget:e.chainTarget,...t?{evmFamilyKeyFingerprint:t}:{},state:e.state,source:e.source,walletSessionId:e.authorization?.operationCredential.walletSessionId,materialActivationId:e.materialActivation.activationId,remainingUses:e.remainingUses,expiresAtMs:e.expiresAtMs}}function mn(e){return Object.fromEntries(Object.entries(e.ecdsa.candidatesByTarget).map(([e,t])=>[e,t.map(e=>pn(e))]))}function hn(e,t){try{console.warn(e,JSON.stringify(t,null,2))}catch{try{console.warn(e,t)}catch{}}}function gn(e){return Object.fromEntries(Object.entries(e.ecdsa.lanesByTarget).map(([e,t])=>[e,pn(t)]))}function _n(e){return e?{present:!0,authMethod:me(e),curve:e.curve,chain:e.chainTarget.kind,chainTarget:e.chainTarget,state:e.state,source:e.source,materialActivationId:e.materialActivation.activationId,authorizationState:e.authorizationState,...e.authorizationState===`authorized`?{walletSessionId:e.authorization.operationCredential.walletSessionId,remainingUses:e.authorization.runtime.remainingUses,expiresAtMs:e.authorization.runtime.expiresAtMs}:{}}:{present:!1}}function vn(e,t){let n=e.session,r=t.session;return e.selectedAuthority.authorityId===t.selectedAuthority.authorityId&&e.selectedAuthMethod.kind===t.selectedAuthMethod.kind&&e.selectedAuthMethod.walletAuthMethodId===t.selectedAuthMethod.walletAuthMethodId&&n.walletId===r.walletId&&n.authorityId===r.authorityId&&n.authMethodId===r.authMethodId&&n.authorizationId===r.authorizationId&&n.quotaId===r.quotaId&&n.authorityDigestB64u===r.authorityDigestB64u&&n.authorityRevocationEpoch===r.authorityRevocationEpoch&&e.operationCredential.walletSessionId===t.operationCredential.walletSessionId&&e.operationCredential.token===t.operationCredential.token&&dt(e.runtime,t.runtime)}function yn(e){let t=e.candidate,n=me(t),r=e.selection.committedLane.authority.factor.kind;if(n!==r)throw Error(`[SigningEngine][ecdsa] prepared auth method ${n} did not match committed lane auth method ${r}`);let i=O(e.selection.lane.auth);if(i!==r)throw Error(`[SigningEngine][ecdsa] selected lane auth method ${i} did not match committed lane auth method ${r}`);if(!vn(t.authorization,e.selection.lane.authorization))throw Error(`[SigningEngine][ecdsa] prepared authorization did not match lane`);if(j(N(e.selection.committedLane.lane))!==j(N(e.selection.lane)))throw Error(`[SigningEngine][ecdsa] committed lane did not match selected lane`)}function bn(e){let t=e.diagnostics.selectedLaneCandidate.state,{expiresAtMs:n,remainingUses:r}=e.lane.authorization.runtime;return t===`expired`?{readiness:{status:`expired`,curve:`ecdsa`,materialActivation:e.lane.materialActivation,authorization:e.lane.authorization,expiresAtMs:n},expiresAtMs:n,remainingUses:r}:t===`exhausted`?{readiness:{status:`exhausted`,curve:`ecdsa`,materialActivation:e.lane.materialActivation,authorization:e.lane.authorization,expiresAtMs:n,remainingUses:r},expiresAtMs:n,remainingUses:r}:{readiness:{status:`ready`,curve:`ecdsa`,materialActivation:e.lane.materialActivation,authorization:e.lane.authorization,expiresAtMs:n,remainingUses:r},expiresAtMs:n,remainingUses:r}}function xn(e){let t=e.preparedOperation.operation;if(!t)throw Error(`[SigningEngine][ecdsa] prepared material requires an operation identity`);if(e.metadata.materialBinding.operationId!==t.operationId)throw Error(`[SigningEngine][ecdsa] prepared material operation identity mismatch`);if(e.metadata.materialBinding.operationFingerprint&&t.operationFingerprint&&e.metadata.materialBinding.operationFingerprint!==t.operationFingerprint)throw Error(`[SigningEngine][ecdsa] prepared material fingerprint mismatch`);let n=j(fe(e.preparedOperation.lane));if(e.metadata.materialBinding.laneIdentityKey!==n)throw Error(`[SigningEngine][ecdsa] prepared material lane identity mismatch`)}async function Sn(e){let t=e.signingTarget,n=t.kind,r=l(e.walletSession.walletId),i=await e.deps.resolveOwnerLaneScope(r),a=await e.deps.readAvailableSigningLanesForSigning({walletId:r,curve:`ecdsa`,ecdsaChainTargets:[t],ownerScope:i}),o={walletId:r,chain:n,chainTarget:t,targetKey:u(t),candidateCount:Re(a,t).length,selectedLanesByTarget:gn(a),candidatesByTarget:mn(a)};o.candidateCount===0&&hn(`[ECDSA_LANE_READ_DIAGNOSTIC][no-candidates]`,o),P(`evm-family`,{stage:`ecdsa_prepare.available_lanes_read`,...o});let s=fn({availableLanes:a,signingTarget:e.signingTarget}),c=un({walletId:r,authSelectionPolicy:dn({candidateAuthMethod:s}),operationUsesNeeded:1,signingTarget:e.signingTarget,...e.signingOperation.operationId?{operationId:e.signingOperation.operationId}:{}}),d=Ye({intent:c,availableLanes:a});if(P(`evm-family`,{stage:`ecdsa_prepare.material_candidate_selected`,walletId:r,chain:n,chainTarget:t,primaryAuthMethod:d.ok?me(d.candidate):s,selectionOk:d.ok,...d.ok?{authorizationState:d.kind,selectedAvailableLane:pn(d.availableLane),selectedLaneCandidate:_n(d.candidate),...d.kind===`authorized`?{transactionLane:d.lane}:{}}:{failure:d.failure}}),!d.ok){let e={stage:`ecdsa_prepare.exact_material_candidate_missing`,walletId:r,chain:n,chainTarget:t,targetKey:u(t),primaryAuthMethod:s,candidateCount:o.candidateCount,ecdsaTargets:a.ecdsa.targets,selectedLanesByTarget:o.selectedLanesByTarget,candidatesByTarget:o.candidatesByTarget,selectionFailure:d.failure};throw hn(`[ECDSA_NO_LANE_DIAGNOSTIC]`,e),xe(`evm-family`,e),Error(`[SigningEngine][ecdsa] transaction signing requires exact ECDSA material for ${n}`)}if(d.kind===`authorization_required`){let t=d.candidate;return e.diagnostics.selection={kind:`authorization_required`,authMethod:F(d.availableLane),candidate:_n(t)},{kind:`authorization_required`,authMethod:F(d.availableLane),availableLanesGeneration:a.generation,identity:ge({signer:pe({walletId:t.walletId,chainTarget:t.chainTarget,keyHandle:t.keyHandle,key:t.key,materialActivation:t.materialActivation}),auth:t.auth}),candidate:t,intent:c}}let f=d.candidate,p=d.lane,m=await Xe({intent:c,coordinator:e.signingSessionCoordinator,operation:e.signingOperation,forceFreshAuth:e.forceFreshAuth===!0,onPlannerTrace:e=>be(`evm-family`,e),lifecycleAdapter:{prepare:async()=>{let i=await ln({deps:e.deps,walletId:r,chainTarget:t,senderSignatureAlgorithm:`secp256k1`,laneCandidate:f});P(`evm-family`,{stage:`ecdsa_prepare.material_selected`,walletId:r,chain:n,chainTarget:t,selectionKind:i.kind,authMethod:i.committedLane.authority.factor.kind,lane:U(i.lane),diagnostics:i.diagnostics});let o=i.committedLane.authority.factor.kind;Ce(`evm-family`,i.lane,{reason:`evm_family_ecdsa_selection`}),e.diagnostics.selection={kind:i.kind,authMethod:o,lane:U(i.lane),diagnostics:i.diagnostics};let s=Mt({lane:i.lane,chain:n,context:`EVM-family signing preparation`,diagnostics:e.diagnostics});yn({candidate:f,selection:i});let l=bn(i);return P(`evm-family`,{stage:`ecdsa_prepare.readiness`,walletId:r,chain:n,chainTarget:t,authMethod:o,lane:U(s),readinessStatus:l.readiness.status}),Se(`evm-family`,we({event:`pre_confirm_readiness_checked`,lane:s,readinessStatus:l.readiness.status,phase:`pre_confirm`})),{lane:s,transactionLane:p,transactionIntent:c,readiness:{readiness:l.readiness,expiresAtMs:l.expiresAtMs,remainingUses:l.remainingUses},availableLanesGeneration:a.generation,metadata:{accountAuth:i.accountAuth,authMethod:o,source:i.diagnostics.selectedLaneCandidate.source,selection:i,materialBinding:{operationId:e.signingOperation.operationId,...e.signingOperation.operationFingerprint?{operationFingerprint:e.signingOperation.operationFingerprint}:{},laneIdentityKey:j(fe(s))},availableLanesGeneration:a.generation}}}}}),h=m.thresholdOperation,g=h.metadata;return xn({metadata:g,preparedOperation:h}),{kind:`authorized`,accountAuth:g.accountAuth,authMethod:g.authMethod,source:g.source,selection:g.selection,availableLanesGeneration:g.availableLanesGeneration,signingLane:h.lane,preparedOperation:h,transactionOperation:m.transactionOperation}}function J(e){let t=e.signedResult.managedNonce;if(!t||typeof t!=`object`)throw Error(`[SigningEngine][evm-family] managedNonce is required for nonce lifecycle`);try{let n=Be(t);return e.walletId,n}catch(e){throw Error(`[SigningEngine][evm-family] invalid managedNonce: ${e instanceof Error?e.message:String(e||`unknown error`)}`)}}async function Cn(e,t){let n=Y(t);await e.nonceCoordinator.release({...n,reason:`signing_failed`})}function wn(e){return{chainNextNonce:e.chainNextNonce.toString(),unresolvedInFlightNonces:e.unresolvedInFlightNonces.map(e=>e.toString()),blocked:e.blocked,...e.blockedNonce==null?{}:{blockedNonce:e.blockedNonce.toString()}}}async function Tn(e,t){let n=J({signedResult:t.signedResult,walletId:t.walletId});G(t.onEvent,{walletId:t.walletId,phase:D.STEP_12_BROADCAST_ACCEPTED,status:`running`,message:`Marking managed nonce lane as in-flight`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),nonce:n.nonce.toString()}});let r=En(t.txHash||(t.signedResult.chain===`evm`?t.signedResult.txHashHex:void 0));await e.nonceCoordinator.markBroadcastAccepted({...Y(n),txHash:r}),G(t.onEvent,{walletId:t.walletId,phase:D.STEP_12_BROADCAST_ACCEPTED,status:`succeeded`,message:`Managed nonce lane marked in-flight`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),nonce:n.nonce.toString(),txHash:r}})}function En(e){let t=String(e||``).trim().toLowerCase();if(!/^0x[0-9a-f]{64}$/.test(t))throw Error(`[SigningEngine][evm-family] broadcast acceptance requires txHash`);return t}async function Dn(e,t){let n=J({signedResult:t.signedResult,walletId:t.walletId});G(t.onEvent,{walletId:t.walletId,phase:D.STEP_12_BROADCAST_REJECTED,status:`running`,message:`Marking managed nonce reservation rejected`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),nonce:n.nonce.toString()}}),await e.nonceCoordinator.markBroadcastRejected({...Y(n),error:t.error});let r=H({error:t.error,chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId});if(G(t.onEvent,{walletId:t.walletId,phase:D.STEP_12_BROADCAST_REJECTED,status:`failed`,message:`Managed nonce reservation marked rejected`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),nonce:n.nonce.toString()}}),!At(r)&&!jt(r))return;G(t.onEvent,{walletId:t.walletId,phase:D.STEP_13_NONCE_RECONCILE_STARTED,status:`running`,message:`Reconciling managed nonce lane after broadcast error`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),nonce:n.nonce.toString(),errorCode:B(r)}});let i=await e.nonceCoordinator.reconcile({lane:A(n)}).catch(()=>null);throw G(t.onEvent,{walletId:t.walletId,phase:D.STEP_13_NONCE_RECONCILE_SUCCEEDED,status:`succeeded`,message:`Managed nonce lane reconciled`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),...i?{laneStatus:wn(i)}:{}}}),r}async function On(e,t){t.receiptStatus;let n=J({signedResult:t.signedResult,walletId:t.walletId}),r=t.txHash||(t.signedResult.chain===`evm`?t.signedResult.txHashHex:void 0);await e.nonceCoordinator.markFinalized({...Y(n),...r?{txHash:r}:{}})}async function kn(e,t){let n=J({signedResult:t.signedResult,walletId:t.walletId});G(t.onEvent,{walletId:t.walletId,phase:t.reason===`replaced`?D.STEP_13_TRANSACTION_REPLACED:D.STEP_13_TRANSACTION_DROPPED,status:`running`,message:t.reason===`replaced`?`Marking managed nonce lane replaced`:`Marking managed nonce lane dropped`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),nonce:n.nonce.toString(),reason:t.reason,...t.txHash?{txHash:t.txHash}:{}}}),await e.nonceCoordinator.markDroppedOrReplaced({...Y(n),reason:t.reason,...t.txHash?{txHash:t.txHash}:{}}),G(t.onEvent,{walletId:t.walletId,phase:t.reason===`replaced`?D.STEP_13_TRANSACTION_REPLACED:D.STEP_13_TRANSACTION_DROPPED,status:t.reason===`replaced`?`succeeded`:`failed`,message:t.reason===`replaced`?`Managed nonce lane marked replaced`:`Managed nonce lane marked dropped`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),nonce:n.nonce.toString(),reason:t.reason,...t.txHash?{txHash:t.txHash}:{}}})}async function An(e,t){let n=J({signedResult:t.signedResult,walletId:t.walletId});G(t.onEvent,{walletId:t.walletId,phase:D.STEP_13_NONCE_RECONCILE_STARTED,status:`running`,message:`Reconciling managed nonce lane`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString()}});let r=await e.nonceCoordinator.reconcile({lane:A(n)}),i=wn(r);if(G(t.onEvent,{walletId:t.walletId,phase:D.STEP_13_NONCE_RECONCILE_SUCCEEDED,status:`succeeded`,message:`Managed nonce lane reconciled`,data:{chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId.toString(),laneStatus:i}}),r.blocked)throw V({chain:n.chainTarget.kind,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId,blockedNonce:String(i.blockedNonce||`unknown`)});return i}function Y(e){let t=String(e.leaseId||``).trim(),n=String(e.operationId||``).trim(),r=String(e.operationFingerprint||``).trim();if(!t||!n||!r)throw Error(`[SigningEngine][evm-family] managedNonce lease metadata is required`);return{leaseId:t,operationId:n,operationFingerprint:r}}function jn(e){let t=String(e||``).trim().toLowerCase();if(/^0x[0-9a-f]{40}$/.test(t))return t}function Mn(e){if(`chainId`in e)return typeof e.chainId==`number`?e.chainId:void 0}function Nn(e){return String(o(e.network))===`evm`}function Pn(e){return String(o(e.network))===`tempo`}function Fn(e){let t=Ln(e);if(t)return t;let n=e.request.tx.chainId;throw Error(`[SigningEngine] unable to resolve nonce network for ${e.request.chain} chainId=${String(n)} from configured chains`)}function In(e){return Ln(e)||`${e.request.chain}:${String(e.request.tx.chainId)}`}function Ln(e){let t=e.request.tx.chainId,n=e.configs.network.chains.filter(e=>{let n=Mn(e);return typeof n==`number`&&n===t});if(!n.length)return null;if(e.request.chain===`tempo`){let t=n.filter(e=>Pn(e));if(t.length===1)return t[0].network;if(t.length>1){let n=t.map(e=>e.network).join(`, `);throw Error(`[SigningEngine] ambiguous nonce network for tempo chainId=${String(e.request.tx.chainId)} across [${n}]`)}return null}let r=n.filter(e=>Nn(e));if(r.length===1)return r[0].network;if(r.length>1){let t=r.map(e=>e.network).join(`, `);throw Error(`[SigningEngine] ambiguous nonce network for evm chainId=${String(e.request.tx.chainId)} across [${t}]`)}let i=n.filter(e=>Pn(e));if(i.length===1)return i[0].network;if(i.length>1){let t=i.map(e=>e.network).join(`, `);throw Error(`[SigningEngine] ambiguous nonce network for evm->tempo chainId=${String(e.request.tx.chainId)} across [${t}]`)}return null}function Rn(e){return{kind:`threshold_owner`,thresholdOwnerAddress:e}}function zn(e){return{kind:`chain_account`,chainAccountAddress:e}}function Bn(e){switch(e.kind){case`threshold_owner`:return e.thresholdOwnerAddress;case`chain_account`:return e.chainAccountAddress;default:return e}}async function Vn(e){let t=(await e.deps.walletSignerStore.getActiveWalletSignerForChainTarget({walletId:e.walletId,chainTarget:e.chainTarget}))?.metadata||{},n=jn(t.thresholdOwnerAddress);if(n)return Rn(n);let r=jn(t.accountAddress);if(r)return zn(r);let i=f(e.chainTarget);throw Error(`[SigningEngine] unable to resolve managed nonce wallet signer for ${e.walletId} (${i})`)}async function Hn(e){return Bn(e.senderIdentity)}async function Un(e){let t=await Hn({senderIdentity:e.senderIdentity});return Ue({chain:`evm`,networkKey:Fn({configs:e.deps.seamsWebConfigs,request:e.request}),chainId:e.request.tx.chainId,sender:t,walletId:e.walletId})}async function Wn(e){let t=e.reservationInput,n;try{n=le(await e.deps.nonceCoordinator.reserve({lane:ue(t),operation:e.operation}))}catch(e){throw H({error:e,chain:`evm`,networkKey:t.chainTarget.networkSlug,chainId:t.chainTarget.chainId})}return{request:{...e.request,tx:{...e.request.tx,nonce:n.nonce}},reservation:n}}let Gn=null,Kn=null,qn=null,Jn=null;async function Yn(){return Gn||=import(`./secp256k1-CE7-q9Sn.js`).then(e=>e.Secp256k1Engine),await Gn}async function Xn(){return Kn||=import(`./webauthnP256-BsQQPurm.js`).then(e=>e.WebAuthnP256Engine),await Kn}async function Zn(){return qn||=import(`./signEvmWithUiConfirm-CGrLtMV6.js`).then(e=>e.signEvmWithUiConfirm),await qn}async function Qn(){return Jn||=import(`./signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js`).then(e=>e.signEvmFamilyWithUiConfirmForTempo),await Jn}async function $n(e){let t=await Hn({senderIdentity:e.senderIdentity}),n=Ue({chain:`tempo`,networkKey:Fn({configs:e.deps.seamsWebConfigs,request:e.request}),chainId:e.request.tx.chainId,sender:t,nonceKey:e.request.tx.nonceKey,walletId:e.walletId}),r;try{r=le(await e.deps.nonceCoordinator.reserve({lane:ue(n),operation:e.operation}))}catch(e){throw H({error:e,chain:`tempo`,networkKey:n.chainTarget.networkSlug,chainId:n.chainTarget.chainId})}return{request:{...e.request,tx:{...e.request.tx,nonce:r.nonce}},reservation:r}}function er(e){if(e.state.kind!==`not_required`)return Rn(e.state.thresholdOwnerAddress)}function tr(e){if(e.state.kind===`not_required`)throw Error(`[SigningEngine][evm-family] raw EIP-1559 signing requires prepared threshold ECDSA owner address for ${e.walletId}`);return Rn(e.state.thresholdOwnerAddress)}function nr(e){return Vn({deps:e.deps,walletId:e.walletId,chainTarget:e.chainTarget})}async function rr(e,t){let n=e.deps.nonceCoordinator.recoverDurableLeases({walletId:e.walletId});n.catch(()=>{});let r=await t.loadSigner();try{return await r({...e.flowArgs,authorization:e.flowArgs.authorization??{kind:`owner`},request:e.request,onConfirmationDisplayed:e.onConfirmationDisplayed,thresholdEcdsaStepUp:e.thresholdEcdsaStepUp,prepareRequestWithManagedNonce:async()=>(await n,await t.prepareRequestWithManagedNonce({deps:e.deps,walletId:e.walletId,request:e.request,nonceOperation:e.nonceOperation})),releaseNonceReservation:async t=>{await Cn(e.deps,t)}})}catch(n){let r=await e.retryWithFreshEmailOtpAuth(n);if(r)return r;throw H({error:n,chain:t.targetKind,networkKey:In({configs:e.deps.seamsWebConfigs,request:e.request}),chainId:e.chainTarget.chainId})}}async function ir(e){if(e.chainTarget.kind===`evm`||e.request.kind===`eip1559`){let t=null,n=null,r=e.request.kind===`eip1559`?tr({state:e.thresholdEcdsaState,walletId:e.walletId}):void 0,i=er({state:e.thresholdEcdsaState}),a=t=>{let a=r||i;return a?Promise.resolve(a):(n||=nr({deps:t.deps,walletId:t.walletId,chainTarget:e.chainTarget}),n)},o=e=>(t||=a(e).then(t=>Un({deps:e.deps,walletId:e.walletId,request:e.request,senderIdentity:t})),t),s=e.chainTarget.kind;return await rr({...e,request:e.request},{targetKind:s,loadSigner:s===`tempo`?Qn:Zn,prepareRequestWithManagedNonce:async e=>{let t=await o(e);return await Wn({deps:e.deps,request:e.request,reservationInput:t,operation:e.nonceOperation})}})}let t=null,n=er({state:e.thresholdEcdsaState}),r=r=>n?Promise.resolve(n):(t||=nr({deps:r.deps,walletId:r.walletId,chainTarget:e.chainTarget}),t);return await rr({...e,request:e.request},{targetKind:`tempo`,loadSigner:Qn,prepareRequestWithManagedNonce:async e=>{let t=await r(e);return await $n({deps:e.deps,walletId:e.walletId,request:e.request,operation:e.nonceOperation,senderIdentity:t})}})}async function ar(e){return Ne({purpose:`transaction_signing`,source:je(e.persistedMaterial),workerCtx:e.workerCtx})}function or(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`[multichain] Missing wallet id for ready secp256k1 signing material`);let n=e.signerSession;if(t!==String(n.walletId))throw Error(`[multichain] ready secp256k1 material wallet identity mismatch`);let r=Math.floor(Number(e.expiresAtMs));if(!Number.isSafeInteger(r)||r<=Date.now())throw Error(`[multichain] ready secp256k1 authorization expiry is invalid`);let i={kind:`ready_secp256k1_signing_material`,walletId:t,signerSession:n,expiresAtMs:r,singleUseEmailOtpSession:e.singleUseEmailOtpSession};switch(e.authorization.kind){case`reusable_wallet_session`:if(e.credential.kind!==`reusable_wallet_session`)throw Error(`[multichain] exact Wallet Session authorization requires its operation credential`);return{...i,authorization:e.authorization,credential:e.credential};case`operation_step_up`:if(!e.operationStepUpPreparation)throw Error(`[multichain] operation step-up preparation is required`);return{...i,authorization:e.authorization,credential:e.credential,operationStepUpPreparation:e.operationStepUpPreparation}}}async function sr(e){let n=e.capability,r=n.manifest,i=n.material,a=e.runtime,o=i.publicFacts;if(!t(e.materialActivation,r.activation.materialActivation))return{kind:`unavailable`,reason:`material_activation_mismatch`};if(!t(a.materialActivation,r.activation.materialActivation))return{kind:`unavailable`,reason:`runtime_correlation_mismatch`};let s=r.signer.scope.targetMemberships.some(e=>d(e,o.chainTarget)),c=r.signer.scope.targetMemberships.find(t=>d(t,e.chainTarget));if(!s||!c||!d(a.chainTarget,c))return{kind:`unavailable`,reason:`chain_mismatch`};let l=te({publicFacts:o,chainTarget:c});if(!a.runtimePolicyScope)return{kind:`unavailable`,reason:`runtime_policy_scope_missing`};let u=await ar({persistedMaterial:i,workerCtx:e.workerCtx}),f;switch(u.kind){case`rehydrated`:f=u;break;case`device_link_required`:return{kind:`unavailable`,reason:`device_link_required`};case`corrupt`:return{kind:`unavailable`,reason:`material_corrupt`};default:return u}let p=a.normalSigning,m=Ze({routerAbState:p});return{kind:`ready`,material:ae({walletId:r.signer.walletId,materialActivation:r.activation.materialActivation,publicFacts:r.signer.registeredPublicFacts,transport:{kind:`threshold_ecdsa_signer_transport`,relayerUrl:a.relayerUrl,relayerKeyId:r.durableMaterial.roleLocalBinding.relayerKeyId,signingMaterial:m,relayerVerifyingShareB64u:l.relayerPublicKey33B64u},clientShare:{kind:`role_local_worker_share`,handle:f.liveHandle,material:{kind:`worker_loaded`,materialRef:f.materialRef}},routerAbEcdsaDerivationNormalSigning:{kind:`router_ab_ecdsa_derivation_normal_signing_hydrated_v1`,state:p,activeStateId:h(p)}})}}function cr(e){let n=gt({capability:e.capability,authorization:e.authorization,nowMs:e.nowMs}),r=n.authorization.session,i=n.authorization.operationCredential;if(r.walletId!==e.material.walletId||!t(e.material.materialActivation,e.capability.manifest.activation.materialActivation))throw Error(`Exact Wallet Session authorization wallet does not match hydrated material`);if(i.token.trim().length===0)throw Error(`Exact Wallet Session authorization is unavailable`);return or({walletId:e.material.walletId,signerSession:e.material,authorization:{kind:`reusable_wallet_session`,wallet_session_id:i.walletSessionId},credential:{kind:`reusable_wallet_session`,walletSessionToken:i.token,home:i.home,ownershipGeneration:i.ownershipGeneration},expiresAtMs:r.expiresAtMs,singleUseEmailOtpSession:!1})}function lr(e){return e.session.capabilitySubjects.some(n=>n.kind===`sign`&&n.keyFamily===`ecdsa_secp256k1`&&t(n.materialActivation,e.materialActivation))}function ur(e){let n=e.authorityRuntime,r=n.holderRuntime,i=n.session,a=n.operationCredential,o=r.activationReceipt.normalSigning,s=o.scope;if(i.walletId!==r.walletId||i.authorityId!==r.authorityId||i.authMethodId!==r.walletAuthMethodId||a.walletSessionId!==n.walletSessionId||i.expiresAtMs<=Date.now()||!lr({session:i,materialActivation:r.materialActivation})||s.wallet_id!==r.walletId||s.ecdsa_threshold_key_id!==r.ecdsaThresholdKeyId||!t(g(s.material_activation),r.materialActivation))throw Error(`[SigningEngine] active Wallet Authority session does not bind the ECDSA holder runtime`);let c=String(e.relayerUrl||``).trim();if(!c)throw Error(`[SigningEngine] active Wallet Authority ECDSA signing requires relayerUrl`);let u=ae({walletId:l(r.walletId),materialActivation:r.materialActivation,publicFacts:n.publicFacts,transport:{kind:`threshold_ecdsa_signer_transport`,relayerUrl:c,relayerKeyId:n.relayerKeyId,signingMaterial:Ze({routerAbState:o}),relayerVerifyingShareB64u:s.public_identity.server_public_key33_b64u},clientShare:{kind:`linked_holder_worker_share`,holderHandleId:r.holderHandleId},routerAbEcdsaDerivationNormalSigning:{kind:`router_ab_ecdsa_derivation_normal_signing_hydrated_v1`,state:o,activeStateId:h(o)}});return or({walletId:r.walletId,signerSession:u,authorization:{kind:`reusable_wallet_session`,wallet_session_id:a.walletSessionId},credential:{kind:`reusable_wallet_session`,walletSessionToken:a.token,home:a.home,ownershipGeneration:a.ownershipGeneration},expiresAtMs:i.expiresAtMs,singleUseEmailOtpSession:!1})}function X(e){return{kind:`blocked`,reason:e}}function dr(e){switch(e){case`email_otp`:return`email_otp`;case`login`:case`registration`:case`manual-bootstrap`:return`passkey`;default:throw Error(`[SigningEngine] unsupported sealed ECDSA source`)}}function Z(e){return String(e??``).trim()}function fr(e){let n=e.record.ecdsaRestore,r=e.manifest.durableMaterial;return Z(e.record.walletId)!==String(e.walletId)||!d(n.chainTarget,e.chainTarget)||!t(n.roleLocalMaterialRef.materialActivation,r.materialActivation)||!t(r.materialActivation,e.manifest.activation.materialActivation)?!1:Z(n.roleLocalMaterialRef.durableMaterialRef)===Z(r.durableMaterialRef)}function pr(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function mr(e,t){return e.kind===t.kind&&String(e.walletId)===String(t.walletId)&&String(e.authorityDigest)===String(t.authorityDigest)}function hr(e){return e.manifest.signer.scope.targetMemberships.some(t=>d(t,e.chainTarget))}function gr(e){let t=e.record.ecdsaRestore,n=e.manifest.durableMaterial,r=n.roleLocalBinding,i=n.roleLocalPublicFacts,a=t.routerAbEcdsaDerivationNormalSigning.scope,o=dr(t.source),s=Z(t.ecdsaThresholdKeyId)||Z(a.ecdsa_threshold_key_id),c=`recordKind`in e.record?Z(r.clientVerifyingPublicKey33B64u):Z(t.clientVerifyingShareB64u)||Z(a.public_identity.derivation_client_share_public_key33_b64u),l=Z(t.thresholdEcdsaPublicKeyB64u)||Z(a.public_identity.threshold_public_key33_b64u);return String(e.manifest.signer.walletId)===String(e.walletId)&&String(i.walletId)===String(e.walletId)&&hr(e)&&e.record.authMethod===o&&mr(t.authority,e.manifest.signer.authority)&&Z(t.roleLocalMaterialRef.bindingDigest)===Z(n.bindingDigest)&&Z(t.keyHandle)===Z(r.keyHandle)&&Z(t.keyHandle)===Z(i.keyHandle)&&s===Z(r.ecdsaThresholdKeyId)&&s===Z(i.ecdsaThresholdKeyId)&&c===Z(r.clientVerifyingPublicKey33B64u)&&c===Z(i.derivationClientSharePublicKey33B64u)&&l===Z(i.groupPublicKey33B64u)&&Z(t.relayerKeyId)===Z(r.relayerKeyId)&&pr(t.participantIds,r.participantIds)&&pr(t.participantIds,i.participantIds)&&Z(t.signingRootId)===Z(e.manifest.signer.signingRootId)&&Z(t.signingRootId)===Z(i.signingRootId)&&Z(t.signingRootVersion)===Z(e.manifest.signer.signingRootVersion)&&Z(t.signingRootVersion)===Z(i.signingRootVersion)&&Z(t.ethereumAddress).toLowerCase()===Z(i.ethereumAddress).toLowerCase()&&T(t.publicCapability,i.publicCapability)&&ee(a,{wallet_id:String(e.walletId),ecdsa_threshold_key_id:String(i.ecdsaThresholdKeyId),signing_root_id:String(i.signingRootId),signing_root_version:String(i.signingRootVersion),context:i.publicCapability.context,public_identity:i.publicCapability.public_identity,signing_worker:i.publicCapability.signer_set.selected_server,activation_epoch:i.publicCapability.activation_epoch,material_activation:_(n.materialActivation)})}function _r(e){let t=e.restore;if(t.source===`email_otp`){let n=Z(t.providerSubjectId),r=Z(t.emailHashHex),i=t.emailOtpAuthority,a=e.manifest.signer.authority;return!n||!r||!i||String(i.walletId)!==String(a.walletId)||String(i.factor.providerUserId)!==n||String(i.verifier.emailHashHex)!==r?null:{kind:`email_otp`,providerSubjectId:n,emailHashHex:r,emailOtpAuthority:{walletId:i.walletId,factor:i.factor,verifier:i.verifier,bindingId:a.walletAuthMethodId}}}let n=Z(t.rpId),r=Z(t.credentialIdB64u);return n&&r?{kind:`passkey`,rpId:n,credentialIdB64u:r}:null}function vr(e){if(e.length!==2)return null;let t=e[0],n=e[1];return!Number.isSafeInteger(t)||!Number.isSafeInteger(n)||t<=0||n<=0||t===n?null:[t,n]}function yr(e){let t=e.record.ecdsaRestore,n=_r({manifest:e.manifest,restore:t}),i=Z(e.record.relayerUrl).replace(/\/+$/g,``),a=Z(t.relayerKeyId),o=e.manifest.durableMaterial.roleLocalBinding.clientVerifyingPublicKey33B64u,s=Z(t.ecdsaThresholdKeyId)||Z(t.routerAbEcdsaDerivationNormalSigning.scope.ecdsa_threshold_key_id),c=Z(t.thresholdEcdsaPublicKeyB64u)||Z(t.routerAbEcdsaDerivationNormalSigning.scope.public_identity.threshold_public_key33_b64u),l=Z(t.keyHandle),u=Array.isArray(t.participantIds)?vr(t.participantIds):null,d;try{d=w(t.roleLocalMaterialRef)}catch{return null}let f=null;try{f=r(t.runtimePolicyScope)}catch{f=null}return!n||!i||!a||!o||!s||!c||!l||!u?null:{walletId:e.walletId,chainTarget:e.chainTarget,materialActivation:t.roleLocalMaterialRef.materialActivation,normalSigning:t.routerAbEcdsaDerivationNormalSigning,relayerUrl:i,relayerKeyId:a,clientVerifyingPublicKey33B64u:o,participantIds:u,ecdsaThresholdKeyId:s,thresholdEcdsaPublicKeyB64u:c,keyHandle:l,runtimePolicyScope:f,roleLocalMaterialRef:d,authBinding:n}}function br(e){let t=yr(e),n=Number(e.record.expiresAtMs),r=Number(e.record.remainingUses),i=Z(e.record.thresholdSessionIds.ecdsa),a=Z(e.record.storeKey);return!t||!a||!i||!Number.isSafeInteger(n)||n<=0||!Number.isSafeInteger(r)||r<0?null:{...t,kind:`exact_ecdsa_sealed_runtime_v1`,expiresAtMs:n,remainingUses:r,sealedRecord:{storeKey:a,thresholdSessionId:i,authMethod:e.record.authMethod}}}function xr(e){let t=e.sealedRecords.filter(t=>fr({manifest:e.manifest,walletId:e.walletId,chainTarget:e.chainTarget,record:t}));if(t.length===0)return X(`missing_material`);if(t.length>1)return X(`exact_record_conflict`);let n=br({manifest:e.manifest,walletId:e.walletId,chainTarget:e.chainTarget,record:t[0]});return n?gr({manifest:e.manifest,walletId:e.walletId,chainTarget:e.chainTarget,record:t[0]})?{kind:`resolved`,runtime:n}:X(`binding_mismatch`):X(`corrupt`)}function Sr(e){return e.manifest.signer.scope.targetMemberships.some(t=>d(t,e.chainTarget))}async function Cr(e){return(await e.ports.listActiveEcdsaCapabilityManifestsForWallet(e.walletId)).filter(t=>Sr({manifest:t,chainTarget:e.chainTarget}))}async function wr(e){let t=[],n=e.authMethod?[e.authMethod]:[`passkey`,`email_otp`];for(let r of n){let n=await e.ports.listExactSealedSessionsForWallet({walletId:String(e.walletId),filter:{authMethod:r,curve:`ecdsa`,chainTarget:e.chainTarget}}).catch(()=>[]);for(let e of n)e.curve===`ecdsa`&&t.push(e)}return t}async function Tr(e){if(!Sr({manifest:e.manifest,chainTarget:e.chainTarget}))return{kind:`blocked`,reason:`chain_mismatch`};let t=e.manifest.durableMaterial,n=t.roleLocalPublicFacts,r=Er(n.participantIds),i=String(e.relayerUrl).trim().replace(/\/+$/g,``);return!r||!i?{kind:`blocked`,reason:`corrupt`}:{kind:`resolved`,manifest:e.manifest,runtime:{kind:`exact_ecdsa_capability_runtime_v1`,walletId:e.manifest.signer.walletId,chainTarget:e.chainTarget,materialActivation:t.materialActivation,normalSigning:t.routerAbEcdsaDerivationNormalSigning,relayerUrl:i,relayerKeyId:String(t.roleLocalBinding.relayerKeyId),clientVerifyingPublicKey33B64u:t.roleLocalBinding.clientVerifyingPublicKey33B64u,participantIds:r,ecdsaThresholdKeyId:String(n.ecdsaThresholdKeyId),thresholdEcdsaPublicKeyB64u:n.groupPublicKey33B64u,keyHandle:String(n.keyHandle),runtimePolicyScope:t.runtimePolicyScope,roleLocalMaterialRef:{kind:`ecdsa_role_local_persisted_material_ref_v1`,durableMaterialRef:t.durableMaterialRef,bindingDigest:t.bindingDigest,materialActivation:t.materialActivation}}}}function Er(e){if(e.length!==2)return null;let t=e[0],n=e[1];return!Number.isSafeInteger(t)||!Number.isSafeInteger(n)||t<=0||n<=0||t===n?null:[t,n]}async function Dr(e,t,n){let r=await e.resolveSelectedWalletAuthority(String(t));if(r.kind!==`resolved`)return n;let i=String(r.authMethod.walletAuthMethodId),a=n.filter(e=>String(e.signer.authority.walletAuthMethodId)===i);return a.length>0?a:n}async function Or(e,t){let n=await Cr({ports:e,...t});if(n.length===0)return{kind:`blocked`,reason:`missing_capability`};let r=n.length>1?await Dr(e,t.walletId,n):n;if(r.length!==1)return{kind:`blocked`,reason:`exact_record_conflict`};let i=r[0],a=await wr({ports:e,...t}),o=xr({manifest:i,walletId:t.walletId,chainTarget:t.chainTarget,sealedRecords:a});return o.kind===`resolved`?{kind:`resolved`,manifest:i,runtime:o.runtime}:{kind:`blocked`,reason:o.reason}}function kr(e){return Or.bind(null,e)}async function Ar(e,t){let n=await e.listActiveEcdsaCapabilityManifestsForWallet(t.walletId),r=[];for(let e of n)for(let n of e.signer.scope.targetMemberships)n.kind===t.chain&&r.push({manifest:e,chainTarget:n});if(r.length===0)return{kind:`blocked`,reason:`missing_capability`};if(r.length>1)return{kind:`blocked`,reason:`exact_record_conflict`};let i=r[0],a=await wr({ports:e,walletId:t.walletId,chainTarget:i.chainTarget}),o=xr({manifest:i.manifest,walletId:t.walletId,chainTarget:i.chainTarget,sealedRecords:a});return o.kind===`resolved`?{kind:`resolved`,manifest:i.manifest,runtime:o.runtime}:{kind:`blocked`,reason:o.reason}}function jr(e){return Ar.bind(null,e)}async function Mr(e){let t=e.material,n=t.publicFacts.participantIds;if(n.length!==2)throw Error(`[chains] ECDSA operation step-up requires exactly two participants`);let r=String(e.operation.intent.operationId||``).trim(),i=Math.min(Date.now()+5*6e4,e.sessionExpiresAtMs);return await Pe({walletId:t.walletId,operationKind:`evm.sign_transaction`,operationId:r,operationDigests:e.operationDigests,materialActivation:t.materialActivation,normalSigningScope:t.routerAbEcdsaDerivationNormalSigning.state.scope,keyHandle:t.publicFacts.keyHandle,relayerKeyId:t.transport.relayerKeyId,participantIds:[Number(n[0]),Number(n[1])],expiresAtMs:i})}async function Nr(e){let t=Pr({authority:e.authority,authorization:e.authorization}),n=await Me({relayerUrl:e.relayerUrl,transport:{kind:`wallet_session`,credential:e.operationCredential},request:{kind:`router_ab_ecdsa_operation_step_up_v1`,operation:e.prepared.operation,proof:t}}),r={kind:`operation_step_up`,walletSessionToken:e.operationCredential.token,home:e.operationCredential.home,ownershipGeneration:e.operationCredential.ownershipGeneration};return or({walletId:e.material.walletId,signerSession:e.material,authorization:{kind:`operation_step_up`},credential:r,expiresAtMs:n.expires_at_ms,singleUseEmailOtpSession:!1,operationStepUpPreparation:e.prepared.operation})}function Pr(e){switch(e.authorization.kind){case`passkey`:{if(!x(e.authority))throw Error(`[chains] passkey step-up requires the exact passkey authority`);let t=e.authorization.credential;return{kind:`passkey`,authority:e.authority,webauthn_authentication:{id:t.id,rawId:t.rawId,type:t.type,authenticatorAttachment:t.authenticatorAttachment??null,response:{clientDataJSON:t.response.clientDataJSON,authenticatorData:t.response.authenticatorData,signature:t.response.signature,userHandle:t.response.userHandle??null},clientExtensionResults:null}}}case`email_otp`:if(!b(e.authority))throw Error(`[chains] Email OTP step-up requires the exact Email OTP authority`);return{kind:`email_otp`,authority:e.authority,challenge_id:e.authorization.challengeId,otp_code:e.authorization.otpCode}}}function Fr(e){return{kind:`active_wallet_authority`,method:e.auth.kind,accountId:String(e.walletId),intent:`transaction_sign`,curve:`ecdsa`,walletSessionId:e.operationCredential.walletSessionId,authorityId:e.authorityId,authMethodId:e.walletAuthMethodId,expiresAtMs:e.session.expiresAtMs}}function Ir(e){switch(e.factor.kind){case`voiceid`:return`voiceid`;case`passkey`:return`passkey`;case`email_otp`:return`email_otp`;default:throw e.factor,Error(`[SigningEngine] unsupported wallet authorization factor`)}}function Lr(e){let n=e.capability.manifest;return n.signer.walletId===e.scope.walletId&&t(n.activation.materialActivation,e.scope.materialActivation)&&n.signer.scope.targetMemberships.some(t=>d(t,e.scope.chainTarget))}function Rr(e){let n=e.capability.manifest.activation.materialActivation;return e.session.capabilitySubjects.filter(e=>e.kind===`sign`&&e.keyFamily===`ecdsa_secp256k1`&&t(e.materialActivation,n)).length===1}async function zr(e){if(!Lr(e))throw Error(`[SigningEngine] exact ECDSA Wallet Session material changed`);let n=e.ports,r=await n.resolveSelectedWalletAuthority(String(e.scope.walletId)),i=Vr(r,e.scope.walletId);if(i||r.kind!==`resolved`)throw Br(i??`selected_authority_invalid`);let a=await S({authority:e.capability.authority}),o=e.capability.manifest.signer.authority,s=r.authority.signerActivations.ecdsa;if(a.walletId!==o.walletId||a.walletAuthMethodId!==o.walletAuthMethodId||a.authorityDigest!==o.authorityDigest||o.walletId!==r.authority.walletId||o.walletAuthMethodId!==r.authMethod.walletAuthMethodId||!s||!t(s.materialActivation,e.scope.materialActivation))throw Error(`[SigningEngine] exact ECDSA Wallet Session material changed`);let c=await n.readExactWithOperationCredential({walletId:e.scope.walletId,authorityId:r.authority.authorityId,authMethodId:r.authMethod.walletAuthMethodId});if(c.kind!==`found`)throw Br(c.kind===`missing`?`wallet_session_missing`:`wallet_session_upgrade_required`);let l=c.record,u=Hr({session:l,operationCredential:c.operationCredential,walletId:e.scope.walletId,authority:r.authority,authMethod:r.authMethod,capability:e.capability});if(u)throw Br(u);return{credential:c.operationCredential,expiresAtMs:l.expiresAtMs}}function Br(e){return Error(`[SigningEngine] exact ECDSA Wallet Session is unavailable: ${e}`)}function Vr(e,t){return e.kind===`resolved`?e.selection.walletId!==t||e.authMethod.walletId!==t||e.authority.walletId!==t||e.selection.walletAuthMethodId!==e.authMethod.walletAuthMethodId||e.authMethod.walletAuthorityId!==e.authority.authorityId?`authority_identity_mismatch`:e.selection.lockState===`unlocked`?e.authMethod.status===`active`?e.authority.state===`active`?null:`authority_inactive`:`auth_method_inactive`:`wallet_locked`:e.kind===`missing_selection`?`selected_authority_missing`:`selected_authority_invalid`}function Hr(e){let{session:t}=e;return t.walletId!==e.walletId||t.authorityId!==e.authority.authorityId||t.authMethodId!==e.authMethod.walletAuthMethodId?`wallet_session_identity_mismatch (authority or method)`:t.authorityDigestB64u===e.authority.authorityDigestB64u?t.authorityRevocationEpoch===e.authority.revocationEpoch?e.operationCredential.token.trim()?t.expiresAtMs<=Date.now()?`wallet_session_expired`:Rr({session:t,capability:e.capability})?null:`wallet_session_capability_mismatch`:`wallet_session_identity_mismatch (operation credential)`:`wallet_session_identity_mismatch (authority revocation epoch)`:`wallet_session_identity_mismatch (authority digest)`}async function Ur(e,t){let n=await zr(e);return await Mr({operation:t.operation,operationDigests:t.operationDigests,material:t.material,sessionExpiresAtMs:n.expiresAtMs})}async function Wr(e,t){return await e.deps.withThresholdEcdsaSigningQueue({queueKey:Le({materialActivation:e.materialActivation}),walletId:e.walletId,enabled:!0,...e.shouldAbort?{shouldAbort:e.shouldAbort}:{},task:t})}function Gr(e){let t=String(e.seamsWebConfigs.network.relayer?.url||``).trim();if(!t)throw Error(`[SigningEngine] EVM-family signing requires relayerUrl`);return t}async function Kr(e){let t=await Fe({ports:e.deps.activeWalletAuthorityEcdsaRuntimeReadPorts,input:{walletId:e.signer.walletId,chainTarget:e.signer.chainTarget,requiredCapability:`sign`,materialActivation:e.signer.materialActivation,nowMs:Date.now()}});if(t.kind!==`resolved`)throw Error(`[SigningEngine] active Wallet Authority ECDSA runtime is ${t.reason}`);let n=t.runtime;if(n.authorityId!==e.prepared.authorityId||n.walletAuthMethodId!==e.prepared.walletAuthMethodId||n.authorityDigestB64u!==e.prepared.authorityDigestB64u||n.authorityRevocationEpoch!==e.prepared.authorityRevocationEpoch||n.walletSessionId!==e.prepared.walletSessionId||n.publicFacts.keyHandle!==e.signer.keyHandle)throw Error(`[SigningEngine] active Wallet Authority ECDSA runtime was replaced`);return n}function qr(e){return t(e.currentMaterialActivation,e.preparedMaterialActivation)?null:{kind:`superseded`,supersessionKind:`material_activation_replaced`,preparedMaterialActivation:e.preparedMaterialActivation,currentMaterialActivation:e.currentMaterialActivation}}function Jr(e){let t=e.preparedCapability.manifest,n=t.activation.materialActivation,r=e.currentManifest.activation.materialActivation,i=qr({preparedMaterialActivation:n,currentMaterialActivation:r});if(i)return i;let a=t.signer,o=e.currentManifest.signer;return String(t.identity.manifestId)===String(e.currentManifest.identity.manifestId)&&Number(t.identity.manifestRevision)===Number(e.currentManifest.identity.manifestRevision)&&String(a.capability)===String(o.capability)&&String(a.authority.walletId)===String(o.authority.walletId)&&String(a.authority.authorityDigest)===String(o.authority.authorityDigest)?null:{kind:`superseded`,supersessionKind:`capability_authority_replaced`,preparedMaterialActivation:n,currentMaterialActivation:r}}function Yr(e){let n=e.preparedAuthorization,r=e.currentAuthorization;return r&&n.selectedAuthority.authorityId===r.selectedAuthority.authorityId&&n.selectedAuthMethod.kind===r.selectedAuthMethod.kind&&n.selectedAuthMethod.walletAuthMethodId===r.selectedAuthMethod.walletAuthMethodId&&n.session.walletId===r.session.walletId&&n.session.authorityId===r.session.authorityId&&n.session.authMethodId===r.session.authMethodId&&n.session.authorizationId===r.session.authorizationId&&n.session.quotaId===r.session.quotaId&&(n.session.authorityDigestB64u===r.session.authorityDigestB64u||p(n.selectedAuthority,r.selectedAuthority)&&i(n.session,r.session))&&n.session.issuedAtMs===r.session.issuedAtMs&&n.session.expiresAtMs===r.session.expiresAtMs&&n.session.authorityRevocationEpoch===r.session.authorityRevocationEpoch&&n.operationCredential.walletSessionId===r.operationCredential.walletSessionId&&n.operationCredential.token===r.operationCredential.token&&dt(n.runtime,r.runtime)&&t(r.runtime.materialActivation,e.materialActivation)?null:{kind:`superseded`,supersessionKind:`reusable_authorization_replaced`,preparedMaterialActivation:e.materialActivation,currentMaterialActivation:e.materialActivation}}async function Xr(e){let t=await Tr({manifest:e.capability.manifest,chainTarget:e.chainTarget,relayerUrl:e.relayerUrl});if(t.kind!==`resolved`)return{kind:`failed`,failure:{kind:`unavailable`,reason:`runtime_correlation_mismatch`}};let n=Jr({preparedCapability:e.capability,currentManifest:t.manifest});if(n)return{kind:`superseded`,replacement:n};let r=await sr({capability:e.capability,runtime:t.runtime,chainTarget:e.chainTarget,materialActivation:e.materialActivation,workerCtx:e.workerCtx});return r.kind===`unavailable`?{kind:`failed`,failure:r}:e.candidateAuthorization?{kind:`ready`,value:{kind:`material_from_canonical_capability`,material:cr({material:r.material,capability:e.capability,authorization:e.candidateAuthorization,nowMs:Date.now()})}}:{kind:`authorization_required`,requirement:{kind:`material_for_step_up`,material:r.material}}}async function Zr(e,t){let n=await e.resolve(e.scope,de.fromPrepare({relayerUrl:e.relayerUrl,operationCredential:e.prepared.operationCredential},t));if(Yr({preparedAuthorization:e.prepared,currentAuthorization:n,materialActivation:e.scope.materialActivation}))throw Error(`Wallet Session authority changed before client signing`)}async function Qr(e,t){let n=await Kr(e);if(t.walletSessionId!==n.operationCredential.walletSessionId||t.quotaId!==n.session.quotaId||t.quotaLifecycle!==`active`||t.remainingUses<=0||t.expiresAtMs<=Date.now()||t.expiresAtMs!==n.session.expiresAtMs||!a(t.authorization,n.session))throw Error(`Linked Wallet Session authority changed before client signing`)}async function $r(){throw Error(`Operation step-up cannot reconcile a reusable Wallet Session`)}async function ei(e){let[t,n]=await Promise.all([Yn(),Xn()]),r=e.deps.getSignerWorkerContext(),i=e.deps.touchConfirm.getContext(),a=l(e.walletSession.walletId),o=Gr(e.deps),s=e.senderSignatureAlgorithm===`secp256k1`?M(e.preparedSession.kind===`authorized`?e.preparedSession.signingLane.identity:e.preparedSession.identity,`ECDSA signing material hydration`):void 0;if(e.activeWalletAuthority&&!s)throw Error(`[SigningEngine] active Wallet Authority runtime requires a threshold ECDSA signer`);let c=s&&!e.activeWalletAuthority?await e.deps.resolveCanonicalEcdsaSigningCapability({walletId:s.walletId,chainTarget:s.chainTarget,materialActivation:s.materialActivation}):void 0,u=e.preparedSession?.kind===`authorized`?e.preparedSession.selection.lane.authorization:null,d=c&&u&&u.runtime.remainingUses>0&&L({capability:c,authorization:u,nowMs:Date.now()})?u:null,f=s&&c&&!e.activeWalletAuthority?{walletId:s.walletId,chainTarget:s.chainTarget,materialActivation:s.materialActivation}:void 0,p=!e.activeWalletAuthority&&c&&f?{...e.emailOtpSigningForFlow?{emailOtpSigning:e.emailOtpSigningForFlow}:{},reusableAuthorization:d?{kind:`active`}:{kind:`absent`,requiredFactor:Ir(c.authority)},operationStepUp:{prepare:Ur.bind(void 0,{ports:e.deps.activeWalletAuthorityEcdsaRuntimeReadPorts,scope:f,capability:c}),authorize:async({authorization:t,prepared:n,material:r})=>{e.onAuthSideEffectStarted?.(t.kind===`passkey`?`passkey_reauth`:`email_otp_challenge`);let i=await zr({ports:e.deps.activeWalletAuthorityEcdsaRuntimeReadPorts,scope:f,capability:c});return await Nr({relayerUrl:o,authority:c.authority,authorization:t,prepared:n,material:r,operationCredential:i.credential})}},...e.onAuthSideEffectStarted?{onAuthSideEffectStarted:e.onAuthSideEffectStarted}:{}}:void 0,m=$r;e.activeWalletAuthority&&s?m=Qr.bind(null,{deps:e.deps,prepared:e.activeWalletAuthority.runtime,signer:s}):d&&f&&(m=Zr.bind(null,{resolve:e.deps.resolveActiveEcdsaWalletSessionAuthorization,scope:f,prepared:d,relayerUrl:o}));let h=new t({reconcileSession:m,beforeSigning:e.deps.beforeSigning,getRpId:()=>i.touchIdPrompt.getRpId(),workerCtx:r,shouldAbort:e.shouldAbort}),g=e.activeWalletAuthority,_=g&&s?{kind:`active_wallet_authority`,confirmationAuthPlan:g.confirmationAuthPlan,sign:async t=>{if(String(g.intent.operationId)!==t.operationId)throw Error(`[SigningEngine] active Wallet Authority signing operation identity changed`);return await Wr({deps:e.deps,walletId:s.walletId,materialActivation:s.materialActivation,...e.shouldAbort?{shouldAbort:e.shouldAbort}:{}},async()=>{let n=ur({authorityRuntime:await Kr({deps:e.deps,prepared:g.runtime,signer:s}),chainTarget:s.chainTarget,relayerUrl:o});return await h.signReady({kind:`digest`,algorithm:`secp256k1`,digest32:t.signingDigest32},n,{intent:g.intent,authPlan:g.confirmationAuthPlan},t.operationDigests)})}}:void 0;return{flowArgs:{ctx:i,touchConfirm:e.deps.touchConfirm,workerCtx:r,walletId:a,onEvent:e.onEvent,engines:{secp256k1:h,webauthnP256:new n(r,e.deps.beforeSigning)},...s&&c?{runEcdsaMaterialUse:Wr.bind(null,{deps:e.deps,walletId:s.walletId,materialActivation:s.materialActivation,...e.shouldAbort?{shouldAbort:e.shouldAbort}:{}}),resolveEcdsaSigningMaterialPlan:async()=>await Xr({capability:c,candidateAuthorization:d,walletId:s.walletId,chainTarget:s.chainTarget,materialActivation:s.materialActivation,relayerUrl:o,workerCtx:r})}:{},..._?{authorization:_}:{},...e.signingSessionPlan?{signingSessionPlan:e.signingSessionPlan}:{},...e.signingOperation?{signingOperation:e.signingOperation}:{},onSigningOperationTransition:e.onSigningOperationTransition||It,...p?{thresholdEcdsaStepUpRuntime:p}:{},confirmationConfigOverride:e.confirmationConfigOverride}}}function ti(e){return e instanceof ke?e.authorizationDecision:void 0}async function ni(e){switch(e.decision.retryMode){case`await_admission_owner_completion`:return await e.signingSessionCoordinator.runWalletSessionQuotaAdmissionRetry({queueKey:e.queueKey,refresh:e.rereadAuthoritativeReadiness,retryAfterRefresh:e.rereadAuthoritativeReadiness});case`email_otp_single_operation_step_up`:case`fresh_auth`:return await e.signingSessionCoordinator.runWalletSessionQuotaAdmissionRetry({queueKey:e.queueKey,refresh:e.performFreshAuth,retryAfterRefresh:e.rereadAuthoritativeReadiness});default:return ri(e.decision)}}function ri(e){throw Error(`[SigningEngine][ecdsa] unsupported fresh-auth retry mode: ${String(e)}`)}function ii(e){return{kind:`do_not_retry`,trigger:e.trigger,sideEffectState:e.sideEffectState,blockedReason:e.blockedReason}}function Q(e,t){return ii({trigger:e.trigger,sideEffectState:e.sideEffectState,blockedReason:t})}function ai(e){if(e.current===`threshold_reconnect_started`)return e.current;switch(e.sideEffect){case`auth_prompt_shown`:case`email_otp_challenge`:case`passkey_reauth`:return e.current===`no_auth_side_effect_started`?`auth_prompt_shown`:e.current;case`auth_confirmed`:return`auth_confirmed`;case`threshold_reconnect`:return`threshold_reconnect_started`}}function oi(e){if(e.alreadyRetryingFreshAuth)return Q(e,`already_retrying`);if(e.senderSignatureAlgorithm!==`secp256k1`)return Q(e,`non_secp256k1_sender`);let t=ti(e.error),n=De(e.error),r=e.trigger===`wallet_signing_budget_exhausted`?t?.kind===`step_up_required`?Ee(n??{kind:`exhausted`,source:`server_prepare`,detail:`Server requires owner operation step-up`}):n?.kind===`in_flight`?Ee(n):null:null,i=r?.kind===`request_fresh_step_up`||r?.kind===`wait_and_retry_admission`;if(e.sideEffectState!==`no_auth_side_effect_started`&&!i)return Q(e,`auth_side_effect_started`);if(e.trigger===`wallet_session_reauthorization_required`){if(e.hasEmailOtpSigningPlan||e.hasStepUpAuthPlan)return Q(e,`signing_auth_plan_already_selected`);if(t?.kind!==`step_up_required`)return Q(e,`error_not_retryable`);if(e.accountAuth.primaryAuthMethod!==c.emailOtp&&e.accountAuth.primaryAuthMethod!==c.passkey)return Q(e,`unsupported_primary_auth`)}else{if(!r)return Q(e,`error_not_retryable`);if(e.hasStepUpAuthPlan&&r.kind!==`request_fresh_step_up`&&r.kind!==`wait_and_retry_admission`)return Q(e,`step_up_auth_plan_already_selected`);if(r.kind===`wait_and_retry_admission`)return e.admissionRetryState.kind===`authoritative_readiness_reread`?Q(e,`authoritative_readiness_still_in_flight`):{kind:`retry`,trigger:e.trigger,sideEffectState:e.sideEffectState,retryMode:`await_admission_owner_completion`,admissionDecision:r};if(e.activeSigningAuthMethod===c.emailOtp)return{kind:`retry`,trigger:e.trigger,sideEffectState:e.sideEffectState,retryMode:`email_otp_single_operation_step_up`,admissionDecision:r}}return{kind:`retry`,trigger:e.trigger,sideEffectState:e.sideEffectState,retryMode:`fresh_auth`}}function si(e){return Ae(e.error)?.kind===`expired`?e.candidate.kind===`unavailable`?{kind:`expired_without_exact_lane`}:{kind:`authoritative_expiry`,state:ze({source:{kind:`ecdsa`,laneIdentity:e.candidate.identity,authorization:e.candidate.authorization},expiresAtMs:e.candidate.expiresAtMs,detectedAtMs:e.detectedAtMs})}:{kind:`not_expired`}}async function ci(e){switch(e.context.kind){case`not_expired`:case`expired_without_exact_lane`:return;case`authoritative_expiry`:if((await e.coordinator.invalidateExpiredWalletSession({state:e.context.state,source:E.serverRejection})).kind===`unavailable`)throw Error(`[SigningEngine][ecdsa] expired Wallet Session cleanup failed`);return;default:return li(e.context)}}function li(e){throw Error(`[SigningEngine][ecdsa] unsupported Wallet Session expiry context: ${String(e)}`)}async function ui(e){let t=oi({trigger:`wallet_session_reauthorization_required`,error:e.error,senderSignatureAlgorithm:e.senderSignatureAlgorithm,accountAuth:e.accountAuth,alreadyRetryingFreshAuth:e.alreadyRetryingFreshEmailOtpAuth,hasEmailOtpSigningPlan:e.hasEmailOtpSigningPlan,sideEffectState:e.sideEffectState});if(e.onDecision?.(t),t.kind!==`retry`)return null;await ci({context:e.expiryContext,coordinator:e.signingSessionCoordinator});let n=e.accountAuth.primaryAuthMethod===c.emailOtp;return K(e.onEvent,{phase:n?D.STEP_06_AUTH_EMAIL_OTP_CHALLENGE_STARTED:D.STEP_09_THRESHOLD_SESSION_RECONNECT_STARTED,status:`running`,walletId:e.walletId,message:n?`Signing session expired; requesting Email OTP reauthorization`:`Signing session expired; requesting passkey reauthorization`,interaction:{kind:`none`,overlay:`none`},data:{chain:e.chain,reason:`threshold_session_expired`}}),await e.retry()}function di(){let e=n(32,`EVM family signing operation IDs`);return se.signingOperation(`evm-family-sign:${e}`)}function fi(e){return e?{planningOperationId:e,confirmationOperationId:e,callerProvided:!0}:{planningOperationId:di(),callerProvided:!1}}function pi(e){return e.confirmationOperationId=e.confirmationOperationId||di(),e.confirmationOperationId}function mi(e,t,n){e.callerProvided&&n.bindCallerProvidedOperationIdToFingerprint({operationId:e.planningOperationId,operationFingerprint:t})}function hi(e){switch(e.publicIdentityContinuity.kind){case`lane_identity_only`:return e.laneThresholdOwnerAddress;case`verified_material_identity`:if(e.publicIdentityContinuity.verifiedMaterialThresholdOwnerAddress!==e.laneThresholdOwnerAddress)throw Error(`[SigningEngine][ecdsa] prepared material owner address does not match the exact signing lane`);return e.laneThresholdOwnerAddress;default:throw e.publicIdentityContinuity,Error(`[SigningEngine][ecdsa] unsupported prepared public identity state`)}}function gi(e){return{kind:`prepared`,thresholdOwnerAddress:hi(e)}}var _i=e({reconcileEvmFamilyNonceLane:()=>An,reconcileTempoNonceLane:()=>ki,reportEvmFamilyBroadcastAccepted:()=>Tn,reportEvmFamilyBroadcastRejected:()=>Dn,reportEvmFamilyDroppedOrReplaced:()=>kn,reportEvmFamilyFinalized:()=>On,reportTempoBroadcastAccepted:()=>Ti,reportTempoBroadcastRejected:()=>Ei,reportTempoDroppedOrReplaced:()=>Oi,reportTempoFinalized:()=>Di,signEvmFamily:()=>wi});function vi(e){return!e.prepared||e.prepared.kind!==`authorized`?{kind:`unavailable`}:{kind:`exact_ecdsa_lane`,identity:N(e.prepared.signingLane),authorization:e.prepared.signingLane.authorization,expiresAtMs:e.prepared.signingLane.authorization.session.expiresAtMs}}function yi(e){let t=e.prepared.signingLane.authorization.session.authorizationId;return Oe({walletId:e.walletId,materialActivationId:e.prepared.signingLane.materialActivation.activationId,authorizationId:t,authorityKey:ce(e.prepared.signingLane.auth),targetKey:u(e.prepared.signingLane.chainTarget)})}function bi(e){if(e.kind!==`authorization_required`||e.candidate.source!==`active_wallet_authority`)return null;let t=Fr(e.candidate.runtime);return{runtime:e.candidate.runtime,intent:e.intent,confirmationAuthPlan:t}}function xi(e){let t=e.chainTarget.kind===`tempo`?`Sign Tempo Transaction`:`Sign EVM Transaction`,n={request:e.request,signerAccount:String(e.walletSession.walletId),title:t,subtitle:``};return e.request.kind===`eip1559`?He({...n,request:e.request}):We({...n,request:e.request})}async function Si(e){let t=$.bind(null,e.deps,e.signingArgs,{admissionRetryState:{kind:`authoritative_readiness_reread`},forceFreshAuth:!1,operationIds:e.operationIds,retryingFreshAuth:e.retryingFreshAuth,signingSessionCoordinator:e.signingSessionCoordinator}),n=$.bind(null,e.deps,e.signingArgs,{admissionRetryState:{kind:`initial_admission`},forceFreshAuth:!0,operationIds:e.operationIds,retryingFreshAuth:!0,signingSessionCoordinator:e.signingSessionCoordinator});return await ni({decision:e.decision,queueKey:e.queueKey,signingSessionCoordinator:e.signingSessionCoordinator,rereadAuthoritativeReadiness:t,performFreshAuth:n})}function Ci(e){let t=e.accountAuth.primaryAuthMethod===c.emailOtp;K(e.onEvent,{phase:t?D.STEP_06_AUTH_EMAIL_OTP_CHALLENGE_STARTED:D.STEP_09_THRESHOLD_SESSION_RECONNECT_STARTED,status:`running`,walletId:e.walletId,message:t?`Signing session needs reauthorization; requesting Email OTP`:`Signing session needs reauthorization; requesting passkey`,interaction:{kind:`none`,overlay:`none`},data:{chain:e.chain,reason:`wallet_signing_budget_reserved`}})}async function wi(e,t){let n=s(e.touchConfirm.getContext().surfaceMeasurementBinding);n&&(n.assertPending(),e={...e,beforeSigning:n.beforeSigning});let r={admissionRetryState:{kind:`initial_admission`},operationIds:fi(t.signingOperationId)};await e.touchConfirm.openTransactionPreparationModal({chain:`evm_family`,walletLabel:String(t.walletSession.walletId),model:xi(t),confirmationConfigOverride:t.confirmationConfigOverride});try{return await $(e,t,r)}finally{e.touchConfirm.closeTransactionPreparationModal()}}async function $(e,t,n){Ct(t.shouldAbort);let r=l(t.walletSession.walletId),i=xt({request:t.request,chainTarget:t.chainTarget});await yt(e.ensureSealedRefreshStartupParity,{walletId:r,chainTarget:i});let a=i.kind,o=i,c,u,d,f,p,m={walletId:r,chain:a,chainTarget:o,senderSignatureAlgorithm:t.request.senderSignatureAlgorithm},h=n.signingSessionCoordinator||e.signingSessionCoordinator;if(!h)throw Error(`[SigningEngine][ecdsa] production signing session coordinator is required`);let g=n.operationIds||fi(t.signingOperationId),_=await qe({kind:`evm-family:${a}`,payload:{walletId:r,chainTarget:o,request:t.request}}),ee=ye(_);mi(g,_,h);let v=()=>pi(g),y=()=>({operationId:v(),operationFingerprint:_,intent:oe.TransactionSign}),b=e=>void 0,x=`no_auth_side_effect_started`,S=e=>{x=ai({current:x,sideEffect:e})},C=(e,t)=>{let n=t instanceof Error?t.message:String(t||`unknown error`);m.freshAuthRetry={decision:e,sideEffectState:x,errorMessage:n},P(`evm-family`,{stage:`fresh_auth_retry.decision`,walletId:r,chain:a,chainTarget:o,decision:e,sideEffectState:x,errorMessage:n})},te=()=>(S(`auth_prompt_shown`),v());t.request.senderSignatureAlgorithm===`secp256k1`?(f=await Sn({deps:e,walletSession:t.walletSession,signingTarget:i,signingOperation:y(),diagnostics:m,signingSessionCoordinator:h,forceFreshAuth:n.forceFreshAuth===!0}),p=bi(f)??void 0,u=f.kind===`authorized`?f.signingLane:void 0,d=f.authMethod,c=f.kind===`authorized`?f.accountAuth:await Pt({senderSignatureAlgorithm:`secp256k1`,signerAuthMethod:f.authMethod}),P(`evm-family`,{stage:`ecdsa_attempt.prepared`,walletId:r,chain:a,chainTarget:o,...b(f)?{evmFamilyKeyFingerprint:b(f)}:{},authorizationState:f.kind,authMethod:d,lane:U(u)})):c=await Pt({senderSignatureAlgorithm:t.request.senderSignatureAlgorithm});let w=c;Ct(t.shouldAbort);let ne=e.requestEmailOtpTransactionSigningChallenge,T={confirmedDeps:{...e,requestEmailOtpTransactionSigningChallenge:ne},walletSession:t.walletSession,chain:a,accountAuth:w,operationFingerprintDigest:ee,onEvent:t.onEvent},E=()=>{if(f)return f;throw Error(`[SigningEngine][ecdsa] prepared signing session is required`)},re=()=>t.request.senderSignatureAlgorithm===`secp256k1`?E():void 0,D=async i=>!Ve(i)||n.reResolvedAfterSupersession?null:(P(`evm-family`,{stage:`ecdsa_attempt.material_superseded`,walletId:r,chain:a,chainTarget:o,supersessionKind:i.superseded.supersessionKind,preparedMaterialActivationId:String(i.superseded.preparedMaterialActivation.activationId),currentMaterialActivationId:String(i.superseded.currentMaterialActivation.activationId)}),await $(e,t,{admissionRetryState:{kind:`initial_admission`},operationIds:g,signingSessionCoordinator:h,reResolvedAfterSupersession:!0,...n.retryingFreshAuth?{retryingFreshAuth:!0}:{}})),ie=async()=>t.request.senderSignatureAlgorithm===`secp256k1`?await(async()=>{let t=E();return p?{signingAuthPlan:p.confirmationAuthPlan}:t.kind===`authorized`?await Wt({...T,chainTarget:i,senderSignatureAlgorithm:`secp256k1`,ecdsaAuthorization:`reusable_wallet_session`,preparedOperation:t.preparedOperation}):await(async()=>{let n=M(t.identity,`auth-neutral ECDSA step-up planning`),r=await e.resolveCanonicalEcdsaSigningCapability({walletId:n.walletId,chainTarget:n.chainTarget,materialActivation:n.materialActivation});return await Wt({...T,chainTarget:i,senderSignatureAlgorithm:`secp256k1`,ecdsaAuthorization:`operation_step_up`,capability:r,materialActivation:n.materialActivation,operationFingerprint:_})})()})():await Wt({...T,chainTarget:i,senderSignatureAlgorithm:t.request.senderSignatureAlgorithm}),ae=async()=>{let{signingAuthPlan:n,signingSessionPlan:r,emailOtpSigning:i}=await ie(),a=i?{prepare:i.prepare,...i.resend?{resend:i.resend}:{}}:void 0,{flowArgs:s}=await ei({deps:e,walletSession:t.walletSession,request:t.request,chainTarget:o,...t.request.senderSignatureAlgorithm===`secp256k1`?{senderSignatureAlgorithm:t.request.senderSignatureAlgorithm,preparedSession:E(),...p?{activeWalletAuthority:p}:{}}:{senderSignatureAlgorithm:t.request.senderSignatureAlgorithm},...r?{signingSessionPlan:r}:{},signingOperation:y(),onSigningOperationTransition:It,...a?{emailOtpSigningForFlow:a}:{},confirmationConfigOverride:t.confirmationConfigOverride,shouldAbort:t.shouldAbort,onEvent:t.onEvent,onAuthSideEffectStarted:S});return{signingAuthPlan:n,signingSessionPlan:r,emailOtpSigning:i,flowArgs:s}},O;try{O=await ae()}catch(e){let t=await D(e);if(t)return t;throw e}let{signingAuthPlan:k,emailOtpSigning:se,flowArgs:ce}=O;s(e.touchConfirm.getContext().surfaceMeasurementBinding)?.assertAuthMethodPolicy(k.method);let le=async i=>await ui({error:i,walletId:r,chain:t.request.chain,senderSignatureAlgorithm:t.request.senderSignatureAlgorithm,accountAuth:w,alreadyRetryingFreshEmailOtpAuth:n.retryingFreshAuth,hasEmailOtpSigningPlan:!!se,sideEffectState:x,signingSessionCoordinator:h,expiryContext:si({error:i,candidate:vi({prepared:f}),detectedAtMs:Date.now()}),onDecision:e=>C(e,i),onEvent:t.onEvent,retry:async()=>await $(e,t,{admissionRetryState:{kind:`initial_admission`},forceFreshAuth:!0,operationIds:g,retryingFreshAuth:!0,signingSessionCoordinator:h})}),ue=async i=>{if(Ve(i))return await D(i)||null;let a=await le(i);if(a)return a;let o=oi({trigger:`wallet_signing_budget_exhausted`,error:i,senderSignatureAlgorithm:t.request.senderSignatureAlgorithm,accountAuth:w,activeSigningAuthMethod:E().authMethod,admissionRetryState:n.admissionRetryState,alreadyRetryingFreshAuth:n.retryingFreshAuth,hasStepUpAuthPlan:Ke(k)||Ge(k),sideEffectState:x});if(C(o,i),o.kind!==`retry`)return null;let s=E();return s.kind===`authorized`?(o.retryMode!==`await_admission_owner_completion`&&Ci({walletId:r,chain:t.request.chain,accountAuth:w,onEvent:t.onEvent}),await Si({deps:e,signingArgs:t,decision:o,queueKey:yi({walletId:r,prepared:s}),operationIds:g,retryingFreshAuth:n.retryingFreshAuth===!0,signingSessionCoordinator:h})):null},A=re(),de={...y(),accountId:String(r)};if(A){let e=b(A);P(`evm-family`,{stage:`ecdsa_attempt.nonce_operation_prepared`,walletId:r,chain:a,chainTarget:o,...e?{evmFamilyKeyFingerprint:e}:{},...A.kind===`authorized`?{walletSessionId:A.signingLane.authorization.operationCredential.walletSessionId}:{},materialActivationId:A.kind===`authorized`?A.signingLane.materialActivation.activationId:A.candidate.materialActivation.activationId})}let j=re(),fe=j&&!p?{kind:`required`,authPlan:{kind:`planned`,signingAuthPlan:k},operation:{intent:j.kind===`authorized`?j.transactionOperation.intent:j.intent,authPlan:k},runtime:(()=>{let e=ce.thresholdEcdsaStepUpRuntime;if(!e)throw Error(`[SigningEngine][ecdsa] prepared executor requires threshold step-up runtime`);return e})()}:{kind:`not_required`},N;return N=j?gi({laneThresholdOwnerAddress:j.kind===`authorized`?j.signingLane.key.thresholdOwnerAddress:j.candidate.key.thresholdOwnerAddress,publicIdentityContinuity:{kind:`lane_identity_only`}}):{kind:`not_required`},await ir({deps:e,walletId:r,request:t.request,chainTarget:o,flowArgs:ce,nonceOperation:de,thresholdEcdsaState:N,onConfirmationDisplayed:te,thresholdEcdsaStepUp:fe,retryWithFreshEmailOtpAuth:ue})}async function Ti(e,t){await Tn(e,t)}async function Ei(e,t){await Dn(e,t)}async function Di(e,t){await On(e,t)}async function Oi(e,t){await kn(e,t)}async function ki(e,t){return await An(e,t)}export{lt as _,Di as a,Ze as b,jr as c,xr as d,vt as f,mt as g,_t as h,Oi as i,kr as l,gt as m,Ti as n,wi as o,R as p,Ei as r,_i as s,ki as t,Tr as u,pt as v,ht as y};