@seams/wallet 0.20.0 → 0.22.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 (409) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/SeamsWeb.js +2 -2
  3. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +25 -5
  4. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -2
  5. package/dist/esm/SeamsWeb/walletIframe/client/router.js +5 -2
  6. package/dist/esm/core/rpcClients/evm/EvmClient.js +11 -9
  7. package/dist/esm/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +1 -1
  8. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +20 -9
  9. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +107 -43
  10. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +1 -1
  11. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-receipt.js +36 -6
  12. package/dist/esm/core/ui/messages.js +9 -14
  13. package/dist/esm/plugins/SeamsWeb/walletIframe/sanitization.js +18 -0
  14. package/dist/esm/plugins/plugin-utils.js +5 -2
  15. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +3 -9
  16. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +2 -2
  17. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +23 -9
  18. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +376 -84
  19. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +87 -167
  20. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +11 -9
  21. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +76 -74
  22. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +23 -22
  23. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +1 -5
  24. package/dist/esm/react/components/AccountMenuButton/icons/MapPinIcon.js +12 -0
  25. package/dist/esm/react/components/AccountMenuButton/index.js +13 -2
  26. package/dist/esm/react/styles/styles.css +452 -162
  27. package/dist/esm/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  28. package/dist/esm/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  29. package/dist/esm/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  30. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +1 -0
  31. package/dist/esm/sdk/adapters-CgJpSAxH.js +2 -0
  32. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  33. package/dist/esm/sdk/challengeDelivery-C88JNwKf.js +1 -0
  34. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  35. package/dist/esm/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  36. package/dist/esm/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  37. package/dist/esm/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  38. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  39. package/dist/{public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js → esm/sdk/ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  40. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  41. package/dist/esm/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  42. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  43. package/dist/esm/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  44. package/dist/esm/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  45. package/dist/esm/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-C9n-62Pi.js} +1 -1
  46. package/dist/esm/sdk/exportKeypairOperation-Du9HKB8f.js +1 -0
  47. package/dist/esm/sdk/host-DoftJdVQ.js +1 -0
  48. package/dist/esm/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  49. package/dist/esm/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  50. package/dist/esm/sdk/localOnly-CvFSZFUy.js +1 -0
  51. package/dist/esm/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  52. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js +2 -0
  53. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  54. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  55. package/dist/esm/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  56. package/dist/esm/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  57. package/dist/esm/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  58. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +1 -0
  59. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +1 -0
  60. package/dist/esm/sdk/{singletons-CAsc9LvA.js → presignatures-DGLNs29C.js} +1 -1
  61. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  62. package/dist/esm/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  63. package/dist/esm/sdk/{registration-DknFwoqn.js → registration-CIxJvbTo.js} +1 -1
  64. package/dist/esm/sdk/registration-CeOmKyCG.js +1 -0
  65. package/dist/esm/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  66. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +1 -0
  67. package/dist/esm/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  68. package/dist/esm/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  69. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  70. package/dist/esm/sdk/runtime-auth-C0V-5znH.js +1 -0
  71. package/dist/{public/sdk/runtime-device-link-Dn_5hPCq.js → esm/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  72. package/dist/{public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  73. package/dist/esm/sdk/runtime-email-otp-DXuxFOjL.js +1 -0
  74. package/dist/esm/sdk/{runtime-export-Brz53_oi.js → runtime-export-Ba12ChDI.js} +1 -1
  75. package/dist/{public/sdk/runtime-near-Da_xFUXx.js → esm/sdk/runtime-near-DRrdWzmr.js} +1 -1
  76. package/dist/esm/sdk/runtime-preferences-BWyhRaBA.js +1 -0
  77. package/dist/esm/sdk/runtime-recovery-DlJlaZlf.js +1 -0
  78. package/dist/esm/sdk/runtime-recovery-codes-CuqYWqK7.js +1 -0
  79. package/dist/esm/sdk/secp256k1-CYu8ENjP.js +1 -0
  80. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  81. package/dist/esm/sdk/shared-B95wnpoD.js +6 -0
  82. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +1 -0
  83. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  84. package/dist/esm/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  85. package/dist/esm/sdk/signNear-B_UcqMRf.js +1 -0
  86. package/dist/esm/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  87. package/dist/esm/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  88. package/dist/esm/sdk/signingFlow-Co_QtuHK.js +2 -0
  89. package/dist/esm/sdk/signingQueue-Cj9sCJLj.js +1 -0
  90. package/dist/esm/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  91. package/dist/esm/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  92. package/dist/esm/sdk/transaction-activity-CpDMkSPm.js +1 -0
  93. package/dist/{public/sdk/transactionState-lB2qpkOm.js → esm/sdk/transactionState-BaFSiA9t.js} +1 -1
  94. package/dist/esm/sdk/tx-confirm-ui.js +186 -71
  95. package/dist/esm/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  96. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  97. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  98. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  99. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  100. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +1 -0
  101. package/dist/esm/sdk/wallet-ui.css +1 -1
  102. package/dist/esm/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  103. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  104. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  105. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  106. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +1 -0
  107. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  108. package/dist/esm/sdk/walletRecoveryAdminProof-CtH8_lph.js +1 -0
  109. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  110. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  111. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  112. package/dist/esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  113. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  114. package/dist/{public/sdk/webauthnP256-_ajaNl90.js → esm/sdk/webauthnP256-unqBoZCk.js} +1 -1
  115. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +2 -3
  116. package/dist/esm/shared-ts/src/utils/evmRpcResults.js +5 -3
  117. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +2 -1
  118. package/dist/public/headers.manifest.json +1 -1
  119. package/dist/public/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  120. package/dist/public/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  121. package/dist/public/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  122. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +1 -0
  123. package/dist/public/sdk/adapters-CgJpSAxH.js +2 -0
  124. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  125. package/dist/public/sdk/challengeDelivery-C88JNwKf.js +1 -0
  126. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  127. package/dist/public/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  128. package/dist/public/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  129. package/dist/public/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  130. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  131. package/dist/{esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js → public/sdk/ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  132. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  133. package/dist/public/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  134. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  135. package/dist/public/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  136. package/dist/public/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  137. package/dist/public/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-C9n-62Pi.js} +1 -1
  138. package/dist/public/sdk/exportKeypairOperation-Du9HKB8f.js +1 -0
  139. package/dist/public/sdk/host-DoftJdVQ.js +1 -0
  140. package/dist/public/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  141. package/dist/public/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  142. package/dist/public/sdk/localOnly-CvFSZFUy.js +1 -0
  143. package/dist/public/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  144. package/dist/public/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js +2 -0
  145. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  146. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  147. package/dist/public/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  148. package/dist/public/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  149. package/dist/public/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  150. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +1 -0
  151. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +1 -0
  152. package/dist/public/sdk/{singletons-CAsc9LvA.js → presignatures-DGLNs29C.js} +1 -1
  153. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  154. package/dist/public/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  155. package/dist/public/sdk/{registration-DknFwoqn.js → registration-CIxJvbTo.js} +1 -1
  156. package/dist/public/sdk/registration-CeOmKyCG.js +1 -0
  157. package/dist/public/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  158. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +1 -0
  159. package/dist/public/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  160. package/dist/public/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  161. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  162. package/dist/public/sdk/runtime-auth-C0V-5znH.js +1 -0
  163. package/dist/{esm/sdk/runtime-device-link-Dn_5hPCq.js → public/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  164. package/dist/{esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  165. package/dist/public/sdk/runtime-email-otp-DXuxFOjL.js +1 -0
  166. package/dist/public/sdk/{runtime-export-Brz53_oi.js → runtime-export-Ba12ChDI.js} +1 -1
  167. package/dist/{esm/sdk/runtime-near-Da_xFUXx.js → public/sdk/runtime-near-DRrdWzmr.js} +1 -1
  168. package/dist/public/sdk/runtime-preferences-BWyhRaBA.js +1 -0
  169. package/dist/public/sdk/runtime-recovery-DlJlaZlf.js +1 -0
  170. package/dist/public/sdk/runtime-recovery-codes-CuqYWqK7.js +1 -0
  171. package/dist/public/sdk/secp256k1-CYu8ENjP.js +1 -0
  172. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  173. package/dist/public/sdk/shared-B95wnpoD.js +6 -0
  174. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +1 -0
  175. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  176. package/dist/public/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  177. package/dist/public/sdk/signNear-B_UcqMRf.js +1 -0
  178. package/dist/public/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  179. package/dist/public/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  180. package/dist/public/sdk/signingFlow-Co_QtuHK.js +2 -0
  181. package/dist/public/sdk/signingQueue-Cj9sCJLj.js +1 -0
  182. package/dist/public/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  183. package/dist/public/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  184. package/dist/public/sdk/transaction-activity-CpDMkSPm.js +1 -0
  185. package/dist/{esm/sdk/transactionState-lB2qpkOm.js → public/sdk/transactionState-BaFSiA9t.js} +1 -1
  186. package/dist/public/sdk/tx-confirm-ui.js +186 -71
  187. package/dist/public/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  188. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  189. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  190. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  191. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  192. package/dist/public/sdk/wallet-recovery-BEui57xM.js +1 -0
  193. package/dist/public/sdk/wallet-ui.css +1 -1
  194. package/dist/public/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  195. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  196. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  197. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  198. package/dist/public/sdk/walletDbName-BVZhb4xF.js +1 -0
  199. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  200. package/dist/public/sdk/walletRecoveryAdminProof-CtH8_lph.js +1 -0
  201. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  202. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  203. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  204. package/dist/public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  205. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  206. package/dist/{esm/sdk/webauthnP256-_ajaNl90.js → public/sdk/webauthnP256-unqBoZCk.js} +1 -1
  207. package/dist/public/sdk/workers/email-otp.worker.js +6 -1
  208. package/dist/public/wallet-assets.manifest.json +253 -276
  209. package/dist/public/wallet-service/index.html +4 -4
  210. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +1 -1
  211. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -7
  212. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +5 -0
  213. package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +3 -3
  214. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +1 -1
  215. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryAdminProof.d.ts +46 -0
  216. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.d.ts +4 -1
  217. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryRotation.d.ts +11 -7
  218. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +9 -1
  219. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -3
  220. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +6 -4
  221. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +2 -2
  222. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -6
  223. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +1 -0
  224. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -0
  225. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestWalletMove.d.ts +1 -1
  226. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -1
  227. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/recoveryAuthorization.d.ts +6 -0
  228. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +14 -3
  229. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +8 -0
  230. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +1 -0
  231. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-activity.d.ts +2 -2
  232. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-receipt.d.ts +25 -6
  233. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryRotation.d.ts +22 -3
  234. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +1 -0
  235. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +1 -0
  236. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +8 -2
  237. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  238. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -1
  239. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MapPinIcon.d.ts +2 -0
  240. package/dist/workers/email-otp.worker.js +6 -1
  241. package/package.json +1 -1
  242. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +0 -77
  243. package/dist/esm/sdk/accountLifecycle-fLNUdjct.js +0 -1
  244. package/dist/esm/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  245. package/dist/esm/sdk/adapters-BNmcyf9K.js +0 -2
  246. package/dist/esm/sdk/appearance-token-vars-DxBm_cKA.js +0 -2
  247. package/dist/esm/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  248. package/dist/esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  249. package/dist/esm/sdk/digestEncoding-aC4dSf_x.js +0 -1
  250. package/dist/esm/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  251. package/dist/esm/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  252. package/dist/esm/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  253. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  254. package/dist/esm/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  255. package/dist/esm/sdk/host-DMR4KDy9.js +0 -1
  256. package/dist/esm/sdk/localOnly-DO191vDh.js +0 -1
  257. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  258. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  259. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  260. package/dist/esm/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  261. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  262. package/dist/esm/sdk/presignaturePool-BHoxnbOA.js +0 -1
  263. package/dist/esm/sdk/presignatures-K-yuzOE0.js +0 -1
  264. package/dist/esm/sdk/primitives-CTmDwMNc.js +0 -1
  265. package/dist/esm/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  266. package/dist/esm/sdk/registration-sQndIWRF.js +0 -1
  267. package/dist/esm/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  268. package/dist/esm/sdk/registrationIntent-D4YDjf2U.js +0 -1
  269. package/dist/esm/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  270. package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +0 -1
  271. package/dist/esm/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  272. package/dist/esm/sdk/runtime-preferences-riUZGaTs.js +0 -1
  273. package/dist/esm/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  274. package/dist/esm/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  275. package/dist/esm/sdk/secp256k1-wOOHtPcK.js +0 -1
  276. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  277. package/dist/esm/sdk/shared-hx7KVyeq.js +0 -6
  278. package/dist/esm/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  279. package/dist/esm/sdk/signNear-B000QxBd.js +0 -1
  280. package/dist/esm/sdk/signerSlot-FJAGOhmg.js +0 -1
  281. package/dist/esm/sdk/signingFlow-gl85GOW4.js +0 -2
  282. package/dist/esm/sdk/signingQueue-gW7wmOuL.js +0 -1
  283. package/dist/esm/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  284. package/dist/esm/sdk/transaction-activity-C0nCSW6c.js +0 -1
  285. package/dist/esm/sdk/wallet-recovery-DFaS3geI.js +0 -1
  286. package/dist/esm/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  287. package/dist/esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  288. package/dist/esm/sdk/walletDbName-BxWApBQF.js +0 -1
  289. package/dist/esm/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  290. package/dist/esm/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  291. package/dist/esm/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  292. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  293. package/dist/esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  294. package/dist/esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  295. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  296. package/dist/public/sdk/accountLifecycle-fLNUdjct.js +0 -1
  297. package/dist/public/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  298. package/dist/public/sdk/adapters-BNmcyf9K.js +0 -2
  299. package/dist/public/sdk/appearance-token-vars-DxBm_cKA.js +0 -2
  300. package/dist/public/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  301. package/dist/public/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  302. package/dist/public/sdk/digestEncoding-aC4dSf_x.js +0 -1
  303. package/dist/public/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  304. package/dist/public/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  305. package/dist/public/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  306. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  307. package/dist/public/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  308. package/dist/public/sdk/host-DMR4KDy9.js +0 -1
  309. package/dist/public/sdk/localOnly-DO191vDh.js +0 -1
  310. package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  311. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  312. package/dist/public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  313. package/dist/public/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  314. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  315. package/dist/public/sdk/presignaturePool-BHoxnbOA.js +0 -1
  316. package/dist/public/sdk/presignatures-K-yuzOE0.js +0 -1
  317. package/dist/public/sdk/primitives-CTmDwMNc.js +0 -1
  318. package/dist/public/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  319. package/dist/public/sdk/registration-sQndIWRF.js +0 -1
  320. package/dist/public/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  321. package/dist/public/sdk/registrationIntent-D4YDjf2U.js +0 -1
  322. package/dist/public/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  323. package/dist/public/sdk/runtime-auth-BxG-J-BB.js +0 -1
  324. package/dist/public/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  325. package/dist/public/sdk/runtime-preferences-riUZGaTs.js +0 -1
  326. package/dist/public/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  327. package/dist/public/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  328. package/dist/public/sdk/secp256k1-wOOHtPcK.js +0 -1
  329. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  330. package/dist/public/sdk/shared-hx7KVyeq.js +0 -6
  331. package/dist/public/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  332. package/dist/public/sdk/signNear-B000QxBd.js +0 -1
  333. package/dist/public/sdk/signerSlot-FJAGOhmg.js +0 -1
  334. package/dist/public/sdk/signingFlow-gl85GOW4.js +0 -2
  335. package/dist/public/sdk/signingQueue-gW7wmOuL.js +0 -1
  336. package/dist/public/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  337. package/dist/public/sdk/transaction-activity-C0nCSW6c.js +0 -1
  338. package/dist/public/sdk/wallet-recovery-DFaS3geI.js +0 -1
  339. package/dist/public/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  340. package/dist/public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  341. package/dist/public/sdk/walletDbName-BxWApBQF.js +0 -1
  342. package/dist/public/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  343. package/dist/public/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  344. package/dist/public/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  345. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  346. package/dist/public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  347. package/dist/public/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  348. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  349. package/dist/types/wallet/src/react/components/AccountMenuButton/SegmentedControl.d.ts +0 -25
  350. /package/dist/esm/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  351. /package/dist/esm/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  352. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  353. /package/dist/esm/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  354. /package/dist/esm/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  355. /package/dist/esm/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  356. /package/dist/esm/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  357. /package/dist/esm/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  358. /package/dist/esm/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  359. /package/dist/esm/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  360. /package/dist/esm/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  361. /package/dist/esm/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  362. /package/dist/esm/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  363. /package/dist/esm/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  364. /package/dist/esm/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  365. /package/dist/esm/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  366. /package/dist/esm/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  367. /package/dist/esm/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  368. /package/dist/esm/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  369. /package/dist/esm/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  370. /package/dist/esm/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  371. /package/dist/esm/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  372. /package/dist/esm/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  373. /package/dist/esm/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  374. /package/dist/esm/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  375. /package/dist/esm/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  376. /package/dist/esm/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  377. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  378. /package/dist/esm/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  379. /package/dist/esm/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
  380. /package/dist/public/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  381. /package/dist/public/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  382. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  383. /package/dist/public/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  384. /package/dist/public/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  385. /package/dist/public/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  386. /package/dist/public/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  387. /package/dist/public/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  388. /package/dist/public/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  389. /package/dist/public/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  390. /package/dist/public/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  391. /package/dist/public/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  392. /package/dist/public/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  393. /package/dist/public/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  394. /package/dist/public/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  395. /package/dist/public/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  396. /package/dist/public/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  397. /package/dist/public/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  398. /package/dist/public/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  399. /package/dist/public/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  400. /package/dist/public/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  401. /package/dist/public/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  402. /package/dist/public/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  403. /package/dist/public/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  404. /package/dist/public/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  405. /package/dist/public/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  406. /package/dist/public/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  407. /package/dist/public/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  408. /package/dist/public/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  409. /package/dist/public/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
@@ -0,0 +1 @@
1
+ import{n as e}from"./chunk-dVx5-UGu.js";import{B as t,S as n,V as r,r as i}from"./domainIds-C3fUa33Q.js";import{C as a,S as o,a as s,c,h as l,k as u,m as d,s as f,u as p,x as m}from"./chains-CPmd4s9f.js";import{$ as h,i as g,it as _,nt as v,t as y}from"./activeWalletSession-BtEHhe99.js";import{i as b,n as x,r as S,t as ee}from"./base64-BmKR3UqU.js";import{n as te,r as C}from"./secureRandomId-8LSc91aN.js";import{s as ne}from"./walletDbName-BVZhb4xF.js";import{o as w}from"./signingSessionSeal-DqbjG8c8.js";import{r as re}from"./transactionReviewAdmission-CNNho8IG.js";import{c as T,d as E,f as D,h as O,m as ie,p as k,s as A}from"./capabilityKinds-CqHVzVsJ.js";import{r as j}from"./canonicalPrimitives-D_1HyEuJ.js";import{t as M}from"./errors-CI1xdN0d.js";import{n as N,r as P}from"./signer-worker-Bh_5foqX.js";import{d as F,i as I,t as L,u as ae}from"./accountIds-BzZs7YoX.js";import{a as oe,c as R}from"./ecdsaChainTarget-svSlzhze.js";import{n as se,t as ce}from"./signerDomain-YEHkugWX.js";import{d as le,f as ue,g as de,h as fe,l as pe,m as me,p as he,u as ge}from"./registrationIntent-DW_kKWlx.js";import{Bt as z,It as _e,T as ve,i as B}from"./emailOtpEcdsaDerivationIdentity-DreNrM6n.js";import{t as ye}from"./signerSlot-CpyIfl3J.js";import{a as be,m as xe,o as V}from"./sdkSentEvents-BzMVO1AR.js";import{t as Se}from"./jsonRpc-B5zMY6lE.js";import{a as Ce,c as we,i as H,n as Te,o as Ee,r as U,s as De,t as Oe}from"./types-BrEW276O.js";import{p as ke}from"./nonceLaneKeys-CR2XEvnk.js";import{a as Ae,i as je,l as Me,u as Ne}from"./helpers-BXezXx19.js";import{i as Pe,n as Fe}from"./profileAccountProjection-C1z9sKHa.js";import{s as Ie,t as Le,y as Re}from"./nearEd25519YaoMaterialActivation-BK8_DxHs.js";import{D as ze,T as Be,j as Ve}from"./nearEd25519YaoSigningPreparation-BgCxoh9S.js";import{n as He}from"./lanes-l274pbT5.js";import{t as Ue}from"./walletSessionAuthorizationStatus-_KtCVFYW.js";import{n as We,r as Ge,t as Ke}from"./operationFingerprint-DRPONhBD.js";import{a as W,c as qe,o as Je,s as Ye,t as Xe}from"./trace-CWTzEALZ.js";import{d as Ze,i as Qe,n as $e,o as G,r as et,s as tt,u as nt}from"./intentDigest--FZ63NBy.js";import{t as rt}from"./challengeDelivery-C88JNwKf.js";import{n as it}from"./NonceCoordinator-Do23iTzQ.js";import{t as at}from"./executeWorkerOperation-S6glYwAs.js";import{a as ot,i as st,o as ct,r as lt,t as ut}from"./authorizationAdmission-D7nx2n4d.js";import{i as dt}from"./walletSessionFailure-Ct412mDZ.js";import{a as ft,d as pt,i as mt,l as ht,n as gt,p as _t,r as vt,s as yt,u as bt}from"./routerAbNormalSigning-DSAfCcND.js";import{i as xt,n as St}from"./clientSessionPersistenceState-DFGHXoKK.js";import{a as Ct,i as wt,r as Tt,t as Et}from"./types-BNUuaUtl.js";import{C as Dt,b as Ot,c as kt,g as At,h as jt,l as Mt,n as Nt,o as Pt,s as Ft,t as It,u as Lt,x as Rt}from"./requireStepUpAuth-DsNLml1i.js";import{a as zt,c as Bt,i as Vt,n as Ht,r as Ut,s as Wt,t as Gt}from"./transactionState-BaFSiA9t.js";const Kt=Symbol(`ClientSecretSource`),qt=Symbol(`EmailOtpWorkerSessionHandle`);function Jt(e,t){let n=String(e||``).trim();if(!n)throw Error(`[platform] ${t} is required`);return n}function Yt(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`[platform] ${t} must be an object`);return e}function Xt(e){return Zt({prfFirstB64u:e.prf.prfFirstB64u,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u})}function Zt(e){return{kind:`webauthn_prf_first`,prfFirstB64u:Jt(e.prfFirstB64u,`prfFirstB64u`),rpId:e.rpId,credentialIdB64u:Jt(e.credentialIdB64u,`credentialIdB64u`),[Kt]:`webauthn_prf_first`}}function Qt(e){let t=Jt(e.sessionId,`sessionId`);switch(e.action){case`threshold_ecdsa_bootstrap`:return{kind:`email_otp_worker_session_handle_v1`,sessionId:t,walletId:e.walletId,keyHandle:Jt(e.keyHandle,`keyHandle`),authSubjectId:e.authSubjectId,action:`threshold_ecdsa_bootstrap`,operation:e.operation,chainTarget:e.chainTarget,[qt]:`email_otp_worker_session_handle`};case`threshold_ed25519_session`:return{kind:`email_otp_worker_session_handle_v1`,sessionId:t,walletId:e.walletId,rpId:e.rpId,authSubjectId:e.authSubjectId,action:`threshold_ed25519_session`,operation:e.operation,[qt]:`email_otp_worker_session_handle`};default:{let t=e;throw Error(`[platform] unsupported email OTP worker-issued handle action: ${String(t)}`)}}}function $t(e){let t=Yt(e,`email OTP worker-issued session handle`),n=Jt(String(t.kind||``),`email OTP worker-issued handle kind`);if(n!==`email_otp_worker_session_handle_v1`)throw Error(`[platform] unsupported email OTP worker-issued handle kind: ${n}`);let r=Jt(String(t.action||``),`email OTP worker-issued handle action`),i=Jt(String(t.operation||``),`email OTP worker-issued handle operation`);if(i!==`registration`&&i!==`wallet_unlock`&&i!==`sign`&&i!==`export`)throw Error(`[platform] unsupported email OTP worker-issued handle operation: ${i}`);let a=i,o={sessionId:Jt(String(t.sessionId||``),`email OTP worker-issued handle sessionId`),walletId:R(t.walletId),authSubjectId:B(t.authSubjectId),operation:a};if(r===`threshold_ecdsa_bootstrap`){if(`rpId`in t)throw Error(`[platform] email OTP ECDSA worker-issued handles cannot include rpId`);if(a===`registration`)throw Error(`[platform] registration Email OTP ECDSA worker-issued handles are retired`);let e=oe(Yt(t.chainTarget,`email OTP worker-issued handle chainTarget`));if(`evmFamilySigningKeySlotId`in t)throw Error(`[platform] runtime Email OTP ECDSA handles cannot include evmFamilySigningKeySlotId`);return Qt({...o,action:r,operation:a,keyHandle:Jt(String(t.keyHandle||``),`email OTP worker-issued handle keyHandle`),chainTarget:e})}if(r===`threshold_ed25519_session`){if(`chainTarget`in t)throw Error(`[platform] email OTP Ed25519 worker-issued handles cannot include chainTarget`);if(`evmFamilySigningKeySlotId`in t||`keyHandle`in t)throw Error(`[platform] email OTP Ed25519 worker-issued handles cannot include ECDSA key identity`);return Qt({...o,action:r,rpId:ve(t.rpId)})}throw Error(`[platform] unsupported email OTP worker-issued handle action: ${r}`)}function en(e){return e.action===`threshold_ecdsa_bootstrap`&&e.operation===`export`}function tn(e){let t=$t(e);if(!en(t))throw Error(`[platform] Email OTP ECDSA export requires an export worker handle`);return t}const nn=15e3;function rn(e){e.abort(`timeout`)}function an(e,t){let n=String(e??``).trim();if(!n)throw Error(`[threshold-ed25519] ${t} is required`);return n}function on(e){let t=an(Me(e.credential),`prfFirstB64u`);return{ok:!0,operation:`get_passkey`,requirePrfFirst:!0,credential:e.credential,credentialIdB64u:an(e.credential.rawId||e.credential.id,`credentialIdB64u`),rawIdB64u:String(e.credential.rawId||``).trim(),rpId:ve(e.rpId),prf:{kind:`required`,prfFirstB64u:t}}}function sn(e){return{kind:`webauthn_prf_first_credential`,credential:e.credential,secretSource:Xt(on(e))}}function cn(e){return e.policySecretSource.secretSource.prfFirstB64u}function ln(e){if(typeof e!=`string`)return null;let t=Date.parse(e);return Number.isSafeInteger(t)&&t>Date.now()?t:null}function un(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:null}async function dn(e){let i=r(t(e.relayerUrl));if(!i)return{ok:!1,code:`invalid_args`,message:`Missing relayerUrl for Wallet Session mint`};if(typeof fetch!=`function`)return{ok:!1,code:`unsupported`,message:`fetch is not available for Wallet Session mint`};let o=Ne(e.auth.policySecretSource.credential),s=new AbortController,c=null;try{let t=`${i}${w}`,r=e.existingOperationCredential,l=String(e.publishableKey||``).trim()||void 0,u=r?.token||l,d=!r&&l&&String(e.projectEnvironmentId||``).trim()||void 0;c=setTimeout(rn,nn,s);let f=await fetch(t,{method:`POST`,headers:{"Content-Type":`application/json`,...u?{Authorization:`Bearer ${u}`}:{}},credentials:`omit`,signal:s.signal,body:JSON.stringify({sessionKind:e.sessionKind,relayerKeyId:e.relayerKeyId,sessionPolicy:e.sessionPolicy,...d?{projectEnvironmentId:d}:{},walletSessionTarget:{kind:`new_wallet_session`},...o?{webauthn_authentication:o}:{}})}),p;try{let e=await f.json();p=a(e)?e:{}}catch(e){if(s.signal.aborted)throw e;p={}}if(!f.ok)return Ie(p)||{ok:!1,code:typeof p.code==`string`?p.code:`http_error`,message:typeof p.message==`string`?p.message:`HTTP ${f.status}`};let m=Ie(p);if(m)return m;if(p.ok!==!0)return{ok:!1,code:typeof p.code==`string`?p.code:`invalid_response`,message:typeof p.message==`string`?p.message:`Wallet Session mint returned an unsuccessful response`};let h=n(p.thresholdSessionId);if(!h.ok)return{ok:!1,code:`invalid_response`,message:`Wallet Session mint returned an invalid thresholdSessionId`};let _=O(p.walletSessionId),v=ie(p.authorizationId),y=E(p.quotaId);if(!_.ok||!v.ok||!y.ok)return{ok:!1,code:`invalid_response`,message:`Wallet Session mint returned invalid authorization identity`};let b=ln(p.expiresAt),x=un(p.remainingUses),S=ne(p.runtimePolicyScope);if(!b||!x||!S)return{ok:!1,code:`invalid_response`,message:`Wallet Session mint returned invalid lifecycle or policy data`};let ee={ok:!0,thresholdSessionId:h.value,walletSessionId:_.value,authorizationId:v.value,quotaId:y.value,expiresAtMs:b,remainingUses:x,runtimePolicyScope:S};if(p.sessionKind===`issued_exact_wallet_session`){let e;try{e=g(p.operationCredential)}catch(e){return{ok:!1,code:`invalid_response`,message:M(e)||`Wallet Session mint returned an invalid operation credential`}}return e.walletSessionId===_.value?{...ee,sessionKind:p.sessionKind,operationCredential:e}:{ok:!1,code:`invalid_response`,message:`Wallet Session mint credential does not identify its session`}}return p.sessionKind!==`already_committed_exact_wallet_session`||p.operationCredential!==void 0?{ok:!1,code:`invalid_response`,message:`Wallet Session mint returned an invalid session branch`}:r?r.walletSessionId===_.value?{...ee,sessionKind:p.sessionKind}:{ok:!1,code:`invalid_response`,message:`Reused Wallet Session mint returned another lifecycle identity`}:{ok:!1,code:`invalid_response`,message:`Reused Wallet Session mint requires the credential the caller already holds`}}catch(e){let t=M(e)||`Failed to mint threshold session`,n=s.signal.aborted;return{ok:!1,code:n?`timeout`:`network_error`,message:n?`Wallet Session mint timed out after ${nn}ms`:t}}finally{c!==null&&clearTimeout(c)}}function fn(e){switch(e.kind){case`passkey`:return{kind:`passkey`,authority:e.authority,webauthn_authentication:Ne(e.credential)};case`email_otp`:return{kind:`email_otp`,authority_ref:e.authorityRef,provider_subject_id:an(e.providerSubjectId,`providerSubjectId`),challenge_id:an(e.challengeId,`challengeId`),otp_code:an(e.otpCode,`otpCode`)};default:throw Error(`[threshold-ed25519] unsupported operation step-up proof`)}}function pn(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`[threshold-ed25519] ${t} must be an object`);return e}function mn(e,t,n){let r=Object.keys(e).sort(),i=[...t].sort();if(r.length!==i.length)throw Error(`[threshold-ed25519] ${n} contains unexpected fields`);for(let e=0;e<r.length;e+=1)if(r[e]!==i[e])throw Error(`[threshold-ed25519] ${n} contains unexpected fields`)}function hn(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e)throw Error(`[threshold-ed25519] ${t} must be a non-empty normalized string`);return e}function gn(e){switch(e.proof.kind){case`passkey`:if(e.materialRecovery.kind!==`not_requested`)throw Error(`[threshold-ed25519] passkey operation step-up cannot request material recovery`);return{kind:`not_requested`};case`email_otp`:switch(e.materialRecovery.kind){case`not_requested`:return{kind:`not_requested`};case`email_otp_factor_release_v1`:return{kind:`email_otp_factor_release_v1`,workerEphemeralPublicKey65B64u:hn(e.materialRecovery.workerEphemeralPublicKey65B64u,`workerEphemeralPublicKey65B64u`)};default:throw e.materialRecovery,Error(`[threshold-ed25519] unsupported material recovery request`)}default:throw e.proof,Error(`[threshold-ed25519] unsupported operation step-up proof`)}}function _n(e){let t=pn(e.value,`operation step-up material recovery`);switch(t.kind){case`not_requested`:if(mn(t,[`kind`],`operation step-up material recovery`),e.requested.kind!==`not_requested`)throw Error(`[threshold-ed25519] operation step-up material recovery response does not match the request`);return{kind:`not_requested`};case`email_otp_factor_release_v1`:if(mn(t,[`kind`,`challengeId`,`enrollmentId`,`enrollmentSealKeyVersion`,`serverEphemeralPublicKey65B64u`,`nonce12B64u`,`ciphertextB64u`],`operation step-up material recovery`),e.requested.kind!==`email_otp_factor_release_v1`)throw Error(`[threshold-ed25519] operation step-up material recovery response does not match the request`);return{kind:`email_otp_factor_release_v1`,challengeId:hn(t.challengeId,`materialRecovery.challengeId`),enrollmentId:hn(t.enrollmentId,`materialRecovery.enrollmentId`),enrollmentSealKeyVersion:hn(t.enrollmentSealKeyVersion,`materialRecovery.enrollmentSealKeyVersion`),serverEphemeralPublicKey65B64u:hn(t.serverEphemeralPublicKey65B64u,`materialRecovery.serverEphemeralPublicKey65B64u`),nonce12B64u:hn(t.nonce12B64u,`materialRecovery.nonce12B64u`),ciphertextB64u:hn(t.ciphertextB64u,`materialRecovery.ciphertextB64u`)};default:throw Error(`[threshold-ed25519] operation step-up material recovery kind is invalid`)}}function vn(e){let t=pn(e.body,`operation step-up response`);if(mn(t,[`ok`,`kind`,`authorization`,`expiresAtMs`,`materialRecovery`],`operation step-up response`),t.ok!==!0||t.kind!==`verified_step_up`)throw Error(`[threshold-ed25519] operation step-up response kind is invalid`);let n=pn(t.authorization,`operation step-up authorization`);if(mn(n,[`kind`,`evidence_set_digest`],`operation step-up authorization`),n.kind!==`operation_step_up`)throw Error(`[threshold-ed25519] operation step-up authorization marker is invalid`);let r=hn(n.evidence_set_digest,`operation step-up authorization.evidence_set_digest`);if(j(r),typeof t.expiresAtMs!=`number`||!Number.isSafeInteger(t.expiresAtMs)||t.expiresAtMs<=Date.now())throw Error(`[threshold-ed25519] operation step-up expiry is invalid`);return{kind:`verified_step_up`,authorization:{kind:`operation_step_up`,evidence_set_digest:r},expiresAtMs:t.expiresAtMs,materialRecovery:_n({value:t.materialRecovery,requested:e.requestedMaterialRecovery})}}async function yn(e){let n=r(t(e.relayerUrl));if(!n)throw Error(`[threshold-ed25519] operation step-up relayerUrl is required`);let i=gn(e),a=e.credential.kind===`wallet_session_opaque`?{token:e.credential.walletSessionToken,home:e.credential.home}:null,o=v({...a?{headers:_(a)}:{},body:{kind:`router_ab_ed25519_yao_operation_step_up_grant_v1`,normalSigningRequest:e.normalSigningRequest,displayDigest:e.displayDigest,proof:fn(e.proof),materialRecovery:i.kind===`email_otp_factor_release_v1`?{kind:i.kind,worker_ephemeral_public_key_65_b64u:i.workerEphemeralPublicKey65B64u}:i}}),s=await fetch(`${n}${w}`,{...o}),c=await s.json().catch(()=>({}));if(!s.ok){let e=c&&typeof c==`object`&&!Array.isArray(c)?c:{};throw Error(`[threshold-ed25519] operation step-up failed: ${String(e.message||`HTTP ${s.status}`)}`)}return vn({body:c,requestedMaterialRecovery:i})}function bn(e){let t=e.lane,n=e.readiness;if(t.curve!==n.curve)throw Error(`[SigningSession] planner lane and readiness curves do not match`);if(t.curve===`ecdsa`&&n.curve===`ecdsa`){let e=t.authorization,r=n.authorization,a=e.session,o=r.session;if(!i(t.materialActivation,n.materialActivation)||e.selectedAuthority.authorityId!==r.selectedAuthority.authorityId||e.selectedAuthMethod.kind!==r.selectedAuthMethod.kind||e.selectedAuthMethod.walletAuthMethodId!==r.selectedAuthMethod.walletAuthMethodId||a.walletId!==o.walletId||a.authorityId!==o.authorityId||a.authMethodId!==o.authMethodId||a.authorizationId!==o.authorizationId||a.quotaId!==o.quotaId||a.authorityDigestB64u!==o.authorityDigestB64u||a.authorityRevocationEpoch!==o.authorityRevocationEpoch||e.operationCredential.walletSessionId!==r.operationCredential.walletSessionId||e.operationCredential.token!==r.operationCredential.token)throw Error(`[SigningSession] planner ECDSA readiness authority does not match its lane`)}let r=Sn(e);if(r)return{kind:H.NotReady,lane:t,reason:r};let a=e.forceFreshAuth||e.sensitiveOperationPolicy===`require_fresh_same_method`||t.retention===`single_use`;if(n.status===`ready`&&!a){if(t.curve===`ed25519`&&n.curve===`ed25519`)return{kind:H.WarmSession,lane:t,keyRef:{kind:Oe.Cached,curve:`ed25519`,thresholdSessionId:n.thresholdSessionId}};if(t.curve!==`ecdsa`||n.curve!==`ecdsa`)throw Error(`[SigningSession] planner lane and readiness curves do not match`);return{kind:H.WarmSession,lane:t,keyRef:{kind:Oe.Cached,curve:`ecdsa`,materialActivation:n.materialActivation,authorization:n.authorization}}}if(n.status===`auth_unavailable`||n.status===`status_unavailable`||n.status===`status_unknown`)return{kind:H.NotReady,lane:t,reason:n.status};if(we(t.auth)===`email_otp`)return{kind:H.EmailOtpReauth,lane:t,challenge:{chainFamily:t.chainFamily,lane:t}};if(t.curve===`ed25519`&&n.curve===`ed25519`)return{kind:H.PasskeyReauth,lane:t,reconnect:{lane:t,curve:`ed25519`,thresholdSessionId:n.thresholdSessionId}};if(t.curve!==`ecdsa`||n.curve!==`ecdsa`)throw Error(`[SigningSession] planner lane and readiness curves do not match`);return{kind:H.PasskeyReauth,lane:t,reconnect:{lane:t,curve:`ecdsa`,materialActivation:n.materialActivation,authorization:n.authorization}}}function xn(e,t){return{event:`signing_planner_decision`,readinessStatus:e.readiness.status,forceFreshAuth:!!e.forceFreshAuth,...e.sensitiveOperationPolicy?{sensitiveOperationPolicy:e.sensitiveOperationPolicy}:{},plan:Ee(t),lane:Ce(e.lane),...t.kind===H.NotReady?{reason:t.reason}:{}}}function Sn(e){return we(e.lane.auth)===`email_otp`&&(e.sensitiveOperationPolicy===`deny_email_otp`||e.sensitiveOperationPolicy===`require_passkey`)?`policy_blocked`:null}async function Cn(e,t){let n=L(e),r=await Fe(t,Pe(n)).catch(()=>null);if(!r?.profileId)throw Error(`No profile/account mapping for account ${n}`);let i=await t.getLastProfileState().catch(()=>null);if(!i?.profileId||i.profileId!==r.profileId)throw Error(`No last user session for account ${n}`);let a=ye(i.activeSignerSlot,{min:1});if(a===null)throw Error(`Invalid last-user signerSlot for account ${n}`);return a}var K=function(e){return e.Query=`query`,e.Send=`send_tx`,e.Block=`block`,e}(K||{}),wn=class e{transaction;signature;borsh_bytes;nonceLease;serverDispatch;constructor(e){this.transaction=e.transaction,this.signature=e.signature,this.borsh_bytes=e.borsh_bytes,e.nonceLease&&(this.nonceLease=e.nonceLease),e.serverDispatch&&(this.serverDispatch=e.serverDispatch)}static fromPlain(t){return new e({transaction:t.transaction,signature:t.signature,borsh_bytes:t.borsh_bytes,...t.nonceLease?{nonceLease:t.nonceLease}:{},...t.serverDispatch?{serverDispatch:t.serverDispatch}:{}})}encode(){return new Uint8Array(this.borsh_bytes).buffer}base64Encode(){return x(this.encode())}};function Tn(e){if(!e)return null;if(Array.isArray(e))return new Uint8Array(e).buffer;if(ArrayBuffer.isView(e)){let t=e;return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}return e instanceof ArrayBuffer?e:null}function En(e){let t=e?.signedTransaction,n=t&&typeof t==`object`?t:e,r=n.base64Encode;if(m(r))return r.call(n);let i=n.encode;if(m(i))return x(i.call(n));let a=Tn(n.borsh_bytes);if(a)return x(a);let o=Tn(n.borshBytes);if(o)return x(o);throw Error(`Invalid signed transaction payload: cannot serialize to base64`)}var Dn=class e{rpcUrls;constructor(t){this.rpcUrls=e.normalizeRpcUrls(t)}static normalizeRpcUrls(e){let t=(Array.isArray(e)?e:e.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean)).map(e=>{try{return new URL(e).toString()}catch(t){let n=M(t)||`Invalid NEAR RPC URL: ${e}`;throw Error(n)}});if(!t.length)throw Error(`NEAR RPC URL cannot be empty`);return Array.from(new Set(t))}errorFromHttpStatus(e){return Error(`RPC request failed: ${e.status} ${e.statusText}`)}errorFromFailedCall(e,t){return t}sendWithRetry(e){return e()}buildRequestBody(e,t){return JSON.stringify({jsonrpc:`2.0`,id:C(`near-rpc`,32,`NEAR JSON-RPC request IDs`),method:e,params:t})}async postOnce(e,t){let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:t});if(!n.ok)throw this.errorFromHttpStatus(n);let r=await n.text();if(!r?.trim())throw Error(`Empty response from RPC server`);let i=Se(JSON.parse(r));if(!i.ok)throw Error(`Invalid NEAR JSON-RPC response: ${i.error}`);return i.value}async requestWithFallback(e){let t;for(let[n,r]of this.rpcUrls.entries())try{let t=await this.postOnce(r,e);return n>0&&console.warn(`[NearClient] RPC succeeded via fallback: ${r}`),t}catch(e){t=e;let i=n<this.rpcUrls.length-1;if(console.warn(`[NearClient] RPC call to ${r} failed${i?`, trying next`:``}: ${M(e)||`RPC request failed`}`),!i)throw e instanceof Error?e:Error(String(e))}throw Error(M(t)||`RPC request failed`)}unwrapRpcResult(e,t){if(e.kind===`failure`)throw this.errorFromRpc(t,e.error);let n=e.result;if(typeof n==`object`&&n&&`error`in n){let e=Reflect.get(n,`error`),r=typeof e==`string`?e:JSON.stringify(e);throw this.errorFromWrappedResult(`${t} Error: ${r}`)}return e.result}async makeRpcCall(e,t,n,r){let i=this.buildRequestBody(e,t);try{let e=await this.requestWithFallback(i);return r(this.unwrapRpcResult(e,n))}catch(e){throw this.errorFromFailedCall(n,e)}}async query(e,t){return this.makeRpcCall(K.Query,e,`Query`,t)}async viewAccessKey(e,t,n){let r={request_type:`view_access_key`,finality:n?.finality||`final`,account_id:e,public_key:t};return this.makeRpcCall(K.Query,r,`View Access Key`,ge)}async viewAccessKeyList(e,t){let n={request_type:`view_access_key_list`,finality:t?.finality||`final`,account_id:e};return this.makeRpcCall(K.Query,n,`View Access Key List`,pe)}async viewAccount(e){let t={request_type:`view_account`,finality:`final`,account_id:e};return this.makeRpcCall(K.Query,t,`View Account`,le)}async viewCode(e,t){let n={request_type:`view_code`,finality:t?.finality||`final`,account_id:e};return ee(await this.makeRpcCall(K.Query,n,`View Code`,he))}async viewBlock(e){return this.makeRpcCall(K.Block,e,`View Block`,ue)}async sendTransaction(e,t=`EXECUTED_OPTIMISTIC`){let n={signed_tx_base64:En(e),wait_until:t};return this.sendWithRetry(async()=>{let e=await this.makeRpcCall(K.Send,n,`Send Transaction`,fe),t=e.status;if(t&&typeof t==`object`&&`Failure`in t)throw this.errorFromOutcome(`Send Transaction`,e,t.Failure);return e})}async txStatus(e,t){let n={tx_hash:e,sender_account_id:t};return this.makeRpcCall(`EXPERIMENTAL_tx_status`,n,`Tx Status`,fe)}async callFunction(e,t,n,r,i){let a={request_type:`call_function`,...i??{finality:`final`},account_id:e,method_name:t,args_base64:x(new TextEncoder().encode(JSON.stringify(n)).buffer)};return r(de((await this.makeRpcCall(K.Query,a,`View Function`,me)).result))}async view(e){return this.callFunction(e.account,e.method,e.args,e.decodeResult)}async getAccessKeys({account:e,block_id:t}){let n={request_type:`view_access_key_list`,account_id:e,finality:`final`};t&&(n.block_id=t,delete n.finality);let r=await this.makeRpcCall(K.Query,n,`View Access Key List`,pe),i=[],a=[];for(let e of r.keys)e.access_key.permission===`FullAccess`?i.push(e):e.access_key.permission&&typeof e.access_key.permission==`object`&&`FunctionCall`in e.access_key.permission&&a.push(e);return{fullAccessKeys:i,functionCallAccessKeys:a}}};function On(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function kn(e){if(!e)return;let t=Object.keys(e);return t.length?t[0]:void 0}var An=class e extends Error{code;type;kind;index;short;details;operation;constructor(e){super(e.message),this.name=e.name||`NearRpcError`,this.code=e.code,this.type=e.type||`Unknown`,this.kind=e.kind,this.index=e.index,this.short=e.short,this.details=e.details,this.operation=e.operation}static fromOutcome(t,n,r){let{message:i,type:a,kind:o,index:s,short:c}=Mn(t,r);return new e({message:i||`${t} failed`,short:c||o||`TxExecutionError`,type:a||`Failure`,kind:o,index:s,name:`TxExecutionFailure`,operation:t,details:{Failure:r,outcome:n}})}static fromRpcError(t,n){let r=n.data,{message:i,type:a,kind:o,index:s,short:c}=jn(t,r,n.message);return new e({message:i||n.message||`${t} RPC error`,short:c||o||`RPC error`,type:a||`RpcError`,kind:o,index:s,code:typeof n.code==`number`?n.code:void 0,name:n.name||`NearRpcError`,operation:t,details:r})}};function jn(e,t,n=``){let r=On(t)?t:void 0,i=On(r?.TxExecutionError)?r.TxExecutionError:void 0;if(!i){let i=typeof t==`string`&&t.trim()?t.trim():r?JSON.stringify(r):n.trim();return{message:`${e} RPC error${i?`: ${i}`:``}`}}return Nn(e,i)}function Mn(e,t){let n=On(t)?t:void 0;return n?Nn(e,n):{message:`${e} failed (Unknown Failure)`}}function Nn(e,t){if(On(t.InvalidTxError)){let n=t.InvalidTxError,r=kn(n)||`InvalidTxError`;On(n.ActionsValidation)&&(r=`ActionsValidation.${kn(n.ActionsValidation)}`);let i=r.startsWith(`ActionsValidation.`)?`InvalidTxError: ${r.split(`.`)[1]||`ActionsValidation`}`:`InvalidTxError: ${r}`;return{message:`${e} failed (InvalidTxError: ${r})`,type:`InvalidTxError`,kind:r,short:i}}if(On(t.ActionError)){let n=t.ActionError,r=typeof n.index==`number`?n.index:void 0,i=kn(On(n.kind)?n.kind:void 0)||`ActionError`,a=typeof r==`number`?` at action ${r}`:``,o=`ActionError: ${i}`;return{message:`${e} failed${a} (ActionError: ${i})`,type:`ActionError`,kind:i,index:r,short:o}}return{message:`${e} failed (TxExecutionError)`,type:`TxExecutionError`,kind:`TxExecutionError`,short:`TxExecutionError`}}var Pn=class e extends wn{static fromPlain(t){return new e({transaction:t.transaction,signature:t.signature,borsh_bytes:t.borsh_bytes,...t.nonceLease?{nonceLease:t.nonceLease}:{},...t.serverDispatch?{serverDispatch:t.serverDispatch}:{}})}static decode(){throw Error(`SignedTransaction.decode(): borsh deserialization not implemented`)}},Fn=class extends Dn{errorFromRpc(e,t){return An.fromRpcError(e,t)}errorFromWrappedResult(e){return new An({message:e,short:`RpcError`,type:`RpcError`})}errorFromOutcome(e,t,n){return An.fromOutcome(e,t,n)}errorFromHttpStatus(e){return e.status===429?Error(`RPC throttled; retry shortly`):super.errorFromHttpStatus(e)}async sendWithRetry(e){let t=null;for(let n=1;n<=5;n++)try{return await e()}catch(e){t=e;let r=M(e);if(!/server error|internal|temporar|timeout|throttl|too many requests|429|unavailable|bad gateway|gateway timeout/i.test(r||``)||n===5)throw e;let i=200*2**(n-1),a=Math.floor(Math.random()*150);await new Promise(e=>setTimeout(e,i+a))}throw t instanceof Error?t:Error(String(t))}};function In(e){try{return JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,2)}catch{return String(e)}}function q(e,t,n){let r=String(t??``).trim();if(r)return{label:e,value:r,...typeof n==`string`&&n.trim()?{copyValue:n}:{}}}function Ln(e){switch(e.action_type){case G.Transfer:case G.FunctionCall:return BigInt(e.deposit||`0`);case G.Stake:return BigInt(e.stake||`0`);default:return BigInt(0)}}function Rn(e){try{let t=JSON.parse(e)?.permission;if(t===`FullAccess`)return`FullAccess`;if(t&&typeof t==`object`){if(`FullAccess`in t)return`FullAccess`;if(`FunctionCall`in t)return`FunctionCall`}}catch{return`Unknown`}return`Unknown`}function zn(e){let{action:t,txIndex:n,actionIndex:r,receiverId:i}=e,a=`near.tx.${n}.action.${r}`;switch(t.action_type){case G.CreateAccount:return{id:a,kind:`near.action`,actionType:`createAccount`,label:`Action ${r+1}: CreateAccount`,fields:[q(`Receiver`,i)].filter(Boolean)};case G.Transfer:return{id:a,kind:`near.action`,actionType:`transfer`,label:`Action ${r+1}: Transfer`,fields:[q(`Receiver`,i),q(`Amount (yoctoNEAR)`,t.deposit)].filter(Boolean)};case G.FunctionCall:{let e=String(t.args||``),n=e?[{id:`${a}.args`,kind:`raw.fallback`,label:`Function Arguments`,raw:e}]:[];return{id:a,kind:`near.action`,actionType:`functionCall`,label:`Action ${r+1}: FunctionCall`,fields:[q(`Receiver`,i),q(`Method`,t.method_name),q(`Gas`,t.gas),q(`Deposit (yoctoNEAR)`,t.deposit)].filter(Boolean),...n.length?{children:n}:{}}}case G.Stake:return{id:a,kind:`near.action`,actionType:`stake`,label:`Action ${r+1}: Stake`,fields:[q(`Receiver`,i),q(`Stake (yoctoNEAR)`,t.stake),q(`Validator Key`,t.public_key,t.public_key)].filter(Boolean)};case G.AddKey:return{id:a,kind:`near.action`,actionType:`addKey`,label:`Action ${r+1}: AddKey`,fields:[q(`Receiver`,i),q(`Public Key`,t.public_key,t.public_key),q(`Permission`,Rn(t.access_key))].filter(Boolean)};case G.DeleteKey:return{id:a,kind:`near.action`,actionType:`deleteKey`,label:`Action ${r+1}: DeleteKey`,fields:[q(`Receiver`,i),q(`Public Key`,t.public_key,t.public_key)].filter(Boolean)};case G.DeployContract:return{id:a,kind:`near.action`,actionType:`deployContract`,label:`Action ${r+1}: DeployContract`,fields:[q(`Receiver`,i),q(`Code Bytes`,String(t.code?.length??0))].filter(Boolean)};case G.DeployGlobalContract:return{id:a,kind:`near.action`,actionType:`deployGlobalContract`,label:`Action ${r+1}: DeployGlobalContract`,fields:[q(`Receiver`,i),q(`Deploy Mode`,t.deploy_mode),q(`Code Bytes`,String(t.code?.length??0))].filter(Boolean)};case G.UseGlobalContract:return{id:a,kind:`near.action`,actionType:`useGlobalContract`,label:`Action ${r+1}: UseGlobalContract`,fields:[q(`Receiver`,i),q(`By Account`,t.account_id),q(`By Code Hash`,t.code_hash,t.code_hash)].filter(Boolean)};case G.DeleteAccount:return{id:a,kind:`near.action`,actionType:`deleteAccount`,label:`Action ${r+1}: DeleteAccount`,fields:[q(`Receiver`,i),q(`Beneficiary`,t.beneficiary_id)].filter(Boolean)};case G.SignedDelegate:return{id:a,kind:`near.action`,actionType:`signedDelegate`,label:`Action ${r+1}: SignedDelegate`,children:[{id:`${a}.delegate`,kind:`raw.fallback`,label:`Signed Delegate Payload`,raw:In(t)}]};default:return{id:a,kind:`raw.fallback`,label:`Action ${r+1}: Unsupported`,raw:In(t)}}}function Bn(e,t,n){let r=String(e.receiverId||``).trim()||`(unknown receiver)`,i=Array.isArray(e.actions)?e.actions:[],a=i.reduce((e,t)=>e+Ln(t),BigInt(0)),o=[q(`Receiver`,r),q(`Action Count`,String(i.length)),q(`Attached Value (yoctoNEAR)`,a>0?a.toString():void 0)].filter(Boolean);return{id:`near.tx.${t}`,kind:`generic.contractCall`,label:n>1?`Transaction ${t+1}`:`Transaction`,to:r,value:a>0?a.toString():void 0,fields:o,children:i.map((e,n)=>zn({action:e,txIndex:t,actionIndex:n,receiverId:r}))}}function Vn(e){let t=Array.isArray(e.txSigningRequests)?e.txSigningRequests:[],n=t.map((e,n)=>Bn(e,n,t.length)),r=t.reduce((e,t)=>e+(Array.isArray(t.actions)?t.actions.reduce((e,t)=>e+Ln(t),BigInt(0)):BigInt(0)),BigInt(0));return{chain:`near`,intentDigest:e.intentDigest,signerAccount:e.signerAccount,title:e.title||`NEAR Transaction`,subtitle:e.subtitle,operations:n,...r>0?{totals:{nativeValue:r.toString(),nativeSymbol:`yoctoNEAR`}}:{}}}function Hn(e){let t={id:`near.message`,kind:`near.message`,label:`Message signature`,fields:[q(`Signer`,e.signerAccount,e.signerAccount),q(`Recipient`,e.recipient,e.recipient),{label:`Message`,value:e.message,copyValue:e.message,renderAs:`file-content`,hideChevron:!0}].filter(Boolean)};return{chain:`near`,intentDigest:e.intentDigest,signerAccount:e.signerAccount,title:e.title||`NEP-413 message`,subtitle:e.subtitle,operations:[t]}}function Un(e){try{return Vn(e)}catch{return{chain:`near`,signerAccount:e.signerAccount,...e.title?{title:e.title}:{},...e.subtitle?{subtitle:e.subtitle}:{},operations:[]}}}async function Wn(e){let t=L(e.nearAccount.accountId),n=ye(e.signerSlot,{min:1});if(n===null)throw Error(`Invalid signerSlot for ${e.operationLabel}: ${e.signerSlot}`);if(e.requestedSignerSlot!==void 0){let t=ye(e.requestedSignerSlot,{min:1});if(t===null||t!==n)throw Error(`Requested signerSlot does not match the selected signing lane for ${e.operationLabel}`)}let r=await e.materialExecutor.resolveSigningKeyMaterial();if(r.nearAccountId!==t||r.signerSlot!==n)throw Error(`[SigningEngine] threshold key material does not match the selected lane`);return{thresholdKeyMaterial:r}}function Gn(e){let t=qn({nearAccountId:e.nearAccountId,tx:e.transaction,txIndex:0});return{txSigningRequest:t,confirmationTransaction:{receiverId:t.receiverId,actions:t.actions}}}function Kn(e){let t=e.delegate.actions.map(nt);t.forEach((e,t)=>{try{Ze(e)}catch(e){throw Error(`Delegate action ${t} validation failed: ${e instanceof Error?e.message:String(e)}`)}});let n={senderId:e.delegate.senderId||e.nearAccountId,receiverId:e.delegate.receiverId,actions:t,nonce:e.delegate.nonce,maxBlockHeight:e.delegate.maxBlockHeight};return{confirmationDelegate:n,workerDelegate:{...n,nonce:e.delegate.nonce.toString(),maxBlockHeight:e.delegate.maxBlockHeight.toString(),publicKey:e.signingPublicKey}}}function qn(e){let t=String(e.tx?.receiverId||``).trim();if(!t)throw Error(`[SigningEngine] transactions[${e.txIndex}].receiverId is required`);let n=Array.isArray(e.tx?.actions)?e.tx.actions:[];if(n.length===0)throw Error(`[SigningEngine] transactions[${e.txIndex}].actions must be non-empty`);for(let e=0;e<n.length;e++)Ze(n[e]);return{nearAccountId:e.nearAccountId,receiverId:t,actions:n}}async function Jn(e){return Qn({kind:`near:transactions_with_actions:planning`,payload:{purpose:`near_transaction`,...$n(e),transactions:er(e.transactions)}})}async function Yn(e){return Qn({kind:`near:transactions_with_actions`,payload:{purpose:`near_transaction`,...$n(e),transactions:er(e.transactions),unsignedTransactionBorshB64u:l(e.unsignedTransactionBorshB64u,`unsignedTransactionBorshB64u`),signingDigestB64u:l(e.signingDigestB64u,`signingDigestB64u`)}})}async function Xn(e){return Qn({kind:`near:nep413`,payload:{purpose:`nep413_message`,...$n(e),message:l(e.message,`message`),recipient:l(e.recipient,`recipient`),nonce:l(e.nonce,`nonce`),callbackUrl:e.callbackUrl}})}async function Zn(e){return Qn({kind:`near:delegate_action`,payload:{purpose:`delegate_action`,...$n(e),delegate:tr(e.delegate)}})}async function Qn(e){return`sha256:${b(await p(c({kind:l(e.kind,`kind`),payload:mr(e.payload)})))}`}function $n(e){return{nearAccountId:l(e.nearAccountId,`nearAccountId`),nearNetworkId:l(e.nearNetworkId,`nearNetworkId`),relayerKeyId:l(e.relayerKeyId,`relayerKeyId`),signerPublicKey:l(e.signerPublicKey,`signerPublicKey`)}}function er(e){if(!Array.isArray(e)||e.length<1)throw Error(`transactions must be a non-empty array`);return e.map((e,t)=>nr(e,`transactions[${t}]`))}function tr(e){return{senderId:l(e.senderId,`delegate.senderId`),receiverId:l(e.receiverId,`delegate.receiverId`),actions:rr(e.actions,`delegate.actions`),nonce:l(e.nonce,`delegate.nonce`),maxBlockHeight:l(e.maxBlockHeight,`delegate.maxBlockHeight`),publicKey:l(e.publicKey,`delegate.publicKey`)}}function nr(e,t){let n=u(e,t);return{nearAccountId:l(n.nearAccountId,`${t}.nearAccountId`),receiverId:l(n.receiverId,`${t}.receiverId`),actions:rr(n.actions,`${t}.actions`)}}function rr(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>ir(e,`${t}[${n}]`))}function ir(e,t){let n=u(e,t),r=l(n.action_type,`${t}.action_type`);switch(r){case`CreateAccount`:return{action_type:r};case`DeployContract`:return{action_type:r,code:lr(n.code,`${t}.code`)};case`FunctionCall`:return{action_type:r,method_name:l(n.method_name,`${t}.method_name`),args:l(n.args,`${t}.args`),gas:l(n.gas,`${t}.gas`),deposit:l(n.deposit,`${t}.deposit`)};case`Transfer`:return{action_type:r,deposit:l(n.deposit,`${t}.deposit`)};case`Stake`:return{action_type:r,stake:l(n.stake,`${t}.stake`),public_key:l(n.public_key,`${t}.public_key`)};case`AddKey`:return{action_type:r,public_key:l(n.public_key,`${t}.public_key`),access_key:l(n.access_key,`${t}.access_key`)};case`DeleteKey`:return{action_type:r,public_key:l(n.public_key,`${t}.public_key`)};case`DeleteAccount`:return{action_type:r,beneficiary_id:l(n.beneficiary_id,`${t}.beneficiary_id`)};case`SignedDelegate`:return{action_type:r,delegate_action:ar(n.delegate_action,`${t}.delegate_action`),signature:sr(n.signature,`${t}.signature`)};case`DeployGlobalContract`:return{action_type:r,code:lr(n.code,`${t}.code`),deploy_mode:fr(n.deploy_mode,`${t}.deploy_mode`)};case`UseGlobalContract`:return cr(n,t)}throw Error(`${t}.action_type is unsupported`)}function ar(e,t){let n=u(e,t);return{senderId:l(n.senderId,`${t}.senderId`),receiverId:l(n.receiverId,`${t}.receiverId`),actions:rr(n.actions,`${t}.actions`),nonce:dr(n.nonce,`${t}.nonce`),maxBlockHeight:dr(n.maxBlockHeight,`${t}.maxBlockHeight`),publicKey:or(n.publicKey,`${t}.publicKey`)}}function or(e,t){let n=u(e,t);return{keyType:ur(n.keyType,`${t}.keyType`),keyData:lr(n.keyData,`${t}.keyData`)}}function sr(e,t){let n=u(e,t);return{keyType:ur(n.keyType,`${t}.keyType`),signatureData:lr(n.signatureData,`${t}.signatureData`)}}function cr(e,t){let n=pr(e.account_id),r=pr(e.code_hash);if(n&&r)throw Error(`${t} requires exactly one of account_id or code_hash`);if(n)return{action_type:`UseGlobalContract`,account_id:n};if(r)return{action_type:`UseGlobalContract`,code_hash:r};throw Error(`${t} requires exactly one of account_id or code_hash`)}function lr(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{if(typeof e!=`number`||!Number.isInteger(e)||e<0||e>255)throw Error(`${t}[${n}] must be a byte`);return e})}function ur(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e))throw Error(`${t} must be a safe integer`);return e}function dr(e,t){return typeof e==`bigint`||typeof e==`number`&&Number.isSafeInteger(e)?e:l(e,t)}function fr(e,t){let n=l(e,t);if(n===`CodeHash`||n===`AccountId`)return n;throw Error(`${t} is invalid`)}function pr(e){return String(e||``).trim()||null}function mr(e){if(typeof e==`bigint`)return e.toString(10);if(e instanceof Uint8Array)return{__bytesB64u:b(e)};if(ArrayBuffer.isView(e))return{__bytesB64u:b(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))};if(e instanceof ArrayBuffer)return{__bytesB64u:b(new Uint8Array(e))};if(Array.isArray(e))return e.map(mr);if(!e||typeof e!=`object`)return e;let t={};for(let n of Object.keys(e).sort()){let r=mr(e[n]);r!==void 0&&(t[n]=r)}return t}async function hr(e){if(Tt(e.signingAuthPlan)&&!e.emailOtpEd25519StepUp)throw Error(`[SigningEngine][near] Email OTP step-up runner is unavailable`);if(wt(e.signingAuthPlan)&&!e.passkeyEd25519OperationStepUp)throw Error(`[SigningEngine][near] Passkey operation step-up runner is unavailable`);let t=null,n=await It({operation:{kind:`near_ed25519_step_up`,requiredSignatureUses:e.requiredSignatureUses},selectedLane:{authMethod:we(e.signingLaneAuth)},policy:br(e.signingAuthPlan),methods:{...e.emailOtpEd25519StepUp?{emailOtp:{method:`email_otp`,prepareChallenge:async()=>await e.emailOtpEd25519StepUp.prepare({operationFingerprintDigest:e.operationFingerprintDigest}),...e.emailOtpEd25519StepUp.resend?{resendChallenge:async()=>await e.emailOtpEd25519StepUp.resend({operationFingerprintDigest:e.operationFingerprintDigest})}:{},complete:_r}}:{},passkey:{method:`passkey`,prepare:async()=>{if(!e.passkeyEd25519OperationStepUp)throw Error(`[SigningEngine][near] Passkey operation step-up runner is unavailable`);return t=await e.passkeyEd25519OperationStepUp.prepare(),{}},complete:vr}}}),r=e.signingAuthPlan;if(n.method===`warm_session`){if(!xr(r))throw Error(`[SigningEngine][near] warm-session step-up requires a warm-session plan`);return{kind:`warm_session`,confirmationAuthPayload:{signingAuthPlan:r}}}if(n.method===`email_otp`){if(!Tt(r))throw Error(`[SigningEngine][near] Email OTP step-up requires an Email OTP plan`);return{kind:`email_otp`,confirmationAuthPayload:{signingAuthPlan:{kind:`emailOtpReauth`,method:`email_otp`,emailOtpPrompt:n.prompt}},emailOtpPrompt:n.prompt}}if(!wt(r))throw Error(`[SigningEngine][near] passkey step-up requires a passkey plan`);return{kind:`passkey`,confirmationAuthPayload:{signingAuthPlan:r},plannedPasskeyOperationStepUp:yr(t)}}function gr(e){switch(e.kind){case`passkey`:return{kind:`passkeyReauth`,method:`passkey`};case`email_otp`:return{kind:`emailOtpReauth`,method:`email_otp`};default:throw Error(`[SigningEngine][near] unsupported material auth requirement`)}}async function _r(){}async function vr(){}function yr(e){if(!e)throw Error(`[SigningEngine][near] Passkey operation step-up plan is required`);return e}function br(e){if(Ct(e)){if(e.curve!==`ed25519`)throw Error(`[SigningEngine][near] warm-session step-up requires an Ed25519 auth plan`);return{kind:`reuse_warm_session`,authorization:{method:e.method,curve:`ed25519`,thresholdSessionId:e.thresholdSessionId,expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}}}return{kind:`use_selected_lane`}}function xr(e){return Ct(e)&&e.curve===`ed25519`}function Sr(e,t,n){try{e?.(xe({...n,flowId:`signing:near:${String(t)}:${n.phase}`,accountId:String(t)}))}catch{}}function Cr(e,t){let n=Ft(e.signingAuthPlan);if(t.phase===`confirmation.complete`){if(n===`passkey`&&t.status===`succeeded`)return}else if(n!==`passkey`||t.phase!==`auth.passkey.prompt.started`&&t.phase!==`auth.passkey.prompt.succeeded`)return;let r=Pt(t,n);r&&Sr(e.onEvent,e.nearAccountId,{...r,authMethod:n})}function wr(e){return{kind:`warm_session`,signingAuthPlan:e,thresholdSessionId:e.thresholdSessionId,expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}}function Tr(e){if(e.prepared.kind===`warm_session`)return wr(e.prepared.confirmationAuthPayload.signingAuthPlan);if(e.prepared.kind===`email_otp`)return{kind:`email_otp`,signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan,challengeId:Dr(e.confirmation.emailOtpChallengeId,e.prepared.emailOtpPrompt.challengeId),otpCode:Er(e.confirmation.otpCode),...e.prepared.emailOtpPrompt.emailHint?{emailHint:e.prepared.emailOtpPrompt.emailHint}:{}};if(!e.confirmation.credential)throw Error(`[SigningEngine] missing WebAuthn credential for NEAR step-up authorization`);return{kind:`passkey`,signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan,credential:je(e.confirmation.credential),plannedPasskeyOperationStepUp:e.prepared.plannedPasskeyOperationStepUp}}function Er(e){let t=String(e||``).trim();if(!/^\d{6}$/.test(t))throw Error(`[SigningEngine] missing Email OTP code for NEAR step-up authorization`);return t}function Dr(e,t){let n=String(e||t||``).trim();if(!n)throw Error(`[SigningEngine] missing Email OTP challenge id for NEAR step-up authorization`);return n}function Or(e){if(!e||!Array.isArray(e.actions)||e.actions.length===0)throw Error(`[SigningEngine][near] one NEAR transaction with actions is required`);return 1}function kr(e){throw Error(`[SigningEngine][near] exactly one NEAR transaction is supported per signing operation; received ${e.length}`)}const Ar=2e4;async function jr(e){return Rr(await at({ctx:e.workerCtx,kind:`nearSigner`,request:{type:N.ThresholdEd25519ComputeNep413SigningDigest,timeoutMs:Ar,payload:{message:e.message,recipient:e.recipient,nonce:e.nonce,callbackUrl:e.callbackUrl}}}))}async function Mr(e){return Rr(await at({ctx:e.workerCtx,kind:`nearSigner`,request:{type:N.ThresholdEd25519ComputeDelegateSigningDigest,timeoutMs:Ar,payload:{delegate:e.delegate}}}))}async function Nr(e){return zr(await at({ctx:e.workerCtx,kind:`nearSigner`,request:{type:N.ThresholdEd25519BuildDelegateSigningPayload,timeoutMs:Ar,payload:{delegate:e.delegate}}}))}async function Pr(e){return Br(await at({ctx:e.workerCtx,kind:`nearSigner`,request:{type:N.ThresholdEd25519FinalizeDelegateFromSignature,timeoutMs:Ar,payload:{delegate:e.delegate,signingDigestB64u:e.signingDigestB64u,signatureB64u:e.signatureB64u}}}))}async function Fr(e){let t=Vr(await at({ctx:e.workerCtx,kind:`nearSigner`,request:{type:N.ThresholdEd25519BuildNearTxUnsignedBorsh,timeoutMs:Ar,payload:{txSigningRequests:[e.txSigningRequest],transactionContext:e.transactionContext}}})),n=t[0];if(!n||t.length!==1)throw Error(`near signer worker returned invalid single-transaction unsigned payload`);return n}async function Ir(e){return Hr(await at({ctx:e.workerCtx,kind:`nearSigner`,request:{type:N.ThresholdEd25519FinalizeNearTxFromSignature,timeoutMs:Ar,payload:{unsignedTransactionBorshB64u:e.unsignedTransactionBorshB64u,signingDigestB64u:e.signingDigestB64u,signatureB64u:e.signatureB64u,expectedNearAccountId:e.expectedNearAccountId,expectedSignerPublicKey:e.expectedSignerPublicKey}}}))}async function Lr(e){return Ur(await at({ctx:e.workerCtx,kind:`nearSigner`,request:{type:N.ThresholdEd25519DecodeSignedNearTxBorsh,timeoutMs:Ar,payload:{signedTransactionBorshB64u:e.signedTransactionBorshB64u}}}))}function Rr(e){let t=e;if(!t?.signingDigestB64u)throw Error(`near signer worker returned invalid Ed25519 signing digest result`);return t}function zr(e){let t=e;if(!t?.canonicalDelegateBorshB64u||!t.signingDigestB64u)throw Error(`near signer worker returned invalid Ed25519 delegate signing payload`);return t}function Br(e){let t=e;if(!t?.delegateAction||!t.signature||!t.borshBytes)throw Error(`near signer worker returned invalid Ed25519 signed delegate result`);return t}function Vr(e){if(!Array.isArray(e))throw Error(`near signer worker returned invalid Ed25519 unsigned tx result`);return e.map(e=>{let t=e;if(!t?.unsignedTransactionBorshB64u||!t.signingDigestB64u)throw Error(`near signer worker returned invalid Ed25519 unsigned tx item`);return t})}function Hr(e){let t=e;if(!t?.signedTransactionBorshB64u||!t.transactionHash)throw Error(`near signer worker returned invalid Ed25519 finalized tx result`);return t}function Ur(e){let t=e;if(!t?.signedTransaction?.transaction||!t.signedTransaction.signature||!t.signedTransaction.borshBytes||!t.transactionHash)throw Error(`near signer worker returned invalid Ed25519 signed tx decode result`);return t}function Wr(e,t){return e.request_id===t.request_id&&e.account_id===t.account_id&&e.authorization.kind===t.authorization.kind&&(e.authorization.kind===`reusable_wallet_session`?t.authorization.kind===`reusable_wallet_session`&&e.authorization.wallet_session_id===t.authorization.wallet_session_id:t.authorization.kind===`operation_step_up`)&&e.material_activation.kind===t.material_activation.kind&&e.material_activation.activation_id===t.material_activation.activation_id&&e.material_activation.capability===t.material_activation.capability&&e.material_activation.material_owner===t.material_activation.material_owner&&e.material_activation.key_binding===t.material_activation.key_binding&&e.material_activation.lifecycle_binding===t.material_activation.lifecycle_binding&&e.material_activation.signing_worker===t.material_activation.signing_worker&&e.signing_worker_id===t.signing_worker_id}function Gr(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Kr(e){if(!Wr(e.request.scope,e.response.scope))throw Error(`Router A/B normal-signing prepare response scope mismatch`);if(e.request.expires_at_ms!==e.response.expires_at_ms)throw Error(`Router A/B normal-signing prepare response expiry mismatch`);if(e.response.signing_worker.server_id!==e.request.scope.signing_worker_id)throw Error(`Router A/B normal-signing prepare response SigningWorker mismatch`);if(!Gr(e.signingPayloadDigest.bytes,e.response.signing_payload_digest.bytes))throw Error(`Router A/B normal-signing prepare response payload digest mismatch`)}function qr(e){if(!Wr(e.request.scope,e.response.scope))throw Error(`Router A/B normal-signing response scope mismatch`);if(e.response.signing_worker.server_id!==e.request.scope.signing_worker_id)throw Error(`Router A/B normal-signing response SigningWorker mismatch`);if(!Gr(e.signingPayloadDigest.bytes,e.response.signing_payload_digest.bytes))throw Error(`Router A/B normal-signing response payload digest mismatch`);if(e.response.signature.bytes.length!==64)throw Error(`Router A/B normal-signing response signature must be 64 bytes`)}function J(e,t){let n=String(e||``).trim();if(!n)throw Error(`Router A/B Ed25519 normal-signing ready state is missing ${t}`);return n}function Y(e,t,n){if(e!==t)throw Error(`Router A/B Ed25519 normal-signing ready state ${n} mismatch`)}function Jr(e,t){let n=Math.floor(Number(e));if(!Number.isFinite(n)||n<=Date.now())throw Error(`Router A/B Ed25519 normal-signing ready state ${t} is expired`);return n}function Yr(e,t){let n=Math.floor(Number(e));if(!Number.isSafeInteger(n)||n<=0)throw Error(`Router A/B Ed25519 normal-signing ready state ${t} is exhausted`);return n}function Xr(e){let t=e.state,n=t.signingWalletSession,r=J(e.thresholdSessionId,`thresholdSessionId`),i=J(t.thresholdSessionId,`state.thresholdSessionId`),a=J(t.signingLane.thresholdSessionId,`state.signingLane.thresholdSessionId`);Y(i,r,`thresholdSessionId`),Y(a,r,`lane thresholdSessionId`);let o=J(t.walletSessionId,`state.walletSessionId`),s=J(t.quotaId,`state.quotaId`);Y(t.signingLane.walletSessionId,o,`lane walletSessionId`),Y(t.signingLane.quotaId,s,`lane quotaId`);let c=J(e.nearAccountId,`nearAccountId`);J(t.signingLane.identity.signer.account.wallet.walletId,`state.signingLane.identity.signer.account.wallet.walletId`),Y(J(e.thresholdKeyMaterial.nearAccountId,`thresholdKeyMaterial.nearAccountId`),c,`threshold key accountId`);let l=n.routerAbNormalSigning,u=J(n.auth.walletSessionToken,`Wallet Session bearer token`),d=J(t.signingRootId,`state.signingRootId`),f=J(t.signingRootVersion,`state.signingRootVersion`);Y(n.thresholdSessionId,r,`Wallet Session thresholdSessionId`),Y(n.walletSessionId,o,`Wallet Session walletSessionId`),Y(n.quotaId,s,`Wallet Session quotaId`),Y(n.signingRootId,d,`signingRootId`),Y(n.signingRootVersion,f,`signingRootVersion`),Y(t.routerAbNormalSigning.signingWorkerId,l.signingWorkerId,`signingWorkerId`),Jr(n.expiresAtMs,`expiresAtMs`);let p=Yr(n.remainingUses,`remainingUses`);if(t.remainingUses!==p)throw Error(`Router A/B Ed25519 normal-signing ready state remainingUses mismatch`);return{kind:`router_ab_ed25519_normal_signing_ready_state_v1`,relayerUrl:J(t.relayerUrl,`relayerUrl`),signingWorkerId:J(l.signingWorkerId,`signingWorkerId`),signerPublicKey:J(e.thresholdKeyMaterial.publicKey,`signerPublicKey`),credential:{kind:`wallet_session_opaque`,walletSessionToken:u,home:n.auth.credential.home}}}function Zr(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`operation step-up preparation ref must be an object`);let t=e;if(Object.keys(t).length!==3||t.kind!==`near_operation_step_up_prepared_v1`)throw Error(`operation step-up preparation ref is invalid`);let n=String(t.handle||``).trim();if(!n.startsWith(`near-operation-step-up:`)||/\s/.test(n))throw Error(`operation step-up preparation handle is invalid`);return{kind:`near_operation_step_up_prepared_v1`,handle:n,challengeB64u:j(t.challengeB64u)}}const Qr=new Map,$r=new Map;function ei(e,t){let n=String(e||``).trim();if(!n)throw Error(`[SigningEngine][near] ${t} is required`);return n}function ti(e){Qr.set(ei(e.requestId,`requestId`),e.build)}function ni(e){Qr.delete(String(e||``).trim())}const ri={async prepare(e){let t=ei(e.requestId,`requestId`),n=Qr.get(t);if(!n)throw Error(`[SigningEngine][near] operation step-up preparation is unavailable`);Qr.delete(t);let r=e.kind===`near_transaction`?await n({kind:`near_transaction`,transactionContext:e.transactionContext,operationId:ei(e.operationId,`operationId`),operationFingerprint:ei(e.operationFingerprint,`operationFingerprint`),displayDigest:ei(e.displayDigest,`displayDigest`)}):await n({kind:`near_signature_only`,displayDigest:ei(e.displayDigest,`displayDigest`)}),i=await We(r.envelope),a=Zr({kind:`near_operation_step_up_prepared_v1`,handle:`near-operation-step-up:${te(24,`operation step-up handle`)}`,challengeB64u:i});return $r.set(a.handle,{requestId:t,operation:r.operation}),a},cancel(e){let t=String(e.requestId||``).trim();t&&Qr.delete(t),e.handle&&$r.delete(e.handle);for(let[e,n]of $r)n.requestId===t&&$r.delete(e)}};function ii(e){let t=ei(e.requestId,`requestId`),n=ei(Zr(e.ref).handle,`operation step-up handle`),r=$r.get(n);if($r.delete(n),!r||r.requestId!==t)throw Error(`[SigningEngine][near] prepared operation step-up is unavailable`);return r.operation}function ai(e){if(!i(e.expected,e.actual))throw Error(`[SigningEngine][near] operation assertion changed material activation`)}const oi=12e4;async function si(e){return await e.ctx.resolveOperationStepUpCredential({walletId:e.walletId,relayerUrl:e.relayerUrl,proof:e.proof})}function ci(e){if(e.prepared.prepare.request.scope.authorization.kind!==`operation_step_up`)throw Error(`[SigningEngine][near] operation step-up authorization scope is missing`);if(e.issuedAuthorization.kind!==`verified_step_up`)throw Error(`[SigningEngine][near] operation step-up authorization is invalid`)}function li(e){let t=e.thresholdKeyMaterial.participants.find(t=>t.role===e.role)?.id;if(!t)throw Error(`threshold-ed25519 signing requires ${e.role} participant id`);return t}function ui(e){return[...S(e)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}function di(e){return s(e.chains||_t.network.chains)}function fi(e){let t=globalThis.crypto;if(t&&typeof t.randomUUID==`function`)return`router-ab-normal-signing/${e}/${t.randomUUID()}`;if(t&&typeof t.getRandomValues==`function`){let n=new Uint8Array(16);return t.getRandomValues(n),`router-ab-normal-signing/${e}/${b(n)}`}throw Error(`secure randomness is unavailable for Router A/B normal-signing request id`)}function pi(e){if(!e.ok)throw Error(e.error.message);return e.value}function mi(e){let t=Math.floor(Number(e.walletSessionExpiresAtMs)),n=Math.floor(Number(e.requestedTtlMs));if(!Number.isFinite(t)||t<=Date.now())throw Error(`[SigningEngine][near] Router A/B Ed25519 Wallet Session is expired`);if(!Number.isFinite(n)||n<=0)throw Error(`[SigningEngine][near] Router A/B Ed25519 request TTL is invalid`);return Math.min(t,Date.now()+n)}function hi(e){let t=e.walletSessionState.routerAbNormalSigning;if(!t)return null;let n=String(e.walletId||``).trim();if(!n)throw Error(`[SigningEngine][near] Router A/B Ed25519 signing scope is missing wallet id`);let r=Le(e.activeClient.metadata());return{request_id:fi(e.operationId),account_id:n,authorization:{kind:`reusable_wallet_session`,wallet_session_id:e.walletSessionState.walletSessionId},material_activation:{kind:`mpc_material_activation_ref`,activation_id:r.activationId,capability:r.capability,material_owner:r.materialOwner,key_binding:r.keyBinding,lifecycle_binding:r.lifecycleBinding,signing_worker:r.signingWorker},signing_worker_id:t.signingWorkerId}}function gi(e){let t=e.materialFacts.routerAbNormalSigning;if(!t)throw Error(`[SigningEngine][near] Router A/B Ed25519 signing scope is missing`);return{request_id:fi(e.operationId),account_id:String(e.walletId),authorization:{kind:`operation_step_up`},material_activation:{kind:`mpc_material_activation_ref`,activation_id:e.materialActivation.activationId,capability:e.materialActivation.capability,material_owner:e.materialActivation.materialOwner,key_binding:e.materialActivation.keyBinding,lifecycle_binding:e.materialActivation.lifecycleBinding,signing_worker:e.materialActivation.signingWorker},signing_worker_id:t.signingWorkerId}}function _i(e){return e.map(e=>{switch(e.action_type){case`CreateAccount`:return{action_type:G.CreateAccount};case`DeployContract`:return{action_type:G.DeployContract,code:[...e.code]};case`FunctionCall`:return{action_type:G.FunctionCall,method_name:e.method_name,args:e.args,gas:e.gas,deposit:e.deposit};case`Transfer`:return{action_type:G.Transfer,deposit:e.deposit};case`Stake`:return{action_type:G.Stake,stake:e.stake,public_key:e.public_key};case`AddKey`:return{action_type:G.AddKey,public_key:e.public_key,access_key:e.access_key};case`DeleteKey`:return{action_type:G.DeleteKey,public_key:e.public_key};case`DeleteAccount`:return{action_type:G.DeleteAccount,beneficiary_id:e.beneficiary_id};case`SignedDelegate`:{let t=_i(e.delegate_action.actions).map(tt);return{action_type:G.SignedDelegate,delegate_action:{senderId:e.delegate_action.senderId,receiverId:e.delegate_action.receiverId,actions:t,nonce:e.delegate_action.nonce,maxBlockHeight:e.delegate_action.maxBlockHeight,publicKey:{keyType:e.delegate_action.publicKey.keyType,keyData:[...e.delegate_action.publicKey.keyData]}},signature:{keyType:e.signature.keyType,signatureData:[...e.signature.signatureData]}}}case`DeployGlobalContract`:return{action_type:G.DeployGlobalContract,code:[...e.code],deploy_mode:e.deploy_mode};case`UseGlobalContract`:return`account_id`in e?{action_type:G.UseGlobalContract,account_id:e.account_id}:{action_type:G.UseGlobalContract,code_hash:e.code_hash}}})}async function vi(e){return{signedDelegate:await Pr({delegate:e.delegate,signingDigestB64u:e.signingDigestB64u,signatureB64u:e.signatureB64u,workerCtx:e.ctx}),hash:ui(e.signingDigestB64u)}}function X(e,t,n){if(String(e)!==String(t))throw Error(`Router A/B Ed25519 active Client ${n} mismatch`)}function yi(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r+=1)n|=e[r]^t[r];return n===0}function bi(e,t){if(e.length!==32||e.some(e=>!Number.isInteger(e)||e<0||e>255))throw Error(`Router A/B normal-signing ${t} must contain 32 bytes`);return Uint8Array.from(e)}function xi(e){let t=I(e);if(!t.startsWith(`ed25519:`))throw Error(`Router A/B Ed25519 signer public key must use ed25519`);let n=ae(t.slice(8));if(n.length!==32)throw Error(`Router A/B Ed25519 signer public key must decode to 32 bytes`);return n}function Si(e){let t=e.activeClient.metadata(),n=Le(t),r=e.materialFacts.signer,i=li({thresholdKeyMaterial:e.thresholdKeyMaterial,role:`client`}),a=li({thresholdKeyMaterial:e.thresholdKeyMaterial,role:`relayer`});if(e.thresholdKeyMaterial.participants.length!==2)throw Error(`Router A/B Ed25519 active Client requires exactly two participants`);X(t.scope.account_id,e.prepare.request.scope.account_id,`scope account`),X(t.scope.threshold_session_id,e.materialFacts.thresholdSessionId,`threshold session`),X(t.scope.account_id,e.walletId,`scope wallet`),X(n.activationId,e.prepare.request.scope.material_activation.activation_id,`material activation`),X(n.capability,e.prepare.request.scope.material_activation.capability,`material capability`),X(n.materialOwner,e.prepare.request.scope.material_activation.material_owner,`material owner`),X(n.keyBinding,e.prepare.request.scope.material_activation.key_binding,`material key binding`),X(n.lifecycleBinding,e.prepare.request.scope.material_activation.lifecycle_binding,`material lifecycle`),X(n.signingWorker,e.prepare.request.scope.material_activation.signing_worker,`material SigningWorker`);let o=e.prepare.request.scope.authorization;if(o.kind!==e.authorization.kind)throw Error(`Router A/B Ed25519 authorization kind mismatch`);switch(e.authorization.kind){case`reusable_wallet_session`:if(o.kind!==`reusable_wallet_session`)throw Error(`Router A/B Ed25519 reusable authorization is missing`);X(o.wallet_session_id,e.authorization.walletSessionId,`authorization session`);break;case`operation_step_up`:if(o.kind!==`operation_step_up`)throw Error(`Router A/B Ed25519 operation step-up authorization is missing`);break;default:e.authorization}X(t.scope.signing_worker_id,e.prepare.request.scope.signing_worker_id,`scope SigningWorker`),X(t.scope.signing_worker_id,e.signingWorkerId,`prepare SigningWorker`),X(t.applicationBinding.wallet_id,e.walletId,`application wallet`),X(t.applicationBinding.wallet_id,r.account.wallet.walletId,`lane wallet`),X(t.applicationBinding.near_ed25519_signing_key_id,r.nearEd25519SigningKeyId,`signing key`),X(t.applicationBinding.signing_root_id,e.materialFacts.signingRootId,`signing root`),X(t.applicationBinding.key_creation_signer_slot,r.signerSlot,`signer slot`),X(t.applicationBinding.key_creation_signer_slot,e.thresholdKeyMaterial.signerSlot,`key-material signer slot`),X(t.participantIds[0],i,`Client participant`),X(t.participantIds[1],a,`SigningWorker participant`);let s=xi(e.thresholdKeyMaterial.publicKey);if(!yi(t.registeredPublicKey,s))throw Error(`Router A/B Ed25519 active Client registered public key mismatch`);if(!yi(t.signingWorkerVerifyingShare,e.signingWorkerVerifyingShare))throw Error(`Router A/B Ed25519 active Client SigningWorker verifying share mismatch`)}async function Ci(e){let t=e.prepare.request.intent.operation_id,n=performance.now(),r=`failed`;try{let n=await wi(e,t);return r=`succeeded`,n}finally{W(t,`signature_total`,n,r)}}async function wi(e,t){let n=S(e.signingDigestB64u);if(n.length!==32)throw Error(`Router A/B normal-signing ${e.signingPayloadLabel} must be 32 bytes`);let r=bi(e.prepare.admissionMaterial.admittedSigningDigest.bytes,`admitted digest`);if(!yi(n,r))throw Error(`Router A/B normal-signing admitted digest mismatch`);e.authorization===`reusable_wallet_session`&&Xr({state:e.walletSessionState,thresholdSessionId:e.thresholdSessionId,nearAccountId:e.nearAccountId,thresholdKeyMaterial:e.thresholdKeyMaterial});let i=e.authorization===`reusable_wallet_session`?{thresholdSessionId:e.walletSessionState.thresholdSessionId,signer:e.walletSessionState.signingLane.identity.signer,signingRootId:e.walletSessionState.signingRootId,signingRootVersion:e.walletSessionState.signingRootVersion,routerAbNormalSigning:e.walletSessionState.routerAbNormalSigning,runtimePolicyScope:e.walletSessionState.runtimePolicyScope,relayerUrl:e.walletSessionState.relayerUrl}:e.materialFacts,a=performance.now(),o=e.startedResponse?await e.startedResponse:await ht({relayServerUrl:i.relayerUrl,credential:e.credential,request:e.prepare.request});if(W(t,`prepare`,a),e.authorization===`reusable_wallet_session`){if(o.kind!==`reusable_wallet_session`)throw Error(`Ed25519 prepare returned the wrong authorization kind`);let t=await e.sessionCoordinator.resolveActiveAuthorizedRouterAbEd25519WalletSessionState({state:e.walletSessionState,nowMs:Date.now()}),n=o.sessionStatus;if(!t||n.walletSessionId!==t.walletSessionOperationCredential.walletSessionId||n.quotaId!==t.walletSessionAuthorization.quotaId||n.quotaLifecycle!==`active`||n.remainingUses<=0||n.expiresAtMs<=Date.now()||!y(n.authorization,t.walletSessionAuthorization))throw Error(`Wallet Session authority changed before Ed25519 client signing`);let r={relayerUrl:i.relayerUrl,operationCredential:t.walletSessionOperationCredential};await Ue.fromPrepare(r,n).read(r,{walletSessionId:n.walletSessionId,quotaId:n.quotaId})}else if(o.kind!==`operation_step_up`)throw Error(`Ed25519 step-up prepare returned a reusable Wallet Session`);let s=o.signing;Kr({request:e.prepare.request,signingPayloadDigest:e.prepare.admissionMaterial.signingPayloadDigest,response:s});let c=S(s.server_verifying_share_b64u);if(c.length!==32)throw Error(`Router A/B normal-signing SigningWorker verifying share must be 32 bytes`);Si({activeClient:e.activeClient,authorization:e.authorization===`reusable_wallet_session`?{kind:`reusable_wallet_session`,walletSessionId:e.walletSessionState.signingWalletSession.walletSessionId}:{kind:`operation_step_up`},materialFacts:i,thresholdKeyMaterial:e.thresholdKeyMaterial,walletId:e.walletId,prepare:e.prepare,signingWorkerId:s.signing_worker.server_id,signingWorkerVerifyingShare:c});let l=performance.now(),u=await e.activeClient.createSigningShare({admittedDigest:r,signingWorkerCommitments:s.server_commitments,signingWorkerVerifyingShare:c});if(W(t,`client_share`,l),u.clientVerifyingShare.length!==32)throw Error(`Router A/B normal-signing Client verifying share must be 32 bytes`);let d=performance.now(),f=await yt({relayServerUrl:i.relayerUrl,credential:e.credential,request:ft({scope:e.prepare.request.scope,expiresAtMs:e.prepare.request.expires_at_ms,prepareResponse:s,admissionMaterial:e.prepare.admissionMaterial,clientCommitments:u.clientCommitments,clientVerifyingShareB64u:b(u.clientVerifyingShare),clientSignatureShareB64u:u.clientSignatureShareB64u})});return W(t,`finalize`,d),qr({request:e.prepare.request,signingPayloadDigest:e.prepare.admissionMaterial.signingPayloadDigest,response:f}),{signatureB64u:bt(f.signature,`Router A/B normal-signing signature`),signerPublicKey:e.thresholdKeyMaterial.publicKey}}async function Ti(e){let t=di(e.ctx);return e.intent.kind===`nep413_message_v1`?await mt({scope:e.scope,expiresAtMs:e.expiresAtMs,operationId:e.operationId,operationFingerprint:e.operationFingerprint,displayDigestB64u:e.displayDigest,nearAccountId:e.nearAccountId,nearNetworkId:t,message:e.intent.message,recipient:e.intent.recipient,nonce:e.intent.nonce,callbackUrl:e.intent.callbackUrl,expectedSigningDigestB64u:e.signingDigestB64u}):await gt({scope:e.scope,expiresAtMs:e.expiresAtMs,operationId:e.operationId,operationFingerprint:e.operationFingerprint,displayDigestB64u:e.displayDigest,nearAccountId:e.nearAccountId,nearNetworkId:t,delegate:{senderId:e.intent.delegate.senderId,receiverId:e.intent.delegate.receiverId,publicKey:e.intent.delegate.publicKey,nonce:e.intent.delegate.nonce,maxBlockHeight:e.intent.delegate.maxBlockHeight,actionFingerprint:await pt(e.intent.delegate.actions),canonicalDelegateBorshB64u:(await Nr({delegate:{senderId:e.intent.delegate.senderId,receiverId:e.intent.delegate.receiverId,actions:_i(e.intent.delegate.actions),nonce:e.intent.delegate.nonce,maxBlockHeight:e.intent.delegate.maxBlockHeight,publicKey:e.intent.delegate.publicKey},workerCtx:e.ctx})).canonicalDelegateBorshB64u},expectedSigningDigestB64u:e.signingDigestB64u})}async function Ei(e){let t=gi({materialActivation:e.materialActivation,materialFacts:e.materialFacts,walletId:e.walletId,operationId:e.operationId}),n=await Ti({ctx:e.ctx,thresholdSessionId:e.thresholdSessionId,scope:t,expiresAtMs:Date.now()+oi,nearAccountId:e.nearAccountId,operationId:e.operationId,operationFingerprint:e.operationFingerprint,displayDigest:e.displayDigest,signingDigestB64u:e.signingDigestB64u,intent:e.intent}),r=Ke({tenantId:pi(k(e.materialFacts.runtimePolicyScope.orgId)),principalId:pi(D(String(e.walletId))),capabilityId:pi(A(e.materialActivation.capability)),operationId:pi(T(String(e.operationId))),operation:{capabilityKind:`near_ed25519_mpc_signing`,operationKind:e.intent.kind===`nep413_message_v1`?`near.sign_nep413_message`:`near.sign_delegate_action`},digests:{laneDigest:Ge(e.operationFingerprint),intentDigest:j(b(Uint8Array.from(n.admissionMaterial.intentDigest.bytes))),displayDigest:j(e.displayDigest)}});return{operation:{kind:`near_signature_only`,prepare:n,signingDigestB64u:e.signingDigestB64u,materialActivation:e.materialActivation},envelope:r}}function Di(e){if(e.auth.kind!==`email_otp`)throw Error(`[SigningEngine][near] Email OTP step-up requires an Email OTP auth binding`);let t=e.preparation.hydration.authority;if(!t||String(t.walletId)!==String(e.walletId))throw Error(`[SigningEngine][near] Email OTP material authority changed`);return{kind:`email_otp`,authorityRef:t,providerSubjectId:e.auth.providerSubjectId,challengeId:e.challengeId,otpCode:e.otpCode}}function Oi(e){switch(e.authorization.kind){case`passkey`:return{kind:`passkey`,authority:e.authorization.plannedPasskeyOperationStepUp.authority,credential:e.authorization.credential};case`email_otp`:return Di({preparation:e.preparation,auth:ki(e.auth),walletId:e.walletId,challengeId:e.authorization.challengeId,otpCode:e.authorization.otpCode});default:throw e.authorization,Error(`[SigningEngine][near] unsupported operation step-up authorization`)}}function ki(e){if(e.kind!==`email_otp`)throw Error(`[SigningEngine][near] Email OTP step-up requires an Email OTP auth binding`);return e}function Ai(e){if(!e)throw Error(`[SigningEngine][near] operation step-up proof is missing`);return e}function ji(e){return e.authorization.kind===`operation_step_up`}async function Mi(e){if(e.issuedAuthorization)return e.issuedAuthorization;switch(e.proof.kind){case`passkey`:return await yn({relayerUrl:e.relayerUrl,normalSigningRequest:e.normalSigningRequest,displayDigest:e.displayDigest,proof:e.proof,credential:e.credential,materialRecovery:{kind:`not_requested`}});case`email_otp`:return await yn({relayerUrl:e.relayerUrl,normalSigningRequest:e.normalSigningRequest,displayDigest:e.displayDigest,proof:e.proof,credential:e.credential,materialRecovery:{kind:`not_requested`}});default:throw e.proof,Error(`[SigningEngine][near] unsupported operation step-up proof`)}}async function Ni(e){if(ji(e)){let t=Le(e.activeClient.metadata());if(ai({expected:e.authorization.prepared.materialActivation,actual:t}),e.authorization.prepared.signingDigestB64u!==e.signingDigestB64u)throw Error(`[SigningEngine][near] signature-only operation digest changed`);let n=e.authorization.prepared.prepare,r=await si({ctx:e.ctx,walletId:e.walletId,relayerUrl:e.materialFacts.relayerUrl,proof:e.authorization.proof}),i=await Mi({issuedAuthorization:e.authorization.issuedAuthorization,relayerUrl:e.materialFacts.relayerUrl,normalSigningRequest:n.request,displayDigest:e.displayDigest,proof:e.authorization.proof,credential:r});if(n.request.scope.authorization.kind!==`operation_step_up`||i.kind!==`verified_step_up`)throw Error(`[SigningEngine][near] issued operation step-up evidence changed identity`);return{kind:`router_ab_ed25519_signature_only_normal_signing_result_v1`,authorization:`operation_step_up`,issuedAuthorization:i,...await Ci({thresholdSessionId:e.thresholdSessionId,materialFacts:e.materialFacts,thresholdKeyMaterial:e.thresholdKeyMaterial,walletId:e.walletId,nearAccountId:e.nearAccountId,activeClient:e.activeClient,signingDigestB64u:e.signingDigestB64u,signingPayloadLabel:`signature-only payload digest`,prepare:n,credential:r,authorization:`operation_step_up`})}}let t=e.startedPrepare&&e.startedPrepare.displayDigest===e.displayDigest&&e.startedPrepare.signingDigestB64u===e.signingDigestB64u?e.startedPrepare:null;e.startedPrepare&&!t&&Ii(e.startedPrepare);let n=t?.prepare??await Pi(e);return n?{kind:`router_ab_ed25519_signature_only_normal_signing_result_v1`,authorization:`reusable_wallet_session`,...await Ci({thresholdSessionId:e.thresholdSessionId,walletSessionState:e.walletSessionState,sessionCoordinator:e.sessionCoordinator,thresholdKeyMaterial:e.thresholdKeyMaterial,walletId:e.walletId,nearAccountId:e.nearAccountId,activeClient:e.activeClient,signingDigestB64u:e.signingDigestB64u,signingPayloadLabel:`signature-only payload digest`,prepare:n,startedResponse:t?.response,credential:Xr({state:e.walletSessionState,thresholdSessionId:e.thresholdSessionId,nearAccountId:e.nearAccountId,thresholdKeyMaterial:e.thresholdKeyMaterial}).credential,authorization:e.authorization.kind})}:null}async function Pi(e){let t=hi({activeClient:e.activeClient,walletSessionState:e.walletSessionState,walletId:e.walletId,operationId:e.operationId});return t?await Ti({ctx:e.ctx,thresholdSessionId:e.thresholdSessionId,scope:t,expiresAtMs:mi({walletSessionExpiresAtMs:e.walletSessionState.signingWalletSession.expiresAtMs,requestedTtlMs:oi}),nearAccountId:e.nearAccountId,operationId:e.operationId,operationFingerprint:e.operationFingerprint,displayDigest:e.displayDigest,signingDigestB64u:e.signingDigestB64u,intent:e.intent}):null}async function Fi(e){let t=await Pi(e);if(!t)return null;let n=Xr({state:e.walletSessionState,thresholdSessionId:e.thresholdSessionId,nearAccountId:e.nearAccountId,thresholdKeyMaterial:e.thresholdKeyMaterial}),r=performance.now(),i=ht({relayServerUrl:e.walletSessionState.relayerUrl,credential:n.credential,request:t.request});return i.catch(()=>{}),W(String(e.operationId),`prepare_sent`,r),{prepare:t,displayDigest:e.displayDigest,signingDigestB64u:e.signingDigestB64u,response:i}}function Ii(e){e.response.catch(()=>{})}async function Li(e){let t=await Fr({txSigningRequest:e.txSigningRequest,transactionContext:e.transactionContext,workerCtx:e.ctx}),n=di(e.ctx),r=nr(e.txSigningRequest,`txSigningRequest`),i=await vt({scope:gi({materialActivation:e.materialActivation,materialFacts:e.materialFacts,walletId:e.walletId,operationId:e.operationId}),expiresAtMs:Date.now()+oi,operationId:e.operationId,operationFingerprint:e.operationFingerprint,displayDigestB64u:e.displayDigest,nearAccountId:e.nearAccountId,nearNetworkId:n,transactions:[{receiverId:r.receiverId,actionFingerprint:await pt(r.actions)}],unsignedTransactionBorshB64u:t.unsignedTransactionBorshB64u,expectedSigningDigestB64u:t.signingDigestB64u}),a=Ke({tenantId:pi(k(e.materialFacts.runtimePolicyScope.orgId)),principalId:pi(D(String(e.walletId))),capabilityId:pi(A(e.materialActivation.capability)),operationId:pi(T(String(e.operationId))),operation:{capabilityKind:`near_ed25519_mpc_signing`,operationKind:`near.sign_transaction`},digests:{laneDigest:Ge(e.operationFingerprint),intentDigest:j(b(Uint8Array.from(i.admissionMaterial.intentDigest.bytes))),displayDigest:j(e.displayDigest)}});return{operation:{kind:`near_transaction`,prepare:i,unsignedTransactionBorshB64u:t.unsignedTransactionBorshB64u,signingDigestB64u:t.signingDigestB64u,materialActivation:e.materialActivation},envelope:a}}function Ri(e){return e.authorization.kind===`operation_step_up`}function zi(e){return Ri(e)?e.materialFacts:{thresholdSessionId:e.walletSessionState.thresholdSessionId,signer:e.walletSessionState.signingLane.identity.signer,signingRootId:e.walletSessionState.signingRootId,signingRootVersion:e.walletSessionState.signingRootVersion,routerAbNormalSigning:e.walletSessionState.routerAbNormalSigning,runtimePolicyScope:e.walletSessionState.runtimePolicyScope,relayerUrl:e.walletSessionState.relayerUrl}}async function Bi(e,t){let n=di(e.ctx),r=nr(e.txSigningRequest,`txSigningRequest`);return{nearNetworkId:n,parsedTransaction:r,operationFingerprint:U.signingOperationFingerprint(await Yn({nearAccountId:e.nearAccountId,nearNetworkId:n,relayerKeyId:e.thresholdKeyMaterial.relayerKeyId,signerPublicKey:e.thresholdKeyMaterial.publicKey,transactions:[r],unsignedTransactionBorshB64u:t.unsignedTransactionBorshB64u,signingDigestB64u:t.signingDigestB64u}))}}async function Vi(e,t,n){let r=hi({activeClient:e.activeClient,walletSessionState:e.walletSessionState,walletId:e.walletId,operationId:e.operationId});if(!r)throw Error(`[SigningEngine][near] Router A/B Ed25519 signing scope is missing`);return await vt({scope:r,expiresAtMs:mi({walletSessionExpiresAtMs:e.walletSessionState.signingWalletSession.expiresAtMs,requestedTtlMs:oi}),operationId:e.operationId,operationFingerprint:n.operationFingerprint,displayDigestB64u:e.displayDigest,nearAccountId:e.nearAccountId,nearNetworkId:n.nearNetworkId,transactions:[{receiverId:n.parsedTransaction.receiverId,actionFingerprint:await pt(n.parsedTransaction.actions)}],unsignedTransactionBorshB64u:t.unsignedTransactionBorshB64u,expectedSigningDigestB64u:t.signingDigestB64u})}async function Hi(e){let t=await Fr({txSigningRequest:e.txSigningRequest,transactionContext:e.transactionContext,workerCtx:e.ctx}),n=await Vi(e,t,await Bi(e,t)),r=Xr({state:e.walletSessionState,thresholdSessionId:e.thresholdSessionId,nearAccountId:e.nearAccountId,thresholdKeyMaterial:e.thresholdKeyMaterial}),i=performance.now(),a=ht({relayServerUrl:e.walletSessionState.relayerUrl,credential:r.credential,request:n.request});return a.catch(()=>{}),W(String(e.operationId),`prepare_sent`,i),{prepare:n,displayDigest:e.displayDigest,signingDigestB64u:t.signingDigestB64u,response:a}}async function Ui(e){let t=zi(e);if(!t.routerAbNormalSigning)throw Error(`[SigningEngine][near] Router A/B Ed25519 normal-signing state is missing`);if(!e.transactionContext)throw Error(`[SigningEngine][near] Router A/B Ed25519 transaction signing is missing transaction context from confirmation`);let n=Ri(e),r=n?{unsignedTransactionBorshB64u:e.authorization.prepared.unsignedTransactionBorshB64u,signingDigestB64u:e.authorization.prepared.signingDigestB64u}:await Fr({txSigningRequest:e.txSigningRequest,transactionContext:e.transactionContext,workerCtx:e.ctx});if(S(r.signingDigestB64u).length!==32)throw Error(`Router A/B normal-signing NEAR payload digest must be 32 bytes`);let i=await Bi(e,r),a=null,o,s,c;if(n){o=e.authorization.prepared.prepare,s=await si({ctx:e.ctx,walletId:e.walletId,relayerUrl:t.relayerUrl,proof:e.authorization.proof});let n=await Mi({issuedAuthorization:e.authorization.issuedAuthorization,relayerUrl:t.relayerUrl,normalSigningRequest:o.request,displayDigest:e.authorization.displayDigest,proof:e.authorization.proof,credential:s});if(o.request.scope.authorization.kind!==`operation_step_up`||n.kind!==`verified_step_up`)throw Error(`[SigningEngine][near] issued operation step-up evidence changed identity`);c=n}else a=e.startedPrepare&&e.startedPrepare.displayDigest===e.displayDigest&&e.startedPrepare.signingDigestB64u===r.signingDigestB64u?e.startedPrepare:null,e.startedPrepare&&!a&&Ii(e.startedPrepare),o=a?a.prepare:await Vi(e,r,i),s=Xr({state:e.walletSessionState,thresholdSessionId:e.thresholdSessionId,nearAccountId:e.nearAccountId,thresholdKeyMaterial:e.thresholdKeyMaterial}).credential;e.ctx.beforeSigning?.();let l=Ri(e)?await Ci({thresholdSessionId:e.thresholdSessionId,materialFacts:t,thresholdKeyMaterial:e.thresholdKeyMaterial,walletId:e.walletId,nearAccountId:e.nearAccountId,activeClient:e.activeClient,signingDigestB64u:r.signingDigestB64u,signingPayloadLabel:`NEAR payload digest`,prepare:o,credential:s,authorization:`operation_step_up`}):await Ci({thresholdSessionId:e.thresholdSessionId,walletSessionState:e.walletSessionState,sessionCoordinator:e.sessionCoordinator,thresholdKeyMaterial:e.thresholdKeyMaterial,walletId:e.walletId,nearAccountId:e.nearAccountId,activeClient:e.activeClient,signingDigestB64u:r.signingDigestB64u,signingPayloadLabel:`NEAR payload digest`,prepare:o,credential:s,authorization:`reusable_wallet_session`,startedResponse:a?.response}),u=await Ir({unsignedTransactionBorshB64u:r.unsignedTransactionBorshB64u,signingDigestB64u:r.signingDigestB64u,signatureB64u:l.signatureB64u,expectedNearAccountId:e.nearAccountId,expectedSignerPublicKey:e.thresholdKeyMaterial.publicKey,workerCtx:e.ctx}),d=await Lr({signedTransactionBorshB64u:u.signedTransactionBorshB64u,workerCtx:e.ctx}),f=u.transactionHash||d.transactionHash,p={type:P.SignTransactionsWithActionsSuccess,payload:{free:()=>void 0,success:!0,transactionHashes:[f],signedTransactions:[d.signedTransaction],logs:[`NEAR transaction signed through Router A/B normal signing`],error:void 0}};if(n){if(!c)throw Error(`[SigningEngine][near] operation step-up authorization was not issued`);return{kind:`router_ab_ed25519_near_transaction_normal_signing_result_v1`,authorization:`operation_step_up`,issuedAuthorization:c,okResponse:p}}return{kind:`router_ab_ed25519_near_transaction_normal_signing_result_v1`,authorization:`reusable_wallet_session`,okResponse:p}}const Wi=1e3,Gi=[120,180,250,350,500,700,1e3,1e3,1500,1500,2e3],Ki=Symbol(`NearWalletSessionFundingAuthority`);function qi(e=Wi){return new Promise(t=>{setTimeout(t,e)})}function Ji(e){let t=String(e.walletSessionToken||``).trim();if(!t)throw Error(`[SigningEngine][near] authenticated Wallet Session token is required for funding`);return t}function Yi(e){return{kind:`near_ed25519_funding_session`,signer:e.signingLane.identity.signer,thresholdSessionId:e.thresholdSessionId,walletSessionToken:e.walletSessionAuth.walletSessionToken}}function Xi(e){switch(e.kind){case`warm_session`:return`warm_session`;case`passkey`:return`passkey_reauth`;case`email_otp`:return`email_otp_reauth`;default:return Qi(e)}}function Zi(e){switch(e){case`passkey`:return`passkey_reauth`;case`email_otp`:return`email_otp_reauth`;default:throw Error(`[SigningEngine][near] unsupported operation step-up funding method`)}}function Qi(e){throw Error(`Unsupported NEAR funding authorization: ${String(e)}`)}function $i(e){let t=String(e.fundingSession.signer.account.wallet.walletId),n=String(e.fundingSession.signer.account.nearAccountId),r=e.request.operation;if(String(e.request.subject.walletId)!==t||String(e.request.subject.nearAccountId)!==n||e.request.subject.nearPublicKeyStr!==e.nearPublicKeyStr)throw Error(`[SigningEngine][near] funding request subject does not match authenticated lane`);if(String(r.operationId)!==String(e.signingOperation.operationId)||String(r.operationFingerprint)!==String(e.signingOperation.operationFingerprint)||r.intent!==e.signingOperation.intent||r.accountId!==n)throw Error(`[SigningEngine][near] funding request operation does not match signing operation`);if(e.request.signatureUses!==e.signatureUses)throw Error(`[SigningEngine][near] funding request signature use count mismatch`);if(String(e.fundingSession.thresholdSessionId).trim().length===0)throw Error(`[SigningEngine][near] funding authority threshold session mismatch`)}function ea(e){return{kind:`near_wallet_session_funding_authority`,provenance:e.provenance,request:e.request,thresholdSessionId:e.fundingSession.thresholdSessionId,walletSessionToken:Ji(e.fundingSession),[Ki]:!0}}async function ta(e){let t=e.authority.request,n=it({chains:e.ctx.chains,walletId:String(t.subject.walletId),nearAccountId:String(t.subject.nearAccountId),nearPublicKeyStr:t.subject.nearPublicKeyStr}),r;for(let i=1;i<=12;i+=1)try{let r=await e.ctx.nonceCoordinator.reserveNearContext({lane:n,operation:t.operation,count:t.signatureUses,nearClient:e.ctx.nearClient});return{transactionContext:r.context,nonceLeases:r.leases.map(ke),reservedLeases:r.leases}}catch(e){r=e,i<12&&await qi(Gi[i-1]??Wi)}throw r instanceof Error?r:Error(`Funded NEAR account access key did not become available`)}async function na(e){let t=e.authority.request,n=await Re({relayerUrl:e.ctx.relayerUrl,walletId:String(t.subject.walletId),nearAccountId:String(t.subject.nearAccountId),nearPublicKeyStr:t.subject.nearPublicKeyStr,walletSessionToken:e.authority.walletSessionToken});if(!n.ok)throw Error(n.message||n.code||`Failed to fund implicit NEAR account`);return await ta(e)}async function ra(e){switch(e.confirmation.readiness.kind){case`context_ready`:return e.confirmation.readiness;case`funding_required`:{$i({request:e.confirmation.readiness.request,fundingSession:Yi(e.walletSessionState),nearPublicKeyStr:e.nearPublicKeyStr,signingOperation:e.signingOperation,signatureUses:e.signatureUses});let t=ea({request:e.confirmation.readiness.request,fundingSession:Yi(e.walletSessionState),provenance:Xi(e.authorization)}),n=await na({ctx:e.ctx,authority:t});return{kind:`context_ready`,transactionContext:n.transactionContext,nonceLeases:n.nonceLeases}}default:return ia(e.confirmation.readiness)}}function ia(e){throw Error(`Unsupported confirmed NEAR transaction readiness: ${String(e)}`)}async function aa(e){$i({request:e.request,fundingSession:e.fundingSession,nearPublicKeyStr:e.nearPublicKeyStr,signingOperation:e.signingOperation,signatureUses:e.signatureUses});let t=ea({request:e.request,fundingSession:e.fundingSession,provenance:Zi(e.method)}),n=await na({ctx:e.ctx,authority:t});return{readiness:{kind:`context_ready`,transactionContext:n.transactionContext,nonceLeases:n.nonceLeases},reservedNonceLeases:n.reservedLeases}}const oa=new Map;function sa(e){let t=String(e||``).trim();if(!t)throw Error(`[SigningEngine][near] requestId is required`);return t}function ca(e){oa.set(sa(e.requestId),e.fund)}function la(e){oa.delete(String(e||``).trim())}const ua={async fund(e){let t=sa(e.requestId),n=oa.get(t);if(!n)throw Error(`[SigningEngine][near] implicit-account funding is unavailable`);return oa.delete(t),await n(e.request)}};function da(e){switch(e.kind){case`passkey_live`:case`email_otp_live`:return e.material.facts;case`passkey_sealed`:case`email_otp_sealed`:return e.facts;default:throw Error(`[SigningEngine][near] unsupported operation material`)}}async function fa(e,t){switch(e.hydration.kind){case`use_live_runtime`:case`rehydrate_material_activation`:return await t.resolve(e);case`reauthorize_public_anchor`:throw Error(`[SigningEngine][near] material requires public-anchor reauthorization`);case`blocked`:throw Error(`[SigningEngine][near] material hydration is blocked: ${e.hydration.reason}`);default:throw e.hydration,Error(`[SigningEngine][near] unsupported Ed25519 Yao hydration plan`)}}async function pa(e){if(e.method===`passkey`&&e.preparation.hydration.kind===`rehydrate_material_activation`){let t=await e.executor.preparePasskeyOperationStepUp(e.preparation);return{kind:`passkey_sealed`,materialActivation:t.materialActivation,facts:t.facts,rehydrate:t.rehydrate}}if(e.method===`email_otp`){let t=await e.executor.prepareEmailOtpOperationStepUp(e.preparation);switch(t.kind){case`live`:return{kind:`email_otp_live`,materialActivation:t.materialActivation,material:t.material};case`sealed`:return{kind:`email_otp_sealed`,materialActivation:t.materialActivation,facts:t.facts,authorizeAndRehydrate:t.authorizeAndRehydrate};default:throw Error(`[SigningEngine][near] unsupported Email OTP operation material`)}}let t=await fa(e.preparation,e.executor);return{kind:`passkey_live`,materialActivation:Le(t.activeClient.metadata()),material:t}}async function ma(e){ai({expected:e.expectedActivation,actual:e.material.materialActivation});let t,n=null;if(e.kind===`email_otp_live`||e.kind===`email_otp_sealed`)if(e.kind===`email_otp_live`)t=e.material.material;else{let r=await e.material.authorizeAndRehydrate({normalSigningRequest:e.normalSigningRequest,displayDigest:e.displayDigest,proof:e.proof});t=r.material,n=r.issuedAuthorization}else t=e.material.kind===`passkey_live`?e.material.material:await e.material.rehydrate(e.credential);try{return ai({expected:e.expectedActivation,actual:Le(t.activeClient.metadata())}),{material:t,issuedAuthorization:n}}catch(n){throw(e.material.kind===`passkey_sealed`||e.material.kind===`email_otp_sealed`)&&t.activeClient.dispose(),n}}async function ha(e){let t=await fa(e.preparation,e.executor);return{thresholdSessionId:t.facts.thresholdSessionId,material:t,walletSessionState:await e.executor.resolveWalletSessionState()}}function ga(e){if(!e)throw Error(`[SigningEngine][near] confirmed operation step-up is missing preparation`);return e}function _a(e){if(!e)throw Error(`[SigningEngine][near] prepared operation step-up is missing`);if(e.kind!==`near_transaction`)throw Error(`[SigningEngine][near] prepared operation step-up is not a transaction`);return e}function va(e){if(!e)throw Error(`[SigningEngine][near] transaction operation material is unavailable`);return e}function ya(e){e.owned&&e.resolved?.material.activeClient.dispose()}function ba(e,t){throw ya(e),t}async function xa(e){return{material:await fa(e.preparation,e.executor),walletSessionState:await e.executor.resolveWalletSessionState()}}function Sa(e){if(!e)throw Error(`[SigningEngine][near] warm signing material was not prepared`);return e}async function Ca(e){let t=await e.warmMaterial,n=await e.sessionCoordinator.resolveActiveAuthorizedRouterAbEd25519WalletSessionState({state:t.walletSessionState,nowMs:Date.now()});if(!n)return null;let r=await et([{receiverId:e.confirmationTransaction.receiverId,actions:e.confirmationTransaction.actions.map(Qe)}]);return await Hi({ctx:e.ctx,thresholdSessionId:t.material.facts.thresholdSessionId,thresholdKeyMaterial:e.thresholdKeyMaterial,walletId:e.walletId,nearAccountId:e.nearAccountId,activeClient:t.material.activeClient,walletSessionState:n,operationId:e.operationId,displayDigest:r,txSigningRequest:e.txSigningRequest,transactionContext:e.readiness.transactionContext})}function wa(){return null}async function Ta(e){if(e.authorization.kind===`passkey`){if(e.material.kind!==`passkey_live`&&e.material.kind!==`passkey_sealed`)throw Error(`[SigningEngine][near] passkey transaction material changed factor`);return await ma({kind:`passkey`,material:e.material,expectedActivation:e.prepared.materialActivation,credential:e.authorization.credential})}if(e.material.kind!==`email_otp_live`&&e.material.kind!==`email_otp_sealed`)throw Error(`[SigningEngine][near] Email OTP transaction material changed factor`);if(e.proof.kind!==`email_otp`)throw Error(`[SigningEngine][near] Email OTP transaction proof is missing`);return e.material.kind===`email_otp_live`?await ma({kind:`email_otp_live`,material:e.material,expectedActivation:e.prepared.materialActivation}):await ma({kind:`email_otp_sealed`,material:e.material,expectedActivation:e.prepared.materialActivation,normalSigningRequest:e.prepared.prepare.request,displayDigest:e.displayDigest,proof:e.proof})}function Z(e,t,n){try{e?.(xe({...n,flowId:`signing:near:${String(t)}:${n.phase}`,accountId:String(t)}))}catch{}}async function Ea(e){let t=performance.now(),n=`failed`;try{if(!e.state)throw Error(`[SigningEngine][near] reusable Wallet Session state is unavailable`);let t=await e.coordinator.resolveActiveAuthorizedRouterAbEd25519WalletSessionState({state:e.state,nowMs:Date.now()});if(!t)throw Error(`[SigningEngine][near] reusable Wallet Session authorization is unavailable`);return n=`succeeded`,t}finally{W(e.operationId,`wallet_session_authorization`,t,n)}}async function Da(e){let t=await pa({method:e.method,preparation:e.preparation,executor:e.executor}),n=da(t);if(String(n.thresholdSessionId)!==e.expectedThresholdSessionId)throw Error(`[SigningEngine][near] prepared operation material changed threshold session`);return ti({requestId:e.requestId,build:async r=>{if(r.kind!==`near_transaction`)throw Error(`[SigningEngine][near] transaction step-up preparation kind changed`);if(r.operationId!==String(e.operation.operationId))throw Error(`[SigningEngine][near] operation step-up operation identity changed`);return await Li({...e.operation,thresholdSessionId:n.thresholdSessionId,materialFacts:n,materialActivation:t.materialActivation,transactionContext:r.transactionContext,displayDigest:r.displayDigest})}}),ca({requestId:e.requestId,fund:async t=>await aa({...e.funding,request:t,fundingSession:await e.executor.resolveFundingSession(),method:e.method})}),t}function Oa(e){ni(e),la(e)}function ka(e){if(!e.readiness){Oa(e.requestId);return}e.readiness.then(Oa.bind(void 0,e.requestId),Oa.bind(void 0,e.requestId))}function Aa(e){return e.selection.kind===`authorization_required`}async function ja(e){return Aa(e)?await Ma(e):await Na(e)}async function Ma(e){let{ctx:t,commandSubject:n,nearAccount:r,transaction:i,rpcCall:a,onEvent:o,confirmationConfigOverride:c,title:l,body:u,signerSlot:d,signingOperationState:p,signingSessionCoordinator:m,selection:h,yaoSigningPreparation:g,yaoMaterialExecutor:_,passkeyEd25519OperationStepUp:v,emailOtpEd25519StepUp:y}=e,b=p.operationId,x=h.candidate,S=L(r.accountId),ee=[];if(!t.touchConfirm)throw Error(`UiConfirm bridge not available for signing`);if(!m)throw Error(`[SigningEngine][near] production signing session coordinator is required`);let{thresholdKeyMaterial:te}=await Wn({materialExecutor:_,nearAccount:r,signerSlot:x.signerSlot,requestedSignerSlot:d,operationLabel:`signing`,warnings:ee}),C=La({nearAccountId:S,relayerUrl:t.relayerUrl,thresholdKeyMaterial:te}),ne={nearRpcUrl:a.nearRpcUrl||f(_t.network.chains),nearAccountId:S},{txSigningRequest:w,confirmationTransaction:re}=Gn({nearAccountId:String(S),transaction:i}),T=nr(w,`txSigningRequest`),E=U.signingOperationFingerprint(await Jn({nearAccountId:S,nearNetworkId:s(t.chains||_t.network.chains),relayerKeyId:C.threshold.thresholdKeyMaterial.relayerKeyId,signerPublicKey:C.threshold.thresholdKeyMaterial.publicKey,transactions:[T]}));m.bindCallerProvidedOperationIdToFingerprint({operationId:b,operationFingerprint:E});let D=Ge(E),O={kind:`deferred_ed25519_material_identity`,signer:Ve({walletId:x.walletId,nearAccountId:x.nearAccountId,nearEd25519SigningKeyId:x.nearEd25519SigningKeyId,signerSlot:x.signerSlot}),materialActivation:x.materialActivation,thresholdSessionId:U.thresholdEd25519Session(x.thresholdSessionId)},ie={kind:H.OperationStepUp,lane:{identity:O,auth:x.auth,curve:`ed25519`,keyKind:`threshold_ed25519`,chainFamily:`near`,sessionOrigin:`per_operation`,storageSource:`sealed_restore`,retention:`single_use`,materialActivation:O.materialActivation,thresholdSessionId:O.thresholdSessionId}},k=gr(x.auth),A={operationId:b,operationFingerprint:E,intent:Te.TransactionSign},j=await hr({signingAuthPlan:k,signingLaneAuth:x.auth,requiredSignatureUses:Or(i),operationFingerprintDigest:D,...v?{passkeyEd25519OperationStepUp:v}:{},...y?{emailOtpEd25519StepUp:y}:{}});if(j.kind===`warm_session`)throw Error(`[SigningEngine][near] deferred Ed25519 transaction cannot use warm session`);let M=Or(i),N=Da({requestId:String(b),expectedThresholdSessionId:String(O.thresholdSessionId),method:j.kind,preparation:g,executor:_,operation:{ctx:t,thresholdKeyMaterial:C.threshold.thresholdKeyMaterial,walletId:n.walletSession.walletId,nearAccountId:S,operationId:b,operationFingerprint:E,txSigningRequest:w},funding:{ctx:t,nearPublicKeyStr:C.signingNearPublicKeyStr,signingOperation:A,signatureUses:M}}),P;try{P=await Mt({signingSessionPlan:ie,signingOperation:A,signingOperationState:p,runtime:t.touchConfirm,request:{ctx:{touchConfirm:t.touchConfirm},sessionId:String(b),chain:`near`,kind:`transaction`,...jt({signingAuthPlan:j.confirmationAuthPayload.signingAuthPlan}),walletId:x.walletId,txSigningRequests:[re],rpcCall:ne,nearPublicKeyStr:C.signingNearPublicKeyStr,nearFundingRequest:{subject:{walletId:x.walletId,nearAccountId:S,nearPublicKeyStr:C.signingNearPublicKeyStr},operation:{...A,accountId:String(S)},signatureUses:M},confirmationConfigOverride:Nt({signingAuthPlan:j.confirmationAuthPayload.signingAuthPlan,override:c}),title:l,body:u,confirmationReadiness:{promise:N},onProgress:Cr.bind(void 0,{onEvent:o,nearAccountId:S,signingAuthPlan:j.confirmationAuthPayload.signingAuthPlan})}})}finally{ka({requestId:String(b),readiness:N})}let F=await N,I=da(F),ae=Tr({prepared:j,confirmation:P});if(ae.kind===`warm_session`)throw Error(`[SigningEngine][near] deferred transaction requires operation step-up`);let oe=Oi({authorization:ae,preparation:g,auth:x.auth,walletId:n.walletSession.walletId}),R=_a(ii({requestId:String(b),ref:ga(P.operationStepUpPreparation)})),se=await Ta({material:F,prepared:R,displayDigest:P.intentDigest,authorization:ae,proof:Ai(oe)});Z(o,S,{phase:V.STEP_07_AUTHENTICATION_COMPLETE,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},authMethod:Ft(j.confirmationAuthPayload.signingAuthPlan)});try{if(await t.nonceCoordinator.recoverDurableLeases({walletId:String(x.walletId)}),P.readiness.kind!==`context_ready`)throw Error(`[SigningEngine][near] implicit-account funding requires transaction context`);let e=await Ui({ctx:t,thresholdSessionId:I.thresholdSessionId,activeClient:se.material.activeClient,materialFacts:I,thresholdKeyMaterial:C.threshold.thresholdKeyMaterial,walletId:n.walletSession.walletId,nearAccountId:S,operationId:b,operationFingerprint:E,displayDigest:P.intentDigest,txSigningRequest:w,transactionContext:P.readiness.transactionContext,authorization:{kind:`operation_step_up`,prepared:R,displayDigest:P.intentDigest,proof:Ai(oe),issuedAuthorization:se.issuedAuthorization}});if(!e||e.authorization!==`operation_step_up`)throw Error(`[SigningEngine][near] operation step-up transaction signing is unavailable`);ci({prepared:R,issuedAuthorization:e.issuedAuthorization});let r=Ia({okResponse:e.okResponse,nearAccountId:S,warnings:ee,nonceLeases:P.readiness.nonceLeases});return await Fa(t,P.readiness.nonceLeases),r}catch(e){throw ya({resolved:se,owned:F.kind===`passkey_sealed`||F.kind===`email_otp_sealed`}),e}}async function Na({ctx:e,commandSubject:t,nearAccount:n,transaction:r,rpcCall:i,onEvent:a,confirmationConfigOverride:o,title:c,body:l,signerSlot:u,signingOperationState:d,signingSessionCoordinator:p,transactionOperation:m,ed25519SigningBoundary:h,passkeyEd25519OperationStepUp:g,emailOtpEd25519StepUp:_,yaoSigningPreparation:v,yaoMaterialExecutor:y}){let b=performance.now(),x=d.operationId,S=L(n.accountId),ee=e.relayerUrl,te=[],C=e.nonceCoordinator.recoverDurableLeases({walletId:String(t.walletSession.walletId)});C.catch(()=>{}),Z(a,S,{phase:V.STEP_02_REQUEST_PREPARED,status:`running`,message:`Loading threshold signing state`,interaction:{kind:`none`,overlay:`none`}});let{thresholdKeyMaterial:ne}=await Wn({materialExecutor:y,nearAccount:n,signerSlot:h.signingLane.identity.signer.signerSlot,requestedSignerSlot:u,operationLabel:`signing`,warnings:te}),w=La({nearAccountId:S,relayerUrl:ee,thresholdKeyMaterial:ne}),re={nearRpcUrl:i.nearRpcUrl||f(_t.network.chains),nearAccountId:S},{txSigningRequest:T,confirmationTransaction:E}=Gn({nearAccountId:String(re.nearAccountId),transaction:r}),D=nr(T,`txSigningRequest`),O=U.signingOperationFingerprint(await Jn({nearAccountId:S,nearNetworkId:s(e.chains||_t.network.chains),relayerKeyId:w.threshold.thresholdKeyMaterial.relayerKeyId,signerPublicKey:w.threshold.thresholdKeyMaterial.publicKey,transactions:[D]})),ie=Ge(O);if(!e.touchConfirm)throw Error(`UiConfirm bridge not available for signing`);let k=e.touchConfirm;if(!p)throw Error(`[SigningEngine][near] production signing session coordinator is required`);p.bindCallerProvidedOperationIdToFingerprint({operationId:x,operationFingerprint:O});let A=Or(r),j={operationId:x,operationFingerprint:O,intent:Te.TransactionSign},M=async e=>await Dt({signingSessionPlan:h.signingSessionPlan,signingOperation:j,commandKind:e.commandKind,execute:e.execute}),N=h.thresholdSessionId,P=String(N||``).trim(),F=h.signingAuthPlan,I=h.signingLane;if(!m)throw Error(`[SigningEngine][near] threshold transaction signing requires prepared transaction operation`);if(Ct(F)&&F.thresholdSessionId!==N)throw Error(`[SigningEngine][near] warm-session auth plan must match prepared session identity`);let ae={thresholdSessionId:Ct(F)?F.thresholdSessionId:N,lane:I,signingAuthPlan:F,confirmationAuthPayload:{signingAuthPlan:F},warmSessionReady:Ct(F)},oe=I,R=new Set,se=e=>{R.has(e)||(R.add(e),Je(`near`,Xe({event:`auth_side_effect_started`,lane:oe,sideEffect:e,phase:`confirmed`})))},ce=e=>{e.phase===`auth.passkey.prompt.started`&&se(`passkey_reauth`),Cr({onEvent:a,nearAccountId:S,signingAuthPlan:ae.confirmationAuthPayload.signingAuthPlan},e)},le=await hr({signingAuthPlan:F,signingLaneAuth:I.auth,requiredSignatureUses:A,operationFingerprintDigest:ie,...g?{passkeyEd25519OperationStepUp:g}:{},..._?{emailOtpEd25519StepUp:_}:{}}),ue=le.kind===`warm_session`?xa({preparation:v,executor:y}):null;ue?.catch(()=>{});let de=le.confirmationAuthPayload;Ct(de.signingAuthPlan)&&Z(a,S,{phase:V.STEP_06_AUTH_WARM_SESSION_CLAIMED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:{thresholdSessionId:de.signingAuthPlan.thresholdSessionId,expiresAtMs:de.signingAuthPlan.expiresAtMs,remainingUses:de.signingAuthPlan.remainingUses}});let fe=!Rt(d.current);fe&&Z(a,S,{phase:V.STEP_05_CONFIRMATION_DISPLAYED,status:`waiting_for_user`,message:`Opening confirmation prompt`,interaction:{kind:`transaction_confirmation`,overlay:`show`}});let pe=le.kind===`warm_session`?null:Da({requestId:P,expectedThresholdSessionId:P,method:le.kind,preparation:v,executor:y,operation:{ctx:e,thresholdKeyMaterial:w.threshold.thresholdKeyMaterial,walletId:t.walletSession.walletId,nearAccountId:S,operationId:j.operationId,operationFingerprint:O,txSigningRequest:T},funding:{ctx:e,nearPublicKeyStr:w.signingNearPublicKeyStr,signingOperation:j,signatureUses:A}});W(String(x),`pre_confirmation`,b);let me=null,he=n=>{me||!ue||(me=Ca({ctx:e,warmMaterial:ue,sessionCoordinator:p,thresholdKeyMaterial:w.threshold.thresholdKeyMaterial,walletId:t.walletSession.walletId,nearAccountId:S,operationId:j.operationId,txSigningRequest:T,confirmationTransaction:E,readiness:n}).catch(wa))},ge=performance.now(),z;try{z=await Mt({signingSessionPlan:h.signingSessionPlan,signingOperation:j,signingOperationState:d,runtime:k,request:{ctx:{touchConfirm:k},sessionId:P,chain:`near`,kind:`transaction`,...jt({signingAuthPlan:de.signingAuthPlan}),...ue?{onNearTransactionContextReady:he}:{},walletId:String(I.identity.signer.account.wallet.walletId),txSigningRequests:[E],rpcCall:re,nearPublicKeyStr:w.signingNearPublicKeyStr,nearFundingRequest:{subject:{walletId:I.identity.signer.account.wallet.walletId,nearAccountId:S,nearPublicKeyStr:w.signingNearPublicKeyStr},operation:{...j,accountId:String(S)},signatureUses:A},confirmationConfigOverride:Nt({signingAuthPlan:de.signingAuthPlan,override:o}),title:c,body:l,...pe?{confirmationReadiness:{promise:pe}}:{},onProgress:ce}})}finally{ka({requestId:P,readiness:pe})}let _e=performance.now();W(String(x),`confirmation`,ge);let ve=pe?await pe:null;fe&&Z(a,S,{phase:V.STEP_05_CONFIRMATION_APPROVED,status:`succeeded`,interaction:{kind:`transaction_confirmation`,overlay:`hide`}});let B=Tr({prepared:le,confirmation:z}),ye=B.kind===`warm_session`?null:Oi({authorization:B,preparation:v,auth:m.lane.auth,walletId:t.walletSession.walletId}),be=B.kind===`warm_session`?null:ii({requestId:P,ref:ga(z.operationStepUpPreparation)}),xe=B.kind===`warm_session`?null:await Ta({material:va(ve),prepared:_a(be),displayDigest:z.intentDigest,authorization:B,proof:Ai(ye)}),Se=ve?.kind===`passkey_sealed`||ve?.kind===`email_otp_sealed`,Ce=performance.now();try{await C,W(String(j.operationId),`durable_lease_recovery_wait`,Ce)}catch(e){throw W(String(j.operationId),`durable_lease_recovery_wait`,Ce,`failed`),ya({resolved:xe,owned:Se}),e}let we=!1,{canonicalThresholdSessionId:H,activeClient:Ee,walletSessionState:De,operationMaterialFacts:Oe,issuedAuthorization:ke,transactionContext:Ae,nonceLeaseRefs:je}=await M({commandKind:At.PreparePayload,execute:async()=>{Z(a,S,{phase:V.STEP_08_SIGNER_PREPARE_STARTED,status:`running`,message:`Preparing NEAR signer`,interaction:{kind:`none`,overlay:`none`}});let t=performance.now(),n=B.kind===`warm_session`?{kind:`warm_session`,resolved:await Sa(ue)}:{kind:`operation_step_up`,resolved:xe};W(String(j.operationId),`material_resolution_wait`,t);let r=(n.kind,n.resolved.material.facts.thresholdSessionId),i=(n.kind,n.resolved.material.activeClient),o=n.kind===`warm_session`?n.resolved.walletSessionState:null,s=performance.now(),c=n.kind===`warm_session`?await ra({confirmation:z,ctx:e,nearPublicKeyStr:w.signingNearPublicKeyStr,walletSessionState:o,authorization:B,signingOperation:j,signatureUses:A}):z.readiness.kind===`context_ready`?z.readiness:(()=>{throw Error(`[SigningEngine][near] operation step-up confirmation did not resolve a transaction context`)})();return W(String(j.operationId),`transaction_context`,s),Z(a,S,{phase:V.STEP_07_AUTHENTICATION_COMPLETE,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},authMethod:ae.warmSessionReady?`warm_session`:ae.signingAuthPlan.method}),Z(a,S,{phase:V.STEP_08_SIGNER_PREPARE_SUCCEEDED,status:`succeeded`,message:`NEAR signer ready`,interaction:{kind:`none`,overlay:`none`},data:{signer:`threshold-ed25519`,thresholdSessionId:r,clientBaseSource:`yao_active_client`}}),{canonicalThresholdSessionId:r,activeClient:i,walletSessionState:o,operationMaterialFacts:n.kind===`operation_step_up`?n.resolved.material.facts:null,issuedAuthorization:n.kind===`operation_step_up`?n.resolved.issuedAuthorization:null,transactionContext:c.transactionContext,nonceLeaseRefs:c.nonceLeases}}}).catch(ba.bind(void 0,{resolved:xe,owned:Se})),Me=async t=>{we||!je.length||await Pa(e,je,`signing_failed`).catch(e=>{console.warn(`[SigningEngine][near][transaction] failed to release nonce leases`,{originalError:t instanceof Error?t.message:String(t||``),releaseError:e instanceof Error?e.message:String(e||``)})})},Ne=async n=>{Z(a,S,{phase:V.STEP_10_COMMIT_STARTED,status:`running`,interaction:{kind:`none`,overlay:`none`}});let r=B.kind===`warm_session`?await Ui({ctx:e,thresholdSessionId:H,activeClient:n,sessionCoordinator:p,walletSessionState:await Ea({state:De,coordinator:p,operationId:String(j.operationId)}),thresholdKeyMaterial:w.threshold.thresholdKeyMaterial,walletId:t.walletSession.walletId,nearAccountId:S,operationId:j.operationId,operationFingerprint:O,displayDigest:z.intentDigest,txSigningRequest:T,transactionContext:Ae,authorization:{kind:`reusable_wallet_session`},startedPrepare:me?await me:null}):await Ui({ctx:e,thresholdSessionId:H,activeClient:n,materialFacts:Oe,thresholdKeyMaterial:w.threshold.thresholdKeyMaterial,walletId:t.walletSession.walletId,nearAccountId:S,operationId:j.operationId,operationFingerprint:O,displayDigest:z.intentDigest,txSigningRequest:T,transactionContext:Ae,authorization:{kind:`operation_step_up`,prepared:_a(be),displayDigest:z.intentDigest,proof:B.kind===`passkey`?{kind:`passkey`,authority:B.plannedPasskeyOperationStepUp.authority,credential:B.credential}:{...Di({preparation:v,auth:m.lane.auth,walletId:t.walletSession.walletId,challengeId:B.challengeId,otpCode:B.otpCode})},issuedAuthorization:ke}});if(r)return r.okResponse;throw Error(`[SigningEngine][near] Router A/B Ed25519 signing is unavailable`)};return await M({commandKind:At.Sign,execute:async()=>{try{let t=await Ne(Ee);we=!0;let n=performance.now();await Fa(e,je),W(String(j.operationId),`nonce_lease_commit`,n);let r=performance.now(),i=Ia({okResponse:t,nearAccountId:S,warnings:te,nonceLeases:je});return W(String(j.operationId),`transaction_assembly`,r),W(String(j.operationId),`confirmed_to_signed`,_e),Z(a,S,{phase:V.STEP_11_TRANSACTION_SIGNED,status:`succeeded`,interaction:{kind:`none`,overlay:`hide`}}),Z(a,S,{phase:V.STEP_15_COMPLETED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:{operation:`sign`}}),i}catch(e){let t=e instanceof Error?e:Error(String(e));throw await Me(t),ya({resolved:xe,owned:Se}),t}}})}async function Pa(e,t,n){t.length&&await Promise.all(t.map(t=>e.nonceCoordinator.release({leaseId:t.leaseId,operationId:t.operationId,operationFingerprint:t.operationFingerprint,reason:n})))}async function Fa(e,t){t.length&&await Promise.all(t.map(t=>e.nonceCoordinator.markSigned({leaseId:t.leaseId,operationId:t.operationId,operationFingerprint:t.operationFingerprint})))}function Ia(e){let t=e.okResponse.payload.signedTransactions||[];if(t.length!==1)throw Error(`Expected one signed transaction but received ${t.length}`);let n=t[0];if(!n||!n.transaction||!n.signature)throw Error(`Incomplete signed transaction data received`);let r=e.nonceLeases?.[0],i=n.serverDispatch;return{signedTransaction:new Pn({transaction:n.transaction,signature:n.signature,borsh_bytes:Array.from(n.borshBytes||[]),...r?{nonceLease:r}:{},...i?{serverDispatch:i}:{}}),nearAccountId:L(e.nearAccountId),logs:[...e.okResponse.payload.logs||[],...e.warnings],...r?{nonceLease:r}:{}}}function La(e){let t=e.thresholdKeyMaterial;if(!t)throw Error(`Missing threshold key material for ${e.nearAccountId}`);let n=String(t.publicKey||``).trim();if(!n)throw Error(`Missing threshold signing public key for ${e.nearAccountId}`);let r=String(e.relayerUrl||``).trim();if(!r)throw Error(`Missing relayerUrl (required for threshold-signer)`);let i=h(t.participants.map(e=>e.id));if(!i||i.length<2)throw Error(`Invalid threshold signing participantIds (expected >=2 participants, got [${(i||[]).join(`,`)}])`);return{signingNearPublicKeyStr:n,threshold:{relayerUrl:r,thresholdKeyMaterial:t}}}const Ra=e=>typeof e==`string`?e:I(F(e.keyData));function Q(e){return typeof e!=`number`||!Number.isFinite(e)||e<0?null:Math.round(e)}function za(e){if(e==null||!o(e))return;let t=e;if(t.kind!==`registration_confirmation_diagnostics_v1`)return;let n=Q(t.workerReadyMs),r=Q(t.workerRequestRoundTripMs),i=Q(t.workerResponseValidationMs),a=Q(t.requestSetupMs),s=Q(t.promptUserMs),c=Q(t.promptElementDefineMs),l=Q(t.promptMountMs),u=Q(t.promptHostFirstUpdateMs),d=Q(t.promptHostInteractiveMs),f=Q(t.promptConfirmEventMs),p=Q(t.promptDecisionWaitMs),m=Q(t.credentialCreateStartMs),h=Q(t.credentialCreateMs),g=Q(t.credentialSerializeMs),_=Q(t.duplicateRetryCount),v=Q(t.mainThreadTotalMs);if(!(n==null||r==null||i==null||a==null||s==null||c==null||l==null||u==null||d==null||f==null||p==null||m==null||h==null||g==null||_==null||v==null))return{kind:`registration_confirmation_diagnostics_v1`,workerReadyMs:n,workerRequestRoundTripMs:r,workerResponseValidationMs:i,requestSetupMs:a,promptUserMs:s,promptElementDefineMs:c,promptMountMs:l,promptHostFirstUpdateMs:u,promptHostInteractiveMs:d,promptConfirmEventMs:f,promptDecisionWaitMs:p,credentialCreateStartMs:m,credentialCreateMs:h,credentialSerializeMs:g,duplicateRetryCount:_,mainThreadTotalMs:v}}function Ba(e){if(e==null)return;if(!o(e))throw Error(`Invalid transactionContext: expected object`);let{nearPublicKeyStr:t,nextNonce:n,txBlockHeight:r,txBlockHash:i,accessKeyInfo:a}=e,s=d(t,`transactionContext.nearPublicKeyStr`),c=d(n,`transactionContext.nextNonce`),l=d(r,`transactionContext.txBlockHeight`),u=d(i,`transactionContext.txBlockHash`),f=a;if(f!=null&&!o(f))throw Error(`Invalid transactionContext.accessKeyInfo: expected object`);return f??={nonce:0},{nearPublicKeyStr:s,nextNonce:c,txBlockHeight:l,txBlockHash:u,accessKeyInfo:f}}function Va(e){if(e==null)return;let t=Ae(e);if(t.type!==`public-key`)throw Error(`Invalid credential.type: expected "public-key"`);let{id:n,rawId:r,response:i,authenticatorAttachment:a}=t;if(d(n,`credential.id`),d(r,`credential.rawId`),!o(i))throw Error(`Invalid credential.response: expected object`);let{clientDataJSON:s,attestationObject:c,transports:l}=i;if(d(s,`credential.response.clientDataJSON`),d(c,`credential.response.attestationObject`),!Array.isArray(l))throw Error(`Invalid credential.response.transports: expected string[]`);for(let e of l)if(typeof e!=`string`)throw Error(`Invalid credential.response.transports item: expected string`);if(a!=null&&typeof a!=`string`)throw Error(`Invalid credential.authenticatorAttachment: expected string | undefined`);return t}function Ha(e){if(!o(e))throw Error(`Invalid response payload: expected object`);let{confirmed:t,requestId:n,intentDigest:r,credential:i,transactionContext:a,registrationDiagnostics:s,error:c}=e,l=d(n,`requestId`),u=r==null?``:d(r,`intentDigest`),f=i==null?void 0:Va(i);if(!f)throw Error(`Missing registration credential`);let p=a==null?void 0:Ba(a),m=za(s),h=c==null?void 0:d(c,`error`);return{confirmed:!!t,requestId:l,intentDigest:u,credential:f,...p?{transactionContext:p}:{},...m?{registrationDiagnostics:m}:{},...h==null?{}:{error:h}}}function Ua(e){let t=e.selectedLane.identity.signer,n=R(e.commandSubject.walletSession.walletId),r=String(e.commandSubject.nearAccount.accountId);if(t.account.wallet.walletId!==n||String(t.account.nearAccountId)!==r)throw Error(`[SigningEngine][near] selected Ed25519 lane does not match command subject`);return{walletId:n,nearAccountId:r}}function Wa(e){let t=e.selectedLane.identity.signer,n={walletId:t.account.wallet.walletId,nearAccountId:t.account.nearAccountId,nearEd25519SigningKeyId:t.nearEd25519SigningKeyId,signerSlot:t.signerSlot,walletSessionId:e.selectedLane.walletSessionId,quotaId:e.selectedLane.quotaId,thresholdSessionId:e.selectedLane.thresholdSessionId};switch(e.selectedLane.auth.kind){case`passkey`:return He({...n,auth:e.selectedLane.auth,storageSource:`login`});case`email_otp`:{let t=e.preparation.authorization.kind===`authorized`;return He({...n,auth:e.selectedLane.auth,retention:t?`session`:`single_use`,sessionOrigin:t?`login`:`per_operation`})}default:throw e.selectedLane.auth,Error(`[SigningEngine][near] unsupported selected Ed25519 auth binding`)}}function Ga(e){let t=U.thresholdEd25519Session(e.selectedLane.thresholdSessionId);switch(e.preparation.authorization.kind){case`authorized`:{let n=e.preparation.authorization.authorization.status,r=n.remainingUses,i=n.expiresAtMs,a=i<=Date.now()?`expired`:r<e.requiredSignatureUses?`exhausted`:`ready`;return{readiness:a===`expired`?{status:`expired`,curve:`ed25519`,thresholdSessionId:t,expiresAtMs:i}:{status:a,curve:`ed25519`,thresholdSessionId:t,remainingUses:r,expiresAtMs:i},expiresAtMs:i,remainingUses:r,forceFreshAuth:a!==`ready`}}case`authorization_required`:return{readiness:{status:`missing_session`,curve:`ed25519`,thresholdSessionId:t},expiresAtMs:0,remainingUses:0,forceFreshAuth:!0};default:throw e.preparation.authorization,Error(`[SigningEngine][near] unsupported material authorization state`)}}function Ka(e){Ua(e);let t=Math.max(1,Math.floor(Number(e.requiredSignatureUses)||1)),n=Wa(e),r=Ga({selectedLane:e.selectedLane,preparation:e.preparation,requiredSignatureUses:t});return Ye(`near`,n,{reason:`near_threshold_auth_plan`}),{thresholdSessionId:U.thresholdEd25519Session(e.selectedLane.thresholdSessionId),lane:n,coordinatorInput:{lane:n,readiness:r.readiness,expiresAtMs:r.expiresAtMs,remainingUses:r.remainingUses,forceFreshAuth:e.forceFreshAuth||r.forceFreshAuth}}}function qa(e){let{lane:t}=e.context,n=e.resolvedSigningSession,r=n.signingSessionPlan;if(r.kind===H.NotReady)throw Error(`[SigningEngine][near] signing session is not ready: ${r.reason}`);return{signingAuthPlan:Lt({plan:r,accountId:String(t.identity.signer.account.nearAccountId),intent:Te.TransactionSign,curve:`ed25519`,expiresAtMs:n.expiresAtMs,remainingUses:n.remainingUses})}}function Ja(e,t){if(!t)throw Error(`[SigningEngine][near] ${e} operation step-up preparation is missing`);return t}function Ya(e,t){if(!t||t.kind!==`near_signature_only`)throw Error(`[SigningEngine][near] ${e} operation step-up preparation kind changed`);return t}function Xa(e,t){if(!t)throw Error(`[SigningEngine][near] ${e} operation step-up material is missing`);return t}function Za(e,t){if(!t)throw Error(`[SigningEngine][near] ${e} operation signing digest is missing`);return t}function Qa(e){if(!e)throw Error(`[SigningEngine][near] reusable Wallet Session authorization is unavailable`);return e}async function $a(e){if(e.authorization.kind===`passkey`){if(e.material.kind!==`passkey_live`&&e.material.kind!==`passkey_sealed`)throw Error(`[SigningEngine][near] passkey ${e.label} material changed factor`);return await ma({kind:`passkey`,material:e.material,expectedActivation:e.prepared.materialActivation,credential:e.authorization.credential})}if(e.material.kind!==`email_otp_live`&&e.material.kind!==`email_otp_sealed`)throw Error(`[SigningEngine][near] Email OTP ${e.label} material changed factor`);if(!e.emailOtpProof)throw Error(`[SigningEngine][near] Email OTP ${e.label} proof is missing`);return e.material.kind===`email_otp_live`?await ma({kind:`email_otp_live`,material:e.material,expectedActivation:e.prepared.materialActivation}):await ma({kind:`email_otp_sealed`,material:e.material,expectedActivation:e.prepared.materialActivation,normalSigningRequest:e.prepared.prepare.request,displayDigest:e.displayDigest,proof:e.emailOtpProof})}function eo(e){if(e.selection.kind===`authorized`){let t=Ka({requiredSignatureUses:1,commandSubject:e.commandSubject,forceFreshAuth:e.forceFreshAuth,selectedLane:e.selection.selectedLane,preparation:e.preparation}),n={signingSessionPlan:bn({lane:t.coordinatorInput.lane,readiness:t.coordinatorInput.readiness,forceFreshAuth:t.coordinatorInput.forceFreshAuth}),readiness:t.coordinatorInput.readiness,expiresAtMs:t.coordinatorInput.expiresAtMs||0,remainingUses:t.coordinatorInput.remainingUses||0};return{signingAuthPlan:qa({context:t,resolvedSigningSession:n}).signingAuthPlan,signingSessionPlan:n.signingSessionPlan}}let t=e.selection.candidate,n=gr(t.auth),r={kind:`deferred_ed25519_material_identity`,signer:Ve({walletId:t.walletId,nearAccountId:t.nearAccountId,nearEd25519SigningKeyId:t.nearEd25519SigningKeyId,signerSlot:t.signerSlot}),materialActivation:t.materialActivation,thresholdSessionId:U.thresholdEd25519Session(t.thresholdSessionId)};return{signingAuthPlan:n,signingSessionPlan:{kind:H.OperationStepUp,lane:{identity:r,auth:t.auth,curve:`ed25519`,keyKind:`threshold_ed25519`,chainFamily:`near`,sessionOrigin:`per_operation`,storageSource:`sealed_restore`,retention:`single_use`,materialActivation:r.materialActivation,thresholdSessionId:r.thresholdSessionId}}}}async function to(e,t){let n=await hr({signingAuthPlan:t.signingAuthPlan,signingLaneAuth:e.auth,requiredSignatureUses:1,operationFingerprintDigest:Ge(e.signingOperation.operationFingerprint),passkeyEd25519OperationStepUp:t.passkeyEd25519OperationStepUp,emailOtpEd25519StepUp:t.emailOtpEd25519StepUp});if(n.kind===`warm_session`)return{preparedStepUp:n,operationStepUp:null};let r=await pa({method:n.kind,preparation:e.preparation,executor:e.executor}),i=da(r),a=await e.computeSigningDigestB64u();return ti({requestId:String(e.signingOperation.operationId),build:async t=>{if(t.kind!==`near_signature_only`)throw Error(`[SigningEngine][near] ${e.label} operation step-up preparation kind changed`);return await Ei({ctx:e.ctx,thresholdSessionId:i.thresholdSessionId,materialFacts:i,walletId:e.walletId,nearAccountId:e.nearAccountId,materialActivation:r.materialActivation,operationId:e.signingOperation.operationId,operationFingerprint:e.signingOperation.operationFingerprint,displayDigest:t.displayDigest,signingDigestB64u:a,intent:e.intent})}}),{preparedStepUp:n,operationStepUp:{material:r,signingDigestB64u:a}}}async function no(e,t){let n=String(e.signingOperation.operationId);try{return await kt({signingSessionPlan:e.signingSessionPlan,signingOperation:e.signingOperation,runtime:t.touchConfirm,request:{ctx:{touchConfirm:t.touchConfirm},sessionId:n,chain:`near`,...t.request,...jt({signingAuthPlan:t.signingAuthPlan}),walletId:String(e.walletId),nearAccountId:e.nearAccountId,nearPublicKeyStr:t.nearPublicKeyStr,title:t.title,body:t.body,confirmationConfigOverride:Nt({signingAuthPlan:t.signingAuthPlan,override:t.confirmationConfigOverride}),onProgress:Cr.bind(void 0,{onEvent:t.onEvent,nearAccountId:e.nearAccountId,signingAuthPlan:t.signingAuthPlan})}})}finally{ni(n)}}function ro(e,t,n){let r=Tr({prepared:t.preparedStepUp,confirmation:n});if(r.kind===`warm_session`)return{kind:`warm_session`,displayDigest:n.intentDigest,stepUpAuthorization:r};let i=Oi({authorization:r,preparation:e.preparation,auth:e.auth,walletId:e.walletId}),a=Ya(e.label,ii({requestId:String(e.signingOperation.operationId),ref:Ja(e.label,n.operationStepUpPreparation)}));return{kind:`operation_step_up`,displayDigest:n.intentDigest,stepUpAuthorization:r,proof:i,prepared:a,...Xa(e.label,t.operationStepUp)}}async function io(e,t,n,r){if(t.preparedStepUp.kind!==`warm_session`)return null;let i=await ha({preparation:e.preparation,executor:e.executor}),a=Qa(await n.resolveActiveAuthorizedRouterAbEd25519WalletSessionState({state:i.walletSessionState,nowMs:Date.now()})),o=await Fi({ctx:e.ctx,thresholdSessionId:i.thresholdSessionId,activeClient:i.material.activeClient,walletSessionState:a,walletId:e.walletId,thresholdKeyMaterial:e.thresholdKeyMaterial,nearAccountId:e.nearAccountId,operationId:e.signingOperation.operationId,operationFingerprint:e.signingOperation.operationFingerprint,displayDigest:r,signingDigestB64u:await e.computeSigningDigestB64u(),intent:e.intent});return o?{resolved:i,started:o}:null}async function ao(e,t,n=null){if(t.kind===`warm_session`){let r=n?.resolved??await ha({preparation:e.preparation,executor:e.executor});return{kind:`warm_session`,thresholdSessionId:r.thresholdSessionId,displayDigest:t.displayDigest,resolved:r,startedPrepare:n?.started}}return n&&Ii(n.started),{kind:`operation_step_up`,thresholdSessionId:da(t.material).thresholdSessionId,displayDigest:t.displayDigest,resolved:await $a({label:e.label,material:t.material,prepared:t.prepared,displayDigest:t.displayDigest,authorization:t.stepUpAuthorization,emailOtpProof:t.proof.kind===`email_otp`?t.proof:null}),proof:t.proof,prepared:t.prepared,signingDigestB64u:t.signingDigestB64u}}async function oo(e,t,n){let r=t.kind===`warm_session`?await e.computeSigningDigestB64u():Za(e.label,t.signingDigestB64u),i=t.kind===`warm_session`?await Ni({ctx:e.ctx,thresholdSessionId:t.thresholdSessionId,activeClient:t.resolved.material.activeClient,sessionCoordinator:n,walletSessionState:Qa(await n.resolveActiveAuthorizedRouterAbEd25519WalletSessionState({state:t.resolved.walletSessionState,nowMs:Date.now()})),walletId:e.walletId,thresholdKeyMaterial:e.thresholdKeyMaterial,nearAccountId:e.nearAccountId,operationId:e.signingOperation.operationId,operationFingerprint:e.signingOperation.operationFingerprint,displayDigest:t.displayDigest,signingDigestB64u:r,intent:e.intent,authorization:{kind:`reusable_wallet_session`},startedPrepare:t.startedPrepare}):await Ni({ctx:e.ctx,thresholdSessionId:t.thresholdSessionId,activeClient:t.resolved.material.activeClient,materialFacts:t.resolved.material.facts,walletId:e.walletId,thresholdKeyMaterial:e.thresholdKeyMaterial,nearAccountId:e.nearAccountId,operationId:e.signingOperation.operationId,operationFingerprint:e.signingOperation.operationFingerprint,displayDigest:t.displayDigest,signingDigestB64u:r,intent:e.intent,authorization:{kind:`operation_step_up`,prepared:t.prepared,proof:t.proof,issuedAuthorization:t.resolved.issuedAuthorization}});if(!i)throw Error(`[SigningEngine][near] Router A/B Ed25519 ${e.label} signing is unavailable`);return t.kind===`operation_step_up`&&i.authorization===`operation_step_up`&&ci({prepared:t.prepared,issuedAuthorization:i.issuedAuthorization}),{signingDigestB64u:r,signatureB64u:i.signatureB64u,signerPublicKey:i.signerPublicKey}}async function so(e,t){return await Dt({signingSessionPlan:e.signingSessionPlan,signingOperation:e.signingOperation,commandKind:At.Sign,execute:async()=>{try{return await t()}catch(e){throw e instanceof Error?e:Error(String(e))}}})}function $(e,t,n){try{e?.(xe({...n,flowId:`signing:near:${String(t)}:${n.phase}`,accountId:String(t)}))}catch{}}function co(e){switch(e.kind){case`warm_session`:return`warm_session`;case`passkey`:return`passkey`;case`email_otp`:return`email_otp`;default:return lo(e)}}function lo(e){throw Error(`[SigningEngine][near] unsupported prepared step-up: ${String(e)}`)}async function uo({ctx:e,commandSubject:t,nearAccount:n,delegate:r,rpcCall:i,onEvent:a,confirmationConfigOverride:o,title:c,body:l,operationId:u,signerSlot:d,signingSessionCoordinator:p,forceFreshAuth:m,passkeyEd25519OperationStepUp:h,emailOtpEd25519StepUp:g,yaoSigningPreparation:_,yaoMaterialExecutor:v,selection:y}){let b=y.kind===`authorized`?y.selectedLane.auth:y.candidate.auth,x=y.kind===`authorized`?y.selectedLane.identity.signer.signerSlot:y.candidate.signerSlot,S=L(n.accountId),ee=e.relayerUrl,te={nearRpcUrl:i.nearRpcUrl||f(_t.network.chains),nearAccountId:S},C=[],ne=e.touchConfirm;if(!ne)throw Error(`UiConfirm bridge not available for delegate signing`);let{signingAuthPlan:w,signingSessionPlan:re}=eo({selection:y,commandSubject:t,forceFreshAuth:m,preparation:_});$(a,S,{phase:V.STEP_02_REQUEST_PREPARED,status:`running`,message:`Loading threshold signing state`,interaction:{kind:`none`,overlay:`none`}});let{thresholdKeyMaterial:T}=await Wn({materialExecutor:v,nearAccount:n,signerSlot:x,requestedSignerSlot:d,operationLabel:`delegate signing`,warnings:C}),E=fo({nearAccountId:S,relayerUrl:ee,thresholdKeyMaterial:T,providedDelegatePublicKey:r.publicKey,warnings:C}),D=Kn({nearAccountId:S,delegate:r,signingPublicKey:E.delegatePublicKeyStr}),O={...D.workerDelegate,actions:D.workerDelegate.actions.map((e,t)=>ir(e,`delegate.actions[${t}]`))},ie={operationId:u,operationFingerprint:U.signingOperationFingerprint(await Zn({nearAccountId:S,nearNetworkId:s(e.chains||_t.network.chains),relayerKeyId:E.threshold.thresholdKeyMaterial.relayerKeyId,signerPublicKey:E.delegatePublicKeyStr,delegate:O})),intent:Te.TransactionSign},k={label:`delegate`,ctx:e,walletId:t.walletSession.walletId,nearAccountId:S,auth:b,signingSessionPlan:re,signingOperation:ie,thresholdKeyMaterial:E.threshold.thresholdKeyMaterial,preparation:_,executor:v,intent:{kind:`near_delegate_action_v1`,delegate:O},computeSigningDigestB64u:async()=>(await Mr({delegate:D.workerDelegate,workerCtx:e})).signingDigestB64u},A=await to(k,{signingAuthPlan:w,passkeyEd25519OperationStepUp:h,emailOtpEd25519StepUp:g}),j=A.preparedStepUp.confirmationAuthPayload;Ct(j.signingAuthPlan)&&$(a,S,{phase:V.STEP_06_AUTH_WARM_SESSION_CLAIMED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:{thresholdSessionId:j.signingAuthPlan.thresholdSessionId,expiresAtMs:j.signingAuthPlan.expiresAtMs,remainingUses:j.signingAuthPlan.remainingUses}});let M=await io(k,A,p,await et([{receiverId:D.confirmationDelegate.receiverId,actions:D.confirmationDelegate.actions.map(Qe)}])),N=performance.now();$(a,S,{phase:V.STEP_05_CONFIRMATION_DISPLAYED,status:`waiting_for_user`,message:`Opening confirmation prompt`,interaction:{kind:`transaction_confirmation`,overlay:`show`}});let F=await no(k,{touchConfirm:ne,signingAuthPlan:j.signingAuthPlan,nearPublicKeyStr:E.signingNearPublicKeyStr,onEvent:a,title:c,body:l,confirmationConfigOverride:o,request:{kind:`delegate`,delegate:D.confirmationDelegate,rpcCall:te}});W(String(u),`confirmation`,N),$(a,S,{phase:V.STEP_05_CONFIRMATION_APPROVED,status:`succeeded`,interaction:{kind:`transaction_confirmation`,overlay:`hide`}});let I=ro(k,A,F),ae=await Dt({signingSessionPlan:re,signingOperation:ie,commandKind:At.PreparePayload,execute:async()=>{$(a,S,{phase:V.STEP_08_SIGNER_PREPARE_STARTED,status:`running`,message:`Preparing NEAR signer`,interaction:{kind:`none`,overlay:`none`}});let e=await ao(k,I,M);return $(a,S,{phase:V.STEP_07_AUTHENTICATION_COMPLETE,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},authMethod:co(A.preparedStepUp)}),$(a,S,{phase:V.STEP_08_SIGNER_PREPARE_SUCCEEDED,status:`succeeded`,message:`NEAR signer ready`,interaction:{kind:`none`,overlay:`none`},data:{signer:`threshold-ed25519`,thresholdSessionId:e.thresholdSessionId,clientBaseSource:`yao_active_client`}}),e}}),oe=await so(k,async()=>{$(a,S,{phase:V.STEP_10_COMMIT_STARTED,status:`running`,interaction:{kind:`none`,overlay:`none`}});let t=await oo(k,ae,p),n=await vi({ctx:e,delegate:D.workerDelegate,signingDigestB64u:t.signingDigestB64u,signatureB64u:t.signatureB64u});return{type:P.SignDelegateActionSuccess,payload:{success:!0,hash:n.hash,signedDelegate:n.signedDelegate,logs:[`Delegate action signed through Router A/B normal signing`],error:void 0}}});return $(a,S,{phase:V.STEP_11_TRANSACTION_SIGNED,status:`succeeded`,interaction:{kind:`none`,overlay:`hide`}}),$(a,S,{phase:V.STEP_15_COMPLETED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:{operation:`sign_delegate`,hash:oe.payload.hash}}),{signedDelegate:oe.payload.signedDelegate,hash:oe.payload.hash,nearAccountId:L(S),logs:[...oe.payload.logs||[],...C]}}function fo(e){let t=I(Ra(e.providedDelegatePublicKey)),n=e.thresholdKeyMaterial;if(!n)throw Error(`Missing threshold key material for ${e.nearAccountId}`);let r=I(n.publicKey);if(!r)throw Error(`Missing threshold signing public key for ${e.nearAccountId}`);if(t&&t!==r&&e.warnings.push(`Delegate public key ${t} does not match threshold signer key; using ${r}`),!String(e.relayerUrl||``).trim())throw Error(`Missing relayerUrl (required for threshold-signer)`);let i=h(n.participants.map(e=>e.id));if(!i||i.length<2)throw Error(`Invalid threshold signing participantIds (expected >=2 participants, got [${(i||[]).join(`,`)}])`);return{signingNearPublicKeyStr:r,delegatePublicKeyStr:r,threshold:{thresholdKeyMaterial:n}}}async function po({ctx:e,commandSubject:t,nearAccount:n,signingSessionCoordinator:r,payload:i,forceFreshAuth:a,passkeyEd25519OperationStepUp:o,emailOtpEd25519StepUp:c,yaoSigningPreparation:l,yaoMaterialExecutor:u,selection:d,onEvent:f}){let p=d.kind===`authorized`?d.selectedLane.auth:d.candidate.auth,m=d.kind===`authorized`?d.selectedLane.identity.signer.signerSlot:d.candidate.signerSlot,h=i.operationId,g=performance.now(),_=e.relayerUrl,v=n.accountId,y=e.touchConfirm;if(!y)throw Error(`UiConfirm bridge not available for NEP-413 signing`);let{signingAuthPlan:b,signingSessionPlan:ee}=eo({selection:d,commandSubject:t,forceFreshAuth:a,preparation:l}),{thresholdKeyMaterial:te}=await Wn({materialExecutor:u,nearAccount:n,signerSlot:m,requestedSignerSlot:i.signerSlot,operationLabel:`NEP-413 signing`}),C=mo({nearAccountId:v,relayerUrl:_,thresholdKeyMaterial:te}),ne={operationId:h,operationFingerprint:U.signingOperationFingerprint(await Xn({nearAccountId:v,nearNetworkId:s(e.chains||_t.network.chains),relayerKeyId:C.threshold.thresholdKeyMaterial.relayerKeyId,signerPublicKey:C.threshold.thresholdKeyMaterial.publicKey,message:i.message,recipient:i.recipient,nonce:i.nonce,callbackUrl:i.callbackUrl})),intent:Te.TransactionSign},w={label:`NEP-413`,ctx:e,walletId:t.walletSession.walletId,nearAccountId:v,auth:p,signingSessionPlan:ee,signingOperation:ne,thresholdKeyMaterial:C.threshold.thresholdKeyMaterial,preparation:l,executor:u,intent:{kind:`nep413_message_v1`,message:i.message,recipient:i.recipient,nonce:i.nonce,callbackUrl:i.callbackUrl},computeSigningDigestB64u:async()=>(await jr({message:i.message,recipient:i.recipient,nonce:i.nonce,callbackUrl:i.callbackUrl,workerCtx:e})).signingDigestB64u},re=await to(w,{signingAuthPlan:b,passkeyEd25519OperationStepUp:o,emailOtpEd25519StepUp:c}),T=await io(w,re,r,await $e({nearAccountId:v,recipient:i.recipient,message:i.message}));W(String(h),`pre_confirmation`,g);let E=performance.now(),D=await no(w,{touchConfirm:y,signingAuthPlan:re.preparedStepUp.confirmationAuthPayload.signingAuthPlan,nearPublicKeyStr:C.nearPublicKey,onEvent:f,title:i.title,body:i.body,confirmationConfigOverride:i.confirmationConfigOverride,request:{kind:`nep413`,message:i.message,recipient:i.recipient}});W(String(h),`confirmation`,E);let O=performance.now(),ie=ro(w,re,D),k=await Dt({signingSessionPlan:ee,signingOperation:ne,commandKind:At.PreparePayload,execute:async()=>await ao(w,ie,T)}),A=await so(w,async()=>{let e=await oo(w,k,r);return{type:P.SignNep413MessageSuccess,payload:{accountId:v,publicKey:e.signerPublicKey,signature:x(S(e.signatureB64u)),state:i.state??void 0}}});return W(String(h),`confirmed_to_signed`,O),{success:!0,accountId:A.payload.accountId,publicKey:A.payload.publicKey,signature:A.payload.signature,state:A.payload.state}}function mo(e){let t=e.thresholdKeyMaterial;if(!t)throw Error(`Missing threshold key material for ${e.nearAccountId}`);let n=String(t.publicKey||``).trim();if(!n)throw Error(`Missing threshold signing public key for ${e.nearAccountId}`);if(!String(e.relayerUrl||``).trim())throw Error(`Missing relayerUrl (required for threshold-signer)`);let r=h(t.participants.map(e=>e.id));if(!r||r.length<2)throw Error(`Invalid threshold signing participantIds (expected >=2 participants, got [${(r||[]).join(`,`)}])`);return{nearPublicKey:n,threshold:{thresholdKeyMaterial:t}}}async function ho(e){if(e.chain!==`near`)throw Error(`[NearSigningFlow] invalid chain`);return e.kind===`transactionWithActions`?(go(e.payload),await ja(e.payload)):e.kind===`delegateAction`?(vo(e.payload),await uo(e.payload)):e.kind===`nep413`?(yo(e.payload),await po(e.payload)):e}function go(e){let t=String(e.nearAccount?.accountId||``).trim();if(!t)throw Error(`[NearSigningFlow] nearAccount is required`);if(String(e.rpcCall?.nearAccountId||``).trim()!==t)throw Error(`[NearSigningFlow] rpcCall.nearAccountId must match nearAccount.accountId`);let n=e.transactions;Array.isArray(n)&&kr(n),_o(e.transaction,0)}function _o(e,t){if(!String(e?.receiverId||``).trim())throw Error(`[NearSigningFlow] transactions[${t}].receiverId is required`);let n=Array.isArray(e?.actions)?e.actions:[];if(n.length===0)throw Error(`[NearSigningFlow] transactions[${t}].actions must be non-empty`);n.forEach(Ze)}function vo(e){let t=String(e.nearAccount?.accountId||``).trim();if(!t)throw Error(`[NearSigningFlow] nearAccount is required`);if(String(e.rpcCall?.nearAccountId||``).trim()!==t)throw Error(`[NearSigningFlow] rpcCall.nearAccountId must match nearAccount.accountId`);if(!String(e.delegate?.receiverId||``).trim())throw Error(`[NearSigningFlow] delegate.receiverId is required`);let n=Array.isArray(e.delegate?.actions)?e.delegate.actions:[];if(n.length===0)throw Error(`[NearSigningFlow] delegate.actions must be non-empty`);n.forEach(e=>Ze(nt(e)))}function yo(e){let t=String(e.nearAccount?.accountId||``).trim();if(!t)throw Error(`[NearSigningFlow] nearAccount is required for NEP-413`);if(String(e.payload?.accountId||``).trim()!==t)throw Error(`[NearSigningFlow] payload.accountId must match nearAccount.accountId`);if(!String(e.payload?.recipient||``).trim())throw Error(`[NearSigningFlow] recipient is required for NEP-413`);if(!String(e.payload?.message||``).trim())throw Error(`[NearSigningFlow] message is required for NEP-413`)}var bo=e({signDelegateAction:()=>ss,signNear:()=>wo});function xo(e){if(!(e instanceof ut))return;let t=e.authorizationDecision;if(!(!t||t.kind!==`step_up_required`||!(`request_id`in t.step_up)))return{kind:`step_up_required`,reason:t.reason,step_up:t.step_up}}function So(e){let t=xo(e),n=st(e);return t?ot(n??{kind:`exhausted`,source:`server_prepare`,detail:`Server requires owner operation step-up`}):n?.kind===`in_flight`?ot(n):null}async function Co(e){if(e.failure?.kind!==`expired`)return;let t=St({source:{kind:`ed25519`,laneIdentity:Be(e.lane)},expiresAtMs:e.expiresAtMs,detectedAtMs:Date.now()});if((await e.coordinator.invalidateExpiredWalletSession({state:t,source:be.serverRejection})).kind===`unavailable`)throw Error(`[SigningEngine][near] expired Wallet Session cleanup failed`)}async function wo(e,t){if(t.kind===`transactionWithActions`){let n=e.getSignerWorkerContext(),r=re(n.touchConfirm?.getContext().surfaceMeasurementBinding);return r&&(r.assertPending(),e={...e,getSignerWorkerContext:ds.bind(null,n,r.beforeSigning)}),await rs(e,t.args)}if(t.kind===`delegateAction`)return await ss(e,t.args);if(t.kind===`nep413`)return await us(e,t.args);throw Error(`[SigningEngine] unsupported near signing intent: ${String(t.kind||``)}`)}function To(){let e=te(32,`NEAR transaction signing operation IDs`);return U.signingOperation(`near-transaction-sign:${e}`)}function Eo(e){return e.state===`missing`?{state:e.state,curve:e.curve,chain:e.chain}:{authMethod:we(e.auth),walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,state:e.state,source:e.source||`unknown`,...e.authorizationState===`authorized`?{walletSessionId:e.authorization.operationCredential.walletSessionId,quotaId:e.authorization.session.quotaId}:{},thresholdSessionId:e.thresholdSessionId,remainingUses:e.remainingUses,expiresAtMs:e.expiresAtMs}}function Do(e){let t=e?.candidates.ed25519.near||[];return{generation:e?.generation||0,candidateCount:t.length,candidates:t.map(Eo)}}function Oo(e,t,n){try{e?.(xe({...n,flowId:`signing:near:${String(t)}:${n.phase}`,accountId:String(t)}))}catch{}}function ko(e){if(ze(e.signingLane.identity)!==ze(e.transactionLane.identity))throw Error(`[SigningEngine][near] prepared signing lane drifted from selected transaction lane`)}function Ao(e,t){let n=e.identity.signer,r=t.identity.signer;return String(n.account.wallet.walletId)===String(r.account.wallet.walletId)&&String(n.account.nearAccountId)===String(r.account.nearAccountId)&&String(n.nearEd25519SigningKeyId)===String(r.nearEd25519SigningKeyId)&&n.signerSlot===r.signerSlot&&De(e.auth)===De(t.auth)}function jo(e){let t=e.readiness.status;return t===`ready`?{status:`ready`,remainingUses:Math.max(0,Math.floor(Number(e.readiness.remainingUses)||0)),expiresAtMs:Math.max(0,Math.floor(Number(e.readiness.expiresAtMs)||0))}:t===`expired`||t===`exhausted`||t===`status_unknown`?t===`status_unknown`?{status:t,reason:`trusted wallet budget status is unavailable`}:{status:t}:t===`auth_unavailable`||t===`status_unavailable`?{status:t,reason:t}:{status:`status_unavailable`,reason:t}}function Mo(e){if(e.curve!==`ed25519`||e.keyKind!==`threshold_ed25519`)throw Error(`[SigningEngine][near] prepared signing lane is not Ed25519`);if(e.chainFamily!==`near`)throw Error(`[SigningEngine][near] prepared Ed25519 lane must target NEAR`);let t=String(e.thresholdSessionId||``).trim(),n=String(e.walletSessionId||``).trim(),r=String(e.quotaId||``).trim();if(!t||!n||!r)throw Error(`[SigningEngine][near] prepared Ed25519 lane is missing session identity`);return{...e,curve:`ed25519`,keyKind:`threshold_ed25519`,chainFamily:`near`,walletSessionId:U.walletSession(n),quotaId:U.walletSessionQuota(r),thresholdSessionId:U.thresholdEd25519Session(t)}}async function No(e){let t=e.preparedOperation,n=t.lane;Ye(`near`,n,{reason:`near_transaction_auth_planning`});let r=e.commandSubject.nearAccount.accountId,i={accountId:r,intent:Te.TransactionSign,curve:`ed25519`},a=t.signingSessionPlan;if(a.kind===H.NotReady)throw console.warn(`[SigningEngine][near][ed25519] transaction auth planning not ready`,{nearAccountId:r,authMethod:we(n.auth),reason:a.reason,readiness:t.readiness.status,walletSessionId:n.walletSessionId,quotaId:n.quotaId,thresholdSessionId:n.thresholdSessionId,retention:n.retention,remainingUses:t.remainingUses,expiresAtMs:t.expiresAtMs}),a.reason===`policy_blocked`?Error(`[SigningEngine] NEAR operation requires passkey authentication after Email OTP login`):Error(`[SigningEngine][near] signing session is not ready: ${a.reason}`);return{signingAuthPlan:Lt({plan:a,accountId:i.accountId,intent:i.intent,curve:i.curve,expiresAtMs:t.expiresAtMs,remainingUses:t.remainingUses}),signingLane:n}}function Po(e){let t=String(e.providedThresholdSessionId||``).trim(),n=String(e.identity.thresholdSessionId||``).trim();if(t&&t!==n)throw Error(`[SigningEngine][near] transaction thresholdSessionId must match prepared Ed25519 identity`);return n}function Fo(e){switch(e.authorization.kind){case`authorized`:return!1;case`authorization_required`:return!0;default:throw e.authorization,Error(`[SigningEngine][near] unsupported material authorization state`)}}function Io(e){if(e.authorization.kind!==`authorized`)throw Error(`[SigningEngine][near] reusable Wallet Session authorization is unavailable`);return e.authorization.authorization.status.expiresAtMs}async function Lo(e){let t={walletId:R(e.commandSubject.walletSession.walletId),nearAccountId:L(e.commandSubject.nearAccount.accountId)};return e.materialIdentity?await e.deps.prepareNearEd25519YaoMaterialBoundary({...t,materialIdentity:e.materialIdentity}):await e.deps.prepareNearEd25519YaoMaterialBoundary({...t,laneIdentity:e.selectedLane.identity,auth:e.selectedLane.auth})}function Ro(e,t){return U.signingOperation(e.createSigningSessionId(`near-${t}-operation`))}function zo(e){return{kind:`prepared_near_transaction_execution`,thresholdSessionId:e.thresholdSessionId,signingSessionPlan:e.preparedSigningSession.preparedOperation.signingSessionPlan,signingAuthPlan:e.preparedSigningSession.signingAuthPlan,signingLane:e.preparedSigningSession.signingLane,signingSessionCoordinator:e.signingSessionCoordinator,transactionOperation:e.preparedSigningSession.transactionOperation,passkeyEd25519OperationStepUp:e.passkeyEd25519OperationStepUp,emailOtpEd25519StepUp:e.emailOtpEd25519StepUp}}function Bo(e){return lt({walletId:String(e.walletId),curve:`ed25519`,walletSessionId:String(e.prepared.signingLane.walletSessionId),quotaId:String(e.prepared.signingLane.quotaId),projectionVersion:`server-owned`,authorityKey:De(e.prepared.signingLane.auth),targetKey:`near:${String(e.nearAccountId)}`})}function Vo(e){if(e.prepared.kind!==`authorized`)throw Error(`[SigningEngine][near] deferred Ed25519 material has no reusable session`);return lt({walletId:String(e.walletId),curve:`ed25519`,walletSessionId:String(e.prepared.selectedLane.walletSessionId),quotaId:String(e.prepared.selectedLane.quotaId),projectionVersion:`projection-unadmitted`,authorityKey:De(e.prepared.selectedLane.auth),targetKey:`near:${String(e.nearAccountId)}`})}function Ho(e){if(e.auth.kind!==`passkey`)return;let t=e.auth;return{prepare:async()=>{let n=e.signer,r=await Wo({authorityRef:Uo(e.preparation),walletId:n.account.wallet.walletId,rpId:t.rpId,credentialIdB64u:t.credentialIdB64u});return{thresholdSessionId:e.thresholdSessionId,authority:r}}}}function Uo(e){switch(e.hydration.kind){case`use_live_runtime`:case`rehydrate_material_activation`:case`reauthorize_public_anchor`:return e.hydration.authority;case`blocked`:throw Error(`[SigningEngine][near] blocked Passkey material has no authority`);default:throw e.hydration,Error(`[SigningEngine][near] unsupported Passkey material authority`)}}async function Wo(e){let t=_e({walletId:e.walletId,factor:{kind:`passkey`,credentialIdB64u:e.credentialIdB64u},verifier:{kind:`webauthn`,rpId:e.rpId},bindingId:e.authorityRef.walletAuthMethodId});if(!t)throw Error(`[SigningEngine][near] exact Passkey step-up authority is invalid`);let n=await z({authority:t});if(n.walletId!==e.authorityRef.walletId||n.walletAuthMethodId!==e.authorityRef.walletAuthMethodId||n.authorityDigest!==e.authorityRef.authorityDigest)throw Error(`[SigningEngine][near] exact Passkey step-up authority changed`);return t}function Go(e){if(e.auth.kind!==se.emailOtp||typeof e.deps.requestEmailOtpEd25519SigningChallenge!=`function`||!e.preparation.hydration.materialActivation)return;if(String(e.signer.account.wallet.walletId)!==String(e.commandSubject.walletSession.walletId)||String(e.signer.account.nearAccountId)!==String(e.commandSubject.nearAccount.accountId))throw Error(`[SigningEngine][near] Email OTP step-up lane changed subject`);let t=async t=>{let n=await e.deps.requestEmailOtpEd25519SigningChallenge({walletSession:e.commandSubject.walletSession,operationFingerprintDigest:t.operationFingerprintDigest});return Oo(e.onEvent,e.commandSubject.nearAccount.accountId,{phase:V.STEP_06_AUTH_EMAIL_OTP_INPUT_REQUIRED,status:`waiting_for_user`,interaction:{kind:`otp_input`,overlay:`show`},data:{emailHint:n.emailHint,demoOtpCode:rt(n.delivery)}}),n};return{prepare:t,resend:t}}async function Ko(e){let t=Wt({availableLanes:await es({deps:e.deps,commandSubject:e.commandSubject,authMethod:null}),intent:Zo({commandSubject:e.commandSubject,signerSlot:e.signerSlot,authSelectionPolicy:{kind:`any`},operationUsesNeeded:1})});if(!t.ok)throw Error(`[SigningEngine][near] signature-only signing requires exact Ed25519 material`);if(t.kind===`authorization_required`){let n=t.candidate,r=Ve({walletId:n.walletId,nearAccountId:n.nearAccountId,nearEd25519SigningKeyId:n.nearEd25519SigningKeyId,signerSlot:n.signerSlot}),i={kind:`near_ed25519_material_identity`,signer:r,auth:n.auth,thresholdSessionId:U.thresholdEd25519Session(n.thresholdSessionId)},a=await Lo({deps:e.deps,commandSubject:e.commandSubject,materialIdentity:i});return{kind:`authorization_required`,candidate:n,materialIdentity:i,forceFreshAuth:!0,passkeyEd25519OperationStepUp:Ho({auth:n.auth,signer:r,thresholdSessionId:i.thresholdSessionId,preparation:a.preparation})||null,emailOtpEd25519StepUp:Go({deps:e.deps,commandSubject:e.commandSubject,auth:n.auth,signer:r,preparation:a.preparation,onEvent:e.onEvent})||null,yaoSigningPreparation:a.preparation,yaoMaterialExecutor:a.executor}}let n=t.lane,r=await Lo({deps:e.deps,commandSubject:e.commandSubject,selectedLane:n});return{kind:`authorized`,selectedLane:n,forceFreshAuth:e.attempt.forceFreshAuth||Fo(r.preparation),passkeyEd25519OperationStepUp:Ho({auth:n.auth,signer:n.identity.signer,thresholdSessionId:n.identity.thresholdSessionId,preparation:r.preparation})||null,emailOtpEd25519StepUp:Go({deps:e.deps,commandSubject:e.commandSubject,auth:n.auth,signer:n.identity.signer,preparation:r.preparation,onEvent:e.onEvent})||null,yaoSigningPreparation:r.preparation,yaoMaterialExecutor:r.executor}}async function qo(e){let t=xt({materialActivation:e.materialActivation});return await e.deps.withThresholdEd25519CommitQueue({queueKey:t,nearAccountId:e.nearAccountId,enabled:!0,task:e.task})}async function Jo(e){let t=e.availableLanes,n=Wt({availableLanes:t,intent:Zo({commandSubject:e.commandSubject,signerSlot:e.input.signerSlot,authSelectionPolicy:{kind:`any`},operationUsesNeeded:Or(e.input.transaction)})});if(!n.ok||n.kind!==`authorization_required`)return null;let r=n.candidate,i=Ve({walletId:r.walletId,nearAccountId:r.nearAccountId,nearEd25519SigningKeyId:r.nearEd25519SigningKeyId,signerSlot:r.signerSlot}),a={kind:`near_ed25519_material_identity`,signer:i,auth:r.auth,thresholdSessionId:U.thresholdEd25519Session(r.thresholdSessionId)},o=await Lo({deps:e.deps,commandSubject:e.commandSubject,materialIdentity:a});return{candidate:r,preparation:o.preparation,executor:o.executor,passkeyEd25519OperationStepUp:Ho({auth:r.auth,signer:i,thresholdSessionId:a.thresholdSessionId,preparation:o.preparation})||null,emailOtpEd25519StepUp:Go({deps:e.deps,commandSubject:e.commandSubject,auth:r.auth,signer:i,preparation:o.preparation,onEvent:e.input.onEvent})||null}}function Yo(e){switch(e.hydration.kind){case`use_live_runtime`:case`rehydrate_material_activation`:return e.hydration.materialActivation;case`reauthorize_public_anchor`:throw Error(`[SigningEngine][near] retired public material cannot enter the material commit queue`);case`blocked`:throw Error(`[SigningEngine][near] blocked material cannot enter the material commit queue: ${e.hydration.reason}`)}throw e.hydration,Error(`[SigningEngine][near] unsupported material hydration plan`)}function Xo(e){let t=e.authSelectionPolicy||null;if(!t)return null;let n=Bt(zt(Vt(Zo({commandSubject:e.commandSubject,signerSlot:e.signerSlot,authSelectionPolicy:t,operationUsesNeeded:e.operationUsesNeeded})),{availableLanes:e.availableLanes}));if(n.tag===`LaneSelected`){if(n.lane.curve!==`ed25519`||n.availableLane.curve!==`ed25519`)throw Error(`[SigningEngine][near] Ed25519 selector returned a non-Ed25519 lane`);return n}if(n.failure.kind===`no_candidate`)return null;throw Error(`[SigningEngine][near] Ed25519 transaction lane selection failed: ${n.failure.kind}`)}function Zo(e){return{walletId:R(e.commandSubject.walletSession.walletId),curve:`ed25519`,chain:`near`,signerSelection:Qo({nearAccountId:e.commandSubject.nearAccount.accountId,signerSlot:e.signerSlot}),authSelectionPolicy:e.authSelectionPolicy,operationUsesNeeded:e.operationUsesNeeded}}function Qo(e){if(e.signerSlot===void 0)return{kind:`near_account`,nearAccountId:e.nearAccountId};let t=ye(e.signerSlot);if(t===null)throw Error(`[SigningEngine][near] signerSlot must be a positive safe integer`);return{kind:`signer_slot`,nearAccountId:e.nearAccountId,signerSlot:t}}function $o(e){return Xo({availableLanes:e.availableLanes,authSelectionPolicy:{kind:`any`},commandSubject:e.commandSubject,signerSlot:e.signerSlot,operationUsesNeeded:e.operationUsesNeeded})}async function es(e){let t=e.commandSubject.nearAccount.accountId,n=e.commandSubject.walletSession.walletId;if(typeof e.deps.readAvailableSigningLanesForSigning!=`function`)throw Error(`[SigningEngine][near] transaction signing requires available signing lanes reader`);let r=await e.deps.resolveOwnerLaneScope(n);return await e.deps.readAvailableSigningLanesForSigning({walletId:n,curve:`ed25519`,ownerScope:r,...e.authMethod?{authMethod:e.authMethod}:{}}).catch(e=>(console.warn(`[SigningEngine][near] available signing lanes read failed`,{nearAccountId:t,error:e instanceof Error?e.message:String(e||`unknown error`)}),null))}async function ts(e){let t=e.commandSubject.nearAccount.accountId,n=Math.max(1,Math.floor(Number(e.operationUsesNeeded)||1)),r=e.selectedLane.lane,i=Ka({commandSubject:e.commandSubject,selectedLane:r,preparation:e.preparation,forceFreshAuth:e.forceFreshAuth,requiredSignatureUses:n}),a=i.lane;ko({signingLane:a,transactionLane:e.selectedLane.lane});let o={readiness:i.coordinatorInput.readiness,expiresAtMs:i.coordinatorInput.expiresAtMs,remainingUses:i.coordinatorInput.remainingUses};r.auth.kind===`email_otp`&&o.readiness.status!==`ready`&&console.warn(`[SigningEngine][near][email-otp] Ed25519 pre-confirm readiness is not ready`,{nearAccountId:t,readiness:o.readiness.status,thresholdSessionId:r.thresholdSessionId,walletSessionId:r.walletSessionId,quotaId:r.quotaId,retention:a.retention,remainingUses:o.remainingUses,expiresAtMs:o.expiresAtMs,requiredSignatureUses:n}),Je(`near`,Xe({event:`pre_confirm_readiness_checked`,lane:a,readinessStatus:o.readiness.status,phase:`pre_confirm`}));let s=Gt(e.selectedLane,jo({readiness:o.readiness,expiresAtMs:o.expiresAtMs,remainingUses:o.remainingUses})),c=Ht(s),l=Mo(a),u={readiness:o.readiness,expiresAtMs:o.expiresAtMs,remainingUses:o.remainingUses};return{lane:a,transactionLane:e.selectedLane.lane,transactionIntent:e.selectedLane.intent,readiness:u,availableLanesGeneration:e.availableLanes?.generation||0,metadata:{transactionLane:e.selectedLane.lane,transactionOperation:c,transactionReadinessState:s,identity:l,availableLanesGeneration:e.availableLanes?.generation||0,readiness:u}}}async function ns(e){let t=e.commandSubject.nearAccount.accountId,n=Or(e.input.transaction),r=e.availableLanes,i=$o({commandSubject:e.commandSubject,availableLanes:r,signerSlot:e.input.signerSlot,operationUsesNeeded:n});if(!i)throw console.warn(`[SigningEngine][near][ed25519] exact transaction lane selection failed ${JSON.stringify({nearAccountId:t,signerSlot:e.input.signerSlot??null,requiredSignatureUses:n,availableLanes:Do(r)})}`),Error(`[SigningEngine][near] Ed25519 transaction signing requires an exact selected lane`);let a={kind:`account_class`,authMethod:we(i.lane.auth)},o=await Lo({deps:e.deps,commandSubject:e.commandSubject,selectedLane:i.lane});if(o.preparation.authorization.kind===`authorized`){let t=o.preparation.authorization.authorization;if(i.lane.walletSessionId!==t.operationCredential.walletSessionId||i.lane.quotaId!==t.session.quotaId){r=await es({deps:e.deps,commandSubject:e.commandSubject,authMethod:we(i.lane.auth)});let a=$o({commandSubject:e.commandSubject,availableLanes:r,signerSlot:e.input.signerSlot,operationUsesNeeded:n});if(!a||!Ao(i.lane,a.lane)||a.lane.walletSessionId!==t.operationCredential.walletSessionId||a.lane.quotaId!==t.session.quotaId)throw Error(`[SigningEngine][near] material restoration changed the Wallet Session without an exact refreshed lane`);i=a}}let s=e.forceFreshAuth===!0||Fo(o.preparation),c=await Ut({intent:Zo({commandSubject:e.commandSubject,signerSlot:e.input.signerSlot,authSelectionPolicy:a,operationUsesNeeded:n}),coordinator:e.signingSessionCoordinator,forceFreshAuth:s,sensitiveOperationPolicy:e.input.sensitivePolicy||ce.inheritSessionPolicy,onPlannerTrace:e=>qe(`near`,e),lifecycleAdapter:{prepare:async()=>{let t=await ts({deps:e.deps,commandSubject:e.commandSubject,signingSessionCoordinator:e.signingSessionCoordinator,availableLanes:r,selectedLane:i,preparation:o.preparation,forceFreshAuth:s,operationUsesNeeded:n});return{...t,metadata:t.metadata}}}}),l=c.thresholdOperation,u=c.transactionOperation,d=l.lane,f=u.lane,p=l.metadata.identity,{signingAuthPlan:m}=await No({commandSubject:e.commandSubject,preparedOperation:l});return{preparation:o.preparation,executor:o.executor,signingAuthPlan:m,signingLane:d,transactionLane:f,identity:p,thresholdSessionId:U.thresholdEd25519Session(Po({providedThresholdSessionId:e.input.thresholdSessionId,identity:p})),availableLanesGeneration:l.availableLanesGeneration,preparedOperation:l,transactionOperation:u}}async function rs(e,t){let n=performance.now();await e.touchConfirm.openTransactionPreparationModal({chain:`near`,walletLabel:String(t.commandSubject.nearAccount.accountId),txSigningRequests:[t.transaction],model:Un({txSigningRequests:[t.transaction],signerAccount:String(t.commandSubject.nearAccount.accountId),title:t.title,subtitle:t.body}),confirmationConfigOverride:t.confirmationConfigOverride});try{let r=To();return W(String(r),`preparation_modal`,n),await is(e,t,{signingOperationState:Ot({operationId:r})})}finally{e.touchConfirm.closeTransactionPreparationModal()}}async function is(e,t,n){let r=t.commandSubject.nearAccount,i=L(r.accountId),a={signerSlot:t.signerSlot,confirmationConfigOverride:t.confirmationConfigOverride,title:t.title,body:t.body,onEvent:t.onEvent},o=n.signingOperationState.operationId,s=n.signingSessionCoordinator||e.signingSessionCoordinator,c=performance.now(),l=await es({deps:e,commandSubject:t.commandSubject,authMethod:null}),u=await Jo({deps:e,availableLanes:l,input:t,commandSubject:t.commandSubject,operationId:o});if(W(String(o),`authorization_probe`,c),u){let o=e.getSignerWorkerContext();return await qo({deps:e,nearAccountId:i,materialActivation:Yo(u.preparation),task:async()=>await ho({chain:`near`,kind:`transactionWithActions`,payload:{ctx:o,commandSubject:t.commandSubject,nearAccount:r,transaction:t.transaction,rpcCall:t.rpcCall,signerSlot:a.signerSlot,confirmationConfigOverride:a.confirmationConfigOverride,title:a.title,body:a.body,onEvent:a.onEvent,signingOperationState:n.signingOperationState,signingSessionCoordinator:s,selection:{kind:`authorization_required`,candidate:u.candidate},passkeyEd25519OperationStepUp:u.passkeyEd25519OperationStepUp||void 0,emailOtpEd25519StepUp:u.emailOtpEd25519StepUp||void 0,sensitivePolicy:t.sensitivePolicy,yaoSigningPreparation:u.preparation,yaoMaterialExecutor:u.executor}})})}let d=performance.now(),f=await ns({deps:e,availableLanes:l,input:t,commandSubject:t.commandSubject,signingSessionCoordinator:s,operationId:o,forceFreshAuth:n.forceFreshAuth===!0});W(String(o),`lane_preparation`,d);let p=performance.now(),m=f.preparation.authorization,h=f.signingAuthPlan,g=f.signingLane,_=f.transactionLane,v=f.thresholdSessionId;ko({signingLane:g,transactionLane:_});try{return await qo({deps:e,nearAccountId:i,materialActivation:Yo(f.preparation),task:async()=>{let i=e.getSignerWorkerContext(),c=f,l=Ho({auth:_.auth,signer:_.identity.signer,thresholdSessionId:v,preparation:c.preparation}),u=Go({deps:e,commandSubject:t.commandSubject,auth:_.auth,signer:_.identity.signer,preparation:c.preparation,onEvent:a.onEvent}),d=zo({preparedSigningSession:f,thresholdSessionId:v,signingSessionCoordinator:s,passkeyEd25519OperationStepUp:l||null,emailOtpEd25519StepUp:u||null}),m={thresholdSessionId:d.thresholdSessionId,signingSessionPlan:d.signingSessionPlan,signingAuthPlan:d.signingAuthPlan,signingLane:d.signingLane},h={ctx:i,commandSubject:t.commandSubject,nearAccount:r,transaction:t.transaction,rpcCall:t.rpcCall,signerSlot:a.signerSlot,confirmationConfigOverride:a.confirmationConfigOverride,title:a.title,body:a.body,onEvent:a.onEvent,signingOperationState:n.signingOperationState,signingSessionCoordinator:d.signingSessionCoordinator,selection:{kind:`authorized`,selectedLane:_},transactionOperation:d.transactionOperation,ed25519SigningBoundary:m,yaoSigningPreparation:c.preparation,yaoMaterialExecutor:c.executor,...d.passkeyEd25519OperationStepUp?{passkeyEd25519OperationStepUp:d.passkeyEd25519OperationStepUp}:{},...d.emailOtpEd25519StepUp?{emailOtpEd25519StepUp:d.emailOtpEd25519StepUp}:{}};return W(String(o),`execution_setup`,p),await ho({chain:`near`,kind:`transactionWithActions`,payload:h})}})}catch(r){let o=h.kind===Et.PasskeyReauth||h.kind===Et.EmailOtpReauth,c=xo(r),l=So(r),u=dt(r),d=c?.kind===`step_up_required`;if(!n.retryingFreshAuth&&!o&&m.kind===`authorized`&&(d||l)){if(l?.kind===`wait_and_retry_admission`)return await ct(l.retryAfterMs),await is(e,t,{forceFreshAuth:!1,signingOperationState:n.signingOperationState,retryingFreshAuth:n.retryingFreshAuth,signingSessionCoordinator:s});await Co({failure:u,coordinator:s,lane:f.transactionLane,expiresAtMs:m.authorization.status.expiresAtMs});let r=_.auth.kind===`email_otp`,o=c?.kind===`step_up_required`?c.reason:void 0,d=l?l.reason===`stale_projection`?`wallet_signing_budget_stale_projection`:`wallet_signing_budget_exhausted`:o===`wallet_session_missing`?`threshold_session_missing`:`threshold_session_expired`;if(Oo(a.onEvent,i,{phase:r?V.STEP_06_AUTH_EMAIL_OTP_CHALLENGE_STARTED:V.STEP_09_THRESHOLD_SESSION_RECONNECT_STARTED,status:`running`,message:r?`Signing session needs reauthorization; requesting Email OTP`:`Signing session needs reauthorization; requesting passkey`,interaction:{kind:`none`,overlay:`none`},data:{chain:`near`,reason:d}}),l?.kind===`request_fresh_step_up`){let r=Bo({walletId:t.commandSubject.walletSession.walletId,nearAccountId:i,prepared:f});return await s.runWalletSessionQuotaAdmissionRetry({queueKey:r,refresh:async()=>await is(e,t,{forceFreshAuth:!0,signingOperationState:n.signingOperationState,retryingFreshAuth:!0,signingSessionCoordinator:s}),retryAfterRefresh:async()=>await is(e,t,{forceFreshAuth:!1,signingOperationState:n.signingOperationState,retryingFreshAuth:n.retryingFreshAuth,signingSessionCoordinator:s})})}return await is(e,t,{forceFreshAuth:!0,signingOperationState:n.signingOperationState,retryingFreshAuth:!0,signingSessionCoordinator:s})}throw r}}async function as(e){return await ho({chain:`near`,kind:`delegateAction`,payload:{ctx:e.deps.getSignerWorkerContext(),commandSubject:e.input.commandSubject,nearAccount:e.input.commandSubject.nearAccount,delegate:e.input.delegate,rpcCall:e.normalizedRpcCall,signingSessionCoordinator:e.deps.signingSessionCoordinator,signerSlot:e.input.signerSlot,confirmationConfigOverride:e.input.confirmationConfigOverride,title:e.input.title,body:e.input.body,onEvent:e.input.onEvent,operationId:e.operationId,forceFreshAuth:e.prepared.forceFreshAuth,selection:e.prepared.kind===`authorized`?{kind:`authorized`,selectedLane:e.prepared.selectedLane}:{kind:`authorization_required`,candidate:e.prepared.candidate},passkeyEd25519OperationStepUp:e.prepared.passkeyEd25519OperationStepUp,emailOtpEd25519StepUp:e.prepared.emailOtpEd25519StepUp,yaoSigningPreparation:e.prepared.yaoSigningPreparation,yaoMaterialExecutor:e.prepared.yaoMaterialExecutor}})}async function os(e){let t=L(e.input.commandSubject.nearAccount.accountId),n=await Ko({deps:e.deps,commandSubject:e.input.commandSubject,signerSlot:e.input.signerSlot,operationId:e.operationId,onEvent:e.input.onEvent,attempt:e.attempt}),r={nearRpcUrl:e.input.rpcCall.nearRpcUrl||e.deps.nearRpcUrl,nearAccountId:t};try{return await qo({deps:e.deps,nearAccountId:t,materialActivation:Yo(n.yaoSigningPreparation),task:as.bind(void 0,{deps:e.deps,input:e.input,operationId:e.operationId,prepared:n,normalizedRpcCall:r})})}catch(r){let i=xo(r),a=So(r);if(e.attempt.kind===`initial`&&a){if(a.kind===`wait_and_retry_admission`)return await ct(a.retryAfterMs),await os(e);let r=Vo({walletId:e.input.commandSubject.walletSession.walletId,nearAccountId:t,prepared:n});return await e.deps.signingSessionCoordinator.runWalletSessionQuotaAdmissionRetry({queueKey:r,refresh:async()=>await os({...e,attempt:{kind:`fresh_auth_retry`,forceFreshAuth:!0}}),retryAfterRefresh:async()=>await os({...e,attempt:{kind:`initial`,forceFreshAuth:!1}})})}let o=dt(r);if(e.attempt.kind===`initial`&&!n.forceFreshAuth&&i)return await Co({failure:o,coordinator:e.deps.signingSessionCoordinator,lane:n.selectedLane,expiresAtMs:Io(n.yaoSigningPreparation)}),await os({deps:e.deps,input:e.input,operationId:e.operationId,attempt:{kind:`fresh_auth_retry`,forceFreshAuth:!0}});throw r}}async function ss(e,t){try{return await os({deps:e,input:t,operationId:Ro(e,`delegate`),attempt:{kind:`initial`,forceFreshAuth:!1}})}catch(e){throw console.error(`[SigningEngine][delegate] failed`,e),e}}async function cs(e){let t=e.input.commandSubject.nearAccount;return await ho({chain:`near`,kind:`nep413`,payload:{ctx:e.deps.getSignerWorkerContext(),commandSubject:e.input.commandSubject,nearAccount:t,signingSessionCoordinator:e.deps.signingSessionCoordinator,onEvent:e.input.onEvent,forceFreshAuth:e.prepared.forceFreshAuth,selection:e.prepared.kind===`authorized`?{kind:`authorized`,selectedLane:e.prepared.selectedLane}:{kind:`authorization_required`,candidate:e.prepared.candidate},passkeyEd25519OperationStepUp:e.prepared.passkeyEd25519OperationStepUp,emailOtpEd25519StepUp:e.prepared.emailOtpEd25519StepUp,yaoSigningPreparation:e.prepared.yaoSigningPreparation,yaoMaterialExecutor:e.prepared.yaoMaterialExecutor,payload:{message:e.input.message,recipient:e.input.recipient,nonce:e.input.nonce,callbackUrl:e.input.callbackUrl,state:e.input.state,accountId:t.accountId,signerSlot:e.input.signerSlot,title:e.input.title,body:e.input.body,confirmationConfigOverride:e.input.confirmationConfigOverride,operationId:e.operationId}}})}async function ls(e){let t=L(e.input.commandSubject.nearAccount.accountId),n=await Ko({deps:e.deps,commandSubject:e.input.commandSubject,signerSlot:e.input.signerSlot,operationId:e.operationId,onEvent:e.input.onEvent,attempt:e.attempt});try{return await qo({deps:e.deps,nearAccountId:t,materialActivation:Yo(n.yaoSigningPreparation),task:cs.bind(void 0,{deps:e.deps,input:e.input,operationId:e.operationId,prepared:n})})}catch(t){let r=xo(t),i=dt(t);if(e.attempt.kind===`initial`&&!n.forceFreshAuth&&r!==void 0)return await Co({failure:i,coordinator:e.deps.signingSessionCoordinator,lane:n.selectedLane,expiresAtMs:Io(n.yaoSigningPreparation)}),await ls({deps:e.deps,input:e.input,operationId:e.operationId,attempt:{kind:`fresh_auth_retry`,forceFreshAuth:!0}});throw t}}async function us(e,t){try{return await ls({deps:e,input:t,operationId:Ro(e,`nep413`),attempt:{kind:`initial`,forceFreshAuth:!1}})}catch(e){return console.error(`SigningEngine: NEP-413 signing error:`,e),{success:!1,error:e instanceof Error?e.message:String(e||`Unknown error`)}}}function ds(e,t){return{...e,beforeSigning:t}}export{$t as _,ri as a,Fn as c,xn as d,bn as f,tn as g,dn as h,ua as i,Pn as l,cn as m,bo as n,Vn as o,sn as p,Ha as r,Hn as s,wo as t,Cn as u};
@@ -1 +1 @@
1
- import{a as e,r as t}from"./evmCryptoWasm-DeobzyP-.js";import{t as n}from"./bytes-DZRW2UDg.js";var r=class{chain=`evm`;workerCtx;constructor(e){this.workerCtx=e}async buildIntent(r){if(r.chain!==`evm`)throw Error(`[EvmAdapter] invalid chain`);if(r.kind!==`eip1559`)throw Error(`[EvmAdapter] unsupported request kind`);let i=await t(r.tx,this.workerCtx),a=n(i);return{chain:`evm`,uiModel:{kind:`eip1559`,tx:r.tx},signRequests:[{kind:`digest`,algorithm:`secp256k1`,digest32:i,label:`evm:eip1559:sender`}],finalize:async t=>({chain:`evm`,kind:`eip1559`,txHashHex:a,rawTxHex:n(await e({tx:r.tx,signature65:t[0],workerCtx:this.workerCtx}))})}}};function i(e){switch(e.kind){case`eip1559`:case`tempoTransaction`:return 1;default:return e}}export{r as n,i as t};
1
+ import{a as e,r as t}from"./evmCryptoWasm-S2gL5ht4.js";import{t as n}from"./bytes-Cv07P0Pu.js";var r=class{chain=`evm`;workerCtx;constructor(e){this.workerCtx=e}async buildIntent(r){if(r.chain!==`evm`)throw Error(`[EvmAdapter] invalid chain`);if(r.kind!==`eip1559`)throw Error(`[EvmAdapter] unsupported request kind`);let i=await t(r.tx,this.workerCtx),a=n(i);return{chain:`evm`,uiModel:{kind:`eip1559`,tx:r.tx},signRequests:[{kind:`digest`,algorithm:`secp256k1`,digest32:i,label:`evm:eip1559:sender`}],finalize:async t=>({chain:`evm`,kind:`eip1559`,txHashHex:a,rawTxHex:n(await e({tx:r.tx,signature65:t[0],workerCtx:this.workerCtx}))})}}};function i(e){switch(e.kind){case`eip1559`:case`tempoTransaction`:return 1;default:return e}}export{r as n,i as t};
@@ -1 +1 @@
1
- import{O as e}from"./domainIds-C3fUa33Q.js";import{c as t,u as n}from"./chains-CPmd4s9f.js";import{i as r}from"./base64-BmKR3UqU.js";function i(t){let n=e(t);if(!n.ok)throw Error(n.error.message);return n.value}const a=`alpine.amber.azure.brisk.bright.calm.cedar.cobalt.copper.coral.crimson.crystal.dawn.deep.dusky.evergreen.fair.fern.frost.gentle.glacier.glowing.golden.harbor.humble.indigo.ivory.jade.keen.lunar.maple.misty.mossy.noble.ocean.opal.polar.quiet.rapid.redwood.river.royal.sage.scarlet.serene.silver.solar.steady.stone.swift.tranquil.twilight.umber.verdant.vibrant.violet.vivid.warm.wild.willow.winter.woodland.young.zephyr`.split(`.`),o=`anchor.arbor.atlas.aurora.badger.beacon.bloom.brook.canyon.cascade.comet.cove.crane.delta.dune.eagle.ember.falcon.feather.fjord.forest.galaxy.garden.giant.grove.harvest.heron.horizon.island.lagoon.lantern.lark.meadow.meteor.monolith.nebula.oasis.orchid.otter.peak.pebble.phoenix.pine.prism.quartz.raven.reef.ridge.sable.sequoia.shore.solstice.sparrow.star.summit.tempo.thunder.tundra.valley.vermillion.voyage.wave.wren.zenith`.split(`.`);function s(){return i([l(a),l(o),u(6)].join(`-`))}function c(e){if(!Number.isSafeInteger(e)||e<=0||e>256)throw Error(`Invalid server-allocated wallet random bound`);let t=256-256%e,n=new Uint8Array(1);for(;;)if(crypto.getRandomValues(n),n[0]<t)return n[0]%e}function l(e){return e[c(e.length)]}function u(e){let t=``;for(let n=0;n<e;n+=1)t+=`23456789abcdefghjkmnpqrstuvwxyz`[c(31)];return t}function d(e){let t=String(e||``).trim();if(!t)throw Error(`nearEd25519SigningKeyId is required`);return t}function f(e){if(typeof e!=`string`)throw Error(`nearEd25519SigningKeyId must be a string`);return d(e)}async function p(e){return d(`ed25519ks_${r(await n(t({kind:e.kind,walletId:String(e.walletId),signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,signerSlot:e.signerSlot,participantIds:[...e.participantIds],keyPurpose:e.keyPurpose,keyVersion:e.keyVersion,derivationVersion:e.derivationVersion})))}`)}export{i as a,f as i,s as n,d as r,p as t};
1
+ import{O as e}from"./domainIds-C3fUa33Q.js";import{c as t,u as n}from"./chains-CPmd4s9f.js";import{i as r}from"./base64-BmKR3UqU.js";function i(t){let n=e(t);if(!n.ok)throw Error(n.error.message);return n.value}const a=`alpine.amber.azure.brisk.bright.calm.cedar.cobalt.copper.coral.crimson.crystal.dawn.deep.dusky.evergreen.fair.fern.frost.gentle.glacier.glowing.golden.harbor.humble.indigo.ivory.jade.keen.lunar.maple.misty.mossy.noble.ocean.opal.polar.quiet.rapid.redwood.river.royal.sage.scarlet.serene.silver.solar.steady.stone.swift.tranquil.twilight.umber.verdant.vibrant.violet.vivid.warm.wild.willow.winter.woodland.young.zephyr`.split(`.`),o=`anchor.arbor.atlas.aurora.badger.beacon.bloom.brook.canyon.cascade.comet.cove.crane.delta.dune.eagle.ember.falcon.feather.fjord.forest.galaxy.garden.giant.grove.harvest.heron.horizon.island.lagoon.lantern.lark.meadow.meteor.monolith.nebula.oasis.orchid.otter.peak.pebble.phoenix.pine.prism.quartz.raven.reef.ridge.sable.sequoia.shore.solstice.sparrow.star.summit.tempo.thunder.tundra.valley.vermillion.voyage.wave.wren.zenith`.split(`.`);function s(){return i([l(a),l(o),u(6)].join(`-`))}function c(e){if(!Number.isSafeInteger(e)||e<=0||e>256)throw Error(`Invalid server-allocated wallet random bound`);let t=256-256%e,n=new Uint8Array(1);for(;;)if(crypto.getRandomValues(n),n[0]<t)return n[0]%e}function l(e){return e[c(e.length)]}function u(e){let t=``;for(let n=0;n<e;n+=1)t+=`23456789abcdefghjkmnpqrstuvwxyz`[c(31)];return t}function d(e){let t=String(e||``).trim();if(!t)throw Error(`nearEd25519SigningKeyId is required`);return t}function f(e){if(typeof e!=`string`)throw Error(`nearEd25519SigningKeyId must be a string`);return d(e)}async function p(e){return d(`ed25519ks_${r(await n(t({kind:e.kind,walletId:String(e.walletId),signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,signerSlot:e.signerSlot,participantIds:[...e.participantIds],keyPurpose:e.keyPurpose,keyVersion:e.keyVersion,derivationVersion:e.derivationVersion})))}`)}function m(e,t={}){let n=Number(e),r=t.min,i=Number.isSafeInteger(r)&&Number(r)>=1?Number(r):1;return!Number.isSafeInteger(n)||n<i?null:n}export{f as a,d as i,p as n,i as o,s as r,m as t};
@@ -0,0 +1,2 @@
1
+ import{c as e,t}from"./chains-CPmd4s9f.js";import{i as n}from"./base64-BmKR3UqU.js";import{o as r,r as i}from"./canonicalPrimitives-D_1HyEuJ.js";import{a,c as o,r as s}from"./ecdsaChainTarget-svSlzhze.js";import{m as c,o as l}from"./sdkSentEvents-BzMVO1AR.js";import{t as u}from"./jsonRpc-B5zMY6lE.js";import{r as d}from"./types-BrEW276O.js";import{i as f}from"./helpers-BXezXx19.js";import{r as p}from"./operationFingerprint-DRPONhBD.js";import{i as m}from"./trace-CWTzEALZ.js";import{t as h}from"./bytes-Cv07P0Pu.js";import{n as g,r as _,t as v}from"./normalization-CpLZcL2f.js";import{a as y,i as b,n as x,r as S}from"./types-BNUuaUtl.js";import{T as C,a as w,g as T,i as ee,o as te,r as ne,s as re,t as ie,v as ae,w as oe,y as se}from"./requireStepUpAuth-DsNLml1i.js";const ce=/^0x[0-9a-f]{40}$/,E=Object.freeze({"0x06fdde03":`name()`,"0x095ea7b3":`approve(address,uint256)`,"0x18160ddd":`totalSupply()`,"0x23b872dd":`transferFrom(address,address,uint256)`,"0x2e1a7d4d":`withdraw(uint256)`,"0x313ce567":`decimals()`,"0x42842e0e":`safeTransferFrom(address,address,uint256)`,"0x47e1da2a":`executeBatch(address[],uint256[],bytes[])`,"0x6352211e":`ownerOf(uint256)`,"0x70a08231":`balanceOf(address)`,"0x081812fc":`getApproved(uint256)`,"0x95d89b41":`symbol()`,"0xa22cb465":`setApprovalForAll(address,bool)`,"0xa9059cbb":`transfer(address,uint256)`,"0xb61d27f6":`execute(address,uint256,bytes)`,"0xb88d4fde":`safeTransferFrom(address,address,uint256,bytes)`,"0xd0e30db0":`deposit()`,"0xd505accf":`permit(address,address,uint256,uint256,uint8,bytes32,bytes32)`,"0xdd62ed3e":`allowance(address,address)`,"0xe985e9c5":`isApprovedForAll(address,address)`,"0xe7897444":`setUserToken(address)`,"0xf2fde38b":`transferOwnership(address)`}),D=Object.freeze({"0xbb442b54c85efba2d7b81ea52990ad638cdba483":Object.freeze({"0xa4136862":`setGreeting(string)`,"0xef690cc0":`greeting()`,"0x867ae9d4":`dripTo(address,address[])`}),"0xeb7ab5a6f761072c96147a54b8a15f012e836691":Object.freeze({"0xa4136862":`setGreeting(string)`,"0xcfae3217":`greet()`})});function O(e){let t=String(e||``).trim().toLowerCase();if(ce.test(t))return t}function k(e){return v(e)}function A(e,t){let n=_(e);if(!n)return;let r=O(t);if(r){let e=D[r];if(e&&e[n])return e[n]}return E[n]}function j(e,t){let n=A(e,t);if(n){let e=n.indexOf(`(`),t=(e>0?n.slice(0,e):n).trim();if(t)return`${t}()`}let r=_(e);if(r)return`function ${r}`}function le(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function M(e){let t=g(e,{lowercase:!0});if(t===`0x`)return`data: 0x`;let n=t.slice(2);if(!n)return`data: 0x`;if(n.length<=8)return`data: 0x${n}`;let r=n.slice(0,8),i=le(n.slice(8),64);return[`data: 0x${r}`,...i].join(`
2
+ `)}function N(e,t){let n=e/t,r=e%t;if(r===0n)return n.toString();let i=r*100n/t;if(i===0n)return n.toString();let a=i.toString().padStart(2,`0`).replace(/0+$/,``);return a?`${n.toString()}.${a}`:n.toString()}function P(e){return e>=1000000n?`${N(e,1000000n)}mil`:e>=1000n?`${N(e,1000n)}k`:e.toString()}function F(e){try{return JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,2)}catch{return String(e)}}function I(e,t,n){let r=String(t??``).trim();if(r)return{label:e,value:r,...typeof n==`string`&&n.trim()?{copyValue:n}:{}}}function L(e){let t=g(e.dataHex);if(t!==`0x`&&!(!Array.isArray(e.abi)||e.abi.length===0))return{dataHex:t,abi:e.abi}}function R(e){let t=j(e.selector,e.to),n=!!e.to&&e.dataHex!==`0x`,r=P(e.tx.gasLimit),i=e.to?`Transaction to contract`:`Contract Deployment`,a=I(`Data`,M(e.dataHex),e.dataHex);a&&(a.renderAs=`file-content`,a.hideLabel=!0,a.hideChevron=!0);let o=[a,I(`Value (wei)`,e.valueWei)].filter(Boolean),s;if(n){let n={id:`evm.eip1559.call`,kind:`generic.contractCall`,label:`Calling ${t||`contract function`} using ${r} gas`,to:e.to,value:e.valueWei,selector:e.selector,fields:o},i=L({dataHex:e.dataHex,abi:e.tx.abi});i&&(n.abiDecodeHint=i),s=[n]}return{id:`evm.eip1559`,kind:`generic.contractCall`,label:i,to:e.to,value:e.valueWei,selector:e.selector,...s?{children:s}:{}}}function z(e){let t=e.request;if(t.kind!==`eip1559`)return{chain:`evm`,intentDigest:e.intentDigest,signerAccount:e.signerAccount,title:e.title||`EVM Transaction`,subtitle:e.subtitle,operations:[{id:`evm.raw`,kind:`raw.fallback`,label:`Unsupported EVM Payload`,raw:F(t)}],raw:{format:`json`,value:F(t)}};let n=t.tx,r=n.to==null?void 0:String(n.to).toLowerCase(),i=n.value.toString(),a=g(String(n.data||`0x`)),o=R({to:r,valueWei:i,tx:n,dataHex:a,selector:k(a)}),s=n.value>0n?n.value:void 0;return{chain:`evm`,chainId:n.chainId,intentDigest:e.intentDigest,signerAccount:e.signerAccount,title:e.title||`EVM Transaction`,subtitle:e.subtitle,operations:[o],...s==null?{}:{totals:{nativeValue:s.toString(),nativeSymbol:`wei`}}}}function B(e,t){let n=typeof e==`string`?e.trim():``;if(!/^0x[0-9a-fA-F]+$/.test(n))throw Error(`Invalid ${t} quantity`);return BigInt(n)}function V(e,t,n){let r=e[t];if(r!==void 0){if(r===null)return null;if(typeof r!=`string`)throw Error(`Invalid ${n} result: ${t}`);return r}}function H(e,t,n){let r=V(e,t,n);if(typeof r==`string`&&!/^0x[0-9a-fA-F]+$/.test(r))throw Error(`Invalid ${n} result: ${t}`);return r}function U(e,t,n){let r=V(e,t,n);if(typeof r==`string`&&!/^0x[0-9a-fA-F]{40}$/.test(r))throw Error(`Invalid ${n} result: ${t}`);return r}function W(e,t,n){let r=V(e,t,n);if(typeof r==`string`&&!/^0x(?:[0-9a-fA-F]{2})*$/.test(r))throw Error(`Invalid ${n} result: ${t}`);return r}function ue(e){if(e===null)return null;if(typeof e!=`object`||Array.isArray(e))throw Error(`Invalid eth_getTransactionReceipt result`);let t=e,n=W(t,`transactionHash`,`eth_getTransactionReceipt`);if(typeof n!=`string`||!/^0x[0-9a-fA-F]{64}$/.test(n))throw Error(`Invalid eth_getTransactionReceipt result: transactionHash`);let r=U(t,`from`,`eth_getTransactionReceipt`),i=H(t,`blockNumber`,`eth_getTransactionReceipt`),a=H(t,`status`,`eth_getTransactionReceipt`);if(typeof i!=`string`||typeof a!=`string`)throw Error(`Invalid eth_getTransactionReceipt result: missing blockNumber or status`);let o=H(t,`gasUsed`,`eth_getTransactionReceipt`),s=H(t,`effectiveGasPrice`,`eth_getTransactionReceipt`),c=H(t,`gasPrice`,`eth_getTransactionReceipt`);return{transactionHash:n,...r===void 0?{}:{from:r},blockNumber:i,status:a,...o===void 0?{}:{gasUsed:o},...s===void 0?{}:{effectiveGasPrice:s},...c===void 0?{}:{gasPrice:c}}}function de(e){if(e===null)return null;if(typeof e!=`object`||Array.isArray(e))throw Error(`Invalid eth_getBlockByNumber result`);let t=e,n=H(t,`number`,`eth_getBlockByNumber`),r=H(t,`baseFeePerGas`,`eth_getBlockByNumber`);return{...n===void 0?{}:{number:n},...r===void 0?{}:{baseFeePerGas:r}}}function fe(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Invalid eth_getTransactionByHash result: calls`);let t=e,n=U(t,`to`,`eth_getTransactionByHash`),r=W(t,`input`,`eth_getTransactionByHash`),i=W(t,`data`,`eth_getTransactionByHash`),a=H(t,`value`,`eth_getTransactionByHash`);return{...n===void 0?{}:{to:n},...r===void 0?{}:{input:r},...i===void 0?{}:{data:i},...a===void 0?{}:{value:a}}}function pe(e){if(e===null)return null;if(typeof e!=`object`||Array.isArray(e))throw Error(`Invalid eth_getTransactionByHash result`);let t=e,n=H(t,`blockNumber`,`eth_getTransactionByHash`),r=U(t,`from`,`eth_getTransactionByHash`),i=H(t,`nonce`,`eth_getTransactionByHash`),a=U(t,`to`,`eth_getTransactionByHash`),o=W(t,`input`,`eth_getTransactionByHash`),s=H(t,`value`,`eth_getTransactionByHash`),c=t.calls;if(c!=null&&!Array.isArray(c))throw Error(`Invalid eth_getTransactionByHash result: calls`);let l=Array.isArray(c)?c.map(fe):c;return{...n===void 0?{}:{blockNumber:n},...r===void 0?{}:{from:r},...i===void 0?{}:{nonce:i},...a===void 0?{}:{to:a},...o===void 0?{}:{input:o},...s===void 0?{}:{value:s},...l===void 0?{}:{calls:l}}}function me(e){let t=e?.reason;if(t instanceof Error)return t;let n=String(t||``).trim()||`Operation aborted`,r=Error(n);return r.code=`aborted`,r}function G(e){if(e?.aborted)throw me(e)}async function he(e,t){G(t);let n=Math.max(0,Math.floor(Number(e)||0));await new Promise((e,r)=>{let i=null,a=()=>{i&&=(globalThis.clearTimeout(i),null),t?.removeEventListener(`abort`,o)},o=()=>{a(),r(me(t))};i=globalThis.setTimeout(()=>{a(),e()},n),t?.addEventListener(`abort`,o,{once:!0})})}function ge(e){let t=e/1000000000n,n=e%1000000000n;if(n===0n)return t.toString();let r=n.toString().padStart(9,`0`).replace(/0+$/,``);return`${t.toString()}.${r}`}function K(e){let t=String(e||``).trim();return/^0x[0-9a-fA-F]{40}$/.test(t)?t:null}function q(e){let t=String(e||``).trim();return/^0x[0-9a-fA-F]+$/.test(t)?t:null}function _e(e){let t=e.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean).map(e=>new URL(e).toString());if(t.length===0)throw Error(`RPC URL is not configured`);return Array.from(new Set(t))}function J(e){let t=_e(String(e.rpcUrl||``).trim()),n=e.fetchImpl||fetch.bind(globalThis),r=Math.max(1,Math.floor(Number(e.requestTimeoutMs??15e3)||0)),i=async e=>{let i=Math.max(1,Math.floor(Number(e.timeoutMs??r)||0)),a=Date.now(),o=()=>Math.max(1,i-Math.max(0,Date.now()-a)),s=new AbortController,c=async e=>{let t=o(),n=null,r=!1;try{return await new Promise((a,o)=>{n=setTimeout(()=>{if(!r){r=!0;try{e.onTimeout?.()}catch{}o(Error(`${e.label} timed out after ${i}ms`))}},t),e.promise.then(e=>{r||(r=!0,n&&clearTimeout(n),a(e))},e=>{r||(r=!0,n&&clearTimeout(n),o(e))})})}finally{n&&clearTimeout(n)}},l=JSON.stringify({jsonrpc:`2.0`,id:Date.now(),method:e.method,params:e.params}),d=null,f=null;for(let[r,i]of t.entries()){let a=r<t.length-1;s=new AbortController;try{let t=await c({promise:n(i,{method:`POST`,headers:{"content-type":`application/json`},body:l,signal:s.signal}),label:`${e.method} request`,onTimeout:()=>{s.abort()}});if((t.status===429||t.status>=500)&&a){await t.body?.cancel();continue}d=t;break}catch(e){if(f=e,a)continue}}if(!d)throw f?.name===`AbortError`?Error(`${e.method} request timed out after ${i}ms`):f instanceof Error?f:Error(`RPC request failed`);if(d.status===429)throw Error(`RPC throttled; retry shortly`);if(!d.ok)throw Error(`RPC HTTP ${d.status}`);let p=u(await c({promise:d.json(),label:`${e.method} response`,onTimeout:()=>{s.abort();try{d.body?.cancel()}catch{}}}).catch(t=>{throw t?.name===`AbortError`?Error(`${e.method} response timed out after ${i}ms`):t}));if(!p.ok)throw Error(`Invalid ${e.method} response: ${p.error}`);let m=p.value;if(m.kind===`failure`){let t=String(m.error.message||`${e.method} failed`).trim(),n=m.error.code!==void 0&&m.error.code!==null?String(m.error.code).trim():``,r=m.error.data===void 0?``:(()=>{try{return JSON.stringify(m.error.data)}catch{return String(m.error.data)}})(),i=[t];n&&i.push(`code=${n}`),r&&i.push(`data=${r}`);let a=Error(i.join(` | `));throw n&&(a.code=n),m.error.data!==void 0&&(a.data=m.error.data),a.rpcMethod=e.method,a}return m.result},a=async e=>{let t=ue(await i({method:`eth_getTransactionReceipt`,params:[e.txHash],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}}));if(t&&t.transactionHash.toLowerCase()!==e.txHash.toLowerCase())throw Error(`Receipt transactionHash does not match the requested transaction`);return t},o=async e=>de(await i({method:`eth_getBlockByNumber`,params:[e.blockTag,!1],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}})),s=async e=>pe(await i({method:`eth_getTransactionByHash`,params:[e.txHash],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}})),c=async e=>B(await i({method:`eth_getTransactionCount`,params:[e.address,e.blockTag??`latest`],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}}),`eth_getTransactionCount`);return{request:i,getTransactionReceipt:a,getBlockByNumber:o,getTransactionByHash:s,getTransactionCount:c,waitForTransactionReceipt:async e=>{let t=Math.max(1,Math.floor(Number(e.timeoutMs??9e4)||0)),n=Math.max(1,Math.floor(Number(e.pollIntervalMs??1250)||0)),i=Math.max(1,Math.floor(Number(e.confirmations??1)||0)),l=Date.now()+t,u=Date.now(),d=Math.min(3e4,Math.max(n*3,Math.floor(t/3))),f=Math.min(15e3,Math.max(n*3,Math.floor(t/6))),p=Math.min(1e4,Math.max(n*3,Math.floor(t/5))),m=null,h=null,g=null,_=null,v=0,y=!1,b=0,x=0,S=0;for(K(e.transactionSenderAddress)&&(g=e.transactionSenderAddress),typeof e.nonceHint==`bigint`&&e.nonceHint>=0n&&(_=e.nonceHint);Date.now()<l;){G(e.signal);let C=null;try{let t=Math.max(1,l-Date.now());C=await a({txHash:e.txHash,timeoutMs:Math.min(r,t)}),m=null}catch(e){m=e instanceof Error?e.message:String(e)}if(C){let t=B(C.blockNumber,`receipt.blockNumber`);if(i<=1)return C;let a=Math.max(1,l-Date.now()),s=q((await o({blockTag:`latest`,timeoutMs:Math.min(r,a)}).catch(()=>null))?.number);if(s){let e=B(s,`latest.number`);if(e>=t&&e-t+1n>=BigInt(i))return C}await he(n,e.signal);continue}let w;if(g===null||_===null||!y){let t=Math.max(1,l-Date.now()),n=await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null);w=n;let i=K(n?.from),a=q(n?.nonce);if(i&&a){let e=B(a,`tx.nonce`);g===null&&(g=i),_===null&&(_=e),g.toLowerCase()===i.toLowerCase()&&_===e&&(y=!0,b=0,x=0)}}if(g&&_!==null){let t=g,n=_,m=e=>{let r=K(e?.from),i=q(e?.nonce);if(!r||!i||r.toLowerCase()!==t.toLowerCase())return!1;try{return B(i,`tx.nonce`)===n}catch{return!1}},h=Math.max(1,l-Date.now()),C=await c({address:g,blockTag:`latest`,timeoutMs:Math.min(r,h)}).catch(()=>null);if(C!==null&&C>_){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;w=n;let u=q(n?.blockNumber);if(m(n)&&(y=!0),u)v=0,b=0,x=0;else if(m(n))v=0,b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t<=_?(v=0,x=0):(v+=1,x=0)}if(v>=2){let t=Math.max(1,l-Date.now()),n=await a({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null);if(n&&typeof n.blockNumber==`string`){let e=q(n.blockNumber);if(e){let t=B(e,`receipt.blockNumber`);if(i<=1)return n;let a=Math.max(1,l-Date.now()),s=q((await o({blockTag:`latest`,timeoutMs:Math.min(r,a)}).catch(()=>null))?.number);if(s){let e=B(s,`latest.number`);if(e>=t&&e-t+1n>=BigInt(i))return n}v=0}}if(v>=2){let e=Error(`Transaction dropped or replaced: account nonce advanced past tx nonce (${_.toString()} -> ${C.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`dropped`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_nonce_advanced`,e}}}else if(C!==null&&C<=_){if(v=0,C<_&&!y){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;if(w=n,m(n))y=!0,S=0,b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t<=_?(S+=1,b=0,x=0):t!==null&&t>_?(S=0,b=0,x+=1):(S=0,b=0,x=0)}let i=Date.now()-u;if(S>=2&&i>=p){let e=Error(`Transaction dropped or queued behind a nonce gap: tx hash never became visible while account nonce stayed behind tx nonce (${C.toString()} < ${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`dropped`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_nonce_gap`,e}if(x>=2&&i>=f){let e=Error(`Transaction dropped or replaced: tx hash never became visible and pending nonce moved ahead of tx nonce (${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`replaced`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}}if(y){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;if(w=n,m(n))b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t<=_?x=0:t!==null&&t>_?x+=1:x=0}let i=Date.now()-u;if(x>=2&&i>=f){let e=Error(`Transaction dropped or replaced: tx hash disappeared and pending nonce moved ahead of tx nonce (${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`replaced`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}}if(!y){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;if(w=n,m(n))y=!0,b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t===_&&C===_?(b+=1,x=0):t!==null&&t>_?(b=0,x+=1):(b=0,x=0)}let i=Date.now()-u;if(b>=3&&i>=d){let e=Error(`Transaction dropped or replaced: tx hash never became visible to RPC pending pool at nonce ${_.toString()}.`);throw e.code=`tx_dropped_or_replaced`,e.reason=`dropped`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}if(x>=2&&i>=f){let e=Error(`Transaction dropped or replaced: tx hash never became visible and pending nonce moved ahead of tx nonce (${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`replaced`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}}}}if(typeof e.maxFeePerGasHint==`bigint`){let n=Math.max(1,l-Date.now()),i=await o({blockTag:`latest`,timeoutMs:Math.min(r,n)}).catch(()=>null),a=String(i?.baseFeePerGas||``).trim();if(/^0x[0-9a-fA-F]+$/.test(a)){let n=null;try{n=B(a,`baseFeePerGas`)}catch{n=null}if(n!==null&&n>e.maxFeePerGasHint){h===null&&(h=Date.now());let r=Math.min(3e4,Math.floor(t/3));if(Date.now()-h>=r){let t=Error(`Transaction pending due to underpriced fees: maxFeePerGas=${ge(e.maxFeePerGasHint)} gwei, latest baseFee=${ge(n)} gwei. Retry to re-sign with refreshed fee caps.`);throw t.finalizationBranch=`underpriced_fee`,t}}else h=null}}await he(n,e.signal)}G(e.signal);let C=m?`; last RPC error: ${m}`:``,w=Error(`Timed out waiting for tx receipt after ${t}ms${C}`);throw w.finalizationBranch=`timeout`,w}}}function ve(e){let t=o(e.subjectId),n=X(e.leaseId,`leaseId`),r=X(e.operationId,`operationId`),i=X(e.operationFingerprint,`operationFingerprint`),a={chainTarget:e.chainTarget,subjectId:t,sender:Re(e.sender),nonce:Y(e.nonce,`nonce`).toString(),leaseId:n,operationId:r,operationFingerprint:i};return e.nonceKey!=null&&(a.nonceKey=Y(e.nonceKey,`nonceKey`).toString()),Number.isSafeInteger(e.reservedAtMs)&&(a.reservedAtMs=e.reservedAtMs),Number.isSafeInteger(e.expiresAtMs)&&(a.expiresAtMs=e.expiresAtMs),a}function ye(e){if(!e||typeof e!=`object`)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: object`);let t=Ie(e),n=o(e.subjectId??e.walletId),r=Re(e.sender),i=Y(e.nonce,`nonce`),a=e.nonceKey==null?void 0:Y(e.nonceKey,`nonceKey`),s=X(e.leaseId,`leaseId`),c=X(e.operationId,`operationId`),l=X(e.operationFingerprint,`operationFingerprint`),u=Be(e.reservedAtMs),d=Be(e.expiresAtMs);return{chainTarget:t,subjectId:n,sender:r,...a==null?{}:{nonceKey:a},nonce:i,leaseId:s,operationId:c,operationFingerprint:l,...u==null?{}:{reservedAtMs:u},...d==null?{}:{expiresAtMs:d}}}function be(e){let t={chainTarget:s({chain:e.chain,chainId:e.chainId,networkSlug:e.networkKey}),subjectId:o(e.walletId),sender:Re(e.sender)};return e.nonceKey!=null&&(t.nonceKey=Y(e.nonceKey,`nonceKey`)),t}const xe=15e3;function Se(e){return{async fetchChainNonce(t){let n=Fe(t);return await e.fetchChainNonce(n)},async fetchBroadcastTransactionStatus(t){let n=Fe(t);return await e.fetchBroadcastTransactionStatus({...n,txHash:ze(t.txHash)})}}}function Ce(e){let t=e.fetchImpl||fetch.bind(globalThis);return Se({fetchChainNonce:async n=>await Ee({chains:e.chains,input:n,fetchImpl:t}),fetchBroadcastTransactionStatus:async n=>await we({chains:e.chains,input:n,fetchImpl:t})})}async function we(e){let t=De(e.chains,e.input),n=await Te({rpcUrl:t,method:`eth_getTransactionReceipt`,params:[e.input.txHash],fetchImpl:e.fetchImpl});if(n&&typeof n==`object`)return{kind:`finalized`};let r=await Te({rpcUrl:t,method:`eth_getTransactionByHash`,params:[e.input.txHash],fetchImpl:e.fetchImpl});return r&&typeof r==`object`?{kind:`pending`}:{kind:`missing`}}async function Te(e){return await J({rpcUrl:e.rpcUrl,fetchImpl:e.fetchImpl,requestTimeoutMs:xe}).request({method:e.method,params:e.params})}async function Ee(e){return Ve(await J({rpcUrl:De(e.chains,e.input),fetchImpl:e.fetchImpl,requestTimeoutMs:xe}).request({method:`eth_getTransactionCount`,params:[e.input.sender,`pending`]}),`eth_getTransactionCount`)}function De(e,n){let r=n.chain,i=n.chainId,a=String(n.networkKey||``).trim().toLowerCase(),o=e=>e.filter(e=>{let t=Me(e);return typeof t==`number`&&t===i}),s=e=>e.filter(e=>String(e.network||``).trim().toLowerCase()===a),c=e.filter(e=>Oe(e));if(!c.length)throw Error(`[evmNonceBackend] missing RPC config for nonce-enabled chains`);let l=s(c);if(l.length===1){let e=l[0];return je({chain:e,requestedChain:r,networkKey:n.networkKey,chainId:i}),Ae({chain:e,chainId:i,networkKey:n.networkKey}),Pe(e.rpcUrl,e.network)}if(l.length>1){let e=o(l).filter(e=>ke(e,r));if(e.length===1){let t=e[0];return Pe(t.rpcUrl,t.network)}throw Error(`[evmNonceBackend] ambiguous networkKey mapping for ${n.networkKey} (chainId=${String(i)})`)}let u=o(c),d=u.filter(e=>ke(e,r));if(d.length===1){let e=d[0];return Pe(e.rpcUrl,e.network)}if(d.length>1){let e=d.map(e=>String(e.network||``).trim()).join(`, `);throw Error(`[evmNonceBackend] ambiguous chainId routing for ${r} chainId=${String(i)} across [${e}]`)}if(u.length>0){let e=Array.from(new Set(u.map(e=>t(e.network))));throw Error(`[evmNonceBackend] chainId=${String(i)} is configured for [${e.join(`, `)}] but is incompatible with ${r} routing`)}throw Error(`[evmNonceBackend] unable to resolve RPC URL for ${r} ${n.networkKey} (chainId=${String(i)})`)}function Oe(e){let n=t(e.network);return n===`evm`||n===`tempo`}function ke(e,n){let r=t(e.network);return n===`tempo`?r===`tempo`:r===`evm`||r===`tempo`}function Ae(e){let t=Me(e.chain);if(typeof t!=`number`)throw Error(`[evmNonceBackend] configured network ${e.chain.network} is missing numeric chainId`);if(t!==e.chainId)throw Error(`[evmNonceBackend] chainId mismatch for network ${e.networkKey}: expected ${t}, received ${String(e.chainId)}`)}function je(e){if(ke(e.chain,e.requestedChain))return;let n=t(e.chain.network);throw Error(`[evmNonceBackend] network ${e.networkKey} (family=${n}) is incompatible with ${e.requestedChain} request (chainId=${String(e.chainId)})`)}function Me(e){return Ne(e)?e.chainId:void 0}function Ne(e){return t(e.network)!==`near`}function Pe(e,t){let n=String(e||``).trim();if(!n)throw Error(`[evmNonceBackend] missing rpcUrl for ${t}`);return n}function Fe(e){let t=e.chainTarget.kind;if(t!==`evm`&&t!==`tempo`)throw Error(`[evmNonceBackend] invalid chain '${String(t)}'`);let n=String(e.chainTarget.networkSlug||``).trim().toLowerCase();if(!n)throw Error(`[evmNonceBackend] networkKey is required`);return{chain:t,networkKey:n,chainId:e.chainTarget.chainId,sender:Le(e.sender,`sender`),nonceKey:t===`tempo`?Y(e.nonceKey,`nonceKey`):0n,walletId:String(o(e.subjectId))}}function Ie(e){if(e.chainTarget)return a(e.chainTarget);let t=e.chain;if(t!==`evm`&&t!==`tempo`)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: chain`);let n=String(e.networkKey||``).trim();if(!n)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: networkKey`);let r=e.chainId;if(typeof r!=`number`||!Number.isSafeInteger(r)||r<=0)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: chainId`);return s({chain:t,chainId:r,networkSlug:n})}function Le(e,t){let n=String(e||``).trim().toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(n))throw Error(`[evmNonceBackend] invalid ${t}: expected 20-byte 0x-prefixed hex`);return n}function Re(e){return Le(e,`sender`)}function ze(e){let t=String(e||``).trim().toLowerCase();if(!/^0x[0-9a-f]{64}$/.test(t))throw Error(`[evmNonceBackend] invalid txHash: expected 32-byte 0x-prefixed hex`);return t}function Y(e,t){try{let n=BigInt(e);if(n<0n)throw Error(`[evmNonceBackend] ${t} must be non-negative`);return n}catch{throw Error(`[evmNonceBackend] invalid ${t}: expected bigint-compatible value`)}}function X(e,t){let n=String(e||``).trim();if(!n)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: ${t}`);return n}function Be(e){if(e==null)return;let t=Math.floor(Number(e));return Number.isSafeInteger(t)?t:void 0}function Ve(e,t){let n=String(e||``).trim();if(!/^0x[0-9a-fA-F]+$/.test(n))throw Error(`[evmNonceBackend] invalid ${t} result: expected hex quantity`);return BigInt(n)}function He(e){return e.kind===`required`?e.authPlan.signingAuthPlan:void 0}async function Ue(e){let t=He(e.thresholdEcdsaStepUp),n=e.thresholdEcdsaStepUp.kind===`required`?e.thresholdEcdsaStepUp.runtime:void 0,r=n?.reusableAuthorization??{kind:`active`},i=We({signingAuthPlan:t,hasEmailOtpSigning:!!n?.emailOtpSigning,hasThresholdEcdsaRequest:e.hasThresholdEcdsaRequest,needsWebAuthn:e.needsWebAuthn,reusableAuthorization:r});if(!i)throw Error(`[chains] ${e.explicitAuthErrorLabel} signing requires explicit auth input`);let a=await ie({operation:{kind:`evm_family_threshold_ecdsa_step_up`,usesNeeded:Math.max(1,Math.floor(Number(e.requiredSignatureUses)||1))},selectedLane:i,policy:Ge(t,r),methods:{...n?.emailOtpSigning?{emailOtp:{method:`email_otp`,prepareChallenge:n.emailOtpSigning.prepare,...n.emailOtpSigning.resend?{resendChallenge:n.emailOtpSigning.resend}:{},complete:async()=>void 0}}:{},passkey:{method:`passkey`,prepare:async()=>({}),complete:async()=>void 0}}});if(a.method===`warm_session`){if(!t||!Ke(t))throw Error(`[chains] warm-session step-up requires an existing warm-session plan`);return{kind:`warm_session`,confirmationAuthPayload:{signingAuthPlan:t}}}if(a.method===`email_otp`){let e=qe({signingAuthPlan:t,prepared:a});if(!S(e))throw Error(`[chains] Email OTP step-up requires an Email OTP signing auth plan`);return{kind:`email_otp`,confirmationAuthPayload:{signingAuthPlan:e},emailOtpPrompt:a.prompt}}let o=qe({signingAuthPlan:t,prepared:a});if(!b(o))throw Error(`[chains] passkey step-up requires a passkey signing auth plan`);return{kind:`passkey`,confirmationAuthPayload:{signingAuthPlan:o}}}function We(e){return e.reusableAuthorization.kind===`absent`?{authMethod:e.reusableAuthorization.requiredFactor}:e.signingAuthPlan?S(e.signingAuthPlan)?{authMethod:`email_otp`}:b(e.signingAuthPlan)?{authMethod:`passkey`}:{authMethod:e.signingAuthPlan.method}:e.hasEmailOtpSigning?{authMethod:`email_otp`}:!e.hasThresholdEcdsaRequest&&e.needsWebAuthn?{authMethod:`passkey`}:null}function Ge(e,t){if(t.kind===`absent`)return{kind:`use_selected_lane`};if(e&&y(e)){if(e.curve!==`ecdsa`)throw Error(`[chains] EVM-family warm-session step-up requires an ECDSA auth plan`);return{kind:`reuse_warm_session`,authorization:{method:e.method,curve:`ecdsa`,materialActivation:e.materialActivation,authorization:e.authorization,expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}}}return{kind:`use_selected_lane`}}function Ke(e){return y(e)&&e.curve===`ecdsa`}function qe(e){if(e.signingAuthPlan)return e.prepared.method===`email_otp`?{kind:`emailOtpReauth`,method:`email_otp`,emailOtpPrompt:e.prepared.prompt}:e.prepared.method===`passkey`&&!b(e.signingAuthPlan)?{kind:`passkeyReauth`,method:`passkey`}:e.signingAuthPlan;if(e.prepared.method===`email_otp`)return{kind:`emailOtpReauth`,method:`email_otp`,emailOtpPrompt:e.prepared.prompt};if(e.prepared.method===`passkey`)return{kind:`passkeyReauth`,method:`passkey`};throw Error(`[chains] warm-session step-up requires an existing signing auth plan`)}function Je(e){return{kind:`warm_session`,signingAuthPlan:e.signingAuthPlan,materialActivation:e.signingAuthPlan.materialActivation,authorization:e.signingAuthPlan.authorization,expiresAtMs:e.signingAuthPlan.expiresAtMs,remainingUses:e.signingAuthPlan.remainingUses}}function Ye(e){return{kind:`email_otp`,signingAuthPlan:e.signingAuthPlan,challengeId:$e(e.confirmation.emailOtpChallengeId,e.prompt,`EVM-family step-up authorization`),otpCode:Qe(e.confirmation.otpCode),...e.prompt.emailHint?{emailHint:e.prompt.emailHint}:{}}}function Xe(e){if(!e.confirmation.credential)throw Error(`[chains] missing WebAuthn credential for EVM-family step-up authorization`);return{kind:`passkey`,signingAuthPlan:e.signingAuthPlan,credential:f(e.confirmation.credential)}}function Ze(e){if(e.prepared.kind===`active_wallet_authority`)throw Error(`[chains] active Wallet Authority confirmation has no threshold step-up`);return e.prepared.kind===`warm_session`?Je({signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan}):e.prepared.kind===`email_otp`?Ye({signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan,prompt:e.prepared.emailOtpPrompt,confirmation:e.confirmation}):Xe({signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan,confirmation:e.confirmation})}function Qe(e){let t=String(e||``).trim();if(!/^\d{6}$/.test(t))throw Error(`[chains] missing Email OTP code from touchConfirm`);return t}function $e(e,t,n){let r=String(e||t.challengeId||``).trim();if(!r)throw Error(`[chains] missing Email OTP challenge id for ${n}`);return r}const et=`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA`,tt=`pending-intent-digest`,Z=new Map;function nt(e){return String(e||``).trim()}function rt(e){let t=nt(e.requestId);t&&Z.set(t,e.preparation)}function it(e){let t=nt(e);if(!t)return;let n=Z.get(t);if(n)return Z.delete(t),n}function at(e){let t=nt(e);t&&Z.delete(t)}var Q=class extends Error{superseded;constructor(e){super(`[chains] threshold ECDSA material was superseded (${e.supersessionKind}): prepared ${String(e.preparedMaterialActivation.activationId)}, current ${String(e.currentMaterialActivation.activationId)}`),this.name=`EvmFamilyEcdsaMaterialSupersededError`,this.superseded=e}};function ot(e){return e instanceof Q}function st(e){return e.curve===`ed25519`?{curve:e.curve,thresholdSessionId:e.thresholdSessionId,expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}:{curve:e.curve,materialActivationId:String(e.materialActivation.activationId),expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}}function ct(e){switch(e.kind){case`material_for_step_up`:return e.material;case`material_from_canonical_capability`:case`material_from_step_up`:return e.material.signerSession}}function lt(e){return typeof e?.signReady==`function`}async function ut(t){let a=String(t.operationFingerprint||``).trim();if(!a)throw Error(`[chains] exact EVM signing operation fingerprint digest is required`);return{laneDigest:p(d.signingOperationFingerprint(a)),intentDigest:i(n(t.signingDigest32)),displayDigest:await r(e(t.displayModel))}}function dt(e){return{intentDigest:e.intentDigestHex,challengeB64u:e.challengeB64u,displayModel:e.displayModel}}function ft(e,t){return String(e.laneDigest)===String(t.laneDigest)&&String(e.intentDigest)===String(t.intentDigest)&&String(e.displayDigest)===String(t.displayDigest)}function pt(e){if(e.prepared.operation!==e.operation)throw Error(`[chains] prepared ECDSA operation step-up does not match the operation being signed`);if(!ft(e.prepared.operationDigests,e.operationDigests))throw Error(`[chains] prepared ECDSA operation step-up digest drift`)}function mt(e){if(!e.prepared)throw Error(`[chains] passkey ECDSA step-up requires an operation prepared before confirmation`);let t=String(e.prepared.prepared.challengeB64u||``).trim();if(!t||t!==String(e.challengeB64u||``).trim())throw Error(`[chains] passkey ECDSA step-up challenge does not match the prepared operation`);return t}function $(e){throw Error(`[chains] unsupported EVM-family signing authorization: ${String(e)}`)}async function ht(e){switch(e.authorization.kind){case`active_wallet_authority`:return{kind:`active_wallet_authority`,confirmationAuthPayload:{signingAuthPlan:e.authorization.confirmationAuthPlan}};case`owner`:return await Ue({thresholdEcdsaStepUp:e.thresholdEcdsaStepUp,hasThresholdEcdsaRequest:e.hasThresholdEcdsaRequest,needsWebAuthn:e.needsWebAuthn,requiredSignatureUses:e.requiredSignatureUses,explicitAuthErrorLabel:e.explicitAuthErrorLabel});default:return $(e.authorization)}}function gt(e){if(e.input.authorization.kind!==`active_wallet_authority`)throw Error(`[chains] pending active Wallet Authority confirmation requires exact authorization`);return{ctx:{touchConfirm:e.input.touchConfirm},sessionId:e.sessionId,chain:e.config.targetKind,kind:`intentDigest`,signingSubject:{kind:`evm_wallet`,walletId:e.input.walletId},signingAuthPlan:e.input.authorization.confirmationAuthPlan,challengeB64u:et,intentDigest:tt,displayModel:e.config.buildDisplayModel({request:e.input.request,signerAccount:e.input.walletId,title:e.config.title,subtitle:e.config.body}),title:e.config.title,body:e.config.body,confirmationConfigOverride:e.input.confirmationConfigOverride}}async function _t(e){let t=String(e.operation.intent.operationId);m(t,`material_queue`,e.queuedAt);let n=performance.now(),r=await e.resolveMaterial(e.request,e.operation,e.operationDigests);return m(t,`material_authorization`,n),await e.engine.signReady(e.request,r.material,e.operation,e.operationDigests)}async function vt(e){let{config:t,input:r}=e,i=w(`intent`),a=`signing:${t.flowName}:${r.walletId}:${i}`,o=r.request.senderSignatureAlgorithm===`secp256k1`,s=r.thresholdEcdsaStepUp,u=s.kind===`not_required`?void 0:s.runtime,d=He(s),p=r.authorization.kind===`owner`&&s.kind===`required`&&(s.runtime.reusableAuthorization.kind===`absent`||!y(s.authPlan.signingAuthPlan));if(o&&!d)switch(r.authorization.kind){case`owner`:throw Error(`[chains] threshold ECDSA transaction signing requires an explicit auth plan`);case`active_wallet_authority`:break;default:$(r.authorization)}let g=d??(r.authorization.kind===`active_wallet_authority`?r.authorization.confirmationAuthPlan:null),_=g?re(g):`passkey`,v=e=>{try{r.onEvent?.(c({...e,flowId:a,walletId:r.walletId,authMethod:_}))}catch{}},b=new Set,S=e=>{if(!b.has(e)){b.add(e);try{u?.onAuthSideEffectStarted?.(e)}catch{}}},ie=e=>{e.phase===`auth.passkey.prompt.started`&&S(`passkey_reauth`);let t=te(e,_);t&&v(t)},ce=async(e,t)=>{let n=async e=>{await t[e]?.()};if(!r.signingSessionPlan){await C({commands:e,execute:n});return}let i=await oe({steps:ae(se({sessionPlan:r.signingSessionPlan,operation:r.signingOperation||null,commands:e})),executor:{execute:async e=>{await n(e.kind)}},onTransition:r.onSigningOperationTransition});if(!i.ok)throw i.error;if(i.finalState.kind===`failed`)throw Error(i.finalState.reason)},E=t.webauthn.kind===`supported`&&t.webauthn.requestNeedsWebAuthn(r.request),D=r.request,O=null,k=!1,A=!1,j=s.kind===`required`?s.operation:null,le=async()=>{if(j)return j;throw Error(`[chains] threshold ECDSA transaction signing requires an operation`)},M=async()=>{if(!(k||!O||!r.releaseNonceReservation)){k=!0;try{await r.releaseNonceReservation(O)}catch{}}},N=async()=>{if(!O)return;let e=String(O.leaseId||``).trim(),n=String(O.operationId||``).trim(),i=String(O.operationFingerprint||``).trim();if(!e||!n||!i)throw Error(`[chains] managed ${t.nonceErrorLabel} nonce reservation is missing lease metadata`);await r.ctx.nonceCoordinator.markSigned({leaseId:e,operationId:n,operationFingerprint:i})},P=null,F=null,I=(async()=>{if(r.prepareRequestWithManagedNonce){let e=await r.prepareRequestWithManagedNonce();D=e.request,O=e.reservation}let e=await t.buildIntent({workerCtx:r.workerCtx,request:D});t.webauthn.kind===`supported`&&t.webauthn.validateIntent(e);let i=e.signRequests[0];if(!i)throw Error(`[chains] signing intent has no sign requests`);let a=ee(i),o=h(a),s=t.buildDisplayModel({request:D,intentDigest:o,signerAccount:r.walletId,title:t.title,subtitle:t.body}),c=n(a);if(p&&i.algorithm===`secp256k1`&&u&&j&&r.resolveEcdsaSigningMaterialPlan){let e=await ut({operationFingerprint:r.signingOperation?.operationFingerprint,signingDigest32:ee(i),displayModel:s}),t=await r.resolveEcdsaSigningMaterialPlan();switch(t.kind){case`ready`:P=t.value;break;case`authorization_required`:P=t.requirement;break;case`superseded`:throw new Q(t.replacement);case`failed`:throw Error(`[chains] threshold ECDSA material is unavailable: ${t.failure.reason}`)}let n=P;if(!n)throw Error(`[chains] ECDSA preparation did not produce signing material`);let a=await u.operationStepUp.prepare({operation:j,operationDigests:e,material:ct(n)});F={prepared:a,operation:j,operationDigests:e},c=a.challengeB64u}return{intent:e,challengeB64u:c,intentDigestHex:o,displayModel:s}})();r.authorization.kind===`active_wallet_authority`&&rt({requestId:i,preparation:I.then(dt)});let L=null,R=null,z=null,B=null,V=!1,H=null,U=async(e,t,n)=>{if(r.resolveEcdsaSigningMaterialPlan){let e=await r.resolveEcdsaSigningMaterialPlan();switch(e.kind){case`ready`:P=e.value;break;case`authorization_required`:P=e.requirement;break;case`superseded`:throw new Q(e.replacement);case`failed`:throw Error(`[chains] threshold ECDSA material is unavailable: ${e.failure.reason}`)}}let i=P;if(!i)throw Error(`[chains] missing ready threshold ECDSA material for secp256k1 signing`);if(!R||R.kind===`warm_session`){if(i.kind===`material_for_step_up`)throw Error(`[chains] auth-neutral ECDSA material reached signing without a same-method step-up`);return i}if(!u)throw Error(`[chains] ECDSA operation step-up runtime is unavailable`);let a=F;if(!a)throw Error(`[chains] ECDSA step-up signing requires an operation prepared before confirmation`);return pt({prepared:a,operation:t,operationDigests:n}),{kind:`material_from_step_up`,material:await u.operationStepUp.authorize({authorization:R,prepared:a.prepared,material:ct(i)})}},W=async()=>{if(r.authorization.kind===`active_wallet_authority`){v({phase:l.STEP_05_CONFIRMATION_DISPLAYED,status:`waiting_for_user`,interaction:{kind:`transaction_confirmation`,overlay:`show`}}),r.onConfirmationDisplayed?.();let e=gt({config:t,input:r,sessionId:i});z=await ne({runtime:r.touchConfirm,request:e})(),B=await I,V=B.intent.signRequests.some(e=>e.algorithm===`secp256k1`);let n=await ht({authorization:r.authorization,thresholdEcdsaStepUp:s,hasThresholdEcdsaRequest:o,needsWebAuthn:E,requiredSignatureUses:t.requiredSignatureUsesForRequest(r.request),explicitAuthErrorLabel:t.explicitAuthErrorLabel});if(!y(n.confirmationAuthPayload.signingAuthPlan)&&!x(n.confirmationAuthPayload.signingAuthPlan))throw Error(`[chains] active Wallet Authority signing requires a session auth plan`);L=n;let a=n.confirmationAuthPayload.signingAuthPlan;v({phase:l.STEP_06_AUTH_WARM_SESSION_CLAIMED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:x(a)?{walletSessionId:String(a.walletSessionId),expiresAtMs:a.expiresAtMs,authorityId:String(a.authorityId),authMethodId:String(a.authMethodId)}:st(a)}),S(`auth_confirmed`),v({phase:l.STEP_05_CONFIRMATION_APPROVED,status:`succeeded`,interaction:{kind:`transaction_confirmation`,overlay:`hide`}});return}B=await I,V=B.intent.signRequests.some(e=>e.algorithm===`secp256k1`),v({phase:l.STEP_05_CONFIRMATION_DISPLAYED,status:`waiting_for_user`,interaction:{kind:`transaction_confirmation`,overlay:`show`}}),r.onConfirmationDisplayed?.();let e=await ht({authorization:r.authorization,thresholdEcdsaStepUp:s,hasThresholdEcdsaRequest:o,needsWebAuthn:E,requiredSignatureUses:t.requiredSignatureUsesForRequest(r.request),explicitAuthErrorLabel:t.explicitAuthErrorLabel});L=e;let n=e.confirmationAuthPayload;if(y(n.signingAuthPlan)||x(n.signingAuthPlan)){let e=n.signingAuthPlan;v({phase:l.STEP_06_AUTH_WARM_SESSION_CLAIMED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:x(e)?{walletSessionId:String(e.walletSessionId),expiresAtMs:e.expiresAtMs,authorityId:String(e.authorityId),authMethodId:String(e.authMethodId)}:st(e)})}let a={ctx:{touchConfirm:r.touchConfirm},sessionId:i,chain:t.targetKind,kind:`intentDigest`,signingSubject:{kind:`evm_wallet`,walletId:r.walletId},challengeB64u:B.challengeB64u,intentDigest:B.intentDigestHex,displayModel:B.displayModel,title:t.title,body:t.body,onProgress:ie,confirmationConfigOverride:r.confirmationConfigOverride},c=e.kind===`passkey`?{...a,...e.confirmationAuthPayload,webauthnChallenge:{kind:`intent_digest`,challengeB64u:mt({prepared:F,challengeB64u:B.challengeB64u})}}:e.kind===`email_otp`?{...a,...e.confirmationAuthPayload,emailOtpPrompt:e.emailOtpPrompt}:{...a,...e.confirmationAuthPayload};z=await ne({runtime:r.touchConfirm,request:c})();let u=z;if(!u)throw Error(`[chains] signing confirmation did not produce a decision`);switch(S(`auth_confirmed`),r.authorization.kind){case`owner`:R=Ze({prepared:e,confirmation:u});break;default:$(r.authorization)}v({phase:l.STEP_05_CONFIRMATION_APPROVED,status:`succeeded`,interaction:{kind:`transaction_confirmation`,overlay:`hide`}})},ue=async()=>{if(!B)throw Error(`[chains] signing intent must be prepared before threshold admission`);if(!z)throw Error(`[chains] signing confirmation is required before threshold admission`);if(!L)throw Error(`[chains] signing auth payload is required before threshold admission`);switch(r.authorization.kind){case`owner`:if(!R)throw Error(`[chains] signing step-up authorization is required before threshold admission`);if(V&&!j)throw Error(`[chains] threshold ECDSA operation must be prepared before signing`);break;case`active_wallet_authority`:break;default:$(r.authorization)}},de=async()=>{let e=performance.now();if(!B)throw Error(`[chains] signing intent must be prepared before signing`);if(!z)throw Error(`[chains] signing confirmation must complete before signing`);let n=B.intent;V&&v({phase:l.STEP_10_COMMIT_STARTED,status:`running`,interaction:{kind:`none`,overlay:`none`}});let a=[];for(let e of n.signRequests){let n;if(e.kind===`webauthn`){if(t.webauthn.kind!==`supported`)throw Error(`[chains] WebAuthn signing is not supported for this chain`);if(!z.credential)throw Error(`[chains] missing WebAuthn credential from touchConfirm`);n=(await t.webauthn.resolveKeyRef({ctx:r.ctx,walletId:r.walletId,workerCtx:r.workerCtx,signReq:e,credential:f(z.credential)})).keyRef}else if(e.algorithm===`secp256k1`){let t=await ut({operationFingerprint:r.signingOperation?.operationFingerprint,signingDigest32:e.digest32,displayModel:B.displayModel});switch(r.authorization.kind){case`active_wallet_authority`:{let n=r.signingOperation?.operationId;if(!n)throw Error(`[chains] active Wallet Authority ECDSA signing requires an operation id`);a.push(await r.authorization.sign({requestId:i,operationId:String(n),operationDigests:t,signingDigest32:e.digest32}));continue}case`owner`:break;default:$(r.authorization)}let n=await le(),o=r.engines.secp256k1;if(!o)throw Error(`[chains] missing engine for algorithm: ${e.algorithm}`);if(!lt(o))throw Error(`[chains] secp256k1 signing engine requires ready material support`);if(!r.runEcdsaMaterialUse)throw Error(`[chains] secp256k1 signing requires exact material serialization`);a.push(await r.runEcdsaMaterialUse(_t.bind(void 0,{request:e,engine:o,operation:n,operationDigests:t,queuedAt:performance.now(),resolveMaterial:U})));continue}else throw Error(`[chains] unsupported ${t.explicitAuthErrorLabel} signing algorithm: ${e.algorithm}`);let o=r.engines.webauthnP256;if(!o)throw Error(`[chains] missing engine for algorithm: ${e.algorithm}`);a.push(await o.sign(e,n))}let o=performance.now();H=await n.finalize(a),A=!0,await N();let s=null;j?s=String(j.intent.operationId):r.authorization.kind===`active_wallet_authority`&&r.signingOperation&&(s=String(r.signingOperation.operationId)),s!==null&&(m(s,`transaction_assembly`,o),m(s,`commit_total`,e)),v({phase:l.STEP_11_TRANSACTION_SIGNED,status:`succeeded`,interaction:{kind:`none`,overlay:`hide`}}),v({phase:l.STEP_15_COMPLETED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:{operation:`sign`}})};try{if(await ce([T.ShowConfirmation,T.PreparePayload,T.Sign],{[T.ShowConfirmation]:W,[T.PreparePayload]:ue,[T.Sign]:de}),!H)throw Error(`[chains] signing operation completed without a signed result`);let e=H;return O?{...e,managedNonce:ve(O)}:e}catch(e){throw A||(O?await M():r.releaseNonceReservation&&await I.then(async()=>{await M()}).catch(()=>void 0)),e}}export{k as _,tt as a,Ce as c,J as d,B as f,j as g,M as h,et as i,ye as l,P as m,ot as n,at as o,z as p,vt as r,it as s,Q as t,be as u};
@@ -0,0 +1 @@
1
+ import{h as e,r as t}from"./domainIds-C3fUa33Q.js";import{k as n}from"./chains-CPmd4s9f.js";import{at as r,it as i,nt as a}from"./activeWalletSession-BtEHhe99.js";import{r as o}from"./base64-BmKR3UqU.js";import{c as s}from"./ecdsaChainTarget-svSlzhze.js";import{M as c,_ as l,j as u,m as d}from"./walletCapabilityBindings-CKOK39sP.js";import{$t as f,Bt as p,D as m,J as h,Nt as g,Pt as _,Q as v,Rt as y,T as b,V as x,d as S,f as C,ln as w,m as T,nt as E,o as ee,p as te,rt as D,un as O,xt as k}from"./emailOtpEcdsaDerivationIdentity-DreNrM6n.js";import{p as A}from"./ecdsaDerivationClientWasm-D1HzwUgV.js";import{a as j,n as M}from"./walletSessionFailure-Ct412mDZ.js";import{a as N}from"./clientSessionPersistenceState-DFGHXoKK.js";import{t as P}from"./bytes-Cv07P0Pu.js";const F=new Map;function I(e){return`${String(e.walletId)}\0${e.materialActivation.activationId}`}function L(e){let n=I(e),r=F.get(n);if(r&&(r.authorityId!==e.authorityId||r.walletAuthMethodId!==e.walletAuthMethodId||r.factorAuthority.walletId!==e.factorAuthority.walletId||r.factorAuthority.bindingId!==e.factorAuthority.bindingId||r.holderHandleId!==e.holderHandleId||!t(r.materialActivation,e.materialActivation)))throw Error(`linked ECDSA holder runtime conflicts with the active authority`);F.set(n,e)}function R(e){return F.get(I(e))??null}function z(e){return[...F.values()].filter(t=>e===void 0||t.walletId===e)}function B(e){let t=I(e),n=F.get(t);if(n){if(n.holderHandleId!==e.holderHandleId)throw Error(`linked ECDSA holder runtime changed before removal`);F.delete(t)}}function V(e){if(!e){F.clear();return}for(let[t,n]of F)n.walletId===e&&F.delete(t)}function H(e,t){return t?{kind:`blocked`,reason:e,message:t}:{kind:`blocked`,reason:e}}function U(e){return d(e)||l(e.signerActivations)?e.signerActivations:null}function W(e){if(e.kind!==`resolved`)switch(e.kind){case`missing_selection`:return H(`missing_selected_authority`);case`missing_auth_method`:case`missing_authority`:case`integrity_error`:return H(`invalid_selected_authority`);default:return e}return e.selection.walletId!==e.authMethod.walletId||e.selection.walletAuthMethodId!==e.authMethod.walletAuthMethodId||e.authMethod.walletAuthorityId!==e.authority.authorityId||e.authority.walletId!==e.selection.walletId?H(`authority_identity_mismatch`):e.selection.lockState===`unlocked`?e.authMethod.status===`active`?e.authority.state===`active`?{authMethod:e.authMethod,authority:e.authority,signerMaterials:e.signerMaterials}:H(`authority_inactive`):H(`auth_method_inactive`):H(`wallet_locked`)}function G(e){let n=e.materials.filter(n=>n.kind===`wallet_authority_linked_signer_material_v1`&&n.keyFamily===`ecdsa_secp256k1`&&n.authorityId===e.authority.authorityId&&n.walletAuthMethodId===e.authMethod.walletAuthMethodId&&n.activationId===e.materialActivation.activationId&&t(n.materialActivation,e.materialActivation)),[r]=n;return n.length===1&&r?r:null}function K(e){let t=e.material.targetFactor;return t.walletAuthMethodId===e.authMethod.walletAuthMethodId?e.authMethod.kind===`passkey`?t.kind===`passkey`&&t.rpId===e.authMethod.rpId&&t.credentialIdB64u===e.authMethod.credentialIdB64u:t.kind===`email_otp`&&t.emailHashHex===e.authMethod.emailHashHex&&t.registrationAuthorityId===e.authMethod.registrationAuthorityId:!1}function ne(e){return e.session.capabilitySubjects.filter(n=>n.kind===e.capability&&n.keyFamily===`ecdsa_secp256k1`&&t(n.materialActivation,e.materialActivation)).length===1}function q(e){try{return w(e.scope.material_activation)}catch{return null}}function J(e){try{return P(o(e.scope.public_identity.ethereum_address20_b64u))}catch{return null}}function Y(e,t){return e.linkSessionId===t.linkSessionId&&e.enrollmentId===t.enrollmentId&&e.sourceAuthorityId===t.sourceAuthorityId&&u(e.source,t.source)&&c(e.target,t.target)&&e.targetClientPublicKey33B64u===t.targetClientPublicKey33B64u}function X(e,t){return e.kind===t.kind&&k(e.scope,t.scope)}function Z(e,t){return e.applicationBindingDigestB64u===t.applicationBindingDigestB64u&&e.clientShareRetryCounter===t.clientShareRetryCounter&&e.ecdsaThresholdKeyId===t.ecdsaThresholdKeyId&&X(e.sourceNormalSigning,t.sourceNormalSigning)}function re(e,t){return e.state===t.state&&Y(e.binding,t.binding)&&Z(e.sourceDerivation,t.sourceDerivation)&&e.targetRelayerPublicKey33B64u===t.targetRelayerPublicKey33B64u&&e.thresholdPublicKey33B64u===t.thresholdPublicKey33B64u&&e.thresholdEthereumAddress20B64u===t.thresholdEthereumAddress20B64u&&X(e.normalSigning,t.normalSigning)}function ie(e){let n=R({walletId:e.walletId,materialActivation:e.materialActivation});return!n||n.walletId!==e.walletId||n.authorityId!==e.authority.authorityId||n.walletAuthMethodId!==e.authMethod.walletAuthMethodId||n.factorAuthority.walletId!==e.walletId||n.factorAuthority.bindingId!==e.authMethod.walletAuthMethodId||n.ecdsaThresholdKeyId!==e.ecdsaThresholdKeyId||!t(n.materialActivation,e.materialActivation)||!K({material:e.material,authMethod:e.authMethod})||!re(n.activationReceipt,e.material.publicFacts.activationReceipt)?null:n}async function ae(e){let n=e.holderRuntime.activationReceipt.normalSigning,r=n.scope,i=q(n),a=J(n);if(!i||!a||!t(i,e.materialActivation)||e.signer.walletId!==e.selected.authority.walletId||r.wallet_id!==String(e.selected.authority.walletId)||r.ecdsa_threshold_key_id!==String(e.holderRuntime.ecdsaThresholdKeyId)||r.public_identity.threshold_public_key33_b64u!==String(e.signer.thresholdPublicKey33B64u)||a.toLowerCase()!==String(e.signer.evmAddress).trim().toLowerCase()||String(e.holderRuntime.activationReceipt.thresholdPublicKey33B64u)!==String(r.public_identity.threshold_public_key33_b64u)||String(e.holderRuntime.activationReceipt.thresholdEthereumAddress20B64u)!==String(r.public_identity.ethereum_address20_b64u))return H(`normal_signing_identity_mismatch`);let o,s,c,l;try{l=await T({ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version});let t=m(e.signer.evmAddress);o=ee({walletId:e.selected.authority.walletId,ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version,participantIds:[1,2],thresholdOwnerAddress:t}),s=te({keyHandle:l,publicKeyB64u:r.public_identity.threshold_public_key33_b64u,participantIds:[1,2],thresholdOwnerAddress:t}),c=await f({walletId:String(o.walletId),signingRootId:String(o.signingRootId),signingRootVersion:String(o.signingRootVersion)})}catch(e){return H(`invalid_public_facts`,e instanceof Error?e.message:String(e))}if(o.ecdsaThresholdKeyId!==e.holderRuntime.ecdsaThresholdKeyId)return H(`normal_signing_identity_mismatch`);let u;try{u=await p({authority:e.factorAuthority})}catch(e){return H(`authority_identity_mismatch`,e instanceof Error?e.message:String(e))}let d={kind:`active_wallet_authority_ecdsa_runtime_v1`,walletId:e.selected.authority.walletId,authorityId:e.selected.authority.authorityId,walletAuthMethodId:e.selected.authMethod.walletAuthMethodId,authorityDigestB64u:e.selected.authority.authorityDigestB64u,factorAuthorityRef:u,authorityRevocationEpoch:e.selected.authority.revocationEpoch,walletSessionId:e.operationCredential.walletSessionId,operationCredential:e.operationCredential,session:e.session,requiredCapability:e.requiredCapability,materialActivation:e.materialActivation,ecdsaThresholdKeyId:o.ecdsaThresholdKeyId,relayerKeyId:c,authority:e.selected.authority,authMethod:e.selected.authMethod,holderRuntime:e.holderRuntime,normalSigning:n,key:o,publicFacts:s};if(e.selected.authMethod.kind===`passkey`){let t={kind:`passkey`,rpId:b(e.selected.authMethod.rpId),credentialIdB64u:e.selected.authMethod.credentialIdB64u};if(!_(e.factorAuthority)||e.factorAuthority.walletId!==o.walletId||e.factorAuthority.bindingId!==e.selected.authMethod.walletAuthMethodId||e.factorAuthority.factor.credentialIdB64u!==t.credentialIdB64u||String(e.factorAuthority.verifier.rpId)!==String(t.rpId))return H(`authority_identity_mismatch`);let n=C({walletId:o.walletId,publicFacts:s,authBinding:S({rpId:t.rpId,credentialIdB64u:t.credentialIdB64u})});return{...d,auth:t,factorAuthority:e.factorAuthority,resolvedKey:n}}if(!g(e.factorAuthority)||e.factorAuthority.walletId!==o.walletId||e.factorAuthority.bindingId!==e.selected.authMethod.walletAuthMethodId||e.factorAuthority.verifier.emailHashHex!==e.selected.authMethod.emailHashHex)return H(`authority_identity_mismatch`);let h={kind:`email_otp`,providerSubjectId:String(e.factorAuthority.factor.providerUserId)};return{...d,auth:h,factorAuthority:e.factorAuthority}}function oe(e){if(!e.chainTarget)return null;let t={kind:`active_wallet_authority_ecdsa_lane_projection_v1`,source:`active_wallet_authority`,chainTarget:e.chainTarget,runtime:e.runtime,key:e.runtime.key,materialActivation:e.runtime.materialActivation,publicFacts:e.runtime.publicFacts,state:`deferred`,authorizationState:`authorization_required`};return e.runtime.auth.kind===`passkey`?e.runtime.resolvedKey?{...t,auth:e.runtime.auth,resolvedKey:e.runtime.resolvedKey}:null:{...t,auth:e.runtime.auth}}async function se(e){let{input:n,ports:r}=e,i=n.requiredCapability||`sign`,a=Math.floor(Number(n.nowMs)||Date.now()),o;try{o=s(n.walletId)}catch(e){return H(`invalid_selected_authority`,e instanceof Error?e.message:String(e))}let c;try{c=await r.resolveSelectedWalletAuthority(String(o))}catch(e){return H(`persistence_unavailable`,e instanceof Error?e.message:String(e))}let l=W(c);if(`kind`in l)return l;let u=U(l.authority);if(!u)return H(`missing_ecdsa_signer`);let d=u.ecdsa.signer,f=u.ecdsa.materialActivation;if(n.materialActivation&&!t(n.materialActivation,f))return H(`authority_identity_mismatch`);let p=G({materials:l.signerMaterials,authority:l.authority,authMethod:l.authMethod,materialActivation:f});if(!p||!K({material:p,authMethod:l.authMethod}))return H(`missing_holder_runtime`);if(String(p.publicFacts.ecdsaThresholdKeyId)!==String(p.ecdsaThresholdKeyId))return H(`holder_runtime_identity_mismatch`);let m=ie({walletId:o,authority:l.authority,authMethod:l.authMethod,materialActivation:f,ecdsaThresholdKeyId:String(p.ecdsaThresholdKeyId),material:p});if(!m)return H(`holder_runtime_identity_mismatch`);let h;try{h=await r.readExactWithOperationCredential({walletId:o,authorityId:l.authority.authorityId,authMethodId:l.authMethod.walletAuthMethodId})}catch(e){return H(`persistence_unavailable`,e instanceof Error?e.message:String(e))}switch(h.kind){case`found`:break;case`missing`:return H(`missing_wallet_session`);case`upgrade_required`:return H(`upgrade_required`,`Wallet Session authorization requires a newer client`)}let g=h.record,_=h.operationCredential;if(g.expiresAtMs<=a)return H(`wallet_session_expired`);if(g.walletId!==o||g.authorityId!==l.authority.authorityId||g.authMethodId!==l.authMethod.walletAuthMethodId||g.authorityDigestB64u!==l.authority.authorityDigestB64u||g.authorityRevocationEpoch!==l.authority.revocationEpoch||_.walletSessionId.length===0||_.token.trim().length===0)return H(`wallet_session_identity_mismatch`);if(!ne({session:g,capability:i,materialActivation:f}))return H(`wallet_session_capability_mismatch`);let v=m.factorAuthority,y=await ae({selected:l,session:g,operationCredential:_,requiredCapability:i,signer:d,materialActivation:f,holderRuntime:m,factorAuthority:v});return y.kind===`active_wallet_authority_ecdsa_runtime_v1`?{kind:`resolved`,runtime:y,lane:oe({runtime:y,chainTarget:n.chainTarget})}:y}const ce=Symbol(`persisted-ecdsa-role-local-material`);function le(e,t){return e.bindingDigest===t.contextBinding32B64u}function ue(e,t){return e.durableMaterialRef===t.durableMaterialRef&&e.bindingDigest===t.bindingDigest}function de(e){return e instanceof Error?e.message:String(e)}function Q(e){return{kind:`corrupt`,reason:e.reason,message:e.message}}function fe(e){switch(e.failure.reason){case`missing`:return{kind:`device_link_required`,reason:`missing_local_material`};case`expired`:return Q({reason:`expired`,message:`ECDSA role-local persisted material has expired`});case`binding_mismatch`:return Q({reason:`binding_mismatch`,message:`ECDSA role-local persisted material binding does not match its public facts`});case`corrupt`:return Q({reason:`corrupt_persistence`,message:`ECDSA role-local persisted material is corrupt`});default:{let t=e.failure.reason;throw Error(`Unsupported ECDSA role-local restoration failure: ${String(t)}`)}}}function pe(t){let n=y(t.authority);if(!n)throw Error(`ECDSA role-local persisted material authority is invalid`);let r=e(t.materialActivation);if(!r.ok)throw Error(r.error.message);if(n.walletId!==t.publicFacts.walletId)throw Error(`ECDSA role-local persisted material authority does not match its wallet`);return{[ce]:!0,kind:`persisted_ecdsa_role_local_material_v1`,authority:n,materialActivation:r.value,publicFacts:t.publicFacts}}function $(e){return{kind:`persisted`,authority:e.authority,materialActivation:e.materialActivation,publicFacts:e.publicFacts}}async function me(e){switch(e.source.kind){case`unavailable`:return{kind:`device_link_required`,reason:e.source.reason};case`persisted`:try{let n=await A({authority:e.source.authority,materialActivation:e.source.materialActivation,workerCtx:e.workerCtx});return n.ok?!t(n.materialRef.materialActivation,e.source.materialActivation)||!le(n.materialRef,e.source.publicFacts)?Q({reason:`worker_identity_mismatch`,message:`ECDSA role-local worker restored a different material identity`}):ue(n.liveHandle,n.materialRef)?{kind:`rehydrated`,liveHandle:n.liveHandle,materialRef:n.materialRef}:Q({reason:`worker_identity_mismatch`,message:`ECDSA role-local worker restored a different durable material`}):fe({failure:n})}catch(e){return Q({reason:`persistence_unavailable`,message:de(e)})}default:{let t=e.source;throw Error(`Unsupported ECDSA role-local material source: ${String(t)}`)}}}function he(e){try{return D(e)}catch(e){throw Error(e instanceof Error?e.message:`ECDSA operation step-up response is invalid`)}}function ge(e){let t=String(e||``).trim().replace(/\/+$/g,``);if(!t)throw Error(`ECDSA operation step-up relayerUrl is required`);return`${t}${x}`}function _e(e){let t=String(e.walletId||``).trim(),n=String(e.operationId||``).trim(),r=Math.floor(Number(e.expiresAtMs));if(!t||!n)throw Error(`ECDSA operation step-up identity is required`);if(!Number.isSafeInteger(r)||r<=Date.now())throw Error(`ECDSA operation step-up expiry is invalid`);let i=O(e.materialActivation),a=v(e.normalSigningScope),o=String(e.keyHandle||``).trim(),s=String(e.relayerKeyId||``).trim(),c=e.participantIds;if(a.wallet_id!==t||a.signing_worker.server_id!==i.signing_worker||!o||!s||c.length!==2||c.some(e=>!Number.isSafeInteger(e)||e<=0))throw Error(`ECDSA operation step-up signing identity is inconsistent`);return{wallet_id:t,operation_kind:e.operationKind,operation_id:n,operation_digests:{lane_digest_b64u:e.operationDigests.laneDigest,intent_digest_b64u:e.operationDigests.intentDigest,display_digest_b64u:e.operationDigests.displayDigest},material_activation:i,normal_signing_scope:a,signing_worker_id:i.signing_worker,key_handle:o,relayer_key_id:s,participant_ids:[c[0],c[1]],expires_at_ms:r}}async function ve(e){let t=_e(e);return{operation:t,challengeB64u:await h(t)}}function ye(e,t){switch(e){case j.expired:case j.missing:return`Signing session expired. Sign in again to continue.`;case j.budgetExhausted:return`Signing session budget is used up. Sign in again to continue.`;default:return`ECDSA operation step-up failed: ${t}`}}async function be(e){let t=E(e.request),o=e.transport.kind===`wallet_session`?i(e.transport.credential):{};if(e.transport.kind===`factor_proof`&&t.operation.operation_kind!==`evm.export_key`)throw Error(`ECDSA signing step-up requires its Wallet Session credential`);let s=new Request(ge(e.relayerUrl),a({headers:o,body:t})),c=e.transport.kind===`wallet_session`?await r(s):await fetch(s),l=await c.json().catch(()=>null);if(!c.ok){let e=n(l,`ECDSA operation step-up response`),t=String(e.message||`HTTP ${c.status}`);throw M({code:e.code,message:ye(e.code,t)})||Error(`ECDSA operation step-up failed: ${t}`)}return he(l)}async function xe(e){return await N({...e,labels:{queue:`threshold ECDSA signing queue`,queuedOperation:`threshold ECDSA queued signing operation`},owner:String(e.walletId).trim()})}export{$ as a,V as c,B as d,R as f,pe as i,L as l,be as n,me as o,ve as r,se as s,xe as t,z as u};
@@ -0,0 +1 @@
1
+ import{y as e}from"./domainIds-C3fUa33Q.js";import{it as t,nt as n,ot as r,tt as i}from"./activeWalletSession-BtEHhe99.js";import{t as a}from"./errors-CI1xdN0d.js";import{c as o}from"./ecdsaChainTarget-svSlzhze.js";import{W as s,pt as c,r as l,st as u}from"./emailOtpEcdsaDerivationIdentity-DreNrM6n.js";const d=`Your worker restarted mid-request`;function f(t,n){let r=e(t);if(!r.ok)throw Error(`${n} is invalid`);return r.value}function p(e,t){let n=typeof e==`string`?e.trim():``;if(!n)throw Error(`Missing ${t}`);return n}function m(e,t){if(typeof e!=`number`||!Number.isFinite(e))throw Error(`Missing ${t}`);return e}function h(e,t){let n=m(e,t);if(!Number.isSafeInteger(n)||n<0)throw Error(`${t} must be a non-negative integer`);return n}function g(e){if(!Array.isArray(e)||e.length===0)throw Error(`participantIds must be a non-empty array`);return e.map(e=>{let t=Number(e);if(!Number.isSafeInteger(t)||t<=0)throw Error(`participantIds must contain positive integer ids`);return t})}function _(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw Error(`Missing ${n}`);let r=new Set(t),i=Object.keys(e);if(i.length!==r.size||i.some(e=>!r.has(e)))throw Error(`${n} contains unexpected fields`);return e}function v(e,t,n){let r=Object.getOwnPropertyDescriptor(e,t);if(!r||!(`value`in r))throw Error(`Missing ${n}`);return r.value}const y=[`formatVersion`,`walletId`,`evmFamilySigningKeySlotId`,`ecdsaThresholdKeyId`,`relayerKeyId`,`applicationBindingDigestB64u`,`contextBinding32B64u`,`publicIdentity`,`clientShareRetryCounter`,`relayerShareRetryCounter`,`keyHandle`,`signingRootId`,`signingRootVersion`,`thresholdEcdsaPublicKeyB64u`,`ethereumAddress`,`relayerVerifyingShareB64u`,`participantIds`,`thresholdSessionId`,`activationEpoch`,`expiresAtMs`,`expiresAt`,`remainingUses`,`routerAbEcdsaDerivationNormalSigning`];function b(e){let t=_(e,[`derivationClientSharePublicKey33B64u`,`relayerPublicKey33B64u`,`groupPublicKey33B64u`,`ethereumAddress`],`publicIdentity`);return{derivationClientSharePublicKey33B64u:p(v(t,`derivationClientSharePublicKey33B64u`,`publicIdentity.derivationClientSharePublicKey33B64u`),`publicIdentity.derivationClientSharePublicKey33B64u`),relayerPublicKey33B64u:p(v(t,`relayerPublicKey33B64u`,`publicIdentity.relayerPublicKey33B64u`),`publicIdentity.relayerPublicKey33B64u`),groupPublicKey33B64u:p(v(t,`groupPublicKey33B64u`,`publicIdentity.groupPublicKey33B64u`),`publicIdentity.groupPublicKey33B64u`),ethereumAddress:p(v(t,`ethereumAddress`,`publicIdentity.ethereumAddress`),`publicIdentity.ethereumAddress`)}}function x(e){let t=_(e,y,`value`);if(v(t,`formatVersion`,`value.formatVersion`)!==`ecdsa-derivation-role-local`)throw Error(`value.formatVersion is invalid`);let n=o(v(t,`walletId`,`value.walletId`)),r=p(v(t,`evmFamilySigningKeySlotId`,`value.evmFamilySigningKeySlotId`),`evmFamilySigningKeySlotId`),i=l(v(t,`ecdsaThresholdKeyId`,`value.ecdsaThresholdKeyId`)),a=p(v(t,`relayerKeyId`,`value.relayerKeyId`),`relayerKeyId`),s=p(v(t,`applicationBindingDigestB64u`,`value.applicationBindingDigestB64u`),`applicationBindingDigestB64u`),u=p(v(t,`contextBinding32B64u`,`value.contextBinding32B64u`),`contextBinding32B64u`),d=b(v(t,`publicIdentity`,`value.publicIdentity`)),x=h(v(t,`clientShareRetryCounter`,`value.clientShareRetryCounter`),`clientShareRetryCounter`),S=h(v(t,`relayerShareRetryCounter`,`value.relayerShareRetryCounter`),`relayerShareRetryCounter`),C=p(v(t,`keyHandle`,`value.keyHandle`),`keyHandle`),w=p(v(t,`signingRootId`,`value.signingRootId`),`signingRootId`),T=p(v(t,`signingRootVersion`,`value.signingRootVersion`),`signingRootVersion`),E=g(v(t,`participantIds`,`value.participantIds`)),D=p(v(t,`thresholdSessionId`,`value.thresholdSessionId`),`thresholdSessionId`),O=f(v(t,`activationEpoch`,`value.activationEpoch`),`activationEpoch`),k=m(v(t,`expiresAtMs`,`value.expiresAtMs`),`expiresAtMs`),A=c(v(t,`routerAbEcdsaDerivationNormalSigning`,`value.routerAbEcdsaDerivationNormalSigning`));return{formatVersion:`ecdsa-derivation-role-local`,walletId:n,evmFamilySigningKeySlotId:r,ecdsaThresholdKeyId:i,relayerKeyId:a,applicationBindingDigestB64u:s,contextBinding32B64u:u,publicIdentity:d,clientShareRetryCounter:x,relayerShareRetryCounter:S,keyHandle:C,signingRootId:w,signingRootVersion:T,thresholdEcdsaPublicKeyB64u:p(v(t,`thresholdEcdsaPublicKeyB64u`,`value.thresholdEcdsaPublicKeyB64u`),`thresholdEcdsaPublicKeyB64u`),ethereumAddress:p(v(t,`ethereumAddress`,`value.ethereumAddress`),`ethereumAddress`),relayerVerifyingShareB64u:p(v(t,`relayerVerifyingShareB64u`,`value.relayerVerifyingShareB64u`),`relayerVerifyingShareB64u`),participantIds:E,thresholdSessionId:D,activationEpoch:O,expiresAtMs:k,expiresAt:p(v(t,`expiresAt`,`value.expiresAt`),`expiresAt`),remainingUses:m(v(t,`remainingUses`,`value.remainingUses`),`remainingUses`),routerAbEcdsaDerivationNormalSigning:A}}function S(e){return e?e.kind===`opaque_wallet_session_operation_credential_v1`?e.token:String(e.token||``).trim():``}function C(e){if(e.auth?.kind===`opaque_wallet_session_operation_credential_v1`)return n({headers:t(e.auth),body:e.body});let r=S(e.auth),a=String(e.publishableKeyAuth||``).trim();return n({headers:r?i({token:r,missingMessage:`bearer token is required`}):a?i({token:a,missingMessage:`publishable key auth is required`}):void 0,body:e.body})}function w(e){return{code:`http_error`,message:`HTTP ${e}`}}function T(e){try{let t=_(e,[`ok`,`code`,`message`],`relayer failure`);if(v(t,`ok`,`relayer failure.ok`)!==!1)throw Error(`invalid ok`);let n=v(t,`code`,`relayer failure.code`),r=v(t,`message`,`relayer failure.message`);if(typeof n!=`string`||!n.trim())throw Error(`invalid code`);if(typeof r!=`string`||!r.trim())throw Error(`invalid message`);return{code:n.trim(),message:r.trim()}}catch{return null}}async function E(e){let t=await O(e);return k(t)?{ok:!1,code:`worker_restarted_mid_request`,message:d}:A(t)}async function D(e,t){try{let n=r(e);if(!n)throw Error(`Missing relayServerUrl`);let i=await fetch(`${n}${s}`,C({auth:t.auth,body:t.request})),a=await E(i);if(!i.ok){let e=T(a)??w(i.status);return{ok:!1,code:e.code,message:e.message}}return{ok:!0,value:u(a)}}catch(e){return{ok:!1,error:a(e)||`Router A/B ECDSA session activation failed`}}}async function O(e){try{return await e.text()}catch{return``}}function k(e){return e.includes(d)}function A(e){try{return JSON.parse(e||`{}`)}catch(e){throw Error(`Failed to parse threshold ECDSA relayer response JSON: ${a(e)}`)}}export{x as n,D as t};
@@ -1 +1 @@
1
- import{a as e}from"./types-CQTWmtqu.js";const t=new Set([`wallet_gateway_binding`,`wallet_gateway_total`,`wallet_console_binding_d1`,`wallet_console_binding_sql`,`ecdsa_sign_authorize`,`ecdsa_sign_admit`,`ecdsa_sign_proxy`,`ecdsa_sign_complete`,`ecdsa_sign_total`,`ecdsa_presign_authenticate`,`ecdsa_presign_material`,`ecdsa_presign_admit`,`ecdsa_presign_proxy`,`ecdsa_presign_total`,`ecdsa_presign_sw_material`,`ecdsa_presign_sw_session`,`ecdsa_presign_sw_do_response_headers`,`ecdsa_presign_sw_do_response_body`,`ecdsa_presign_sw_admit`,`ecdsa_presign_sw_total`]);function n(e){let n=new Map;if(!e)return n;for(let r of e.split(`,`)){let[e,...i]=r.trim().split(`;`);if(!(!t.has(e)||n.has(e)))for(let t of i){let[r,i]=t.trim().split(`=`);if(r!==`dur`||!i?.trim())continue;let a=Number(i);Number.isFinite(a)&&a>=0&&n.set(e,a);break}}return n}function r(e,t,r){if(!(!r||!p()))for(let[i,a]of n(r))d(`evm-family`,{event:`ecdsa_server_timing`,operationId:e,phase:t,stage:i,durationMs:a})}function i(e,t,r){if(!(!r||!p()))for(let[i,a]of n(r))d(`evm-family`,{event:`ecdsa_presign_server_timing`,presignSessionId:e,phase:t,stage:i,durationMs:a})}function a(e,t,n,r=`succeeded`){d(`evm-family`,{event:`ecdsa_signing_timing`,operationId:e,stage:t,durationMs:Math.max(0,performance.now()-n),outcome:r})}function o(e,t,n,r=`succeeded`){d(`near`,{event:`ed25519_signing_timing`,operationId:e,stage:t,durationMs:Math.max(0,performance.now()-n),outcome:r})}function s(t,n,r={}){if(!(!n||!p()))try{console.debug(`[SigningLane][${t}]`,{event:`signing_lane_resolved`,lane:e(n),...r.reason?{reason:r.reason}:{}})}catch{}}function c(e,t){if(p())try{console.debug(`[SigningBoundary][${e}]`,t)}catch{}}function l(t){return{event:t.event,...t.lane?{lane:e(t.lane)}:{},...t.readinessStatus?{readinessStatus:t.readinessStatus}:{},...t.sideEffect?{sideEffect:t.sideEffect}:{},phase:t.phase}}function u(e,t){if(p())try{console.debug(`[SigningSessionPlanner][${e}]`,t)}catch{}}function d(e,t){if(p())try{console.info(`[SigningFlow][${e}]`,JSON.stringify(t))}catch{}}function f(e,t){try{console.warn(`[SigningFlow][${e}][failure]`,t)}catch{}}function p(){try{return globalThis.localStorage?.getItem(`seams:debug:signing-session`)===`1`}catch{return!1}}export{o as a,u as c,a as i,f as l,i as n,c as o,r,s,l as t,d as u};
1
+ import{a as e}from"./types-BrEW276O.js";const t=new Set([`wallet_gateway_binding`,`wallet_gateway_total`,`wallet_console_binding_d1`,`wallet_console_binding_sql`,`ecdsa_sign_authorize`,`ecdsa_sign_admit`,`ecdsa_sign_proxy`,`ecdsa_sign_complete`,`ecdsa_sign_total`,`ecdsa_presign_authenticate`,`ecdsa_presign_material`,`ecdsa_presign_admit`,`ecdsa_presign_proxy`,`ecdsa_presign_total`,`ecdsa_presign_sw_material`,`ecdsa_presign_sw_session`,`ecdsa_presign_sw_do_response_headers`,`ecdsa_presign_sw_do_response_body`,`ecdsa_presign_sw_admit`,`ecdsa_presign_sw_total`]);function n(e){let n=new Map;if(!e)return n;for(let r of e.split(`,`)){let[e,...i]=r.trim().split(`;`);if(!(!t.has(e)||n.has(e)))for(let t of i){let[r,i]=t.trim().split(`=`);if(r!==`dur`||!i?.trim())continue;let a=Number(i);Number.isFinite(a)&&a>=0&&n.set(e,a);break}}return n}function r(e,t,r){if(!(!r||!p()))for(let[i,a]of n(r))d(`evm-family`,{event:`ecdsa_server_timing`,operationId:e,phase:t,stage:i,durationMs:a})}function i(e,t,r){if(!(!r||!p()))for(let[i,a]of n(r))d(`evm-family`,{event:`ecdsa_presign_server_timing`,presignSessionId:e,phase:t,stage:i,durationMs:a})}function a(e,t,n,r=`succeeded`){d(`evm-family`,{event:`ecdsa_signing_timing`,operationId:e,stage:t,durationMs:Math.max(0,performance.now()-n),outcome:r})}function o(e,t,n,r=`succeeded`){d(`near`,{event:`ed25519_signing_timing`,operationId:e,stage:t,durationMs:Math.max(0,performance.now()-n),outcome:r})}function s(t,n,r={}){if(!(!n||!p()))try{console.debug(`[SigningLane][${t}]`,{event:`signing_lane_resolved`,lane:e(n),...r.reason?{reason:r.reason}:{}})}catch{}}function c(e,t){if(p())try{console.debug(`[SigningBoundary][${e}]`,t)}catch{}}function l(t){return{event:t.event,...t.lane?{lane:e(t.lane)}:{},...t.readinessStatus?{readinessStatus:t.readinessStatus}:{},...t.sideEffect?{sideEffect:t.sideEffect}:{},phase:t.phase}}function u(e,t){if(p())try{console.debug(`[SigningSessionPlanner][${e}]`,t)}catch{}}function d(e,t){if(p())try{console.info(`[SigningFlow][${e}]`,JSON.stringify(t))}catch{}}function f(e,t){try{console.warn(`[SigningFlow][${e}][failure]`,t)}catch{}}function p(){try{return globalThis.localStorage?.getItem(`seams:debug:signing-session`)===`1`}catch{return!1}}export{o as a,u as c,a as i,f as l,i as n,c as o,r,s,l as t,d as u};
@@ -0,0 +1 @@
1
+ import{n as e}from"./chunk-dVx5-UGu.js";import{_ as t}from"./sdkSentEvents-BzMVO1AR.js";var n=e({beginTransactionActivity:()=>i,failTransactionActivity:()=>m,observeTransactionActivity:()=>p,observeTransactionLifecycleReport:()=>_,retainTransactionActivity:()=>a,setTransactionActivityView:()=>l,transactionBroadcastStarted:()=>h});let r=null;function i(e,t){if(e.requestId)switch(e.type){case`PM_SIGN_TX_WITH_ACTIONS`:case`PM_SIGN_AND_SEND_TX`:case`PM_SIGN_DELEGATE_ACTION`:case`PM_SIGN_NEP413`:case`PM_SIGN_TEMPO`:r?.surface?.dispose(),r={requestId:e.requestId,post:t,surface:null,view:`expanded`,retained:!1,signingHash:null,progress:e.type===`PM_SIGN_NEP413`?{subject:`message`,state:{kind:`signing`}}:{subject:`transaction`,state:{kind:`signing`}}};return;default:return}}function a(e,t){return!r||r.requestId!==e?!1:(r.surface=t,r.retained=!0,o(),!0)}function o(){if(!(!r?.retained||!r.surface)){if(!r.surface.element.isConnected){r=null;return}r.surface.showReceipt({...r.progress,view:r.view,onView:s,onDismiss:c}),r.post({type:`TRANSACTION_ACTIVITY`,requestId:r.requestId,payload:r.view})}}function s(e){r&&(r.view=e,o())}function c(){let e=r;r=null,e?.surface?.dispose(),e?.retained&&e.post({type:`TRANSACTION_ACTIVITY`,requestId:e.requestId,payload:`closed`})}function l(e,t){r?.requestId===e&&(t===`closed`?c():s(`toast`))}function u(e,t){e.progress=e.progress.subject===`message`?{subject:`message`,state:t}:{subject:`transaction`,state:t.kind===`failed`?{...t,hash:null}:t}}function d(e,t){e.progress.subject===`transaction`&&(e.progress={subject:`transaction`,state:t})}function f(e,t){if(!e||typeof e!=`object`)return null;let n=Reflect.get(e,t);return typeof n==`string`&&n.length>0?n:null}function p(e){if(!(!r||e.requestId!==r.requestId)){if(e.type===`PM_RESULT`){let t=e.payload?.result;r.signingHash=f(t,`rawTxHex`),r.progress.state.kind===`signing`&&u(r,{kind:`signed`}),t&&typeof t==`object`&&Reflect.get(t,`success`)===!1&&u(r,{kind:`failed`,message:f(t,`error`)??`The operation did not complete.`});let n=g(t);n&&d(r,n)}else if(e.type===`PROGRESS`&&t(e.payload)&&e.payload.flow===`signing`){let t=e.payload,n=f(t.data,`txHash`)??f(t.data,`txId`),{kind:i}=r.progress.state;if(i===`confirmed`||i===`reverted`)return;switch(t.phase){case`signing.transaction.signed`:u(r,{kind:`signed`});break;case`signing.broadcast.started`:d(r,{kind:`broadcasting`});break;case`signing.broadcast.accepted`:d(r,{kind:`submitted`,hash:n});break;case`signing.receipt.finalized`:d(r,{kind:`confirmed`,hash:n});break;case`signing.receipt.reverted`:d(r,{kind:`reverted`,hash:n,message:`The network reverted this transaction. Network fees may still apply.`});break;case`signing.failed`:case`signing.broadcast.rejected`:r.progress.subject===`message`?u(r,{kind:`failed`,message:t.message}):d(r,{kind:`failed`,hash:n,message:t.message});break;default:return}}else return;o()}}function m(e,t){!r||r.requestId!==e||(u(r,{kind:`failed`,message:t instanceof Error?t.message:`The operation did not complete.`}),o())}function h(e){!r||r.signingHash!==e||r.progress.state.kind!==`signed`||(d(r,{kind:`broadcasting`}),o())}function g(e){if(!e||typeof e!=`object`)return null;let t=f(e,`transactionId`);if(!t)return null;let n=Reflect.get(e,`result`),r=n&&typeof n==`object`?Reflect.get(n,`status`):null;if(r&&typeof r==`object`){if(Object.hasOwn(r,`SuccessValue`))return{kind:`confirmed`,hash:t};if(Object.hasOwn(r,`Failure`))return{kind:`reverted`,hash:t,message:`The network could not execute this transaction. Network fees may still apply.`}}return{kind:`unknown`,hash:t,message:`Submitted to the network. The response did not include a final execution outcome.`}}function _(e){if(r?.signingHash)switch(e.type){case`PM_REPORT_TEMPO_BROADCAST_ACCEPTED`:case`PM_REPORT_TEMPO_BROADCAST_REJECTED`:case`PM_REPORT_TEMPO_FINALIZED`:case`PM_REPORT_TEMPO_DROPPED_OR_REPLACED`:{let t=e.payload;if(!t||t.signedResult.rawTxHex!==r.signingHash)return;let{kind:n}=r.progress.state;if(n===`confirmed`||n===`reverted`)return;e.type===`PM_REPORT_TEMPO_BROADCAST_ACCEPTED`?d(r,{kind:`submitted`,hash:e.payload?.txHash??null}):e.type===`PM_REPORT_TEMPO_FINALIZED`?d(r,e.payload?.receiptStatus===`reverted`?{kind:`reverted`,hash:e.payload.txHash??null,message:`The network reverted this transaction. Network fees may still apply.`}:e.payload?.receiptStatus===`success`?{kind:`confirmed`,hash:e.payload.txHash??null}:{kind:`unknown`,hash:e.payload?.txHash??null,message:`The network response did not include an execution status.`}):d(r,{kind:`unknown`,hash:null,message:`The transaction did not complete as expected. Check its network status before retrying.`}),o();return}default:return}}export{a,_ as i,m as n,n as o,p as r,i as t};