@seams/wallet 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
  3. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
  4. package/dist/esm/SeamsWeb/walletIframe/client/router.js +95 -38
  5. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +16 -0
  6. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
  8. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
  9. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +1 -0
  10. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +27 -4
  11. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
  12. package/dist/esm/core/authMethods/plugins.js +8 -2
  13. package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
  14. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
  15. package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
  17. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
  19. package/dist/esm/core/ui/messages.js +17 -0
  20. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +35 -22
  21. package/dist/esm/react/components/AccountMenuButton/AccountSettingsDialog.js +157 -0
  22. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +13 -1
  23. package/dist/esm/react/components/AccountMenuButton/ExternalWalletSettings.js +46 -0
  24. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +14 -2
  25. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +1 -1
  26. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +154 -5
  27. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +27 -3
  28. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +2 -2
  29. package/dist/esm/react/components/AccountMenuButton/index.js +7 -3
  30. package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
  31. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
  32. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
  33. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +13 -4
  34. package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
  35. package/dist/esm/react/context/reactLoginStateBuilders.js +20 -0
  36. package/dist/esm/react/externalNear.js +2 -6
  37. package/dist/esm/react/index.js +2 -1
  38. package/dist/esm/react/styles/styles.css +364 -8
  39. package/dist/esm/react/styles.css +1 -0
  40. package/dist/esm/react/transactionReview/boundCalls.js +31 -26
  41. package/dist/esm/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
  42. package/dist/{public/sdk/NonceCoordinator-CcD2FqXh.js → esm/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
  43. package/dist/{public/sdk/SeamsWordmark-DqiC9-sd.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  44. package/dist/esm/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  45. package/dist/esm/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
  46. package/dist/esm/sdk/appearance-token-vars-01eH9pgA.js +1 -0
  47. package/dist/{public/sdk/clientSessionPersistenceState-YvVHKRoe.js → esm/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  48. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  49. package/dist/esm/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  50. package/dist/esm/sdk/configBuilder-DpChXfDO.js +1 -0
  51. package/dist/esm/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  52. package/dist/esm/sdk/confirm-ui-em0vkd2m.js +2 -0
  53. package/dist/esm/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  54. package/dist/esm/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
  55. package/dist/esm/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  56. package/dist/{public/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  57. package/dist/esm/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  58. package/dist/{public/sdk/ecdsaDerivationExport-CkmSe0ao.js → esm/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  59. package/dist/esm/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  60. package/dist/esm/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  61. package/dist/esm/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  62. package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
  63. package/dist/esm/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  64. package/dist/esm/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
  65. package/dist/esm/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
  66. package/dist/esm/sdk/host-C51z-AxP.js +1 -0
  67. package/dist/{public/sdk/icons-DDRXJ2W1.js → esm/sdk/icons-BlMXolHv.js} +1 -1
  68. package/dist/esm/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  69. package/dist/esm/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  70. package/dist/esm/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  71. package/dist/esm/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
  72. package/dist/{public/sdk/mountExportPrivateKeySurface-B_052qyI.js → esm/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
  73. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
  74. package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  75. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  76. package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  77. package/dist/esm/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  78. package/dist/esm/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  79. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → esm/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
  80. package/dist/esm/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  81. package/dist/esm/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
  82. package/dist/esm/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
  83. package/dist/esm/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
  84. package/dist/esm/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  85. package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
  86. package/dist/esm/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  87. package/dist/{public/sdk/requireStepUpAuth-DC9LSyRI.js → esm/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  88. package/dist/esm/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
  89. package/dist/esm/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
  90. package/dist/esm/sdk/runtime-auth-ufbVur2p.js +1 -0
  91. package/dist/esm/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
  92. package/dist/{public/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → esm/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
  93. package/dist/{public/sdk/runtime-email-otp-CaxfpqKI.js → esm/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
  94. package/dist/esm/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
  95. package/dist/esm/sdk/runtime-near-59yU_3ud.js +1 -0
  96. package/dist/esm/sdk/runtime-preferences-B9qLHX8W.js +1 -0
  97. package/dist/esm/sdk/runtime-recovery-DNyzdMBj.js +1 -0
  98. package/dist/esm/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
  99. package/dist/esm/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
  100. package/dist/{public/sdk/secp256k1--vF2pJgR.js → esm/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  101. package/dist/esm/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
  102. package/dist/esm/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  103. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  104. package/dist/esm/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  105. package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
  106. package/dist/esm/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  107. package/dist/{public/sdk/signingFlow-C7fwkxPx.js → esm/sdk/signingFlow-BcetvUeS.js} +1 -1
  108. package/dist/{public/sdk/signingQueue-DvHGcaLc.js → esm/sdk/signingQueue-dMFOFOP5.js} +1 -1
  109. package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  110. package/dist/esm/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  111. package/dist/esm/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  112. package/dist/esm/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  113. package/dist/esm/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  114. package/dist/esm/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  115. package/dist/esm/sdk/tx-confirm-ui.js +181 -18
  116. package/dist/esm/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  117. package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  118. package/dist/esm/sdk/voiceid-host.js +1 -1
  119. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  120. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  121. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  122. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  123. package/dist/{public/sdk/wallet-recovery-jyfGoejZ.js → esm/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  124. package/dist/esm/sdk/wallet-ui.css +1 -1
  125. package/dist/esm/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  126. package/dist/{public/sdk/walletAuthority-DGdC9Glh.js → esm/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  127. package/dist/esm/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  128. package/dist/esm/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  129. package/dist/{public/sdk/walletOwnershipGeneration-z9NXOk-b.js → esm/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  130. package/dist/{public/sdk/walletRecoveryAdminProof-hytB9fXI.js → esm/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
  131. package/dist/{public/sdk/walletRecoveryCommit-sr8-RYvn.js → esm/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  132. package/dist/{public/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → esm/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  133. package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  134. package/dist/esm/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  135. package/dist/esm/shared-ts/src/auth/externalAuth.js +53 -0
  136. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  137. package/dist/esm/shared-ts/src/utils/errors.js +50 -2
  138. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  139. package/dist/esm/voiceid-host.js +1 -1
  140. package/dist/public/headers.manifest.json +1 -1
  141. package/dist/public/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
  142. package/dist/{esm/sdk/NonceCoordinator-CcD2FqXh.js → public/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
  143. package/dist/{esm/sdk/SeamsWordmark-DqiC9-sd.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  144. package/dist/public/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  145. package/dist/public/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
  146. package/dist/public/sdk/appearance-token-vars-01eH9pgA.js +1 -0
  147. package/dist/{esm/sdk/clientSessionPersistenceState-YvVHKRoe.js → public/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  148. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  149. package/dist/public/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  150. package/dist/public/sdk/configBuilder-DpChXfDO.js +1 -0
  151. package/dist/public/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  152. package/dist/public/sdk/confirm-ui-em0vkd2m.js +2 -0
  153. package/dist/public/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  154. package/dist/public/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
  155. package/dist/public/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  156. package/dist/{esm/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  157. package/dist/public/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  158. package/dist/{esm/sdk/ecdsaDerivationExport-CkmSe0ao.js → public/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  159. package/dist/public/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  160. package/dist/public/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  161. package/dist/public/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  162. package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
  163. package/dist/public/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  164. package/dist/public/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
  165. package/dist/public/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
  166. package/dist/public/sdk/host-C51z-AxP.js +1 -0
  167. package/dist/{esm/sdk/icons-DDRXJ2W1.js → public/sdk/icons-BlMXolHv.js} +1 -1
  168. package/dist/public/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  169. package/dist/public/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  170. package/dist/public/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  171. package/dist/public/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
  172. package/dist/{esm/sdk/mountExportPrivateKeySurface-B_052qyI.js → public/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
  173. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
  174. package/dist/public/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  175. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  176. package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  177. package/dist/public/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  178. package/dist/public/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  179. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → public/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
  180. package/dist/public/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  181. package/dist/public/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
  182. package/dist/public/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
  183. package/dist/public/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
  184. package/dist/public/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  185. package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
  186. package/dist/public/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  187. package/dist/{esm/sdk/requireStepUpAuth-DC9LSyRI.js → public/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  188. package/dist/public/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
  189. package/dist/public/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
  190. package/dist/public/sdk/runtime-auth-ufbVur2p.js +1 -0
  191. package/dist/public/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
  192. package/dist/{esm/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → public/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
  193. package/dist/{esm/sdk/runtime-email-otp-CaxfpqKI.js → public/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
  194. package/dist/public/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
  195. package/dist/public/sdk/runtime-near-59yU_3ud.js +1 -0
  196. package/dist/public/sdk/runtime-preferences-B9qLHX8W.js +1 -0
  197. package/dist/public/sdk/runtime-recovery-DNyzdMBj.js +1 -0
  198. package/dist/public/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
  199. package/dist/public/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
  200. package/dist/{esm/sdk/secp256k1--vF2pJgR.js → public/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  201. package/dist/public/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
  202. package/dist/public/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  203. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  204. package/dist/public/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  205. package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
  206. package/dist/public/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  207. package/dist/{esm/sdk/signingFlow-C7fwkxPx.js → public/sdk/signingFlow-BcetvUeS.js} +1 -1
  208. package/dist/{esm/sdk/signingQueue-DvHGcaLc.js → public/sdk/signingQueue-dMFOFOP5.js} +1 -1
  209. package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  210. package/dist/public/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  211. package/dist/public/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  212. package/dist/public/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  213. package/dist/public/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  214. package/dist/public/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  215. package/dist/public/sdk/tx-confirm-ui.js +181 -18
  216. package/dist/public/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  217. package/dist/public/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  218. package/dist/public/sdk/voiceid-host.js +1 -1
  219. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  220. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  221. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  222. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  223. package/dist/{esm/sdk/wallet-recovery-jyfGoejZ.js → public/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  224. package/dist/public/sdk/wallet-ui.css +1 -1
  225. package/dist/public/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  226. package/dist/{esm/sdk/walletAuthority-DGdC9Glh.js → public/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  227. package/dist/public/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  228. package/dist/public/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  229. package/dist/{esm/sdk/walletOwnershipGeneration-z9NXOk-b.js → public/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  230. package/dist/{esm/sdk/walletRecoveryAdminProof-hytB9fXI.js → public/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
  231. package/dist/{esm/sdk/walletRecoveryCommit-sr8-RYvn.js → public/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  232. package/dist/{esm/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → public/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  233. package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  234. package/dist/public/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  235. package/dist/public/wallet-assets.manifest.json +275 -251
  236. package/dist/public/wallet-service/index.html +4 -4
  237. package/dist/types/shared-ts/src/auth/externalAuth.d.ts +84 -0
  238. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -1
  239. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  240. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +11 -0
  241. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
  242. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +4 -2
  243. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +5 -2
  244. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalAuth.d.ts +29 -0
  245. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +1 -1
  246. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/sessionObserver.d.ts +1 -0
  247. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
  248. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -3
  249. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
  250. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +2 -0
  251. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
  252. package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
  253. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
  254. package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
  255. package/dist/types/wallet/src/core/types/seams.d.ts +29 -9
  256. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  257. package/dist/types/wallet/src/index.d.ts +1 -0
  258. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
  259. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountSettingsDialog.d.ts +10 -0
  260. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -2
  261. package/dist/types/wallet/src/react/components/AccountMenuButton/ExternalWalletSettings.d.ts +10 -0
  262. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -2
  263. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +1 -0
  264. package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +2 -2
  265. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
  266. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +4 -3
  267. package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
  268. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
  269. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
  270. package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
  271. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
  272. package/dist/types/wallet/src/react/context/reactLoginStateBuilders.d.ts +1 -1
  273. package/dist/types/wallet/src/react/index.d.ts +2 -0
  274. package/dist/types/wallet/src/react/types.d.ts +13 -3
  275. package/dist/types/wallet/src/voiceid-host.d.ts +2 -2
  276. package/package.json +1 -1
  277. package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +0 -66
  278. package/dist/esm/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  279. package/dist/esm/sdk/configBuilder-CSwJrmcR.js +0 -1
  280. package/dist/esm/sdk/confirm-ui-BpqwuMSl.js +0 -2
  281. package/dist/esm/sdk/errors-DLUmUo9m.js +0 -1
  282. package/dist/esm/sdk/host-aTcpYE27.js +0 -1
  283. package/dist/esm/sdk/registrationIntent-BVPp0k0k.js +0 -1
  284. package/dist/esm/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
  285. package/dist/esm/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  286. package/dist/esm/sdk/runtime-near-fas7U0MC.js +0 -1
  287. package/dist/esm/sdk/runtime-preferences-7-f34-by.js +0 -1
  288. package/dist/esm/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  289. package/dist/esm/sdk/runtimeContext-DF8MdfXl.js +0 -6
  290. package/dist/esm/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  291. package/dist/esm/sdk/signNear-DMzOU4dX.js +0 -1
  292. package/dist/esm/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  293. package/dist/esm/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  294. package/dist/public/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  295. package/dist/public/sdk/configBuilder-CSwJrmcR.js +0 -1
  296. package/dist/public/sdk/confirm-ui-BpqwuMSl.js +0 -2
  297. package/dist/public/sdk/errors-DLUmUo9m.js +0 -1
  298. package/dist/public/sdk/host-aTcpYE27.js +0 -1
  299. package/dist/public/sdk/registrationIntent-BVPp0k0k.js +0 -1
  300. package/dist/public/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
  301. package/dist/public/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  302. package/dist/public/sdk/runtime-near-fas7U0MC.js +0 -1
  303. package/dist/public/sdk/runtime-preferences-7-f34-by.js +0 -1
  304. package/dist/public/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  305. package/dist/public/sdk/runtimeContext-DF8MdfXl.js +0 -6
  306. package/dist/public/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  307. package/dist/public/sdk/signNear-DMzOU4dX.js +0 -1
  308. package/dist/public/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  309. package/dist/public/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  310. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +0 -9
  311. /package/dist/esm/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  312. /package/dist/esm/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  313. /package/dist/esm/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  314. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  315. /package/dist/esm/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  316. /package/dist/esm/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  317. /package/dist/esm/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  318. /package/dist/esm/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  319. /package/dist/esm/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  320. /package/dist/esm/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  321. /package/dist/esm/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  322. /package/dist/esm/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  323. /package/dist/esm/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  324. /package/dist/esm/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  325. /package/dist/esm/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  326. /package/dist/esm/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  327. /package/dist/esm/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  328. /package/dist/esm/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  329. /package/dist/esm/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  330. /package/dist/esm/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  331. /package/dist/esm/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  332. /package/dist/esm/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  333. /package/dist/esm/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  334. /package/dist/esm/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  335. /package/dist/esm/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  336. /package/dist/esm/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  337. /package/dist/esm/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  338. /package/dist/esm/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  339. /package/dist/esm/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  340. /package/dist/esm/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  341. /package/dist/esm/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  342. /package/dist/esm/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  343. /package/dist/esm/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  344. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  345. /package/dist/esm/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  346. /package/dist/esm/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  347. /package/dist/esm/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
  348. /package/dist/public/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  349. /package/dist/public/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  350. /package/dist/public/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  351. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  352. /package/dist/public/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  353. /package/dist/public/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  354. /package/dist/public/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  355. /package/dist/public/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  356. /package/dist/public/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  357. /package/dist/public/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  358. /package/dist/public/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  359. /package/dist/public/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  360. /package/dist/public/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  361. /package/dist/public/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  362. /package/dist/public/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  363. /package/dist/public/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  364. /package/dist/public/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  365. /package/dist/public/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  366. /package/dist/public/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  367. /package/dist/public/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  368. /package/dist/public/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  369. /package/dist/public/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  370. /package/dist/public/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  371. /package/dist/public/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  372. /package/dist/public/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  373. /package/dist/public/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  374. /package/dist/public/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  375. /package/dist/public/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  376. /package/dist/public/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  377. /package/dist/public/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  378. /package/dist/public/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  379. /package/dist/public/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  380. /package/dist/public/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  381. /package/dist/public/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  382. /package/dist/public/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  383. /package/dist/public/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  384. /package/dist/public/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
@@ -1 +1 @@
1
- import{i as e}from"./domainIds-t1lp25yU.js";import{r as t,t as n}from"./digests-BIaE0DMd.js";import{i as r,r as i}from"./base64-BmKR3UqU.js";import{r as a}from"./secureRandomId-8LSc91aN.js";import{s as o}from"./walletDbName-Ca0rCq5r.js";import{g as s}from"./capabilityKinds-DVlGMspk.js";import{r as c}from"./canonicalPrimitives-Jd3i_Ngz.js";import{i as l,n as u}from"./signerDomain-BLnlQPAV.js";import{c as d,o as f}from"./ecdsaChainTarget-Lh24LLyA.js";import{C as p,Ct as m,E as h,Nt as g,O as _,Pt as v,c as y}from"./digestEncoding-n8Kr2kow.js";import{B as ee,C as te,E as b,I as ne,R as re,S as ie,x,y as S,z as ae}from"./ecdsaCapabilityManifest-CXVq8Qzb.js";import{C,h as oe,v as w}from"./emailOtpEcdsaDerivationIdentity-0DIuRNRi.js";import{r as T}from"./types-DOToeB6g.js";import{o as se}from"./walletSessionAuthorizationStore-BEJyERPZ.js";import{t as ce}from"./thresholdEcdsa-CPVZNLEg.js";import{p as le}from"./nearEd25519YaoSigningPreparation-K6n4Sq8_.js";import{a as ue,i as de,r as fe}from"./walletSessionAuthorizationProjection-CMl69JGe.js";import{a as pe,d as me,i as he,n as ge,u as _e}from"./ecdsaDerivationClientWasm-CVahDxLy.js";import{a as ve,r as ye,t as be}from"./walletSessionFailure-ZfdbUAG-.js";import{a as E,o as D}from"./signingQueue-DvHGcaLc.js";import{t as O}from"./bytes-CA0mv-bG.js";const xe=`router-ab-ed25519-yao-seed-export-v1`;function Se(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e,n=typeof t.id==`string`&&t.id.trim()?t.id.trim():void 0;return t.success===!0&&`data`in t&&t.error===void 0?{id:n,success:!0,data:t.data}:t.success===!1&&typeof t.error==`string`&&t.data===void 0?{id:n,success:!1,error:t.error}:null}function k(e){return e.kind===`credential_free_ecdsa_session_activation_authorization_v1`}function Ce(e,t){return e.error||e.message||e.code||t}function A(e){return _({kind:`router_ab_ecdsa_post_registration_session_activation_v1`,public_capability:e.publicCapability,session_policy:{threshold_session_id:e.thresholdSessionId,wallet_session_mint_id:e.walletSessionMintId,ttl_ms:e.ttlMs,remaining_uses:e.remainingUses,runtime_policy_scope:e.runtimePolicyScope}})}function we(e,t){let n=t.public_identity;return e.applicationBindingDigestB64u===t.context.application_binding_digest_b64u&&e.contextBinding32B64u===n.context_binding_b64u&&e.derivationClientSharePublicKey33B64u===n.derivation_client_share_public_key33_b64u&&e.relayerPublicKey33B64u===n.server_public_key33_b64u&&e.groupPublicKey33B64u===n.threshold_public_key33_b64u&&e.ethereumAddress.toLowerCase()===O(i(n.ethereum_address20_b64u))&&S(e.publicCapability,t)}function Te(e,t){let n=e.normal_signing.scope;return n.wallet_id===String(t.walletId)&&n.ecdsa_threshold_key_id===String(t.ecdsaThresholdKeyId)&&n.signing_root_id===String(t.signingRootId)&&n.signing_root_version===String(t.signingRootVersion)}function Ee(e){let t=e.persistedRoleLocalMaterial.publicFacts;if(!S(e.sessionActivation.public_capability,e.publicCapability)||e.sessionActivation.session.threshold_session_id!==e.thresholdSessionId||!Te(e.sessionActivation,t))throw Error(`Strict ECDSA session activation returned a different registered key identity`)}function De(t){let n=t.sessionActivation.activation,r=t.sessionActivation.authorization,i=r.record,a=g(n.public_capability.material_activation),o=0;for(let t of i.capabilitySubjects)t.kind===`sign`&&t.keyFamily===`ecdsa_secp256k1`&&e(t.materialActivation,a)&&(o+=1);if(Ee({publicCapability:t.publicCapability,persistedRoleLocalMaterial:t.persistedRoleLocalMaterial,thresholdSessionId:t.thresholdSessionId,sessionActivation:n}),String(i.walletId)!==t.walletId||String(i.walletId)!==String(n.public_capability.client_id)||i.authMethodId!==t.persistedRoleLocalMaterial.authority.walletAuthMethodId||i.authorizationId!==n.session.authorization_id||i.quotaId!==n.session.quota_id||i.expiresAtMs!==n.session.expires_at_ms||n.session.remaining_uses!==t.remainingUses||r.operationCredential.walletSessionId!==n.session.wallet_session_id||!e(a,t.persistedRoleLocalMaterial.materialActivation)||o!==1)throw Error(`Strict ECDSA credential-free activation authority does not match its session`)}function j(e){let t=e.persistedRoleLocalMaterial.publicFacts;if(!e.walletId||!e.thresholdSessionId)throw Error(`Strict ECDSA session activation requires exact wallet and session identity`);if(!Number.isSafeInteger(e.ttlMs)||e.ttlMs<1)throw Error(`Strict ECDSA session activation requires a positive ttlMs`);if(!Number.isSafeInteger(e.remainingUses)||e.remainingUses<1)throw Error(`Strict ECDSA session activation requires positive remainingUses`);if(String(t.walletId)!==e.walletId||!we(t,e.publicCapability))throw Error(`Strict ECDSA session activation requires exact registered role-local material`)}function Oe(e){switch(e.kind){case`rehydrated`:return e;case`device_link_required`:throw Error(`device_link_required: registered ECDSA role-local material is unavailable on this device`);case`corrupt`:throw Error(`Registered ECDSA role-local material is corrupt (${e.reason}): ${e.message}`);default:{let t=e;throw Error(`Unsupported ECDSA role-local material resolution: ${String(t)}`)}}}async function M(e){let t=Oe(await D({purpose:`registration_activation`,source:E(e.persistedRoleLocalMaterial),workerCtx:e.workerCtx}));return{kind:`existing_ecdsa_role_local_material_activated_v1`,roleLocalMaterial:t.liveHandle,roleLocalMaterialRef:t.materialRef,publicFacts:e.persistedRoleLocalMaterial.publicFacts,publicCapability:e.publicCapability}}async function ke(e){j(e);let t=await ce(e.relayerUrl,{auth:e.routeAuth,request:A(e)});if(!t.ok)throw Error(Ce(t,`Strict ECDSA session activation failed`));return await N({workerCtx:e.workerCtx,publicCapability:e.publicCapability,persistedRoleLocalMaterial:e.persistedRoleLocalMaterial,walletId:e.walletId,thresholdSessionId:e.thresholdSessionId,ttlMs:e.ttlMs,remainingUses:e.remainingUses,runtimePolicyScope:e.runtimePolicyScope,sessionActivation:t.value})}async function N(e){return j(e),Ee({publicCapability:e.publicCapability,persistedRoleLocalMaterial:e.persistedRoleLocalMaterial,thresholdSessionId:e.thresholdSessionId,sessionActivation:e.sessionActivation}),{sessionActivation:e.sessionActivation,roleLocalActivation:await M(e)}}async function Ae(e){return j(e),De(e),{sessionActivation:e.sessionActivation.activation,authorization:e.sessionActivation.authorization,roleLocalActivation:await M(e)}}async function je(e,t){let n=o(e.lanePolicy.runtimePolicyScope);if(!n)throw Error(`Strict ECDSA session activation requires runtimePolicyScope`);let r={workerCtx:e.workerCtx,publicCapability:e.publicCapability,persistedRoleLocalMaterial:e.existingRoleLocalMaterial,walletId:String(e.key.walletId),thresholdSessionId:e.lanePolicy.thresholdSessionId,ttlMs:e.lanePolicy.ttlMs,remainingUses:e.lanePolicy.remainingUses,runtimePolicyScope:n},s=e.sessionActivation?k(e.sessionActivation)?await Ae({...r,sessionActivation:e.sessionActivation}):await N({...r,sessionActivation:e.sessionActivation}):await ke({...r,walletSessionMintId:Me(),relayerUrl:e.relayerUrl,routeAuth:e.bootstrapAuth}),c=s.sessionActivation.public_capability.public_identity,l=`authorization`in s?{thresholdSessionId:s.sessionActivation.session.threshold_session_id,authorizationSessionId:s.sessionActivation.session.authorization_session_id,authorizationId:s.sessionActivation.session.authorization_id,walletSessionId:s.sessionActivation.session.wallet_session_id,quotaId:s.sessionActivation.session.quota_id,expiresAtMs:s.sessionActivation.session.expires_at_ms,remainingUses:s.sessionActivation.session.remaining_uses,walletSession:s.authorization.record,operationCredential:s.authorization.operationCredential}:{thresholdSessionId:s.sessionActivation.session.threshold_session_id,authorizationSessionId:s.sessionActivation.session.authorization_session_id,authorizationId:s.sessionActivation.session.authorization_id,walletSessionId:s.sessionActivation.session.wallet_session_id,quotaId:s.sessionActivation.session.quota_id,expiresAtMs:s.sessionActivation.session.expires_at_ms,remainingUses:s.sessionActivation.session.remaining_uses,walletSession:s.sessionActivation.session.wallet_session,operationCredential:s.sessionActivation.session.operation_credential},u=await m({walletId:String(e.key.walletId),signingRootId:e.key.signingRootId,signingRootVersion:e.key.signingRootVersion});return{ok:!0,bootstrapKind:`strict_post_registration`,keygenSessionId:String(e.requestId||``).trim()||a(`tecdsa-keygen`,32,`threshold ECDSA session IDs`),rpId:t,keyHandle:String(e.keyHandle),clientVerifyingShareB64u:c.derivation_client_share_public_key33_b64u,thresholdEcdsaPublicKeyB64u:c.threshold_public_key33_b64u,ethereumAddress:O(i(c.ethereum_address20_b64u)),relayerKeyId:u,relayerVerifyingShareB64u:c.server_public_key33_b64u,participantIds:e.key.participantIds.map(Number),thresholdSessionId:l.thresholdSessionId,authorizationSessionId:l.authorizationSessionId,authorizationId:l.authorizationId,walletSessionId:l.walletSessionId,quotaId:l.quotaId,expiresAtMs:l.expiresAtMs,remainingUses:l.remainingUses,runtimePolicyScope:n,signingRootId:String(e.key.signingRootId),signingRootVersion:String(e.key.signingRootVersion),walletSession:l.walletSession,operationCredential:l.operationCredential,roleLocalActivation:s.roleLocalActivation,routerAbEcdsaDerivationNormalSigning:s.sessionActivation.normal_signing,secretSourceKind:`persisted_role_local`}}function Me(){let e=s(a(`wallet-session-mint`,32,`Wallet Session mint IDs`));if(!e.ok)throw Error(`Failed to create Wallet Session mint identity`);return e.value}async function Ne(e){let t=e.touchIdPrompt.getRpId();if(!t)return{ok:!1,code:`invalid_args`,message:`Missing rpId for WebAuthn`};try{return await je(e,t)}catch(e){return{ok:!1,code:`strict_post_registration_failed`,message:e instanceof Error?e.message:String(e)}}}const P=`stale_ecdsa_key_identity`;function Pe(e){if(!e)throw Error(`Strict ECDSA session bootstrap requires Wallet Session authority`);switch(e.kind){case`opaque_wallet_session_operation_credential_v1`:return e;case`publishable_key`:throw Error(`Strict ECDSA session bootstrap requires Wallet Session authority`)}throw Error(`Strict ECDSA session bootstrap authority is invalid`)}function Fe(e){let t=String(e.code||``).trim(),n=String(e.message||``).trim().toLowerCase();return t===`stale_session_state`&&n.includes(`threshold-ecdsa bootstrap`)&&n.includes(`client verifying share`)&&n.includes(`integrated key record`)}function Ie(e){let t=String(e.message||e.code||`threshold-ecdsa bootstrap failed`).trim(),n=Fe(e)?P:String(e.code||`threshold_ecdsa_bootstrap_failed`).trim()||`threshold_ecdsa_bootstrap_failed`,r=Error(t||`threshold-ecdsa bootstrap failed`);return r.code=n,r}function Le(e){let t=Error(e);return t.code=P,t}function Re(e){switch(e.authKind){case`email_otp`:return`email_otp`;case`passkey`:return`passkey`}return`unknown`}function ze(e){switch(e.bootstrap.secretSourceKind){case`persisted_role_local`:return e.request.authKind===`email_otp`?x({authSubjectId:e.request.emailOtpWorkerSessionHandle.authSubjectId}):ie({credentialIdB64u:e.request.passkeyCredentialIdB64u,rpId:e.bootstrap.rpId})}}function F(e,t){let n=String(e||``).trim().toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(n))throw Error(`threshold-ecdsa exact activation returned invalid ${t}`);return n}function Be(e){let t=F(e.bootstrapOwnerAddress,`server owner address`);if(t!==F(e.key.thresholdOwnerAddress,`key owner address`))throw Le(`threshold-ecdsa exact activation owner address mismatches server bootstrap result`);return t}async function Ve(e,t){let n=d(String(t.key.walletId)),r=t.lanePolicy.chainTarget,i=String(t.lanePolicy.thresholdSessionId).trim();if(e.routerAbNormalSigning.mode!==`enabled`)throw Error(`Router A/B ECDSA derivation normal signing must be enabled for activation`);let a={walletId:n,chainTarget:r,targetKey:f(r),operationId:i||null,authMethod:Re(t),evmFamilyKeyFingerprint:oe(t.key),keyHandle:t.keyHandle,chainTargetKey:f(r),ecdsaThresholdKeyId:String(t.key.ecdsaThresholdKeyId),thresholdSessionId:i||null,freshAuthRetrySideEffectState:`not_applicable`,hasRequestedEcdsaThresholdKeyId:!0,requestedSessionId:i||null,authKind:t.walletSessionRouteAuth?.kind||`none`,passkeyCredentialBound:t.authKind===`passkey`},o;try{o=await Ne({touchIdPrompt:e.touchIdPrompt,relayerUrl:t.relayerUrl,requestId:t.requestId,workerCtx:e.workerCtx,...`preauthorizedSessionActivation`in t&&t.preauthorizedSessionActivation?{sessionActivation:t.preauthorizedSessionActivation}:{bootstrapAuth:Pe(t.walletSessionRouteAuth)},keyHandle:t.keyHandle,key:t.key,lanePolicy:t.lanePolicy,publicCapability:t.publicCapability,existingRoleLocalMaterial:t.existingRoleLocalMaterial})}catch(e){try{console.warn(`[threshold-ecdsa][bootstrap][exception]`,{...a,message:e instanceof Error?e.message:String(e)})}catch{}throw e}if(!o.ok){try{console.warn(`[threshold-ecdsa][bootstrap][failure]`,{...a,code:o.code||``,message:o.message||``})}catch{}throw Ie({code:o.code,message:o.message})}let s=String(t.key.ecdsaThresholdKeyId).trim();if(!s)throw Error(`threshold-ecdsa bootstrap returned empty ecdsaThresholdKeyId`);let c=ne(s),l=ae(String(o.keyHandle||``).trim()),u=String(o.relayerKeyId||``).trim();if(!u)throw Error(`threshold-ecdsa bootstrap returned empty relayerKeyId`);let p=ee(u),m=String(o.clientVerifyingShareB64u||``).trim();if(!m)throw Error(`threshold-ecdsa bootstrap returned empty clientVerifyingShareB64u`);let h=re(m),g=String(o.thresholdSessionId||``).trim();if(!g)throw Error(`threshold-ecdsa bootstrap returned empty thresholdSessionId`);let _=Number(o.expiresAtMs);if(!Number.isFinite(_))throw Error(`threshold-ecdsa bootstrap returned invalid expiresAtMs`);let v=Number(o.remainingUses);if(!Number.isFinite(v))throw Error(`threshold-ecdsa bootstrap returned invalid remainingUses`);let y=t.key.participantIds.map(e=>Number(e));if(!y)throw Error(`threshold-ecdsa bootstrap returned empty participantIds`);let b=Be({key:t.key,bootstrapOwnerAddress:o.ethereumAddress}),ie=te({walletId:n,chainTarget:r,keyHandle:l,ecdsaThresholdKeyId:c,signingRootId:o.signingRootId,signingRootVersion:o.signingRootVersion,applicationBindingDigestB64u:o.roleLocalActivation.publicCapability.context.application_binding_digest_b64u,clientParticipantId:1,relayerParticipantId:2,participantIds:y,contextBinding32B64u:o.roleLocalActivation.publicFacts.contextBinding32B64u,derivationClientSharePublicKey33B64u:o.roleLocalActivation.publicFacts.derivationClientSharePublicKey33B64u,relayerPublicKey33B64u:o.roleLocalActivation.publicFacts.relayerPublicKey33B64u,groupPublicKey33B64u:o.roleLocalActivation.publicFacts.groupPublicKey33B64u,ethereumAddress:o.roleLocalActivation.publicFacts.ethereumAddress,publicCapability:o.roleLocalActivation.publicCapability}),x=o.routerAbEcdsaDerivationNormalSigning,S=o.roleLocalActivation.roleLocalMaterial,C=ze({request:t,bootstrap:o}),w={ok:!0,thresholdSessionId:g,authorizationSessionId:o.authorizationSessionId,authorizationId:o.authorizationId,walletSessionId:o.walletSessionId,quotaId:o.quotaId,expiresAtMs:_,remainingUses:v,runtimePolicyScope:o.runtimePolicyScope,walletSession:o.walletSession,operationCredential:o.operationCredential,clientVerifyingShareB64u:h};return{thresholdEcdsaKeyRef:{type:`threshold-ecdsa-secp256k1`,userId:n,chainTarget:r,relayerUrl:t.relayerUrl,keyHandle:l,ecdsaThresholdKeyId:c,backendBinding:{materialKind:`role_local_worker_handle`,relayerKeyId:p,clientVerifyingShareB64u:h,roleLocalMaterialHandle:S,roleLocalMaterialRef:o.roleLocalActivation.roleLocalMaterialRef,publicFacts:ie,authMethod:C},participantIds:y,thresholdEcdsaPublicKeyB64u:o.thresholdEcdsaPublicKeyB64u,ethereumAddress:b,relayerVerifyingShareB64u:o.relayerVerifyingShareB64u,routerAbEcdsaDerivationNormalSigning:x},session:w}}async function He(e,t){return await Ve(e,t)}function Ue(e){let t;try{t=c(e.evidenceSetDigest)}catch(e){throw Error(e instanceof Error?e.message:`ECDSA explicit export evidence digest is invalid`)}let n=Math.floor(Number(e.expiresAtMs)),r=h(e.operation);if(r.operation_kind!==`evm.export_key`)throw Error(`ECDSA explicit export operation kind is invalid`);if(!Number.isSafeInteger(n)||n<=Date.now())throw Error(`ECDSA explicit export operation authorization expiry is invalid`);let i=We(e.unseal);return{kind:`verified_step_up`,evidenceSetDigest:t,operation:r,expiresAtMs:n,quotaUse:`none`,unseal:i}}function We(e){switch(e.kind){case`not_requested`:return{kind:`not_requested`};case`email_otp_grant`:{let t=String(e.grant||``).trim(),n=String(e.challenge_id||``).trim();if(!t||!n)throw Error(`ECDSA explicit export Email OTP unseal grant is invalid`);return{kind:`email_otp_grant`,grant:t,challenge_id:n}}default:{let t=e;throw Error(`Unsupported ECDSA explicit export unseal state: ${String(t)}`)}}}async function I(e){let t=String(e.relayerUrl||``).trim();if(!t)throw Error(`ECDSA explicit export relayer URL is required`);return{kind:`explicit_key_export_ecdsa_activation_result`,purpose:`explicit_key_export`,material:{kind:`auth_neutral_ecdsa_export_material_v1`,relayerUrl:t,persistedMaterial:e.existingRoleLocalMaterial},authorization:Ue(e.authorization)}}function L(e,t){let n=String(e||t||``).trim();if(!n)throw Error(`Missing relayer url (configs.network.relayer.url)`);return n}function R(e){return`key`in e&&!!e.key&&`keyHandle`in e&&!!String(e.keyHandle||``).trim()}function z(e){return R(e)?e.key.walletId:e.walletId}function B(e){return R(e)?e.lanePolicy.chainTarget:e.chainTarget}function Ge(e){return e.kind===`email_otp_ecdsa_bootstrap`?{authMethod:u.emailOtp,signerSource:l.emailOtpRegistration}:{authMethod:u.passkey,signerSource:l.passkeyRegistration}}function Ke(e){switch(e.kind){case`passkey_preauthorized_ecdsa_bootstrap`:case`wallet_session_reconnect_ecdsa_bootstrap`:return e.authorizationAuthority;case`passkey_fresh_ecdsa_bootstrap`:case`email_otp_ecdsa_bootstrap`:return e.existingRoleLocalMaterial.authority}}function qe(e){if(!(`sessionActivation`in e.request)||!e.request.sessionActivation)return;let t=e.request.sessionActivation,n=k(t)?t.activation:t,r=k(t)?t.authorization:{record:t.session.wallet_session,operationCredential:t.session.operation_credential};ue({walletId:e.walletId,authority:e.authority,walletSession:r.record,operationCredential:r.operationCredential,expectedAuthorizationId:n.session.authorization_id,expectedWalletSessionId:n.session.wallet_session_id,expectedQuotaId:n.session.quota_id,expectedExpiresAtMs:n.session.expires_at_ms}),e.request.kind===`passkey_preauthorized_ecdsa_bootstrap`&&de({expected:e.request.authorizationIdentity,walletSession:r.record})}function Je(e,t){let n=(e,n,r)=>({kind:`session_bootstrap`,purpose:`transaction_signing`,relayerUrl:t,keyHandle:C(e.keyHandle),key:e.key,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,...e.requestId?{requestId:e.requestId}:{},...r,...n?{walletSessionRouteAuth:n}:{}}),r=e=>({kind:`session_bootstrap`,purpose:`transaction_signing`,relayerUrl:t,keyHandle:C(e.keyHandle),key:e.key,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,...e.requestId?{requestId:e.requestId}:{},authKind:`passkey`,passkeyCredentialIdB64u:e.passkeyCredentialIdB64u,preauthorizedSessionActivation:e.sessionActivation});switch(e.kind){case`passkey_fresh_ecdsa_bootstrap`:return n(e,e.routeAuth,{authKind:`passkey`,passkeyCredentialIdB64u:e.passkeyCredentialIdB64u});case`passkey_preauthorized_ecdsa_bootstrap`:return r(e);case`wallet_session_reconnect_ecdsa_bootstrap`:return n(e,e.routeAuth,{authKind:`passkey`,passkeyCredentialIdB64u:e.passkeyCredentialIdB64u});case`email_otp_ecdsa_bootstrap`:{let r={authKind:`email_otp`,emailOtpWorkerSessionHandle:e.emailOtpWorkerSessionHandle};return e.sessionActivation?{kind:`session_bootstrap`,purpose:`transaction_signing`,relayerUrl:t,keyHandle:C(e.keyHandle),key:e.key,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,...e.requestId?{requestId:e.requestId}:{},...r,preauthorizedSessionActivation:e.sessionActivation}:n(e,e.routeAuth,r)}}throw Error(`[SigningEngine][ecdsa] unsupported ECDSA bootstrap request`)}function Ye(e,t){return{purpose:`explicit_key_export`,relayerUrl:t,existingRoleLocalMaterial:e.existingRoleLocalMaterial,authorization:e.authorization}}function Xe(e,t){return{purpose:`explicit_key_export`,relayerUrl:t,existingRoleLocalMaterial:e.existingRoleLocalMaterial,authorization:e.authorization}}async function Ze(e,t){if(t.kind===`reuse_warm_ecdsa_bootstrap`)throw Error(`[SigningEngine][ecdsa] reuse_warm bootstrap must resolve an existing exact material request before activation`);let n=Ke(t),r=d(z(t)),i=B(t),a=L(t.relayerUrl,e.defaultRelayerUrl),o=e.getSignerWorkerContext(),s={touchIdPrompt:e.touchIdPrompt,workerCtx:o,routerAbNormalSigning:e.routerAbNormalSigning};qe({request:t,walletId:r,authority:n});let c=await He(s,Je(t,a)),l=Ge(t);return await e.persistThresholdEcdsaBootstrapForWalletTarget({walletId:r,chainTarget:i,bootstrap:c,signerAuth:l}),await t.beforeAuthorizationPersistence?.(),await fe(se,{walletId:r,authority:n,bootstrap:c}),c}async function Qe(e,t){return await I(Ye(t,L(t.relayerUrl,e.defaultRelayerUrl)))}async function $e(e,t){return await I(Xe(t,L(t.relayerUrl,e.defaultRelayerUrl)))}async function V(e,t,n){let r=String(t),i=(e.get(r)||Promise.resolve()).catch(()=>void 0),a,o=new Promise(e=>{a=e}),s=i.then(()=>o);e.set(r,s),await i;try{return await n()}finally{a(),e.get(r)===s&&e.delete(r)}}function et(e,t){return t.runtimeScopeBootstrap&&(e.runtimeScopeBootstrap=t.runtimeScopeBootstrap),t.operationIntent&&(e.operationIntent=t.operationIntent),typeof t.ttlMs==`number`&&(e.ttlMs=t.ttlMs),e}function H(e){return et({kind:`email_otp_ecdsa_activation`,purpose:`transaction_signing`,walletKey:e.walletKey,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,source:e.source,relayerUrl:e.relayerUrl,sessionIdentity:e.sessionIdentity,sessionKind:e.sessionKind,sessionBudgetUses:e.sessionBudgetUses,runtimePolicy:e.runtimePolicy,emailOtpWorkerSessionHandle:e.emailOtpWorkerSessionHandle,emailOtpAuthContext:e.emailOtpAuthContext,...`preauthorizedSessionActivation`in e?{preauthorizedSessionActivation:e.preauthorizedSessionActivation}:{walletSessionRouteAuth:e.walletSessionRouteAuth}},e)}function U(e){if(le(e.context)!==e.expected)throw Error(`Email OTP ${e.label} activation requires ${e.expected} retention`)}function tt(e){return U({context:e.emailOtpAuthContext,expected:`session`,label:`session bootstrap`}),H(e)}function nt(e){return U({context:e.emailOtpAuthContext,expected:`session`,label:`recovered session`}),H(e)}function rt(e){return U({context:e.emailOtpAuthContext,expected:`session`,label:`preauthorized session bootstrap`}),H(e)}function it(e){return U({context:e.emailOtpAuthContext,expected:`single_use`,label:`per-operation reauth`}),H(e)}function at(e){return{kind:`email_otp_ecdsa_export_activation`,purpose:`explicit_key_export`,existingRoleLocalMaterial:e.existingRoleLocalMaterial,relayerUrl:e.relayerUrl,authorization:e.authorization}}function ot(e){return{kind:`passkey_ecdsa_export_activation`,purpose:`explicit_key_export`,existingRoleLocalMaterial:e.existingRoleLocalMaterial,relayerUrl:e.relayerUrl,authorization:e.authorization}}function st(e){switch(e.kind){case`default_policy`:return;case`scoped_policy`:return e.scope}throw Error(`[SigningEngine][ecdsa] unsupported ECDSA activation policy`)}function W(e,t){t.runtimeScopeBootstrap&&(e.runtimeScopeBootstrap=t.runtimeScopeBootstrap),t.operationIntent&&(e.operationIntent=t.operationIntent);let n=st(t.runtimePolicy);return`walletId`in e&&(typeof t.ttlMs==`number`&&(e.ttlMs=t.ttlMs),n&&(e.runtimePolicyScope=n)),e}function ct(e){switch(e.kind){case`passkey_ecdsa_activation`:return{kind:`passkey_existing_session_activation`,request:e};case`email_otp_ecdsa_activation`:return{kind:`email_otp_existing_session_activation`,request:e}}throw Error(`[SigningEngine][ecdsa] unsupported activation request`)}function lt(e){let t=String(e.webauthnAuthentication.rawId||e.webauthnAuthentication.id||``).trim();if(!t)throw Error(`[SigningEngine][ecdsa] passkey activation requires credential identity`);return t}function ut(e){let t=ct(e);switch(t.kind){case`passkey_existing_session_activation`:return W({kind:`passkey_fresh_ecdsa_bootstrap`,keyHandle:t.request.walletKey.keyHandle,key:w(t.request.walletKey),lanePolicy:t.request.lanePolicy,publicCapability:t.request.publicCapability,existingRoleLocalMaterial:t.request.existingRoleLocalMaterial,source:t.request.source,relayerUrl:t.request.relayerUrl,requestId:t.request.requestId,passkeyCredentialIdB64u:lt(t.request),routeAuth:t.request.walletSessionRouteAuth},t.request);case`email_otp_existing_session_activation`:{let e={kind:`email_otp_ecdsa_bootstrap`,keyHandle:t.request.walletKey.keyHandle,key:w(t.request.walletKey),lanePolicy:t.request.lanePolicy,publicCapability:t.request.publicCapability,existingRoleLocalMaterial:t.request.existingRoleLocalMaterial,source:`email_otp`,relayerUrl:t.request.relayerUrl,emailOtpWorkerSessionHandle:t.request.emailOtpWorkerSessionHandle,emailOtpAuthContext:t.request.emailOtpAuthContext};return t.request.preauthorizedSessionActivation?W({...e,sessionActivation:t.request.preauthorizedSessionActivation},t.request):W({...e,routeAuth:t.request.walletSessionRouteAuth},t.request)}}throw Error(`[SigningEngine][ecdsa] unsupported activation request`)}function dt(e){return{kind:`passkey_ecdsa_export_bootstrap`,purpose:`explicit_key_export`,existingRoleLocalMaterial:e.existingRoleLocalMaterial,relayerUrl:e.relayerUrl,authorization:e.authorization}}async function ft(e){let t=e.bootstrap.thresholdEcdsaKeyRef.backendBinding;if(!t)throw Error(`[WarmSessionStore] threshold ECDSA bootstrap is missing its backend binding`);let n=pt(t);if(!n)return;let r=await e.deps.persistEcdsaRoleLocalReadyRecord({record:n,storageKeyFacts:b(n)});if(!r.ok)throw Error(`[WarmSessionStore] threshold ECDSA role-local ready record persistence failed (${r.code}): ${r.message}`)}function pt(e){switch(e.materialKind){case`role_local_ready_state_blob`:return e.ecdsaRoleLocalReadyRecord;case`role_local_worker_handle`:case`role_local_durable_public_anchor`:case`role_local_durable_sealed_ref`:case`metadata_only`:return null;default:{let t=e;throw Error(`[WarmSessionStore] unsupported threshold ECDSA backend binding: ${JSON.stringify(t)}`)}}}async function G(e,t){let n=d(z(t));return await V(e.queueByWallet,n,async()=>{let n=await Ze(e.activationDeps,t);return await ft({deps:e,bootstrap:n}),n})}async function mt(e,t){return await G(e,ut(t))}async function ht(e,t){return await Qe(e.activationDeps,dt(t))}async function gt(e,t){let n={kind:`email_otp_ecdsa_export_bootstrap`,purpose:`explicit_key_export`,existingRoleLocalMaterial:t.existingRoleLocalMaterial,relayerUrl:t.relayerUrl,authorization:t.authorization};return await $e(e.activationDeps,n)}const K=`ecdsa-derivation:role-local:product-export-confirmation:v5`,q=`ecdsa-derivation:role-local:product-export-authorization:v5`;function J(e){return{kind:`operation_step_up`}}function Y(e){return{authorizationKind:e.kind,authorizationId:e.evidenceSetDigest}}function X(){let e=globalThis.crypto;if(!e||typeof e.getRandomValues!=`function`)throw Error(`crypto.getRandomValues is required for threshold ECDSA export`);return r(e.getRandomValues(new Uint8Array(32)))}async function Z(e){let t=String(e.relayerUrl||``).trim().replace(/\/+$/g,``);if(!t)throw Error(`[SigningEngine][ecdsa-export] relayer URL is required`);if(e.authorization.kind===`wallet_session_bearer`&&!e.authorization.token.trim())throw Error(`[SigningEngine][ecdsa-export] Wallet Session operation credential is required`);let n={"Content-Type":`application/json`};e.authorization.kind===`wallet_session_bearer`&&(n.Authorization=`Bearer ${e.authorization.token}`);try{let r=await fetch(`${t}${y}`,{method:`POST`,credentials:e.authorization.kind===`legacy_cookie`?`include`:`omit`,headers:n,body:JSON.stringify({request:e.request,requestDigestB64u:e.requestDigestB64u})}),i=await r.json().catch(()=>null);if(!r.ok){let e=i&&typeof i==`object`&&!Array.isArray(i)?i:null;return{ok:!1,code:String(e?.code||`http_error`),message:String(e?.message||`HTTP ${r.status}`)}}return{ok:!0,value:p(i)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async function _t(e){return await Z({...e,authorization:{kind:`legacy_cookie`}})}async function vt(e){return await Z({relayerUrl:e.relayerUrl,request:e.request,requestDigestB64u:e.requestDigestB64u,authorization:{kind:`wallet_session_bearer`,token:e.operationCredential.token}})}function Q(e){let t=Math.min(e.issuedAtUnixMs+6e4,e.authorizationExpiresAtMsCeiling??1/0);if(Number.isFinite(t)&&t>e.issuedAtUnixMs)return t;throw new be({failure:ye(ve.expired),message:`Wallet Session expired before ECDSA export authorization`})}function yt(e){if(String(e.material.persistedMaterial.publicFacts.walletId)!==String(e.walletSessionUserId))throw Error(`[SigningEngine][ecdsa-export] explicit export wallet mismatch`)}async function $(e){return r(await t(n(e)))}function bt(e){switch(e.kind){case`rehydrated`:return e;case`device_link_required`:throw Error(`[SigningEngine][ecdsa-export] device_link_required: local threshold ECDSA material is unavailable`);case`corrupt`:throw Error(`[SigningEngine][ecdsa-export] local threshold ECDSA material is corrupt (${e.reason}): ${e.message}`);default:{let t=e;throw Error(`Unsupported ECDSA export material resolution: ${String(t)}`)}}}async function xt(e){return bt(await D({purpose:`explicit_key_export`,source:E(e.persistedMaterial),workerCtx:e.workerCtx}))}function St(e){let t=Y(e.material.operationAuthorization),n=e.material.persistedMaterial.publicFacts;return{version:q,operation:`explicit_key_export`,keyHandle:n.keyHandle,walletId:String(n.walletId),ecdsaThresholdKeyId:e.ecdsaThresholdKeyId,relayerKeyId:n.publicCapability.signer_set.selected_server.server_id,signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,contextBinding32B64u:e.contextBinding32B64u,publicIdentity:e.publicIdentity,exportRequestNonce32B64u:e.exportRequestNonce32B64u,confirmationDigest32B64u:e.confirmationDigest32B64u,issuedAtUnixMs:e.issuedAtUnixMs,expiresAtUnixMs:e.expiresAtUnixMs,authorizationKind:t.authorizationKind,authorizationId:t.authorizationId,materialActivation:v(e.material.persistedMaterial.materialActivation),participantIds:n.participantIds}}async function Ct(e,t){let n=t.persistedMaterial.publicFacts,r=v(t.persistedMaterial.materialActivation);switch(t.factorAuthorization.kind){case`passkey`:{let e=String(t.factorAuthorization.credential.rawId||t.factorAuthorization.credential.id||``).trim();if(!e)throw Error(`[SigningEngine][ecdsa-export] passkey authorization credential is missing`);if(e!==t.factorAuthorization.passkeyCredentialIdB64u)throw Error(`[SigningEngine][ecdsa-export] passkey export authorization credential mismatch`);break}case`email_otp_verified`:break;default:{let e=t.factorAuthorization;throw Error(`Unsupported ECDSA export authorization: ${String(e)}`)}}let i=Date.now(),a=Q({issuedAtUnixMs:i,authorizationExpiresAtMsCeiling:t.operationAuthorization.expiresAtMs}),o={derivationClientSharePublicKey33B64u:n.derivationClientSharePublicKey33B64u,relayerPublicKey33B64u:n.relayerPublicKey33B64u,groupPublicKey33B64u:n.groupPublicKey33B64u,ethereumAddress:n.ethereumAddress},s=X(),c=Y(t.operationAuthorization),l=await $({version:K,walletId:String(n.walletId),ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,relayerKeyId:n.publicCapability.signer_set.selected_server.server_id,contextBinding32B64u:n.contextBinding32B64u,publicIdentity:o,authorizationKind:c.authorizationKind,authorizationId:c.authorizationId,materialActivation:r,exportRequestNonce32B64u:s,issuedAtUnixMs:i,expiresAtUnixMs:a}),u=await $(St({ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,signingRootId:n.signingRootId,signingRootVersion:n.signingRootVersion,contextBinding32B64u:n.contextBinding32B64u,publicIdentity:o,exportRequestNonce32B64u:s,confirmationDigest32B64u:l,issuedAtUnixMs:i,expiresAtUnixMs:a,material:t})),d=n.publicCapability,f=`ecdsa-export:${s}`,p=await pe({workerCtx:e.getSignerWorkerContext(),command:{kind:`create_router_ab_ecdsa_explicit_export_ceremony_v1`,ceremonyId:f,request:{context:d.context,lifecycle:{lifecycle_id:f,work_kind:`key_export`,primitive_request_kind:`export`,root_share_epoch:d.activation_epoch,account_id:String(n.walletId),session_id:T.thresholdEcdsaSession(f),signer_set_id:d.signer_set.signer_set_id,selected_server_id:d.signer_set.selected_server.server_id},public_identity:d.public_identity,signer_set:d.signer_set,router_id:d.router_id,client_id:d.client_id,authorization:J(t.operationAuthorization),authorization_id:t.operationAuthorization.evidenceSetDigest,operation:t.operationAuthorization.operation,material_activation:r,export_authorization_digest_b64u:u,export_nonce:s,expires_at_ms:a,deriver_recipient_keys:d.deriver_recipient_keys}}});if(p.kind!==`router_ab_ecdsa_explicit_export_ceremony_created_v1`)throw Error(`[SigningEngine][ecdsa-export] strict export ceremony kind mismatch`);try{let i=await _t({relayerUrl:t.relayerUrl,request:p.request,requestDigestB64u:p.requestDigestB64u});if(!i.ok)throw Error(i.error||i.message||i.code||`Strict ECDSA explicit export request failed`);let a=await me({workerCtx:e.getSignerWorkerContext(),command:{kind:`finalize_router_ab_ecdsa_explicit_export_v1`,ceremonyId:f,clientProofFinalization:{kind:`finalize_encrypted_client_proof_bundles_v2`,bundles:i.value.response.bundles},signingWorkerExport:i.value.signing_worker_export,authorizationKind:c.authorizationKind,authorizationId:c.authorizationId,materialActivation:r,roleLocalMaterial:t.liveMaterial.liveHandle,roleLocalMaterialRef:t.liveMaterial.materialRef,publicFacts:n}});return{publicKeyHex:a.publicKeyHex,privateKeyHex:a.privateKeyHex,ethereumAddress:a.ethereumAddress}}catch(t){throw await ge({workerCtx:e.getSignerWorkerContext(),command:{kind:`close_router_ab_ecdsa_post_registration_ceremony_v1`,ceremonyId:f}}).catch(()=>void 0),t}}async function wt(e,t){let n=t.exportProvision.material;yt({material:n,walletSessionUserId:t.walletSessionUserId});let r=String(n.relayerUrl||``).trim();if(!r)throw Error(`[SigningEngine][ecdsa-export] relayer URL is required`);let i=n.persistedMaterial;return await Ct(e,{persistedMaterial:i,liveMaterial:await xt({persistedMaterial:i,workerCtx:e.getSignerWorkerContext()}),relayerUrl:r,operationAuthorization:t.exportProvision.authorization,factorAuthorization:t.factorAuthorization})}function Tt(t){let n=t.runtime.normalSigning.scope,r=t.operationAuthorization.operation,i=g(r.material_activation);if(r.operation_kind!==`evm.export_key`||r.wallet_id!==String(t.runtime.walletId)||r.key_handle!==t.runtime.publicFacts.keyHandle||r.relayer_key_id!==t.runtime.relayerKeyId||r.participant_ids[0]!==t.runtime.publicFacts.participantIds[0]||r.participant_ids[1]!==t.runtime.publicFacts.participantIds[1]||r.signing_worker_id!==n.signing_worker.server_id||r.normal_signing_scope.wallet_id!==n.wallet_id||r.normal_signing_scope.context.application_binding_digest_b64u!==n.context.application_binding_digest_b64u||r.normal_signing_scope.public_identity.context_binding_b64u!==n.public_identity.context_binding_b64u||r.normal_signing_scope.public_identity.threshold_public_key33_b64u!==n.public_identity.threshold_public_key33_b64u||r.normal_signing_scope.signing_worker.server_id!==n.signing_worker.server_id||!e(i,t.runtime.materialActivation)||!e(g(r.normal_signing_scope.material_activation),t.runtime.materialActivation))throw Error(`[SigningEngine][ecdsa-export] active Wallet Authority operation identity changed`)}async function Et(e,t){Tt(t);let n=t.runtime,r=n.normalSigning.scope;if(t.operationAuthorization.exportTopology.signer_set.selected_server.server_id!==r.signing_worker.server_id)throw Error(`[SigningEngine][ecdsa-export] active export topology changed`);let i=r.material_activation,a=Date.now(),o=Q({issuedAtUnixMs:a,authorizationExpiresAtMsCeiling:t.operationAuthorization.expiresAtMs}),s={derivationClientSharePublicKey33B64u:r.public_identity.derivation_client_share_public_key33_b64u,relayerPublicKey33B64u:r.public_identity.server_public_key33_b64u,groupPublicKey33B64u:r.public_identity.threshold_public_key33_b64u,ethereumAddress:n.publicFacts.thresholdOwnerAddress},l=X(),u=Y(t.operationAuthorization),d=await $({version:K,walletId:String(n.walletId),ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,relayerKeyId:n.relayerKeyId,contextBinding32B64u:r.public_identity.context_binding_b64u,publicIdentity:s,authorizationKind:u.authorizationKind,authorizationId:u.authorizationId,materialActivation:i,exportRequestNonce32B64u:l,issuedAtUnixMs:a,expiresAtUnixMs:o}),f=await $({version:q,operation:`explicit_key_export`,keyHandle:n.publicFacts.keyHandle,walletId:String(n.walletId),ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,relayerKeyId:n.relayerKeyId,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version,contextBinding32B64u:r.public_identity.context_binding_b64u,publicIdentity:s,exportRequestNonce32B64u:l,confirmationDigest32B64u:d,issuedAtUnixMs:a,expiresAtUnixMs:o,authorizationKind:u.authorizationKind,authorizationId:u.authorizationId,materialActivation:i,participantIds:n.publicFacts.participantIds}),p=`ecdsa-export:${l}`,m={context:r.context,lifecycle:{lifecycle_id:p,work_kind:`key_export`,primitive_request_kind:`export`,root_share_epoch:r.activation_epoch,account_id:r.wallet_id,session_id:T.thresholdEcdsaSession(p),signer_set_id:t.operationAuthorization.exportTopology.signer_set.signer_set_id,selected_server_id:t.operationAuthorization.exportTopology.signer_set.selected_server.server_id},public_identity:r.public_identity,signer_set:t.operationAuthorization.exportTopology.signer_set,router_id:t.operationAuthorization.exportTopology.router_id,client_id:String(n.walletId),authorization:J(t.operationAuthorization),operation:t.operationAuthorization.operation,authorization_id:c(t.operationAuthorization.evidenceSetDigest),material_activation:i,export_authorization_digest_b64u:f,export_nonce:l,expires_at_ms:o,deriver_recipient_keys:t.operationAuthorization.exportTopology.deriver_recipient_keys},h=await he({holderHandleId:n.holderRuntime.holderHandleId,request:m,workerCtx:e.getSignerWorkerContext()});if(h.kind!==`ecdsa_holder_ordinary_export_request_created_v1`)throw Error(`[SigningEngine][ecdsa-export] active holder export request kind mismatch`);let g=await vt({relayerUrl:t.relayerUrl,request:h.request,requestDigestB64u:h.requestDigestB64u,operationCredential:n.operationCredential});if(!g.ok)throw Error(g.error||g.message||g.code||`Active Wallet Authority ECDSA export request failed`);let _={wallet_id:r.wallet_id,key_handle:n.publicFacts.keyHandle,ecdsa_threshold_key_id:r.ecdsa_threshold_key_id,signing_root_id:r.signing_root_id,signing_root_version:r.signing_root_version,activation_epoch:r.activation_epoch,signing_worker_id:r.signing_worker.server_id,context_binding_b64u:r.public_identity.context_binding_b64u,threshold_public_key33_b64u:r.public_identity.threshold_public_key33_b64u,export_request_digest_b64u:h.requestDigestB64u,export_authorization_digest_b64u:f,export_nonce:l,authorization_kind:`verified_step_up`,authorization_id:t.operationAuthorization.evidenceSetDigest,material_activation:i,lifecycle_id:p,recipient_identity:h.request.client_id,recipient_public_key:h.request.client_ephemeral_public_key,expires_at_ms:h.request.expires_at_ms},v=await _e({holderHandleId:n.holderRuntime.holderHandleId,requestDigestB64u:h.requestDigestB64u,expectedBinding:_,forwardedResponse:g.value,workerCtx:e.getSignerWorkerContext()});return{publicKeyHex:v.publicKeyHex,privateKeyHex:v.privateKeyHex,ethereumAddress:v.ethereumAddress}}export{k as _,it as a,tt as c,mt as d,G as f,A as g,z as h,at as i,gt as l,B as m,wt as n,rt as o,V as p,ot as r,nt as s,Et as t,ht as u,xe as v,Se as y};
1
+ import{i as e}from"./domainIds-t1lp25yU.js";import{r as t,t as n}from"./digests-BIaE0DMd.js";import{i as r,r as i}from"./base64-BmKR3UqU.js";import{r as a}from"./secureRandomId-8LSc91aN.js";import{s as o}from"./walletDbName-Ca0rCq5r.js";import{g as s}from"./capabilityKinds-DVlGMspk.js";import{r as c}from"./canonicalPrimitives-Jd3i_Ngz.js";import{i as l,n as u}from"./signerDomain-BAsLT3XN.js";import{c as d,o as f}from"./ecdsaChainTarget-Bm5X4k-V.js";import{C as p,Ct as m,E as h,Nt as g,O as _,Pt as v,c as y}from"./digestEncoding-CqNXPZY9.js";import{B as ee,C as te,E as b,I as ne,R as re,S as ie,x,y as S,z as ae}from"./ecdsaCapabilityManifest-DAJEVjlP.js";import{C,h as oe,v as w}from"./emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js";import{r as T}from"./types-f7dyj5N6.js";import{o as se}from"./walletSessionAuthorizationStore-B9Vwkshr.js";import{t as ce}from"./thresholdEcdsa-CqR1fFA-.js";import{p as le}from"./nearEd25519YaoSigningPreparation-DHNk0F8e.js";import{a as ue,i as de,r as fe}from"./walletSessionAuthorizationProjection-BzUH6gHV.js";import{a as pe,d as me,i as he,n as ge,u as _e}from"./ecdsaDerivationClientWasm-AYOJgTJm.js";import{a as ve,r as ye,t as be}from"./walletSessionFailure-CxsVtroW.js";import{a as E,o as D}from"./signingQueue-dMFOFOP5.js";import{t as O}from"./bytes-DXo6uALR.js";const xe=`router-ab-ed25519-yao-seed-export-v1`;function Se(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e,n=typeof t.id==`string`&&t.id.trim()?t.id.trim():void 0;return t.success===!0&&`data`in t&&t.error===void 0?{id:n,success:!0,data:t.data}:t.success===!1&&typeof t.error==`string`&&t.data===void 0?{id:n,success:!1,error:t.error}:null}function k(e){return e.kind===`credential_free_ecdsa_session_activation_authorization_v1`}function Ce(e,t){return e.error||e.message||e.code||t}function A(e){return _({kind:`router_ab_ecdsa_post_registration_session_activation_v1`,public_capability:e.publicCapability,session_policy:{threshold_session_id:e.thresholdSessionId,wallet_session_mint_id:e.walletSessionMintId,ttl_ms:e.ttlMs,remaining_uses:e.remainingUses,runtime_policy_scope:e.runtimePolicyScope}})}function we(e,t){let n=t.public_identity;return e.applicationBindingDigestB64u===t.context.application_binding_digest_b64u&&e.contextBinding32B64u===n.context_binding_b64u&&e.derivationClientSharePublicKey33B64u===n.derivation_client_share_public_key33_b64u&&e.relayerPublicKey33B64u===n.server_public_key33_b64u&&e.groupPublicKey33B64u===n.threshold_public_key33_b64u&&e.ethereumAddress.toLowerCase()===O(i(n.ethereum_address20_b64u))&&S(e.publicCapability,t)}function Te(e,t){let n=e.normal_signing.scope;return n.wallet_id===String(t.walletId)&&n.ecdsa_threshold_key_id===String(t.ecdsaThresholdKeyId)&&n.signing_root_id===String(t.signingRootId)&&n.signing_root_version===String(t.signingRootVersion)}function Ee(e){let t=e.persistedRoleLocalMaterial.publicFacts;if(!S(e.sessionActivation.public_capability,e.publicCapability)||e.sessionActivation.session.threshold_session_id!==e.thresholdSessionId||!Te(e.sessionActivation,t))throw Error(`Strict ECDSA session activation returned a different registered key identity`)}function De(t){let n=t.sessionActivation.activation,r=t.sessionActivation.authorization,i=r.record,a=g(n.public_capability.material_activation),o=0;for(let t of i.capabilitySubjects)t.kind===`sign`&&t.keyFamily===`ecdsa_secp256k1`&&e(t.materialActivation,a)&&(o+=1);if(Ee({publicCapability:t.publicCapability,persistedRoleLocalMaterial:t.persistedRoleLocalMaterial,thresholdSessionId:t.thresholdSessionId,sessionActivation:n}),String(i.walletId)!==t.walletId||String(i.walletId)!==String(n.public_capability.client_id)||i.authMethodId!==t.persistedRoleLocalMaterial.authority.walletAuthMethodId||i.authorizationId!==n.session.authorization_id||i.quotaId!==n.session.quota_id||i.expiresAtMs!==n.session.expires_at_ms||n.session.remaining_uses!==t.remainingUses||r.operationCredential.walletSessionId!==n.session.wallet_session_id||!e(a,t.persistedRoleLocalMaterial.materialActivation)||o!==1)throw Error(`Strict ECDSA credential-free activation authority does not match its session`)}function j(e){let t=e.persistedRoleLocalMaterial.publicFacts;if(!e.walletId||!e.thresholdSessionId)throw Error(`Strict ECDSA session activation requires exact wallet and session identity`);if(!Number.isSafeInteger(e.ttlMs)||e.ttlMs<1)throw Error(`Strict ECDSA session activation requires a positive ttlMs`);if(!Number.isSafeInteger(e.remainingUses)||e.remainingUses<1)throw Error(`Strict ECDSA session activation requires positive remainingUses`);if(String(t.walletId)!==e.walletId||!we(t,e.publicCapability))throw Error(`Strict ECDSA session activation requires exact registered role-local material`)}function Oe(e){switch(e.kind){case`rehydrated`:return e;case`device_link_required`:throw Error(`device_link_required: registered ECDSA role-local material is unavailable on this device`);case`corrupt`:throw Error(`Registered ECDSA role-local material is corrupt (${e.reason}): ${e.message}`);default:{let t=e;throw Error(`Unsupported ECDSA role-local material resolution: ${String(t)}`)}}}async function M(e){let t=Oe(await D({purpose:`registration_activation`,source:E(e.persistedRoleLocalMaterial),workerCtx:e.workerCtx}));return{kind:`existing_ecdsa_role_local_material_activated_v1`,roleLocalMaterial:t.liveHandle,roleLocalMaterialRef:t.materialRef,publicFacts:e.persistedRoleLocalMaterial.publicFacts,publicCapability:e.publicCapability}}async function ke(e){j(e);let t=await ce(e.relayerUrl,{auth:e.routeAuth,request:A(e)});if(!t.ok)throw Error(Ce(t,`Strict ECDSA session activation failed`));return await N({workerCtx:e.workerCtx,publicCapability:e.publicCapability,persistedRoleLocalMaterial:e.persistedRoleLocalMaterial,walletId:e.walletId,thresholdSessionId:e.thresholdSessionId,ttlMs:e.ttlMs,remainingUses:e.remainingUses,runtimePolicyScope:e.runtimePolicyScope,sessionActivation:t.value})}async function N(e){return j(e),Ee({publicCapability:e.publicCapability,persistedRoleLocalMaterial:e.persistedRoleLocalMaterial,thresholdSessionId:e.thresholdSessionId,sessionActivation:e.sessionActivation}),{sessionActivation:e.sessionActivation,roleLocalActivation:await M(e)}}async function Ae(e){return j(e),De(e),{sessionActivation:e.sessionActivation.activation,authorization:e.sessionActivation.authorization,roleLocalActivation:await M(e)}}async function je(e,t){let n=o(e.lanePolicy.runtimePolicyScope);if(!n)throw Error(`Strict ECDSA session activation requires runtimePolicyScope`);let r={workerCtx:e.workerCtx,publicCapability:e.publicCapability,persistedRoleLocalMaterial:e.existingRoleLocalMaterial,walletId:String(e.key.walletId),thresholdSessionId:e.lanePolicy.thresholdSessionId,ttlMs:e.lanePolicy.ttlMs,remainingUses:e.lanePolicy.remainingUses,runtimePolicyScope:n},s=e.sessionActivation?k(e.sessionActivation)?await Ae({...r,sessionActivation:e.sessionActivation}):await N({...r,sessionActivation:e.sessionActivation}):await ke({...r,walletSessionMintId:Me(),relayerUrl:e.relayerUrl,routeAuth:e.bootstrapAuth}),c=s.sessionActivation.public_capability.public_identity,l=`authorization`in s?{thresholdSessionId:s.sessionActivation.session.threshold_session_id,authorizationSessionId:s.sessionActivation.session.authorization_session_id,authorizationId:s.sessionActivation.session.authorization_id,walletSessionId:s.sessionActivation.session.wallet_session_id,quotaId:s.sessionActivation.session.quota_id,expiresAtMs:s.sessionActivation.session.expires_at_ms,remainingUses:s.sessionActivation.session.remaining_uses,walletSession:s.authorization.record,operationCredential:s.authorization.operationCredential}:{thresholdSessionId:s.sessionActivation.session.threshold_session_id,authorizationSessionId:s.sessionActivation.session.authorization_session_id,authorizationId:s.sessionActivation.session.authorization_id,walletSessionId:s.sessionActivation.session.wallet_session_id,quotaId:s.sessionActivation.session.quota_id,expiresAtMs:s.sessionActivation.session.expires_at_ms,remainingUses:s.sessionActivation.session.remaining_uses,walletSession:s.sessionActivation.session.wallet_session,operationCredential:s.sessionActivation.session.operation_credential},u=await m({walletId:String(e.key.walletId),signingRootId:e.key.signingRootId,signingRootVersion:e.key.signingRootVersion});return{ok:!0,bootstrapKind:`strict_post_registration`,keygenSessionId:String(e.requestId||``).trim()||a(`tecdsa-keygen`,32,`threshold ECDSA session IDs`),rpId:t,keyHandle:String(e.keyHandle),clientVerifyingShareB64u:c.derivation_client_share_public_key33_b64u,thresholdEcdsaPublicKeyB64u:c.threshold_public_key33_b64u,ethereumAddress:O(i(c.ethereum_address20_b64u)),relayerKeyId:u,relayerVerifyingShareB64u:c.server_public_key33_b64u,participantIds:e.key.participantIds.map(Number),thresholdSessionId:l.thresholdSessionId,authorizationSessionId:l.authorizationSessionId,authorizationId:l.authorizationId,walletSessionId:l.walletSessionId,quotaId:l.quotaId,expiresAtMs:l.expiresAtMs,remainingUses:l.remainingUses,runtimePolicyScope:n,signingRootId:String(e.key.signingRootId),signingRootVersion:String(e.key.signingRootVersion),walletSession:l.walletSession,operationCredential:l.operationCredential,roleLocalActivation:s.roleLocalActivation,routerAbEcdsaDerivationNormalSigning:s.sessionActivation.normal_signing,secretSourceKind:`persisted_role_local`}}function Me(){let e=s(a(`wallet-session-mint`,32,`Wallet Session mint IDs`));if(!e.ok)throw Error(`Failed to create Wallet Session mint identity`);return e.value}async function Ne(e){let t=e.touchIdPrompt.getRpId();if(!t)return{ok:!1,code:`invalid_args`,message:`Missing rpId for WebAuthn`};try{return await je(e,t)}catch(e){return{ok:!1,code:`strict_post_registration_failed`,message:e instanceof Error?e.message:String(e)}}}const P=`stale_ecdsa_key_identity`;function Pe(e){if(!e)throw Error(`Strict ECDSA session bootstrap requires Wallet Session authority`);switch(e.kind){case`opaque_wallet_session_operation_credential_v1`:return e;case`publishable_key`:throw Error(`Strict ECDSA session bootstrap requires Wallet Session authority`)}throw Error(`Strict ECDSA session bootstrap authority is invalid`)}function Fe(e){let t=String(e.code||``).trim(),n=String(e.message||``).trim().toLowerCase();return t===`stale_session_state`&&n.includes(`threshold-ecdsa bootstrap`)&&n.includes(`client verifying share`)&&n.includes(`integrated key record`)}function Ie(e){let t=String(e.message||e.code||`threshold-ecdsa bootstrap failed`).trim(),n=Fe(e)?P:String(e.code||`threshold_ecdsa_bootstrap_failed`).trim()||`threshold_ecdsa_bootstrap_failed`,r=Error(t||`threshold-ecdsa bootstrap failed`);return r.code=n,r}function Le(e){let t=Error(e);return t.code=P,t}function Re(e){switch(e.authKind){case`email_otp`:return`email_otp`;case`passkey`:return`passkey`}return`unknown`}function ze(e){switch(e.bootstrap.secretSourceKind){case`persisted_role_local`:return e.request.authKind===`email_otp`?x({authSubjectId:e.request.emailOtpWorkerSessionHandle.authSubjectId}):ie({credentialIdB64u:e.request.passkeyCredentialIdB64u,rpId:e.bootstrap.rpId})}}function F(e,t){let n=String(e||``).trim().toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(n))throw Error(`threshold-ecdsa exact activation returned invalid ${t}`);return n}function Be(e){let t=F(e.bootstrapOwnerAddress,`server owner address`);if(t!==F(e.key.thresholdOwnerAddress,`key owner address`))throw Le(`threshold-ecdsa exact activation owner address mismatches server bootstrap result`);return t}async function Ve(e,t){let n=d(String(t.key.walletId)),r=t.lanePolicy.chainTarget,i=String(t.lanePolicy.thresholdSessionId).trim();if(e.routerAbNormalSigning.mode!==`enabled`)throw Error(`Router A/B ECDSA derivation normal signing must be enabled for activation`);let a={walletId:n,chainTarget:r,targetKey:f(r),operationId:i||null,authMethod:Re(t),evmFamilyKeyFingerprint:oe(t.key),keyHandle:t.keyHandle,chainTargetKey:f(r),ecdsaThresholdKeyId:String(t.key.ecdsaThresholdKeyId),thresholdSessionId:i||null,freshAuthRetrySideEffectState:`not_applicable`,hasRequestedEcdsaThresholdKeyId:!0,requestedSessionId:i||null,authKind:t.walletSessionRouteAuth?.kind||`none`,passkeyCredentialBound:t.authKind===`passkey`},o;try{o=await Ne({touchIdPrompt:e.touchIdPrompt,relayerUrl:t.relayerUrl,requestId:t.requestId,workerCtx:e.workerCtx,...`preauthorizedSessionActivation`in t&&t.preauthorizedSessionActivation?{sessionActivation:t.preauthorizedSessionActivation}:{bootstrapAuth:Pe(t.walletSessionRouteAuth)},keyHandle:t.keyHandle,key:t.key,lanePolicy:t.lanePolicy,publicCapability:t.publicCapability,existingRoleLocalMaterial:t.existingRoleLocalMaterial})}catch(e){try{console.warn(`[threshold-ecdsa][bootstrap][exception]`,{...a,message:e instanceof Error?e.message:String(e)})}catch{}throw e}if(!o.ok){try{console.warn(`[threshold-ecdsa][bootstrap][failure]`,{...a,code:o.code||``,message:o.message||``})}catch{}throw Ie({code:o.code,message:o.message})}let s=String(t.key.ecdsaThresholdKeyId).trim();if(!s)throw Error(`threshold-ecdsa bootstrap returned empty ecdsaThresholdKeyId`);let c=ne(s),l=ae(String(o.keyHandle||``).trim()),u=String(o.relayerKeyId||``).trim();if(!u)throw Error(`threshold-ecdsa bootstrap returned empty relayerKeyId`);let p=ee(u),m=String(o.clientVerifyingShareB64u||``).trim();if(!m)throw Error(`threshold-ecdsa bootstrap returned empty clientVerifyingShareB64u`);let h=re(m),g=String(o.thresholdSessionId||``).trim();if(!g)throw Error(`threshold-ecdsa bootstrap returned empty thresholdSessionId`);let _=Number(o.expiresAtMs);if(!Number.isFinite(_))throw Error(`threshold-ecdsa bootstrap returned invalid expiresAtMs`);let v=Number(o.remainingUses);if(!Number.isFinite(v))throw Error(`threshold-ecdsa bootstrap returned invalid remainingUses`);let y=t.key.participantIds.map(e=>Number(e));if(!y)throw Error(`threshold-ecdsa bootstrap returned empty participantIds`);let b=Be({key:t.key,bootstrapOwnerAddress:o.ethereumAddress}),ie=te({walletId:n,chainTarget:r,keyHandle:l,ecdsaThresholdKeyId:c,signingRootId:o.signingRootId,signingRootVersion:o.signingRootVersion,applicationBindingDigestB64u:o.roleLocalActivation.publicCapability.context.application_binding_digest_b64u,clientParticipantId:1,relayerParticipantId:2,participantIds:y,contextBinding32B64u:o.roleLocalActivation.publicFacts.contextBinding32B64u,derivationClientSharePublicKey33B64u:o.roleLocalActivation.publicFacts.derivationClientSharePublicKey33B64u,relayerPublicKey33B64u:o.roleLocalActivation.publicFacts.relayerPublicKey33B64u,groupPublicKey33B64u:o.roleLocalActivation.publicFacts.groupPublicKey33B64u,ethereumAddress:o.roleLocalActivation.publicFacts.ethereumAddress,publicCapability:o.roleLocalActivation.publicCapability}),x=o.routerAbEcdsaDerivationNormalSigning,S=o.roleLocalActivation.roleLocalMaterial,C=ze({request:t,bootstrap:o}),w={ok:!0,thresholdSessionId:g,authorizationSessionId:o.authorizationSessionId,authorizationId:o.authorizationId,walletSessionId:o.walletSessionId,quotaId:o.quotaId,expiresAtMs:_,remainingUses:v,runtimePolicyScope:o.runtimePolicyScope,walletSession:o.walletSession,operationCredential:o.operationCredential,clientVerifyingShareB64u:h};return{thresholdEcdsaKeyRef:{type:`threshold-ecdsa-secp256k1`,userId:n,chainTarget:r,relayerUrl:t.relayerUrl,keyHandle:l,ecdsaThresholdKeyId:c,backendBinding:{materialKind:`role_local_worker_handle`,relayerKeyId:p,clientVerifyingShareB64u:h,roleLocalMaterialHandle:S,roleLocalMaterialRef:o.roleLocalActivation.roleLocalMaterialRef,publicFacts:ie,authMethod:C},participantIds:y,thresholdEcdsaPublicKeyB64u:o.thresholdEcdsaPublicKeyB64u,ethereumAddress:b,relayerVerifyingShareB64u:o.relayerVerifyingShareB64u,routerAbEcdsaDerivationNormalSigning:x},session:w}}async function He(e,t){return await Ve(e,t)}function Ue(e){let t;try{t=c(e.evidenceSetDigest)}catch(e){throw Error(e instanceof Error?e.message:`ECDSA explicit export evidence digest is invalid`)}let n=Math.floor(Number(e.expiresAtMs)),r=h(e.operation);if(r.operation_kind!==`evm.export_key`)throw Error(`ECDSA explicit export operation kind is invalid`);if(!Number.isSafeInteger(n)||n<=Date.now())throw Error(`ECDSA explicit export operation authorization expiry is invalid`);let i=We(e.unseal);return{kind:`verified_step_up`,evidenceSetDigest:t,operation:r,expiresAtMs:n,quotaUse:`none`,unseal:i}}function We(e){switch(e.kind){case`not_requested`:return{kind:`not_requested`};case`email_otp_grant`:{let t=String(e.grant||``).trim(),n=String(e.challenge_id||``).trim();if(!t||!n)throw Error(`ECDSA explicit export Email OTP unseal grant is invalid`);return{kind:`email_otp_grant`,grant:t,challenge_id:n}}default:{let t=e;throw Error(`Unsupported ECDSA explicit export unseal state: ${String(t)}`)}}}async function I(e){let t=String(e.relayerUrl||``).trim();if(!t)throw Error(`ECDSA explicit export relayer URL is required`);return{kind:`explicit_key_export_ecdsa_activation_result`,purpose:`explicit_key_export`,material:{kind:`auth_neutral_ecdsa_export_material_v1`,relayerUrl:t,persistedMaterial:e.existingRoleLocalMaterial},authorization:Ue(e.authorization)}}function L(e,t){let n=String(e||t||``).trim();if(!n)throw Error(`Missing relayer url (configs.network.relayer.url)`);return n}function R(e){return`key`in e&&!!e.key&&`keyHandle`in e&&!!String(e.keyHandle||``).trim()}function z(e){return R(e)?e.key.walletId:e.walletId}function B(e){return R(e)?e.lanePolicy.chainTarget:e.chainTarget}function Ge(e){return e.kind===`email_otp_ecdsa_bootstrap`?{authMethod:u.emailOtp,signerSource:l.emailOtpRegistration}:{authMethod:u.passkey,signerSource:l.passkeyRegistration}}function Ke(e){switch(e.kind){case`passkey_preauthorized_ecdsa_bootstrap`:case`wallet_session_reconnect_ecdsa_bootstrap`:return e.authorizationAuthority;case`passkey_fresh_ecdsa_bootstrap`:case`email_otp_ecdsa_bootstrap`:return e.existingRoleLocalMaterial.authority}}function qe(e){if(!(`sessionActivation`in e.request)||!e.request.sessionActivation)return;let t=e.request.sessionActivation,n=k(t)?t.activation:t,r=k(t)?t.authorization:{record:t.session.wallet_session,operationCredential:t.session.operation_credential};ue({walletId:e.walletId,authority:e.authority,walletSession:r.record,operationCredential:r.operationCredential,expectedAuthorizationId:n.session.authorization_id,expectedWalletSessionId:n.session.wallet_session_id,expectedQuotaId:n.session.quota_id,expectedExpiresAtMs:n.session.expires_at_ms}),e.request.kind===`passkey_preauthorized_ecdsa_bootstrap`&&de({expected:e.request.authorizationIdentity,walletSession:r.record})}function Je(e,t){let n=(e,n,r)=>({kind:`session_bootstrap`,purpose:`transaction_signing`,relayerUrl:t,keyHandle:C(e.keyHandle),key:e.key,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,...e.requestId?{requestId:e.requestId}:{},...r,...n?{walletSessionRouteAuth:n}:{}}),r=e=>({kind:`session_bootstrap`,purpose:`transaction_signing`,relayerUrl:t,keyHandle:C(e.keyHandle),key:e.key,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,...e.requestId?{requestId:e.requestId}:{},authKind:`passkey`,passkeyCredentialIdB64u:e.passkeyCredentialIdB64u,preauthorizedSessionActivation:e.sessionActivation});switch(e.kind){case`passkey_fresh_ecdsa_bootstrap`:return n(e,e.routeAuth,{authKind:`passkey`,passkeyCredentialIdB64u:e.passkeyCredentialIdB64u});case`passkey_preauthorized_ecdsa_bootstrap`:return r(e);case`wallet_session_reconnect_ecdsa_bootstrap`:return n(e,e.routeAuth,{authKind:`passkey`,passkeyCredentialIdB64u:e.passkeyCredentialIdB64u});case`email_otp_ecdsa_bootstrap`:{let r={authKind:`email_otp`,emailOtpWorkerSessionHandle:e.emailOtpWorkerSessionHandle};return e.sessionActivation?{kind:`session_bootstrap`,purpose:`transaction_signing`,relayerUrl:t,keyHandle:C(e.keyHandle),key:e.key,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,...e.requestId?{requestId:e.requestId}:{},...r,preauthorizedSessionActivation:e.sessionActivation}:n(e,e.routeAuth,r)}}throw Error(`[SigningEngine][ecdsa] unsupported ECDSA bootstrap request`)}function Ye(e,t){return{purpose:`explicit_key_export`,relayerUrl:t,existingRoleLocalMaterial:e.existingRoleLocalMaterial,authorization:e.authorization}}function Xe(e,t){return{purpose:`explicit_key_export`,relayerUrl:t,existingRoleLocalMaterial:e.existingRoleLocalMaterial,authorization:e.authorization}}async function Ze(e,t){if(t.kind===`reuse_warm_ecdsa_bootstrap`)throw Error(`[SigningEngine][ecdsa] reuse_warm bootstrap must resolve an existing exact material request before activation`);let n=Ke(t),r=d(z(t)),i=B(t),a=L(t.relayerUrl,e.defaultRelayerUrl),o=e.getSignerWorkerContext(),s={touchIdPrompt:e.touchIdPrompt,workerCtx:o,routerAbNormalSigning:e.routerAbNormalSigning};qe({request:t,walletId:r,authority:n});let c=await He(s,Je(t,a)),l=Ge(t);return await e.persistThresholdEcdsaBootstrapForWalletTarget({walletId:r,chainTarget:i,bootstrap:c,signerAuth:l}),await t.beforeAuthorizationPersistence?.(),await fe(se,{walletId:r,authority:n,bootstrap:c}),c}async function Qe(e,t){return await I(Ye(t,L(t.relayerUrl,e.defaultRelayerUrl)))}async function $e(e,t){return await I(Xe(t,L(t.relayerUrl,e.defaultRelayerUrl)))}async function V(e,t,n){let r=String(t),i=(e.get(r)||Promise.resolve()).catch(()=>void 0),a,o=new Promise(e=>{a=e}),s=i.then(()=>o);e.set(r,s),await i;try{return await n()}finally{a(),e.get(r)===s&&e.delete(r)}}function et(e,t){return t.runtimeScopeBootstrap&&(e.runtimeScopeBootstrap=t.runtimeScopeBootstrap),t.operationIntent&&(e.operationIntent=t.operationIntent),typeof t.ttlMs==`number`&&(e.ttlMs=t.ttlMs),e}function H(e){return et({kind:`email_otp_ecdsa_activation`,purpose:`transaction_signing`,walletKey:e.walletKey,lanePolicy:e.lanePolicy,publicCapability:e.publicCapability,existingRoleLocalMaterial:e.existingRoleLocalMaterial,source:e.source,relayerUrl:e.relayerUrl,sessionIdentity:e.sessionIdentity,sessionKind:e.sessionKind,sessionBudgetUses:e.sessionBudgetUses,runtimePolicy:e.runtimePolicy,emailOtpWorkerSessionHandle:e.emailOtpWorkerSessionHandle,emailOtpAuthContext:e.emailOtpAuthContext,...`preauthorizedSessionActivation`in e?{preauthorizedSessionActivation:e.preauthorizedSessionActivation}:{walletSessionRouteAuth:e.walletSessionRouteAuth}},e)}function U(e){if(le(e.context)!==e.expected)throw Error(`Email OTP ${e.label} activation requires ${e.expected} retention`)}function tt(e){return U({context:e.emailOtpAuthContext,expected:`session`,label:`session bootstrap`}),H(e)}function nt(e){return U({context:e.emailOtpAuthContext,expected:`session`,label:`recovered session`}),H(e)}function rt(e){return U({context:e.emailOtpAuthContext,expected:`session`,label:`preauthorized session bootstrap`}),H(e)}function it(e){return U({context:e.emailOtpAuthContext,expected:`single_use`,label:`per-operation reauth`}),H(e)}function at(e){return{kind:`email_otp_ecdsa_export_activation`,purpose:`explicit_key_export`,existingRoleLocalMaterial:e.existingRoleLocalMaterial,relayerUrl:e.relayerUrl,authorization:e.authorization}}function ot(e){return{kind:`passkey_ecdsa_export_activation`,purpose:`explicit_key_export`,existingRoleLocalMaterial:e.existingRoleLocalMaterial,relayerUrl:e.relayerUrl,authorization:e.authorization}}function st(e){switch(e.kind){case`default_policy`:return;case`scoped_policy`:return e.scope}throw Error(`[SigningEngine][ecdsa] unsupported ECDSA activation policy`)}function W(e,t){t.runtimeScopeBootstrap&&(e.runtimeScopeBootstrap=t.runtimeScopeBootstrap),t.operationIntent&&(e.operationIntent=t.operationIntent);let n=st(t.runtimePolicy);return`walletId`in e&&(typeof t.ttlMs==`number`&&(e.ttlMs=t.ttlMs),n&&(e.runtimePolicyScope=n)),e}function ct(e){switch(e.kind){case`passkey_ecdsa_activation`:return{kind:`passkey_existing_session_activation`,request:e};case`email_otp_ecdsa_activation`:return{kind:`email_otp_existing_session_activation`,request:e}}throw Error(`[SigningEngine][ecdsa] unsupported activation request`)}function lt(e){let t=String(e.webauthnAuthentication.rawId||e.webauthnAuthentication.id||``).trim();if(!t)throw Error(`[SigningEngine][ecdsa] passkey activation requires credential identity`);return t}function ut(e){let t=ct(e);switch(t.kind){case`passkey_existing_session_activation`:return W({kind:`passkey_fresh_ecdsa_bootstrap`,keyHandle:t.request.walletKey.keyHandle,key:w(t.request.walletKey),lanePolicy:t.request.lanePolicy,publicCapability:t.request.publicCapability,existingRoleLocalMaterial:t.request.existingRoleLocalMaterial,source:t.request.source,relayerUrl:t.request.relayerUrl,requestId:t.request.requestId,passkeyCredentialIdB64u:lt(t.request),routeAuth:t.request.walletSessionRouteAuth},t.request);case`email_otp_existing_session_activation`:{let e={kind:`email_otp_ecdsa_bootstrap`,keyHandle:t.request.walletKey.keyHandle,key:w(t.request.walletKey),lanePolicy:t.request.lanePolicy,publicCapability:t.request.publicCapability,existingRoleLocalMaterial:t.request.existingRoleLocalMaterial,source:`email_otp`,relayerUrl:t.request.relayerUrl,emailOtpWorkerSessionHandle:t.request.emailOtpWorkerSessionHandle,emailOtpAuthContext:t.request.emailOtpAuthContext};return t.request.preauthorizedSessionActivation?W({...e,sessionActivation:t.request.preauthorizedSessionActivation},t.request):W({...e,routeAuth:t.request.walletSessionRouteAuth},t.request)}}throw Error(`[SigningEngine][ecdsa] unsupported activation request`)}function dt(e){return{kind:`passkey_ecdsa_export_bootstrap`,purpose:`explicit_key_export`,existingRoleLocalMaterial:e.existingRoleLocalMaterial,relayerUrl:e.relayerUrl,authorization:e.authorization}}async function ft(e){let t=e.bootstrap.thresholdEcdsaKeyRef.backendBinding;if(!t)throw Error(`[WarmSessionStore] threshold ECDSA bootstrap is missing its backend binding`);let n=pt(t);if(!n)return;let r=await e.deps.persistEcdsaRoleLocalReadyRecord({record:n,storageKeyFacts:b(n)});if(!r.ok)throw Error(`[WarmSessionStore] threshold ECDSA role-local ready record persistence failed (${r.code}): ${r.message}`)}function pt(e){switch(e.materialKind){case`role_local_ready_state_blob`:return e.ecdsaRoleLocalReadyRecord;case`role_local_worker_handle`:case`role_local_durable_public_anchor`:case`role_local_durable_sealed_ref`:case`metadata_only`:return null;default:{let t=e;throw Error(`[WarmSessionStore] unsupported threshold ECDSA backend binding: ${JSON.stringify(t)}`)}}}async function G(e,t){let n=d(z(t));return await V(e.queueByWallet,n,async()=>{let n=await Ze(e.activationDeps,t);return await ft({deps:e,bootstrap:n}),n})}async function mt(e,t){return await G(e,ut(t))}async function ht(e,t){return await Qe(e.activationDeps,dt(t))}async function gt(e,t){let n={kind:`email_otp_ecdsa_export_bootstrap`,purpose:`explicit_key_export`,existingRoleLocalMaterial:t.existingRoleLocalMaterial,relayerUrl:t.relayerUrl,authorization:t.authorization};return await $e(e.activationDeps,n)}const K=`ecdsa-derivation:role-local:product-export-confirmation:v5`,q=`ecdsa-derivation:role-local:product-export-authorization:v5`;function J(e){return{kind:`operation_step_up`}}function Y(e){return{authorizationKind:e.kind,authorizationId:e.evidenceSetDigest}}function X(){let e=globalThis.crypto;if(!e||typeof e.getRandomValues!=`function`)throw Error(`crypto.getRandomValues is required for threshold ECDSA export`);return r(e.getRandomValues(new Uint8Array(32)))}async function Z(e){let t=String(e.relayerUrl||``).trim().replace(/\/+$/g,``);if(!t)throw Error(`[SigningEngine][ecdsa-export] relayer URL is required`);if(e.authorization.kind===`wallet_session_bearer`&&!e.authorization.token.trim())throw Error(`[SigningEngine][ecdsa-export] Wallet Session operation credential is required`);let n={"Content-Type":`application/json`};e.authorization.kind===`wallet_session_bearer`&&(n.Authorization=`Bearer ${e.authorization.token}`);try{let r=await fetch(`${t}${y}`,{method:`POST`,credentials:e.authorization.kind===`legacy_cookie`?`include`:`omit`,headers:n,body:JSON.stringify({request:e.request,requestDigestB64u:e.requestDigestB64u})}),i=await r.json().catch(()=>null);if(!r.ok){let e=i&&typeof i==`object`&&!Array.isArray(i)?i:null;return{ok:!1,code:String(e?.code||`http_error`),message:String(e?.message||`HTTP ${r.status}`)}}return{ok:!0,value:p(i)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async function _t(e){return await Z({...e,authorization:{kind:`legacy_cookie`}})}async function vt(e){return await Z({relayerUrl:e.relayerUrl,request:e.request,requestDigestB64u:e.requestDigestB64u,authorization:{kind:`wallet_session_bearer`,token:e.operationCredential.token}})}function Q(e){let t=Math.min(e.issuedAtUnixMs+6e4,e.authorizationExpiresAtMsCeiling??1/0);if(Number.isFinite(t)&&t>e.issuedAtUnixMs)return t;throw new be({failure:ye(ve.expired),message:`Wallet Session expired before ECDSA export authorization`})}function yt(e){if(String(e.material.persistedMaterial.publicFacts.walletId)!==String(e.walletSessionUserId))throw Error(`[SigningEngine][ecdsa-export] explicit export wallet mismatch`)}async function $(e){return r(await t(n(e)))}function bt(e){switch(e.kind){case`rehydrated`:return e;case`device_link_required`:throw Error(`[SigningEngine][ecdsa-export] device_link_required: local threshold ECDSA material is unavailable`);case`corrupt`:throw Error(`[SigningEngine][ecdsa-export] local threshold ECDSA material is corrupt (${e.reason}): ${e.message}`);default:{let t=e;throw Error(`Unsupported ECDSA export material resolution: ${String(t)}`)}}}async function xt(e){return bt(await D({purpose:`explicit_key_export`,source:E(e.persistedMaterial),workerCtx:e.workerCtx}))}function St(e){let t=Y(e.material.operationAuthorization),n=e.material.persistedMaterial.publicFacts;return{version:q,operation:`explicit_key_export`,keyHandle:n.keyHandle,walletId:String(n.walletId),ecdsaThresholdKeyId:e.ecdsaThresholdKeyId,relayerKeyId:n.publicCapability.signer_set.selected_server.server_id,signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,contextBinding32B64u:e.contextBinding32B64u,publicIdentity:e.publicIdentity,exportRequestNonce32B64u:e.exportRequestNonce32B64u,confirmationDigest32B64u:e.confirmationDigest32B64u,issuedAtUnixMs:e.issuedAtUnixMs,expiresAtUnixMs:e.expiresAtUnixMs,authorizationKind:t.authorizationKind,authorizationId:t.authorizationId,materialActivation:v(e.material.persistedMaterial.materialActivation),participantIds:n.participantIds}}async function Ct(e,t){let n=t.persistedMaterial.publicFacts,r=v(t.persistedMaterial.materialActivation);switch(t.factorAuthorization.kind){case`passkey`:{let e=String(t.factorAuthorization.credential.rawId||t.factorAuthorization.credential.id||``).trim();if(!e)throw Error(`[SigningEngine][ecdsa-export] passkey authorization credential is missing`);if(e!==t.factorAuthorization.passkeyCredentialIdB64u)throw Error(`[SigningEngine][ecdsa-export] passkey export authorization credential mismatch`);break}case`email_otp_verified`:break;default:{let e=t.factorAuthorization;throw Error(`Unsupported ECDSA export authorization: ${String(e)}`)}}let i=Date.now(),a=Q({issuedAtUnixMs:i,authorizationExpiresAtMsCeiling:t.operationAuthorization.expiresAtMs}),o={derivationClientSharePublicKey33B64u:n.derivationClientSharePublicKey33B64u,relayerPublicKey33B64u:n.relayerPublicKey33B64u,groupPublicKey33B64u:n.groupPublicKey33B64u,ethereumAddress:n.ethereumAddress},s=X(),c=Y(t.operationAuthorization),l=await $({version:K,walletId:String(n.walletId),ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,relayerKeyId:n.publicCapability.signer_set.selected_server.server_id,contextBinding32B64u:n.contextBinding32B64u,publicIdentity:o,authorizationKind:c.authorizationKind,authorizationId:c.authorizationId,materialActivation:r,exportRequestNonce32B64u:s,issuedAtUnixMs:i,expiresAtUnixMs:a}),u=await $(St({ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,signingRootId:n.signingRootId,signingRootVersion:n.signingRootVersion,contextBinding32B64u:n.contextBinding32B64u,publicIdentity:o,exportRequestNonce32B64u:s,confirmationDigest32B64u:l,issuedAtUnixMs:i,expiresAtUnixMs:a,material:t})),d=n.publicCapability,f=`ecdsa-export:${s}`,p=await pe({workerCtx:e.getSignerWorkerContext(),command:{kind:`create_router_ab_ecdsa_explicit_export_ceremony_v1`,ceremonyId:f,request:{context:d.context,lifecycle:{lifecycle_id:f,work_kind:`key_export`,primitive_request_kind:`export`,root_share_epoch:d.activation_epoch,account_id:String(n.walletId),session_id:T.thresholdEcdsaSession(f),signer_set_id:d.signer_set.signer_set_id,selected_server_id:d.signer_set.selected_server.server_id},public_identity:d.public_identity,signer_set:d.signer_set,router_id:d.router_id,client_id:d.client_id,authorization:J(t.operationAuthorization),authorization_id:t.operationAuthorization.evidenceSetDigest,operation:t.operationAuthorization.operation,material_activation:r,export_authorization_digest_b64u:u,export_nonce:s,expires_at_ms:a,deriver_recipient_keys:d.deriver_recipient_keys}}});if(p.kind!==`router_ab_ecdsa_explicit_export_ceremony_created_v1`)throw Error(`[SigningEngine][ecdsa-export] strict export ceremony kind mismatch`);try{let i=await _t({relayerUrl:t.relayerUrl,request:p.request,requestDigestB64u:p.requestDigestB64u});if(!i.ok)throw Error(i.error||i.message||i.code||`Strict ECDSA explicit export request failed`);let a=await me({workerCtx:e.getSignerWorkerContext(),command:{kind:`finalize_router_ab_ecdsa_explicit_export_v1`,ceremonyId:f,clientProofFinalization:{kind:`finalize_encrypted_client_proof_bundles_v2`,bundles:i.value.response.bundles},signingWorkerExport:i.value.signing_worker_export,authorizationKind:c.authorizationKind,authorizationId:c.authorizationId,materialActivation:r,roleLocalMaterial:t.liveMaterial.liveHandle,roleLocalMaterialRef:t.liveMaterial.materialRef,publicFacts:n}});return{publicKeyHex:a.publicKeyHex,privateKeyHex:a.privateKeyHex,ethereumAddress:a.ethereumAddress}}catch(t){throw await ge({workerCtx:e.getSignerWorkerContext(),command:{kind:`close_router_ab_ecdsa_post_registration_ceremony_v1`,ceremonyId:f}}).catch(()=>void 0),t}}async function wt(e,t){let n=t.exportProvision.material;yt({material:n,walletSessionUserId:t.walletSessionUserId});let r=String(n.relayerUrl||``).trim();if(!r)throw Error(`[SigningEngine][ecdsa-export] relayer URL is required`);let i=n.persistedMaterial;return await Ct(e,{persistedMaterial:i,liveMaterial:await xt({persistedMaterial:i,workerCtx:e.getSignerWorkerContext()}),relayerUrl:r,operationAuthorization:t.exportProvision.authorization,factorAuthorization:t.factorAuthorization})}function Tt(t){let n=t.runtime.normalSigning.scope,r=t.operationAuthorization.operation,i=g(r.material_activation);if(r.operation_kind!==`evm.export_key`||r.wallet_id!==String(t.runtime.walletId)||r.key_handle!==t.runtime.publicFacts.keyHandle||r.relayer_key_id!==t.runtime.relayerKeyId||r.participant_ids[0]!==t.runtime.publicFacts.participantIds[0]||r.participant_ids[1]!==t.runtime.publicFacts.participantIds[1]||r.signing_worker_id!==n.signing_worker.server_id||r.normal_signing_scope.wallet_id!==n.wallet_id||r.normal_signing_scope.context.application_binding_digest_b64u!==n.context.application_binding_digest_b64u||r.normal_signing_scope.public_identity.context_binding_b64u!==n.public_identity.context_binding_b64u||r.normal_signing_scope.public_identity.threshold_public_key33_b64u!==n.public_identity.threshold_public_key33_b64u||r.normal_signing_scope.signing_worker.server_id!==n.signing_worker.server_id||!e(i,t.runtime.materialActivation)||!e(g(r.normal_signing_scope.material_activation),t.runtime.materialActivation))throw Error(`[SigningEngine][ecdsa-export] active Wallet Authority operation identity changed`)}async function Et(e,t){Tt(t);let n=t.runtime,r=n.normalSigning.scope;if(t.operationAuthorization.exportTopology.signer_set.selected_server.server_id!==r.signing_worker.server_id)throw Error(`[SigningEngine][ecdsa-export] active export topology changed`);let i=r.material_activation,a=Date.now(),o=Q({issuedAtUnixMs:a,authorizationExpiresAtMsCeiling:t.operationAuthorization.expiresAtMs}),s={derivationClientSharePublicKey33B64u:r.public_identity.derivation_client_share_public_key33_b64u,relayerPublicKey33B64u:r.public_identity.server_public_key33_b64u,groupPublicKey33B64u:r.public_identity.threshold_public_key33_b64u,ethereumAddress:n.publicFacts.thresholdOwnerAddress},l=X(),u=Y(t.operationAuthorization),d=await $({version:K,walletId:String(n.walletId),ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,relayerKeyId:n.relayerKeyId,contextBinding32B64u:r.public_identity.context_binding_b64u,publicIdentity:s,authorizationKind:u.authorizationKind,authorizationId:u.authorizationId,materialActivation:i,exportRequestNonce32B64u:l,issuedAtUnixMs:a,expiresAtUnixMs:o}),f=await $({version:q,operation:`explicit_key_export`,keyHandle:n.publicFacts.keyHandle,walletId:String(n.walletId),ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,relayerKeyId:n.relayerKeyId,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version,contextBinding32B64u:r.public_identity.context_binding_b64u,publicIdentity:s,exportRequestNonce32B64u:l,confirmationDigest32B64u:d,issuedAtUnixMs:a,expiresAtUnixMs:o,authorizationKind:u.authorizationKind,authorizationId:u.authorizationId,materialActivation:i,participantIds:n.publicFacts.participantIds}),p=`ecdsa-export:${l}`,m={context:r.context,lifecycle:{lifecycle_id:p,work_kind:`key_export`,primitive_request_kind:`export`,root_share_epoch:r.activation_epoch,account_id:r.wallet_id,session_id:T.thresholdEcdsaSession(p),signer_set_id:t.operationAuthorization.exportTopology.signer_set.signer_set_id,selected_server_id:t.operationAuthorization.exportTopology.signer_set.selected_server.server_id},public_identity:r.public_identity,signer_set:t.operationAuthorization.exportTopology.signer_set,router_id:t.operationAuthorization.exportTopology.router_id,client_id:String(n.walletId),authorization:J(t.operationAuthorization),operation:t.operationAuthorization.operation,authorization_id:c(t.operationAuthorization.evidenceSetDigest),material_activation:i,export_authorization_digest_b64u:f,export_nonce:l,expires_at_ms:o,deriver_recipient_keys:t.operationAuthorization.exportTopology.deriver_recipient_keys},h=await he({holderHandleId:n.holderRuntime.holderHandleId,request:m,workerCtx:e.getSignerWorkerContext()});if(h.kind!==`ecdsa_holder_ordinary_export_request_created_v1`)throw Error(`[SigningEngine][ecdsa-export] active holder export request kind mismatch`);let g=await vt({relayerUrl:t.relayerUrl,request:h.request,requestDigestB64u:h.requestDigestB64u,operationCredential:n.operationCredential});if(!g.ok)throw Error(g.error||g.message||g.code||`Active Wallet Authority ECDSA export request failed`);let _={wallet_id:r.wallet_id,key_handle:n.publicFacts.keyHandle,ecdsa_threshold_key_id:r.ecdsa_threshold_key_id,signing_root_id:r.signing_root_id,signing_root_version:r.signing_root_version,activation_epoch:r.activation_epoch,signing_worker_id:r.signing_worker.server_id,context_binding_b64u:r.public_identity.context_binding_b64u,threshold_public_key33_b64u:r.public_identity.threshold_public_key33_b64u,export_request_digest_b64u:h.requestDigestB64u,export_authorization_digest_b64u:f,export_nonce:l,authorization_kind:`verified_step_up`,authorization_id:t.operationAuthorization.evidenceSetDigest,material_activation:i,lifecycle_id:p,recipient_identity:h.request.client_id,recipient_public_key:h.request.client_ephemeral_public_key,expires_at_ms:h.request.expires_at_ms},v=await _e({holderHandleId:n.holderRuntime.holderHandleId,requestDigestB64u:h.requestDigestB64u,expectedBinding:_,forwardedResponse:g.value,workerCtx:e.getSignerWorkerContext()});return{publicKeyHex:v.publicKeyHex,privateKeyHex:v.privateKeyHex,ethereumAddress:v.ethereumAddress}}export{k as _,it as a,tt as c,mt as d,G as f,A as g,z as h,at as i,gt as l,B as m,wt as n,rt as o,V as p,ot as r,nt as s,Et as t,ht as u,xe as v,Se as y};
@@ -1 +1 @@
1
- import"./signerDomain-BLnlQPAV.js";import"./accountIds-Dj_0GoY-.js";import"./signerSlot-DgLzb3Ee.js";import"./registrationSignerPlan-_8gsSjC0.js";import{C as e,D as t,E as n,S as r,n as i}from"./accountLifecycle-gm9X8nGm.js";function a(a){return{storeWalletEcdsaSignerRecords:t=>e(a.accountLifecycle,t),storeWalletEmailOtpEcdsaSignerRecords:e=>t(a.accountLifecycle,e),storeWalletEcdsaRecoverySignerRecords:e=>r(a.accountLifecycle,e),finalizeWalletEcdsaRegistration:e=>i(a.accountLifecycle,e),storeWalletEmailOtpEcdsaRegistrationData:e=>n(a.accountLifecycle,e)}}export{a as createEcdsaWalletRecordsService};
1
+ import"./signerDomain-BAsLT3XN.js";import"./accountIds-CW2BP-d9.js";import"./signerSlot-D2RZnb27.js";import"./registrationSignerPlan-DK2b3N_p.js";import{C as e,D as t,E as n,S as r,n as i}from"./accountLifecycle-6DHYWf0v.js";function a(a){return{storeWalletEcdsaSignerRecords:t=>e(a.accountLifecycle,t),storeWalletEmailOtpEcdsaSignerRecords:e=>t(a.accountLifecycle,e),storeWalletEcdsaRecoverySignerRecords:e=>r(a.accountLifecycle,e),finalizeWalletEcdsaRegistration:e=>i(a.accountLifecycle,e),storeWalletEmailOtpEcdsaRegistrationData:e=>n(a.accountLifecycle,e)}}export{a as createEcdsaWalletRecordsService};
@@ -1 +1 @@
1
- import{r as e,v as t}from"./domainIds-t1lp25yU.js";import{S as n,r,t as i}from"./digests-BIaE0DMd.js";import{r as a}from"./participants-BXdREC5k.js";import{i as o,r as s}from"./base64-BmKR3UqU.js";import{E as c,J as ee,P as l,Q as te}from"./activeWalletSession-BJ4B-nJo.js";import{r as u}from"./canonicalPrimitives-Jd3i_Ngz.js";import{n as ne}from"./signerDomain-BLnlQPAV.js";import{c as d,l as re}from"./ecdsaChainTarget-Lh24LLyA.js";import{Dt as ie,Et as ae,Ot as oe,Tt as se}from"./digestEncoding-n8Kr2kow.js";import{r as f}from"./types-DOToeB6g.js";function p(e){let t=typeof e==`string`?e.trim():``;if(!t.startsWith(`ederivation-key-`))throw Error(`Threshold ECDSA key handle is invalid`);return t}function m(e,t){let n=String(e??``).trim();if(!n)throw Error(`[threshold-ecdsa-key-handle] ${t} is required`);return n}function h(e){return String(e??``).trim()||`default`}async function ce(e){return`ederivation-key-${o(await r(i({domain:`seams.threshold_ecdsa.key_handle.v1`,ecdsaThresholdKeyId:m(e.ecdsaThresholdKeyId,`ecdsaThresholdKeyId`),signingRootId:m(e.signingRootId,`signingRootId`),signingRootVersion:h(e.signingRootVersion)})))}`}function g(e){return{code:`missing`,message:`${e} is required`}}function _(e,t){return{code:`invalid`,message:`${e} ${t}`}}function v(t,n){if(t==null)return{ok:!1,error:g(n)};if(typeof t!=`string`)return{ok:!1,error:_(n,`must be a string`)};let r=t.trim();return r?e(r)?{ok:!1,error:_(n,`must not contain whitespace or control characters`)}:{ok:!0,value:r}:{ok:!1,error:g(n)}}function y(e,t){if(e==null)return{ok:!1,error:g(t)};if(typeof e!=`string`||e.length===0)return{ok:!1,error:_(t,`must be non-empty base64url`)};try{let n=s(e);if(n.length===0||o(n)!==e)return{ok:!1,error:_(t,`must be canonical unpadded base64url`)}}catch{return{ok:!1,error:_(t,`must be canonical unpadded base64url`)}}return{ok:!0,value:e}}function b(e,t,n){if(e==null)return{ok:!1,error:g(t)};try{return{ok:!0,value:n(u(e))}}catch{return{ok:!1,error:_(t,`must be canonical base64url for 32 bytes`)}}}function le(e){return e}function ue(e){return e}function de(e){return e}function x(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw Error(`${n}.${t} is not supported`);for(let r of t)if(!(r in e))throw Error(`${n}.${r} is required`)}function fe(e){return v(e,`laneHolderParticipantId`)}function pe(e){return v(e,`signingWorkerParticipantId`)}function me(e){return v(e,`signingWorkerRecipientKeyId`)}function he(e){return v(e,`laneHolderCustodyBindingId`)}function S(e){return b(e,`participantBindingDigestB64u`,de)}function ge(e){return b(e,`custodyBindingDigestB64u`,le)}function C(e){return b(e,`hpkePublicKeyDigestB64u`,ue)}function w(e){return{kind:`lane_holder_custody_identity_v1`,custodyBindingId:e.custodyBindingId,custodyBindingDigestB64u:e.custodyBindingDigestB64u}}function T(e){return{kind:`signing_worker_recipient_identity_v1`,recipientKeyId:e.recipientKeyId,hpkePublicKeyB64u:e.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:e.hpkePublicKeyDigestB64u}}function E(e,t=`laneHolderCustodyIdentity`){let r=n(e,t);if(x(r,[`kind`,`custodyBindingId`,`custodyBindingDigestB64u`],t),r.kind!==`lane_holder_custody_identity_v1`)throw Error(`${t}.kind is invalid`);let i=he(r.custodyBindingId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=ge(r.custodyBindingDigestB64u);if(!a.ok)throw Error(`${t}.${a.error.message}`);return w({custodyBindingId:i.value,custodyBindingDigestB64u:a.value})}function D(e,t=`signingWorkerRecipientIdentity`){let r=n(e,t);if(x(r,[`kind`,`recipientKeyId`,`hpkePublicKeyB64u`,`hpkePublicKeyDigestB64u`],t),r.kind!==`signing_worker_recipient_identity_v1`)throw Error(`${t}.kind is invalid`);let i=me(r.recipientKeyId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=y(r.hpkePublicKeyB64u,`${t}.hpkePublicKeyB64u`);if(!a.ok)throw Error(a.error.message);let o=C(r.hpkePublicKeyDigestB64u);if(!o.ok)throw Error(`${t}.${o.error.message}`);return T({recipientKeyId:i.value,hpkePublicKeyB64u:a.value,hpkePublicKeyDigestB64u:o.value})}function O(e){return{kind:`lane_holder_participant_v1`,participantId:e.participantId,custodyBindingId:e.custody.custodyBindingId,custodyBindingDigestB64u:e.custody.custodyBindingDigestB64u,hpkePublicKeyB64u:e.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:e.hpkePublicKeyDigestB64u,participantBindingDigestB64u:e.participantBindingDigestB64u}}function k(e){return{kind:`signing_worker_participant_v1`,participantId:e.participantId,recipientKeyId:e.recipient.recipientKeyId,hpkePublicKeyB64u:e.recipient.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:e.recipient.hpkePublicKeyDigestB64u,participantBindingDigestB64u:e.participantBindingDigestB64u}}function A(e,t=`laneHolderParticipant`){let r=n(e,t);if(x(r,[`kind`,`participantId`,`custodyBindingId`,`custodyBindingDigestB64u`,`hpkePublicKeyB64u`,`hpkePublicKeyDigestB64u`,`participantBindingDigestB64u`],t),r.kind!==`lane_holder_participant_v1`)throw Error(`${t}.kind is invalid`);let i=fe(r.participantId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=E({kind:`lane_holder_custody_identity_v1`,custodyBindingId:r.custodyBindingId,custodyBindingDigestB64u:r.custodyBindingDigestB64u},`${t}.custody`),o=y(r.hpkePublicKeyB64u,`${t}.hpkePublicKeyB64u`);if(!o.ok)throw Error(o.error.message);let s=C(r.hpkePublicKeyDigestB64u);if(!s.ok)throw Error(`${t}.${s.error.message}`);let c=S(r.participantBindingDigestB64u);if(!c.ok)throw Error(`${t}.${c.error.message}`);return O({participantId:i.value,custody:a,hpkePublicKeyB64u:o.value,hpkePublicKeyDigestB64u:s.value,participantBindingDigestB64u:c.value})}function j(e,t=`signingWorkerParticipant`){let r=n(e,t);if(x(r,[`kind`,`participantId`,`recipientKeyId`,`hpkePublicKeyB64u`,`hpkePublicKeyDigestB64u`,`participantBindingDigestB64u`],t),r.kind!==`signing_worker_participant_v1`)throw Error(`${t}.kind is invalid`);let i=pe(r.participantId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=D({kind:`signing_worker_recipient_identity_v1`,recipientKeyId:r.recipientKeyId,hpkePublicKeyB64u:r.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:r.hpkePublicKeyDigestB64u},`${t}.recipient`),o=S(r.participantBindingDigestB64u);if(!o.ok)throw Error(`${t}.${o.error.message}`);return k({participantId:i.value,recipient:a,participantBindingDigestB64u:o.value})}const M=[`kind`,`signerId`,`participantIds`,`signingWorkerId`,`custodyKeyManifestDigestB64u`,`sourceIdentityDigestB64u`];function N(t,n=`walletSignerId`){if(typeof t!=`string`)throw Error(`${n} must be a string`);let r=t.trim();if(!r)throw Error(`${n} is required`);if(e(r))throw Error(`${n} must not contain whitespace or control characters`);return r}function P(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive safe integer`);return e}function F(e,t){if(!Array.isArray(e)||e.length!==2)throw Error(`${t} must contain exactly two participant ids`);let n=P(e[0],`${t}[0]`),r=P(e[1],`${t}[1]`);if(n===r)throw Error(`${t} must contain distinct participant ids`);return[n,r]}function I(e){let n=F(e.participantIds,`participantIds`);return{kind:`owner_lane_participant_continuity_v1`,signerId:N(e.signerId),participantIds:n,signingWorkerId:l(t(e.signingWorkerId),`signingWorkerId`),custodyKeyManifestDigestB64u:c(e.custodyKeyManifestDigestB64u,`custodyKeyManifestDigestB64u`),sourceIdentityDigestB64u:c(e.sourceIdentityDigestB64u,`sourceIdentityDigestB64u`)}}function L(e,r=`ownerParticipantContinuity`){let i=n(e,r);if(ee(i,M,r),i.kind!==`owner_lane_participant_continuity_v1`)throw Error(`${r}.kind must be owner_lane_participant_continuity_v1`);return I({signerId:N(i.signerId,`${r}.signerId`),participantIds:F(i.participantIds,`${r}.participantIds`),signingWorkerId:l(t(i.signingWorkerId),`${r}.signingWorkerId`),custodyKeyManifestDigestB64u:c(i.custodyKeyManifestDigestB64u,`${r}.custodyKeyManifestDigestB64u`),sourceIdentityDigestB64u:c(i.sourceIdentityDigestB64u,`${r}.sourceIdentityDigestB64u`)})}function R(e,t){let n=String(e??``).trim();if(!n)throw Error(`[evm-family-ecdsa] ${t} is required`);return n}function z(e){return R(e,`rpId`)}function _e(e){return oe({walletId:d(e.walletId),signingRootId:V(e.signingRootId),signingRootVersion:H(e.signingRootVersion)})}function B(e){return R(e,`ecdsaThresholdKeyId`)}function V(e){return R(e,`signingRootId`)}function H(e){return String(e??``).trim()||`default`}function U(e){let t=String(e??``).trim().toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(t))throw Error(`[evm-family-ecdsa] thresholdOwnerAddress must be an EVM address`);return t}function ve(e){return U(e)}function ye(e){return z(e)}function W(e){return R(e,`keyHandle`)}function be(e){return B(String(e.record.ecdsaThresholdKeyId??``).trim())}function G(e){return{signingRootId:V(e.signingRootId),signingRootVersion:H(e.signingRootVersion)}}function xe(e){return G({signingRootId:e.record.signingRootId,signingRootVersion:e.record.signingRootVersion})}function Se(e){let t=te(e.runtimePolicyScope);return G({signingRootId:t.signingRootId,signingRootVersion:t.signingRootVersion})}function K(e){let t=R(e,`thresholdEcdsaPublicKeyB64u`),n;try{n=s(t)}catch{throw Error(`[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must be base64url`)}if(n.length!==33)throw Error(`[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must decode to 33 bytes`);return t}function q(e){let t=Math.floor(Number(e));if(!Number.isSafeInteger(t)||t<1||t>65535)throw Error(`[evm-family-ecdsa] participantId must be a positive safe integer`);return t}function J(e){let t=a(e);if(!t?.length)throw Error(`[evm-family-ecdsa] participantIds are required`);return t.map(q)}function Y(e){return e.map(e=>String(Number(e))).join(`,`)}function X(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return t.toString(16).padStart(8,`0`)}function Ce(e){return{walletId:e.walletId,keyScope:`evm-family`,ecdsaThresholdKeyId:B(e.ecdsaThresholdKeyId),signingRootId:V(e.signingRootId),signingRootVersion:H(e.signingRootVersion),participantIds:J(e.participantIds),thresholdOwnerAddress:U(e.thresholdOwnerAddress)}}function Z(e){return Ce({walletId:d(e.walletId),ecdsaThresholdKeyId:e.ecdsaThresholdKeyId,signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,participantIds:e.participantIds,thresholdOwnerAddress:e.thresholdOwnerAddress})}function we(e){return re({walletId:d(e)})}async function Te(e){return await ce(e)}function Q(e){return{kind:`verified_ecdsa_public_facts`,keyHandle:e.keyHandle,publicKeyB64u:K(e.publicKeyB64u),participantIds:J(e.participantIds),thresholdOwnerAddress:U(e.thresholdOwnerAddress)}}function Ee(e){return{walletId:e.walletId,keyScope:e.keyFacts.keyScope,ecdsaThresholdKeyId:e.keyFacts.ecdsaThresholdKeyId,signingRootId:e.keyFacts.signingRootId,signingRootVersion:e.keyFacts.signingRootVersion,participantIds:e.keyFacts.participantIds,thresholdOwnerAddress:e.keyFacts.thresholdOwnerAddress}}function De(e){let t=W(e.keyHandle),n=Z(e),r=Q({keyHandle:t,publicKeyB64u:e.thresholdEcdsaPublicKeyB64u,participantIds:n.participantIds,thresholdOwnerAddress:n.thresholdOwnerAddress});return{kind:`evm_family_ecdsa_wallet_key`,walletId:n.walletId,keyHandle:t,chainTarget:e.chainTarget,keyFacts:{kind:`evm_family_ecdsa_key_facts`,keyScope:n.keyScope,ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,signingRootId:n.signingRootId,signingRootVersion:n.signingRootVersion,participantIds:r.participantIds,thresholdOwnerAddress:r.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:r.publicKeyB64u}}}function $(e){let t=[];if(String(e.expected.keyHandle)!==String(e.actual.keyHandle)&&t.push(`keyHandle`),String(e.expected.publicKeyB64u)!==String(e.actual.publicKeyB64u)&&t.push(`publicKeyB64u`),Y(e.expected.participantIds)!==Y(e.actual.participantIds)&&t.push(`participantIds`),String(e.expected.thresholdOwnerAddress)!==String(e.actual.thresholdOwnerAddress)&&t.push(`thresholdOwnerAddress`),t.length)throw Error(`[evm-family-ecdsa] ${e.context} public facts mismatch: ${t.join(`, `)}`)}function Oe(e){return{kind:`passkey_ecdsa_auth_binding`,authMethod:ne.passkey,rpId:z(e.rpId),credentialIdB64u:R(e.credentialIdB64u,`credentialIdB64u`)}}function ke(e){return{kind:`resolved_evm_family_ecdsa_key`,walletId:d(e.walletId),publicFacts:e.publicFacts,authBinding:e.authBinding}}function Ae(e){return{kind:`hydrated_ecdsa_signer_material`,walletId:e.walletId,materialActivation:e.materialActivation,publicFacts:e.publicFacts,transport:e.transport,clientShare:e.clientShare,routerAbEcdsaDerivationNormalSigning:e.routerAbEcdsaDerivationNormalSigning}}function je(e){let t=Math.floor(Number(e.ttlMs)),n=Math.floor(Number(e.remainingUses));if(!Number.isFinite(t)||t<=0)throw Error(`[evm-family-ecdsa] ttlMs must be a positive finite value`);if(!Number.isFinite(n)||n<=0)throw Error(`[evm-family-ecdsa] remainingUses must be a positive finite value`);return{chainTarget:e.chainTarget,thresholdSessionId:f.thresholdEcdsaSession(e.thresholdSessionId),ttlMs:t,remainingUses:n,runtimePolicyScope:e.runtimePolicyScope}}function Me(e){let t=Math.floor(Number(e.ttlMs)),n=Math.floor(Number(e.remainingUses));if(!Number.isFinite(t)||t<=0)throw Error(`[evm-family-ecdsa] ttlMs must be a positive finite value`);if(!Number.isFinite(n)||n<=0)throw Error(`[evm-family-ecdsa] remainingUses must be a positive finite value`);return{chainTarget:e.chainTarget,thresholdSessionId:f.thresholdEcdsaSession(e.thresholdSessionId),ttlMs:t,remainingUses:n,runtimePolicyScope:e.runtimePolicyScope}}function Ne(e){return`evmfam-ecdsa:${X(i({version:`evm_family_ecdsa_key_fingerprint_v2`,walletId:String(e.walletId),baseEcdsaSubjectId:String(we(e.walletId)),keyScope:e.keyScope,ecdsaThresholdKeyId:String(e.ecdsaThresholdKeyId),signingRootId:String(e.signingRootId),signingRootVersion:String(e.signingRootVersion),participantIds:e.participantIds.map(e=>Number(e)),thresholdOwnerAddress:String(e.thresholdOwnerAddress)}))}`}function Pe(e){return`evmfam-ecdsa:${X(i({version:`evm_family_ecdsa_public_facts_fingerprint_v1`,walletId:String(d(e.walletId)),keyHandle:String(e.publicFacts.keyHandle),publicKeyB64u:String(e.publicFacts.publicKeyB64u),participantIds:e.publicFacts.participantIds.map(e=>Number(e)),thresholdOwnerAddress:String(e.publicFacts.thresholdOwnerAddress)}))}`}function Fe(e,t){let n=String(e??``).trim();if(!n)throw Error(`[email-otp-derivation] ${t} is required`);return n}function Ie(e){return Fe(e,`authSubjectId`)}function Le(e){return ie(e)}function Re(e){return se(e)}function ze(e){return ae(e)}export{S as A,W as C,ve as D,K as E,p as M,L as O,Se as S,ye as T,_e as _,$ as a,be as b,je as c,Oe as d,ke as f,Pe as g,Ne as h,Ie as i,j,A as k,De as l,Te as m,ze as n,Z as o,Q as p,Le as r,Me as s,Re as t,Ae as u,Ee as v,q as w,xe as x,G as y};
1
+ import{r as e,v as t}from"./domainIds-t1lp25yU.js";import{S as n,r,t as i}from"./digests-BIaE0DMd.js";import{r as a}from"./participants-BXdREC5k.js";import{i as o,r as s}from"./base64-BmKR3UqU.js";import{E as c,J as ee,P as l,Q as te}from"./activeWalletSession-BJ4B-nJo.js";import{r as u}from"./canonicalPrimitives-Jd3i_Ngz.js";import{n as ne}from"./signerDomain-BAsLT3XN.js";import{c as d,l as re}from"./ecdsaChainTarget-Bm5X4k-V.js";import{Dt as ie,Et as ae,Ot as oe,Tt as se}from"./digestEncoding-CqNXPZY9.js";import{r as f}from"./types-f7dyj5N6.js";function p(e){let t=typeof e==`string`?e.trim():``;if(!t.startsWith(`ederivation-key-`))throw Error(`Threshold ECDSA key handle is invalid`);return t}function m(e,t){let n=String(e??``).trim();if(!n)throw Error(`[threshold-ecdsa-key-handle] ${t} is required`);return n}function h(e){return String(e??``).trim()||`default`}async function ce(e){return`ederivation-key-${o(await r(i({domain:`seams.threshold_ecdsa.key_handle.v1`,ecdsaThresholdKeyId:m(e.ecdsaThresholdKeyId,`ecdsaThresholdKeyId`),signingRootId:m(e.signingRootId,`signingRootId`),signingRootVersion:h(e.signingRootVersion)})))}`}function g(e){return{code:`missing`,message:`${e} is required`}}function _(e,t){return{code:`invalid`,message:`${e} ${t}`}}function v(t,n){if(t==null)return{ok:!1,error:g(n)};if(typeof t!=`string`)return{ok:!1,error:_(n,`must be a string`)};let r=t.trim();return r?e(r)?{ok:!1,error:_(n,`must not contain whitespace or control characters`)}:{ok:!0,value:r}:{ok:!1,error:g(n)}}function y(e,t){if(e==null)return{ok:!1,error:g(t)};if(typeof e!=`string`||e.length===0)return{ok:!1,error:_(t,`must be non-empty base64url`)};try{let n=s(e);if(n.length===0||o(n)!==e)return{ok:!1,error:_(t,`must be canonical unpadded base64url`)}}catch{return{ok:!1,error:_(t,`must be canonical unpadded base64url`)}}return{ok:!0,value:e}}function b(e,t,n){if(e==null)return{ok:!1,error:g(t)};try{return{ok:!0,value:n(u(e))}}catch{return{ok:!1,error:_(t,`must be canonical base64url for 32 bytes`)}}}function le(e){return e}function ue(e){return e}function de(e){return e}function x(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw Error(`${n}.${t} is not supported`);for(let r of t)if(!(r in e))throw Error(`${n}.${r} is required`)}function fe(e){return v(e,`laneHolderParticipantId`)}function pe(e){return v(e,`signingWorkerParticipantId`)}function me(e){return v(e,`signingWorkerRecipientKeyId`)}function he(e){return v(e,`laneHolderCustodyBindingId`)}function S(e){return b(e,`participantBindingDigestB64u`,de)}function ge(e){return b(e,`custodyBindingDigestB64u`,le)}function C(e){return b(e,`hpkePublicKeyDigestB64u`,ue)}function w(e){return{kind:`lane_holder_custody_identity_v1`,custodyBindingId:e.custodyBindingId,custodyBindingDigestB64u:e.custodyBindingDigestB64u}}function T(e){return{kind:`signing_worker_recipient_identity_v1`,recipientKeyId:e.recipientKeyId,hpkePublicKeyB64u:e.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:e.hpkePublicKeyDigestB64u}}function E(e,t=`laneHolderCustodyIdentity`){let r=n(e,t);if(x(r,[`kind`,`custodyBindingId`,`custodyBindingDigestB64u`],t),r.kind!==`lane_holder_custody_identity_v1`)throw Error(`${t}.kind is invalid`);let i=he(r.custodyBindingId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=ge(r.custodyBindingDigestB64u);if(!a.ok)throw Error(`${t}.${a.error.message}`);return w({custodyBindingId:i.value,custodyBindingDigestB64u:a.value})}function D(e,t=`signingWorkerRecipientIdentity`){let r=n(e,t);if(x(r,[`kind`,`recipientKeyId`,`hpkePublicKeyB64u`,`hpkePublicKeyDigestB64u`],t),r.kind!==`signing_worker_recipient_identity_v1`)throw Error(`${t}.kind is invalid`);let i=me(r.recipientKeyId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=y(r.hpkePublicKeyB64u,`${t}.hpkePublicKeyB64u`);if(!a.ok)throw Error(a.error.message);let o=C(r.hpkePublicKeyDigestB64u);if(!o.ok)throw Error(`${t}.${o.error.message}`);return T({recipientKeyId:i.value,hpkePublicKeyB64u:a.value,hpkePublicKeyDigestB64u:o.value})}function O(e){return{kind:`lane_holder_participant_v1`,participantId:e.participantId,custodyBindingId:e.custody.custodyBindingId,custodyBindingDigestB64u:e.custody.custodyBindingDigestB64u,hpkePublicKeyB64u:e.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:e.hpkePublicKeyDigestB64u,participantBindingDigestB64u:e.participantBindingDigestB64u}}function k(e){return{kind:`signing_worker_participant_v1`,participantId:e.participantId,recipientKeyId:e.recipient.recipientKeyId,hpkePublicKeyB64u:e.recipient.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:e.recipient.hpkePublicKeyDigestB64u,participantBindingDigestB64u:e.participantBindingDigestB64u}}function A(e,t=`laneHolderParticipant`){let r=n(e,t);if(x(r,[`kind`,`participantId`,`custodyBindingId`,`custodyBindingDigestB64u`,`hpkePublicKeyB64u`,`hpkePublicKeyDigestB64u`,`participantBindingDigestB64u`],t),r.kind!==`lane_holder_participant_v1`)throw Error(`${t}.kind is invalid`);let i=fe(r.participantId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=E({kind:`lane_holder_custody_identity_v1`,custodyBindingId:r.custodyBindingId,custodyBindingDigestB64u:r.custodyBindingDigestB64u},`${t}.custody`),o=y(r.hpkePublicKeyB64u,`${t}.hpkePublicKeyB64u`);if(!o.ok)throw Error(o.error.message);let s=C(r.hpkePublicKeyDigestB64u);if(!s.ok)throw Error(`${t}.${s.error.message}`);let c=S(r.participantBindingDigestB64u);if(!c.ok)throw Error(`${t}.${c.error.message}`);return O({participantId:i.value,custody:a,hpkePublicKeyB64u:o.value,hpkePublicKeyDigestB64u:s.value,participantBindingDigestB64u:c.value})}function j(e,t=`signingWorkerParticipant`){let r=n(e,t);if(x(r,[`kind`,`participantId`,`recipientKeyId`,`hpkePublicKeyB64u`,`hpkePublicKeyDigestB64u`,`participantBindingDigestB64u`],t),r.kind!==`signing_worker_participant_v1`)throw Error(`${t}.kind is invalid`);let i=pe(r.participantId);if(!i.ok)throw Error(`${t}.${i.error.message}`);let a=D({kind:`signing_worker_recipient_identity_v1`,recipientKeyId:r.recipientKeyId,hpkePublicKeyB64u:r.hpkePublicKeyB64u,hpkePublicKeyDigestB64u:r.hpkePublicKeyDigestB64u},`${t}.recipient`),o=S(r.participantBindingDigestB64u);if(!o.ok)throw Error(`${t}.${o.error.message}`);return k({participantId:i.value,recipient:a,participantBindingDigestB64u:o.value})}const M=[`kind`,`signerId`,`participantIds`,`signingWorkerId`,`custodyKeyManifestDigestB64u`,`sourceIdentityDigestB64u`];function N(t,n=`walletSignerId`){if(typeof t!=`string`)throw Error(`${n} must be a string`);let r=t.trim();if(!r)throw Error(`${n} is required`);if(e(r))throw Error(`${n} must not contain whitespace or control characters`);return r}function P(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive safe integer`);return e}function F(e,t){if(!Array.isArray(e)||e.length!==2)throw Error(`${t} must contain exactly two participant ids`);let n=P(e[0],`${t}[0]`),r=P(e[1],`${t}[1]`);if(n===r)throw Error(`${t} must contain distinct participant ids`);return[n,r]}function I(e){let n=F(e.participantIds,`participantIds`);return{kind:`owner_lane_participant_continuity_v1`,signerId:N(e.signerId),participantIds:n,signingWorkerId:l(t(e.signingWorkerId),`signingWorkerId`),custodyKeyManifestDigestB64u:c(e.custodyKeyManifestDigestB64u,`custodyKeyManifestDigestB64u`),sourceIdentityDigestB64u:c(e.sourceIdentityDigestB64u,`sourceIdentityDigestB64u`)}}function L(e,r=`ownerParticipantContinuity`){let i=n(e,r);if(ee(i,M,r),i.kind!==`owner_lane_participant_continuity_v1`)throw Error(`${r}.kind must be owner_lane_participant_continuity_v1`);return I({signerId:N(i.signerId,`${r}.signerId`),participantIds:F(i.participantIds,`${r}.participantIds`),signingWorkerId:l(t(i.signingWorkerId),`${r}.signingWorkerId`),custodyKeyManifestDigestB64u:c(i.custodyKeyManifestDigestB64u,`${r}.custodyKeyManifestDigestB64u`),sourceIdentityDigestB64u:c(i.sourceIdentityDigestB64u,`${r}.sourceIdentityDigestB64u`)})}function R(e,t){let n=String(e??``).trim();if(!n)throw Error(`[evm-family-ecdsa] ${t} is required`);return n}function z(e){return R(e,`rpId`)}function _e(e){return oe({walletId:d(e.walletId),signingRootId:V(e.signingRootId),signingRootVersion:H(e.signingRootVersion)})}function B(e){return R(e,`ecdsaThresholdKeyId`)}function V(e){return R(e,`signingRootId`)}function H(e){return String(e??``).trim()||`default`}function U(e){let t=String(e??``).trim().toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(t))throw Error(`[evm-family-ecdsa] thresholdOwnerAddress must be an EVM address`);return t}function ve(e){return U(e)}function ye(e){return z(e)}function W(e){return R(e,`keyHandle`)}function be(e){return B(String(e.record.ecdsaThresholdKeyId??``).trim())}function G(e){return{signingRootId:V(e.signingRootId),signingRootVersion:H(e.signingRootVersion)}}function xe(e){return G({signingRootId:e.record.signingRootId,signingRootVersion:e.record.signingRootVersion})}function Se(e){let t=te(e.runtimePolicyScope);return G({signingRootId:t.signingRootId,signingRootVersion:t.signingRootVersion})}function K(e){let t=R(e,`thresholdEcdsaPublicKeyB64u`),n;try{n=s(t)}catch{throw Error(`[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must be base64url`)}if(n.length!==33)throw Error(`[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must decode to 33 bytes`);return t}function q(e){let t=Math.floor(Number(e));if(!Number.isSafeInteger(t)||t<1||t>65535)throw Error(`[evm-family-ecdsa] participantId must be a positive safe integer`);return t}function J(e){let t=a(e);if(!t?.length)throw Error(`[evm-family-ecdsa] participantIds are required`);return t.map(q)}function Y(e){return e.map(e=>String(Number(e))).join(`,`)}function X(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619)>>>0;return t.toString(16).padStart(8,`0`)}function Ce(e){return{walletId:e.walletId,keyScope:`evm-family`,ecdsaThresholdKeyId:B(e.ecdsaThresholdKeyId),signingRootId:V(e.signingRootId),signingRootVersion:H(e.signingRootVersion),participantIds:J(e.participantIds),thresholdOwnerAddress:U(e.thresholdOwnerAddress)}}function Z(e){return Ce({walletId:d(e.walletId),ecdsaThresholdKeyId:e.ecdsaThresholdKeyId,signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,participantIds:e.participantIds,thresholdOwnerAddress:e.thresholdOwnerAddress})}function we(e){return re({walletId:d(e)})}async function Te(e){return await ce(e)}function Q(e){return{kind:`verified_ecdsa_public_facts`,keyHandle:e.keyHandle,publicKeyB64u:K(e.publicKeyB64u),participantIds:J(e.participantIds),thresholdOwnerAddress:U(e.thresholdOwnerAddress)}}function Ee(e){return{walletId:e.walletId,keyScope:e.keyFacts.keyScope,ecdsaThresholdKeyId:e.keyFacts.ecdsaThresholdKeyId,signingRootId:e.keyFacts.signingRootId,signingRootVersion:e.keyFacts.signingRootVersion,participantIds:e.keyFacts.participantIds,thresholdOwnerAddress:e.keyFacts.thresholdOwnerAddress}}function De(e){let t=W(e.keyHandle),n=Z(e),r=Q({keyHandle:t,publicKeyB64u:e.thresholdEcdsaPublicKeyB64u,participantIds:n.participantIds,thresholdOwnerAddress:n.thresholdOwnerAddress});return{kind:`evm_family_ecdsa_wallet_key`,walletId:n.walletId,keyHandle:t,chainTarget:e.chainTarget,keyFacts:{kind:`evm_family_ecdsa_key_facts`,keyScope:n.keyScope,ecdsaThresholdKeyId:n.ecdsaThresholdKeyId,signingRootId:n.signingRootId,signingRootVersion:n.signingRootVersion,participantIds:r.participantIds,thresholdOwnerAddress:r.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:r.publicKeyB64u}}}function $(e){let t=[];if(String(e.expected.keyHandle)!==String(e.actual.keyHandle)&&t.push(`keyHandle`),String(e.expected.publicKeyB64u)!==String(e.actual.publicKeyB64u)&&t.push(`publicKeyB64u`),Y(e.expected.participantIds)!==Y(e.actual.participantIds)&&t.push(`participantIds`),String(e.expected.thresholdOwnerAddress)!==String(e.actual.thresholdOwnerAddress)&&t.push(`thresholdOwnerAddress`),t.length)throw Error(`[evm-family-ecdsa] ${e.context} public facts mismatch: ${t.join(`, `)}`)}function Oe(e){return{kind:`passkey_ecdsa_auth_binding`,authMethod:ne.passkey,rpId:z(e.rpId),credentialIdB64u:R(e.credentialIdB64u,`credentialIdB64u`)}}function ke(e){return{kind:`resolved_evm_family_ecdsa_key`,walletId:d(e.walletId),publicFacts:e.publicFacts,authBinding:e.authBinding}}function Ae(e){return{kind:`hydrated_ecdsa_signer_material`,walletId:e.walletId,materialActivation:e.materialActivation,publicFacts:e.publicFacts,transport:e.transport,clientShare:e.clientShare,routerAbEcdsaDerivationNormalSigning:e.routerAbEcdsaDerivationNormalSigning}}function je(e){let t=Math.floor(Number(e.ttlMs)),n=Math.floor(Number(e.remainingUses));if(!Number.isFinite(t)||t<=0)throw Error(`[evm-family-ecdsa] ttlMs must be a positive finite value`);if(!Number.isFinite(n)||n<=0)throw Error(`[evm-family-ecdsa] remainingUses must be a positive finite value`);return{chainTarget:e.chainTarget,thresholdSessionId:f.thresholdEcdsaSession(e.thresholdSessionId),ttlMs:t,remainingUses:n,runtimePolicyScope:e.runtimePolicyScope}}function Me(e){let t=Math.floor(Number(e.ttlMs)),n=Math.floor(Number(e.remainingUses));if(!Number.isFinite(t)||t<=0)throw Error(`[evm-family-ecdsa] ttlMs must be a positive finite value`);if(!Number.isFinite(n)||n<=0)throw Error(`[evm-family-ecdsa] remainingUses must be a positive finite value`);return{chainTarget:e.chainTarget,thresholdSessionId:f.thresholdEcdsaSession(e.thresholdSessionId),ttlMs:t,remainingUses:n,runtimePolicyScope:e.runtimePolicyScope}}function Ne(e){return`evmfam-ecdsa:${X(i({version:`evm_family_ecdsa_key_fingerprint_v2`,walletId:String(e.walletId),baseEcdsaSubjectId:String(we(e.walletId)),keyScope:e.keyScope,ecdsaThresholdKeyId:String(e.ecdsaThresholdKeyId),signingRootId:String(e.signingRootId),signingRootVersion:String(e.signingRootVersion),participantIds:e.participantIds.map(e=>Number(e)),thresholdOwnerAddress:String(e.thresholdOwnerAddress)}))}`}function Pe(e){return`evmfam-ecdsa:${X(i({version:`evm_family_ecdsa_public_facts_fingerprint_v1`,walletId:String(d(e.walletId)),keyHandle:String(e.publicFacts.keyHandle),publicKeyB64u:String(e.publicFacts.publicKeyB64u),participantIds:e.publicFacts.participantIds.map(e=>Number(e)),thresholdOwnerAddress:String(e.publicFacts.thresholdOwnerAddress)}))}`}function Fe(e,t){let n=String(e??``).trim();if(!n)throw Error(`[email-otp-derivation] ${t} is required`);return n}function Ie(e){return Fe(e,`authSubjectId`)}function Le(e){return ie(e)}function Re(e){return se(e)}function ze(e){return ae(e)}export{S as A,W as C,ve as D,K as E,p as M,L as O,Se as S,ye as T,_e as _,$ as a,be as b,je as c,Oe as d,ke as f,Pe as g,Ne as h,Ie as i,j,A as k,De as l,Te as m,ze as n,Z as o,Q as p,Le as r,Me as s,Re as t,Ae as u,Ee as v,q as w,xe as x,G as y};
@@ -1 +1 @@
1
- import{t as e}from"./keccak-BArcwgbj.js";import{n as t,t as n}from"./bytes-CA0mv-bG.js";import{n as r,r as i,t as a}from"./normalization-dgJxtZKK.js";const o=new WeakMap;function s(e){return a(e)||null}function c(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=String(n.type||`function`).trim();if(e!==``&&e!==`function`)continue;let r=String(n.name||``).trim();if(!r)continue;let i=n.inputs,a=Array.isArray(i)?i:[],o=u(`${r}(${a.map(e=>d(e)).join(`,`)})`);if(!o)continue;let s=f(a);t.push({name:r,selector:o,inputs:s})}return t}function l(e){if(!Array.isArray(e)||e.length===0)return;let t=o.get(e);if(t)return t;let n=c(e);if(!n.length)return;let r=new Map;for(let e of n)r.has(e.selector)||r.set(e.selector,e);let i={bySelector:r};return o.set(e,i),i}function u(t){let r=String(t||``).trim();return r&&i(n(e(new TextEncoder().encode(r)).slice(0,4)))||null}function d(e){let t=String(e?.type||``).trim().toLowerCase();if(!t)return``;let n=Array.isArray(e?.components)?e.components:[];if(t.startsWith(`tuple`)){let e=t.slice(5);return`${`(${n.map(e=>d(e)).join(`,`)})`}${e}`}return t}function f(e){let t=[];for(let n=0;n<e.length;n+=1){let r=e[n],i=String(r?.type||``).trim().toLowerCase();if(!i)continue;let a=p({type:i,components:r?.components});if(!a)continue;let o=String(r?.name||``).trim();t.push({name:o||`arg${n}`,typeName:i,typeNode:a})}return t}function p(e){let t=String(e.type||``).trim().toLowerCase();if(!t)return null;let n=t,r=[];for(;n.endsWith(`]`);){let e=n.lastIndexOf(`[`);if(e<0)return null;let t=n.slice(e+1,-1).trim();if(!/^\d*$/.test(t))return null;let i=t===``?null:Number.parseInt(t,10);if(i!=null&&(!Number.isFinite(i)||i<0))return null;r.push(i),n=n.slice(0,e)}let i=null;if(n===`tuple`){let t=f(Array.isArray(e.components)?e.components:[]);i={kind:`tuple`,canonicalType:`(${t.map(e=>e.typeNode.canonicalType).join(`,`)})`,dynamic:t.some(e=>e.typeNode.dynamic),components:t}}else i={kind:`scalar`,typeName:n,canonicalType:n,dynamic:n===`bytes`||n===`string`};for(let e=r.length-1;e>=0;--e){let t=r[e];i={kind:`array`,canonicalType:`${i.canonicalType}[${t==null?``:String(t)}]`,dynamic:t==null||i.dynamic,item:i,length:t}}return i}function m(e,t){return!Number.isInteger(t)||t<0||t+32>e.length?null:e.slice(t,t+32)}function h(e,t){let n=m(e,t);if(!n)return null;let r=0n;for(let e of n)r=(r<<8n)+BigInt(e);return r}function g(e,t){let n=h(e,t);return n==null||n>BigInt(2**53-1)||n<0n?null:Number(n)}function _(e){return e.dynamic||e.kind===`scalar`?1:e.kind===`tuple`?e.components.reduce((e,t)=>e+_(t.typeNode),0):e.length==null?1:e.length*_(e.item)}function v(e,t,r){let i=String(e||``).trim().toLowerCase();if(!i)return null;if(i===`bytes`){let e=g(t,r);if(e==null)return null;let i=r+32,a=i+e;return a>t.length?null:n(t.slice(i,a)).toLowerCase()}if(i===`string`){let e=g(t,r);if(e==null)return null;let i=r+32,a=i+e;if(a>t.length)return null;let o=t.slice(i,a);try{return new TextDecoder().decode(o)}catch{return n(o).toLowerCase()}}let a=m(t,r);if(!a)return null;let o=h(t,r);if(o==null)return null;if(i===`bool`)return o!==0n;if(i===`address`)return n(a.slice(12)).toLowerCase();if(i===`function`)return n(a.slice(0,24)).toLowerCase();let s=i.match(/^bytes(\d{1,2})$/);if(s){let e=Number.parseInt(s[1],10);return!Number.isFinite(e)||e<=0||e>32?null:n(a.slice(0,e)).toLowerCase()}if(i.match(/^uint(\d{0,3})$/))return o.toString(10);let c=i.match(/^int(\d{0,3})$/);if(c){let e=c[1],t=e?Number.parseInt(e,10):256;if(!Number.isFinite(t)||t<=0||t>256||t%8!=0)return o.toString(10);let n=BigInt(t),r=1n<<n;return(o>=1n<<n-1n?o-r:o).toString(10)}return n(a).toLowerCase()}function y(e,t,n){if(e.kind===`scalar`)return v(e.typeName,t,n);if(e.kind===`tuple`){let r=b(e.components,t,n);if(!r)return null;let i={};for(let t=0;t<e.components.length;t+=1){let n=e.components[t],a=String(n.name||``).trim()||`item${t}`,o=a,s=1;for(;Object.prototype.hasOwnProperty.call(i,o);)s+=1,o=`${a}_${s}`;i[o]=r[t]}return i}let r=e.length,i=r==null,a=i?g(t,n):r;if(a==null||a<0||a>256)return null;let o=i?n+32:n,s=[];if(e.item.dynamic){for(let n=0;n<a;n+=1){let r=g(t,o+n*32);if(r==null)return null;let i=y(e.item,t,o+r);if(i==null)return null;s.push(i)}return s}let c=_(e.item);for(let n=0;n<a;n+=1){let r=o+n*c*32,i=y(e.item,t,r);if(i==null)return null;s.push(i)}return s}function b(e,t,n){let r=0,i=[];for(let t of e)i.push(r*32),r+=t.typeNode.dynamic?1:_(t.typeNode);let a=[];for(let r=0;r<e.length;r+=1){let o=e[r],s=n+i[r];if(o.typeNode.dynamic){let e=g(t,s);if(e==null)return null;let r=y(o.typeNode,t,n+e);if(r==null)return null;a.push(r);continue}let c=y(o.typeNode,t,s);if(c==null)return null;a.push(c)}return a}function x(e){if(!e.length)return;let t={};for(let n=0;n<e.length;n+=1){let r=e[n],i=String(r.key||``).trim()||`arg${n}`,a=i,o=2;for(;Object.prototype.hasOwnProperty.call(t,a);)a=`${i}_${o}`,o+=1;t[a]=r.value}try{return JSON.stringify(t,null,2)}catch{return}}function S(e){let n=s(e.dataHex);if(!n)return;let i=l(e.abi);if(!i)return;let a=i.bySelector.get(n);if(!a)return;let o=r(e.dataHex,{lowercase:!0}),c;try{let e=t(o);if(e.length<4)return{functionLabel:`${a.name}()`};c=e.slice(4)}catch{return{functionLabel:`${a.name}()`}}let u=b(a.inputs,c,0);if(!u)return{functionLabel:`${a.name}()`};let d=a.inputs.map((e,t)=>({key:String(e.name||``).trim()||`arg${t}`,value:u[t]}));return{functionLabel:`${a.name}()`,decodedArgumentsJsonText:x(d)}}function C(e){return e.kind===`generic.contractCall`}function w(e,t){let n=String(e||``).trim(),r=n.match(/^Calling\s+.+?\s+using\s+(.+)$/i);return r?`Calling ${t} using ${r[1]}`:n}function T(e){return String(e.label||``).trim().toLowerCase()===`data`}function E(e){let t=Array.isArray(e.fields)?[...e.fields]:[],n=t.findIndex(e=>T(e)),r=n>=0?t[n]:void 0,i=String(r?.value||``).trim()||String(e.fallbackRawDataHex||``).trim(),a={...r||{label:`Data`},value:e.decodedArgsJsonText,renderAs:`file-content`,hideChevron:typeof r?.hideChevron==`boolean`?r.hideChevron:!0,contentVariants:{decoded:e.decodedArgsJsonText,raw:i,defaultMode:`decoded`}};return n>=0?(t[n]=a,t):(t.push(a),t)}function D(e){let t=e.abiDecodeHint;if(!t||!Array.isArray(t.abi)||t.abi.length===0)return e;let n=S({dataHex:t.dataHex,abi:t.abi});if(!n)return e;let r=n.decodedArgumentsJsonText?E({fields:e.fields,decodedArgsJsonText:n.decodedArgumentsJsonText,fallbackRawDataHex:t.dataHex}):e.fields;return{...e,label:w(e.label,n.functionLabel),fields:r}}function O(e){let t=Array.isArray(e.children)?e.children.map(e=>O(e)):e.children,n=t===e.children?e:{...e,children:t};return C(n)?D(n):n}function k(e){if(!Array.isArray(e.operations)||e.operations.length===0)return e;let t=e.operations.map(e=>O(e));return{...e,operations:t}}export{k as enrichDisplayModelWithAbi};
1
+ import{t as e}from"./keccak-mS0Mejjx.js";import{n as t,t as n}from"./bytes-DXo6uALR.js";import{n as r,r as i,t as a}from"./normalization-B3i1-rPQ.js";const o=new WeakMap;function s(e){return a(e)||null}function c(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=String(n.type||`function`).trim();if(e!==``&&e!==`function`)continue;let r=String(n.name||``).trim();if(!r)continue;let i=n.inputs,a=Array.isArray(i)?i:[],o=u(`${r}(${a.map(e=>d(e)).join(`,`)})`);if(!o)continue;let s=f(a);t.push({name:r,selector:o,inputs:s})}return t}function l(e){if(!Array.isArray(e)||e.length===0)return;let t=o.get(e);if(t)return t;let n=c(e);if(!n.length)return;let r=new Map;for(let e of n)r.has(e.selector)||r.set(e.selector,e);let i={bySelector:r};return o.set(e,i),i}function u(t){let r=String(t||``).trim();return r&&i(n(e(new TextEncoder().encode(r)).slice(0,4)))||null}function d(e){let t=String(e?.type||``).trim().toLowerCase();if(!t)return``;let n=Array.isArray(e?.components)?e.components:[];if(t.startsWith(`tuple`)){let e=t.slice(5);return`${`(${n.map(e=>d(e)).join(`,`)})`}${e}`}return t}function f(e){let t=[];for(let n=0;n<e.length;n+=1){let r=e[n],i=String(r?.type||``).trim().toLowerCase();if(!i)continue;let a=p({type:i,components:r?.components});if(!a)continue;let o=String(r?.name||``).trim();t.push({name:o||`arg${n}`,typeName:i,typeNode:a})}return t}function p(e){let t=String(e.type||``).trim().toLowerCase();if(!t)return null;let n=t,r=[];for(;n.endsWith(`]`);){let e=n.lastIndexOf(`[`);if(e<0)return null;let t=n.slice(e+1,-1).trim();if(!/^\d*$/.test(t))return null;let i=t===``?null:Number.parseInt(t,10);if(i!=null&&(!Number.isFinite(i)||i<0))return null;r.push(i),n=n.slice(0,e)}let i=null;if(n===`tuple`){let t=f(Array.isArray(e.components)?e.components:[]);i={kind:`tuple`,canonicalType:`(${t.map(e=>e.typeNode.canonicalType).join(`,`)})`,dynamic:t.some(e=>e.typeNode.dynamic),components:t}}else i={kind:`scalar`,typeName:n,canonicalType:n,dynamic:n===`bytes`||n===`string`};for(let e=r.length-1;e>=0;--e){let t=r[e];i={kind:`array`,canonicalType:`${i.canonicalType}[${t==null?``:String(t)}]`,dynamic:t==null||i.dynamic,item:i,length:t}}return i}function m(e,t){return!Number.isInteger(t)||t<0||t+32>e.length?null:e.slice(t,t+32)}function h(e,t){let n=m(e,t);if(!n)return null;let r=0n;for(let e of n)r=(r<<8n)+BigInt(e);return r}function g(e,t){let n=h(e,t);return n==null||n>BigInt(2**53-1)||n<0n?null:Number(n)}function _(e){return e.dynamic||e.kind===`scalar`?1:e.kind===`tuple`?e.components.reduce((e,t)=>e+_(t.typeNode),0):e.length==null?1:e.length*_(e.item)}function v(e,t,r){let i=String(e||``).trim().toLowerCase();if(!i)return null;if(i===`bytes`){let e=g(t,r);if(e==null)return null;let i=r+32,a=i+e;return a>t.length?null:n(t.slice(i,a)).toLowerCase()}if(i===`string`){let e=g(t,r);if(e==null)return null;let i=r+32,a=i+e;if(a>t.length)return null;let o=t.slice(i,a);try{return new TextDecoder().decode(o)}catch{return n(o).toLowerCase()}}let a=m(t,r);if(!a)return null;let o=h(t,r);if(o==null)return null;if(i===`bool`)return o!==0n;if(i===`address`)return n(a.slice(12)).toLowerCase();if(i===`function`)return n(a.slice(0,24)).toLowerCase();let s=i.match(/^bytes(\d{1,2})$/);if(s){let e=Number.parseInt(s[1],10);return!Number.isFinite(e)||e<=0||e>32?null:n(a.slice(0,e)).toLowerCase()}if(i.match(/^uint(\d{0,3})$/))return o.toString(10);let c=i.match(/^int(\d{0,3})$/);if(c){let e=c[1],t=e?Number.parseInt(e,10):256;if(!Number.isFinite(t)||t<=0||t>256||t%8!=0)return o.toString(10);let n=BigInt(t),r=1n<<n;return(o>=1n<<n-1n?o-r:o).toString(10)}return n(a).toLowerCase()}function y(e,t,n){if(e.kind===`scalar`)return v(e.typeName,t,n);if(e.kind===`tuple`){let r=b(e.components,t,n);if(!r)return null;let i={};for(let t=0;t<e.components.length;t+=1){let n=e.components[t],a=String(n.name||``).trim()||`item${t}`,o=a,s=1;for(;Object.prototype.hasOwnProperty.call(i,o);)s+=1,o=`${a}_${s}`;i[o]=r[t]}return i}let r=e.length,i=r==null,a=i?g(t,n):r;if(a==null||a<0||a>256)return null;let o=i?n+32:n,s=[];if(e.item.dynamic){for(let n=0;n<a;n+=1){let r=g(t,o+n*32);if(r==null)return null;let i=y(e.item,t,o+r);if(i==null)return null;s.push(i)}return s}let c=_(e.item);for(let n=0;n<a;n+=1){let r=o+n*c*32,i=y(e.item,t,r);if(i==null)return null;s.push(i)}return s}function b(e,t,n){let r=0,i=[];for(let t of e)i.push(r*32),r+=t.typeNode.dynamic?1:_(t.typeNode);let a=[];for(let r=0;r<e.length;r+=1){let o=e[r],s=n+i[r];if(o.typeNode.dynamic){let e=g(t,s);if(e==null)return null;let r=y(o.typeNode,t,n+e);if(r==null)return null;a.push(r);continue}let c=y(o.typeNode,t,s);if(c==null)return null;a.push(c)}return a}function x(e){if(!e.length)return;let t={};for(let n=0;n<e.length;n+=1){let r=e[n],i=String(r.key||``).trim()||`arg${n}`,a=i,o=2;for(;Object.prototype.hasOwnProperty.call(t,a);)a=`${i}_${o}`,o+=1;t[a]=r.value}try{return JSON.stringify(t,null,2)}catch{return}}function S(e){let n=s(e.dataHex);if(!n)return;let i=l(e.abi);if(!i)return;let a=i.bySelector.get(n);if(!a)return;let o=r(e.dataHex,{lowercase:!0}),c;try{let e=t(o);if(e.length<4)return{functionLabel:`${a.name}()`};c=e.slice(4)}catch{return{functionLabel:`${a.name}()`}}let u=b(a.inputs,c,0);if(!u)return{functionLabel:`${a.name}()`};let d=a.inputs.map((e,t)=>({key:String(e.name||``).trim()||`arg${t}`,value:u[t]}));return{functionLabel:`${a.name}()`,decodedArgumentsJsonText:x(d)}}function C(e){return e.kind===`generic.contractCall`}function w(e,t){let n=String(e||``).trim(),r=n.match(/^Calling\s+.+?\s+using\s+(.+)$/i);return r?`Calling ${t} using ${r[1]}`:n}function T(e){return String(e.label||``).trim().toLowerCase()===`data`}function E(e){let t=Array.isArray(e.fields)?[...e.fields]:[],n=t.findIndex(e=>T(e)),r=n>=0?t[n]:void 0,i=String(r?.value||``).trim()||String(e.fallbackRawDataHex||``).trim(),a={...r||{label:`Data`},value:e.decodedArgsJsonText,renderAs:`file-content`,hideChevron:typeof r?.hideChevron==`boolean`?r.hideChevron:!0,contentVariants:{decoded:e.decodedArgsJsonText,raw:i,defaultMode:`decoded`}};return n>=0?(t[n]=a,t):(t.push(a),t)}function D(e){let t=e.abiDecodeHint;if(!t||!Array.isArray(t.abi)||t.abi.length===0)return e;let n=S({dataHex:t.dataHex,abi:t.abi});if(!n)return e;let r=n.decodedArgumentsJsonText?E({fields:e.fields,decodedArgsJsonText:n.decodedArgumentsJsonText,fallbackRawDataHex:t.dataHex}):e.fields;return{...e,label:w(e.label,n.functionLabel),fields:r}}function O(e){let t=Array.isArray(e.children)?e.children.map(e=>O(e)):e.children,n=t===e.children?e:{...e,children:t};return C(n)?D(n):n}function k(e){if(!Array.isArray(e.operations)||e.operations.length===0)return e;let t=e.operations.map(e=>O(e));return{...e,operations:t}}export{k as enrichDisplayModelWithAbi};
@@ -0,0 +1 @@
1
+ function e(e){try{return typeof e==`string`?e:e&&typeof e.message==`string`?e.message:String(e??``)}catch{return``}}function t(e){return`${e}B64u`}const n=[`nearPrivateKey`,`near_private_key`,`privateKey`,`private_key`,t(`seed`),`seed_b64u`,t(`canonicalSeed`),`canonical_seed_b64u`,t(`xClientBase`),`x_client_base_b64u`,t(`clientOutputMask`),`client_output_mask_b64u`,t(`clientRecoverableSecret`),`client_recoverable_secret_b64u`,`prfOutput`,`prf_output`,`prfFirst`,`prf_first`,t(`prfFirst`),`prf_first_b64u`,`prfSecond`,`prf_second`,t(`prfSecond`),`prf_second_b64u`,t(`signingShare32`),`signing_share32_b64u`,t(`clientNonceHandle`),`client_nonce_handle_b64u`];function r(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`("${n}"\\s*:\\s*")([^"]*)(")`,`g`),`$1[REDACTED]$3`)}function i(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`\\b(${n}\\s*[=:]\\s*)([^\\s,}\\]]+)`,`g`),`$1[REDACTED]`)}function a(e){let t=String(e||``);for(let e of n)t=r(t,e),t=i(t,e);return t}function o(t){return a(e(t))}function s(t){if(t instanceof Error)return t;let n=Error(e(t));try{let e=t;typeof e?.name==`string`&&(n.name=e.name),typeof e?.stack==`string`&&(n.stack=e.stack),e&&e.code!==void 0&&(n.code=e.code),e&&e.details!==void 0&&(n.details=e.details)}catch{}return n}function c(t){let n=e(t);if(l(t)||d(t))return!1;if(f(t))return!0;let r=n.toLowerCase();return n.includes(`The operation either timed out or was not allowed`)||n.includes(`NotAllowedError`)||n.includes(`AbortError`)||r.includes(`user cancelled`)||r.includes(`user canceled`)||r.includes(`user aborted`)||r.includes(`was cancelled`)||r.includes(`was canceled`)}function l(t){let n=e(t).toLowerCase();return n.includes(`relying party id`)||n.includes(`registrable domain suffix`)||n.includes(`claimed rp id`)||n.includes(`/.well-known/webauthn`)||n.includes(`.well-known/webauthn`)}const u=`Passkeys require trusted HTTPS for the app and wallet. Check both origins and their certificates.`;function d(t){let n=e(t);return n===u||n.toLowerCase().includes(`tls certificate errors`)}function f(t){if(l(t)||d(t))return!1;let n=e(t).toLowerCase(),r=t,i=String(r?.name||``).trim(),a=r?.code,o=String(a||``).trim().toLowerCase().replace(/[\s-]+/g,`_`);return a===4001||o===`4001`||o===`cancelled`||o===`canceled`||o===`abort_error`||o===`user_cancelled`||o===`user_canceled`||o===`user_rejected`||o===`action_rejected`||o===`request_rejected`||i===`NotAllowedError`||i===`AbortError`||n.includes(`user cancelled`)||n.includes(`user canceled`)||n.includes(`user rejected`)||n.includes(`request cancelled`)||n.includes(`request canceled`)||n.includes(`operation cancelled`)||n.includes(`operation canceled`)}function p(e){switch(e){case`registration`:return`Registration was cancelled. Please try again when you're ready to set up your passkey.`;case`login`:return`Login was cancelled. Please try again when you're ready to authenticate.`;default:return`Operation was cancelled. Please try again when you're ready.`}}function m(t,n=`registration`,r){let i=e(t);return d(t)?u:l(t)?`${n===`registration`?`Registration`:`Login`} failed because the configured WebAuthn RP ID is not valid for this app origin. Check VITE_RP_ID_BASE and the /.well-known/webauthn related-origin configuration for this environment.`:t&&typeof t==`object`&&`code`in t&&t.code===`production_paused`?`New sign-ups for this app are paused. The app owner must update its Seams billing.`:c(t)?p(n):i.includes(`PRF outputs missing`)?`${n===`registration`?`Registration`:`Login`} failed because your browser did not return the required passkey PRF results. On some mobile browsers this is not available for create(); try updating your browser or use a desktop browser. We’re working on an alternate path for broader device support.`:i.includes(`one of the credentials already registered`)?`A passkey for '${r||`this account`}' already exists. Please try logging in instead.`:i.includes(`Cannot deserialize the contract state`)?`Contract state deserialization failed. This may be due to a contract upgrade. Please try again or contact support.`:i.includes(`Web3Authn contract registration check failed`)?`Contract registration check failed: ${i.replace(`Web3Authn contract registration check failed: `,``)}`:i.includes(`Unknown error occurred`)?`${n===`registration`?`Registration`:`Login`} failed due to an unknown error. Please check your connection and try again.`:i}export{d as a,f as i,m as n,o,c as r,s,e as t};
@@ -1 +1 @@
1
- import{t as e}from"./executeWorkerOperation-XmBNaxrV.js";function t(e){if(e<0n)throw Error(`[evmCryptoWasm] negative bigint not supported`);return e.toString(10)}function n(e){if(typeof e==`bigint`){if(e<0n)throw Error(`[evmCryptoWasm] chainId must be a non-negative integer`);let t=Number(e);if(!Number.isSafeInteger(t))throw Error(`[evmCryptoWasm] chainId must be a non-negative safe integer`);return t}if(!Number.isSafeInteger(e)||e<0)throw Error(`[evmCryptoWasm] chainId must be a non-negative safe integer`);return e}function r(e){if(typeof e==`bigint`)return e;throw Error(`[evmCryptoWasm] missing tx nonce`)}function i(e){return{chainId:n(e.chainId),nonce:t(r(e.nonce)),maxPriorityFeePerGas:t(e.maxPriorityFeePerGas),maxFeePerGas:t(e.maxFeePerGas),gasLimit:t(e.gasLimit),to:e.to??null,value:t(e.value),data:e.data??`0x`,accessList:(e.accessList??[]).map(e=>({address:e.address,storageKeys:e.storageKeys}))}}const a=`evmCrypto`,o=2e4;async function s(t,n){let r=await e({ctx:n,kind:a,request:{type:`computeEip1559TxHash`,payload:{tx:i(t)},timeoutMs:o}});return new Uint8Array(r)}async function c(t){let n=t.signature65.slice().buffer,r=await e({ctx:t.workerCtx,kind:a,request:{type:`encodeEip1559SignedTxFromSignature65`,payload:{tx:i(t.tx),signature65:n},timeoutMs:o,transfer:[n]}});return new Uint8Array(r)}async function l(t){if(!(t.digest32 instanceof Uint8Array)||t.digest32.length!==32)throw Error(`digest32 must be 32 bytes`);if(!(t.signature65 instanceof Uint8Array)||t.signature65.length!==65)throw Error(`signature65 must be 65 bytes`);if(!(t.publicKey33 instanceof Uint8Array)||t.publicKey33.length!==33)throw Error(`publicKey33 must be 33 bytes`);let n=t.digest32.slice().buffer,r=t.signature65.slice().buffer,i=t.publicKey33.slice().buffer,s=await e({ctx:t.workerCtx,kind:a,request:{type:`verifySecp256k1RecoverableSignatureAgainstPublicKey33`,payload:{digest32:n,signature65:r,publicKey33:i},timeoutMs:o,transfer:[n,r,i]}}),c=new Uint8Array(s);if(c.length!==33)throw Error(`verifySecp256k1RecoverableSignatureAgainstPublicKey33 expected 33-byte output (got ${c.length})`);return c}async function u(t){if(!(t.publicKey33 instanceof Uint8Array)||t.publicKey33.length!==33)throw Error(`publicKey33 must be 33 bytes`);let n=t.publicKey33.slice(),r=await e({ctx:t.workerCtx,kind:a,request:{type:`validateSecp256k1PublicKey33`,payload:{publicKey33:n.buffer},timeoutMs:o,transfer:[n.buffer]}}),i=new Uint8Array(r);if(i.length!==33)throw Error(`validateSecp256k1PublicKey33 expected 33-byte output (got ${i.length})`);return i}async function d(t){if(!(t.left33 instanceof Uint8Array)||t.left33.length!==33)throw Error(`left33 must be 33 bytes`);if(!(t.right33 instanceof Uint8Array)||t.right33.length!==33)throw Error(`right33 must be 33 bytes`);let n=t.left33.slice(),r=t.right33.slice(),i=await e({ctx:t.workerCtx,kind:a,request:{type:`addSecp256k1PublicKeys33`,payload:{left33:n.buffer,right33:r.buffer},timeoutMs:o,transfer:[n.buffer,r.buffer]}}),s=new Uint8Array(i);if(s.length!==33)throw Error(`addSecp256k1PublicKeys33 expected 33-byte output (got ${s.length})`);return s}async function f(t){if(!(t.challenge32 instanceof Uint8Array)||t.challenge32.length!==32)throw Error(`challenge32 must be 32 bytes`);if(!(t.pubKeyX32 instanceof Uint8Array)||t.pubKeyX32.length!==32)throw Error(`pubKeyX32 must be 32 bytes`);if(!(t.pubKeyY32 instanceof Uint8Array)||t.pubKeyY32.length!==32)throw Error(`pubKeyY32 must be 32 bytes`);if(!(t.authenticatorData instanceof Uint8Array)||!t.authenticatorData.length)throw Error(`authenticatorData must be non-empty`);if(!(t.clientDataJSON instanceof Uint8Array)||!t.clientDataJSON.length)throw Error(`clientDataJSON must be non-empty`);if(!(t.signatureDer instanceof Uint8Array)||!t.signatureDer.length)throw Error(`signatureDer must be non-empty`);let n=t.challenge32.slice(),r=t.authenticatorData.slice(),i=t.clientDataJSON.slice(),s=t.signatureDer.slice(),c=t.pubKeyX32.slice(),l=t.pubKeyY32.slice(),u=await e({ctx:t.workerCtx,kind:a,request:{type:`buildWebauthnP256Signature`,payload:{challenge32:n.buffer,authenticatorData:r.buffer,clientDataJSON:i.buffer,signatureDer:s.buffer,pubKeyX32:c.buffer,pubKeyY32:l.buffer},timeoutMs:o,transfer:[n.buffer,r.buffer,i.buffer,s.buffer,c.buffer,l.buffer]}});return new Uint8Array(u)}async function p(t){if(!(t.cosePublicKey instanceof Uint8Array)||t.cosePublicKey.length===0)throw Error(`cosePublicKey must be non-empty`);let n=t.cosePublicKey.slice(),r=await e({ctx:t.workerCtx,kind:a,request:{type:`decodeCoseP256PublicKey`,payload:{cosePublicKey:n.buffer},timeoutMs:o,transfer:[n.buffer]}}),i=new Uint8Array(r);if(i.length!==64)throw Error(`decodeCoseP256PublicKey expected 64-byte output (got ${i.length})`);return{pubKeyX32:i.slice(0,32),pubKeyY32:i.slice(32,64)}}export{c as a,p as i,f as n,u as o,s as r,l as s,d as t};
1
+ import{t as e}from"./executeWorkerOperation-C9FOCCR7.js";function t(e){if(e<0n)throw Error(`[evmCryptoWasm] negative bigint not supported`);return e.toString(10)}function n(e){if(typeof e==`bigint`){if(e<0n)throw Error(`[evmCryptoWasm] chainId must be a non-negative integer`);let t=Number(e);if(!Number.isSafeInteger(t))throw Error(`[evmCryptoWasm] chainId must be a non-negative safe integer`);return t}if(!Number.isSafeInteger(e)||e<0)throw Error(`[evmCryptoWasm] chainId must be a non-negative safe integer`);return e}function r(e){if(typeof e==`bigint`)return e;throw Error(`[evmCryptoWasm] missing tx nonce`)}function i(e){return{chainId:n(e.chainId),nonce:t(r(e.nonce)),maxPriorityFeePerGas:t(e.maxPriorityFeePerGas),maxFeePerGas:t(e.maxFeePerGas),gasLimit:t(e.gasLimit),to:e.to??null,value:t(e.value),data:e.data??`0x`,accessList:(e.accessList??[]).map(e=>({address:e.address,storageKeys:e.storageKeys}))}}const a=`evmCrypto`,o=2e4;async function s(t,n){let r=await e({ctx:n,kind:a,request:{type:`computeEip1559TxHash`,payload:{tx:i(t)},timeoutMs:o}});return new Uint8Array(r)}async function c(t){let n=t.signature65.slice().buffer,r=await e({ctx:t.workerCtx,kind:a,request:{type:`encodeEip1559SignedTxFromSignature65`,payload:{tx:i(t.tx),signature65:n},timeoutMs:o,transfer:[n]}});return new Uint8Array(r)}async function l(t){if(!(t.digest32 instanceof Uint8Array)||t.digest32.length!==32)throw Error(`digest32 must be 32 bytes`);if(!(t.signature65 instanceof Uint8Array)||t.signature65.length!==65)throw Error(`signature65 must be 65 bytes`);if(!(t.publicKey33 instanceof Uint8Array)||t.publicKey33.length!==33)throw Error(`publicKey33 must be 33 bytes`);let n=t.digest32.slice().buffer,r=t.signature65.slice().buffer,i=t.publicKey33.slice().buffer,s=await e({ctx:t.workerCtx,kind:a,request:{type:`verifySecp256k1RecoverableSignatureAgainstPublicKey33`,payload:{digest32:n,signature65:r,publicKey33:i},timeoutMs:o,transfer:[n,r,i]}}),c=new Uint8Array(s);if(c.length!==33)throw Error(`verifySecp256k1RecoverableSignatureAgainstPublicKey33 expected 33-byte output (got ${c.length})`);return c}async function u(t){if(!(t.publicKey33 instanceof Uint8Array)||t.publicKey33.length!==33)throw Error(`publicKey33 must be 33 bytes`);let n=t.publicKey33.slice(),r=await e({ctx:t.workerCtx,kind:a,request:{type:`validateSecp256k1PublicKey33`,payload:{publicKey33:n.buffer},timeoutMs:o,transfer:[n.buffer]}}),i=new Uint8Array(r);if(i.length!==33)throw Error(`validateSecp256k1PublicKey33 expected 33-byte output (got ${i.length})`);return i}async function d(t){if(!(t.left33 instanceof Uint8Array)||t.left33.length!==33)throw Error(`left33 must be 33 bytes`);if(!(t.right33 instanceof Uint8Array)||t.right33.length!==33)throw Error(`right33 must be 33 bytes`);let n=t.left33.slice(),r=t.right33.slice(),i=await e({ctx:t.workerCtx,kind:a,request:{type:`addSecp256k1PublicKeys33`,payload:{left33:n.buffer,right33:r.buffer},timeoutMs:o,transfer:[n.buffer,r.buffer]}}),s=new Uint8Array(i);if(s.length!==33)throw Error(`addSecp256k1PublicKeys33 expected 33-byte output (got ${s.length})`);return s}async function f(t){if(!(t.challenge32 instanceof Uint8Array)||t.challenge32.length!==32)throw Error(`challenge32 must be 32 bytes`);if(!(t.pubKeyX32 instanceof Uint8Array)||t.pubKeyX32.length!==32)throw Error(`pubKeyX32 must be 32 bytes`);if(!(t.pubKeyY32 instanceof Uint8Array)||t.pubKeyY32.length!==32)throw Error(`pubKeyY32 must be 32 bytes`);if(!(t.authenticatorData instanceof Uint8Array)||!t.authenticatorData.length)throw Error(`authenticatorData must be non-empty`);if(!(t.clientDataJSON instanceof Uint8Array)||!t.clientDataJSON.length)throw Error(`clientDataJSON must be non-empty`);if(!(t.signatureDer instanceof Uint8Array)||!t.signatureDer.length)throw Error(`signatureDer must be non-empty`);let n=t.challenge32.slice(),r=t.authenticatorData.slice(),i=t.clientDataJSON.slice(),s=t.signatureDer.slice(),c=t.pubKeyX32.slice(),l=t.pubKeyY32.slice(),u=await e({ctx:t.workerCtx,kind:a,request:{type:`buildWebauthnP256Signature`,payload:{challenge32:n.buffer,authenticatorData:r.buffer,clientDataJSON:i.buffer,signatureDer:s.buffer,pubKeyX32:c.buffer,pubKeyY32:l.buffer},timeoutMs:o,transfer:[n.buffer,r.buffer,i.buffer,s.buffer,c.buffer,l.buffer]}});return new Uint8Array(u)}async function p(t){if(!(t.cosePublicKey instanceof Uint8Array)||t.cosePublicKey.length===0)throw Error(`cosePublicKey must be non-empty`);let n=t.cosePublicKey.slice(),r=await e({ctx:t.workerCtx,kind:a,request:{type:`decodeCoseP256PublicKey`,payload:{cosePublicKey:n.buffer},timeoutMs:o,transfer:[n.buffer]}}),i=new Uint8Array(r);if(i.length!==64)throw Error(`decodeCoseP256PublicKey expected 64-byte output (got ${i.length})`);return{pubKeyX32:i.slice(0,32),pubKeyY32:i.slice(32,64)}}export{c as a,p as i,f as n,u as o,s as r,l as s,d as t};
@@ -1 +1 @@
1
- import{t as e}from"./surface-measurement-reporter-DvzNDnHy.js";import{n as t,t as n}from"./appearance-CAIe7Qed.js";let r=null,i=0;var a=class{surface;state;constructor(e,t,n,r,i,a){this.session=e,this.context=t,this.state={kind:`mounted`,lifecycle:i,binding:r,reporter:null},this.surface=a({parent:document.body,context:t,model:n,onClosed:this.closed})}start(){this.state.kind!==`disposed`&&(o(this.state.lifecycle,`opened`),this.state.kind===`mounted`&&this.bindMeasurement(this.state.binding))}matches(e,t){return this.surface.element.isConnected&&this.context===t&&this.session.kind===e.kind&&this.session.id===e.id}update(e,n,r){this.state.kind!==`disposed`&&(r&&(this.state.lifecycle=r),this.surface.update(e),t(this.state.binding,n)||this.bindMeasurement(n))}dispose(){r===this&&(r=null),this.surface.dispose()}closed=()=>{let e=this.state;e.kind!==`disposed`&&(this.state={kind:`disposed`},r===this&&(r=null,i+=1),e.reporter?.disconnect(),o(e.lifecycle,`closed`))};bindMeasurement(t){let n=this.state;if(n.kind===`disposed`||(n.reporter?.disconnect(),n.binding=t,n.reporter=null,t.kind===`disabled`))return;let r=e({kind:`request_surface`,element:this.surface.element,requestId:t.requestId,postMeasurement:t.postMeasurement});this.state===n?n.reporter=r:r.disconnect()}};function o(e,t){try{e?.(t)}catch{}}function s(e){let t=e.surfaceMeasurementBinding;return t.kind===`wallet_iframe`&&(t.hostSurfaceVariant??e.variant)===`modal`?`wallet-iframe`:`standalone`}function c(e){if(!e)return;let t=e.title.trim(),n=e.body?.trim(),r=e.steps?.map(l).filter(u);if(!(!t&&!n&&!r?.length))return{title:t,body:n,steps:r}}function l(e){return e.trim()}function u(e){return e.length>0}function d(e){return!!e.publicKey.trim()||!!e.privateKey.trim()}function f(e,t){return{id:`${e.scheme}-${t}`,scheme:e.scheme,label:e.label.trim(),publicKey:e.publicKey.trim(),address:e.address?.trim()??``}}function p(e){let t=e.accountId.trim(),n=c(e.guidance),r=e.errorMessage?.trim();if(r)return{kind:`failed`,accountId:t,guidance:n,message:r};let i=e.keys?.filter(d)??[];if(i.length===0){let t=e.publicKey?.trim()??``,n=e.privateKey?.trim()??``;(t||n)&&i.push({scheme:`ed25519`,label:`NEAR Ed25519`,publicKey:t,privateKey:n})}if(e.loading){let e={kind:`loading`,accountId:t,guidance:n,entries:[]};for(let[t,n]of i.entries())e.entries.push({...f(n,t),material:{kind:`loading`}});return e}let a={kind:`ready`,accountId:t,guidance:n,entries:[]};for(let[e,t]of i.entries()){let n=t.privateKey.trim();a.entries.push({...f(t,e),material:n?{kind:`ready`,value:n}:{kind:`unavailable`}})}return a}function m(e){let t=e.trim();return!!t&&r?.session.kind===`tracked`&&r.session.id===t&&r.surface.element.isConnected}async function h(e){if(typeof document>`u`)throw Error(`Export viewer host requires a DOM environment`);let t=++i,o={variant:e.variant,appearance:n({requestedAppearance:e.appearance,requestedMode:e.theme}),content:p(e)},c=e.sessionId?.trim(),l=c?{kind:`tracked`,id:c}:{kind:`untracked`},u=s(e),{mountExportPrivateKeySurface:d}=await import(`./mountExportPrivateKeySurface-B_052qyI.js`);if(t!==i)return;if(r?.matches(l,u)){r.update(o,e.surfaceMeasurementBinding,e.onLifecycle);return}if(r?.dispose(),t!==i)return;let f=new a(l,u,o,e.surfaceMeasurementBinding,e.onLifecycle??null,d);r=f;try{f.start()}catch(e){throw f.dispose(),e}}function g(){i+=1,r?.dispose()}export{g as n,h as r,m as t};
1
+ import{t as e}from"./surface-measurement-reporter-DXsvq401.js";import{n as t,t as n}from"./appearance-DL7c6bML.js";let r=null,i=0;var a=class{surface;state;constructor(e,t,n,r,i,a){this.session=e,this.context=t,this.state={kind:`mounted`,lifecycle:i,binding:r,reporter:null},this.surface=a({parent:document.body,context:t,model:n,onClosed:this.closed})}start(){this.state.kind!==`disposed`&&(o(this.state.lifecycle,`opened`),this.state.kind===`mounted`&&this.bindMeasurement(this.state.binding))}matches(e,t){return this.surface.element.isConnected&&this.context===t&&this.session.kind===e.kind&&this.session.id===e.id}update(e,n,r){this.state.kind!==`disposed`&&(r&&(this.state.lifecycle=r),this.surface.update(e),t(this.state.binding,n)||this.bindMeasurement(n))}dispose(){r===this&&(r=null),this.surface.dispose()}closed=()=>{let e=this.state;e.kind!==`disposed`&&(this.state={kind:`disposed`},r===this&&(r=null,i+=1),e.reporter?.disconnect(),o(e.lifecycle,`closed`))};bindMeasurement(t){let n=this.state;if(n.kind===`disposed`||(n.reporter?.disconnect(),n.binding=t,n.reporter=null,t.kind===`disabled`))return;let r=e({kind:`request_surface`,element:this.surface.element,requestId:t.requestId,postMeasurement:t.postMeasurement});this.state===n?n.reporter=r:r.disconnect()}};function o(e,t){try{e?.(t)}catch{}}function s(e){let t=e.surfaceMeasurementBinding;return t.kind===`wallet_iframe`&&(t.hostSurfaceVariant??e.variant)===`modal`?`wallet-iframe`:`standalone`}function c(e){if(!e)return;let t=e.title.trim(),n=e.body?.trim(),r=e.steps?.map(l).filter(u);if(!(!t&&!n&&!r?.length))return{title:t,body:n,steps:r}}function l(e){return e.trim()}function u(e){return e.length>0}function d(e){return!!e.publicKey.trim()||!!e.privateKey.trim()}function f(e,t){return{id:`${e.scheme}-${t}`,scheme:e.scheme,label:e.label.trim(),publicKey:e.publicKey.trim(),address:e.address?.trim()??``}}function p(e){let t=e.accountId.trim(),n=c(e.guidance),r=e.errorMessage?.trim();if(r)return{kind:`failed`,accountId:t,guidance:n,message:r};let i=e.keys?.filter(d)??[];if(i.length===0){let t=e.publicKey?.trim()??``,n=e.privateKey?.trim()??``;(t||n)&&i.push({scheme:`ed25519`,label:`NEAR Ed25519`,publicKey:t,privateKey:n})}if(e.loading){let e={kind:`loading`,accountId:t,guidance:n,entries:[]};for(let[t,n]of i.entries())e.entries.push({...f(n,t),material:{kind:`loading`}});return e}let a={kind:`ready`,accountId:t,guidance:n,entries:[]};for(let[e,t]of i.entries()){let n=t.privateKey.trim();a.entries.push({...f(t,e),material:n?{kind:`ready`,value:n}:{kind:`unavailable`}})}return a}function m(e){let t=e.trim();return!!t&&r?.session.kind===`tracked`&&r.session.id===t&&r.surface.element.isConnected}async function h(e){if(typeof document>`u`)throw Error(`Export viewer host requires a DOM environment`);let t=++i,o={variant:e.variant,appearance:n({requestedAppearance:e.appearance,requestedMode:e.theme}),content:p(e)},c=e.sessionId?.trim(),l=c?{kind:`tracked`,id:c}:{kind:`untracked`},u=s(e),{mountExportPrivateKeySurface:d}=await import(`./mountExportPrivateKeySurface-CsUEKeum.js`);if(t!==i)return;if(r?.matches(l,u)){r.update(o,e.surfaceMeasurementBinding,e.onLifecycle);return}if(r?.dispose(),t!==i)return;let f=new a(l,u,o,e.surfaceMeasurementBinding,e.onLifecycle??null,d);r=f;try{f.start()}catch(e){throw f.dispose(),e}}function g(){i+=1,r?.dispose()}export{g as n,h as r,m as t};