@seams/wallet 0.15.6 → 0.18.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 (605) hide show
  1. package/README.md +15 -8
  2. package/THIRD_PARTY_NOTICES.md +102 -1
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/SeamsWeb.js +20 -1
  5. package/dist/esm/SeamsWeb/operations/registration/registrationSignerSet.js +73 -0
  6. package/dist/esm/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +22 -0
  7. package/dist/esm/SeamsWeb/publicApi/capabilitySelection.js +2 -1
  8. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +26 -1
  9. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +71 -69
  10. package/dist/esm/SeamsWeb/walletIframe/client/preferenceState.js +6 -8
  11. package/dist/esm/SeamsWeb/walletIframe/client/preferences.js +7 -5
  12. package/dist/esm/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +2 -1
  13. package/dist/esm/SeamsWeb/walletIframe/client/router.js +116 -108
  14. package/dist/esm/SeamsWeb/walletIframe/client/surface/transactionSurfaceQueue.js +11 -7
  15. package/dist/esm/SeamsWeb/walletIframe/client/transactionReviewReservation.js +3 -2
  16. package/dist/esm/SeamsWeb/walletIframe/client/transport/IframeTransport.js +53 -49
  17. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +6 -2
  18. package/dist/esm/SeamsWeb/walletIframe/coordinator.js +18 -13
  19. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +14 -13
  20. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +6 -8
  21. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +387 -535
  22. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +13 -8
  23. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +116 -0
  24. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.js +60 -0
  25. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +1 -0
  26. package/dist/esm/SeamsWeb/walletIframe/shared/facadeBoundary.js +2 -0
  27. package/dist/esm/core/config/configBuilder.js +3 -1
  28. package/dist/esm/core/config/defaultConfigs.js +1 -0
  29. package/dist/esm/core/indexedDB/accountSignerLifecycle.js +2 -0
  30. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +1 -0
  31. package/dist/esm/core/indexedDB/seamsWalletDB/manager.js +6 -5
  32. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +2 -0
  33. package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +2 -2
  34. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +6 -3
  35. package/dist/esm/core/rpcClients/near/NearRpcError.js +7 -0
  36. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +3 -0
  37. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +6 -2
  38. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +5 -4
  39. package/dist/esm/core/signingEngine/chains/evm/evmAdapter.js +2 -1
  40. package/dist/esm/core/signingEngine/chains/tempo/tempoAdapter.js +2 -1
  41. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +1 -1
  42. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +5 -1
  43. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/webauthnP256.js +1 -1
  44. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +3 -2
  45. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignatureRefillProgress.js +5 -7
  46. package/dist/esm/core/signingEngine/session/lifecycle/walletSessionFailure.js +2 -0
  47. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +68 -10
  48. package/dist/esm/core/signingEngine/session/material/walletSigningStateFailure.js +2 -2
  49. package/dist/esm/core/signingEngine/session/operationState/authorizationAdmission.js +2 -0
  50. package/dist/esm/core/signingEngine/stepUpConfirmation/methodSelection.js +2 -0
  51. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +36 -32
  52. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +10 -6
  53. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +12 -12
  54. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +29 -29
  55. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +141 -141
  56. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +21 -21
  57. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +45 -40
  58. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +19 -21
  59. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/HaloBorder.js +21 -24
  60. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +16 -16
  61. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +9 -5
  62. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +128 -125
  63. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +72 -74
  64. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +51 -26
  65. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +65 -53
  66. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +44 -40
  67. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +122 -122
  68. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/WalletLocale.js +24 -0
  69. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/email-otp-session.js +81 -80
  70. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +47 -41
  71. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +17 -11
  72. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +4 -21
  73. package/dist/esm/core/types/actionBuilders.js +16 -2
  74. package/dist/esm/core/types/amounts.js +83 -0
  75. package/dist/esm/core/types/linkDevice.js +1 -1
  76. package/dist/esm/core/ui/locale.js +10 -0
  77. package/dist/esm/core/ui/messages.js +694 -0
  78. package/dist/esm/externalEvm/controller.js +49 -48
  79. package/dist/esm/index.js +3 -1
  80. package/dist/esm/react/boundWallet.js +56 -0
  81. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +7 -3
  82. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +6 -3
  83. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +4 -3
  84. package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +5 -2
  85. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +31 -27
  86. package/dist/esm/react/components/AccountMenuButton/AccountMenuScreen.js +6 -3
  87. package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +6 -3
  88. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -4
  89. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +33 -27
  90. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +5 -2
  91. package/dist/esm/react/components/AccountMenuButton/ExportKeysScreen.js +5 -3
  92. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +4 -3
  93. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +13 -2
  94. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +50 -41
  95. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  96. package/dist/esm/react/components/AccountMenuButton/MenuItem.js +3 -2
  97. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +8 -4
  98. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.js +3 -2
  99. package/dist/esm/react/components/AccountMenuButton/RecoveryCodeActions.js +4 -3
  100. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +2 -1
  101. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +11 -10
  102. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +8 -4
  103. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +112 -108
  104. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +74 -73
  105. package/dist/esm/react/components/AccountMenuButton/index.js +18 -15
  106. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +30 -26
  107. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +17 -6
  108. package/dist/esm/react/components/QRCodeScanner.js +28 -23
  109. package/dist/esm/react/components/ShowQRCode.css +13 -2
  110. package/dist/esm/react/components/ShowQRCode.js +39 -31
  111. package/dist/esm/react/components/theme/ThemeProvider.js +3 -0
  112. package/dist/esm/react/context/WalletLocale.js +15 -0
  113. package/dist/esm/react/context/index.js +38 -6
  114. package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -1
  115. package/dist/esm/react/externalEvm.js +22 -25
  116. package/dist/esm/react/index.js +4 -4
  117. package/dist/esm/react/styles/styles.css +13 -2
  118. package/dist/esm/react/transactionReview/TransactionReviewHost.js +3 -6
  119. package/dist/esm/react/transactionReview/boundCalls.js +1 -1
  120. package/dist/esm/react/transactionReview/controller.js +121 -119
  121. package/dist/esm/sdk/ConfirmationDrawer-mu3iThxX.js +1 -0
  122. package/dist/esm/sdk/NonceCoordinator-Dq-FZpBz.js +1 -0
  123. package/dist/{public/sdk/accountLifecycle-CBOkr0vU.js → esm/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  124. package/dist/esm/sdk/{activeWalletSession-WdZkhtBB.js → activeWalletSession-BpbnpU9s.js} +1 -1
  125. package/dist/esm/sdk/adapters-u7LVXthY.js +2 -0
  126. package/dist/esm/sdk/appearance-token-vars-CzBVbO39.js +2 -0
  127. package/dist/esm/sdk/authorizationAdmission-Dd23mTx7.js +1 -0
  128. package/dist/esm/sdk/{canonicalPrimitives-Dsbsxgxc.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  129. package/dist/esm/sdk/{capabilityKinds-N8xo_IEh.js → capabilityKinds-D0Yrp9uf.js} +1 -1
  130. package/dist/esm/sdk/{chains-C_X_fNuS.js → chains-CPmd4s9f.js} +1 -1
  131. package/dist/esm/sdk/challengeDelivery-CG2J5Qxs.js +1 -0
  132. package/dist/esm/sdk/{clientSessionPersistenceState-CBylL1Ul.js → clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  133. package/dist/esm/sdk/{commitQueue-DYEgzoLA.js → commitQueue-BW7BpYyA.js} +1 -1
  134. package/dist/esm/sdk/configBuilder-BMNShuOu.js +1 -0
  135. package/dist/esm/sdk/{configHelpers-B-hs0mTO.js → configHelpers-D50F_Txb.js} +1 -1
  136. package/dist/esm/sdk/{digestEncoding-BX3VW9eF.js → digestEncoding-aC4dSf_x.js} +1 -1
  137. package/dist/esm/sdk/{display-DsfJkAra.js → display-WtILOPQR.js} +1 -1
  138. package/dist/esm/sdk/domainIds-C3fUa33Q.js +1 -0
  139. package/dist/esm/sdk/ecdsaCapabilityManifest-DRc423SV.js +1 -0
  140. package/dist/esm/sdk/{ecdsaChainTarget-Bfatk3oP.js → ecdsaChainTarget-DkOrgv4y.js} +1 -1
  141. package/dist/esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js +1 -0
  142. package/dist/{public/sdk/ecdsaDerivationExport-DOGzq0qC.js → esm/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  143. package/dist/esm/sdk/{ecdsaWalletRecords-CHfrYvKr.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  144. package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-Bik0N8v9.js → esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  145. package/dist/esm/sdk/{errors-DIWY1KR9.js → errors-ADOZT8oV.js} +1 -1
  146. package/dist/esm/sdk/export-viewer-host-ivf9LlBo.js +1 -0
  147. package/dist/{public/sdk/exportKeypairOperation-DzbjKbnk.js → esm/sdk/exportKeypairOperation-Gw7L5Htj.js} +1 -1
  148. package/dist/esm/sdk/{helpers-B9fpZNAP.js → helpers-DS0bksx9.js} +1 -1
  149. package/dist/esm/sdk/{host-DfWylEiw.js → host-B-2QXolt.js} +1 -1
  150. package/dist/esm/sdk/{intentDigest-P_-CM7lS.js → intentDigest-Rh5Mg8X7.js} +1 -1
  151. package/dist/esm/sdk/{lanes-5kcTFbPx.js → lanes-BzU7cv2T.js} +1 -1
  152. package/dist/esm/sdk/localOnly-BKpUHtHa.js +1 -0
  153. package/dist/esm/sdk/mountExportPrivateKeySurface-C8pUK6PQ.js +1 -0
  154. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DUudF89t.js +2 -0
  155. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +1 -0
  156. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-RIfkYN0d.js → esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  157. package/dist/esm/sdk/{nonceLaneKeys-BCYfl1wv.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  158. package/dist/esm/sdk/{normalization-n503J-BI.js → normalization-Ct9-AY13.js} +1 -1
  159. package/dist/esm/sdk/{operationFingerprint-BHNYryLY.js → operationFingerprint-C4VX-0NI.js} +1 -1
  160. package/dist/esm/sdk/{passkey-custody-DpTM-eNJ.js → passkey-custody-Ba-NQ_4C.js} +1 -1
  161. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-C60sZMj5.js → pendingWalletRecoveryCodeBackup-7tBjuSe7.js} +1 -1
  162. package/dist/esm/sdk/presignaturePool-BHoxnbOA.js +1 -0
  163. package/dist/esm/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  164. package/dist/esm/sdk/{primitives-CqrjmIAH.js → primitives-CTmDwMNc.js} +1 -1
  165. package/dist/{public/sdk/recovery-entrypoint-BULjaFBM.js → esm/sdk/recovery-entrypoint-DWghFZrZ.js} +1 -1
  166. package/dist/esm/sdk/{registration-CyF7nOXs.js → registration-CWpOVwhj.js} +1 -1
  167. package/dist/esm/sdk/registration-D2OEgY7O.js +1 -0
  168. package/dist/esm/sdk/{registrationAccounts-BQMUusdD.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  169. package/dist/esm/sdk/{registrationAuthMethodInput-RbSR7R1G.js → registrationAuthMethodInput-B23_HRil.js} +1 -1
  170. package/dist/esm/sdk/{registrationIds-BaK3jUS6.js → registrationIds-B1OpqRAt.js} +1 -1
  171. package/dist/esm/sdk/{registrationIntent-090Zj7Iu.js → registrationIntent-D4YDjf2U.js} +1 -1
  172. package/dist/{public/sdk/registrationSignerPlan-CPzHavPM.js → esm/sdk/registrationSignerPlan-BHkqlian.js} +1 -1
  173. package/dist/{public/sdk/requireStepUpAuth-BCY5ZStI.js → esm/sdk/requireStepUpAuth-CnSCFSOZ.js} +1 -1
  174. package/dist/esm/sdk/routerAbNormalSigning-BV1t27aB.js +1 -0
  175. package/dist/esm/sdk/runtime-auth-jtyQAuxZ.js +1 -0
  176. package/dist/esm/sdk/runtime-device-link-vhRhB-wS.js +1 -0
  177. package/dist/esm/sdk/runtime-ecdsa-tempo-BXWgFVBa.js +1 -0
  178. package/dist/esm/sdk/runtime-email-otp-BlAaSKtk.js +1 -0
  179. package/dist/esm/sdk/runtime-export-B4FuHhcH.js +1 -0
  180. package/dist/esm/sdk/runtime-near-BnWOpEpA.js +1 -0
  181. package/dist/esm/sdk/runtime-preferences-COm-LTiu.js +1 -0
  182. package/dist/esm/sdk/runtime-recovery-BJTo5Idi.js +1 -0
  183. package/dist/esm/sdk/{runtime-recovery-codes-GOytzExh.js → runtime-recovery-codes-CEOjdUHV.js} +1 -1
  184. package/dist/esm/sdk/{sdkSentEvents-D4KtK7_I.js → sdkSentEvents-DujYAPEM.js} +1 -1
  185. package/dist/esm/sdk/secp256k1-wOOHtPcK.js +1 -0
  186. package/dist/esm/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  187. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  188. package/dist/esm/sdk/shared-BKPGtAps.js +6 -0
  189. package/dist/{public/sdk/signEvmFamily-Cpm3e6Zs.js → esm/sdk/signEvmFamily-DT34Vtpa.js} +1 -1
  190. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js +1 -0
  191. package/dist/esm/sdk/{signEvmWithUiConfirm-BRmdLgmm.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  192. package/dist/esm/sdk/signNear-B000QxBd.js +1 -0
  193. package/dist/esm/sdk/signatureUses-B_nN17i7.js +1 -0
  194. package/dist/esm/sdk/{signerDomain-Dp7BhfmZ.js → signerDomain-BFqRQ0Jl.js} +1 -1
  195. package/dist/esm/sdk/{signingFlow-VAnM8L5C.js → signingFlow-gl85GOW4.js} +2 -2
  196. package/dist/esm/sdk/{signingQueue-D_Ebmzcn.js → signingQueue-gW7wmOuL.js} +1 -1
  197. package/dist/{public/sdk/singletons-BXhnsqeY.js → esm/sdk/singletons-CAsc9LvA.js} +1 -1
  198. package/dist/esm/sdk/surface-measurement-reporter-BJhfiPw6.js +1 -0
  199. package/dist/{public/sdk/thresholdEcdsa-CneSKcRt.js → esm/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  200. package/dist/esm/sdk/{trace-BBux0jtr.js → trace-CsRMlSh1.js} +1 -1
  201. package/dist/{public/sdk/transaction-activity-Cccvec2J.js → esm/sdk/transaction-activity-C0nCSW6c.js} +1 -1
  202. package/dist/esm/sdk/transactionReviewAdmission-CNNho8IG.js +1 -0
  203. package/dist/{public/sdk/transactionState-Day-1x7Y.js → esm/sdk/transactionState-lB2qpkOm.js} +1 -1
  204. package/dist/esm/sdk/tx-confirm-ui.js +2502 -1174
  205. package/dist/esm/sdk/{types-hKLqDUhR.js → types-CQTWmtqu.js} +1 -1
  206. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  207. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  208. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  209. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  210. package/dist/{public/sdk/wallet-recovery-Bfhfk52N.js → esm/sdk/wallet-recovery-DFaS3geI.js} +1 -1
  211. package/dist/esm/sdk/wallet-ui.css +1 -1
  212. package/dist/{public/sdk/walletAuthMethodRecord-LniOQQmj.js → esm/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  213. package/dist/{public/sdk/walletAuthority-CAiGuWW2.js → esm/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  214. package/dist/esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +1 -0
  215. package/dist/esm/sdk/{walletDbName-DtRewci9.js → walletDbName-BxWApBQF.js} +1 -1
  216. package/dist/esm/sdk/{walletOwnershipGeneration-B6HyR2rE.js → walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  217. package/dist/esm/sdk/{walletRecoveryCommit-C6HF84_U.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  218. package/dist/esm/sdk/{walletRecoveryRotate-BN3H8byw.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  219. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  220. package/dist/esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +1 -0
  221. package/dist/esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js +1 -0
  222. package/dist/esm/sdk/walletSessionFailure-C6TAQTZn.js +1 -0
  223. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  224. package/dist/esm/sdk/webauthnP256-_ajaNl90.js +1 -0
  225. package/dist/esm/sdk/webauthnPromptCoordinator-9bVeHcTZ.js +1 -0
  226. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
  227. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +6 -0
  228. package/dist/esm/shared-ts/src/near/nearClient.js +6 -0
  229. package/dist/esm/shared-ts/src/threshold/participants.js +2 -1
  230. package/dist/esm/shared-ts/src/threshold/secp256k1.js +6 -0
  231. package/dist/esm/shared-ts/src/utils/domainIds.js +7 -0
  232. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  233. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +14 -1
  234. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +5 -4
  235. package/dist/esm/utils/qrScanner.js +10 -8
  236. package/dist/public/headers.manifest.json +1 -1
  237. package/dist/public/sdk/ConfirmationDrawer-mu3iThxX.js +1 -0
  238. package/dist/public/sdk/NonceCoordinator-Dq-FZpBz.js +1 -0
  239. package/dist/{esm/sdk/accountLifecycle-CBOkr0vU.js → public/sdk/accountLifecycle-fLNUdjct.js} +1 -1
  240. package/dist/public/sdk/{activeWalletSession-WdZkhtBB.js → activeWalletSession-BpbnpU9s.js} +1 -1
  241. package/dist/public/sdk/adapters-u7LVXthY.js +2 -0
  242. package/dist/public/sdk/appearance-token-vars-CzBVbO39.js +2 -0
  243. package/dist/public/sdk/authorizationAdmission-Dd23mTx7.js +1 -0
  244. package/dist/public/sdk/{canonicalPrimitives-Dsbsxgxc.js → canonicalPrimitives-BMP5yILS.js} +1 -1
  245. package/dist/public/sdk/{capabilityKinds-N8xo_IEh.js → capabilityKinds-D0Yrp9uf.js} +1 -1
  246. package/dist/public/sdk/{chains-C_X_fNuS.js → chains-CPmd4s9f.js} +1 -1
  247. package/dist/public/sdk/challengeDelivery-CG2J5Qxs.js +1 -0
  248. package/dist/public/sdk/{clientSessionPersistenceState-CBylL1Ul.js → clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
  249. package/dist/public/sdk/{commitQueue-DYEgzoLA.js → commitQueue-BW7BpYyA.js} +1 -1
  250. package/dist/public/sdk/configBuilder-BMNShuOu.js +1 -0
  251. package/dist/public/sdk/{configHelpers-B-hs0mTO.js → configHelpers-D50F_Txb.js} +1 -1
  252. package/dist/public/sdk/{digestEncoding-BX3VW9eF.js → digestEncoding-aC4dSf_x.js} +1 -1
  253. package/dist/public/sdk/{display-DsfJkAra.js → display-WtILOPQR.js} +1 -1
  254. package/dist/public/sdk/domainIds-C3fUa33Q.js +1 -0
  255. package/dist/public/sdk/ecdsaCapabilityManifest-DRc423SV.js +1 -0
  256. package/dist/public/sdk/{ecdsaChainTarget-Bfatk3oP.js → ecdsaChainTarget-DkOrgv4y.js} +1 -1
  257. package/dist/public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js +1 -0
  258. package/dist/{esm/sdk/ecdsaDerivationExport-DOGzq0qC.js → public/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
  259. package/dist/public/sdk/{ecdsaWalletRecords-CHfrYvKr.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
  260. package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-Bik0N8v9.js → public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
  261. package/dist/public/sdk/{errors-DIWY1KR9.js → errors-ADOZT8oV.js} +1 -1
  262. package/dist/public/sdk/export-viewer-host-ivf9LlBo.js +1 -0
  263. package/dist/{esm/sdk/exportKeypairOperation-DzbjKbnk.js → public/sdk/exportKeypairOperation-Gw7L5Htj.js} +1 -1
  264. package/dist/public/sdk/{helpers-B9fpZNAP.js → helpers-DS0bksx9.js} +1 -1
  265. package/dist/public/sdk/{host-DfWylEiw.js → host-B-2QXolt.js} +1 -1
  266. package/dist/public/sdk/{intentDigest-P_-CM7lS.js → intentDigest-Rh5Mg8X7.js} +1 -1
  267. package/dist/public/sdk/{lanes-5kcTFbPx.js → lanes-BzU7cv2T.js} +1 -1
  268. package/dist/public/sdk/localOnly-BKpUHtHa.js +1 -0
  269. package/dist/public/sdk/mountExportPrivateKeySurface-C8pUK6PQ.js +1 -0
  270. package/dist/public/sdk/mountRecoveryCodeBackupSurface-DUudF89t.js +2 -0
  271. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +1 -0
  272. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-RIfkYN0d.js → public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
  273. package/dist/public/sdk/{nonceLaneKeys-BCYfl1wv.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
  274. package/dist/public/sdk/{normalization-n503J-BI.js → normalization-Ct9-AY13.js} +1 -1
  275. package/dist/public/sdk/{operationFingerprint-BHNYryLY.js → operationFingerprint-C4VX-0NI.js} +1 -1
  276. package/dist/public/sdk/{passkey-custody-DpTM-eNJ.js → passkey-custody-Ba-NQ_4C.js} +1 -1
  277. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-C60sZMj5.js → pendingWalletRecoveryCodeBackup-7tBjuSe7.js} +1 -1
  278. package/dist/public/sdk/presignaturePool-BHoxnbOA.js +1 -0
  279. package/dist/public/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
  280. package/dist/public/sdk/{primitives-CqrjmIAH.js → primitives-CTmDwMNc.js} +1 -1
  281. package/dist/{esm/sdk/recovery-entrypoint-BULjaFBM.js → public/sdk/recovery-entrypoint-DWghFZrZ.js} +1 -1
  282. package/dist/public/sdk/{registration-CyF7nOXs.js → registration-CWpOVwhj.js} +1 -1
  283. package/dist/public/sdk/registration-D2OEgY7O.js +1 -0
  284. package/dist/public/sdk/{registrationAccounts-BQMUusdD.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
  285. package/dist/public/sdk/{registrationAuthMethodInput-RbSR7R1G.js → registrationAuthMethodInput-B23_HRil.js} +1 -1
  286. package/dist/public/sdk/{registrationIds-BaK3jUS6.js → registrationIds-B1OpqRAt.js} +1 -1
  287. package/dist/public/sdk/{registrationIntent-090Zj7Iu.js → registrationIntent-D4YDjf2U.js} +1 -1
  288. package/dist/{esm/sdk/registrationSignerPlan-CPzHavPM.js → public/sdk/registrationSignerPlan-BHkqlian.js} +1 -1
  289. package/dist/{esm/sdk/requireStepUpAuth-BCY5ZStI.js → public/sdk/requireStepUpAuth-CnSCFSOZ.js} +1 -1
  290. package/dist/public/sdk/routerAbNormalSigning-BV1t27aB.js +1 -0
  291. package/dist/public/sdk/runtime-auth-jtyQAuxZ.js +1 -0
  292. package/dist/public/sdk/runtime-device-link-vhRhB-wS.js +1 -0
  293. package/dist/public/sdk/runtime-ecdsa-tempo-BXWgFVBa.js +1 -0
  294. package/dist/public/sdk/runtime-email-otp-BlAaSKtk.js +1 -0
  295. package/dist/public/sdk/runtime-export-B4FuHhcH.js +1 -0
  296. package/dist/public/sdk/runtime-near-BnWOpEpA.js +1 -0
  297. package/dist/public/sdk/runtime-preferences-COm-LTiu.js +1 -0
  298. package/dist/public/sdk/runtime-recovery-BJTo5Idi.js +1 -0
  299. package/dist/public/sdk/{runtime-recovery-codes-GOytzExh.js → runtime-recovery-codes-CEOjdUHV.js} +1 -1
  300. package/dist/public/sdk/{sdkSentEvents-D4KtK7_I.js → sdkSentEvents-DujYAPEM.js} +1 -1
  301. package/dist/public/sdk/secp256k1-wOOHtPcK.js +1 -0
  302. package/dist/public/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
  303. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
  304. package/dist/public/sdk/shared-BKPGtAps.js +6 -0
  305. package/dist/{esm/sdk/signEvmFamily-Cpm3e6Zs.js → public/sdk/signEvmFamily-DT34Vtpa.js} +1 -1
  306. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js +1 -0
  307. package/dist/public/sdk/{signEvmWithUiConfirm-BRmdLgmm.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
  308. package/dist/public/sdk/signNear-B000QxBd.js +1 -0
  309. package/dist/public/sdk/signatureUses-B_nN17i7.js +1 -0
  310. package/dist/public/sdk/{signerDomain-Dp7BhfmZ.js → signerDomain-BFqRQ0Jl.js} +1 -1
  311. package/dist/public/sdk/{signingFlow-VAnM8L5C.js → signingFlow-gl85GOW4.js} +2 -2
  312. package/dist/public/sdk/{signingQueue-D_Ebmzcn.js → signingQueue-gW7wmOuL.js} +1 -1
  313. package/dist/{esm/sdk/singletons-BXhnsqeY.js → public/sdk/singletons-CAsc9LvA.js} +1 -1
  314. package/dist/public/sdk/surface-measurement-reporter-BJhfiPw6.js +1 -0
  315. package/dist/{esm/sdk/thresholdEcdsa-CneSKcRt.js → public/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
  316. package/dist/public/sdk/{trace-BBux0jtr.js → trace-CsRMlSh1.js} +1 -1
  317. package/dist/{esm/sdk/transaction-activity-Cccvec2J.js → public/sdk/transaction-activity-C0nCSW6c.js} +1 -1
  318. package/dist/public/sdk/transactionReviewAdmission-CNNho8IG.js +1 -0
  319. package/dist/{esm/sdk/transactionState-Day-1x7Y.js → public/sdk/transactionState-lB2qpkOm.js} +1 -1
  320. package/dist/public/sdk/tx-confirm-ui.js +2502 -1174
  321. package/dist/public/sdk/{types-hKLqDUhR.js → types-CQTWmtqu.js} +1 -1
  322. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  323. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  324. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  325. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  326. package/dist/{esm/sdk/wallet-recovery-Bfhfk52N.js → public/sdk/wallet-recovery-DFaS3geI.js} +1 -1
  327. package/dist/public/sdk/wallet-ui.css +1 -1
  328. package/dist/{esm/sdk/walletAuthMethodRecord-LniOQQmj.js → public/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
  329. package/dist/{esm/sdk/walletAuthority-CAiGuWW2.js → public/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
  330. package/dist/public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +1 -0
  331. package/dist/public/sdk/{walletDbName-DtRewci9.js → walletDbName-BxWApBQF.js} +1 -1
  332. package/dist/public/sdk/{walletOwnershipGeneration-B6HyR2rE.js → walletOwnershipGeneration-DSGfjuV2.js} +1 -1
  333. package/dist/public/sdk/{walletRecoveryCommit-C6HF84_U.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
  334. package/dist/public/sdk/{walletRecoveryRotate-BN3H8byw.js → walletRecoveryRotate-zvQThn37.js} +1 -1
  335. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
  336. package/dist/public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +1 -0
  337. package/dist/public/sdk/walletSessionAuthorizationStore-DnUMtkev.js +1 -0
  338. package/dist/public/sdk/walletSessionFailure-C6TAQTZn.js +1 -0
  339. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
  340. package/dist/public/sdk/webauthnP256-_ajaNl90.js +1 -0
  341. package/dist/public/sdk/webauthnPromptCoordinator-9bVeHcTZ.js +1 -0
  342. package/dist/public/sdk/workers/device-linking-key.worker.js +12 -11
  343. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +146 -48
  344. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +7 -6
  345. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +7 -6
  346. package/dist/public/sdk/workers/email-otp.worker.js +17 -3
  347. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +10 -0
  348. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +2 -1
  349. package/dist/public/wallet-assets.manifest.json +228 -228
  350. package/dist/public/wallet-service/index.html +4 -4
  351. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +14 -14
  352. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +1 -1
  353. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +1 -1
  354. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +1 -1
  355. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +5 -5
  356. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +3 -3
  357. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +1 -1
  358. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentity.d.ts +1 -1
  359. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -2
  360. package/dist/types/shared-ts/src/utils/base64.d.ts +2 -2
  361. package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +1 -1
  362. package/dist/types/shared-ts/src/utils/digests.d.ts +2 -2
  363. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +16 -16
  364. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +1 -1
  365. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +10 -10
  366. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +12 -11
  367. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +3 -3
  368. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +1 -1
  369. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +15 -15
  370. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +11 -11
  371. package/dist/types/shared-ts/src/utils/walletSessionFailure.d.ts +8 -8
  372. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +2 -2
  373. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +1 -1
  374. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +1 -1
  375. package/dist/types/wallet/build-paths.d.ts +73 -73
  376. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.d.ts +3 -2
  377. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingResume.d.ts +2 -2
  378. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceTargetActivation.d.ts +1 -1
  379. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +3 -3
  380. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationEd25519Yao.d.ts +4 -3
  381. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationSignerSet.d.ts +5 -0
  382. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +2 -2
  383. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +10 -1
  384. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +4 -2
  385. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +1 -0
  386. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +1 -0
  387. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -1
  388. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +4 -4
  389. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createEmailOtpCommands.d.ts +3 -2
  390. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +0 -1
  391. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +4 -6
  392. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +35 -0
  393. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.d.ts +17 -0
  394. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +3 -3
  395. package/dist/types/wallet/src/config.d.ts +8 -8
  396. package/dist/types/wallet/src/core/browser/walletIframe/events.d.ts +1 -1
  397. package/dist/types/wallet/src/core/indexedDB/linkedAuthoritySignerMaterial.d.ts +3 -3
  398. package/dist/types/wallet/src/core/indexedDB/pendingWalletRecoveryCommit.d.ts +1 -1
  399. package/dist/types/wallet/src/core/indexedDB/schemaNames.d.ts +181 -181
  400. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.d.ts +8 -8
  401. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.d.ts +4 -4
  402. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +1 -1
  403. package/dist/types/wallet/src/core/indexedDB/walletCustodyEd25519MaterialRecord.d.ts +2 -2
  404. package/dist/types/wallet/src/core/indexedDB/walletDbName.d.ts +1 -1
  405. package/dist/types/wallet/src/core/signingEngine/chains/evm/evmAdapter.d.ts +1 -1
  406. package/dist/types/wallet/src/core/signingEngine/chains/evm/evmSigning.types.d.ts +1 -0
  407. package/dist/types/wallet/src/core/signingEngine/chains/tempo/tempoAdapter.d.ts +1 -1
  408. package/dist/types/wallet/src/core/signingEngine/flows/shared/signingStateMachine.d.ts +27 -27
  409. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/secp256k1.d.ts +1 -1
  410. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/webauthnP256.d.ts +1 -1
  411. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +17 -17
  412. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +40 -40
  413. package/dist/types/wallet/src/core/signingEngine/session/material/walletSigningStateFailure.d.ts +4 -4
  414. package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +8 -8
  415. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +1 -1
  416. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionRecords.d.ts +1 -1
  417. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmCommon.d.ts +3 -3
  418. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +4 -4
  419. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +1 -1
  420. package/dist/types/wallet/src/core/signingEngine/threshold/sessionPolicy.d.ts +1 -1
  421. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.d.ts +1 -1
  422. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +3 -1
  423. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.d.ts +2 -3
  424. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.d.ts +3 -1
  425. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +3 -1
  426. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.d.ts +0 -1
  427. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +0 -1
  428. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/CopyStatusIcon.d.ts +1 -1
  429. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +0 -1
  430. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +1 -1
  431. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PadlockIcon.d.ts +1 -1
  432. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyHaloLoading.d.ts +1 -1
  433. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.d.ts +3 -1
  434. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.d.ts +1 -2
  435. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +3 -1
  436. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +0 -1
  437. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/SeamsWordmark.d.ts +1 -1
  438. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +0 -1
  439. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +3 -1
  440. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +3 -1
  441. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +0 -1
  442. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/WalletLocale.d.ts +18 -0
  443. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/helpers.d.ts +2 -2
  444. package/dist/types/wallet/src/core/signingEngine/workerManager/SignerWorkerManager.d.ts +1 -0
  445. package/dist/types/wallet/src/core/signingEngine/workerManager/deviceLinkingPorts.d.ts +1 -1
  446. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.d.ts +3 -3
  447. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.d.ts +1 -1
  448. package/dist/types/wallet/src/core/signingEngine/workerManager/validation.d.ts +1 -1
  449. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTransport.d.ts +1 -0
  450. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +1 -1
  451. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ecdsaTargetShareHpke.d.ts +3 -3
  452. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ordinaryMaterialState.d.ts +1 -1
  453. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +3 -3
  454. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/materialParsing.d.ts +1 -1
  455. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/payloadParsing.d.ts +2 -2
  456. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +1 -1
  457. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/workerErrorPayload.d.ts +2 -2
  458. package/dist/types/wallet/src/core/types/actionBuilders.d.ts +16 -2
  459. package/dist/types/wallet/src/core/types/amounts.d.ts +75 -0
  460. package/dist/types/wallet/src/core/types/amounts.typecheck.d.ts +2 -0
  461. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +5 -5
  462. package/dist/types/wallet/src/core/types/seams.d.ts +3 -0
  463. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +1 -1
  464. package/dist/types/wallet/src/core/types/signer-worker.d.ts +7 -7
  465. package/dist/types/wallet/src/core/ui/locale.d.ts +5 -0
  466. package/dist/types/wallet/src/core/ui/messages.d.ts +8 -0
  467. package/dist/types/wallet/src/externalEvm/types.d.ts +1 -0
  468. package/dist/types/wallet/src/index.d.ts +5 -1
  469. package/dist/types/wallet/src/react/{hooks/useWallet.d.ts → boundWallet.d.ts} +8 -48
  470. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +1 -0
  471. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +0 -1
  472. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountsSection.d.ts +0 -1
  473. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +0 -1
  474. package/dist/types/wallet/src/react/components/AccountMenuButton/ExportKeysSection.d.ts +0 -1
  475. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +0 -1
  476. package/dist/types/wallet/src/react/components/AccountMenuButton/ProfileDropdown.d.ts +0 -1
  477. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +3 -0
  478. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +4 -2
  479. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -1
  480. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +0 -1
  481. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -1
  482. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -1
  483. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -1
  484. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -1
  485. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockKeyholeIcon.d.ts +1 -1
  486. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -1
  487. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/PlusIcon.d.ts +1 -1
  488. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -1
  489. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -1
  490. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -1
  491. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -1
  492. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/TouchIcon.d.ts +0 -1
  493. package/dist/types/wallet/src/react/components/AccountMenuButton/index.d.ts +0 -1
  494. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +8 -8
  495. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.d.ts +2 -1
  496. package/dist/types/wallet/src/react/components/ShowQRCode.d.ts +0 -1
  497. package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +0 -1
  498. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +1 -0
  499. package/dist/types/wallet/src/react/context/WalletLocale.d.ts +16 -0
  500. package/dist/types/wallet/src/react/context/index.d.ts +2 -1
  501. package/dist/types/wallet/src/react/context/useSeamsContextValue.d.ts +2 -2
  502. package/dist/types/wallet/src/react/index.d.ts +3 -2
  503. package/dist/types/wallet/src/react/styles.d.ts +2 -0
  504. package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +57 -57
  505. package/dist/types/wallet/src/react/types.d.ts +14 -1
  506. package/dist/types/wallet/src/theme/base-styles.d.ts +4 -4
  507. package/dist/workers/device-linking-key.worker.js +12 -11
  508. package/dist/workers/ecdsa-derivation-client.worker.js +146 -48
  509. package/dist/workers/ecdsa-online-client.worker.js +7 -6
  510. package/dist/workers/ecdsa-presign-client.worker.js +7 -6
  511. package/dist/workers/email-otp.worker.js +17 -3
  512. package/dist/workers/passkey-mpc-export.worker.js +10 -0
  513. package/dist/workers/passkey-mpc-session.worker.js +2 -1
  514. package/package.json +8 -6
  515. package/dist/esm/react/hooks/useWallet.js +0 -108
  516. package/dist/esm/sdk/ConfirmationDrawer-BFzQjd1P.js +0 -1
  517. package/dist/esm/sdk/NonceCoordinator-CDGnEgfI.js +0 -1
  518. package/dist/esm/sdk/adapters-DsAaBNNY.js +0 -2
  519. package/dist/esm/sdk/authorizationAdmission-CGinGhXH.js +0 -1
  520. package/dist/esm/sdk/challengeDelivery-CATQ4u6P.js +0 -1
  521. package/dist/esm/sdk/configBuilder-BMawmNpz.js +0 -1
  522. package/dist/esm/sdk/domainIds-BzkGsRqO.js +0 -1
  523. package/dist/esm/sdk/ecdsaCapabilityManifest-DX6TflEz.js +0 -1
  524. package/dist/esm/sdk/ecdsaDerivationClientWasm-CpjnN4aK.js +0 -1
  525. package/dist/esm/sdk/export-viewer-host-CV-lSsQF.js +0 -1
  526. package/dist/esm/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  527. package/dist/esm/sdk/localOnly-C5mSXb_D.js +0 -1
  528. package/dist/esm/sdk/mountExportPrivateKeySurface-CatAhYoG.js +0 -1
  529. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DlEb3uD7.js +0 -2
  530. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-Bo3IOTS-.js +0 -1
  531. package/dist/esm/sdk/presignaturePool-V10fZpG3.js +0 -1
  532. package/dist/esm/sdk/registration-yoF0o52H.js +0 -1
  533. package/dist/esm/sdk/routerAbNormalSigning-C4P2tDU-.js +0 -1
  534. package/dist/esm/sdk/runtime-auth--i_j8PP7.js +0 -1
  535. package/dist/esm/sdk/runtime-device-link-fpvaxYyR.js +0 -1
  536. package/dist/esm/sdk/runtime-ecdsa-tempo-AE5QTaXu.js +0 -1
  537. package/dist/esm/sdk/runtime-email-otp-Dl03QI-O.js +0 -1
  538. package/dist/esm/sdk/runtime-export-F9s12UcT.js +0 -1
  539. package/dist/esm/sdk/runtime-near-Bjrz1KYf.js +0 -1
  540. package/dist/esm/sdk/runtime-preferences-oLRSEqmz.js +0 -1
  541. package/dist/esm/sdk/runtime-recovery-DBBKvIIg.js +0 -1
  542. package/dist/esm/sdk/secp256k1-CKq7_HD-.js +0 -1
  543. package/dist/esm/sdk/sessionObservationRevision-CnEOLDbl.js +0 -1
  544. package/dist/esm/sdk/shared-D893jckQ.js +0 -6
  545. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-DGWmm9n7.js +0 -1
  546. package/dist/esm/sdk/signNear-XGZBxc_g.js +0 -1
  547. package/dist/esm/sdk/signatureUses-BKAoDbQd.js +0 -1
  548. package/dist/esm/sdk/surface-measurement-reporter-DvVHPu_O.js +0 -1
  549. package/dist/esm/sdk/transactionReviewAdmission-CIvR4W5_.js +0 -1
  550. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B4fTDL10.js +0 -1
  551. package/dist/esm/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +0 -1
  552. package/dist/esm/sdk/walletSessionAuthorizationStatus-BL7j2TeM.js +0 -1
  553. package/dist/esm/sdk/walletSessionAuthorizationStore-DmYe-cDR.js +0 -1
  554. package/dist/esm/sdk/walletSessionFailure-YuhraC3P.js +0 -1
  555. package/dist/esm/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  556. package/dist/esm/sdk/webauthnP256-BwgxtG5N.js +0 -1
  557. package/dist/esm/sdk/webauthnPromptCoordinator-CwJeKiYq.js +0 -1
  558. package/dist/public/sdk/ConfirmationDrawer-BFzQjd1P.js +0 -1
  559. package/dist/public/sdk/NonceCoordinator-CDGnEgfI.js +0 -1
  560. package/dist/public/sdk/adapters-DsAaBNNY.js +0 -2
  561. package/dist/public/sdk/authorizationAdmission-CGinGhXH.js +0 -1
  562. package/dist/public/sdk/challengeDelivery-CATQ4u6P.js +0 -1
  563. package/dist/public/sdk/configBuilder-BMawmNpz.js +0 -1
  564. package/dist/public/sdk/domainIds-BzkGsRqO.js +0 -1
  565. package/dist/public/sdk/ecdsaCapabilityManifest-DX6TflEz.js +0 -1
  566. package/dist/public/sdk/ecdsaDerivationClientWasm-CpjnN4aK.js +0 -1
  567. package/dist/public/sdk/export-viewer-host-CV-lSsQF.js +0 -1
  568. package/dist/public/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
  569. package/dist/public/sdk/localOnly-C5mSXb_D.js +0 -1
  570. package/dist/public/sdk/mountExportPrivateKeySurface-CatAhYoG.js +0 -1
  571. package/dist/public/sdk/mountRecoveryCodeBackupSurface-DlEb3uD7.js +0 -2
  572. package/dist/public/sdk/nearEd25519YaoMaterialActivation-Bo3IOTS-.js +0 -1
  573. package/dist/public/sdk/presignaturePool-V10fZpG3.js +0 -1
  574. package/dist/public/sdk/registration-yoF0o52H.js +0 -1
  575. package/dist/public/sdk/routerAbNormalSigning-C4P2tDU-.js +0 -1
  576. package/dist/public/sdk/runtime-auth--i_j8PP7.js +0 -1
  577. package/dist/public/sdk/runtime-device-link-fpvaxYyR.js +0 -1
  578. package/dist/public/sdk/runtime-ecdsa-tempo-AE5QTaXu.js +0 -1
  579. package/dist/public/sdk/runtime-email-otp-Dl03QI-O.js +0 -1
  580. package/dist/public/sdk/runtime-export-F9s12UcT.js +0 -1
  581. package/dist/public/sdk/runtime-near-Bjrz1KYf.js +0 -1
  582. package/dist/public/sdk/runtime-preferences-oLRSEqmz.js +0 -1
  583. package/dist/public/sdk/runtime-recovery-DBBKvIIg.js +0 -1
  584. package/dist/public/sdk/secp256k1-CKq7_HD-.js +0 -1
  585. package/dist/public/sdk/sessionObservationRevision-CnEOLDbl.js +0 -1
  586. package/dist/public/sdk/shared-D893jckQ.js +0 -6
  587. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-DGWmm9n7.js +0 -1
  588. package/dist/public/sdk/signNear-XGZBxc_g.js +0 -1
  589. package/dist/public/sdk/signatureUses-BKAoDbQd.js +0 -1
  590. package/dist/public/sdk/surface-measurement-reporter-DvVHPu_O.js +0 -1
  591. package/dist/public/sdk/transactionReviewAdmission-CIvR4W5_.js +0 -1
  592. package/dist/public/sdk/walletCustodyEcdsaContinuity-B4fTDL10.js +0 -1
  593. package/dist/public/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +0 -1
  594. package/dist/public/sdk/walletSessionAuthorizationStatus-BL7j2TeM.js +0 -1
  595. package/dist/public/sdk/walletSessionAuthorizationStore-DmYe-cDR.js +0 -1
  596. package/dist/public/sdk/walletSessionFailure-YuhraC3P.js +0 -1
  597. package/dist/public/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
  598. package/dist/public/sdk/webauthnP256-BwgxtG5N.js +0 -1
  599. package/dist/public/sdk/webauthnPromptCoordinator-CwJeKiYq.js +0 -1
  600. /package/dist/esm/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  601. /package/dist/esm/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  602. /package/dist/esm/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
  603. /package/dist/public/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
  604. /package/dist/public/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
  605. /package/dist/public/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
@@ -1,2 +1,2 @@
1
- import{c as e,t}from"./chains-C_X_fNuS.js";import{i as n}from"./base64-DW79QA0h.js";import{o as r,r as i}from"./canonicalPrimitives-Dsbsxgxc.js";import{a,c as o,r as s}from"./ecdsaChainTarget-Bfatk3oP.js";import{m as c,o as l}from"./sdkSentEvents-D4KtK7_I.js";import{t as u}from"./jsonRpc-BVDv1wfm.js";import{r as d}from"./types-hKLqDUhR.js";import{i as f}from"./helpers-B9fpZNAP.js";import{r as p}from"./operationFingerprint-BHNYryLY.js";import{i as m}from"./trace-BBux0jtr.js";import{t as h}from"./bytes-DZRW2UDg.js";import{n as g,r as _,t as v}from"./normalization-C6fQN6mW.js";import{a as y,i as b,n as x,r as S}from"./types-Buoe6179.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-BCY5ZStI.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`),r=U(t,`from`,`eth_getTransactionReceipt`),i=H(t,`blockNumber`,`eth_getTransactionReceipt`),a=H(t,`status`,`eth_getTransactionReceipt`),o=H(t,`gasUsed`,`eth_getTransactionReceipt`),s=H(t,`effectiveGasPrice`,`eth_getTransactionReceipt`),c=H(t,`gasPrice`,`eth_getTransactionReceipt`);return{...n===void 0?{}:{transactionHash:n},...r===void 0?{}:{from:r},...i===void 0?{}:{blockNumber:i},...a===void 0?{}:{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=>ue(await i({method:`eth_getTransactionReceipt`,params:[e.txHash],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}})),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&&typeof C==`object`&&typeof C.blockNumber==`string`){let t=q(C.blockNumber);if(!t)throw Error(`Receipt missing valid blockNumber`);let a=B(t,`receipt.blockNumber`);if(i<=1)return C;let s=Math.max(1,l-Date.now()),c=q((await o({blockTag:`latest`,timeoutMs:Math.min(r,s)}).catch(()=>null))?.number);if(c){let e=B(c,`latest.number`);if(e>=a&&e-a+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{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=(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`:V=t.value;break;case`authorization_required`:V=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=V;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)});H={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:P.then(dt)});let F=null,I=null,L=null,R=null,z=!1,B=null,V=null,H=null,U=async(e,t,n)=>{if(r.resolveEcdsaSigningMaterialPlan){let e=await r.resolveEcdsaSigningMaterialPlan();switch(e.kind){case`ready`:V=e.value;break;case`authorization_required`:V=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=V;if(!i)throw Error(`[chains] missing ready threshold ECDSA material for secp256k1 signing`);if(!I||I.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=H;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:I,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});L=await ne({runtime:r.touchConfirm,request:e})(),R=await P,z=R.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`);F=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}R=await P,z=R.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});F=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:R.challengeB64u,intentDigest:R.intentDigestHex,displayModel:R.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:H,challengeB64u:R.challengeB64u})}}:e.kind===`email_otp`?{...a,...e.confirmationAuthPayload,emailOtpPrompt:e.emailOtpPrompt}:{...a,...e.confirmationAuthPayload};L=await ne({runtime:r.touchConfirm,request:c})();let u=L;if(!u)throw Error(`[chains] signing confirmation did not produce a decision`);switch(S(`auth_confirmed`),r.authorization.kind){case`owner`:I=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(!R)throw Error(`[chains] signing intent must be prepared before threshold admission`);if(!L)throw Error(`[chains] signing confirmation is required before threshold admission`);if(!F)throw Error(`[chains] signing auth payload is required before threshold admission`);switch(r.authorization.kind){case`owner`:if(!I)throw Error(`[chains] signing step-up authorization is required before threshold admission`);if(z&&!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(!R)throw Error(`[chains] signing intent must be prepared before signing`);if(!L)throw Error(`[chains] signing confirmation must complete before signing`);let n=R.intent;z&&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(!L.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(L.credential)})).keyRef}else if(e.algorithm===`secp256k1`){let t=await ut({operationFingerprint:r.signingOperation?.operationFingerprint,signingDigest32:e.digest32,displayModel:R.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();B=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}),!B)throw Error(`[chains] signing operation completed without a signed result`);let e=B;return O?{...e,managedNonce:ve(O)}:e}catch(e){throw A||(O?await M():r.releaseNonceReservation&&await P.then(async()=>{await M()}).catch(()=>void 0)),e}}export{tt as a,Ce as c,J as d,z as f,k as g,j as h,et as i,ye as l,M as m,ot as n,at as o,P as p,vt as r,it as s,Q as t,be as u};
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-BMP5yILS.js";import{a,c as o,r as s}from"./ecdsaChainTarget-DkOrgv4y.js";import{m as c,o as l}from"./sdkSentEvents-DujYAPEM.js";import{t as u}from"./jsonRpc-BVDv1wfm.js";import{r as d}from"./types-CQTWmtqu.js";import{i as f}from"./helpers-DS0bksx9.js";import{r as p}from"./operationFingerprint-C4VX-0NI.js";import{i as m}from"./trace-CsRMlSh1.js";import{t as h}from"./bytes-DZRW2UDg.js";import{n as g,r as _,t as v}from"./normalization-C6fQN6mW.js";import{a as y,i as b,n as x,r as S}from"./types-Buoe6179.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-CnSCFSOZ.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`),r=U(t,`from`,`eth_getTransactionReceipt`),i=H(t,`blockNumber`,`eth_getTransactionReceipt`),a=H(t,`status`,`eth_getTransactionReceipt`),o=H(t,`gasUsed`,`eth_getTransactionReceipt`),s=H(t,`effectiveGasPrice`,`eth_getTransactionReceipt`),c=H(t,`gasPrice`,`eth_getTransactionReceipt`);return{...n===void 0?{}:{transactionHash:n},...r===void 0?{}:{from:r},...i===void 0?{}:{blockNumber:i},...a===void 0?{}:{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=>ue(await i({method:`eth_getTransactionReceipt`,params:[e.txHash],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}})),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&&typeof C==`object`&&typeof C.blockNumber==`string`){let t=q(C.blockNumber);if(!t)throw Error(`Receipt missing valid blockNumber`);let a=B(t,`receipt.blockNumber`);if(i<=1)return C;let s=Math.max(1,l-Date.now()),c=q((await o({blockTag:`latest`,timeoutMs:Math.min(r,s)}).catch(()=>null))?.number);if(c){let e=B(c,`latest.number`);if(e>=a&&e-a+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{tt as a,Ce as c,J as d,z as f,k as g,j as h,et as i,ye as l,M as m,ot as n,at as o,P as p,vt as r,it as s,Q as t,be as u};
@@ -1 +1 @@
1
- import{h as e,r as t}from"./domainIds-BzkGsRqO.js";import{k as n}from"./chains-C_X_fNuS.js";import{A as r,D as i,k as a}from"./primitives-CqrjmIAH.js";import{r as o}from"./base64-DW79QA0h.js";import{c as s}from"./ecdsaChainTarget-Bfatk3oP.js";import{a as c,c as l}from"./walletAuthority-CAiGuWW2.js";import{D as u,Dt as d,Et as f,G as p,Kt as m,Nt as h,P as g,T as _,V as v,X as y,Y as b,d as x,en as S,f as C,jt as w,m as T,mt as E,o as ee,p as te,tn as D}from"./emailOtpEcdsaDerivationIdentity-Bik0N8v9.js";import{v as O,y as k}from"./challengeDelivery-CATQ4u6P.js";import{p as A}from"./ecdsaDerivationClientWasm-CpjnN4aK.js";import{a as j,n as M}from"./walletSessionFailure-YuhraC3P.js";import{a as N}from"./clientSessionPersistenceState-CBylL1Ul.js";import{t as P}from"./bytes-DZRW2UDg.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 c(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 S(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&&O(e.source,t.source)&&k(e.target,t.target)&&e.targetClientPublicKey33B64u===t.targetClientPublicKey33B64u}function X(e,t){return e.kind===t.kind&&E(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=u(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 m({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 p;try{p=await h({authority:e.factorAuthority})}catch(e){return H(`authority_identity_mismatch`,e instanceof Error?e.message:String(e))}let g={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:p,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:_(e.selected.authMethod.rpId),credentialIdB64u:e.selected.authMethod.credentialIdB64u};if(!d(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:x({rpId:t.rpId,credentialIdB64u:t.credentialIdB64u})});return{...g,auth:t,factorAuthority:e.factorAuthority,resolvedKey:n}}if(!f(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 v={kind:`email_otp`,providerSubjectId:String(e.factorAuthority.factor.providerUserId)};return{...g,auth:v,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=w(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 y(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}${g}`}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=D(e.materialActivation),a=p(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 v(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=b(e.request),o=e.transport.kind===`wallet_session`?a(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),i({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};
1
+ import{h as e,r as t}from"./domainIds-C3fUa33Q.js";import{k as n}from"./chains-CPmd4s9f.js";import{A as r,D as i,k as a}from"./primitives-CTmDwMNc.js";import{r as o}from"./base64-BmKR3UqU.js";import{c as s}from"./ecdsaChainTarget-DkOrgv4y.js";import{a as c,c as l}from"./walletAuthority-BY3kyKQ-.js";import{D as u,Dt as d,Et as f,G as p,Kt as m,Nt as h,P as g,T as _,V as v,X as y,Y as b,d as x,en as S,f as C,jt as w,m as T,mt as E,o as ee,p as te,tn as D}from"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import{v as O,y as k}from"./challengeDelivery-CG2J5Qxs.js";import{p as A}from"./ecdsaDerivationClientWasm-DmwKWUEb.js";import{a as j,n as M}from"./walletSessionFailure-C6TAQTZn.js";import{a as N}from"./clientSessionPersistenceState-BgO4P6CZ.js";import{t as P}from"./bytes-DZRW2UDg.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 c(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 S(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&&O(e.source,t.source)&&k(e.target,t.target)&&e.targetClientPublicKey33B64u===t.targetClientPublicKey33B64u}function X(e,t){return e.kind===t.kind&&E(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=u(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 m({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 p;try{p=await h({authority:e.factorAuthority})}catch(e){return H(`authority_identity_mismatch`,e instanceof Error?e.message:String(e))}let g={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:p,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:_(e.selected.authMethod.rpId),credentialIdB64u:e.selected.authMethod.credentialIdB64u};if(!d(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:x({rpId:t.rpId,credentialIdB64u:t.credentialIdB64u})});return{...g,auth:t,factorAuthority:e.factorAuthority,resolvedKey:n}}if(!f(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 v={kind:`email_otp`,providerSubjectId:String(e.factorAuthority.factor.providerUserId)};return{...g,auth:v,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=w(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 y(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}${g}`}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=D(e.materialActivation),a=p(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 v(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=b(e.request),o=e.transport.kind===`wallet_session`?a(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),i({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};
@@ -1 +1 @@
1
- import{t as e}from"./walletDbName-DtRewci9.js";const t={appState:`app_state`,wallets:`wallets`,walletAuthorities:`wallet_authorities`,walletAuthMethods:`wallet_auth_methods`,walletAuthoritySignerMaterials:`wallet_authority_signer_materials`,walletAuthorityExportRoots:`wallet_authority_export_roots`,walletAuthorityInstallationReceipts:`wallet_authority_installation_receipts`,walletSelections:`wallet_selections`,walletSigners:`wallet_signers`,nearAccountProjections:`near_accounts`,signerOpsOutbox:`signer_ops_outbox`,nonceLaneLeases:`nonce_lane_leases`,nonceLaneLocks:`nonce_lane_locks`,keyMaterial:`key_material`,signingSessionSeals:`signing_session_seals`,signingSessionRestoreLeases:`signing_session_restore_leases`,pendingWalletRecoveryCodeBackups:`email_otp_pending_recovery_code_backups`,walletSessionAuthorizations:`wallet_session_authorizations`,ecdsaCapabilityManifests:`ecdsa_capability_manifests`,ecdsaCurrentCapabilityManifests:`ecdsa_current_capability_manifests`,ecdsaRoleLocalMaterial:`ecdsa_role_local_material`,ecdsaActivationCommitJournals:`ecdsa_activation_commit_journals`,ecdsaMaterialSealingKeys:`ecdsa_material_sealing_keys`,ecdsaClientPresignatures:`ecdsa_client_presignatures`},n={profileId:`profile_id`,updatedAt:`updated_at`,walletId:`wallet_id`,walletIdKind:`wallet_id_kind`,walletKindNearSignerSlot:`wallet_kind_near_signer_slot`,walletKindNearEd25519SigningKeyId:`wallet_kind_near_ed25519_signing_key_id`,walletKindChainTargetKeyHandle:`wallet_kind_chain_target_key_handle`,walletKindChainTargetKeyFacts:`wallet_kind_chain_target_key_facts`,walletSignerId:`wallet_signer_id`,nearAccountId:`near_account_id`,rpId:`rp_id`,chainTargetKey:`chain_target_key`,keyHandle:`key_handle`,thresholdOwnerAddress:`threshold_owner_address`,status:`status`,nextAttemptAt:`next_attempt_at`,statusNextAttemptAt:`status_next_attempt_at`,idempotencyKey:`idempotency_key`,laneKey:`lane_key`,state:`state`,expiresAtMs:`expires_at_ms`,recoveryCodesIssuedAtMs:`recovery_codes_issued_at_ms`,laneState:`lane_state`,walletExpiresAt:`wallet_expires_at`,ownerId:`owner_id`,publicKey:`public_key`,authMethod:`auth_method`,curve:`curve`,ed25519ThresholdSessionId:`ed25519_threshold_session_id`,ecdsaThresholdSessionId:`ecdsa_threshold_session_id`,thresholdSessionId:`threshold_session_id`,exactSigningLaneIdentityKey:`exact_signing_lane_identity_key`,enrollmentId:`enrollment_id`,walletIdEnrollmentId:`wallet_id_enrollment_id`,authIdentifierKey:`auth_identifier_key`,kindRpIdAuthIdentifier:`kind_rp_id_auth_identifier`,passkeyRpIdCredentialId:`passkey_rp_id_credential_id`,capabilityWallet:`capability_wallet`,capabilityWalletAuthorityState:`capability_wallet_authority_state`,capabilityWalletAuthority:`capability_wallet_authority`,walletAuthorityId:`wallet_authority_id`,walletAuthMethodId:`wallet_auth_method_id`,walletIdAuthorityId:`wallet_id_authority_id`,walletIdAuthorityStatus:`wallet_id_authority_status`,walletIdAuthMethodId:`wallet_id_auth_method_id`,walletAuthorityAuthMethodId:`wallet_authority_auth_method_id`,activationId:`activation_id`,walletAuthorityActivationId:`wallet_authority_activation_id`,walletIdDeviceId:`wallet_id_device_id`,packageSetDigest:`package_set_digest`,walletKeyId:`wallet_key_id`,walletIdLockGeneration:`wallet_id_lock_generation`,authorityDigest:`authority_digest`,revocationEpoch:`revocation_epoch`,poolIdentityKey:`pool_identity_key`,walletMaterialActivationId:`wallet_material_activation_id`},r=[{store:t.appState,keyPath:`key`,indexes:[]},{store:t.wallets,keyPath:`wallet_id`,indexes:[{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthorities,keyPath:`authority_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletIdAuthorityId,keyPath:[`wallet_id`,`authority_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`state`],unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthMethods,keyPath:`wallet_auth_method_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.authIdentifierKey,keyPath:`auth_identifier_key`,unique:!1},{name:n.kindRpIdAuthIdentifier,keyPath:[`kind`,`rp_id`,`auth_identifier_key`],unique:!1},{name:n.passkeyRpIdCredentialId,keyPath:[`kind`,`rp_id`,`credential_id_b64u`],unique:!0},{name:n.status,keyPath:`status`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletIdAuthMethodId,keyPath:[`wallet_id`,`wallet_auth_method_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`wallet_authority_id`,`status`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthoritySignerMaterials,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`activation_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.activationId,keyPath:`activation_id`,unique:!1},{name:n.walletAuthorityActivationId,keyPath:[`wallet_authority_id`,`activation_id`],unique:!0}]},{store:t.walletAuthorityExportRoots,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`wallet_key_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.walletKeyId,keyPath:`wallet_key_id`,unique:!1}]},{store:t.walletAuthorityInstallationReceipts,keyPath:`authority_id`,indexes:[{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.packageSetDigest,keyPath:`package_set_digest_b64u`,unique:!1},{name:n.updatedAt,keyPath:`installed_at_ms`,unique:!1}]},{store:t.walletSelections,keyPath:`wallet_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!0},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdLockGeneration,keyPath:[`wallet_id`,`lock_generation`],unique:!0}]},{store:t.walletSigners,keyPath:`wallet_signer_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.walletKindNearSignerSlot,keyPath:[`wallet_id`,`kind`,`near_signer_slot`],unique:!1},{name:n.walletKindNearEd25519SigningKeyId,keyPath:[`wallet_id`,`kind`,`near_ed25519_signing_key_id`],unique:!1},{name:n.walletKindChainTargetKeyHandle,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`key_handle`],unique:!0},{name:n.walletKindChainTargetKeyFacts,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`ecdsa_threshold_key_id`],unique:!0},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.thresholdOwnerAddress,keyPath:`threshold_owner_address`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.nearAccountProjections,keyPath:[`wallet_id`,`near_account_id`,`signer_slot`],indexes:[{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.profileId,keyPath:`profile_id`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signerOpsOutbox,keyPath:`op_id`,indexes:[{name:n.status,keyPath:`status`,unique:!1},{name:n.nextAttemptAt,keyPath:`next_attempt_at`,unique:!1},{name:n.statusNextAttemptAt,keyPath:[`status`,`next_attempt_at`],unique:!1},{name:n.idempotencyKey,keyPath:`idempotency_key`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1}]},{store:t.nonceLaneLeases,keyPath:`lease_id`,indexes:[{name:n.laneKey,keyPath:`lane_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.state,keyPath:`state`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.laneState,keyPath:[`lane_key`,`state`],unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]},{store:t.nonceLaneLocks,keyPath:`lock_key`,indexes:[{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1}]},{store:t.keyMaterial,keyPath:`key_material_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletSignerId,keyPath:`wallet_signer_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionSeals,keyPath:`store_key`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.curve,keyPath:`curve`,unique:!1},{name:n.ed25519ThresholdSessionId,keyPath:`ed25519_threshold_session_id`,unique:!1},{name:n.ecdsaThresholdSessionId,keyPath:`ecdsa_threshold_session_id`,unique:!1},{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollmentId`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.exactSigningLaneIdentityKey,keyPath:`exact_signing_lane_identity_key`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionRestoreLeases,keyPath:`lease_key`,indexes:[{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.pendingWalletRecoveryCodeBackups,keyPath:[`wallet_id`,`enrollment_id`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollment_id`,unique:!1},{name:n.walletIdEnrollmentId,keyPath:[`wallet_id`,`enrollment_id`],unique:!0},{name:n.recoveryCodesIssuedAtMs,keyPath:`recovery_codes_issued_at_ms`,unique:!1},{name:n.status,keyPath:`status`,unique:!1}]},{store:t.walletSessionAuthorizations,keyPath:`wallet_session_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.authorityDigest,keyPath:`authority_digest_b64u`,unique:!1},{name:n.revocationEpoch,keyPath:`authority_revocation_epoch`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.ecdsaCapabilityManifests,keyPath:`manifest_id`,indexes:[{name:n.capabilityWallet,keyPath:[`capability_ref`,`wallet_id`],unique:!1},{name:n.capabilityWalletAuthorityState,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`,`manifest_state`],unique:!1}]},{store:t.ecdsaCurrentCapabilityManifests,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1}]},{store:t.ecdsaRoleLocalMaterial,keyPath:`durable_material_ref`,indexes:[]},{store:t.ecdsaActivationCommitJournals,keyPath:`journal_id`,indexes:[{name:n.capabilityWalletAuthority,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],unique:!0}]},{store:t.ecdsaMaterialSealingKeys,keyPath:`key_id`,indexes:[]},{store:t.ecdsaClientPresignatures,keyPath:`record_id`,indexes:[{name:n.poolIdentityKey,keyPath:`pool_identity_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletMaterialActivationId,keyPath:[`wallet_id`,`material_activation_id`],unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]}],i=(e,t)=>t.some(t=>e instanceof t);let a,o;function s(){return a||=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}function c(){return o||=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const l=new WeakMap,u=new WeakMap,d=new WeakMap;function f(e){let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`success`,i),e.removeEventListener(`error`,a)},i=()=>{t(v(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener(`success`,i),e.addEventListener(`error`,a)});return d.set(t,e),t}function p(e){if(l.has(e))return;let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`complete`,i),e.removeEventListener(`error`,a),e.removeEventListener(`abort`,a)},i=()=>{t(),r()},a=()=>{n(e.error||new DOMException(`AbortError`,`AbortError`)),r()};e.addEventListener(`complete`,i),e.addEventListener(`error`,a),e.addEventListener(`abort`,a)});l.set(e,t)}let m={get(e,t,n){if(e instanceof IDBTransaction){if(t===`done`)return l.get(e);if(t===`store`)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return v(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&(t===`done`||t===`store`)?!0:t in e}};function h(e){m=e(m)}function g(e){return c().includes(e)?function(...t){return e.apply(y(this),t),v(this.request)}:function(...t){return v(e.apply(y(this),t))}}function _(e){return typeof e==`function`?g(e):(e instanceof IDBTransaction&&p(e),i(e,s())?new Proxy(e,m):e)}function v(e){if(e instanceof IDBRequest)return f(e);if(u.has(e))return u.get(e);let t=_(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const y=e=>d.get(e);function b(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){let o=indexedDB.open(e,t),s=v(o);return r&&o.addEventListener(`upgradeneeded`,e=>{r(v(o.result),e.oldVersion,e.newVersion,v(o.transaction),e)}),n&&o.addEventListener(`blocked`,e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{a&&e.addEventListener(`close`,()=>a()),i&&e.addEventListener(`versionchange`,e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}const x=[`get`,`getKey`,`getAll`,`getAllKeys`,`count`],S=[`put`,`add`,`delete`,`clear`],C=new Map;function w(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t==`string`))return;if(C.get(t))return C.get(t);let n=t.replace(/FromIndex$/,``),r=t!==n,i=S.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||x.includes(n)))return;let a=async function(e,...t){let a=this.transaction(e,i?`readwrite`:`readonly`),o=a.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&a.done]))[0]};return C.set(t,a),a}h(e=>({...e,get:(t,n,r)=>w(t,n)||e.get(t,n,r),has:(t,n)=>!!w(t,n)||e.has(t,n)}));const T=[`continue`,`continuePrimaryKey`,`advance`],E={},D=new WeakMap,O=new WeakMap,k={get(e,t){if(!T.includes(t))return e[t];let n=E[t];return n||=E[t]=function(...e){D.set(this,O.get(this)[t](...e))},n}};async function*A(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let n=new Proxy(t,k);for(O.set(n,t),d.set(n,y(t));t;)yield n,t=await(D.get(n)||t.continue()),D.delete(n)}function j(e,t){return t===Symbol.asyncIterator&&i(e,[IDBIndex,IDBObjectStore,IDBCursor])||t===`iterate`&&i(e,[IDBIndex,IDBObjectStore])}h(e=>({...e,get(t,n,r){return j(t,n)?A:e.get(t,n,r)},has(t,n){return j(t,n)||e.has(t,n)}}));const M={dbName:e,dbVersion:24};function N(e){return typeof e==`string`?e:[...e]}function P(e,t){let n=e.createObjectStore(t.store,{keyPath:N(t.keyPath)});for(let e of t.indexes)n.createIndex(e.name,N(e.keyPath),{unique:e.unique})}function F(e){for(let t of r)e.objectStoreNames.contains(t.store)||P(e,t)}const I=8e3;function L(e){return Error(`[SeamsWalletDBManager] IndexedDB open is blocked for ${e}. Close other tabs using this app and retry.`)}function R(e){return Error(e)}async function z(e,t,n,r){let i=!1,a=null,o=new Promise((e,o)=>{a=setTimeout(()=>{i||(r?.(),o(n))},t)});try{return await Promise.race([e,o])}finally{i=!0,a&&clearTimeout(a)}}async function B(e,t){let n=await t(e);return await e.tx.done,n}const V=new Set([t.walletAuthorities,t.walletAuthoritySignerMaterials,t.walletAuthorityExportRoots,t.walletAuthMethods,t.walletSelections,t.walletSessionAuthorizations]);function H(e,t,n,...r){let i=Reflect.apply(n,t,r);return e.changed=!0,i}function U(e,t,n){let r=Reflect.get(t,n);if(typeof r!=`function`)return r;switch(n){case`add`:case`put`:case`delete`:case`clear`:return H.bind(null,e,t,r);default:return r.bind(t)}}function W(e,t,n){let r=e.objectStore(n);return e.mode===`readonly`||!V.has(n)?r:new Proxy(r,{get:U.bind(null,t)})}function G(){}function K(e){if(typeof BroadcastChannel>`u`)return null;try{return new BroadcastChannel(`seams-wallet-authority:${e}`)}catch(e){return console.warn(`[SeamsWalletDBManager] Authority notifications are unavailable:`,e),null}}const q=new class{onWalletAuthorityChange(e){return this.walletAuthorityListeners.add(e),this.connectWalletAuthorityChannel(),this.removeWalletAuthorityListener.bind(this,e)}removeWalletAuthorityListener(e){this.walletAuthorityListeners.delete(e),this.walletAuthorityListeners.size===0&&this.closeWalletAuthorityChannel()}getWalletAuthorityRevision(){return this.walletAuthorityRevision}publishWalletAuthorityCommit(e,t){if(!e.changed)return;t===this.config.dbName&&this.invalidateWalletAuthority();let n=t===this.config.dbName?this.walletAuthorityChannel:null,r=n??K(t);if(r)try{r.postMessage(`authority_committed`)}catch(e){console.warn(`[SeamsWalletDBManager] Authority notification failed:`,e)}finally{r!==n&&r.close()}}connectWalletAuthorityChannel(){if(this.disabled||this.walletAuthorityChannel||this.walletAuthorityListeners.size===0)return;let e=K(this.config.dbName);e&&(e.onmessage=this.receiveWalletAuthorityCommit.bind(this,e),this.walletAuthorityChannel=e)}closeWalletAuthorityChannel(){this.walletAuthorityChannel?.close(),this.walletAuthorityChannel=null}receiveWalletAuthorityCommit(e,t){e!==this.walletAuthorityChannel||t.data!==`authority_committed`||this.invalidateWalletAuthority()}invalidateWalletAuthority(){this.walletAuthorityRevision+=1;for(let e of Array.from(this.walletAuthorityListeners))try{e()}catch{}}constructor(e=M){this.dbPromise=null,this.disabled=!1,this.walletAuthorityRevision=0,this.walletAuthorityChannel=null,this.walletAuthorityListeners=new Set,this.config=e}getDbName(){return this.config.dbName}setDbName(e){this.config.dbName!==e&&(this.close(),this.closeWalletAuthorityChannel(),this.config={...this.config,dbName:e},this.connectWalletAuthorityChannel(),this.invalidateWalletAuthority())}setDisabled(e){this.disabled=e,e?(this.close(),this.closeWalletAuthorityChannel()):this.connectWalletAuthorityChannel()}isDisabled(){return this.disabled}close(){this.dbPromise&&=(this.dbPromise.then(e=>e.close()).catch(()=>void 0),null)}async getDB(){if(this.disabled)throw Error(`[SeamsWalletDBManager] IndexedDB is disabled in this environment.`);if(!this.dbPromise){let e=this.config.dbName,t=this.config.dbVersion,n=null,r=null,i=new Promise((e,t)=>{r=t}),a=b(e,t,{upgrade(e){F(e)},blocked(){console.warn(`[SeamsWalletDBManager] IndexedDB open is blocked.`,{dbName:e,dbVersion:t}),n=setTimeout(()=>{r?.(L(e))},3e3)},blocking:()=>{console.warn(`[SeamsWalletDBManager] IndexedDB connection is blocking an upgrade.`,{dbName:e,dbVersion:t}),this.close()},terminated(){console.warn(`[SeamsWalletDBManager] IndexedDB connection has been terminated.`,{dbName:e,dbVersion:t})}});this.dbPromise=z(Promise.race([a,i]).finally(()=>{n&&clearTimeout(n)}),I,R(`[SeamsWalletDBManager] IndexedDB open timed out for ${e}. Close other tabs using this app and retry.`)).catch(e=>{throw this.dbPromise=null,a.then(e=>e.close()).catch(()=>void 0),e})}return await this.dbPromise}async runTransaction(e,t,n,r){let i=await z(this.getDB(),I,R(`[SeamsWalletDBManager] IndexedDB connection timed out for ${this.config.dbName}. Close other tabs using this app and retry.`)),a=i.transaction([...e],t,r),o={changed:!1},s={db:i,tx:a,store:W.bind(null,a,o)};a.done.then(this.publishWalletAuthorityCommit.bind(this,o,i.name)).catch(G);try{return await z(B(s,n),8e3,R(`[SeamsWalletDBManager] IndexedDB transaction timed out for ${this.config.dbName}. Close other tabs using this app and retry.`),()=>{try{a.abort()}catch{}})}catch(e){try{a.abort()}catch{}throw await a.done.catch(()=>void 0),e}}};export{t as i,y as n,n as r,q as t};
1
+ import{t as e}from"./walletDbName-BxWApBQF.js";const t={appState:`app_state`,wallets:`wallets`,walletAuthorities:`wallet_authorities`,walletAuthMethods:`wallet_auth_methods`,walletAuthoritySignerMaterials:`wallet_authority_signer_materials`,walletAuthorityExportRoots:`wallet_authority_export_roots`,walletAuthorityInstallationReceipts:`wallet_authority_installation_receipts`,walletSelections:`wallet_selections`,walletSigners:`wallet_signers`,nearAccountProjections:`near_accounts`,signerOpsOutbox:`signer_ops_outbox`,nonceLaneLeases:`nonce_lane_leases`,nonceLaneLocks:`nonce_lane_locks`,keyMaterial:`key_material`,signingSessionSeals:`signing_session_seals`,signingSessionRestoreLeases:`signing_session_restore_leases`,pendingWalletRecoveryCodeBackups:`email_otp_pending_recovery_code_backups`,walletSessionAuthorizations:`wallet_session_authorizations`,ecdsaCapabilityManifests:`ecdsa_capability_manifests`,ecdsaCurrentCapabilityManifests:`ecdsa_current_capability_manifests`,ecdsaRoleLocalMaterial:`ecdsa_role_local_material`,ecdsaActivationCommitJournals:`ecdsa_activation_commit_journals`,ecdsaMaterialSealingKeys:`ecdsa_material_sealing_keys`,ecdsaClientPresignatures:`ecdsa_client_presignatures`},n={profileId:`profile_id`,updatedAt:`updated_at`,walletId:`wallet_id`,walletIdKind:`wallet_id_kind`,walletKindNearSignerSlot:`wallet_kind_near_signer_slot`,walletKindNearEd25519SigningKeyId:`wallet_kind_near_ed25519_signing_key_id`,walletKindChainTargetKeyHandle:`wallet_kind_chain_target_key_handle`,walletKindChainTargetKeyFacts:`wallet_kind_chain_target_key_facts`,walletSignerId:`wallet_signer_id`,nearAccountId:`near_account_id`,rpId:`rp_id`,chainTargetKey:`chain_target_key`,keyHandle:`key_handle`,thresholdOwnerAddress:`threshold_owner_address`,status:`status`,nextAttemptAt:`next_attempt_at`,statusNextAttemptAt:`status_next_attempt_at`,idempotencyKey:`idempotency_key`,laneKey:`lane_key`,state:`state`,expiresAtMs:`expires_at_ms`,recoveryCodesIssuedAtMs:`recovery_codes_issued_at_ms`,laneState:`lane_state`,walletExpiresAt:`wallet_expires_at`,ownerId:`owner_id`,publicKey:`public_key`,authMethod:`auth_method`,curve:`curve`,ed25519ThresholdSessionId:`ed25519_threshold_session_id`,ecdsaThresholdSessionId:`ecdsa_threshold_session_id`,thresholdSessionId:`threshold_session_id`,exactSigningLaneIdentityKey:`exact_signing_lane_identity_key`,enrollmentId:`enrollment_id`,walletIdEnrollmentId:`wallet_id_enrollment_id`,authIdentifierKey:`auth_identifier_key`,kindRpIdAuthIdentifier:`kind_rp_id_auth_identifier`,passkeyRpIdCredentialId:`passkey_rp_id_credential_id`,capabilityWallet:`capability_wallet`,capabilityWalletAuthorityState:`capability_wallet_authority_state`,capabilityWalletAuthority:`capability_wallet_authority`,walletAuthorityId:`wallet_authority_id`,walletAuthMethodId:`wallet_auth_method_id`,walletIdAuthorityId:`wallet_id_authority_id`,walletIdAuthorityStatus:`wallet_id_authority_status`,walletIdAuthMethodId:`wallet_id_auth_method_id`,walletAuthorityAuthMethodId:`wallet_authority_auth_method_id`,activationId:`activation_id`,walletAuthorityActivationId:`wallet_authority_activation_id`,walletIdDeviceId:`wallet_id_device_id`,packageSetDigest:`package_set_digest`,walletKeyId:`wallet_key_id`,walletIdLockGeneration:`wallet_id_lock_generation`,authorityDigest:`authority_digest`,revocationEpoch:`revocation_epoch`,poolIdentityKey:`pool_identity_key`,walletMaterialActivationId:`wallet_material_activation_id`},r=[{store:t.appState,keyPath:`key`,indexes:[]},{store:t.wallets,keyPath:`wallet_id`,indexes:[{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthorities,keyPath:`authority_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletIdAuthorityId,keyPath:[`wallet_id`,`authority_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`state`],unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthMethods,keyPath:`wallet_auth_method_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.authIdentifierKey,keyPath:`auth_identifier_key`,unique:!1},{name:n.kindRpIdAuthIdentifier,keyPath:[`kind`,`rp_id`,`auth_identifier_key`],unique:!1},{name:n.passkeyRpIdCredentialId,keyPath:[`kind`,`rp_id`,`credential_id_b64u`],unique:!0},{name:n.status,keyPath:`status`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletIdAuthMethodId,keyPath:[`wallet_id`,`wallet_auth_method_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`wallet_authority_id`,`status`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthoritySignerMaterials,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`activation_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.activationId,keyPath:`activation_id`,unique:!1},{name:n.walletAuthorityActivationId,keyPath:[`wallet_authority_id`,`activation_id`],unique:!0}]},{store:t.walletAuthorityExportRoots,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`wallet_key_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.walletKeyId,keyPath:`wallet_key_id`,unique:!1}]},{store:t.walletAuthorityInstallationReceipts,keyPath:`authority_id`,indexes:[{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.packageSetDigest,keyPath:`package_set_digest_b64u`,unique:!1},{name:n.updatedAt,keyPath:`installed_at_ms`,unique:!1}]},{store:t.walletSelections,keyPath:`wallet_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!0},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdLockGeneration,keyPath:[`wallet_id`,`lock_generation`],unique:!0}]},{store:t.walletSigners,keyPath:`wallet_signer_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.walletKindNearSignerSlot,keyPath:[`wallet_id`,`kind`,`near_signer_slot`],unique:!1},{name:n.walletKindNearEd25519SigningKeyId,keyPath:[`wallet_id`,`kind`,`near_ed25519_signing_key_id`],unique:!1},{name:n.walletKindChainTargetKeyHandle,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`key_handle`],unique:!0},{name:n.walletKindChainTargetKeyFacts,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`ecdsa_threshold_key_id`],unique:!0},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.thresholdOwnerAddress,keyPath:`threshold_owner_address`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.nearAccountProjections,keyPath:[`wallet_id`,`near_account_id`,`signer_slot`],indexes:[{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.profileId,keyPath:`profile_id`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signerOpsOutbox,keyPath:`op_id`,indexes:[{name:n.status,keyPath:`status`,unique:!1},{name:n.nextAttemptAt,keyPath:`next_attempt_at`,unique:!1},{name:n.statusNextAttemptAt,keyPath:[`status`,`next_attempt_at`],unique:!1},{name:n.idempotencyKey,keyPath:`idempotency_key`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1}]},{store:t.nonceLaneLeases,keyPath:`lease_id`,indexes:[{name:n.laneKey,keyPath:`lane_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.state,keyPath:`state`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.laneState,keyPath:[`lane_key`,`state`],unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]},{store:t.nonceLaneLocks,keyPath:`lock_key`,indexes:[{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1}]},{store:t.keyMaterial,keyPath:`key_material_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletSignerId,keyPath:`wallet_signer_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionSeals,keyPath:`store_key`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.curve,keyPath:`curve`,unique:!1},{name:n.ed25519ThresholdSessionId,keyPath:`ed25519_threshold_session_id`,unique:!1},{name:n.ecdsaThresholdSessionId,keyPath:`ecdsa_threshold_session_id`,unique:!1},{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollmentId`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.exactSigningLaneIdentityKey,keyPath:`exact_signing_lane_identity_key`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionRestoreLeases,keyPath:`lease_key`,indexes:[{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.pendingWalletRecoveryCodeBackups,keyPath:[`wallet_id`,`enrollment_id`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollment_id`,unique:!1},{name:n.walletIdEnrollmentId,keyPath:[`wallet_id`,`enrollment_id`],unique:!0},{name:n.recoveryCodesIssuedAtMs,keyPath:`recovery_codes_issued_at_ms`,unique:!1},{name:n.status,keyPath:`status`,unique:!1}]},{store:t.walletSessionAuthorizations,keyPath:`wallet_session_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.authorityDigest,keyPath:`authority_digest_b64u`,unique:!1},{name:n.revocationEpoch,keyPath:`authority_revocation_epoch`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.ecdsaCapabilityManifests,keyPath:`manifest_id`,indexes:[{name:n.capabilityWallet,keyPath:[`capability_ref`,`wallet_id`],unique:!1},{name:n.capabilityWalletAuthorityState,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`,`manifest_state`],unique:!1}]},{store:t.ecdsaCurrentCapabilityManifests,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1}]},{store:t.ecdsaRoleLocalMaterial,keyPath:`durable_material_ref`,indexes:[]},{store:t.ecdsaActivationCommitJournals,keyPath:`journal_id`,indexes:[{name:n.capabilityWalletAuthority,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],unique:!0}]},{store:t.ecdsaMaterialSealingKeys,keyPath:`key_id`,indexes:[]},{store:t.ecdsaClientPresignatures,keyPath:`record_id`,indexes:[{name:n.poolIdentityKey,keyPath:`pool_identity_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletMaterialActivationId,keyPath:[`wallet_id`,`material_activation_id`],unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]}],i=(e,t)=>t.some(t=>e instanceof t);let a,o;function s(){return a||=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}function c(){return o||=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const l=new WeakMap,u=new WeakMap,d=new WeakMap;function f(e){let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`success`,i),e.removeEventListener(`error`,a)},i=()=>{t(v(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener(`success`,i),e.addEventListener(`error`,a)});return d.set(t,e),t}function p(e){if(l.has(e))return;let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`complete`,i),e.removeEventListener(`error`,a),e.removeEventListener(`abort`,a)},i=()=>{t(),r()},a=()=>{n(e.error||new DOMException(`AbortError`,`AbortError`)),r()};e.addEventListener(`complete`,i),e.addEventListener(`error`,a),e.addEventListener(`abort`,a)});l.set(e,t)}let m={get(e,t,n){if(e instanceof IDBTransaction){if(t===`done`)return l.get(e);if(t===`store`)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return v(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&(t===`done`||t===`store`)?!0:t in e}};function h(e){m=e(m)}function g(e){return c().includes(e)?function(...t){return e.apply(y(this),t),v(this.request)}:function(...t){return v(e.apply(y(this),t))}}function _(e){return typeof e==`function`?g(e):(e instanceof IDBTransaction&&p(e),i(e,s())?new Proxy(e,m):e)}function v(e){if(e instanceof IDBRequest)return f(e);if(u.has(e))return u.get(e);let t=_(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const y=e=>d.get(e);function b(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){let o=indexedDB.open(e,t),s=v(o);return r&&o.addEventListener(`upgradeneeded`,e=>{r(v(o.result),e.oldVersion,e.newVersion,v(o.transaction),e)}),n&&o.addEventListener(`blocked`,e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{a&&e.addEventListener(`close`,()=>a()),i&&e.addEventListener(`versionchange`,e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}const x=[`get`,`getKey`,`getAll`,`getAllKeys`,`count`],S=[`put`,`add`,`delete`,`clear`],C=new Map;function w(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t==`string`))return;if(C.get(t))return C.get(t);let n=t.replace(/FromIndex$/,``),r=t!==n,i=S.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||x.includes(n)))return;let a=async function(e,...t){let a=this.transaction(e,i?`readwrite`:`readonly`),o=a.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&a.done]))[0]};return C.set(t,a),a}h(e=>({...e,get:(t,n,r)=>w(t,n)||e.get(t,n,r),has:(t,n)=>!!w(t,n)||e.has(t,n)}));const T=[`continue`,`continuePrimaryKey`,`advance`],E={},D=new WeakMap,O=new WeakMap,k={get(e,t){if(!T.includes(t))return e[t];let n=E[t];return n||=E[t]=function(...e){D.set(this,O.get(this)[t](...e))},n}};async function*A(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let n=new Proxy(t,k);for(O.set(n,t),d.set(n,y(t));t;)yield n,t=await(D.get(n)||t.continue()),D.delete(n)}function j(e,t){return t===Symbol.asyncIterator&&i(e,[IDBIndex,IDBObjectStore,IDBCursor])||t===`iterate`&&i(e,[IDBIndex,IDBObjectStore])}h(e=>({...e,get(t,n,r){return j(t,n)?A:e.get(t,n,r)},has(t,n){return j(t,n)||e.has(t,n)}}));const M={dbName:e,dbVersion:24};function N(e){return typeof e==`string`?e:[...e]}function P(e,t){let n=e.createObjectStore(t.store,{keyPath:N(t.keyPath)});for(let e of t.indexes)n.createIndex(e.name,N(e.keyPath),{unique:e.unique})}function F(e){for(let t of r)e.objectStoreNames.contains(t.store)||P(e,t)}const I=8e3;function L(e){return Error(`[SeamsWalletDBManager] IndexedDB open is blocked for ${e}. Close other tabs using this app and retry.`)}function R(e){return Error(e)}async function z(e,t,n,r){let i=!1,a=null,o=new Promise((e,o)=>{a=setTimeout(()=>{i||(r?.(),o(n))},t)});try{return await Promise.race([e,o])}finally{i=!0,a&&clearTimeout(a)}}async function B(e,t){let n=await t(e);return await e.tx.done,n}const V=new Set([t.walletAuthorities,t.walletAuthoritySignerMaterials,t.walletAuthorityExportRoots,t.walletAuthMethods,t.walletSelections,t.walletSessionAuthorizations]);function H(e,t,n,...r){let i=Reflect.apply(n,t,r);return e.changed=!0,i}function U(e,t,n){let r=Reflect.get(t,n);if(typeof r!=`function`)return r;switch(n){case`add`:case`put`:case`delete`:case`clear`:return H.bind(null,e,t,r);default:return r.bind(t)}}function W(e,t,n){let r=e.objectStore(n);return e.mode===`readonly`||!V.has(n)?r:new Proxy(r,{get:U.bind(null,t)})}function G(){}function K(e){if(typeof BroadcastChannel>`u`)return null;try{return new BroadcastChannel(`seams-wallet-authority:${e}`)}catch(e){return console.warn(`[SeamsWalletDBManager] Authority notifications are unavailable:`,e),null}}const q=new class{config;dbPromise=null;disabled=!1;walletAuthorityRevision=0;walletAuthorityChannel=null;walletAuthorityListeners=new Set;onWalletAuthorityChange(e){return this.walletAuthorityListeners.add(e),this.connectWalletAuthorityChannel(),this.removeWalletAuthorityListener.bind(this,e)}removeWalletAuthorityListener(e){this.walletAuthorityListeners.delete(e),this.walletAuthorityListeners.size===0&&this.closeWalletAuthorityChannel()}getWalletAuthorityRevision(){return this.walletAuthorityRevision}publishWalletAuthorityCommit(e,t){if(!e.changed)return;t===this.config.dbName&&this.invalidateWalletAuthority();let n=t===this.config.dbName?this.walletAuthorityChannel:null,r=n??K(t);if(r)try{r.postMessage(`authority_committed`)}catch(e){console.warn(`[SeamsWalletDBManager] Authority notification failed:`,e)}finally{r!==n&&r.close()}}connectWalletAuthorityChannel(){if(this.disabled||this.walletAuthorityChannel||this.walletAuthorityListeners.size===0)return;let e=K(this.config.dbName);e&&(e.onmessage=this.receiveWalletAuthorityCommit.bind(this,e),this.walletAuthorityChannel=e)}closeWalletAuthorityChannel(){this.walletAuthorityChannel?.close(),this.walletAuthorityChannel=null}receiveWalletAuthorityCommit(e,t){e!==this.walletAuthorityChannel||t.data!==`authority_committed`||this.invalidateWalletAuthority()}invalidateWalletAuthority(){this.walletAuthorityRevision+=1;for(let e of Array.from(this.walletAuthorityListeners))try{e()}catch{}}constructor(e=M){this.config=e}getDbName(){return this.config.dbName}setDbName(e){this.config.dbName!==e&&(this.close(),this.closeWalletAuthorityChannel(),this.config={...this.config,dbName:e},this.connectWalletAuthorityChannel(),this.invalidateWalletAuthority())}setDisabled(e){this.disabled=e,e?(this.close(),this.closeWalletAuthorityChannel()):this.connectWalletAuthorityChannel()}isDisabled(){return this.disabled}close(){this.dbPromise&&=(this.dbPromise.then(e=>e.close()).catch(()=>void 0),null)}async getDB(){if(this.disabled)throw Error(`[SeamsWalletDBManager] IndexedDB is disabled in this environment.`);if(!this.dbPromise){let e=this.config.dbName,t=this.config.dbVersion,n=null,r=null,i=new Promise((e,t)=>{r=t}),a=b(e,t,{upgrade(e){F(e)},blocked(){console.warn(`[SeamsWalletDBManager] IndexedDB open is blocked.`,{dbName:e,dbVersion:t}),n=setTimeout(()=>{r?.(L(e))},3e3)},blocking:()=>{console.warn(`[SeamsWalletDBManager] IndexedDB connection is blocking an upgrade.`,{dbName:e,dbVersion:t}),this.close()},terminated(){console.warn(`[SeamsWalletDBManager] IndexedDB connection has been terminated.`,{dbName:e,dbVersion:t})}});this.dbPromise=z(Promise.race([a,i]).finally(()=>{n&&clearTimeout(n)}),I,R(`[SeamsWalletDBManager] IndexedDB open timed out for ${e}. Close other tabs using this app and retry.`)).catch(e=>{throw this.dbPromise=null,a.then(e=>e.close()).catch(()=>void 0),e})}return await this.dbPromise}async runTransaction(e,t,n,r){let i=await z(this.getDB(),I,R(`[SeamsWalletDBManager] IndexedDB connection timed out for ${this.config.dbName}. Close other tabs using this app and retry.`)),a=i.transaction([...e],t,r),o={changed:!1},s={db:i,tx:a,store:W.bind(null,a,o)};a.done.then(this.publishWalletAuthorityCommit.bind(this,o,i.name)).catch(G);try{return await z(B(s,n),8e3,R(`[SeamsWalletDBManager] IndexedDB transaction timed out for ${this.config.dbName}. Close other tabs using this app and retry.`),()=>{try{a.abort()}catch{}})}catch(e){try{a.abort()}catch{}throw await a.done.catch(()=>void 0),e}}};export{t as i,y as n,n as r,q as t};
@@ -0,0 +1 @@
1
+ function e(e){if(!Number.isFinite(e)||e<=0)return null;let t=Math.round(e);return t>0&&Number.isSafeInteger(t)?t:null}function t(t){let n=e(t.width),r=e(t.height);return n===null||r===null?null:{widthCssPx:n,heightCssPx:r}}function n(e,n){return t(n?.contentRect??e.getBoundingClientRect())}function r(e,r){if(e.kind===`request_scroll_surface`){let n=e.element.getBoundingClientRect();return t({width:Math.max(e.element.scrollWidth,n.width),height:Math.max(e.element.scrollHeight,n.height)})}return n(e.element,r)}function i(e,t,n){switch(e.kind){case`request_surface`:case`request_scroll_surface`:return{kind:`measured_v1`,requestId:e.requestId,sequence:t,widthCssPx:n.widthCssPx,heightCssPx:n.heightCssPx};case`auth_menu_surface`:return{kind:`measured_auth_menu_v1`,requestId:e.requestId,authMenuSessionId:e.authMenuSessionId,sequence:t,widthCssPx:n.widthCssPx,heightCssPx:n.heightCssPx}}}let a=1;function o(){let e=a;return!Number.isSafeInteger(e)||e<=0?null:(a=e===2**53-1?1/0:e+1,e)}var s=class{observer;latestEntry=null;recentPostTimes=[];warnedAboutStreaming=!1;surfaceHasSettled=!1;animationFrame=null;lastSize=null;disconnected=!1;constructor(e){if(this.options=e,typeof ResizeObserver==`function`){this.observer=new ResizeObserver(this.onResize),this.observer.observe(e.element),e.kind===`request_scroll_surface`&&e.element.firstElementChild&&this.observer.observe(e.element.firstElementChild),this.reportLatestSize();return}this.observer=null,this.reportLatestSize()}disconnect(){this.disconnected||(this.disconnected=!0,this.observer?.disconnect(),this.animationFrame!==null&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(this.animationFrame),this.animationFrame=null,this.latestEntry=null)}onResize=e=>{this.disconnected||(this.latestEntry=e.at(-1)??null,this.scheduleReport())};scheduleReport(){this.disconnected||(this.animationFrame!==null&&typeof cancelAnimationFrame==`function`&&(cancelAnimationFrame(this.animationFrame),this.animationFrame=null),this.reportLatestSize())}reportLatestSize(){if(this.disconnected)return;let e=r(this.options,this.latestEntry);if(this.latestEntry=null,!e||this.sameSize(e))return;this.lastSize=e;let t=o();if(t===null){this.disconnect();return}this.noteStreaming(),this.options.postMeasurement(i(this.options,t,e))}noteStreaming(){if(this.options.kind===`auth_menu_surface`||this.warnedAboutStreaming)return;let e=typeof performance==`object`?performance.now():Date.now(),t=this.recentPostTimes.at(-1);for(t!==void 0&&e-t>400&&(this.surfaceHasSettled=!0,this.recentPostTimes.length=0),this.recentPostTimes.push(e);this.recentPostTimes.length&&e-this.recentPostTimes[0]>150;)this.recentPostTimes.shift();this.surfaceHasSettled&&(this.recentPostTimes.length<4||(this.warnedAboutStreaming=!0,console.warn(`[SEAMS] ${this.options.kind} posted ${this.recentPostTimes.length} surface measurements in 150ms after it had settled. Content inside a measured surface must announce a height change once (announceSurfaceResize) instead of animating its own height; the host box cannot follow a moving target.`)))}sameSize(e){return this.lastSize?.widthCssPx===e.widthCssPx&&this.lastSize?.heightCssPx===e.heightCssPx}};function c(e){return new s(e)}export{c as t};
@@ -1 +1 @@
1
- import{y as e}from"./domainIds-BzkGsRqO.js";import{D as t,E as n,j as r,k as i}from"./primitives-CqrjmIAH.js";import{t as a}from"./errors-DIWY1KR9.js";import{c as o}from"./ecdsaChainTarget-Bfatk3oP.js";import{L as s,et as c,ot as l,r as u}from"./emailOtpEcdsaDerivationIdentity-Bik0N8v9.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=u(v(t,`ecdsaThresholdKeyId`,`value.ecdsaThresholdKeyId`)),a=p(v(t,`relayerKeyId`,`value.relayerKeyId`),`relayerKeyId`),s=p(v(t,`applicationBindingDigestB64u`,`value.applicationBindingDigestB64u`),`applicationBindingDigestB64u`),c=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=l(v(t,`routerAbEcdsaDerivationNormalSigning`,`value.routerAbEcdsaDerivationNormalSigning`));return{formatVersion:`ecdsa-derivation-role-local`,walletId:n,evmFamilySigningKeySlotId:r,ecdsaThresholdKeyId:i,relayerKeyId:a,applicationBindingDigestB64u:s,contextBinding32B64u:c,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 t({headers:i(e.auth),body:e.body});let r=S(e.auth),a=String(e.publishableKeyAuth||``).trim();return t({headers:r?n({token:r,missingMessage:`bearer token is required`}):a?n({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:c(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
+ import{y as e}from"./domainIds-C3fUa33Q.js";import{D as t,E as n,j as r,k as i}from"./primitives-CTmDwMNc.js";import{t as a}from"./errors-ADOZT8oV.js";import{c as o}from"./ecdsaChainTarget-DkOrgv4y.js";import{L as s,et as c,ot as l,r as u}from"./emailOtpEcdsaDerivationIdentity-CupWCKNg.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=u(v(t,`ecdsaThresholdKeyId`,`value.ecdsaThresholdKeyId`)),a=p(v(t,`relayerKeyId`,`value.relayerKeyId`),`relayerKeyId`),s=p(v(t,`applicationBindingDigestB64u`,`value.applicationBindingDigestB64u`),`applicationBindingDigestB64u`),c=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=l(v(t,`routerAbEcdsaDerivationNormalSigning`,`value.routerAbEcdsaDerivationNormalSigning`));return{formatVersion:`ecdsa-derivation-role-local`,walletId:n,evmFamilySigningKeySlotId:r,ecdsaThresholdKeyId:i,relayerKeyId:a,applicationBindingDigestB64u:s,contextBinding32B64u:c,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 t({headers:i(e.auth),body:e.body});let r=S(e.auth),a=String(e.publishableKeyAuth||``).trim();return t({headers:r?n({token:r,missingMessage:`bearer token is required`}):a?n({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:c(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-hKLqDUhR.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-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 +1 @@
1
- import{n as e}from"./chunk-dVx5-UGu.js";import{_ as t}from"./sdkSentEvents-D4KtK7_I.js";var n=e({beginTransactionActivity:()=>i,failTransactionActivity:()=>f,observeTransactionActivity:()=>d,observeTransactionLifecycleReport:()=>h,retainTransactionActivity:()=>a,setTransactionActivityView:()=>l,transactionBroadcastStarted:()=>p});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,state:{kind:`signing`},view:`expanded`,retained:!1,signingHash:null};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({state:r.state,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){if(!e||typeof e!=`object`)return null;let n=Reflect.get(e,t);return typeof n==`string`&&n.length>0?n:null}function d(e){if(!(!r||e.requestId!==r.requestId)){if(e.type===`PM_RESULT`){let t=e.payload?.result;r.signingHash=u(t,`rawTxHex`),r.state.kind===`signing`&&(r.state={kind:`signed`}),t&&typeof t==`object`&&Reflect.get(t,`success`)===!1&&(r.state={kind:`failed`,hash:null,message:u(t,`error`)??`The operation did not complete.`});let n=m(t);n&&(r.state=n)}else if(e.type===`PROGRESS`&&t(e.payload)&&e.payload.flow===`signing`){let t=e.payload,n=u(t.data,`txHash`)??u(t.data,`txId`);if(r.state.kind===`confirmed`||r.state.kind===`reverted`)return;switch(t.phase){case`signing.transaction.signed`:r.state={kind:`signed`};break;case`signing.broadcast.started`:r.state={kind:`broadcasting`};break;case`signing.broadcast.accepted`:r.state={kind:`submitted`,hash:n};break;case`signing.receipt.finalized`:r.state={kind:`confirmed`,hash:n};break;case`signing.receipt.reverted`:r.state={kind:`reverted`,hash:n,message:`The network reverted this transaction. Network fees may still apply.`};break;case`signing.failed`:case`signing.broadcast.rejected`:r.state={kind:`failed`,hash:n,message:t.message};break;default:return}}else return;o()}}function f(e,t){!r||r.requestId!==e||(r.state={kind:`failed`,hash:null,message:t instanceof Error?t.message:`The operation did not complete.`},o())}function p(e){!r||r.signingHash!==e||r.state.kind!==`signed`||(r.state={kind:`broadcasting`},o())}function m(e){if(!e||typeof e!=`object`)return null;let t=u(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 h(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||r.state.kind===`confirmed`||r.state.kind===`reverted`)return;e.type===`PM_REPORT_TEMPO_BROADCAST_ACCEPTED`?r.state={kind:`submitted`,hash:e.payload?.txHash??null}:e.type===`PM_REPORT_TEMPO_FINALIZED`?r.state=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.`}:r.state={kind:`unknown`,hash:null,message:`The transaction did not complete as expected. Check its network status before retrying.`},o();return}default:return}}export{a,h as i,f as n,n as o,d as r,i as t};
1
+ import{n as e}from"./chunk-dVx5-UGu.js";import{_ as t}from"./sdkSentEvents-DujYAPEM.js";var n=e({beginTransactionActivity:()=>i,failTransactionActivity:()=>f,observeTransactionActivity:()=>d,observeTransactionLifecycleReport:()=>h,retainTransactionActivity:()=>a,setTransactionActivityView:()=>l,transactionBroadcastStarted:()=>p});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,state:{kind:`signing`},view:`expanded`,retained:!1,signingHash:null};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({state:r.state,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){if(!e||typeof e!=`object`)return null;let n=Reflect.get(e,t);return typeof n==`string`&&n.length>0?n:null}function d(e){if(!(!r||e.requestId!==r.requestId)){if(e.type===`PM_RESULT`){let t=e.payload?.result;r.signingHash=u(t,`rawTxHex`),r.state.kind===`signing`&&(r.state={kind:`signed`}),t&&typeof t==`object`&&Reflect.get(t,`success`)===!1&&(r.state={kind:`failed`,hash:null,message:u(t,`error`)??`The operation did not complete.`});let n=m(t);n&&(r.state=n)}else if(e.type===`PROGRESS`&&t(e.payload)&&e.payload.flow===`signing`){let t=e.payload,n=u(t.data,`txHash`)??u(t.data,`txId`);if(r.state.kind===`confirmed`||r.state.kind===`reverted`)return;switch(t.phase){case`signing.transaction.signed`:r.state={kind:`signed`};break;case`signing.broadcast.started`:r.state={kind:`broadcasting`};break;case`signing.broadcast.accepted`:r.state={kind:`submitted`,hash:n};break;case`signing.receipt.finalized`:r.state={kind:`confirmed`,hash:n};break;case`signing.receipt.reverted`:r.state={kind:`reverted`,hash:n,message:`The network reverted this transaction. Network fees may still apply.`};break;case`signing.failed`:case`signing.broadcast.rejected`:r.state={kind:`failed`,hash:n,message:t.message};break;default:return}}else return;o()}}function f(e,t){!r||r.requestId!==e||(r.state={kind:`failed`,hash:null,message:t instanceof Error?t.message:`The operation did not complete.`},o())}function p(e){!r||r.signingHash!==e||r.state.kind!==`signed`||(r.state={kind:`broadcasting`},o())}function m(e){if(!e||typeof e!=`object`)return null;let t=u(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 h(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||r.state.kind===`confirmed`||r.state.kind===`reverted`)return;e.type===`PM_REPORT_TEMPO_BROADCAST_ACCEPTED`?r.state={kind:`submitted`,hash:e.payload?.txHash??null}:e.type===`PM_REPORT_TEMPO_FINALIZED`?r.state=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.`}:r.state={kind:`unknown`,hash:null,message:`The transaction did not complete as expected. Check its network status before retrying.`},o();return}default:return}}export{a,h as i,f as n,n as o,d as r,i as t};
@@ -0,0 +1 @@
1
+ import{C as e}from"./chains-CPmd4s9f.js";import{t}from"./events-1dzC4Ocx.js";var n=class extends Error{constructor(e,t,n){super(t,n),this.code=e,this.name=`TransactionReviewError`}};function r(e,t){for(let n of Object.keys(e))if(!t.includes(n))return!1;return!0}function i(t){if(e(t)){if(t.kind===`unbounded`&&r(t,[`kind`]))return Object.freeze({kind:`unbounded`});if(t.kind===`expires_at`&&r(t,[`kind`,`atMs`])&&typeof t.atMs==`number`&&Number.isSafeInteger(t.atMs)&&t.atMs>0)return Object.freeze({kind:`expires_at`,atMs:t.atMs})}throw new n(`review_invalid_input`,`Review requires explicit validity and a positive safe-integer expiry`)}function a(e){if(e.kind===`expires_at`&&Date.now()>=e.atMs)throw new n(`review_expired`,`This review has expired. Refresh the quote and try again.`)}function o(e){if(typeof e.connectionId!=`string`||!e.connectionId.trim()||typeof e.requestId!=`string`||!e.requestId.trim()||typeof e.surfaceId!=`string`||!e.surfaceId.trim()||typeof e.generation!=`number`||!Number.isSafeInteger(e.generation)||e.generation<=0)throw new n(`review_invalid_input`,`Invalid transaction review identity`);return Object.freeze({connectionId:e.connectionId,requestId:e.requestId,surfaceId:e.surfaceId,generation:e.generation})}function s(t){if(!e(t)||t.kind!==`transaction_review_v1`||!r(t,[`kind`,`connectionId`,`requestId`,`surfaceId`,`generation`,`validity`]))throw new n(`review_invalid_input`,`Invalid transaction review metadata`);let a=o(t);return Object.freeze({kind:`transaction_review_v1`,connectionId:a.connectionId,requestId:a.requestId,surfaceId:a.surfaceId,generation:a.generation,validity:i(t.validity)})}function c(t){if(!e(t)||!r(t,[`connectionId`,`requestId`,`surfaceId`,`generation`,`phase`]))return null;let n=t.phase;if(n!==`prepared`&&n!==`activated`&&n!==`reviewing`&&n!==`signing`&&n!==`cancelled`)return null;try{let e=o(t);return{connectionId:e.connectionId,requestId:e.requestId,surfaceId:e.surfaceId,generation:e.generation,phase:n}}catch{return null}}function l(e,t){return e.connectionId===t.connectionId&&e.requestId===t.requestId&&e.surfaceId===t.surfaceId&&e.generation===t.generation}function u(e){switch(e){case`review_expired`:case`review_prepare_timeout`:case`review_owner_disposed`:case`review_identity_changed`:return e;default:return`cancelled`}}const d=new Map;var f=class{abortController=new AbortController;state={kind:`preparing`};element=null;observer=null;timer=null;constructor(e,t,r,i){if(this.metadata=e,this.signatureBoundary=t,this.post=r,this.reject=i,a(e.validity),d.has(e.requestId))throw new n(`review_invalid_input`,`Duplicate reviewed request`);d.set(e.requestId,this),this.scheduleExpiry()}notify(e){let t=this.metadata;this.post({connectionId:t.connectionId,requestId:t.requestId,surfaceId:t.surfaceId,generation:t.generation,phase:e})}scheduleExpiry=()=>{if(this.metadata.validity.kind===`unbounded`||this.state.kind===`settled`||this.state.kind===`cancelled`||this.state.kind===`signing`)return;let e=this.metadata.validity.atMs-Date.now();if(e<=0){this.cancel(new n(`review_expired`,`This review has expired.`));return}this.timer=setTimeout(this.scheduleExpiry,Math.min(e,2147483647))};attach(e){if(this.element!==e){if(this.observer?.disconnect(),this.element=e,this.observer=new MutationObserver(this.prepared),this.observer.observe(e,{subtree:!0,childList:!0,attributes:!0}),e.inert=this.state.kind!==`active`&&this.state.kind!==`signing`,e.setAttribute(`aria-hidden`,String(e.inert)),this.state.kind===`cancelled`||this.state.kind===`settled`){this.closeSurface();return}this.state.kind===`preparing`&&requestAnimationFrame(this.prepared)}}prepared=()=>{this.state.kind!==`preparing`||!this.element?.isConnected||this.element.dataset.seamsConfirmReady!==`true`||(this.observer?.disconnect(),this.state={kind:`prepared`},this.notify(`prepared`))};activate(e){if(!(e.phase!==`activated`||!l(this.metadata,e)||this.state.kind!==`prepared`)){try{a(this.metadata.validity)}catch(e){this.cancel(e instanceof Error?e:Error(String(e)));return}this.state={kind:`active`},this.element&&(this.element.inert=!1,this.element.removeAttribute(`aria-hidden`),this.element.querySelector(`button:not([disabled]), input:not([disabled]), [tabindex="0"]`)?.focus({preventScroll:!0})),this.notify(`activated`)}}assertPending(){if(this.state.kind===`cancelled`)throw this.state.error;if(this.state.kind===`settled`)throw new n(`cancelled`,`The reviewed request has already settled`)}returnToReview=()=>{this.state.kind!==`active`||!this.allowInteraction()||(this.state={kind:`prepared`},this.element&&(this.element.inert=!0,this.element.setAttribute(`aria-hidden`,`true`)),this.notify(`reviewing`))};assertActive(){if(this.state.kind===`cancelled`)throw this.state.error;if(this.state.kind!==`active`&&this.state.kind!==`signing`)throw new n(`cancelled`,`Wallet approval is not active`);a(this.metadata.validity)}allowInteraction(){if(this.state.kind!==`active`&&this.state.kind!==`signing`)return!1;try{return this.assertActive(),!0}catch(e){return this.cancel(e instanceof Error?e:Error(String(e))),!1}}beforeCredential=()=>{this.signatureBoundary===`credential`?this.beforeSigning():this.assertActive()};afterCredential(){this.state.kind!==`signing`&&this.assertActive()}beforeSigning=()=>{this.assertActive(),this.state={kind:`signing`},this.timer&&clearTimeout(this.timer),this.timer=null,this.notify(`signing`)};cancel(e){return this.state.kind===`signing`?(this.notify(`signing`),!1):this.state.kind===`settled`||this.state.kind===`cancelled`?!1:(this.state={kind:`cancelled`,error:e},this.timer&&clearTimeout(this.timer),this.timer=null,this.abortController.abort(e),this.closeSurface(),this.notify(`cancelled`),!0)}closeSurface(){this.element&&(this.element.inert=!0,this.element.dispatchEvent(new Event(`cancel`,{cancelable:!0})),this.element.dispatchEvent(new CustomEvent(t.TX_CONFIRMER_CANCEL,{bubbles:!0,composed:!0})))}get cancelled(){return this.state.kind===`cancelled`}finish(){this.state.kind===`cancelled`&&this.reject(this.state.error),this.observer?.disconnect(),this.observer=null,this.timer&&clearTimeout(this.timer),this.timer=null,this.state={kind:`settled`},this.element=null,d.get(this.metadata.requestId)===this&&d.delete(this.metadata.requestId)}};function p(e){return d.get(e)}function m(e){return e?.kind===`wallet_iframe`?e.transactionReview:void 0}function h(e){for(let t of d.values())t.cancel(e)}export{n as a,s as c,p as i,l,h as n,a as o,m as r,c as s,f as t,u};
@@ -1 +1 @@
1
- import{s as e}from"./ecdsaChainTarget-Bfatk3oP.js";import{c as t}from"./types-hKLqDUhR.js";import{g as n,v as r,y as i}from"./nearEd25519YaoSigningPreparation-RIfkYN0d.js";import{f as a,h as o,l as s,m as c,p as l}from"./clientSessionPersistenceState-CBylL1Ul.js";function u(e){return{tag:`IntentReceived`,intent:e}}function d(e,t){return{tag:`AvailableLanesRead`,intent:e.intent,availableLanes:t.availableLanes}}function f(e){return!!e&&e.curve===`ed25519`&&e.chain===`near`&&o(e)}function p(e){return!!e&&e.curve===`ecdsa`&&!!e.chainTarget&&o(e)}function m(e){return l(e)||null}function h(e){return e.state===`ready`?`ready`:e.state===`restorable`?`restorable`:null}function g(e){return e.state===`expired`?`expired`:e.state===`exhausted`?`exhausted`:null}function _(e,t){return{auth:e.auth,curve:`ed25519`,chain:`near`,materialActivation:e.materialActivation,walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,authorizationState:`authorized`,authorization:e.authorization,state:t,thresholdSessionId:e.thresholdSessionId,...e.remainingUses==null?{}:{remainingUses:e.remainingUses},...e.expiresAtMs==null?{}:{expiresAtMs:e.expiresAtMs},...e.policyHint?{policyHint:e.policyHint}:{},...e.updatedAtMs==null?{}:{updatedAtMs:e.updatedAtMs}}}function v(e){let t=h(e);if(!t)throw Error(`[SigningSessionSelectLane] Ed25519 lane is not transaction-ready`);return _(e,t)}function y(e){let t=g(e);if(!t)throw Error(`[SigningSessionSelectLane] Ed25519 lane is not transaction-reauthable`);return _(e,t)}function b(e){return i({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.authorization.operationCredential.walletSessionId,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.thresholdSessionId})}function x(e){return{kind:`near_ed25519_transaction_ready_lane`,candidate:e.candidate,availableLane:v(e.lane),selectedLane:b(e.candidate),authorityKey:e.authorityKey}}function S(e){return{kind:`near_ed25519_transaction_reauth_lane`,candidate:e.candidate,availableLane:y(e.lane),selectedLane:b(e.candidate),authorityKey:e.authorityKey}}function C(e){if(!f(e)||e.authorizationState!==`authorized`)return null;let t=h(e),n=g(e);if(!t&&!n)return null;let r=m(e);if(!r)return null;let i=c({lane:e});return!i||i.authorizationState!==`authorized`?null:t?x({lane:e,candidate:i,authorityKey:r}):S({lane:e,candidate:i,authorityKey:r})}function w(e){if(e.curve===`ed25519`){if(e.authorizationState!==`authorized`||!e.authorization)throw Error(`[SigningSessionSelectLane] Ed25519 lane requires active authorization`);return i({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.authorization.operationCredential.walletSessionId,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.thresholdSessionId})}if(e.authorizationState!==`authorized`)throw Error(`[SigningSessionSelectLane] ECDSA lane requires active authorization`);return r({key:e.key,materialActivation:e.materialActivation,keyHandle:e.keyHandle,walletId:e.walletId,auth:e.auth,authorization:e.authorization,chainTarget:e.chainTarget})}function T(e){return[...new Set(e.map(e=>n(e.candidate)))].sort()}function E(e){switch(e.length){case 0:return null;case 1:{let[t]=e;return t||null}default:return null}}function D(e){let t=e.intent;return t.curve===`ed25519`&&t.chain===`near`?O({...e,intent:t}):t.curve===`ecdsa`?j({...e,intent:t}):{ok:!1,failure:{kind:`unsupported_intent`,curve:t.curve||`unknown`,chain:t.chain||`unknown`}}}function O(e){let t=A(e);if(!t.ok)return t;if(t.kind===`authorization_required`)return{ok:!1,failure:{kind:`no_candidate`,authMethod:n(t.candidate)}};let r=C(t.availableLane);if(!r)throw Error(`[SigningSessionSelectLane] authorized Ed25519 lane is not selectable`);return{ok:!0,lane:t.lane,candidate:t.candidate,availableLane:r.availableLane,selectionCandidate:r}}function k(e,t){if(e.candidate.walletId!==t.walletId||e.candidate.nearAccountId!==t.signerSelection.nearAccountId)return!1;switch(t.signerSelection.kind){case`near_account`:return!0;case`signer_slot`:return e.candidate.signerSlot===t.signerSelection.signerSlot}}function A(e){let t=e.intent,n=P(t,(e.availableLanes?.candidates.ed25519.near||[]).filter(f).map(e=>({availableLane:e,candidate:c({lane:e})})).filter(e=>e.candidate!==null).filter(e=>k(e,t)));if(!n.length)return{ok:!1,failure:t.authSelectionPolicy.kind===`any`?{kind:`no_candidate`}:{kind:`no_candidate`,authMethod:t.authSelectionPolicy.authMethod}};let r=E(n);if(!r)return{ok:!1,failure:{kind:`ambiguous_material`,allowedAuthMethods:T(n)}};if(r.candidate.authorizationState===`authorization_required`){if(r.availableLane.authorizationState!==`authorization_required`)throw Error(`[SigningSessionSelectLane] Ed25519 material authorization mismatch`);return{ok:!0,kind:`authorization_required`,candidate:r.candidate,availableLane:r.availableLane}}if(r.availableLane.authorizationState!==`authorized`)throw Error(`[SigningSessionSelectLane] Ed25519 material authorization mismatch`);return{ok:!0,kind:`authorized`,lane:b(r.candidate),candidate:r.candidate,availableLane:r.availableLane}}function j(e){let t=M(e);return t.ok?t.kind===`authorization_required`?{ok:!1,failure:{kind:`no_candidate`,authMethod:n(t.candidate)}}:{ok:!0,lane:t.lane,candidate:t.candidate,availableLane:t.availableLane,selectionCandidate:{candidate:t.candidate,availableLane:t.availableLane}}:t}function M(e){let t=e.intent,n=P(t,e.availableLanes?s(e.availableLanes,t.chainTarget).filter(p).map(e=>({availableLane:e,candidate:a({walletId:t.walletId,lane:e})})).filter(e=>e.candidate!==null):[]);if(!n.length)return{ok:!1,failure:t.authSelectionPolicy.kind===`any`?{kind:`no_candidate`}:{kind:`no_candidate`,authMethod:t.authSelectionPolicy.authMethod}};let r=E(n);return r?r.candidate.authorizationState===`authorization_required`?{ok:!0,kind:`authorization_required`,candidate:r.candidate,availableLane:r.availableLane}:{ok:!0,kind:`authorized`,lane:N({intent:t,candidate:r.candidate}),candidate:r.candidate,availableLane:r.availableLane}:{ok:!1,failure:{kind:`ambiguous_material`,allowedAuthMethods:T(n)}}}function N(t){if(!e(t.candidate.chainTarget,t.intent.chainTarget))throw Error(`[SigningSessionSelectLane] ECDSA available lane target mismatch`);return w(t.candidate)}function P(e,t){if(e.authSelectionPolicy.kind===`any`)return t;let r=e.authSelectionPolicy.authMethod;return t.filter(e=>n(e.candidate)===r)}function F(e){let t=D({intent:e.intent,availableLanes:e.availableLanes});return t.ok?{tag:`LaneSelected`,intent:e.intent,lane:t.lane,candidate:t.candidate,availableLane:t.availableLane,selectionCandidate:t.selectionCandidate}:{tag:`LaneSelectionFailed`,intent:e.intent,failure:t.failure}}async function I(e){let n=await e.lifecycleAdapter.prepare({...e.operation?{operation:e.operation}:{}});if(n.lane.curve!==n.readiness.readiness.curve)throw Error(`[SigningSession] prepared lane and readiness curves do not match`);let r={lane:n.lane,readiness:n.readiness.readiness,expiresAtMs:n.readiness.expiresAtMs,remainingUses:n.readiness.remainingUses,forceFreshAuth:e.forceFreshAuth||n.forceFreshAuth,sensitiveOperationPolicy:e.sensitiveOperationPolicy},i=await e.coordinator.resolveAuthPlanFromReadiness(r,e.onPlannerTrace);return{...e.operation?{operation:e.operation}:{},lane:n.lane,authMethod:t(n.lane.auth),signingSessionPlan:i.signingSessionPlan,readiness:i.readiness,expiresAtMs:i.expiresAtMs,remainingUses:i.remainingUses,availableLanesGeneration:Math.max(0,Math.floor(Number(n.availableLanesGeneration)||0)),metadata:n.metadata||{}}}function L(e,t){return{tag:`ReadinessClassified`,intent:e.intent,lane:e.lane,candidate:e.candidate,availableLane:e.availableLane,readiness:t}}function R(e){return{intent:e.intent,lane:e.lane,readiness:e.readiness}}async function z(e){let t=null,n=null,r=null,i=await I({intent:B(e.intent),lifecycleAdapter:{prepare:async r=>{let i=await e.lifecycleAdapter.prepare({intent:e.intent,...r.operation?{operation:r.operation}:{}});return t=i.transactionLane,n=i.transactionIntent||e.intent,{lane:i.lane,readiness:i.readiness,availableLanesGeneration:i.availableLanesGeneration,forceFreshAuth:i.forceFreshAuth,metadata:{...i.metadata||{},transactionLane:i.transactionLane,transactionOperation:null}}}},coordinator:e.coordinator,...e.operation?{operation:e.operation}:{},forceFreshAuth:e.forceFreshAuth,sensitiveOperationPolicy:e.sensitiveOperationPolicy,onPlannerTrace:e.onPlannerTrace});if(!t)throw Error(`[SigningSession] transaction prepare did not return a transaction lane`);return r={intent:n||e.intent,lane:t,readiness:V(i)},i.metadata.transactionOperation=r,{thresholdOperation:i,transactionOperation:r}}function B(e){return{kind:`transaction_sign`,chain:e.chain,curve:e.curve,walletId:String(e.walletId),reason:`transaction`}}function V(e){let t=e.readiness.status;return t===`ready`?{status:`ready`,remainingUses:Math.max(0,Math.floor(Number(e.remainingUses)||0)),expiresAtMs:Math.max(0,Math.floor(Number(e.expiresAtMs)||0))}:t===`missing_session`?{status:`status_unavailable`,reason:`missing_session`}:t===`expired`?{status:`expired`}:t===`exhausted`?{status:`exhausted`}:t===`auth_unavailable`?{status:`auth_unavailable`,reason:`auth_unavailable`}:t===`status_unavailable`?{status:`status_unavailable`,reason:`status_unavailable`}:t===`status_unknown`?{status:`status_unknown`,reason:`status_unknown`}:{status:`policy_blocked`,reason:t}}export{d as a,F as c,u as i,R as n,M as o,z as r,A as s,L as t};
1
+ import{s as e}from"./ecdsaChainTarget-DkOrgv4y.js";import{c as t}from"./types-CQTWmtqu.js";import{g as n,v as r,y as i}from"./nearEd25519YaoSigningPreparation-yKDLQXBS.js";import{f as a,h as o,l as s,m as c,p as l}from"./clientSessionPersistenceState-BgO4P6CZ.js";function u(e){return{tag:`IntentReceived`,intent:e}}function d(e,t){return{tag:`AvailableLanesRead`,intent:e.intent,availableLanes:t.availableLanes}}function f(e){return!!e&&e.curve===`ed25519`&&e.chain===`near`&&o(e)}function p(e){return!!e&&e.curve===`ecdsa`&&!!e.chainTarget&&o(e)}function m(e){return l(e)||null}function h(e){return e.state===`ready`?`ready`:e.state===`restorable`?`restorable`:null}function g(e){return e.state===`expired`?`expired`:e.state===`exhausted`?`exhausted`:null}function _(e,t){return{auth:e.auth,curve:`ed25519`,chain:`near`,materialActivation:e.materialActivation,walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,authorizationState:`authorized`,authorization:e.authorization,state:t,thresholdSessionId:e.thresholdSessionId,...e.remainingUses==null?{}:{remainingUses:e.remainingUses},...e.expiresAtMs==null?{}:{expiresAtMs:e.expiresAtMs},...e.policyHint?{policyHint:e.policyHint}:{},...e.updatedAtMs==null?{}:{updatedAtMs:e.updatedAtMs}}}function v(e){let t=h(e);if(!t)throw Error(`[SigningSessionSelectLane] Ed25519 lane is not transaction-ready`);return _(e,t)}function y(e){let t=g(e);if(!t)throw Error(`[SigningSessionSelectLane] Ed25519 lane is not transaction-reauthable`);return _(e,t)}function b(e){return i({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.authorization.operationCredential.walletSessionId,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.thresholdSessionId})}function x(e){return{kind:`near_ed25519_transaction_ready_lane`,candidate:e.candidate,availableLane:v(e.lane),selectedLane:b(e.candidate),authorityKey:e.authorityKey}}function S(e){return{kind:`near_ed25519_transaction_reauth_lane`,candidate:e.candidate,availableLane:y(e.lane),selectedLane:b(e.candidate),authorityKey:e.authorityKey}}function C(e){if(!f(e)||e.authorizationState!==`authorized`)return null;let t=h(e),n=g(e);if(!t&&!n)return null;let r=m(e);if(!r)return null;let i=c({lane:e});return!i||i.authorizationState!==`authorized`?null:t?x({lane:e,candidate:i,authorityKey:r}):S({lane:e,candidate:i,authorityKey:r})}function w(e){if(e.curve===`ed25519`){if(e.authorizationState!==`authorized`||!e.authorization)throw Error(`[SigningSessionSelectLane] Ed25519 lane requires active authorization`);return i({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.authorization.operationCredential.walletSessionId,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.thresholdSessionId})}if(e.authorizationState!==`authorized`)throw Error(`[SigningSessionSelectLane] ECDSA lane requires active authorization`);return r({key:e.key,materialActivation:e.materialActivation,keyHandle:e.keyHandle,walletId:e.walletId,auth:e.auth,authorization:e.authorization,chainTarget:e.chainTarget})}function T(e){return[...new Set(e.map(e=>n(e.candidate)))].sort()}function E(e){switch(e.length){case 0:return null;case 1:{let[t]=e;return t||null}default:return null}}function D(e){let t=e.intent;return t.curve===`ed25519`&&t.chain===`near`?O({...e,intent:t}):t.curve===`ecdsa`?j({...e,intent:t}):{ok:!1,failure:{kind:`unsupported_intent`,curve:t.curve||`unknown`,chain:t.chain||`unknown`}}}function O(e){let t=A(e);if(!t.ok)return t;if(t.kind===`authorization_required`)return{ok:!1,failure:{kind:`no_candidate`,authMethod:n(t.candidate)}};let r=C(t.availableLane);if(!r)throw Error(`[SigningSessionSelectLane] authorized Ed25519 lane is not selectable`);return{ok:!0,lane:t.lane,candidate:t.candidate,availableLane:r.availableLane,selectionCandidate:r}}function k(e,t){if(e.candidate.walletId!==t.walletId||e.candidate.nearAccountId!==t.signerSelection.nearAccountId)return!1;switch(t.signerSelection.kind){case`near_account`:return!0;case`signer_slot`:return e.candidate.signerSlot===t.signerSelection.signerSlot}}function A(e){let t=e.intent,n=P(t,(e.availableLanes?.candidates.ed25519.near||[]).filter(f).map(e=>({availableLane:e,candidate:c({lane:e})})).filter(e=>e.candidate!==null).filter(e=>k(e,t)));if(!n.length)return{ok:!1,failure:t.authSelectionPolicy.kind===`any`?{kind:`no_candidate`}:{kind:`no_candidate`,authMethod:t.authSelectionPolicy.authMethod}};let r=E(n);if(!r)return{ok:!1,failure:{kind:`ambiguous_material`,allowedAuthMethods:T(n)}};if(r.candidate.authorizationState===`authorization_required`){if(r.availableLane.authorizationState!==`authorization_required`)throw Error(`[SigningSessionSelectLane] Ed25519 material authorization mismatch`);return{ok:!0,kind:`authorization_required`,candidate:r.candidate,availableLane:r.availableLane}}if(r.availableLane.authorizationState!==`authorized`)throw Error(`[SigningSessionSelectLane] Ed25519 material authorization mismatch`);return{ok:!0,kind:`authorized`,lane:b(r.candidate),candidate:r.candidate,availableLane:r.availableLane}}function j(e){let t=M(e);return t.ok?t.kind===`authorization_required`?{ok:!1,failure:{kind:`no_candidate`,authMethod:n(t.candidate)}}:{ok:!0,lane:t.lane,candidate:t.candidate,availableLane:t.availableLane,selectionCandidate:{candidate:t.candidate,availableLane:t.availableLane}}:t}function M(e){let t=e.intent,n=P(t,e.availableLanes?s(e.availableLanes,t.chainTarget).filter(p).map(e=>({availableLane:e,candidate:a({walletId:t.walletId,lane:e})})).filter(e=>e.candidate!==null):[]);if(!n.length)return{ok:!1,failure:t.authSelectionPolicy.kind===`any`?{kind:`no_candidate`}:{kind:`no_candidate`,authMethod:t.authSelectionPolicy.authMethod}};let r=E(n);return r?r.candidate.authorizationState===`authorization_required`?{ok:!0,kind:`authorization_required`,candidate:r.candidate,availableLane:r.availableLane}:{ok:!0,kind:`authorized`,lane:N({intent:t,candidate:r.candidate}),candidate:r.candidate,availableLane:r.availableLane}:{ok:!1,failure:{kind:`ambiguous_material`,allowedAuthMethods:T(n)}}}function N(t){if(!e(t.candidate.chainTarget,t.intent.chainTarget))throw Error(`[SigningSessionSelectLane] ECDSA available lane target mismatch`);return w(t.candidate)}function P(e,t){if(e.authSelectionPolicy.kind===`any`)return t;let r=e.authSelectionPolicy.authMethod;return t.filter(e=>n(e.candidate)===r)}function F(e){let t=D({intent:e.intent,availableLanes:e.availableLanes});return t.ok?{tag:`LaneSelected`,intent:e.intent,lane:t.lane,candidate:t.candidate,availableLane:t.availableLane,selectionCandidate:t.selectionCandidate}:{tag:`LaneSelectionFailed`,intent:e.intent,failure:t.failure}}async function I(e){let n=await e.lifecycleAdapter.prepare({...e.operation?{operation:e.operation}:{}});if(n.lane.curve!==n.readiness.readiness.curve)throw Error(`[SigningSession] prepared lane and readiness curves do not match`);let r={lane:n.lane,readiness:n.readiness.readiness,expiresAtMs:n.readiness.expiresAtMs,remainingUses:n.readiness.remainingUses,forceFreshAuth:e.forceFreshAuth||n.forceFreshAuth,sensitiveOperationPolicy:e.sensitiveOperationPolicy},i=await e.coordinator.resolveAuthPlanFromReadiness(r,e.onPlannerTrace);return{...e.operation?{operation:e.operation}:{},lane:n.lane,authMethod:t(n.lane.auth),signingSessionPlan:i.signingSessionPlan,readiness:i.readiness,expiresAtMs:i.expiresAtMs,remainingUses:i.remainingUses,availableLanesGeneration:Math.max(0,Math.floor(Number(n.availableLanesGeneration)||0)),metadata:n.metadata||{}}}function L(e,t){return{tag:`ReadinessClassified`,intent:e.intent,lane:e.lane,candidate:e.candidate,availableLane:e.availableLane,readiness:t}}function R(e){return{intent:e.intent,lane:e.lane,readiness:e.readiness}}async function z(e){let t=null,n=null,r=null,i=await I({intent:B(e.intent),lifecycleAdapter:{prepare:async r=>{let i=await e.lifecycleAdapter.prepare({intent:e.intent,...r.operation?{operation:r.operation}:{}});return t=i.transactionLane,n=i.transactionIntent||e.intent,{lane:i.lane,readiness:i.readiness,availableLanesGeneration:i.availableLanesGeneration,forceFreshAuth:i.forceFreshAuth,metadata:{...i.metadata||{},transactionLane:i.transactionLane,transactionOperation:null}}}},coordinator:e.coordinator,...e.operation?{operation:e.operation}:{},forceFreshAuth:e.forceFreshAuth,sensitiveOperationPolicy:e.sensitiveOperationPolicy,onPlannerTrace:e.onPlannerTrace});if(!t)throw Error(`[SigningSession] transaction prepare did not return a transaction lane`);return r={intent:n||e.intent,lane:t,readiness:V(i)},i.metadata.transactionOperation=r,{thresholdOperation:i,transactionOperation:r}}function B(e){return{kind:`transaction_sign`,chain:e.chain,curve:e.curve,walletId:String(e.walletId),reason:`transaction`}}function V(e){let t=e.readiness.status;return t===`ready`?{status:`ready`,remainingUses:Math.max(0,Math.floor(Number(e.remainingUses)||0)),expiresAtMs:Math.max(0,Math.floor(Number(e.expiresAtMs)||0))}:t===`missing_session`?{status:`status_unavailable`,reason:`missing_session`}:t===`expired`?{status:`expired`}:t===`exhausted`?{status:`exhausted`}:t===`auth_unavailable`?{status:`auth_unavailable`,reason:`auth_unavailable`}:t===`status_unavailable`?{status:`status_unavailable`,reason:`status_unavailable`}:t===`status_unknown`?{status:`status_unknown`,reason:`status_unknown`}:{status:`policy_blocked`,reason:t}}export{d as a,F as c,u as i,R as n,M as o,z as r,A as s,L as t};