@seams/wallet 0.26.0 → 0.27.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 (338) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
  3. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
  4. package/dist/esm/SeamsWeb/walletIframe/client/router.js +57 -38
  5. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
  6. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
  8. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -0
  9. package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
  10. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
  11. package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
  12. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
  13. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
  14. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
  15. package/dist/esm/core/ui/messages.js +12 -0
  16. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +27 -3
  17. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +2 -2
  18. package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
  19. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
  20. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
  21. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +13 -4
  22. package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
  23. package/dist/esm/react/externalNear.js +2 -6
  24. package/dist/esm/react/index.js +2 -1
  25. package/dist/esm/react/styles/styles.css +210 -3
  26. package/dist/esm/react/styles.css +1 -0
  27. package/dist/esm/react/transactionReview/boundCalls.js +31 -26
  28. package/dist/esm/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  29. package/dist/esm/sdk/{NonceCoordinator-CcD2FqXh.js → NonceCoordinator-3YhmDTS5.js} +1 -1
  30. package/dist/{public/sdk/SeamsWordmark-DqiC9-sd.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  31. package/dist/esm/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  32. package/dist/esm/sdk/{adapters-e7twFGov.js → adapters-d9yh1bdC.js} +1 -1
  33. package/dist/esm/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  34. package/dist/{public/sdk/clientSessionPersistenceState-YvVHKRoe.js → esm/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  35. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  36. package/dist/esm/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  37. package/dist/esm/sdk/confirm-ui-nU6ymgiv.js +2 -0
  38. package/dist/esm/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  39. package/dist/esm/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-CfEiotVt.js} +1 -1
  40. package/dist/esm/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  41. package/dist/esm/sdk/{ecdsaCapabilityManifest-CXVq8Qzb.js → ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  42. package/dist/esm/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  43. package/dist/{public/sdk/ecdsaDerivationExport-CkmSe0ao.js → esm/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  44. package/dist/esm/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  45. package/dist/esm/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  46. package/dist/esm/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  47. package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
  48. package/dist/esm/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  49. package/dist/esm/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BtrKVXxu.js} +1 -1
  50. package/dist/esm/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CGE9ZU1m.js} +1 -1
  51. package/dist/esm/sdk/host-DayrOrgm.js +1 -0
  52. package/dist/{public/sdk/icons-DDRXJ2W1.js → esm/sdk/icons-BlMXolHv.js} +1 -1
  53. package/dist/esm/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  54. package/dist/esm/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  55. package/dist/esm/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  56. package/dist/esm/sdk/{localOnly-Jw9v9GU9.js → localOnly-BATWJj78.js} +1 -1
  57. package/dist/{public/sdk/mountExportPrivateKeySurface-B_052qyI.js → esm/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  58. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  59. package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  60. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  61. package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  62. package/dist/esm/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  63. package/dist/esm/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  64. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → esm/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  65. package/dist/esm/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  66. package/dist/{public/sdk/recovery-entrypoint-9e3SXU3t.js → esm/sdk/recovery-entrypoint-DJbMDC_m.js} +1 -1
  67. package/dist/esm/sdk/{registration-C988Nwzn.js → registration-CNLUYN-p.js} +1 -1
  68. package/dist/esm/sdk/{registration-D4AijOa8.js → registration-HSwOHZOo.js} +1 -1
  69. package/dist/esm/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  70. package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
  71. package/dist/esm/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  72. package/dist/{public/sdk/requireStepUpAuth-DC9LSyRI.js → esm/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  73. package/dist/esm/sdk/{resealedEnvelopeResult-BKATJaqW.js → resealedEnvelopeResult-B1p5UkYg.js} +1 -1
  74. package/dist/{public/sdk/routerAbNormalSigning-Da-uxxle.js → esm/sdk/routerAbNormalSigning-D-UZmCBS.js} +1 -1
  75. package/dist/esm/sdk/runtime-auth-BCoj7_-G.js +1 -0
  76. package/dist/esm/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-DAsq5tGT.js} +1 -1
  77. package/dist/{public/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → esm/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js} +1 -1
  78. package/dist/{public/sdk/runtime-email-otp-CaxfpqKI.js → esm/sdk/runtime-email-otp-BxSKK9AG.js} +1 -1
  79. package/dist/esm/sdk/{runtime-export-Du5ugbzi.js → runtime-export-BWnQXMzT.js} +1 -1
  80. package/dist/esm/sdk/runtime-near-CuzPZrDS.js +1 -0
  81. package/dist/esm/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  82. package/dist/esm/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  83. package/dist/esm/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-DeUjQsxZ.js} +1 -1
  84. package/dist/esm/sdk/runtimeContext-5JcewRo3.js +6 -0
  85. package/dist/{public/sdk/secp256k1--vF2pJgR.js → esm/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  86. package/dist/esm/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  87. package/dist/esm/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  88. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  89. package/dist/esm/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  90. package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
  91. package/dist/esm/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  92. package/dist/{public/sdk/signingFlow-C7fwkxPx.js → esm/sdk/signingFlow-BcetvUeS.js} +1 -1
  93. package/dist/{public/sdk/signingQueue-DvHGcaLc.js → esm/sdk/signingQueue-dMFOFOP5.js} +1 -1
  94. package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  95. package/dist/esm/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  96. package/dist/esm/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  97. package/dist/esm/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  98. package/dist/esm/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  99. package/dist/esm/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  100. package/dist/esm/sdk/tx-confirm-ui.js +173 -18
  101. package/dist/esm/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  102. package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  103. package/dist/esm/sdk/voiceid-host.js +1 -1
  104. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  105. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  106. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  107. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  108. package/dist/{public/sdk/wallet-recovery-jyfGoejZ.js → esm/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  109. package/dist/esm/sdk/wallet-ui.css +1 -1
  110. package/dist/esm/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  111. package/dist/{public/sdk/walletAuthority-DGdC9Glh.js → esm/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  112. package/dist/esm/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  113. package/dist/esm/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  114. package/dist/{public/sdk/walletOwnershipGeneration-z9NXOk-b.js → esm/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  115. package/dist/{public/sdk/walletRecoveryAdminProof-hytB9fXI.js → esm/sdk/walletRecoveryAdminProof-CvSYbyg5.js} +1 -1
  116. package/dist/{public/sdk/walletRecoveryCommit-sr8-RYvn.js → esm/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  117. package/dist/esm/sdk/{walletSessionAuthorizationStore-BEJyERPZ.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  118. package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  119. package/dist/esm/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  120. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  121. package/dist/esm/shared-ts/src/utils/errors.js +50 -2
  122. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  123. package/dist/esm/voiceid-host.js +1 -1
  124. package/dist/public/headers.manifest.json +1 -1
  125. package/dist/public/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  126. package/dist/public/sdk/{NonceCoordinator-CcD2FqXh.js → NonceCoordinator-3YhmDTS5.js} +1 -1
  127. package/dist/{esm/sdk/SeamsWordmark-DqiC9-sd.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  128. package/dist/public/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  129. package/dist/public/sdk/{adapters-e7twFGov.js → adapters-d9yh1bdC.js} +1 -1
  130. package/dist/public/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  131. package/dist/{esm/sdk/clientSessionPersistenceState-YvVHKRoe.js → public/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  132. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  133. package/dist/public/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  134. package/dist/public/sdk/confirm-ui-nU6ymgiv.js +2 -0
  135. package/dist/public/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  136. package/dist/public/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-CfEiotVt.js} +1 -1
  137. package/dist/public/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  138. package/dist/public/sdk/{ecdsaCapabilityManifest-CXVq8Qzb.js → ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  139. package/dist/public/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  140. package/dist/{esm/sdk/ecdsaDerivationExport-CkmSe0ao.js → public/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  141. package/dist/public/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  142. package/dist/public/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  143. package/dist/public/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  144. package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
  145. package/dist/public/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  146. package/dist/public/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BtrKVXxu.js} +1 -1
  147. package/dist/public/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CGE9ZU1m.js} +1 -1
  148. package/dist/public/sdk/host-DayrOrgm.js +1 -0
  149. package/dist/{esm/sdk/icons-DDRXJ2W1.js → public/sdk/icons-BlMXolHv.js} +1 -1
  150. package/dist/public/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  151. package/dist/public/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  152. package/dist/public/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  153. package/dist/public/sdk/{localOnly-Jw9v9GU9.js → localOnly-BATWJj78.js} +1 -1
  154. package/dist/{esm/sdk/mountExportPrivateKeySurface-B_052qyI.js → public/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  155. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  156. package/dist/public/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  157. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  158. package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  159. package/dist/public/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  160. package/dist/public/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  161. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → public/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  162. package/dist/public/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  163. package/dist/{esm/sdk/recovery-entrypoint-9e3SXU3t.js → public/sdk/recovery-entrypoint-DJbMDC_m.js} +1 -1
  164. package/dist/public/sdk/{registration-C988Nwzn.js → registration-CNLUYN-p.js} +1 -1
  165. package/dist/public/sdk/{registration-D4AijOa8.js → registration-HSwOHZOo.js} +1 -1
  166. package/dist/public/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  167. package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
  168. package/dist/public/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  169. package/dist/{esm/sdk/requireStepUpAuth-DC9LSyRI.js → public/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  170. package/dist/public/sdk/{resealedEnvelopeResult-BKATJaqW.js → resealedEnvelopeResult-B1p5UkYg.js} +1 -1
  171. package/dist/{esm/sdk/routerAbNormalSigning-Da-uxxle.js → public/sdk/routerAbNormalSigning-D-UZmCBS.js} +1 -1
  172. package/dist/public/sdk/runtime-auth-BCoj7_-G.js +1 -0
  173. package/dist/public/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-DAsq5tGT.js} +1 -1
  174. package/dist/{esm/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → public/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js} +1 -1
  175. package/dist/{esm/sdk/runtime-email-otp-CaxfpqKI.js → public/sdk/runtime-email-otp-BxSKK9AG.js} +1 -1
  176. package/dist/public/sdk/{runtime-export-Du5ugbzi.js → runtime-export-BWnQXMzT.js} +1 -1
  177. package/dist/public/sdk/runtime-near-CuzPZrDS.js +1 -0
  178. package/dist/public/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  179. package/dist/public/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  180. package/dist/public/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-DeUjQsxZ.js} +1 -1
  181. package/dist/public/sdk/runtimeContext-5JcewRo3.js +6 -0
  182. package/dist/{esm/sdk/secp256k1--vF2pJgR.js → public/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  183. package/dist/public/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  184. package/dist/public/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  185. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  186. package/dist/public/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  187. package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
  188. package/dist/public/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  189. package/dist/{esm/sdk/signingFlow-C7fwkxPx.js → public/sdk/signingFlow-BcetvUeS.js} +1 -1
  190. package/dist/{esm/sdk/signingQueue-DvHGcaLc.js → public/sdk/signingQueue-dMFOFOP5.js} +1 -1
  191. package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  192. package/dist/public/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  193. package/dist/public/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  194. package/dist/public/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  195. package/dist/public/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  196. package/dist/public/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  197. package/dist/public/sdk/tx-confirm-ui.js +173 -18
  198. package/dist/public/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  199. package/dist/public/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  200. package/dist/public/sdk/voiceid-host.js +1 -1
  201. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  202. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  203. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  204. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  205. package/dist/{esm/sdk/wallet-recovery-jyfGoejZ.js → public/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  206. package/dist/public/sdk/wallet-ui.css +1 -1
  207. package/dist/public/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  208. package/dist/{esm/sdk/walletAuthority-DGdC9Glh.js → public/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  209. package/dist/public/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  210. package/dist/public/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  211. package/dist/{esm/sdk/walletOwnershipGeneration-z9NXOk-b.js → public/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  212. package/dist/{esm/sdk/walletRecoveryAdminProof-hytB9fXI.js → public/sdk/walletRecoveryAdminProof-CvSYbyg5.js} +1 -1
  213. package/dist/{esm/sdk/walletRecoveryCommit-sr8-RYvn.js → public/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  214. package/dist/public/sdk/{walletSessionAuthorizationStore-BEJyERPZ.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  215. package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  216. package/dist/public/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  217. package/dist/public/wallet-assets.manifest.json +270 -246
  218. package/dist/public/wallet-service/index.html +4 -4
  219. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
  220. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +2 -0
  221. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
  222. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
  223. package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
  224. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
  225. package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
  226. package/dist/types/wallet/src/core/types/seams.d.ts +15 -3
  227. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  228. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
  229. package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
  230. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
  231. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
  232. package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
  233. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
  234. package/dist/types/wallet/src/react/index.d.ts +2 -0
  235. package/dist/types/wallet/src/voiceid-host.d.ts +1 -1
  236. package/package.json +1 -1
  237. package/dist/esm/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  238. package/dist/esm/sdk/confirm-ui-BpqwuMSl.js +0 -2
  239. package/dist/esm/sdk/errors-DLUmUo9m.js +0 -1
  240. package/dist/esm/sdk/host-aTcpYE27.js +0 -1
  241. package/dist/esm/sdk/registrationIntent-BVPp0k0k.js +0 -1
  242. package/dist/esm/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  243. package/dist/esm/sdk/runtime-near-fas7U0MC.js +0 -1
  244. package/dist/esm/sdk/runtime-preferences-7-f34-by.js +0 -1
  245. package/dist/esm/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  246. package/dist/esm/sdk/runtimeContext-DF8MdfXl.js +0 -6
  247. package/dist/esm/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  248. package/dist/esm/sdk/signNear-DMzOU4dX.js +0 -1
  249. package/dist/esm/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  250. package/dist/esm/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  251. package/dist/public/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  252. package/dist/public/sdk/confirm-ui-BpqwuMSl.js +0 -2
  253. package/dist/public/sdk/errors-DLUmUo9m.js +0 -1
  254. package/dist/public/sdk/host-aTcpYE27.js +0 -1
  255. package/dist/public/sdk/registrationIntent-BVPp0k0k.js +0 -1
  256. package/dist/public/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  257. package/dist/public/sdk/runtime-near-fas7U0MC.js +0 -1
  258. package/dist/public/sdk/runtime-preferences-7-f34-by.js +0 -1
  259. package/dist/public/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  260. package/dist/public/sdk/runtimeContext-DF8MdfXl.js +0 -6
  261. package/dist/public/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  262. package/dist/public/sdk/signNear-DMzOU4dX.js +0 -1
  263. package/dist/public/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  264. package/dist/public/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  265. /package/dist/esm/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  266. /package/dist/esm/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  267. /package/dist/esm/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  268. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  269. /package/dist/esm/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  270. /package/dist/esm/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  271. /package/dist/esm/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  272. /package/dist/esm/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  273. /package/dist/esm/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  274. /package/dist/esm/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  275. /package/dist/esm/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  276. /package/dist/esm/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  277. /package/dist/esm/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  278. /package/dist/esm/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  279. /package/dist/esm/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  280. /package/dist/esm/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  281. /package/dist/esm/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  282. /package/dist/esm/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  283. /package/dist/esm/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  284. /package/dist/esm/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  285. /package/dist/esm/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  286. /package/dist/esm/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  287. /package/dist/esm/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  288. /package/dist/esm/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  289. /package/dist/esm/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  290. /package/dist/esm/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  291. /package/dist/esm/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  292. /package/dist/esm/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  293. /package/dist/esm/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  294. /package/dist/esm/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  295. /package/dist/esm/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  296. /package/dist/esm/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  297. /package/dist/esm/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  298. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  299. /package/dist/esm/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  300. /package/dist/esm/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  301. /package/dist/esm/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
  302. /package/dist/public/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  303. /package/dist/public/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  304. /package/dist/public/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  305. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  306. /package/dist/public/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  307. /package/dist/public/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  308. /package/dist/public/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  309. /package/dist/public/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  310. /package/dist/public/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  311. /package/dist/public/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  312. /package/dist/public/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  313. /package/dist/public/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  314. /package/dist/public/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  315. /package/dist/public/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  316. /package/dist/public/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  317. /package/dist/public/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  318. /package/dist/public/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  319. /package/dist/public/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  320. /package/dist/public/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  321. /package/dist/public/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  322. /package/dist/public/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  323. /package/dist/public/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  324. /package/dist/public/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  325. /package/dist/public/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  326. /package/dist/public/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  327. /package/dist/public/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  328. /package/dist/public/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  329. /package/dist/public/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  330. /package/dist/public/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  331. /package/dist/public/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  332. /package/dist/public/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  333. /package/dist/public/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  334. /package/dist/public/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  335. /package/dist/public/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  336. /package/dist/public/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  337. /package/dist/public/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  338. /package/dist/public/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
@@ -1 +1 @@
1
- import{r as e,t}from"./digests-BIaE0DMd.js";import{i as n}from"./base64-BmKR3UqU.js";import{t as r}from"./actions-BIdcxldy.js";async function i(t){return n(await e(t))}async function a(e){return i(t({kind:`nep413`,...e}))}async function o(e){return i(t(e))}async function s(e){return i(t(e))}function c(e){switch(e.action_type){case r.FunctionCall:return{action_type:e.action_type,args:e.args,deposit:e.deposit,gas:e.gas,method_name:e.method_name};case r.Transfer:return{action_type:e.action_type,deposit:e.deposit};case r.Stake:return{action_type:e.action_type,stake:e.stake,public_key:e.public_key};case r.AddKey:return{action_type:e.action_type,public_key:e.public_key,access_key:e.access_key};case r.DeleteKey:return{action_type:e.action_type,public_key:e.public_key};case r.DeleteAccount:return{action_type:e.action_type,beneficiary_id:e.beneficiary_id};case r.DeployContract:return{action_type:e.action_type,code:e.code};case r.SignedDelegate:return{action_type:e.action_type,delegate_action:e.delegate_action,signature:e.signature};case r.DeployGlobalContract:return{action_type:e.action_type,code:e.code,deploy_mode:e.deploy_mode};case r.UseGlobalContract:return{action_type:e.action_type,account_id:e.account_id,code_hash:e.code_hash};case r.CreateAccount:return{action_type:e.action_type};default:return e}}export{i as a,c as i,a as n,s as r,o as t};
1
+ import{r as e,t}from"./digests-BIaE0DMd.js";import{i as n}from"./base64-BmKR3UqU.js";import{t as r}from"./actions-DrtSTGus.js";async function i(t){return n(await e(t))}async function a(e){return i(t({kind:`nep413`,...e}))}async function o(e){return i(t(e))}async function s(e){return i(t(e))}function c(e){switch(e.action_type){case r.FunctionCall:return{action_type:e.action_type,args:e.args,deposit:e.deposit,gas:e.gas,method_name:e.method_name};case r.Transfer:return{action_type:e.action_type,deposit:e.deposit};case r.Stake:return{action_type:e.action_type,stake:e.stake,public_key:e.public_key};case r.AddKey:return{action_type:e.action_type,public_key:e.public_key,access_key:e.access_key};case r.DeleteKey:return{action_type:e.action_type,public_key:e.public_key};case r.DeleteAccount:return{action_type:e.action_type,beneficiary_id:e.beneficiary_id};case r.DeployContract:return{action_type:e.action_type,code:e.code};case r.SignedDelegate:return{action_type:e.action_type,delegate_action:e.delegate_action,signature:e.signature};case r.DeployGlobalContract:return{action_type:e.action_type,code:e.code,deploy_mode:e.deploy_mode};case r.UseGlobalContract:return{action_type:e.action_type,account_id:e.account_id,code_hash:e.code_hash};case r.CreateAccount:return{action_type:e.action_type};default:return e}}export{i as a,c as i,a as n,s as r,o as t};
@@ -1 +1 @@
1
- import{v as e,y as t}from"./nearEd25519YaoSigningPreparation-K6n4Sq8_.js";function n(e){return m({...t({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.walletSessionId,quotaId:e.quotaId,thresholdSessionId:e.thresholdSessionId}),keyKind:`threshold_ed25519`,chainFamily:`near`,storageSource:e.storageSource,sessionOrigin:e.sessionOrigin||h(e.storageSource),...e.retention?{retention:e.retention}:{}})}function r(e){return m({...t({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.walletSessionId,quotaId:e.quotaId,thresholdSessionId:e.thresholdSessionId}),keyKind:`threshold_ed25519`,chainFamily:`near`,storageSource:`email_otp`,sessionOrigin:e.sessionOrigin||`per_operation`,...e.retention?{retention:e.retention}:{}})}function i(t){return m({...e({key:t.key,materialActivation:t.materialActivation,keyHandle:t.keyHandle,walletId:t.walletId,auth:t.auth,authorization:t.authorization,chainTarget:t.chainTarget}),keyKind:`threshold_ecdsa_secp256k1`,chainFamily:t.chainTarget.kind,storageSource:t.storageSource,sessionOrigin:t.sessionOrigin||h(t.storageSource),...t.retention?{retention:t.retention}:{}})}function a(t){return m({...e({key:t.key,materialActivation:t.materialActivation,keyHandle:t.keyHandle,walletId:t.walletId,auth:t.auth,authorization:t.authorization,chainTarget:t.chainTarget}),keyKind:`threshold_ecdsa_secp256k1`,chainFamily:t.chainTarget.kind,storageSource:`email_otp`,sessionOrigin:t.sessionOrigin||`per_operation`,...t.retention?{retention:t.retention}:{}})}function o(e){if(e.auth.kind===`voiceid`)return m({...t({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.walletSessionId,quotaId:e.quotaId,thresholdSessionId:e.thresholdSessionId}),keyKind:`threshold_ed25519`,chainFamily:`near`,storageSource:`login`,sessionOrigin:`login`,retention:`session`});if(d(e))return r(e);if(u(e))return n(e);throw Error(`[SigningSession] unsupported NEAR lane auth`)}function s(e){if(e.chainTarget.kind!==`tempo`)throw Error(`Tempo ECDSA transaction lane requires a Tempo chain target`);return l(e)}function c(e){if(e.chainTarget.kind!==`evm`)throw Error(`EVM ECDSA transaction lane requires an EIP-155 chain target`);return l(e)}function l(e){if(p(e))return a(e);if(f(e))return i(e);throw Error(`[SigningSession] unsupported ECDSA lane auth`)}function u(e){return e.auth.kind===`passkey`}function d(e){return e.auth.kind===`email_otp`}function f(e){return e.auth.kind===`passkey`||e.auth.kind===`voiceid`}function p(e){return e.auth.kind===`email_otp`}function m(e){return{...e,retention:e.retention||`session`}}function h(e){switch(e){case`login`:return`login`;case`registration`:return`registration`;case`add-signer`:return`add_signer`;case`manual-bootstrap`:return`manual_bootstrap`;case`manual-connect`:return`manual_connect`;case`bootstrap`:return`bootstrap`;case`sealed_restore`:return`sealed_restore`}}export{o as n,s as r,c as t};
1
+ import{v as e,y as t}from"./nearEd25519YaoSigningPreparation-DHNk0F8e.js";function n(e){return m({...t({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.walletSessionId,quotaId:e.quotaId,thresholdSessionId:e.thresholdSessionId}),keyKind:`threshold_ed25519`,chainFamily:`near`,storageSource:e.storageSource,sessionOrigin:e.sessionOrigin||h(e.storageSource),...e.retention?{retention:e.retention}:{}})}function r(e){return m({...t({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.walletSessionId,quotaId:e.quotaId,thresholdSessionId:e.thresholdSessionId}),keyKind:`threshold_ed25519`,chainFamily:`near`,storageSource:`email_otp`,sessionOrigin:e.sessionOrigin||`per_operation`,...e.retention?{retention:e.retention}:{}})}function i(t){return m({...e({key:t.key,materialActivation:t.materialActivation,keyHandle:t.keyHandle,walletId:t.walletId,auth:t.auth,authorization:t.authorization,chainTarget:t.chainTarget}),keyKind:`threshold_ecdsa_secp256k1`,chainFamily:t.chainTarget.kind,storageSource:t.storageSource,sessionOrigin:t.sessionOrigin||h(t.storageSource),...t.retention?{retention:t.retention}:{}})}function a(t){return m({...e({key:t.key,materialActivation:t.materialActivation,keyHandle:t.keyHandle,walletId:t.walletId,auth:t.auth,authorization:t.authorization,chainTarget:t.chainTarget}),keyKind:`threshold_ecdsa_secp256k1`,chainFamily:t.chainTarget.kind,storageSource:`email_otp`,sessionOrigin:t.sessionOrigin||`per_operation`,...t.retention?{retention:t.retention}:{}})}function o(e){if(e.auth.kind===`voiceid`)return m({...t({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.walletSessionId,quotaId:e.quotaId,thresholdSessionId:e.thresholdSessionId}),keyKind:`threshold_ed25519`,chainFamily:`near`,storageSource:`login`,sessionOrigin:`login`,retention:`session`});if(d(e))return r(e);if(u(e))return n(e);throw Error(`[SigningSession] unsupported NEAR lane auth`)}function s(e){if(e.chainTarget.kind!==`tempo`)throw Error(`Tempo ECDSA transaction lane requires a Tempo chain target`);return l(e)}function c(e){if(e.chainTarget.kind!==`evm`)throw Error(`EVM ECDSA transaction lane requires an EIP-155 chain target`);return l(e)}function l(e){if(p(e))return a(e);if(f(e))return i(e);throw Error(`[SigningSession] unsupported ECDSA lane auth`)}function u(e){return e.auth.kind===`passkey`}function d(e){return e.auth.kind===`email_otp`}function f(e){return e.auth.kind===`passkey`||e.auth.kind===`voiceid`}function p(e){return e.auth.kind===`email_otp`}function m(e){return{...e,retention:e.retention||`session`}}function h(e){switch(e){case`login`:return`login`;case`registration`:return`registration`;case`add-signer`:return`add_signer`;case`manual-bootstrap`:return`manual_bootstrap`;case`manual-connect`:return`manual_connect`;case`bootstrap`:return`bootstrap`;case`sealed_restore`:return`sealed_restore`}}export{o as n,s as r,c as t};
@@ -1 +1 @@
1
- import{i as e}from"./base64-BmKR3UqU.js";import"./capabilityKinds-DVlGMspk.js";import{t}from"./errors-DLUmUo9m.js";import"./csp-stylesheet-CHtV6HyK.js";import"./signerDomain-BLnlQPAV.js";import"./accountIds-Dj_0GoY-.js";import{a as n,b as r,f as i,n as a,r as o,t as s}from"./adapters-e7twFGov.js";import{n as c,r as l}from"./collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js";import{n as u}from"./confirmTypes-DmEPoxys.js";import{c as d}from"./confirm-ui-BpqwuMSl.js";import"./appearance-token-vars-EYbmnHsJ.js";import{t as f}from"./appearance-CAIe7Qed.js";import{n as p,r as m}from"./export-viewer-host-3fosWJXJ.js";function h(){return e(crypto.getRandomValues(new Uint8Array(32)).buffer)}function g(e){switch(e.kind){case`near_wallet`:return e.nearAccountId;case`evm_wallet`:return e.walletId;default:{let t=e;throw Error(`Unsupported local key export subject: ${String(t)}`)}}}async function _(e,t,n,r){await m({theme:t.theme||r||`dark`,variant:t.variant||(n.uiMode===`drawer`?`drawer`:`modal`),accountId:g(t.subject),sessionId:t.viewerSessionId,publicKey:t.publicKey,privateKey:t.privateKey,keys:Array.isArray(t.keys)?t.keys:void 0,guidance:t.guidance,appearance:f({getAppearance:e.getAppearance,requestedMode:t.theme}),loading:t.loading===!0,errorMessage:t.errorMessage,onLifecycle:t.onLifecycle,surfaceMeasurementBinding:e.surfaceMeasurementBinding})}function v(e){try{return{rpId:e.security.getRpId()}}catch{return{}}}async function y(e){switch(e.payload.subject.kind){case`near_wallet`:return await c({touchIdPrompt:e.ctx.touchIdPrompt,nearAccountId:e.payload.subject.nearAccountId,credentialIdB64u:e.payload.credentialIdB64u,challengeB64u:e.challengeB64u,includeSecondPrfOutput:!0});case`evm_wallet`:return await l({touchIdPrompt:e.ctx.touchIdPrompt,walletId:e.payload.subject.walletId,credentialIdB64u:e.payload.credentialIdB64u,challengeB64u:e.challengeB64u,includeSecondPrfOutput:!0});default:{let t=e.payload.subject;throw Error(`Unsupported local key export subject: ${String(t)}`)}}}async function b(e,c,l,f){let{confirmationConfig:m,transactionSummary:g,theme:b}=f,x=a(e),S=s({adapters:x,worker:l,request:c,confirmationConfig:m,transactionSummary:g,theme:b,surface:{kind:`mount_new`}});if(c.type===u.SHOW_SECURE_PRIVATE_KEY_UI)try{await _(e,c.payload,m,b),S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!0});return}catch(e){return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!1,error:t(e)||`Failed to render export UI`})}if(c.type===u.AUTHORIZE_KEY_EXPORT){p();let a=d()?r():m,s=String(c.payload?.challengeB64u||``).trim()||h();if(a.kind!==`silent`){try{let e=g.operation,t=g.warning;g.title||=e||`Export Private Key`,g.body||=t||`Confirm to authenticate with your passkey.`}catch{}let e=v(x),{confirmed:t,error:n}=await S.promptUser({securityContext:e});if(!t)return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!1,error:n})}try{let t=await y({ctx:e,payload:c.payload,challengeB64u:s});return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!0,credential:t})}catch(e){let r=n(e);return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!1,error:r?o.cancelled:t(e)||o.collectCredentialsFailed})}}}export{b as handleLocalOnlyFlow};
1
+ import{i as e}from"./base64-BmKR3UqU.js";import"./capabilityKinds-DVlGMspk.js";import{t}from"./errors-BJBDbwHk.js";import"./csp-stylesheet-DUSqfXvZ.js";import"./signerDomain-BAsLT3XN.js";import"./accountIds-CW2BP-d9.js";import{a as n,b as r,f as i,n as a,r as o,t as s}from"./adapters-d9yh1bdC.js";import{n as c,r as l}from"./collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js";import{n as u}from"./confirmTypes-BvVtQs-M.js";import{c as d}from"./confirm-ui-nU6ymgiv.js";import"./appearance-token-vars-BJydfWT_.js";import{t as f}from"./appearance-DL7c6bML.js";import{n as p,r as m}from"./export-viewer-host-BtrKVXxu.js";function h(){return e(crypto.getRandomValues(new Uint8Array(32)).buffer)}function g(e){switch(e.kind){case`near_wallet`:return e.nearAccountId;case`evm_wallet`:return e.walletId;default:{let t=e;throw Error(`Unsupported local key export subject: ${String(t)}`)}}}async function _(e,t,n,r){await m({theme:t.theme||r||`dark`,variant:t.variant||(n.uiMode===`drawer`?`drawer`:`modal`),accountId:g(t.subject),sessionId:t.viewerSessionId,publicKey:t.publicKey,privateKey:t.privateKey,keys:Array.isArray(t.keys)?t.keys:void 0,guidance:t.guidance,appearance:f({getAppearance:e.getAppearance,requestedMode:t.theme}),loading:t.loading===!0,errorMessage:t.errorMessage,onLifecycle:t.onLifecycle,surfaceMeasurementBinding:e.surfaceMeasurementBinding})}function v(e){try{return{rpId:e.security.getRpId()}}catch{return{}}}async function y(e){switch(e.payload.subject.kind){case`near_wallet`:return await c({touchIdPrompt:e.ctx.touchIdPrompt,nearAccountId:e.payload.subject.nearAccountId,credentialIdB64u:e.payload.credentialIdB64u,challengeB64u:e.challengeB64u,includeSecondPrfOutput:!0});case`evm_wallet`:return await l({touchIdPrompt:e.ctx.touchIdPrompt,walletId:e.payload.subject.walletId,credentialIdB64u:e.payload.credentialIdB64u,challengeB64u:e.challengeB64u,includeSecondPrfOutput:!0});default:{let t=e.payload.subject;throw Error(`Unsupported local key export subject: ${String(t)}`)}}}async function b(e,c,l,f){let{confirmationConfig:m,transactionSummary:g,theme:b}=f,x=a(e),S=s({adapters:x,worker:l,request:c,confirmationConfig:m,transactionSummary:g,theme:b,surface:{kind:`mount_new`}});if(c.type===u.SHOW_SECURE_PRIVATE_KEY_UI)try{await _(e,c.payload,m,b),S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!0});return}catch(e){return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!1,error:t(e)||`Failed to render export UI`})}if(c.type===u.AUTHORIZE_KEY_EXPORT){p();let a=d()?r():m,s=String(c.payload?.challengeB64u||``).trim()||h();if(a.kind!==`silent`){try{let e=g.operation,t=g.warning;g.title||=e||`Export Private Key`,g.body||=t||`Confirm to authenticate with your passkey.`}catch{}let e=v(x),{confirmed:t,error:n}=await S.promptUser({securityContext:e});if(!t)return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!1,error:n})}try{let t=await y({ctx:e,payload:c.payload,challengeB64u:s});return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!0,credential:t})}catch(e){let r=n(e);return S.confirmAndCloseModal({requestId:c.requestId,intentDigest:i(c),confirmed:!1,error:r?o.cancelled:t(e)||o.collectCredentialsFailed})}}}export{b as handleLocalOnlyFlow};
@@ -1 +1 @@
1
- import{t as e}from"./events-D6l0_ugy.js";import{a as t,i as n,o as r,r as i,s as a}from"./csp-stylesheet-CHtV6HyK.js";import{a as o,c as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./appearance-token-vars-EYbmnHsJ.js";import{i as m,n as h,r as g,t as _}from"./ConfirmationDrawer-BmzikAr4.js";function v(e){throw Error(`Unexpected private key reveal state: ${String(e)}`)}function y(e){switch(e){case`secp256k1`:return{prefix:`0x`,alphabet:`0123456789abcdef`,slotCount:64};case`ed25519`:return{prefix:`ed25519:`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`,slotCount:88};default:return v(e)}}function b(e){return e[Math.floor(Math.random()*e.length)]??e[0]??`x`}function x(e,t){return e+Math.random()*(t-e)}function S(e,t,n){let r=[];for(let i=0;i<e.slotCount;i+=1)r.push({glyph:t?`x`:b(e.alphabet),nextChangeAtMs:t?1/0:n+i*37%90});return r}function C(e,t,n,r){let i=y(t);return{kind:`spinning`,entryKey:e,prefix:i.prefix,alphabet:i.alphabet,slots:S(i,n,r)}}function w(e){if(!e)return``;let t=(e.startsWith(`ed25519:`)?8:0)+6,n=Math.max(t,e.length-6);return`${e.slice(0,t)}${`x`.repeat(n-t)}${e.slice(n)}`}function T(e,t,n){let r=t.startsWith(e.prefix)?e.prefix:``,i=Array.from(t.slice(r.length)),a=i.length===e.slots.length?e.slots:i.map((t,r)=>({glyph:b(e.alphabet),nextChangeAtMs:n+r*37%90}));return{kind:`settling`,entryKey:e.entryKey,prefix:r,alphabet:e.alphabet,slots:a,targetSlots:i,lockedSlots:0,startedAtMs:n}}function E(e,t){let n=Math.max(1,e.targetSlots.length-1),r=0;for(let i=0;i<e.targetSlots.length;i+=1){let a=i/n*700;t>=e.startedAtMs+a+300&&(r+=1)}return r}function D(e,t,n){let r=t/Math.max(1,e.targetSlots.length-1)*700,i=e.startedAtMs+r;return Math.max(0,Math.min(1,(n-i)/300))}function O(e,t,n){let r=null;for(let i=0;i<e.length;i+=1){let a=e[i];!a||n<a.nextChangeAtMs||(r===null&&(r=[...e]),r[i]={glyph:b(t),nextChangeAtMs:n+x(90,150)})}return r??e}function k(e,t,n){let r=null;for(let i=0;i<e.slots.length;i+=1){let a=e.slots[i];if(!a)continue;if(i<t){let t=e.targetSlots[i]??a.glyph;if(a.glyph===t&&a.nextChangeAtMs===1/0)continue;r===null&&(r=[...e.slots]),r[i]={glyph:t,nextChangeAtMs:1/0};continue}if(n<a.nextChangeAtMs)continue;let o=D(e,i,n)*90;r===null&&(r=[...e.slots]),r[i]={glyph:b(e.alphabet),nextChangeAtMs:n+x(90+o,150+o)}}return r??e.slots}function A(e,t){if(e.kind===`spinning`){let n=O(e.slots,e.alphabet,t);return n===e.slots?e:{...e,slots:n}}if(e.kind===`settling`){let n=E(e,t);if(n>=e.targetSlots.length)return{kind:`settled`,entryKey:e.entryKey};let r=k(e,n,t);return r===e.slots&&n===e.lockedSlots?e:{...e,slots:r,lockedSlots:n}}return v(e)}function j({model:e,onClose:t}){let n=o(),r=e.kind===`failed`?[]:e.entries,a=r.length===0||r.some(M);return i(`div`,{class:`seams-export-key-viewer`,"data-seams-drawer-no-drag":!0,onPointerDown:P,onMouseDown:P,onTouchStart:P,children:i(`div`,{class:`content`,children:[i(`div`,{class:`seams-export-header`,children:[i(`h2`,{class:`title`,children:i(c,{message:`Exported Keys`})}),t&&i(`button`,{type:`button`,class:`seams-export-modal-close`,"aria-label":s(n,`Close exported keys`),onClick:t,children:`×`})]}),e.kind===`failed`&&i(`div`,{class:`error-banner`,role:`alert`,children:i(c,{copy:e.message})}),i(`div`,{class:`fields`,children:[a&&i(`div`,{class:`field`,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Near Account ID`})}),i(`div`,{class:`field-value`,children:i(`span`,{class:`value`,children:e.accountId||`—`})})]}),r.length>0?r.map(N):i(`div`,{class:`field`,children:i(`div`,{class:`field-value`,children:i(`span`,{class:`muted`,children:e.kind===`loading`?i(c,{message:`Preparing private key…`}):i(c,{message:`No keys available`})})})})]}),e.guidance&&i(F,{guidance:e.guidance}),i(`div`,{class:`warning`,children:i(c,{message:`Warning: your private keys grant full control of your account and funds. Keep it in a secret place.`})})]})})}function M(e){return e.scheme===`ed25519`}function N(e){return i(L,{entry:e},e.id)}function P(e){e.stopPropagation()}function F({guidance:e}){return i(`div`,{class:`warning`,children:[i(`strong`,{children:i(c,{copy:e.title||`Next Steps`})}),e.body&&i(`div`,{children:i(c,{copy:e.body})}),e.steps?.length?i(`ol`,{children:e.steps.map(I)}):null]})}function I(e,t){return i(`li`,{children:i(c,{copy:e})},t)}var L=class extends n{static contextType=d;state={reveal:null,publicCopied:!1,privateCopied:!1};root=t();frame=null;timers=new Map;generation=0;copyLifetime=new AbortController;active=!1;componentDidMount(){this.active=!0,this.reset(this.props.entry)}componentWillReceiveProps(e){R(this.props.entry,e.entry)||this.reset(e.entry)}componentDidUpdate(){this.schedule()}componentWillUnmount(){this.active=!1,this.clearPending(),this.state.reveal=null}clearPending(){this.generation+=1,this.copyLifetime.abort();let e=this.root.current?.ownerDocument.defaultView;this.frame!==null&&e?.cancelAnimationFrame(this.frame),this.frame=null;for(let t of this.timers.values())e?.clearTimeout(t);this.timers.clear()}reset(e){this.clearPending(),this.copyLifetime=new AbortController;let t=this.root.current.ownerDocument.defaultView,n=t.matchMedia(`(prefers-reduced-motion: reduce)`).matches,r=t.performance.now(),i=null;switch(e.material.kind){case`loading`:i=C(e.id,e.scheme,n,r);break;case`ready`:i=n?{kind:`settled`,entryKey:e.id}:T(C(e.id,e.scheme,!1,r),w(e.material.value),r);break;case`unavailable`:break;default:H(e.material)}this.setState({reveal:i,publicCopied:!1,privateCopied:!1})}schedule(){let e=this.state.reveal;if(!this.active||this.frame!==null||!e||e.kind===`settled`)return;let t=this.root.current.ownerDocument.defaultView;t.matchMedia(`(prefers-reduced-motion: reduce)`).matches||(this.frame=t.requestAnimationFrame(this.tick))}tick=e=>{this.frame=null;let t=this.state.reveal;if(!this.active||!t||t.kind===`settled`)return;let n=A(t,e);n!==t&&this.setState({reveal:n}),this.schedule()};copyPublic=()=>{this.copy(`public`)};copyPrivate=()=>{this.copy(`private`)};clearPublic=()=>{this.timers.delete(`public`),this.active&&this.setState({publicCopied:!1})};clearPrivate=()=>{this.timers.delete(`private`),this.active&&this.setState({privateCopied:!1})};async copy(e){let t=this.props.entry;if(!this.active||e===`private`&&(t.material.kind!==`ready`||this.state.reveal?.kind!==`settled`))return;let n=t.publicKey;if(e===`private`){if(t.material.kind!==`ready`)return;n=t.material.value}if(!n)return;let r=this.generation,i=this.root.current,a=i.ownerDocument.defaultView;if(a.focus(),!await m(i,n,this.copyLifetime.signal).catch(z)||!this.active||r!==this.generation)return;let o=this.timers.get(e);o!==void 0&&a.clearTimeout(o),e===`public`?this.setState({publicCopied:!0}):this.setState({privateCopied:!0}),this.timers.set(e,a.setTimeout(e===`public`?this.clearPublic:this.clearPrivate,3e3))}render(){let e=this.props.entry,t=e.material.kind===`ready`&&this.state.reveal?.kind===`settled`;return i(`div`,{class:`key-card`,ref:this.root,children:[i(`div`,{class:`key-title`,children:i(c,{copy:e.label})}),e.address&&i(`div`,{class:`field`,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Address`})}),i(`div`,{class:`field-value`,children:i(`span`,{class:`value`,children:e.address})})]}),e.scheme===`ed25519`&&i(`button`,{type:`button`,class:`field copy-field${this.state.publicCopied?` copied`:``}`,"aria-label":f(this.context,this.state.publicCopied?`Public key copied`:`Copy public key`),disabled:!e.publicKey,onClick:this.copyPublic,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Public Key`})}),i(`div`,{class:`field-value`,children:[i(`span`,{class:`value`,children:e.publicKey||`—`}),i(g,{})]})]}),i(`button`,{type:`button`,class:`field copy-field${this.state.privateCopied?` copied`:``}`,"aria-label":f(this.context,this.state.privateCopied?`Private key copied`:`Copy private key`),disabled:!t,onClick:this.copyPrivate,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Private Key`})}),i(`div`,{class:`field-value`,children:[i(`span`,{class:`value private-key`,children:i(B,{material:e.material,reveal:this.state.reveal})}),i(g,{})]})]})]})}};function R(e,t){return e.id===t.id&&e.scheme===t.scheme&&e.publicKey===t.publicKey&&e.material.kind===t.material.kind&&e.material.value===t.material.value}function z(){return!1}function B({material:e,reveal:t}){return t&&t.kind!==`settled`?i(a,{children:[i(`span`,{class:`private-key-reel`,"aria-hidden":`true`,children:[i(`span`,{class:`reel-prefix`,children:t.prefix}),V(t)]}),i(`span`,{class:`seams-sr-only`,role:`status`,children:i(c,{message:`Decrypting private key`})})]}):e.kind===`ready`?i(a,{children:[i(`span`,{children:w(e.value)}),i(`span`,{class:`seams-sr-only`,role:`status`,children:i(c,{message:`Private key ready`})})]}):i(`span`,{class:`muted`,children:`—`})}function V(e){let t=e.kind===`settling`?e.lockedSlots:0,n=[];for(let r=0;r<e.slots.length;r+=1)n.push(i(`span`,{class:`reel-slot${r<t?` settled`:``}`,children:e.slots[r].glyph},r));return n}function H(e){throw Error(`Unexpected export key material: ${String(e)}`)}let U=0;var W=class{element;styles;context;state;constructor(t){this.styles=l(t.parent.ownerDocument),this.context=t.context,this.state={kind:`mounted`,onClosed:t.onClosed},this.element=t.parent.ownerDocument.createElement(`div`),this.element.id=`seams-export-surface-${++U}`,this.element.className=`seams-wallet-ui seams-export-surface`,this.element.dataset.seamsExportSurface=t.context,this.element.addEventListener(e.TX_CONFIRMER_CANCEL,this.handleCancel),t.parent.appendChild(this.element);try{this.update(t.model)}catch(e){throw this.remove(),e}}update(e){if(this.state.kind!==`disposed`){if(this.element.lang=e.appearance.locale??`en`,this.element.dataset.theme=e.appearance.theme.mode,this.element.dataset.seamsExportVariant=e.variant,this.styles.setDynamicRule(this.element.id,p(this.element.id,e.appearance)),e.variant===`modal`){r(u(e.appearance.locale??`en`,i(h,{context:this.context,label:`Exported Keys`,onCancel:this.dispose,children:i(j,{model:e.content,onClose:this.dispose})})),this.element);return}r(u(e.appearance.locale??`en`,i(_,{context:this.context,label:`Exported Keys`,dismissOnBackdrop:!1,styles:this.styles,state:{kind:`open`,interaction:`ready`},onCancel:this.dispose,children:i(j,{model:e.content})})),this.element)}}dispose=()=>{if(this.state.kind===`disposed`)return;let e=this.state.onClosed;this.remove(),e()};handleCancel=()=>{this.dispose()};remove(){this.state={kind:`disposed`},this.element.removeEventListener(e.TX_CONFIRMER_CANCEL,this.handleCancel),r(null,this.element),this.styles.deleteDynamicRule(this.element.id),this.element.remove()}};function G(e){return new W(e)}export{G as mountExportPrivateKeySurface};
1
+ import{t as e}from"./events-D6l0_ugy.js";import{a as t,i as n,o as r,r as i,s as a}from"./csp-stylesheet-DUSqfXvZ.js";import{a as o,c as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./appearance-token-vars-BJydfWT_.js";import{i as m,n as h,r as g,t as _}from"./ConfirmationDrawer-AZruQmhP.js";function v(e){throw Error(`Unexpected private key reveal state: ${String(e)}`)}function y(e){switch(e){case`secp256k1`:return{prefix:`0x`,alphabet:`0123456789abcdef`,slotCount:64};case`ed25519`:return{prefix:`ed25519:`,alphabet:`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`,slotCount:88};default:return v(e)}}function b(e){return e[Math.floor(Math.random()*e.length)]??e[0]??`x`}function x(e,t){return e+Math.random()*(t-e)}function S(e,t,n){let r=[];for(let i=0;i<e.slotCount;i+=1)r.push({glyph:t?`x`:b(e.alphabet),nextChangeAtMs:t?1/0:n+i*37%90});return r}function C(e,t,n,r){let i=y(t);return{kind:`spinning`,entryKey:e,prefix:i.prefix,alphabet:i.alphabet,slots:S(i,n,r)}}function w(e){if(!e)return``;let t=(e.startsWith(`ed25519:`)?8:0)+6,n=Math.max(t,e.length-6);return`${e.slice(0,t)}${`x`.repeat(n-t)}${e.slice(n)}`}function T(e,t,n){let r=t.startsWith(e.prefix)?e.prefix:``,i=Array.from(t.slice(r.length)),a=i.length===e.slots.length?e.slots:i.map((t,r)=>({glyph:b(e.alphabet),nextChangeAtMs:n+r*37%90}));return{kind:`settling`,entryKey:e.entryKey,prefix:r,alphabet:e.alphabet,slots:a,targetSlots:i,lockedSlots:0,startedAtMs:n}}function E(e,t){let n=Math.max(1,e.targetSlots.length-1),r=0;for(let i=0;i<e.targetSlots.length;i+=1){let a=i/n*700;t>=e.startedAtMs+a+300&&(r+=1)}return r}function D(e,t,n){let r=t/Math.max(1,e.targetSlots.length-1)*700,i=e.startedAtMs+r;return Math.max(0,Math.min(1,(n-i)/300))}function O(e,t,n){let r=null;for(let i=0;i<e.length;i+=1){let a=e[i];!a||n<a.nextChangeAtMs||(r===null&&(r=[...e]),r[i]={glyph:b(t),nextChangeAtMs:n+x(90,150)})}return r??e}function k(e,t,n){let r=null;for(let i=0;i<e.slots.length;i+=1){let a=e.slots[i];if(!a)continue;if(i<t){let t=e.targetSlots[i]??a.glyph;if(a.glyph===t&&a.nextChangeAtMs===1/0)continue;r===null&&(r=[...e.slots]),r[i]={glyph:t,nextChangeAtMs:1/0};continue}if(n<a.nextChangeAtMs)continue;let o=D(e,i,n)*90;r===null&&(r=[...e.slots]),r[i]={glyph:b(e.alphabet),nextChangeAtMs:n+x(90+o,150+o)}}return r??e.slots}function A(e,t){if(e.kind===`spinning`){let n=O(e.slots,e.alphabet,t);return n===e.slots?e:{...e,slots:n}}if(e.kind===`settling`){let n=E(e,t);if(n>=e.targetSlots.length)return{kind:`settled`,entryKey:e.entryKey};let r=k(e,n,t);return r===e.slots&&n===e.lockedSlots?e:{...e,slots:r,lockedSlots:n}}return v(e)}function j({model:e,onClose:t}){let n=o(),r=e.kind===`failed`?[]:e.entries,a=r.length===0||r.some(M);return i(`div`,{class:`seams-export-key-viewer`,"data-seams-drawer-no-drag":!0,onPointerDown:P,onMouseDown:P,onTouchStart:P,children:i(`div`,{class:`content`,children:[i(`div`,{class:`seams-export-header`,children:[i(`h2`,{class:`title`,children:i(c,{message:`Exported Keys`})}),t&&i(`button`,{type:`button`,class:`seams-export-modal-close`,"aria-label":s(n,`Close exported keys`),onClick:t,children:`×`})]}),e.kind===`failed`&&i(`div`,{class:`error-banner`,role:`alert`,children:i(c,{copy:e.message})}),i(`div`,{class:`fields`,children:[a&&i(`div`,{class:`field`,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Near Account ID`})}),i(`div`,{class:`field-value`,children:i(`span`,{class:`value`,children:e.accountId||`—`})})]}),r.length>0?r.map(N):i(`div`,{class:`field`,children:i(`div`,{class:`field-value`,children:i(`span`,{class:`muted`,children:e.kind===`loading`?i(c,{message:`Preparing private key…`}):i(c,{message:`No keys available`})})})})]}),e.guidance&&i(F,{guidance:e.guidance}),i(`div`,{class:`warning`,children:i(c,{message:`Warning: your private keys grant full control of your account and funds. Keep it in a secret place.`})})]})})}function M(e){return e.scheme===`ed25519`}function N(e){return i(L,{entry:e},e.id)}function P(e){e.stopPropagation()}function F({guidance:e}){return i(`div`,{class:`warning`,children:[i(`strong`,{children:i(c,{copy:e.title||`Next Steps`})}),e.body&&i(`div`,{children:i(c,{copy:e.body})}),e.steps?.length?i(`ol`,{children:e.steps.map(I)}):null]})}function I(e,t){return i(`li`,{children:i(c,{copy:e})},t)}var L=class extends n{static contextType=d;state={reveal:null,publicCopied:!1,privateCopied:!1};root=t();frame=null;timers=new Map;generation=0;copyLifetime=new AbortController;active=!1;componentDidMount(){this.active=!0,this.reset(this.props.entry)}componentWillReceiveProps(e){R(this.props.entry,e.entry)||this.reset(e.entry)}componentDidUpdate(){this.schedule()}componentWillUnmount(){this.active=!1,this.clearPending(),this.state.reveal=null}clearPending(){this.generation+=1,this.copyLifetime.abort();let e=this.root.current?.ownerDocument.defaultView;this.frame!==null&&e?.cancelAnimationFrame(this.frame),this.frame=null;for(let t of this.timers.values())e?.clearTimeout(t);this.timers.clear()}reset(e){this.clearPending(),this.copyLifetime=new AbortController;let t=this.root.current.ownerDocument.defaultView,n=t.matchMedia(`(prefers-reduced-motion: reduce)`).matches,r=t.performance.now(),i=null;switch(e.material.kind){case`loading`:i=C(e.id,e.scheme,n,r);break;case`ready`:i=n?{kind:`settled`,entryKey:e.id}:T(C(e.id,e.scheme,!1,r),w(e.material.value),r);break;case`unavailable`:break;default:H(e.material)}this.setState({reveal:i,publicCopied:!1,privateCopied:!1})}schedule(){let e=this.state.reveal;if(!this.active||this.frame!==null||!e||e.kind===`settled`)return;let t=this.root.current.ownerDocument.defaultView;t.matchMedia(`(prefers-reduced-motion: reduce)`).matches||(this.frame=t.requestAnimationFrame(this.tick))}tick=e=>{this.frame=null;let t=this.state.reveal;if(!this.active||!t||t.kind===`settled`)return;let n=A(t,e);n!==t&&this.setState({reveal:n}),this.schedule()};copyPublic=()=>{this.copy(`public`)};copyPrivate=()=>{this.copy(`private`)};clearPublic=()=>{this.timers.delete(`public`),this.active&&this.setState({publicCopied:!1})};clearPrivate=()=>{this.timers.delete(`private`),this.active&&this.setState({privateCopied:!1})};async copy(e){let t=this.props.entry;if(!this.active||e===`private`&&(t.material.kind!==`ready`||this.state.reveal?.kind!==`settled`))return;let n=t.publicKey;if(e===`private`){if(t.material.kind!==`ready`)return;n=t.material.value}if(!n)return;let r=this.generation,i=this.root.current,a=i.ownerDocument.defaultView;if(a.focus(),!await m(i,n,this.copyLifetime.signal).catch(z)||!this.active||r!==this.generation)return;let o=this.timers.get(e);o!==void 0&&a.clearTimeout(o),e===`public`?this.setState({publicCopied:!0}):this.setState({privateCopied:!0}),this.timers.set(e,a.setTimeout(e===`public`?this.clearPublic:this.clearPrivate,3e3))}render(){let e=this.props.entry,t=e.material.kind===`ready`&&this.state.reveal?.kind===`settled`;return i(`div`,{class:`key-card`,ref:this.root,children:[i(`div`,{class:`key-title`,children:i(c,{copy:e.label})}),e.address&&i(`div`,{class:`field`,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Address`})}),i(`div`,{class:`field-value`,children:i(`span`,{class:`value`,children:e.address})})]}),e.scheme===`ed25519`&&i(`button`,{type:`button`,class:`field copy-field${this.state.publicCopied?` copied`:``}`,"aria-label":f(this.context,this.state.publicCopied?`Public key copied`:`Copy public key`),disabled:!e.publicKey,onClick:this.copyPublic,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Public Key`})}),i(`div`,{class:`field-value`,children:[i(`span`,{class:`value`,children:e.publicKey||`—`}),i(g,{})]})]}),i(`button`,{type:`button`,class:`field copy-field${this.state.privateCopied?` copied`:``}`,"aria-label":f(this.context,this.state.privateCopied?`Private key copied`:`Copy private key`),disabled:!t,onClick:this.copyPrivate,children:[i(`div`,{class:`field-label`,children:i(c,{message:`Private Key`})}),i(`div`,{class:`field-value`,children:[i(`span`,{class:`value private-key`,children:i(B,{material:e.material,reveal:this.state.reveal})}),i(g,{})]})]})]})}};function R(e,t){return e.id===t.id&&e.scheme===t.scheme&&e.publicKey===t.publicKey&&e.material.kind===t.material.kind&&e.material.value===t.material.value}function z(){return!1}function B({material:e,reveal:t}){return t&&t.kind!==`settled`?i(a,{children:[i(`span`,{class:`private-key-reel`,"aria-hidden":`true`,children:[i(`span`,{class:`reel-prefix`,children:t.prefix}),V(t)]}),i(`span`,{class:`seams-sr-only`,role:`status`,children:i(c,{message:`Decrypting private key`})})]}):e.kind===`ready`?i(a,{children:[i(`span`,{children:w(e.value)}),i(`span`,{class:`seams-sr-only`,role:`status`,children:i(c,{message:`Private key ready`})})]}):i(`span`,{class:`muted`,children:`—`})}function V(e){let t=e.kind===`settling`?e.lockedSlots:0,n=[];for(let r=0;r<e.slots.length;r+=1)n.push(i(`span`,{class:`reel-slot${r<t?` settled`:``}`,children:e.slots[r].glyph},r));return n}function H(e){throw Error(`Unexpected export key material: ${String(e)}`)}let U=0;var W=class{element;styles;context;state;constructor(t){this.styles=l(t.parent.ownerDocument),this.context=t.context,this.state={kind:`mounted`,onClosed:t.onClosed},this.element=t.parent.ownerDocument.createElement(`div`),this.element.id=`seams-export-surface-${++U}`,this.element.className=`seams-wallet-ui seams-export-surface`,this.element.dataset.seamsExportSurface=t.context,this.element.addEventListener(e.TX_CONFIRMER_CANCEL,this.handleCancel),t.parent.appendChild(this.element);try{this.update(t.model)}catch(e){throw this.remove(),e}}update(e){if(this.state.kind!==`disposed`){if(this.element.lang=e.appearance.locale??`en`,this.element.dataset.theme=e.appearance.theme.mode,this.element.dataset.seamsExportVariant=e.variant,this.styles.setDynamicRule(this.element.id,p(this.element.id,e.appearance)),e.variant===`modal`){r(u(e.appearance.locale??`en`,i(h,{context:this.context,label:`Exported Keys`,onCancel:this.dispose,children:i(j,{model:e.content,onClose:this.dispose})})),this.element);return}r(u(e.appearance.locale??`en`,i(_,{context:this.context,label:`Exported Keys`,dismissOnBackdrop:!1,styles:this.styles,state:{kind:`open`,interaction:`ready`},onCancel:this.dispose,children:i(j,{model:e.content})})),this.element)}}dispose=()=>{if(this.state.kind===`disposed`)return;let e=this.state.onClosed;this.remove(),e()};handleCancel=()=>{this.dispose()};remove(){this.state={kind:`disposed`},this.element.removeEventListener(e.TX_CONFIRMER_CANCEL,this.handleCancel),r(null,this.element),this.styles.deleteDynamicRule(this.element.id),this.element.remove()}};function G(e){return new W(e)}export{G as mountExportPrivateKeySurface};
@@ -1,2 +1,2 @@
1
- import{a as e,i as t,o as n,r,s as i}from"./csp-stylesheet-CHtV6HyK.js";import{c as a,i as o,n as s,o as c,r as l,t as u}from"./appearance-token-vars-EYbmnHsJ.js";function d(e){throw Error(`Unhandled recovery-code state: ${String(e)}`)}function f(e,t){return e instanceof Error&&e.message.trim()?e.message:t}function p(e){switch(e.kind){case`direct_backup`:return{kind:`recovery_codes`,request:e.request};case`account_menu`:return{kind:`summary`,walletId:e.walletId,loadState:{kind:`loading`},actionError:null};default:return d(e)}}function m(e){return{viewState:p(e),acknowledged:!1,statusMessage:``,copied:!1}}function h(e){switch(e.kind){case`summary`:case`opening`:case`recovery_codes`:return e.kind;default:return d(e)}}function g(e){switch(e.kind){case`ready`:return e.pendingLocalBackup||e.backupOutstanding?`Backup needed`:`Backed up`;case`no_recovery_set`:return`No recovery set`;case`unauthorized`:return`Authorization required`;case`transport_failed`:return`Could not load`;default:return d(e)}}function _(e){return e.kind===`loaded`&&e.status.kind===`ready`&&e.status.pendingLocalBackup}function v(e){if(e.kind===`error`)return e.message;if(e.kind!==`loaded`)return null;switch(e.status.kind){case`unauthorized`:case`transport_failed`:return e.status.message;case`ready`:case`no_recovery_set`:return null;default:return d(e.status)}}function y(e){switch(e.kind){case`loading`:return`Loading`;case`error`:return`Could not load`;case`loaded`:return g(e.status);default:return d(e)}}function b(e){switch(e.kind){case`loading`:return`Checking your codes…`;case`error`:return`Status unavailable`;case`loaded`:return e.status.kind===`ready`?`${e.status.activeCodeCount} of ${e.status.totalCodeCount} codes left`:`Status unavailable`;default:return d(e)}}function x(e){return e.trim().replace(/[^A-Za-z0-9_.-]/g,`_`)||`wallet`}function S(e,t){let n=[`Seams wallet recovery codes`,``,`Wallet: ${e}`,``,`Save these codes somewhere private. Each code can be used once.`,``];for(let[e,r]of t.entries())n.push(`${String(e+1).padStart(2,`0`)} ${r}`);return`${n.join(`
1
+ import{a as e,i as t,o as n,r,s as i}from"./csp-stylesheet-DUSqfXvZ.js";import{c as a,i as o,n as s,o as c,r as l,t as u}from"./appearance-token-vars-BJydfWT_.js";function d(e){throw Error(`Unhandled recovery-code state: ${String(e)}`)}function f(e,t){return e instanceof Error&&e.message.trim()?e.message:t}function p(e){switch(e.kind){case`direct_backup`:return{kind:`recovery_codes`,request:e.request};case`account_menu`:return{kind:`summary`,walletId:e.walletId,loadState:{kind:`loading`},actionError:null};default:return d(e)}}function m(e){return{viewState:p(e),acknowledged:!1,statusMessage:``,copied:!1}}function h(e){switch(e.kind){case`summary`:case`opening`:case`recovery_codes`:return e.kind;default:return d(e)}}function g(e){switch(e.kind){case`ready`:return e.pendingLocalBackup||e.backupOutstanding?`Backup needed`:`Backed up`;case`no_recovery_set`:return`No recovery set`;case`unauthorized`:return`Authorization required`;case`transport_failed`:return`Could not load`;default:return d(e)}}function _(e){return e.kind===`loaded`&&e.status.kind===`ready`&&e.status.pendingLocalBackup}function v(e){if(e.kind===`error`)return e.message;if(e.kind!==`loaded`)return null;switch(e.status.kind){case`unauthorized`:case`transport_failed`:return e.status.message;case`ready`:case`no_recovery_set`:return null;default:return d(e.status)}}function y(e){switch(e.kind){case`loading`:return`Loading`;case`error`:return`Could not load`;case`loaded`:return g(e.status);default:return d(e)}}function b(e){switch(e.kind){case`loading`:return`Checking your codes…`;case`error`:return`Status unavailable`;case`loaded`:return e.status.kind===`ready`?`${e.status.activeCodeCount} of ${e.status.totalCodeCount} codes left`:`Status unavailable`;default:return d(e)}}function x(e){return e.trim().replace(/[^A-Za-z0-9_.-]/g,`_`)||`wallet`}function S(e,t){let n=[`Seams wallet recovery codes`,``,`Wallet: ${e}`,``,`Save these codes somewhere private. Each code can be used once.`,``];for(let[e,r]of t.entries())n.push(`${String(e+1).padStart(2,`0`)} ${r}`);return`${n.join(`
2
2
  `)}\n`}function C(e,t){return t?`Finish backup`:e.continuation===`registration_may_defer`?`Back up later`:`Close`}function w(e,t){return r(`li`,{class:`recovery-code-item`,children:[r(`span`,{class:`recovery-code-index`,children:t+1}),r(`span`,{class:`recovery-code-value`,children:e})]},`${t}-${e}`)}var T=class extends t{static contextType=l;state=m(this.props.experience);root=e();active=!1;loadGeneration=0;copiedResetTimer=null;focusFrame=null;componentDidMount(){this.active=!0,this.loadGeneration+=1,this.notifyStage(),this.beginAccountStatus(this.props.experience,this.loadGeneration)}componentWillReceiveProps(e){e.experience!==this.props.experience&&(this.loadGeneration+=1,this.clearFocusFrame(),this.clearCopiedFlash(),this.setState(m(e.experience)),this.beginAccountStatus(e.experience,this.loadGeneration))}componentDidUpdate(e,t){h(t.viewState)!==h(this.state.viewState)&&this.notifyStage(),t.viewState.kind!==`recovery_codes`&&this.state.viewState.kind===`recovery_codes`&&this.focusTitleAfterRender()}componentWillUnmount(){this.active=!1,this.loadGeneration+=1,this.clearFocusFrame(),this.clearCopiedFlash()}render(){let e=this.state.viewState,t=h(e),n=e.kind===`recovery_codes`?this.renderRecoveryCodes(e.request):this.renderSummary(e);return r(`div`,{ref:this.root,class:`seams-recovery-code-backup-viewer`,"data-seams-recovery-entry":this.props.experience.kind,"data-seams-recovery-stage":t,children:n})}notifyStage(){this.props.onStageChange(h(this.state.viewState))}beginAccountStatus(e,t){e.kind===`account_menu`&&this.loadSummaryStatus(e,t)}async loadSummaryStatus(e,t){try{let n=await e.loadStatus();this.updateSummaryLoadState(t,{kind:`loaded`,status:n})}catch(e){this.updateSummaryLoadState(t,{kind:`error`,message:f(e,`Could not load recovery-code status`)})}}updateSummaryLoadState(e,t){if(!this.active||e!==this.loadGeneration)return;let n=this.state.viewState;n.kind!==`summary`&&n.kind!==`opening`||this.setState({viewState:{...n,loadState:t}})}retryStatus=()=>{let e=this.props.experience;if(e.kind!==`account_menu`)return;let t=this.state.viewState;if(t.kind!==`summary`)return;let n=++this.loadGeneration;this.setState({viewState:{...t,loadState:{kind:`loading`},actionError:null}}),this.loadSummaryStatus(e,n)};openRecoveryCodes=async()=>{let e=this.props.experience,t=this.state.viewState;if(e.kind!==`account_menu`||t.kind!==`summary`)return;if(t.loadState.kind!==`loaded`||t.loadState.status.kind!==`ready`){this.setState({viewState:{...t,actionError:`Verify recovery-code status before opening saved codes.`}});return}let n=t.loadState.status.issuedAtMs,r=this.loadGeneration;this.setState({viewState:{...t,kind:`opening`,actionError:null}});try{let i=await e.loadPendingBackup();if(!this.active||r!==this.loadGeneration)return;if(!i){this.setState({viewState:{...t,actionError:`Recovery codes are no longer available on this device.`}});return}if(i.continuation!==`pending_backup_must_finish`||i.issuedAtMs!==n){this.setState({viewState:{...t,actionError:`These saved codes belong to a different recovery set. Check status again.`}});return}this.setState({viewState:{kind:`recovery_codes`,request:i}})}catch(e){if(!this.active||r!==this.loadGeneration)return;this.setState({viewState:{...t,actionError:f(e,`Could not open recovery codes`)}})}};closeSummary=()=>{this.props.onClose({kind:`dismissed`})};closeRecoveryCodes=()=>{let e=this.state.viewState;e.kind===`recovery_codes`&&this.props.onClose({kind:`recovery_codes`,acknowledged:this.state.acknowledged,request:e.request})};onAcknowledgementChange=e=>{e.currentTarget instanceof HTMLInputElement&&this.setState({acknowledged:e.currentTarget.checked})};download=()=>{let e=this.state.viewState;if(e.kind!==`recovery_codes`)return;let t=this.root.current?.ownerDocument.defaultView;if(!t)return;let{walletId:n,recoveryCodes:r}=e.request;try{let e=t.URL.createObjectURL(new t.Blob([S(n,r)],{type:`text/plain;charset=utf-8`})),i=t.document.createElement(`a`);i.href=e,i.download=`seams-wallet-recovery-codes-${x(n)}.txt`;try{i.click()}finally{t.setTimeout(()=>t.URL.revokeObjectURL(e),0)}this.setState({statusMessage:`Recovery codes downloaded.`})}catch{this.setState({statusMessage:`Unable to download the codes. Copy them or try again.`})}};copy=async()=>{let e=this.state.viewState;if(e.kind!==`recovery_codes`||!this.active)return;let{walletId:t,recoveryCodes:n}=e.request,r=this.loadGeneration;try{if(await navigator.clipboard.writeText(S(t,n)),!this.active||r!==this.loadGeneration)return;this.setState({statusMessage:`Recovery codes copied.`}),this.flashCopied()}catch{if(!this.active||r!==this.loadGeneration)return;this.setState({statusMessage:`Unable to copy the codes. Download them or try again.`})}};flashCopied(){let e=this.root.current?.ownerDocument.defaultView;e&&(this.copiedResetTimer!==null&&e.clearTimeout(this.copiedResetTimer),this.setState({copied:!0}),this.copiedResetTimer=e.setTimeout(()=>{this.copiedResetTimer=null,this.active&&this.setState({copied:!1})},1800))}clearCopiedFlash(){let e=this.root.current?.ownerDocument.defaultView;e&&this.copiedResetTimer!==null&&e.clearTimeout(this.copiedResetTimer),this.copiedResetTimer=null}clearFocusFrame(){let e=this.root.current?.ownerDocument.defaultView;e&&this.focusFrame!==null&&e.cancelAnimationFrame(this.focusFrame),this.focusFrame=null}focusTitleAfterRender(){let e=this.root.current?.ownerDocument.defaultView;e&&(this.clearFocusFrame(),this.focusFrame=e.requestAnimationFrame(()=>{this.focusFrame=null,this.active&&this.root.current?.querySelector(`.recovery-backup-title`)?.focus()}))}renderSummary(e){let t=v(e.loadState),n=_(e.loadState),s=e.kind===`opening`;return r(i,{children:[r(`button`,{type:`button`,class:`recovery-summary-close`,"aria-label":a(this.context,`Close recovery codes`),onClick:this.closeSummary,children:r(`svg`,{"aria-hidden":`true`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:r(`path`,{d:`M6 6l12 12M18 6 6 18`})})}),r(`h1`,{id:`seams-wallet-recovery-title`,class:`recovery-backup-title`,tabIndex:-1,children:r(o,{message:`Wallet recovery codes`})}),r(`p`,{id:`seams-wallet-recovery-description`,class:`recovery-backup-description`,children:r(o,{message:`View and save the recovery codes retained by this wallet after registration.`})}),r(`div`,{class:`recovery-summary-body`,children:[r(`h2`,{class:`recovery-summary-section-label`,children:r(o,{message:`Security`})}),r(`div`,{class:`recovery-summary-item`,children:[r(`span`,{class:`recovery-summary-item-icon`,"aria-hidden":`true`,children:r(E,{})}),r(`span`,{class:`recovery-summary-item-text`,children:[r(`span`,{class:`recovery-summary-item-title`,children:r(o,{message:`Recovery codes`})}),r(`span`,{class:`recovery-summary-item-detail`,children:r(o,{copy:b(e.loadState)})})]}),r(`span`,{class:`recovery-summary-badge`,children:r(o,{copy:y(e.loadState)})})]}),r(`div`,{class:`recovery-summary-item`,children:[r(`span`,{class:`recovery-summary-item-icon`,"aria-hidden":`true`,children:r(D,{})}),r(`span`,{class:`recovery-summary-item-text`,children:[r(`span`,{class:`recovery-summary-item-title`,children:r(o,{message:`Wallet`})}),r(`span`,{class:`recovery-summary-item-detail`,children:e.walletId})]})]}),n&&r(`button`,{type:`button`,class:`recovery-backup-button secondary recovery-summary-open`,disabled:s,onClick:this.openRecoveryCodes,children:s?r(i,{children:[r(o,{message:`Opening recovery codes`}),r(`span`,{class:`recovery-summary-ellipsis`,"aria-hidden":`true`,children:[r(`span`,{children:`.`}),r(`span`,{children:`.`}),r(`span`,{children:`.`})]})]}):r(o,{message:`View recovery codes`})}),r(`p`,{class:`recovery-summary-live-status`,role:`status`,"aria-live":`polite`,children:e.loadState.kind===`loading`?r(o,{message:`Loading recovery-code status…`}):``}),t&&r(`p`,{class:`recovery-summary-error`,role:`alert`,children:r(o,{copy:t})}),e.actionError&&r(`p`,{class:`recovery-summary-error`,role:`alert`,children:r(o,{copy:e.actionError})}),e.loadState.kind===`error`&&r(`button`,{type:`button`,class:`recovery-backup-button secondary`,onClick:this.retryStatus,children:r(o,{message:`Retry status`})})]})]})}renderRecoveryCodes(e){let t=e.continuation===`registration_may_defer`?`Each code can recover your wallet once. Save them now, or back them up later from Recovery Codes.`:`Each code can recover your wallet once. Keep them somewhere private.`;return r(i,{children:[r(`h1`,{id:`seams-wallet-recovery-title`,class:`recovery-backup-title`,tabIndex:-1,children:r(o,{message:`Save your recovery codes`})}),r(`p`,{id:`seams-wallet-recovery-description`,class:`recovery-backup-description`,children:r(o,{copy:t})}),r(`div`,{class:`recovery-code-sheet`,children:[r(`div`,{class:`recovery-code-sheet-heading`,children:[r(`span`,{children:r(o,{message:`Recovery codes`})}),r(`span`,{children:r(o,{message:`{value0} single-use codes`,values:{value0:e.recoveryCodes.length}})})]}),r(`ol`,{class:`recovery-code-list`,children:e.recoveryCodes.map(w)})]}),r(`div`,{class:`recovery-backup-actions`,children:[r(`button`,{type:`button`,class:`recovery-backup-button primary`,onClick:this.download,children:r(o,{message:`Download codes`})}),r(`button`,{type:`button`,class:`recovery-backup-button secondary recovery-backup-copy${this.state.copied?` copied`:``}`,onClick:this.copy,children:[r(O,{}),r(o,{message:`Copy codes`})]})]}),r(`div`,{class:`recovery-backup-footer`,children:[r(`label`,{class:`recovery-backup-acknowledgement`,children:[r(`input`,{type:`checkbox`,"data-seams-wallet-recovery-backup-acknowledgement":!0,checked:this.state.acknowledged,onChange:this.onAcknowledgementChange}),r(`span`,{children:[r(o,{message:`I saved these recovery codes somewhere safe.`}),r(`small`,{children:r(o,{message:`They won’t be shown again after you finish.`})})]})]}),r(`button`,{type:`button`,class:`recovery-backup-button ${this.state.acknowledged?`primary`:`secondary`}`,"data-seams-wallet-recovery-backup-close":!0,onClick:this.closeRecoveryCodes,children:r(o,{copy:C(e,this.state.acknowledged)})})]}),r(`p`,{class:`recovery-backup-status`,role:`status`,children:r(o,{copy:this.state.statusMessage})})]})}};function E(){return r(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:[r(`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}),r(`path`,{d:`m9 12 2 2 4-4`})]})}function D(){return r(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:[r(`path`,{d:`M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1`}),r(`path`,{d:`M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4`})]})}function O(){return r(`span`,{class:`copy-icon`,"aria-hidden":`true`,children:[r(`span`,{class:`copy-icon-check`,children:r(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:r(`path`,{d:`M20 6 9 17l-5-5`})})}),r(`span`,{class:`copy-icon-copy`,children:r(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:[r(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`}),r(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})]})})]})}let k=0;var A=class{element;dialog;document;input;state=`mounted`;constructor(e){this.input=e,this.document=e.parent.ownerDocument,this.element=this.document.createElement(`div`),this.element.id=`seams-recovery-surface-${++k}`,this.element.className=`seams-wallet-ui seams-recovery-code-backup-host`,this.element.lang=e.appearance?.locale??`en`,this.element.dataset.seamsRecoverySurface=e.surface,e.appearance&&(this.element.dataset.theme=e.appearance.theme.mode,s(this.document).setDynamicRule(this.element.id,u(this.element.id,e.appearance))),this.dialog=this.document.createElement(`dialog`),this.dialog.className=`seams-host-themed-dialog`,this.dialog.tabIndex=-1,this.dialog.setAttribute(`data-seams-wallet-recovery-backup-dialog`,``),this.dialog.dataset.seamsRecoverySurface=e.surface,this.dialog.setAttribute(`aria-labelledby`,`seams-wallet-recovery-title`),this.dialog.setAttribute(`aria-describedby`,`seams-wallet-recovery-description`),this.dialog.addEventListener(`cancel`,this.handleCancel),this.element.appendChild(this.dialog),e.parent.appendChild(this.element);try{this.render(e.experience),this.dialog.showModal(),this.focusTitle(),e.onShown(this.dialog)}catch(e){throw this.dispose(),e}}update(e){this.state!==`disposed`&&this.render(e)}dispose(){this.state!==`disposed`&&(this.state=`disposed`,this.dialog.removeEventListener(`cancel`,this.handleCancel),n(null,this.dialog),this.dialog.open&&this.dialog.close(),s(this.document).deleteDynamicRule(this.element.id),this.element.remove())}render(e){this.state!==`disposed`&&(this.element.dataset.seamsRecoveryEntry=e.kind,n(c(this.input.appearance?.locale??`en`,r(T,{experience:e,onClose:this.input.onClose,onStageChange:this.handleStageChange})),this.dialog))}handleCancel=e=>{e.preventDefault(),this.input.onCancel()};handleStageChange=e=>{this.state!==`disposed`&&(this.dialog.dataset.seamsRecoveryStage=e)};focusTitle(){this.dialog.querySelector(`.recovery-backup-title`)?.focus()}};function j(e){return new A(e)}export{j as mountRecoveryCodeBackupSurface};
@@ -1 +1 @@
1
- import{C as e,E as t,M as n,N as r,O as i,S as a,g as o,i as s,k as c,p as l}from"./domainIds-t1lp25yU.js";import{g as u,h as d}from"./digests-BIaE0DMd.js";import{a as f,c as p,d as m,o as h,u as ee}from"./participants-BXdREC5k.js";import{t as g}from"./walletRegistrationSetupPrewarm-CEvGKQSg.js";import{r as te}from"./base64-BmKR3UqU.js";import{s as ne}from"./walletDbName-Ca0rCq5r.js";import{X as re,i as ie,n as ae,r as oe}from"./activeWalletSession-BJ4B-nJo.js";import{d as se,f as ce,i as le,r as ue}from"./signingSessionSeal-BFOBKj-J.js";import{d as _,g as de,h as v,m as fe}from"./capabilityKinds-DVlGMspk.js";import{r as pe}from"./canonicalPrimitives-Jd3i_Ngz.js";import{n as me,r as he}from"./signerDomain-BLnlQPAV.js";import{I as ge,L as _e,_ as ve,a as ye,c as be,i as xe,k as y,n as Se,o as Ce,s as we,t as Te}from"./registrationIntent-BVPp0k0k.js";import{a as b,l as Ee,o as De,s as Oe}from"./ecdsaChainTarget-Lh24LLyA.js";import{c as x,l as ke,s as Ae}from"./accountIds-Dj_0GoY-.js";import{q as je,v as Me}from"./device-linking-BsUTtSF7.js";import{M as Ne,X as S,Y as Pe,d as Fe,q as Ie}from"./walletAuthority-DGdC9Glh.js";import{F as Le,M as Re,N as ze,Nt as Be,S as Ve,j as He,rt as C,st as Ue,x as We}from"./digestEncoding-n8Kr2kow.js";import{r as Ge}from"./walletAuthMethodRecord-Bi78B6Ab.js";import{r as Ke}from"./registrationAuthMethodInput-Be4Td0Ef.js";import{a as w,o as qe}from"./signerSlot-DgLzb3Ee.js";import{o as Je,u as Ye}from"./registrationSignerPlan-_8gsSjC0.js";import{C as Xe,E as Ze,M as Qe,b as $e,l as et,y as tt}from"./emailOtpEcdsaDerivationIdentity-0DIuRNRi.js";import{n as nt}from"./thresholdEcdsa-CPVZNLEg.js";function rt(e){let t=D(e);if(!t||!(`kind`in t)||typeof t.kind!=`string`)return null;switch(t.kind){case`issued`:{if(!O(t,[`kind`,`session`])||!(`session`in t))return null;let e=it(t.session);return e===null?null:{kind:`issued`,session:e}}case`already_committed`:{if(!O(t,[`kind`,`session`,`next`])||!(`session`in t)||!(`next`in t)||t.next!==`unlock_exact_method`)return null;let e=st(t.session);return e===null?null:{kind:`already_committed`,session:e,next:t.next}}default:return null}}function it(e){try{let t=D(e);if(!t||!O(t,[`kind`,`walletId`,`authorizationId`,`walletSessionId`,`quotaId`,`expiresAtMs`,`remainingUses`,`walletSession`,`operationCredential`,`tokens`])||!(`kind`in t)||!(`walletId`in t)||!(`authorizationId`in t)||!(`walletSessionId`in t)||!(`quotaId`in t)||!(`expiresAtMs`in t)||!(`remainingUses`in t)||!(`walletSession`in t)||!(`operationCredential`in t)||!(`tokens`in t)||t.kind!==`registration_established_wallet_session_v2`)return null;let n=c(t.walletId),r=v(t.walletSessionId),i=fe(t.authorizationId),a=_(t.quotaId);if(!n.ok||!i.ok||!r.ok||!a.ok)return null;let o=E(t.expiresAtMs),s=E(t.remainingUses);if(o===null||o<=0||s===null||s<=0)return null;let l=ae(t.walletSession),u=ie(t.operationCredential);if(l.walletId!==n.value||l.authorizationId!==i.value||l.quotaId!==a.value||l.expiresAtMs!==o||u.walletSessionId!==r.value)return null;let d=ct(t.tokens);return d===null||!at(l,d)?null:{kind:`registration_established_wallet_session_v2`,walletId:n.value,authorizationId:i.value,walletSessionId:r.value,quotaId:a.value,expiresAtMs:o,remainingUses:s,walletSession:l,operationCredential:u,tokens:d}}catch{return null}}function at(e,t){switch(t.kind){case`evm_family_ecdsa`:return T(e,`ecdsa_secp256k1`,t.ecdsa.materialActivation)&&!ot(e,`ecdsa_secp256k1`);case`near_ed25519`:return T(e,`ed25519`,t.ed25519.materialActivation)&&!ot(e,`ed25519`);case`near_ed25519_and_evm_family_ecdsa`:return T(e,`ecdsa_secp256k1`,t.ecdsa.materialActivation)&&T(e,`ed25519`,t.ed25519.materialActivation)&&!ot(e,`ed25519`,`ecdsa_secp256k1`);default:return!1}}function T(e,t,n){return e.capabilitySubjects.some(e=>e.kind===`sign`&&e.keyFamily===t&&s(e.materialActivation,n))}function ot(e,...t){return e.capabilitySubjects.some(e=>e.kind===`sign`&&!t.includes(e.keyFamily))}function st(e){try{let t=D(e);if(!t||!O(t,[`kind`,`walletId`,`authorizationId`,`walletSessionId`,`quotaId`,`expiresAtMs`,`remainingUses`,`walletSession`,`tokens`])||!(`kind`in t)||!(`walletId`in t)||!(`authorizationId`in t)||!(`walletSessionId`in t)||!(`quotaId`in t)||!(`expiresAtMs`in t)||!(`remainingUses`in t)||!(`walletSession`in t)||!(`tokens`in t)||t.kind!==`registration_established_wallet_session_projection_v2`)return null;let n=c(t.walletId),r=fe(t.authorizationId),i=v(t.walletSessionId),a=_(t.quotaId);if(!n.ok||!r.ok||!i.ok||!a.ok||new Set([r.value,i.value,a.value]).size!==3)return null;let o=E(t.expiresAtMs),s=E(t.remainingUses),l=ae(t.walletSession),u=ct(t.tokens);return o===null||o<=0||s===null||u===null||l.walletId!==n.value||l.authorizationId!==r.value||l.quotaId!==a.value||l.expiresAtMs!==o||!at(l,u)?null:{kind:`registration_established_wallet_session_projection_v2`,walletId:n.value,authorizationId:r.value,walletSessionId:i.value,quotaId:a.value,expiresAtMs:o,remainingUses:s,walletSession:l,tokens:u}}catch{return null}}function ct(e){let t=D(e);if(!t||!(`kind`in t)||typeof t.kind!=`string`)return null;switch(t.kind){case`evm_family_ecdsa`:{if(!O(t,[`kind`,`ecdsa`])||!(`ecdsa`in t))return null;let e=lt(t.ecdsa);return e===null?null:{kind:`evm_family_ecdsa`,ecdsa:e}}case`near_ed25519`:{if(!O(t,[`kind`,`ed25519`])||!(`ed25519`in t))return null;let e=ut(t.ed25519);return e===null?null:{kind:`near_ed25519`,ed25519:e}}case`near_ed25519_and_evm_family_ecdsa`:{if(!O(t,[`kind`,`ecdsa`,`ed25519`])||!(`ecdsa`in t)||!(`ed25519`in t))return null;let e=lt(t.ecdsa),n=ut(t.ed25519);return e===null||n===null?null:{kind:`near_ed25519_and_evm_family_ecdsa`,ecdsa:e,ed25519:n}}default:return null}}function lt(e){let t=D(e);if(!t||!O(t,[`sessionKind`,`thresholdSessionId`,`keyHandle`,`runtimePolicyScope`,`materialActivation`,`routerAbEcdsaDerivationNormalSigning`])||!(`sessionKind`in t)||!(`thresholdSessionId`in t)||!(`keyHandle`in t)||!(`runtimePolicyScope`in t)||!(`materialActivation`in t)||!(`routerAbEcdsaDerivationNormalSigning`in t)||t.sessionKind!==`credential_free_projection_v2`)return null;let n=a(t.thresholdSessionId);if(!n.ok)return null;try{let e=Qe(t.keyHandle),r=dt(t.runtimePolicyScope),i=o(t.materialActivation);if(!i.ok)return null;let a=We(t.routerAbEcdsaDerivationNormalSigning);if(!a)return null;let c=Be(a.scope.material_activation);return s(i.value,c)?{sessionKind:`credential_free_projection_v2`,thresholdSessionId:n.value,keyHandle:e,runtimePolicyScope:r,materialActivation:i.value,routerAbEcdsaDerivationNormalSigning:a}:null}catch{return null}}function ut(t){let n=D(t);if(!n||!O(n,[`sessionKind`,`thresholdSessionId`,`nearAccountId`,`nearEd25519SigningKeyId`,`runtimePolicyScope`,`materialActivation`,`routerAbNormalSigning`])||!(`sessionKind`in n)||!(`thresholdSessionId`in n)||!(`nearAccountId`in n)||!(`nearEd25519SigningKeyId`in n)||!(`runtimePolicyScope`in n)||!(`materialActivation`in n)||!(`routerAbNormalSigning`in n)||n.sessionKind!==`credential_free_projection_v2`)return null;let r=e(n.thresholdSessionId),i=ke(n.nearAccountId);if(!r.ok||!i.ok)return null;try{let e=w(n.nearEd25519SigningKeyId),t=dt(n.runtimePolicyScope),a=o(n.materialActivation);if(!a.ok)return null;let s=se(n.routerAbNormalSigning);return s?{sessionKind:`credential_free_projection_v2`,thresholdSessionId:r.value,nearAccountId:i.value,nearEd25519SigningKeyId:e,runtimePolicyScope:t,materialActivation:a.value,routerAbNormalSigning:s}:null}catch{return null}}function dt(e){let t=D(e);if(!t||!O(t,[`orgId`,`projectId`,`envId`,`signingRootVersion`])||!(`orgId`in t)||!(`projectId`in t)||!(`envId`in t)||!(`signingRootVersion`in t))throw Error(`runtime policy scope projection is invalid`);return re({orgId:t.orgId,projectId:t.projectId,envId:t.envId,signingRootVersion:t.signingRootVersion})}function E(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function D(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function O(e,t){return Object.keys(e).length===t.length&&t.every(t=>Object.prototype.hasOwnProperty.call(e,t))}function ft(e){let t=String(e||``).trim().toLowerCase();return/^0x[0-9a-f]{40}$/.test(t)?t:``}const pt=/^ederivation-key-[A-Za-z0-9_-]+$/;function k(e){let t=String(e||``).trim();return t?pt.test(t)?{kind:`resolved`,keyHandle:t}:{kind:`invalid`}:{kind:`missing`}}function mt(e){let t=k(e.keyHandle),n=d(e.sharedEvmFamilyKey)?k(e.sharedEvmFamilyKey.keyHandle):{kind:`missing`};return t.kind===`missing`?{kind:`blocked`,reason:`missing_key_handle`}:t.kind===`invalid`||n.kind===`invalid`?{kind:`blocked`,reason:`invalid_key_handle`}:n.kind===`resolved`&&t.keyHandle!==n.keyHandle?{kind:`blocked`,reason:`duplicate_key_handles`}:{kind:`resolved`,keyHandle:t.keyHandle}}function ht(e){let t=(d(e.metadata.sharedEvmFamilyKey)?e.metadata.sharedEvmFamilyKey:null)||e.metadata,n=String(t.thresholdEcdsaPublicKeyB64u||e.metadata.thresholdEcdsaPublicKeyB64u||``).trim();if(!n)return null;let r=String(t.walletId||``).trim();if(!r)return null;try{Ze(n);let i=t.ecdsaThresholdKeyId||e.metadata.ecdsaThresholdKeyId,a=t.signingRootId||e.metadata.signingRootId,o=t.signingRootVersion||e.metadata.signingRootVersion,s=t.participantIds||e.metadata.participantIds,c=t.thresholdOwnerAddress||e.metadata.thresholdOwnerAddress||e.metadata.ownerAddress;return et({walletId:r,keyHandle:e.keyHandle,chainTarget:e.chainTarget,ecdsaThresholdKeyId:i,signingRootId:a,signingRootVersion:o,participantIds:s,thresholdOwnerAddress:c,thresholdEcdsaPublicKeyB64u:n})}catch{return null}}function gt(e){try{let t=Ve(e.raw);return String(t.client_id)!==String(e.walletId)||t.public_identity.threshold_public_key33_b64u!==e.thresholdEcdsaPublicKeyB64u?null:t}catch{return null}}function _t(e){let t=e.signer;if(t.status!==`active`||t.signerKind!==he.thresholdEcdsa||t.signerAuthMethod!==me.passkey)return{kind:`skipped`};let n=d(t.metadata)?t.metadata:{};if(!d(n.chainTarget))return{kind:`blocked`,targetKey:``,reason:`missing_chain_target`};let r;try{r=b(n.chainTarget)}catch{return{kind:`blocked`,targetKey:``,reason:`invalid_chain_target`}}if(!e.configuredTargets.some(e=>Oe(e,r)))return{kind:`skipped`};let i=De(r),a=mt(n);if(a.kind===`blocked`)return{kind:`blocked`,targetKey:i,reason:a.reason};let o=ht({metadata:n,keyHandle:a.keyHandle,chainTarget:r});if(!o)return{kind:`key_facts_inventory_required`,chainTarget:r,targetKey:i,keyHandle:a.keyHandle,reason:`missing_key_facts`};let s=gt({raw:n.publicCapability,walletId:e.walletId,thresholdEcdsaPublicKeyB64u:o.keyFacts.thresholdEcdsaPublicKeyB64u});return{kind:`active_wallet_key`,chainTarget:r,targetKey:i,walletKey:o,publicCapability:s?{kind:`persisted_public_capability`,value:s}:{kind:`missing_public_capability`}}}function vt(e){let{raw:t}=e;if(!d(t)||!d(t.chainTarget))return null;let n=d(t.key)?t.key:t,r;try{r=b(t.chainTarget)}catch{return null}let i=k(t.keyHandle),a=k(n.keyHandle),o=ft(t.accountAddress),s=ft(t.ownerAddress),c=String(n.walletId||``).trim(),l=String(n.subjectId||``).trim(),u=String(Ee({walletId:e.walletId})),f=String(n.rpId||``).trim(),p=String(n.thresholdEcdsaPublicKeyB64u||t.thresholdEcdsaPublicKeyB64u||``).trim(),m=ft(n.thresholdOwnerAddress||t.ownerAddress||t.accountAddress||t.ethereumAddress);if(i.kind!==`resolved`||a.kind!==`resolved`||a.keyHandle!==i.keyHandle||!p||!s||!o||!m||c!==String(e.walletId)||l&&l!==u||f!==e.rpId||m!==s)return null;try{let a=gt({raw:t.publicCapability,walletId:e.walletId,thresholdEcdsaPublicKeyB64u:p});if(!a)return null;let c=Xe(i.keyHandle),l=$e({record:{ecdsaThresholdKeyId:t.ecdsaThresholdKeyId}}),u=tt({signingRootId:t.signingRootId||n.signingRootId,signingRootVersion:t.signingRootVersion||n.signingRootVersion});return{accountAddress:o,ownerAddress:s,publicCapability:a,walletKey:et({walletId:e.walletId,keyHandle:c,chainTarget:r,ecdsaThresholdKeyId:l,signingRootId:u.signingRootId,signingRootVersion:u.signingRootVersion,participantIds:n.participantIds||t.participantIds,thresholdOwnerAddress:m,thresholdEcdsaPublicKeyB64u:p})}}catch{return null}}function yt(e){let t=[];for(let n of e.records){let r=vt({walletId:e.walletId,rpId:e.rpId,raw:n});r&&t.push(r)}return t}function A(e){let t=String(e.value||``).trim();if(!t)throw Error(`${e.responseName} response missing ${e.field}`);return t}function j(e){if(!u(e.value))throw Error(`${e.responseName} response missing ${e.field}`);return e.value}function M(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw Error(`${n} response contains unexpected ${t}`)}function N(e){let t=Number(e.value);if(!Number.isSafeInteger(t)||t<e.minimum)throw Error(`${e.responseName} response has invalid ${e.field}`);return t}function P(e,t){if(!Array.isArray(e)||e.length!==2)throw Error(`${t} response has invalid participantIds`);let n=N({responseName:t,field:`participantIds[0]`,value:e[0],minimum:1}),r=N({responseName:t,field:`participantIds[1]`,value:e[1],minimum:1});if(n===r)throw Error(`${t} response has duplicate participantIds`);if(n!==1||r!==2)throw Error(`${t} response has unsupported participantIds`);return[n,r]}function F(e,t){let n=r(e);if(!n.ok)throw Error(`${t} response has invalid rpId`);return n.value}function bt(e,t){let n=j({responseName:t,field:`authorityScope`,value:e});switch(n.kind){case`passkey_rp`:return M(n,[`kind`,`rpId`],t),{kind:`passkey_rp`,rpId:F(n.rpId,t)};case`email_otp`:if(M(n,[`kind`,`provider`,`providerUserId`],t),n.provider!==`google`&&n.provider!==`email`)throw Error(`${t} response has invalid authorityScope provider`);return{kind:`email_otp`,provider:n.provider,providerUserId:A({responseName:t,field:`authorityScope.providerUserId`,value:n.providerUserId})};default:throw Error(`${t} response has invalid authorityScope`)}}function xt(e,t){let n=j({responseName:t,field:`ed25519`,value:e});if(M(n,[`signerSlot`,`nearAccountId`,`nearEd25519SigningKeyId`,`publicKey`,`relayerKeyId`,`keyVersion`,`recoveryExportCapable`,`participantIds`],t),n.recoveryExportCapable!==!0)throw Error(`${t} response is not recovery/export capable`);return{signerSlot:N({responseName:t,field:`ed25519.signerSlot`,value:n.signerSlot,minimum:1}),nearAccountId:A({responseName:t,field:`ed25519.nearAccountId`,value:n.nearAccountId}),nearEd25519SigningKeyId:A({responseName:t,field:`ed25519.nearEd25519SigningKeyId`,value:n.nearEd25519SigningKeyId}),publicKey:A({responseName:t,field:`ed25519.publicKey`,value:n.publicKey}),relayerKeyId:A({responseName:t,field:`ed25519.relayerKeyId`,value:n.relayerKeyId}),keyVersion:A({responseName:t,field:`ed25519.keyVersion`,value:n.keyVersion}),recoveryExportCapable:!0,participantIds:P(n.participantIds,t)}}function St(t,n){let r=j({responseName:n,field:`ed25519`,value:t});M(r,[`signerSlot`,`nearAccountId`,`nearEd25519SigningKeyId`,`publicKey`,`relayerKeyId`,`keyVersion`,`recoveryExportCapable`,`participantIds`,`thresholdSessionId`,`runtimePolicyScope`,`routerAbNormalSigning`],n);let i=xt({signerSlot:r.signerSlot,nearAccountId:r.nearAccountId,nearEd25519SigningKeyId:r.nearEd25519SigningKeyId,publicKey:r.publicKey,relayerKeyId:r.relayerKeyId,keyVersion:r.keyVersion,recoveryExportCapable:r.recoveryExportCapable,participantIds:r.participantIds},n),a=e(r.thresholdSessionId);if(!a.ok)throw Error(`${n} response has invalid ed25519.thresholdSessionId`);let o=ne(r.runtimePolicyScope);if(!o)throw Error(`${n} response has invalid ed25519.runtimePolicyScope`);return{...i,thresholdSessionId:a.value,runtimePolicyScope:o,routerAbNormalSigning:ce(r.routerAbNormalSigning)}}function Ct(e,t){let n=j({responseName:t,field:`chainTarget`,value:e});switch(n.kind){case`evm`:return M(n,[`kind`,`namespace`,`chainId`,`networkSlug`],t),b(n);case`tempo`:return M(n,[`kind`,`chainId`,`networkSlug`],t),b(n);default:throw Error(`${t} response has invalid chainTarget kind`)}}function wt(e,t){let n=j({responseName:t,field:`ecdsa.walletKeys[]`,value:e});if(M(n,[`keyScope`,`chainTarget`,`walletId`,`evmFamilySigningKeySlotId`,`keyHandle`,`ecdsaThresholdKeyId`,`signingRootId`,`signingRootVersion`,`thresholdEcdsaPublicKeyB64u`,`thresholdOwnerAddress`,`relayerKeyId`,`relayerVerifyingShareB64u`,`contextBinding32B64u`,`derivationClientSharePublicKey33B64u`,`clientShareRetryCounter`,`relayerShareRetryCounter`,`participantIds`,`publicCapability`],t),n.keyScope!==`evm-family`)throw Error(`${t} response has invalid keyScope`);return{keyScope:`evm-family`,chainTarget:Ct(n.chainTarget,t),walletId:A({responseName:t,field:`walletId`,value:n.walletId}),evmFamilySigningKeySlotId:A({responseName:t,field:`evmFamilySigningKeySlotId`,value:n.evmFamilySigningKeySlotId}),keyHandle:A({responseName:t,field:`keyHandle`,value:n.keyHandle}),ecdsaThresholdKeyId:A({responseName:t,field:`ecdsaThresholdKeyId`,value:n.ecdsaThresholdKeyId}),signingRootId:A({responseName:t,field:`signingRootId`,value:n.signingRootId}),signingRootVersion:A({responseName:t,field:`signingRootVersion`,value:n.signingRootVersion}),thresholdEcdsaPublicKeyB64u:A({responseName:t,field:`thresholdEcdsaPublicKeyB64u`,value:n.thresholdEcdsaPublicKeyB64u}),thresholdOwnerAddress:A({responseName:t,field:`thresholdOwnerAddress`,value:n.thresholdOwnerAddress}),relayerKeyId:A({responseName:t,field:`relayerKeyId`,value:n.relayerKeyId}),relayerVerifyingShareB64u:A({responseName:t,field:`relayerVerifyingShareB64u`,value:n.relayerVerifyingShareB64u}),contextBinding32B64u:A({responseName:t,field:`contextBinding32B64u`,value:n.contextBinding32B64u}),derivationClientSharePublicKey33B64u:A({responseName:t,field:`derivationClientSharePublicKey33B64u`,value:n.derivationClientSharePublicKey33B64u}),clientShareRetryCounter:N({responseName:t,field:`clientShareRetryCounter`,value:n.clientShareRetryCounter,minimum:0}),relayerShareRetryCounter:N({responseName:t,field:`relayerShareRetryCounter`,value:n.relayerShareRetryCounter,minimum:0}),participantIds:P(n.participantIds,t),publicCapability:Ve(n.publicCapability)}}function Tt(e){switch(e){case`registrationIntentLoadMs`:case`registrationIntentDigestMs`:case`registrationIntentConsumeMs`:case`registrationAttemptGateMs`:case`registrationPreparationPersistMs`:case`registrationPreparationLoadMs`:case`registrationPreparationConsumeMs`:case`registrationPreparationScopeCheckMs`:case`registrationAuthorityVerifyMs`:case`registrationEcdsaPrepareMs`:case`registrationCeremonyPersistMs`:case`registerPrepareTotalMs`:case`registerStartTotalMs`:case`registrationEcdsaRespondMs`:case`registrationFinalizeReplayLoadMs`:case`registrationCeremonyLoadMs`:case`registrationEcdsaBootstrapVerifyMs`:case`sponsoredNearAccountCreateMs`:case`registrationKeygenMs`:case`registrationEmailOtpEnrollmentPlanMs`:case`relaySessionMintMs`:case`relayGoogleEmailOtpActivationPlanMs`:case`relayPersistenceMs`:case`registrationFinalizeReplayCacheMs`:case`registerFinalizeTotalMs`:return e;default:throw Error(`Wallet registration finalize response has invalid diagnostics timing name`)}}function Et(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`registrationDiagnostics`,value:e});if(M(n,[`kind`,`route`,`entries`],t),n.kind!==`wallet_registration_route_diagnostics_v1`||n.route!==`wallets_register_finalize`||!Array.isArray(n.entries))throw Error(`${t} response has invalid registrationDiagnostics`);return{kind:`wallet_registration_route_diagnostics_v1`,route:`wallets_register_finalize`,entries:n.entries.map(e=>{let n=j({responseName:t,field:`registrationDiagnostics.entries[]`,value:e});if(M(n,[`name`,`durationMs`],t),typeof n.durationMs!=`number`||!Number.isFinite(n.durationMs)||n.durationMs<0)throw Error(`${t} response has invalid diagnostics durationMs`);return{name:Tt(n.name),durationMs:n.durationMs}})}}function Dt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`authority`,value:e});M(n,[`walletId`,`factor`,`verifier`,`bindingId`],t);let r=j({responseName:t,field:`authority.factor`,value:n.factor}),i=j({responseName:t,field:`authority.verifier`,value:n.verifier});switch(r.kind){case`passkey`:M(r,[`kind`,`credentialIdB64u`],t),M(i,[`kind`,`rpId`],t);break;case`email_otp`:M(r,[`kind`,`provider`,`providerUserId`],t),M(i,[`kind`,`emailHashHex`],t);break;default:throw Error(`${t} response has invalid authority factor`)}let a=Ue(n);if(!a)throw Error(`${t} response has invalid authority`);return a}function Ot(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`authMethod`,value:e.response.authMethod});if(String(e.authority.walletId)!==String(e.walletId))throw Error(`${t} response authority wallet mismatch`);switch(n.kind){case`passkey`:{if(M(n,[`kind`,`credentialIdB64u`,`credentialPublicKeyB64u`],t),!C(e.authority))throw Error(`${t} response has inconsistent passkey authority`);let r=F(e.response.rpId,t),i=A({responseName:t,field:`authMethod.credentialIdB64u`,value:n.credentialIdB64u});if(String(e.authority.factor.credentialIdB64u)!==i||String(e.authority.verifier.rpId)!==String(r))throw Error(`${t} response passkey authority binding mismatch`);return{kind:`passkey`,rpId:r,authMethod:{kind:`passkey`,credentialIdB64u:i,credentialPublicKeyB64u:A({responseName:t,field:`authMethod.credentialPublicKeyB64u`,value:n.credentialPublicKeyB64u})}}}case`email_otp`:if(M(n,[`kind`,`registrationAuthorityId`],t),C(e.authority)||e.response.rpId!==void 0)throw Error(`${t} response has inconsistent email OTP authority`);return{kind:`email_otp`,authMethod:{kind:`email_otp`,registrationAuthorityId:A({responseName:t,field:`authMethod.registrationAuthorityId`,value:n.registrationAuthorityId})}};default:throw Error(`${t} response has invalid authMethod`)}}function kt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`accountProvisioning`,value:e});switch(n.kind){case`implicit_account`:if(M(n,[`kind`,`accountIdSource`],t),n.accountIdSource!==`ed25519_public_key`)throw Error(`${t} response has invalid implicit account provisioning`);return{kind:`implicit_account`,accountIdSource:`ed25519_public_key`};case`sponsored_named_account`:{M(n,[`kind`,`requestedAccountId`,`sponsor`],t);let e=x(n.requestedAccountId);if(!e.ok||n.sponsor!==`relayer`)throw Error(`${t} response has invalid named account provisioning`);return{kind:`sponsored_named_account`,requestedAccountId:e.value,sponsor:`relayer`}}default:throw Error(`${t} response has invalid accountProvisioning kind`)}}function At(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`resolvedAccount`,value:e});switch(n.kind){case`implicit_account`:{M(n,[`kind`,`nearAccountId`,`nearEd25519SigningKeyId`],t);let e=Ae(n.nearAccountId);if(!e.ok)throw Error(`${t} response has invalid implicit nearAccountId`);return{kind:`implicit_account`,nearAccountId:e.value,nearEd25519SigningKeyId:w(n.nearEd25519SigningKeyId)}}case`sponsored_named_account`:{M(n,[`kind`,`nearAccountId`,`nearEd25519SigningKeyId`,`transactionHash`],t);let e=x(n.nearAccountId);if(!e.ok)throw Error(`${t} response has invalid named nearAccountId`);return{kind:`sponsored_named_account`,nearAccountId:e.value,nearEd25519SigningKeyId:w(n.nearEd25519SigningKeyId),transactionHash:A({responseName:t,field:`resolvedAccount.transactionHash`,value:n.transactionHash})}}default:throw Error(`${t} response has invalid resolvedAccount kind`)}}function jt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`ecdsa`,value:e.value});if(M(n,[`walletKeys`],t),!Array.isArray(n.walletKeys)||n.walletKeys.length===0)throw Error(`${t} response has invalid walletKeys`);let r=new Set;return{walletKeys:n.walletKeys.map(n=>{let i=wt(n,t);if(i.walletId!==String(e.walletId))throw Error(`${t} response ECDSA walletId mismatch`);if(String(i.publicCapability.client_id)!==String(e.walletId)||i.publicCapability.public_identity.context_binding_b64u!==i.contextBinding32B64u||i.publicCapability.public_identity.derivation_client_share_public_key33_b64u!==i.derivationClientSharePublicKey33B64u||i.publicCapability.public_identity.threshold_public_key33_b64u!==i.thresholdEcdsaPublicKeyB64u||i.publicCapability.public_identity.client_share_retry_counter!==i.clientShareRetryCounter||i.publicCapability.public_identity.server_share_retry_counter!==i.relayerShareRetryCounter)throw Error(`${t} response ECDSA public capability mismatch`);let a=De(i.chainTarget);if(r.has(a))throw Error(`${t} response has duplicate ECDSA target ${a}`);return r.add(a),i})}}function Mt(e){let t=`Wallet registration finalize`,n=bt(e.response.authorityScope,t),r=kt(e.response.accountProvisioning),i=At(e.response.resolvedAccount),a=St(e.response.ed25519,t);if(r.kind!==i.kind||i.nearAccountId!==a.nearAccountId||i.nearEd25519SigningKeyId!==a.nearEd25519SigningKeyId)throw Error(`${t} response has inconsistent Ed25519 identity`);if(n.kind===`passkey_rp`&&(!C(e.authority)||String(e.authority.verifier.rpId)!==String(n.rpId))||n.kind===`email_otp`&&(C(e.authority)||e.authority.factor.provider!==n.provider||String(e.authority.factor.providerUserId)!==n.providerUserId))throw Error(`${t} response authorityScope mismatch`);return{authorityScope:n,accountProvisioning:r,resolvedAccount:i,ed25519:a}}function Nt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`body`,value:e.value});if(M(n,[`ok`,`walletId`,`authority`,`foundingAuthority`,`foundingAuthMethod`,`registrationDiagnostics`,`rpId`,`authMethod`,`walletCustody`,`custodyKeyManifestDigestB64u`,`kind`,`authorityScope`,`accountProvisioning`,`resolvedAccount`,`ed25519`,`ecdsa`],t),n.ok!==!0||n.kind!==e.expectedKind)throw Error(`${t} response substituted signer branch`);let r=qe(A({responseName:t,field:`walletId`,value:n.walletId})),i=Dt(n.authority),a=Fe(n.foundingAuthority),o=Ge(n.foundingAuthMethod);if(!a.ok)throw Error(`${t} response has an invalid founding authority: ${a.error.message}`);if(a.value.state!==`active`)throw Error(`${t} response has an inactive founding authority`);if(!o)throw Error(`${t} response has an invalid founding auth method`);if(o.status!==`active`)throw Error(`${t} response has an inactive founding auth method`);if(a.value.walletId!==r||o.walletId!==r)throw Error(`${t} response changed the founding wallet identity`);if(o.walletAuthorityId!==a.value.authorityId)throw Error(`${t} response has mismatched founding authority identities`);if(o.walletAuthMethodId!==i.bindingId)throw Error(`${t} response has mismatched founding auth-method identities`);let s=Ot({response:n,walletId:r,authority:i}),c=n.registrationDiagnostics===void 0?void 0:Et(n.registrationDiagnostics),l=n.walletCustody===void 0?{}:{walletCustody:ve(n.walletCustody,t)},u=n.custodyKeyManifestDigestB64u===void 0?void 0:A({responseName:t,field:`custodyKeyManifestDigestB64u`,value:n.custodyKeyManifestDigestB64u});if(u!==void 0&&te(u).byteLength!==32)throw Error(`${t} response has invalid custodyKeyManifestDigestB64u`);let d=u===void 0?{}:{custodyKeyManifestDigestB64u:u};switch(n.kind){case`near_ed25519`:{if(n.ecdsa!==void 0)throw Error(`${t} response mixed signer branches`);let e=Mt({response:n,authority:i});return s.kind===`passkey`?{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,rpId:s.rpId,authMethod:s.authMethod,kind:`near_ed25519`,authorityScope:e.authorityScope,accountProvisioning:e.accountProvisioning,resolvedAccount:e.resolvedAccount,ed25519:e.ed25519}:{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,authMethod:s.authMethod,kind:`near_ed25519`,authorityScope:e.authorityScope,accountProvisioning:e.accountProvisioning,resolvedAccount:e.resolvedAccount,ed25519:e.ed25519}}case`evm_family_ecdsa`:{if(n.authorityScope!==void 0||n.accountProvisioning!==void 0||n.resolvedAccount!==void 0||n.ed25519!==void 0)throw Error(`${t} response mixed signer branches`);let e=jt({value:n.ecdsa,walletId:r});return s.kind===`passkey`?{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,rpId:s.rpId,authMethod:s.authMethod,kind:`evm_family_ecdsa`,ecdsa:e}:{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,authMethod:s.authMethod,kind:`evm_family_ecdsa`,ecdsa:e}}default:throw Error(`${t} response has invalid kind`)}}const Pt=`/wallets/register/respond`,Ft=`/wallets/register/activate`,It=`/wallets/register/near-provisioning`,Lt=`X-Seams-Environment-Id`;function Rt(e){let t=[Pt];e.evmFamilyEcdsa&&t.push(Ft),e.nearEd25519&&(e.evmFamilyEcdsa&&t.push(`/wallets/register/near-admission`),t.push(Ne,It,le,ue)),m(e.relayerUrl,t)}function zt(e){try{return new TextEncoder().encode(String(e||``)).length}catch{return String(e||``).length}}function Bt(){try{return globalThis.__SEAMS_REGISTRATION_BENCHMARK_DIAGNOSTICS===!0}catch{return!1}}function Vt(e){if(!(!e.value||typeof e.value!=`object`||Array.isArray(e.value))&&!(Object.keys(e.out).length>=64))for(let[t,n]of Object.entries(e.value)){if(Object.keys(e.out).length>=64)return;let r=e.path?`${e.path}.${t}`:t;typeof n==`string`?e.out[`${r}Bytes`]=zt(n):Array.isArray(n)?e.out[`${r}Count`]=n.length:e.depth>0&&n&&typeof n==`object`&&Vt({value:n,out:e.out,path:r,depth:e.depth-1})}}function Ht(e){let t={};return Vt({value:e,out:t,path:``,depth:2}),t}function Ut(e){try{return JSON.parse(e)}catch{return}}function I(e,t){if(!(typeof e!=`object`||!e||Array.isArray(e)))return Reflect.get(e,t)}async function Wt(e){try{return await e.text()}catch{return`{}`}}async function L(e){let t=Date.now(),n=JSON.stringify(e.body),r=await fetch(`${ee(e.relayerUrl,{trim:!1})}${e.path}`,h({headers:{...e.headers,"X-Seams-Wallet-Protocol":`4`},body:e.body,bodyJson:n}));if(e.onServerTiming)try{e.onServerTiming(r.headers.get(`Server-Timing`))}catch{}let i=await Wt(r),a=Ut(i);if(Bt()&&console.info(`[Registration] wallet route payload summary`,{path:e.path,status:r.status,requestBytes:zt(n),requestSizeBreakdown:Ht(e.body),responseBytes:zt(i),responseSizeBreakdown:Ht(a),totalMs:Date.now()-t}),!r.ok||I(a,`ok`)===!1){let e=String(I(a,`code`)||``).trim(),t=String(I(a,`message`)||I(a,`error`)||e||`HTTP ${r.status}`);throw Object.assign(Error(t),e?{code:e}:{})}return a}const Gt=[`ok`,`walletId`,`nearAccountId`,`fundedAmountYocto`],Kt=[`transactionHash`,`message`],qt=[`ok`,`code`,`message`];function Jt(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Yt(e,t,n,r){let i=new Set([...t,...n]),a=Object.keys(e);if(a.some(e=>!i.has(e)))throw Error(`${r} contains unexpected fields`);for(let e of t)if(!a.includes(e))throw Error(`${r}.${e} is required`)}function R(e,t){return Reflect.get(e,t)}function Xt(e,t){if(typeof e!=`string`||e.trim().length===0)throw Error(`${t} must be a non-empty string`);return e.trim()}function Zt(e,t){if(e!==void 0){if(typeof e!=`string`)throw Error(`${t} must be a string`);return e}}function Qt(e){let t=Jt(e,`fund implicit NEAR account response`),n=R(t,`ok`);if(n===!0){Yt(t,Gt,Kt,`fund implicit NEAR account success response`);let e=c(R(t,`walletId`));if(!e.ok)throw Error(`fund implicit NEAR account walletId is invalid`);let n=Ae(R(t,`nearAccountId`));if(!n.ok)throw Error(`fund implicit NEAR account nearAccountId is invalid`);let r=Zt(R(t,`transactionHash`),`fund implicit NEAR account transactionHash`),i=Zt(R(t,`message`),`fund implicit NEAR account message`);return{ok:!0,walletId:e.value,nearAccountId:n.value,fundedAmountYocto:Xt(R(t,`fundedAmountYocto`),`fund implicit NEAR account fundedAmountYocto`),...r===void 0?{}:{transactionHash:r},...i===void 0?{}:{message:i}}}if(n===!1)return Yt(t,qt,[],`fund implicit NEAR account failure response`),{ok:!1,code:Xt(R(t,`code`),`fund implicit NEAR account code`),message:Xt(R(t,`message`),`fund implicit NEAR account message`)};throw Error(`fund implicit NEAR account response has an invalid ok discriminator`)}async function $t(e){let t=String(e.walletId||``).trim(),n=String(e.nearAccountId||``).trim(),r=String(e.nearPublicKeyStr||``).trim(),i=String(e.walletSessionToken||``).trim();if(!t)throw Error(`walletId is required for implicit NEAR account funding`);if(!n)throw Error(`nearAccountId is required for implicit NEAR account funding`);if(!r)throw Error(`nearPublicKeyStr is required for implicit NEAR account funding`);if(!i)throw Error(`walletSessionToken is required for implicit NEAR account funding`);return Qt(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/near/implicit-account/fund`,headers:f({token:i,missingMessage:`walletSessionToken is required for implicit NEAR account funding`}),body:{nearAccountId:n,nearPublicKeyStr:r}}))}function en(e){let t=String(e||``).trim();if(!t)throw Error(`Registration preparation id is required`);return t}const tn=[`formatVersion`,`walletId`,`evmFamilySigningKeySlotId`,`ecdsaThresholdKeyId`,`signingRootId`,`signingRootVersion`,`keyScope`,`relayerKeyId`,`registrationPreparationId`,`requestId`,`thresholdSessionId`,`ttlMs`,`remainingUses`,`participantIds`,`runtimePolicyScope`];function z(e){if(e.value===null||typeof e.value!=`object`||Array.isArray(e.value))throw Error(`${e.responseName} response missing ${e.field}`);return e.value}function B(e,t,n){if(!Object.keys(e).includes(t))throw Error(`${n} is missing ${t}`);return Reflect.get(e,t)}function V(e,t,n){if(Object.keys(e).includes(t))return Reflect.get(e,t)}function H(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw Error(`${n} contains unexpected ${t}`)}function U(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}function nn(e,t){return Object.keys(e).includes(t)}function rn(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e)throw Error(`${t} must be a non-empty canonical string`);return e}function an(e,t,n){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<n)throw Error(`${t} must be a safe integer`);return e}function W(e,t,n){return rn(B(e,t,n),`${n}.${t}`)}function G(e,t,n){if(nn(e,t))return rn(B(e,t,n),`${n}.${t}`)}function K(e,t,n,r){return an(B(e,t,n),`${n}.${t}`,r)}function on(e,t){let n=U(e,t);if(n.length===0)throw Error(`${t} must not be empty`);let r=[];for(let e=0;e<n.length;e+=1)r.push(an(n[e],`${t}[${e}]`,1));return r}function sn(e,t){let n=on(e,t);if(n.length!==2||n[0]!==1||n[1]!==2)throw Error(`${t} must be [1, 2]`);return[1,2]}function cn(e,t,n=!1){if(e===void 0)return;let r=`${t} runtimePolicyScope`,i=z({responseName:r,field:`value`,value:e});H(i,[`orgId`,`projectId`,`envId`,`signingRootVersion`],r);let a=G(i,`signingRootVersion`,r);if(n&&a===void 0)throw Error(`${r}.signingRootVersion is required`);let o={orgId:W(i,`orgId`,r),projectId:W(i,`projectId`,r),envId:W(i,`envId`,r)};return a===void 0?o:{...o,signingRootVersion:a}}function ln(e,t){let n=cn(e,t,!0);if(!n||n.signingRootVersion===void 0)throw Error(`${t} runtimePolicyScope is invalid`);return{orgId:n.orgId,projectId:n.projectId,envId:n.envId,signingRootVersion:n.signingRootVersion}}function un(e){let t=`Wallet registration setup intent authMethod`,n=z({responseName:t,field:`value`,value:e});switch(W(n,`kind`,t)){case`passkey`:if(H(n,[`kind`,`rpId`,`authenticatorOptions`],t),!r(W(n,`rpId`,t)).ok)throw Error(`${t}.rpId is invalid`);if(!nn(n,`authenticatorOptions`))break;if(B(n,`authenticatorOptions`,t)===void 0)throw Error(`${t}.authenticatorOptions must be defined when present`);break;case`email_otp`:switch(W(n,`proofKind`,t)){case`otp_challenge`:H(n,[`kind`,`proofKind`,`email`,`providerSubject`,`otpCode`,`challengeId`],t),G(n,`challengeId`,t),W(n,`email`,t),W(n,`providerSubject`,t),W(n,`otpCode`,t);break;case`google_sso_registration`:H(n,[`kind`,`proofKind`,`email`,`providerSubject`,`googleEmailOtpRegistrationAttemptId`,`googleEmailOtpRegistrationOfferId`,`googleEmailOtpRegistrationCandidateId`],t),W(n,`email`,t),W(n,`providerSubject`,t),W(n,`googleEmailOtpRegistrationAttemptId`,t),W(n,`googleEmailOtpRegistrationOfferId`,t),W(n,`googleEmailOtpRegistrationCandidateId`,t);break;default:throw Error(`${t}.proofKind is invalid`)}break;default:throw Error(`${t}.kind is invalid`)}let i=Ke(e);if(!i)throw Error(`${t} is invalid`);return i}function dn(e){let t=`Wallet registration setup intent accountProvisioning`,n=z({responseName:t,field:`value`,value:e}),r=W(n,`kind`,t);switch(r){case`implicit_account`:if(H(n,[`kind`,`accountIdSource`],t),W(n,`accountIdSource`,t)!==`ed25519_public_key`)throw Error(`${t}.accountIdSource is invalid`);return{kind:r,accountIdSource:`ed25519_public_key`};case`sponsored_named_account`:{if(H(n,[`kind`,`requestedAccountId`,`sponsor`],t),W(n,`sponsor`,t)!==`relayer`)throw Error(`${t}.sponsor is invalid`);let e=x(W(n,`requestedAccountId`,t));if(!e.ok)throw Error(`${t}.requestedAccountId is invalid`);return{kind:r,requestedAccountId:e.value,sponsor:`relayer`}}default:throw Error(`${t}.kind is invalid`)}}function q(e,t){switch(e.kind){case`evm`:return t.kind===`evm`&&e.namespace===t.namespace&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;case`tempo`:return t.kind===`tempo`&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;default:return fn(e)}}function fn(e){throw Error(`Unsupported wallet registration setup chain target: ${String(e)}`)}function J(e,t){let n=z({responseName:t,field:`chainTarget`,value:e}),r=W(n,`kind`,t);switch(r){case`evm`:{if(H(n,[`kind`,`namespace`,`chainId`,`networkSlug`],t),W(n,`namespace`,t)!==`eip155`)throw Error(`${t}.namespace is invalid`);let e=K(n,`chainId`,t,1),i=G(n,`networkSlug`,t);return i===void 0?{kind:r,namespace:`eip155`,chainId:e}:{kind:r,namespace:`eip155`,chainId:e,networkSlug:i}}case`tempo`:{H(n,[`kind`,`chainId`,`networkSlug`],t);let e=K(n,`chainId`,t,1),i=G(n,`networkSlug`,t);return i===void 0?{kind:r,chainId:e}:{kind:r,chainId:e,networkSlug:i}}default:throw Error(`${t}.kind is invalid`)}}function pn(e){try{return J(e,`Wallet registration setup intent`)}catch{return null}}function mn(e){let t=`Wallet registration setup intent signer`,n=z({responseName:t,field:`value`,value:e}),r=W(n,`kind`,t);switch(r){case`near_ed25519`:if(H(n,[`kind`,`accountProvisioning`,`signerSlot`,`participantIds`,`derivationVersion`],t),K(n,`derivationVersion`,t,1)!==1)throw Error(`${t}.derivationVersion is invalid`);return{kind:r,accountProvisioning:dn(B(n,`accountProvisioning`,t)),signerSlot:K(n,`signerSlot`,t,1),participantIds:on(B(n,`participantIds`,t),`${t}.participantIds`),derivationVersion:1};case`evm_family_ecdsa`:{H(n,[`kind`,`participantIds`,`chainTargets`],t);let e=U(B(n,`chainTargets`,t),`${t}.chainTargets`);if(e.length===0)throw Error(`${t}.chainTargets must not be empty`);let i=[];for(let n of e){let e=J(n,`${t}.chainTargets`);if(i.some(t=>q(t,e)))throw Error(`${t}.chainTargets contains a duplicate target`);i.push(e)}return{kind:r,participantIds:on(B(n,`participantIds`,t),`${t}.participantIds`),chainTargets:i}}default:throw Error(`${t}.kind is invalid`)}}function hn(e){let t=`Wallet registration setup intent signerSelection`,n=z({responseName:t,field:`value`,value:e});if(H(n,[`kind`,`signers`],t),W(n,`kind`,t)!==`signer_set`)throw Error(`${t}.kind is invalid`);let r=U(B(n,`signers`,t),`${t}.signers`);if(r.length===0)throw Error(`${t}.signers must not be empty`);let i=[];for(let e of r)i.push(mn(e));return{kind:`signer_set`,signers:i}}function gn(e){let n=`Wallet registration setup intent`,r=z({responseName:n,field:`intent`,value:e});if(H(r,[`version`,`walletId`,`authMethod`,`signerSelection`,`foundingWalletAuthMethodId`,`runtimePolicyScope`,`nonceB64u`],n),W(r,`version`,n)!==`registration_intent_v1`)throw Error(`${n}.version is invalid`);let i=c(W(r,`walletId`,n));if(!i.ok)throw Error(`${n}.walletId is invalid`);let a=t(W(r,`foundingWalletAuthMethodId`,n));if(!a.ok)throw Error(`${n}.foundingWalletAuthMethodId is invalid`);let o=un(B(r,`authMethod`,n)),s=hn(B(r,`signerSelection`,n)),l=cn(V(r,`runtimePolicyScope`,n),n),u=W(r,`nonceB64u`,n);return l===void 0?{version:`registration_intent_v1`,walletId:i.value,authMethod:o,signerSelection:s,foundingWalletAuthMethodId:a.value,nonceB64u:u}:{version:`registration_intent_v1`,walletId:i.value,authMethod:o,signerSelection:s,foundingWalletAuthMethodId:a.value,runtimePolicyScope:l,nonceB64u:u}}function _n(e){let t=`Wallet add-signer ECDSA derivation`,n=z({responseName:t,field:`response`,value:e});if(H(n,[`ok`,`addSignerCeremonyId`,`ecdsa`],`${t} response`),B(n,`ok`,`${t} response`)!==!0)throw Error(`${t} response is not successful`);let r=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,`${t} response`)});if(H(r,[`kind`,`strictResult`],`${t} response ecdsa`),B(r,`kind`,`${t} response ecdsa`)!==`router_ab_ecdsa_registration_forwarded_v1`)throw Error(`${t} response kind is invalid`);return{ok:!0,addSignerCeremonyId:A({responseName:t,field:`addSignerCeremonyId`,value:B(n,`addSignerCeremonyId`,t)}),ecdsa:{kind:`router_ab_ecdsa_registration_forwarded_v1`,strictResult:ze(B(r,`strictResult`,`${t} response ecdsa`))}}}function vn(e){let t=`Wallet add-signer ECDSA activation`,n=z({responseName:t,field:`response`,value:e});if(H(n,[`ok`,`addSignerCeremonyId`,`ecdsa`],`${t} response`),B(n,`ok`,`${t} response`)!==!0)throw Error(`${t} response is not successful`);let r=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,`${t} response`)});if(H(r,[`kind`,`activation`,`bootstrap`],`${t} response ecdsa`),B(r,`kind`,`${t} response ecdsa`)!==`router_ab_ecdsa_registration_activated_v1`)throw Error(`${t} response kind is invalid`);return{ok:!0,addSignerCeremonyId:A({responseName:t,field:`addSignerCeremonyId`,value:B(n,`addSignerCeremonyId`,t)}),ecdsa:{kind:`router_ab_ecdsa_registration_activated_v1`,activation:He(B(r,`activation`,`${t} response ecdsa`)),bootstrap:nt(B(r,`bootstrap`,`${t} response ecdsa`))}}}function yn(e){return e.authMethod.kind===`email_otp`}function bn(e){let t=`Wallet add-auth-method intent`,n=z({responseName:t,field:`body`,value:e});if(H(n,[`ok`,`intent`,`addAuthMethodIntentDigestB64u`,`addAuthMethodIntentGrant`,`expiresAtMs`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=ye(B(n,`intent`,t)),i;try{i=pe(B(n,`addAuthMethodIntentDigestB64u`,t))}catch{throw Error(`${t} response has invalid addAuthMethodIntentDigestB64u`)}let a=B(n,`addAuthMethodIntentGrant`,t);if(typeof a!=`string`||!a.trim())throw Error(`${t} response is missing addAuthMethodIntentGrant`);return{ok:!0,intent:r,addAuthMethodIntentDigestB64u:i,addAuthMethodIntentGrant:Te(a),expiresAtMs:N({responseName:t,field:`expiresAtMs`,value:B(n,`expiresAtMs`,t),minimum:1})}}function xn(e){let t=`Wallet add-signer intent`,n=z({responseName:t,field:`body`,value:e});if(H(n,[`ok`,`intent`,`addSignerIntentDigestB64u`,`addSignerIntentGrant`,`expiresAtMs`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=Ce(B(n,`intent`,t)),i;try{i=pe(B(n,`addSignerIntentDigestB64u`,t))}catch{throw Error(`${t} response has invalid addSignerIntentDigestB64u`)}let a=B(n,`addSignerIntentGrant`,t);if(typeof a!=`string`||!a.trim())throw Error(`${t} response is missing addSignerIntentGrant`);return{ok:!0,intent:r,addSignerIntentDigestB64u:i,addSignerIntentGrant:Se(a),expiresAtMs:N({responseName:t,field:`expiresAtMs`,value:B(n,`expiresAtMs`,t),minimum:1})}}function Sn(e){let t=`Wallet add-auth-method finalize`,i=z({responseName:t,field:`body`,value:e});if(B(i,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let a=z({responseName:t,field:`authMethod`,value:B(i,`authMethod`,t)}),o=B(a,`kind`,`${t} authMethod`);if(o!==`passkey`&&o!==`email_otp`)throw Error(`${t} response has invalid authMethod kind`);let s=c(B(i,`walletId`,t));if(!s.ok)throw Error(`${t} response has invalid walletId`);let l=Ue(B(i,`authority`,t));if(!l)throw Error(`${t} response has invalid authority`);if(l.walletId!==s.value)throw Error(`${t} response authority wallet mismatch`);if(o===`passkey`){if(H(i,[`ok`,`walletId`,`authority`,`rpId`,`authMethod`],t),H(a,[`kind`,`status`,`credentialIdB64u`,`credentialPublicKeyB64u`,`counter`,`device`],`${t} authMethod`),B(a,`status`,t)!==`active`)throw Error(`${t} response has invalid authMethod status`);if(l.factor.kind!==`passkey`||l.verifier.kind!==`webauthn`)throw Error(`${t} response has inconsistent passkey authority`);let e=r(B(i,`rpId`,t));if(!e.ok)throw Error(`${t} response has invalid rpId`);let o=n(B(a,`credentialIdB64u`,t));if(!o.ok)throw Error(`${t} response has invalid credentialIdB64u`);let c=B(a,`credentialPublicKeyB64u`,t);if(typeof c!=`string`||!c.trim())throw Error(`${t} response is missing credentialPublicKeyB64u`);let u=B(a,`counter`,t);if(typeof u!=`number`||!Number.isSafeInteger(u)||u<0)throw Error(`${t} response has invalid counter`);let d=Me(B(a,`device`,t));if(!d)throw Error(`${t} response has invalid device`);if(l.factor.credentialIdB64u!==o.value||l.verifier.rpId!==e.value)throw Error(`${t} response passkey authority binding mismatch`);return{ok:!0,walletId:s.value,authority:l,rpId:e.value,authMethod:{kind:`passkey`,status:`active`,credentialIdB64u:o.value,credentialPublicKeyB64u:c.trim(),counter:u,device:d}}}if(H(i,[`ok`,`walletId`,`authority`,`authMethod`],t),H(a,[`kind`,`status`],`${t} authMethod`),B(a,`status`,t)!==`active`)throw Error(`${t} response has invalid authMethod status`);if(l.factor.kind!==`email_otp`||l.verifier.kind!==`email_otp_wallet_auth_method`)throw Error(`${t} response has inconsistent email OTP authority`);return{ok:!0,walletId:s.value,authority:l,authMethod:{kind:`email_otp`,status:`active`}}}function Cn(e){let t=`Wallet add-auth-method start`,n=z({responseName:t,field:`body`,value:e.value});if(B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=A({responseName:t,field:`addAuthMethodCeremonyId`,value:B(n,`addAuthMethodCeremonyId`,t)}),i=Tn(B(n,`intent`,t),e.expectedIntent);return e.expectedIntent.authMethod.kind===`email_otp`?(H(n,[`ok`,`addAuthMethodCeremonyId`,`intent`,`custodyEnvelope`,`addAuthMethodCeremonyExpiresAtMs`],t),{ok:!0,addAuthMethodCeremonyId:r,intent:i,custodyEnvelope:y(B(n,`custodyEnvelope`,t)),addAuthMethodCeremonyExpiresAtMs:N({responseName:t,field:`addAuthMethodCeremonyExpiresAtMs`,value:B(n,`addAuthMethodCeremonyExpiresAtMs`,t),minimum:1})}):(H(n,[`ok`,`addAuthMethodCeremonyId`,`intent`,`custodyEnvelope`,`registration`,`addAuthMethodCeremonyExpiresAtMs`],t),{ok:!0,addAuthMethodCeremonyId:r,intent:i,custodyEnvelope:y(B(n,`custodyEnvelope`,t)),registration:je(B(n,`registration`,t)),addAuthMethodCeremonyExpiresAtMs:N({responseName:t,field:`addAuthMethodCeremonyExpiresAtMs`,value:B(n,`addAuthMethodCeremonyExpiresAtMs`,t),minimum:1})})}function wn(e,t){try{if(!be(Ce(e),t))throw Error(`intent mismatch`)}catch{throw Error(`Wallet add-signer start response changed the admitted intent`)}return t}function Tn(e,t){try{if(!we(ye(e),t))throw Error(`intent mismatch`)}catch{throw Error(`Wallet add-auth-method start response changed the admitted intent`)}return t}function En(e,t){let n=z({responseName:t,field:`ecdsa.prepare`,value:e});if(H(n,tn,t),B(n,`formatVersion`,t)!==`ecdsa-derivation-role-local`||B(n,`keyScope`,t)!==`evm-family`)throw Error(`${t} response has invalid prepare discriminator`);let r=ne(B(n,`runtimePolicyScope`,t));if(!r)throw Error(`${t} response has invalid runtimePolicyScope`);return{formatVersion:`ecdsa-derivation-role-local`,walletId:A({responseName:t,field:`prepare.walletId`,value:B(n,`walletId`,t)}),evmFamilySigningKeySlotId:A({responseName:t,field:`prepare.evmFamilySigningKeySlotId`,value:B(n,`evmFamilySigningKeySlotId`,t)}),ecdsaThresholdKeyId:A({responseName:t,field:`prepare.ecdsaThresholdKeyId`,value:B(n,`ecdsaThresholdKeyId`,t)}),signingRootId:A({responseName:t,field:`prepare.signingRootId`,value:B(n,`signingRootId`,t)}),signingRootVersion:A({responseName:t,field:`prepare.signingRootVersion`,value:B(n,`signingRootVersion`,t)}),keyScope:`evm-family`,relayerKeyId:A({responseName:t,field:`prepare.relayerKeyId`,value:B(n,`relayerKeyId`,t)}),registrationPreparationId:en(A({responseName:t,field:`prepare.registrationPreparationId`,value:B(n,`registrationPreparationId`,t)})),requestId:A({responseName:t,field:`prepare.requestId`,value:B(n,`requestId`,t)}),thresholdSessionId:A({responseName:t,field:`prepare.thresholdSessionId`,value:B(n,`thresholdSessionId`,t)}),ttlMs:N({responseName:t,field:`prepare.ttlMs`,value:B(n,`ttlMs`,t),minimum:1}),remainingUses:N({responseName:t,field:`prepare.remainingUses`,value:B(n,`remainingUses`,t),minimum:0}),participantIds:[...P(B(n,`participantIds`,t),t)],runtimePolicyScope:r}}function Dn(e,t){let n=z({responseName:t,field:`ecdsa.prepare`,value:e});if(H(n,tn,t),B(n,`formatVersion`,t)!==`ecdsa-derivation-role-local`||B(n,`keyScope`,t)!==`evm-family`)throw Error(`${t} response has invalid prepare discriminator`);for(let e of[`walletId`,`evmFamilySigningKeySlotId`,`ecdsaThresholdKeyId`,`signingRootId`,`signingRootVersion`,`relayerKeyId`,`registrationPreparationId`,`requestId`,`thresholdSessionId`])W(n,e,t);K(n,`ttlMs`,t,1),K(n,`remainingUses`,t,0),sn(B(n,`participantIds`,t),`${t}.participantIds`),ln(B(n,`runtimePolicyScope`,t),t)}function On(e){let t=`Wallet registration setup ECDSA`,n=z({responseName:t,field:`ecdsa`,value:e});if(H(n,[`kind`,`chainTargets`,`prepare`,`strictRegistration`],t),B(n,`kind`,t)!==`evm_family_ecdsa_keygen`)throw Error(`${t} response has an invalid kind`);let r=B(n,`chainTargets`,t);if(!Array.isArray(r)||r.length===0)throw Error(`${t} response has invalid chainTargets`);let i=[];for(let e of r){let n=J(e,`${t}.chainTargets`);if(i.some(e=>q(e,n)))throw Error(`${t} response has duplicate chainTargets`);i.push(n)}let[a,...o]=i;if(!a)throw Error(`${t} response has invalid chainTargets`);let s=B(n,`prepare`,t);Dn(s,t);let c=En(s,t),l=Re(B(n,`strictRegistration`,t));if(l.registration_purpose!==`wallet_registration`)throw Error(`${t} response has an invalid registration purpose`);return{kind:`evm_family_ecdsa_keygen`,chainTargets:[a,...o],prepare:c,strictRegistration:l}}function kn(e){let t=!1,n=!1;for(let r of e.signerSelection.signers)switch(r.kind){case`near_ed25519`:t=!0;break;case`evm_family_ecdsa`:n=!0;break;default:return An(r)}if(t&&n)return`near_ed25519_and_evm_family_ecdsa`;if(n)return`evm_family_ecdsa`;if(t)return`near_ed25519`;throw Error(`Wallet registration setup intent has no signer branch`)}function An(e){throw Error(`Unsupported wallet registration setup signer: ${String(e)}`)}function jn(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Mn(e,t){return e!==void 0&&e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}function Nn(e,t){try{return q(J(e,`Wallet registration setup intent`),t)}catch{return!1}}function Pn(e){let t=e.intent.signerSelection.signers.find(e=>e.kind===`evm_family_ecdsa`);if(!t)throw Error(`${e.responseName} response has no ECDSA intent branch`);if(t.chainTargets.length!==e.ecdsa.chainTargets.length||t.chainTargets.some((t,n)=>!Nn(t,e.ecdsa.chainTargets[n])))throw Error(`${e.responseName} response ECDSA chainTargets do not match intent`);if(!jn(t.participantIds,e.ecdsa.prepare.participantIds))throw Error(`${e.responseName} response ECDSA participantIds do not match intent`);if(e.ecdsa.prepare.walletId!==String(e.walletId))throw Error(`${e.responseName} response ECDSA prepare walletId does not match response`);if(!Mn(e.intent.runtimePolicyScope,e.ecdsa.prepare.runtimePolicyScope))throw Error(`${e.responseName} response ECDSA runtimePolicyScope does not match intent`);let n=e.ecdsa.strictRegistration.lifecycle;if(n.lifecycle_id!==e.registrationCeremonyId||n.account_id!==String(e.walletId)||e.ecdsa.strictRegistration.client_id!==String(e.walletId))throw Error(`${e.responseName} response ECDSA identities do not match response`)}function Fn(e){let n=`Wallet registration setup`,r=z({responseName:n,field:`body`,value:e});if(B(r,`ok`,n)!==!0)throw Error(`${n} response is not successful`);let i=B(r,`kind`,n);if(i!==`near_ed25519`&&i!==`evm_family_ecdsa`&&i!==`near_ed25519_and_evm_family_ecdsa`)throw Error(`${n} response kind is invalid`);let a=i!==`near_ed25519`;H(r,[`ok`,`registrationCeremonyId`,`walletId`,`walletAuthMethodId`,`registrationIntentDigestB64u`,`intent`,`signedSetup`,`home`,`kind`,a?`ecdsa`:`ed25519`],n);let o=W(r,`registrationCeremonyId`,n),s=c(W(r,`walletId`,n));if(!s.ok)throw Error(`${n} response has an invalid walletId`);let l=t(W(r,`walletAuthMethodId`,n));if(!l.ok)throw Error(`${n} response has an invalid walletAuthMethodId`);let u=gn(B(r,`intent`,n));if(u.walletId!==s.value)throw Error(`${n} response walletId does not match intent`);if(u.foundingWalletAuthMethodId!==l.value)throw Error(`${n} response walletAuthMethodId does not match intent`);let d;try{d=pe(B(r,`registrationIntentDigestB64u`,n))}catch{throw Error(`${n} response has an invalid registrationIntentDigestB64u`)}let f=oe(B(r,`home`,n)),p=B(r,`signedSetup`,n);if(typeof p!=`string`||!p.trim())throw Error(`${n} response missing signedSetup`);if(!a){if(kn(u)!==i)throw Error(`${n} response kind does not match intent`);return{ok:!0,registrationCeremonyId:o,walletId:s.value,walletAuthMethodId:l.value,registrationIntentDigestB64u:d,intent:u,signedSetup:p,home:f,kind:`near_ed25519`,ed25519:In(B(r,`ed25519`,n),{registrationCeremonyId:o,walletId:s.value})}}let m=On(B(r,`ecdsa`,n));if(kn(u)!==i)throw Error(`${n} response kind does not match intent`);return Pn({responseName:n,registrationCeremonyId:o,walletId:s.value,intent:u,ecdsa:m}),{ok:!0,registrationCeremonyId:o,walletId:s.value,walletAuthMethodId:l.value,registrationIntentDigestB64u:d,intent:u,signedSetup:p,home:f,kind:i,ecdsa:m}}function In(e,t){let n=`Wallet registration setup ed25519`,r=z({responseName:n,field:`ed25519`,value:e}),i=B(r,`status`,n);if(i===`after_proof`)return H(r,[`status`],n),{status:`after_proof`};if(i!==`described`)throw Error(`${n} status is invalid`);H(r,[`status`,`admissionRequest`,`admissionReceipt`],n);let a=S(B(r,`admissionRequest`,n)),o=Ie(B(r,`admissionReceipt`,n));if(!a.ok||!o.ok)throw Error(`${n} request or receipt is invalid`);if(a.value.scope.lifecycle_id!==t.registrationCeremonyId||a.value.scope.account_id!==t.walletId||a.value.application_binding.wallet_id!==t.walletId||o.value.binding.lifecycle.lifecycle_id!==t.registrationCeremonyId||o.value.binding.lifecycle.account_id!==t.walletId)throw Error(`${n} admission does not belong to this registration`);return{status:`described`,admissionRequest:a.value,admissionReceipt:o.value}}function Ln(e){let t=Ke(e.authMethod);if(!t)throw Error(`Wallet registration setup request authMethod is invalid`);let n=Je(e.signerSelection);if(!n.ok)throw Error(`Wallet registration setup request signerSelection is invalid: ${n.message}`);let r=Ye(n.value,{normalizeEcdsaChainTarget:pn});if(!r.ok)throw Error(`Wallet registration setup request signerSelection is invalid: ${r.message}`);return{wallet:e.wallet??{kind:`server_allocated`},authMethod:t,signerSelection:r.value}}function Rn(e,t){let n={version:`registration_intent_v1`,walletId:e.walletId,authMethod:t.authMethod,signerSelection:t.signerSelection,foundingWalletAuthMethodId:e.foundingWalletAuthMethodId,nonceB64u:e.nonceB64u};return e.runtimePolicyScope===void 0?n:{...n,runtimePolicyScope:e.runtimePolicyScope}}async function zn(e){if(e.requestedWallet?.kind===`provided`&&String(e.requestedWallet.walletId)!==e.response.walletId)throw Error(`Wallet registration setup response walletId does not match request`);if(await xe(e.response.intent)!==e.response.registrationIntentDigestB64u)throw Error(`Wallet registration setup response digest does not match intent`);if(await xe(Rn(e.response.intent,e.request))!==e.response.registrationIntentDigestB64u)throw Error(`Wallet registration setup response intent does not match request`)}function Bn(e,t){let n=`Wallet add-signer ECDSA start`,r=z({responseName:n,field:`ecdsa`,value:e});H(r,[`kind`,`chainTargets`,`prepare`,`strictRegistration`,`custodyEnvelope`],n);let i=B(r,`kind`,n),a=B(r,`chainTargets`,n);if(i!==`evm_family_ecdsa_keygen`||!Array.isArray(a))throw Error(`${n} response has invalid payload`);if(t.signerSelection.mode!==`ecdsa`)throw Error(`${n} response substituted signer branch`);let o=t.signerSelection.ecdsa.chainTargets;if(a.length!==o.length)throw Error(`${n} response changed target count`);let s=[];for(let e=0;e<a.length;e+=1){let t=a[e],r=Ct(t,n),i=o[e];if(!i||!Oe(r,Ct(i,n)))throw Error(`${n} response changed chainTarget`);s.push(r)}let[c,...l]=s;if(!c)throw Error(`${n} response requires an EVM-family target`);let u=En(B(r,`prepare`,n),n),d=Re(B(r,`strictRegistration`,n));if(d.registration_purpose!==`wallet_add_signer`)throw Error(`${n} response has invalid registration purpose`);return{kind:`evm_family_ecdsa_keygen`,chainTargets:[c,...l],prepare:u,strictRegistration:d}}function Vn(e){let t=`Wallet add-signer start`,n=z({responseName:t,field:`body`,value:e.value});if(H(n,[`ok`,`addSignerCeremonyId`,`intent`,`authorizationKind`,`kind`,`ed25519`,`ecdsa`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=A({responseName:t,field:`addSignerCeremonyId`,value:B(n,`addSignerCeremonyId`,t)}),i=wn(B(n,`intent`,t),e.expectedIntent),a=B(n,`authorizationKind`,t);if(a!==`webauthn_assertion`)throw Error(`${t} response has invalid authorization kind`);switch(B(n,`kind`,t)){case`near_ed25519`:{if(a!==`webauthn_assertion`||i.signerSelection.mode!==`ed25519`||V(n,`ecdsa`,t)!==void 0)throw Error(`${t} response substituted signer branch`);let e=z({responseName:t,field:`ed25519`,value:B(n,`ed25519`,t)});H(e,[`admissionRequest`,`custodyEnvelope`],t);let o=S(B(e,`admissionRequest`,t));if(!o.ok)throw Error(o.message);return{ok:!0,addSignerCeremonyId:r,intent:i,authorizationKind:`webauthn_assertion`,kind:`near_ed25519`,ed25519:{admissionRequest:o.value,custodyEnvelope:y(B(e,`custodyEnvelope`,t))}}}case`evm_family_ecdsa`:{if(i.signerSelection.mode!==`ecdsa`||V(n,`ed25519`,t)!==void 0)throw Error(`${t} response substituted signer branch`);let e=B(n,`ecdsa`,t),a=Bn(e,i),o=z({responseName:t,field:`ecdsa`,value:e});return{ok:!0,addSignerCeremonyId:r,intent:i,authorizationKind:`webauthn_assertion`,kind:`evm_family_ecdsa`,ecdsa:{...a,custodyEnvelope:y(B(o,`custodyEnvelope`,t))}}}default:throw Error(`${t} response has invalid kind`)}}function Hn(e){let t=`Wallet add-signer finalize`,n=z({responseName:t,field:`body`,value:e.value});H(n,[`ok`,`walletId`,`kind`,`rpId`,`credentialIdB64u`,`ed25519`,`ecdsa`,`authority`],t);let r=B(n,`ok`,t),i=B(n,`kind`,t);if(r!==!0||i!==e.expectedKind)throw Error(`${t} response substituted signer branch`);let a=qe(A({responseName:t,field:`walletId`,value:B(n,`walletId`,t)})),o=F(B(n,`rpId`,t),t);switch(i){case`near_ed25519`:{if(V(n,`ecdsa`,t)!==void 0||V(n,`authority`,t)!==void 0)throw Error(`${t} response mixed signer branches`);let e=xt(B(n,`ed25519`,t),`Wallet add-signer Ed25519 finalize`);return{ok:!0,walletId:a,kind:`near_ed25519`,rpId:o,credentialIdB64u:A({responseName:t,field:`credentialIdB64u`,value:B(n,`credentialIdB64u`,t)}),ed25519:e}}case`evm_family_ecdsa`:{if(V(n,`ed25519`,t)!==void 0||V(n,`credentialIdB64u`,t)!==void 0)throw Error(`${t} response mixed signer branches`);let e=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,t)});H(e,[`walletKeys`],t);let r=U(B(e,`walletKeys`,t),`${t} walletKeys`);if(r.length===0)throw Error(`${t} response has invalid walletKeys`);let i=Fe(B(n,`authority`,t));if(!i.ok||i.value.state!==`active`||i.value.walletId!==a)throw Error(`${t} response has invalid authority`);return{ok:!0,walletId:a,kind:`evm_family_ecdsa`,rpId:o,ecdsa:{walletKeys:r.map(Un)},authority:i.value}}default:throw Error(`${t} response has invalid kind`)}}function Un(e){return wt(e,`Wallet add-signer ECDSA finalize`)}function Y(e){let t=String(e.expected||``).trim(),n=String(e.actual||``).trim();if(!t||!n)throw Error(`ECDSA registration bootstrap returned incomplete ${e.field}`);if(t!==n)throw Error(`ECDSA registration bootstrap ${e.field} mismatch`);return n}function Wn(e){let t=e.expected.map(e=>Math.floor(Number(e))),n=e.actual.map(e=>Math.floor(Number(e)));if(t.length===0||n.length===0||t.some(e=>!Number.isSafeInteger(e)||e<=0)||n.some(e=>!Number.isSafeInteger(e)||e<=0))throw Error(`ECDSA registration bootstrap returned incomplete participantIds`);if(t.length!==n.length||t.some((e,t)=>e!==n[t]))throw Error(`ECDSA registration bootstrap participantIds mismatch`);return n}function Gn(e){let t=e.clientBootstrap,n=e.serverBootstrap;Y({field:`derivationClientSharePublicKey33B64u`,expected:t.derivationClientSharePublicKey33B64u,actual:n.publicIdentity.derivationClientSharePublicKey33B64u});let r=Y({field:`contextBinding32B64u`,expected:t.contextBinding32B64u,actual:n.contextBinding32B64u}),i=Y({field:`walletId`,expected:t.walletId,actual:n.walletId}),a=Y({field:`evmFamilySigningKeySlotId`,expected:t.evmFamilySigningKeySlotId,actual:n.evmFamilySigningKeySlotId});Y({field:`activationEpoch`,expected:e.activationEpoch,actual:n.activationEpoch});let o=Wn({expected:t.participantIds,actual:n.participantIds}),s=Le(n.routerAbEcdsaDerivationNormalSigning),c=String(n.ecdsaThresholdKeyId||``).trim(),l=String(n.keyHandle||``).trim(),u=String(n.signingRootId||``).trim(),d=String(n.signingRootVersion||``).trim(),f=String(n.applicationBindingDigestB64u||``).trim(),p=String(n.thresholdEcdsaPublicKeyB64u||``).trim(),m=String(n.ethereumAddress||``).trim(),h=String(n.relayerKeyId||``).trim(),ee=String(n.relayerVerifyingShareB64u||``).trim(),g=Math.floor(Number(n.relayerShareRetryCounter));if(!i||!a||!l||!c||!u||!d||!f||!p||!m||!h||!ee||!Number.isSafeInteger(g)||g<0||!o.length||o.some(e=>!Number.isSafeInteger(e)||e<=0))throw Error(`ECDSA registration bootstrap returned incomplete session material`);return{walletId:i,evmFamilySigningKeySlotId:a,ecdsaThresholdKeyId:c,relayerKeyId:h,applicationBindingDigestB64u:f,contextBinding32B64u:r,publicIdentity:n.publicIdentity,relayerShareRetryCounter:g,keyHandle:l,signingRootId:u,signingRootVersion:d,thresholdEcdsaPublicKeyB64u:p,ethereumAddress:m,relayerVerifyingShareB64u:ee,participantIds:o,routerAbEcdsaDerivationNormalSigning:s}}function Kn(e){let t=`Wallet ECDSA key-facts inventory`,n=z({responseName:t,field:`body`,value:e.value});if(H(n,[`ok`,`ecdsaKeyIdentityTargets`,`diagnostics`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=U(B(n,`ecdsaKeyIdentityTargets`,t),`${t} ecdsaKeyIdentityTargets`);return{ok:!0,records:yt({walletId:e.walletId,rpId:e.rpId,records:r}),diagnostics:B(n,`diagnostics`,t)}}async function qn(e){let t=String(e.auth?.publishableKey||``).trim(),n=String(e.auth?.environmentId||``).trim();if(!t||!n)return{ok:!1,code:`invalid_body`,message:`registration setup requires a publishable key and environment id`};let r=Ln(e.request),i=await _e({relayerUrl:e.relayerUrl,publishableKey:t,environmentId:n}),a=await ge.begin(i,r),o=Fn(await L({relayerUrl:e.relayerUrl,path:g,headers:{...e.headers,Authorization:`Bearer ${t}`,[Lt]:n},body:{registrationOperationId:a.operationId,wallet:r.wallet,signerSelection:r.signerSelection,authMethod:r.authMethod},...e.onServerTiming?{onServerTiming:e.onServerTiming}:{}}));return o.ok?(await zn({response:o,...e.request.wallet?{requestedWallet:e.request.wallet}:{},request:r}),await ge.accept(a,o),o):o}async function Jn(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer intent`);let n=String(e.auth.publishableKey||``).trim(),r=String(e.auth.environmentId||``).trim();if(!n||!r)throw Error(`add-signer intent requires a publishable key and environment id`);return xn(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/intent`,headers:{Authorization:`Bearer ${n}`,[Lt]:r},body:e.request}))}function Yn(e){let t=`Wallet auth-method revoke`,n=z({responseName:t,field:`body`,value:e});if(B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=c(B(n,`walletId`,t));if(!r.ok)throw Error(`${t} response has invalid walletId`);let i=z({responseName:t,field:`authMethod`,value:B(n,`authMethod`,t)});if(H(i,[`kind`,`status`],`${t} response authMethod`),B(i,`status`,t)!==`revoked`)throw Error(`${t} response has invalid authMethod status`);let a=B(i,`kind`,t);switch(a){case`passkey`:return H(n,[`ok`,`walletId`,`authMethod`,`rpId`],t),{ok:!0,walletId:r.value,authMethod:{kind:`passkey`,status:`revoked`},rpId:F(B(n,`rpId`,t),t)};case`email_otp`:case`voiceid`:return H(n,[`ok`,`walletId`,`authMethod`],t),{ok:!0,walletId:r.value,authMethod:{kind:a,status:`revoked`}};default:throw Error(`${t} response has invalid authMethod kind`)}}async function Xn(e){let t=String(e.walletId||``).trim(),n=String(e.walletAuthMethodId||``).trim();if(!t||!n)throw Error(`auth-method revoke requires a wallet and a target method`);let r={relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/${encodeURIComponent(n)}/revoke`,body:{walletId:t,walletAuthMethodId:n,requestedAtMs:e.requestedAtMs,sourceProof:e.sourceProof}},i;try{i=await L(r)}catch(e){if(!(e instanceof TypeError))throw e;i=await L(r)}return Yn(i)}async function Zn(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-auth-method intent`);let n=String(e.auth.publishableKey||``).trim(),r=String(e.auth.environmentId||``).trim();if(!n||!r)throw Error(`add-auth-method intent requires a publishable key and environment id`);let i=e.request.caller.caller===`same_device_addition`?{caller:`same_device_addition`,source:e.request.caller.source}:{caller:`linked_device_ceremony`};return bn(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/intent`,headers:{Authorization:`Bearer ${n}`,[Lt]:r},body:{walletId:e.request.walletId,rpId:e.request.rpId,authMethod:e.request.authMethod,...i}}))}function Qn(e){let t=`Wallet registration respond`,n=z({responseName:t,field:`body`,value:e});if(B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=A({responseName:t,field:`registrationCeremonyId`,value:B(n,`registrationCeremonyId`,t)}),i=B(n,`kind`,t);if(i!==`evm_family_ecdsa`&&i!==`near_ed25519_and_evm_family_ecdsa`&&i!==`near_ed25519`)throw Error(`${t} response kind is invalid`);let a=i!==`near_ed25519`,o=i!==`evm_family_ecdsa`;H(n,[`ok`,`registrationCeremonyId`,`kind`,...a?[`ecdsa`]:[],...o?[`ed25519`]:[]],t);let s=V(n,`ed25519`,t);if(o&&s===void 0)throw Error(`${t} signer plan is missing its ed25519 deferred work`);if(!a)return{ok:!0,registrationCeremonyId:r,kind:`near_ed25519`,ed25519:$n(s)};let c=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,t)});if(H(c,[`kind`,`strictResult`],`${t} ecdsa`),B(c,`kind`,`${t} ecdsa`)!==`router_ab_ecdsa_registration_forwarded_v1`)throw Error(`${t} ecdsa kind is invalid`);let l=o?er(s):null,u={kind:`router_ab_ecdsa_registration_forwarded_v1`,strictResult:ze(B(c,`strictResult`,`${t} ecdsa`))};return l?{ok:!0,registrationCeremonyId:r,kind:`near_ed25519_and_evm_family_ecdsa`,ecdsa:u,ed25519:l}:{ok:!0,registrationCeremonyId:r,kind:`evm_family_ecdsa`,ecdsa:u}}function $n(e){let t=`Wallet registration respond ed25519 admission`,n=z({responseName:t,field:`ed25519`,value:e}),r=B(n,`status`,t);if(r!==`admitted`&&r!==`executed`)throw Error(`${t} status is invalid`);H(n,[`status`,`admissionRequest`,`admissionReceipt`,...r===`executed`?[`activationResult`]:[]],t);let i=S(B(n,`admissionRequest`,t)),a=Ie(B(n,`admissionReceipt`,t));if(!i.ok||!a.ok)throw Error(`${t} request or receipt is invalid`);if(r===`admitted`)return{status:`admitted`,admissionRequest:i.value,admissionReceipt:a.value};let o=Pe(B(n,`activationResult`,t));if(!o.ok)throw Error(`${t} activationResult is invalid`);return{status:`executed`,admissionRequest:i.value,admissionReceipt:a.value,activationResult:o.value}}function er(e){let t=`Wallet registration respond ed25519`,n=z({responseName:t,field:`ed25519`,value:e});if(H(n,[`status`,`admissionRequest`],t),B(n,`status`,t)!==`deferred`)throw Error(`${t} status is invalid`);let r=S(B(n,`admissionRequest`,t));if(!r.ok)throw Error(`${t} admissionRequest is invalid`);return{status:`deferred`,admissionRequest:r.value}}function tr(e){let t={registrationCeremonyId:e.registrationCeremonyId,signedSetup:e.signedSetup,kind:e.signerPlanKind};switch(e.kind){case`passkey`:t.webauthn_registration=e.webauthnRegistration;break;case`email_otp`:t.emailOtpRegistrationProof=e.emailOtpRegistrationProof;break}return t.ecdsa=e.ecdsa,e.ed25519Execution!==void 0&&(t.ed25519Execution=e.ed25519Execution),t}async function nr(e){return Qn(await L({relayerUrl:e.relayerUrl,path:Pt,headers:e.headers,body:tr(e),onServerTiming:e.onServerTiming}))}function rr(e,t){let n=rt(e);if(n===null||n.session.walletId!==t)throw Error(`Wallet registration established session direct session result is invalid`);return n}function ir(e,t){let n=`Wallet registration activate`,r=V(e,`registrationDiagnostics`,n),i=V(e,`rpId`,n),a=V(e,`walletCustody`,n),o=V(e,`custodyKeyManifestDigestB64u`,n);return{ok:B(e,`ok`,n),walletId:B(e,`walletId`,n),authority:B(e,`authority`,n),foundingAuthority:B(e,`foundingAuthority`,n),foundingAuthMethod:B(e,`foundingAuthMethod`,n),...r===void 0?{}:{registrationDiagnostics:r},...i===void 0?{}:{rpId:i},authMethod:B(e,`authMethod`,n),...a===void 0?{}:{walletCustody:a},...o===void 0?{}:{custodyKeyManifestDigestB64u:o},kind:`evm_family_ecdsa`,ecdsa:{walletKeys:B(t,`walletKeys`,n)}}}function ar(e){let t=`Wallet registration NEAR provisioning`,n=V(e,`registrationDiagnostics`,t),r=V(e,`rpId`,t),i=V(e,`walletCustody`,t),a=V(e,`custodyKeyManifestDigestB64u`,t);return{ok:B(e,`ok`,t),walletId:B(e,`walletId`,t),authority:B(e,`authority`,t),foundingAuthority:B(e,`foundingAuthority`,t),foundingAuthMethod:B(e,`foundingAuthMethod`,t),...n===void 0?{}:{registrationDiagnostics:n},...r===void 0?{}:{rpId:r},authMethod:B(e,`authMethod`,t),...i===void 0?{}:{walletCustody:i},...a===void 0?{}:{custodyKeyManifestDigestB64u:a},kind:`near_ed25519`,authorityScope:B(e,`authorityScope`,t),accountProvisioning:B(e,`accountProvisioning`,t),resolvedAccount:B(e,`resolvedAccount`,t),ed25519:B(e,`ed25519`,t)}}function or(e){let t=`Wallet registration activate`,n=z({responseName:t,field:`body`,value:e}),r=B(n,`kind`,t),i=V(n,`nearProvisioning`,t),a=V(n,`registrationEstablishedSession`,t);if(r!==`evm_family_ecdsa`)throw Error(`${t} response has invalid kind`);let o=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,t)});H(n,[`ok`,`walletId`,`authority`,`foundingAuthority`,`foundingAuthMethod`,`registrationDiagnostics`,`rpId`,`authMethod`,`walletCustody`,`custodyKeyManifestDigestB64u`,`kind`,`ecdsa`,`nearProvisioning`,`registrationEstablishedSession`],t),H(o,[`walletKeys`,`activation`,`bootstrap`],t);let s=V(o,`activation`,t),c=V(o,`bootstrap`,t);if(i!==void 0){let e=z({responseName:t,field:`nearProvisioning`,value:i});if(H(e,[`status`],`${t} nearProvisioning`),B(e,`status`,`${t} nearProvisioning`)!==`near_pending`)throw Error(`${t} nearProvisioning status is invalid`)}if(s===void 0||c===void 0)throw Error(`${t} is missing the activation payload the client needs to build its ECDSA session`);let l=Nt({value:ir(n,o),expectedKind:`evm_family_ecdsa`});if(!l.ok||l.kind!==`evm_family_ecdsa`)throw Error(`${t} did not return an activated ECDSA wallet`);let u=rr(a,l.walletId);return{...l,ecdsa:{...l.ecdsa,activation:He(s),bootstrap:nt(c)},registrationEstablishedSession:u,...i===void 0?{}:{nearProvisioning:{status:`near_pending`}}}}function sr(e){let t={registrationCeremonyId:e.registrationCeremonyId,kind:e.signerPlanKind,signedSetup:e.signedSetup,idempotencyKey:e.idempotencyKey};return t.ecdsa=e.ecdsa,e.emailOtpEnrollment&&(t.emailOtpEnrollment=e.emailOtpEnrollment),e.walletCustodyCommit&&(t.walletCustodyCommit=e.walletCustodyCommit),t}async function cr(e){return or(await L({relayerUrl:e.relayerUrl,path:Ft,headers:e.headers,body:sr(e),onServerTiming:e.onServerTiming}))}function lr(e){let t=`Wallet registration session seal`,n=z({responseName:t,field:`body`,value:e});H(n,[`ciphertext`,`keyVersion`,`expiresAtMs`,`remainingUses`],t);let r=B(n,`ciphertext`,t),i=B(n,`keyVersion`,t),a=B(n,`expiresAtMs`,t),o=B(n,`remainingUses`,t);if(typeof r!=`string`||!r.trim()||typeof i!=`string`||!i.trim()||typeof a!=`number`||!Number.isSafeInteger(a)||a<=0||typeof o!=`number`||!Number.isSafeInteger(o)||o<0)throw Error(`${t} is invalid`);return{ciphertext:r,keyVersion:i,expiresAtMs:a,remainingUses:o}}function ur(e){let t=`Wallet registration NEAR provisioning`,n=z({responseName:t,field:`body`,value:e});if(B(n,`ok`,t)!==!0){H(n,[`ok`,`code`,`message`,`nearProvisioning`],t);let e=B(n,`code`,t),r=B(n,`message`,t);if(typeof e!=`string`||typeof r!=`string`)throw Error(`${t} failure is invalid`);let i=V(n,`nearProvisioning`,t);if(i!==void 0){let n=z({responseName:t,field:`nearProvisioning`,value:i});if(H(n,[`status`],`${t} nearProvisioning`),B(n,`status`,`${t} nearProvisioning`)!==`near_failed_retryable`)throw Error(`${t} failure status is invalid`);return{ok:!1,code:e,message:r,nearProvisioning:{status:`near_failed_retryable`}}}return{ok:!1,code:e,message:r}}H(n,[`ok`,`walletId`,`authority`,`foundingAuthority`,`foundingAuthMethod`,`registrationDiagnostics`,`rpId`,`authMethod`,`walletCustody`,`custodyKeyManifestDigestB64u`,`kind`,`accountProvisioning`,`resolvedAccount`,`ed25519`,`authorityScope`,`nearProvisioning`,`registrationEstablishedSession`,`sessionSeal`],t);let r=z({responseName:t,field:`nearProvisioning`,value:B(n,`nearProvisioning`,t)});if(H(r,[`status`],`${t} nearProvisioning`),B(r,`status`,`${t} nearProvisioning`)!==`near_ready`)throw Error(`${t} success status is invalid`);let i=Nt({value:ar(n),expectedKind:`near_ed25519`});if(!i.ok||i.kind!==`near_ed25519`)throw Error(`${t} did not return a finalized Ed25519 wallet`);let a=V(n,`sessionSeal`,t),o=rr(B(n,`registrationEstablishedSession`,t),i.walletId);if(yn(i)){if(a!==void 0)throw Error(`${t} returned a session seal for an Email OTP authority`);return{...i,nearProvisioning:{status:`near_ready`},registrationEstablishedSession:o}}let s={...i,nearProvisioning:{status:`near_ready`},registrationEstablishedSession:o};return a===void 0?s:{...s,sessionSeal:lr(a)}}async function dr(e){let t={registrationCeremonyId:e.registrationCeremonyId,signedSetup:e.signedSetup,idempotencyKey:e.idempotencyKey,ed25519:e.ed25519};return e.auth.kind===`email_otp`&&(t.emailOtpEnrollment=e.auth.enrollment),e.walletCustodyCommit&&(t.walletCustodyCommit=e.walletCustodyCommit),e.sessionSeal&&(t.sessionSeal=e.sessionSeal),ur(await L({relayerUrl:e.relayerUrl,path:It,headers:e.headers,body:t,...e.onServerTiming?{onServerTiming:e.onServerTiming}:{}}))}function fr(e){switch(e.kind){case`webauthn_assertion`:return{kind:`webauthn_assertion`,rpId:e.rpId,credential:e.credential,expectedChallengeDigestB64u:e.expectedChallengeDigestB64u}}}function pr(e){switch(e.kind){case`webauthn_assertion`:return{kind:`webauthn_assertion`,rpId:e.rpId,credential:e.credential,expectedChallengeDigestB64u:e.expectedChallengeDigestB64u};case`wallet_session`:return{kind:`wallet_session`};case`email_otp`:return{kind:`email_otp`,challengeId:e.challengeId,otpCode:e.otpCode,expectedChallengeDigestB64u:e.expectedChallengeDigestB64u}}}function mr(e){switch(e.kind){case`passkey`:return{};case`email_otp`:return{emailOtpRegistrationProof:e.emailOtpRegistrationProof}}}async function hr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer start`);return Vn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/start`,body:{addSignerIntentGrant:e.addSignerIntentGrant,addSignerIntentDigestB64u:e.addSignerIntentDigestB64u,intent:e.intent,auth:fr(e.auth)}}),expectedIntent:e.intent})}function gr(e){let t=`Email OTP enrollment code`,n=z({responseName:t,field:`body`,value:e});if(H(n,[`ok`,`challengeId`,`expiresAtMs`,`emailHint`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=B(n,`challengeId`,t);if(typeof r!=`string`||!r.trim())throw Error(`${t} response missing challengeId`);let i=B(n,`expiresAtMs`,t);if(typeof i!=`number`||!Number.isSafeInteger(i)||i<1)throw Error(`${t} response has invalid expiresAtMs`);let a=B(n,`emailHint`,t);if(typeof a!=`string`)throw Error(`${t} response has invalid emailHint`);return{challengeId:r.trim(),expiresAtMs:i,emailHint:a}}async function _r(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for the Email OTP enrollment code`);return gr(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/email-otp/challenge`,body:{addAuthMethodIntentGrant:e.addAuthMethodIntentGrant,addAuthMethodIntentDigestB64u:e.addAuthMethodIntentDigestB64u}}))}async function vr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-auth-method start`);return Cn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/start`,body:{addAuthMethodIntentGrant:e.addAuthMethodIntentGrant,addAuthMethodIntentDigestB64u:e.addAuthMethodIntentDigestB64u,intent:e.intent,auth:pr(e.auth),...mr(e.authority)},...e.auth.kind===`wallet_session`?{headers:{authorization:`Bearer ${e.auth.walletSessionToken}`}}:{}}),expectedIntent:e.intent})}async function yr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer ECDSA respond`);return _n(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/derivation/respond`,body:{addSignerCeremonyId:e.addSignerCeremonyId,ecdsa:e.ecdsa}}))}async function br(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer ECDSA activation`);return vn(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/derivation/activate`,body:{addSignerCeremonyId:e.addSignerCeremonyId,ecdsa:{kind:`router_ab_ecdsa_registration_activation_v1`,activationCorrelationId:e.activationCorrelationId,publicFacts:e.publicFacts,expectedActivationRequestDigest:e.expectedActivationRequestDigest}}}))}function xr(e){switch(e.kind){case`near_ed25519`:return{addSignerCeremonyId:e.addSignerCeremonyId,idempotencyKey:e.idempotencyKey,kind:e.kind,ed25519:e.ed25519,custodyKeySet:e.custodyKeySet};case`evm_family_ecdsa`:return{addSignerCeremonyId:e.addSignerCeremonyId,idempotencyKey:e.idempotencyKey,kind:e.kind,ecdsa:e.ecdsa,custodyKeySet:e.custodyKeySet}}}async function Sr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer finalize`);return Hn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/finalize`,body:xr(e)}),expectedKind:e.kind})}async function Cr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-auth-method finalize`);let n=e.custodyEnvelope===void 0?{addAuthMethodCeremonyId:e.addAuthMethodCeremonyId}:e.webauthnRegistration===void 0?{addAuthMethodCeremonyId:e.addAuthMethodCeremonyId,custodyEnvelope:y(e.custodyEnvelope),emailOtpTarget:e.emailOtpTarget}:{addAuthMethodCeremonyId:e.addAuthMethodCeremonyId,webauthnRegistration:e.webauthnRegistration,custodyEnvelope:y(e.custodyEnvelope)},r={relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/finalize`,body:n},i;try{i=await L(r)}catch(e){if(!(e instanceof TypeError))throw e;i=await L(r)}return Sn(i)}async function wr(e){let t=String(e.walletId||``).trim(),n=String(e.rpId||``).trim(),r=e.operationCredential;if(!t)throw Error(`walletId is required for ECDSA key-facts inventory`);if(!n)throw Error(`rpId is required for ECDSA key-facts inventory`);return Kn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/ecdsa/key-facts/inventory`,headers:p(r),body:{rpId:n,keyTargets:e.keyTargets,auth:{kind:r.kind,walletSessionId:r.walletSessionId}}}),walletId:e.walletId,rpId:n})}async function Tr(e){let t=String(e.walletId||``).trim(),n=String(e.rpId||``).trim(),r=String(e.serverNonceB64u||``).trim(),i=String(e.expectedChallengeDigestB64u||``).trim();if(!t)throw Error(`walletId is required for ECDSA key-facts inventory`);if(!n)throw Error(`rpId is required for ECDSA key-facts inventory`);if(!r||!i)throw Error(`WebAuthn ECDSA key-facts inventory requires challenge binding`);return Kn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/ecdsa/key-facts/inventory`,body:{rpId:n,keyTargets:e.keyTargets,auth:{kind:`webauthn_assertion`,credential:e.credential,serverNonceB64u:r,expectedChallengeDigestB64u:i,...e.runtimePolicyScope?{runtimePolicyScope:e.runtimePolicyScope}:{}}}}),walletId:e.walletId,rpId:n})}function X(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let n=Object.keys(e);return n.length===t.length&&n.every(e=>t.includes(e))}const Er=[`kind`,`walletId`,`authorityId`,`walletAuthMethodId`,`mintId`,`authorizationId`,`walletSessionId`,`quotaId`],Dr=[`ok`,`code`,`message`,`next`,`committed`],Or=[`ok`,`code`,`message`,`next`,`kind`,`walletId`,`authorityId`,`walletAuthMethodId`,`mintId`,`authorizationId`,`walletSessionId`,`quotaId`],kr=[...Or,`unlocked`,`unlockBackend`];function Ar(e){if(!u(e)||!X(e,Er)||e.kind!==`already_committed_wallet_session_v1`)return null;let n=c(e.walletId),r=i(e.authorityId),a=t(e.walletAuthMethodId),o=de(e.mintId),s=fe(e.authorizationId),l=v(e.walletSessionId),d=_(e.quotaId);return!n.ok||!r.ok||!a.ok||!o.ok||!s.ok||!l.ok||!d.ok?null:{kind:`already_committed_wallet_session_v1`,walletId:n.value,authorityId:r.value,walletAuthMethodId:a.value,mintId:o.value,authorizationId:s.value,walletSessionId:l.value,quotaId:d.value}}function jr(e){return e.ok!==!1||e.code!==`already_committed`||typeof e.message!=`string`||e.next!==`unlock_exact_method`?null:{ok:!1,code:`already_committed`,message:e.message,next:`unlock_exact_method`}}function Mr(e){return!X(e,Or)&&!X(e,kr)||X(e,kr)&&(e.unlocked!==!1||e.unlockBackend!==`passkey`&&e.unlockBackend!==`email_otp`)||e.kind!==`already_committed`?null:Ar({kind:`already_committed_wallet_session_v1`,walletId:e.walletId,authorityId:e.authorityId,walletAuthMethodId:e.walletAuthMethodId,mintId:e.mintId,authorizationId:e.authorizationId,walletSessionId:e.walletSessionId,quotaId:e.quotaId})}function Nr(e,t){return{ok:!1,code:`already_committed`,message:e.message,next:`unlock_exact_method`,committed:t}}function Pr(e){if(!u(e))return null;let t=jr(e);if(!t||!X(e,Dr))return null;let n=Ar(e.committed);return n?Nr(t,n):null}function Fr(e){if(!u(e))return null;let t=jr(e);if(!t)return null;let n=Mr(e);return n?Nr(t,n):null}var Z=class{retainProof(){return!0}constructor(){this.retainProof()}},Ir=class extends Z{kind=`use_live_runtime`;capability;materialOwner;authority;runtime;materialActivation;constructor(e){super(),this.capability=e.materialActivation.capability,this.materialOwner=e.materialActivation.materialOwner,this.authority=e.authority,this.runtime=e.runtime,this.materialActivation=e.materialActivation}},Lr=class extends Z{kind=`rehydrate_material_activation`;capability;materialOwner;authority;materialActivation;sealedMaterial;constructor(e){super(),this.capability=e.materialActivation.capability,this.materialOwner=e.materialActivation.materialOwner,this.authority=e.authority,this.materialActivation=e.materialActivation,this.sealedMaterial=e.sealedMaterial}},Rr=class extends Z{kind=`reauthorize_public_anchor`;capability;materialOwner;authority;retirement;publicReauthAnchor;constructor(e){super(),this.capability=e.publicReauthAnchor.capability,this.materialOwner=e.publicReauthAnchor.materialOwner,this.authority=e.publicReauthAnchor.authority,this.retirement=e.retirement,this.publicReauthAnchor=e.publicReauthAnchor}},zr=class extends Z{kind=`blocked`},Br=class extends zr{capability=null;reason=`missing_capability`},Vr=class extends zr{capability;reason;constructor(e){super(),this.capability=e.capability,this.reason=e.reason}};function Hr(e){return new Ir(e)}function Ur(e){return new Lr(e)}function Wr(e){return new Rr(e)}function Q(e){return e.reason===`missing_capability`?new Br:new Vr(e)}function Gr(e){if(!e.ok)throw Error(e.error.message);return e.value}function Kr(e){return e.materialActivation}function qr(e){return Gr(l(`near-ed25519-yao:${e.activationId}`))}function $(e,t){let n=e.sealed.kind===`available`?e.sealed.materialActivation.capability:e.runtime.kind===`live`?e.runtime.materialActivation.capability:e.publicLocator.kind===`available`?e.publicLocator.materialActivation.capability:null;return Q(n?{capability:n,reason:t}:{capability:null,reason:`missing_capability`})}function Jr(e){switch(e.publicLocator.kind){case`missing`:return Q({capability:null,reason:`missing_capability`});case`retired`:return Wr({retirement:e.publicLocator.retirement,publicReauthAnchor:e.publicLocator.publicReauthAnchor});case`conflict`:return $(e,`exact_record_conflict`);case`corrupt`:return $(e,`corrupt`);case`unavailable`:return Q({capability:e.publicLocator.capability,reason:`persistence_unavailable`});case`available`:break;default:e.publicLocator}let t=e.publicLocator.materialActivation;if(String(t.materialOwner)!==e.publicLocator.walletId)return $(e,`binding_mismatch`);switch(e.runtime.kind){case`live`:return s(t,e.runtime.materialActivation)?Hr({authority:e.publicLocator.authority,runtime:e.runtime.runtime,materialActivation:t}):$(e,`binding_mismatch`);case`absent`:break;default:e.runtime}switch(e.sealed.kind){case`missing`:return $(e,`missing_material`);case`corrupt`:return $(e,`corrupt`);case`available`:break;default:e.sealed}let n=e.sealed;if(String(n.authority.walletId)!==e.publicLocator.walletId||String(n.authority.authorityDigest)!==String(e.publicLocator.authority.authorityDigest)||String(n.materialActivation.materialOwner)!==e.publicLocator.walletId||!s(n.materialActivation,e.publicLocator.materialActivation))return $(e,`binding_mismatch`);switch(e.unlockSource.kind){case`unavailable`:return $(e,`missing_material`);case`available`:return String(e.unlockSource.authority.walletId)!==String(n.authority.walletId)||String(e.unlockSource.authority.authorityDigest)!==String(n.authority.authorityDigest)?$(e,`binding_mismatch`):Ur({authority:n.authority,materialActivation:n.materialActivation,sealedMaterial:n.sealedMaterial});default:e.unlockSource}throw Error(`Unsupported Near Ed25519 unlock-source observation`)}export{_t as A,_r as C,qn as D,Xn as E,vr as O,Rt as S,nr as T,Cr as _,Ur as a,yn as b,Fr as c,cr as d,dr as f,Tr as g,wr as h,Q as i,hr as k,X as l,Jn as m,qr as n,Hr as o,Zn as p,Jr as r,Pr as s,Kr as t,br as u,Sr as v,yr as w,Gn as x,$t as y};
1
+ import{C as e,E as t,M as n,N as r,O as i,S as a,g as o,i as s,k as c,p as l}from"./domainIds-t1lp25yU.js";import{g as u,h as d}from"./digests-BIaE0DMd.js";import{a as f,c as p,d as m,o as h,u as ee}from"./participants-BXdREC5k.js";import{t as g}from"./walletRegistrationSetupPrewarm-CEvGKQSg.js";import{r as te}from"./base64-BmKR3UqU.js";import{s as ne}from"./walletDbName-Ca0rCq5r.js";import{X as re,i as ie,n as ae,r as oe}from"./activeWalletSession-BJ4B-nJo.js";import{d as se,f as ce,i as le,r as ue}from"./signingSessionSeal-BFOBKj-J.js";import{d as _,g as de,h as v,m as fe}from"./capabilityKinds-DVlGMspk.js";import{r as pe}from"./canonicalPrimitives-Jd3i_Ngz.js";import{n as me,r as he}from"./signerDomain-BAsLT3XN.js";import{O as ge,a as _e,c as ve,i as ye,k as be,l as xe,n as Se,o as Ce,s as we,t as Te,x as y}from"./registrationIntent-Do1tD1V7.js";import{a as b,l as Ee,o as De,s as Oe}from"./ecdsaChainTarget-Bm5X4k-V.js";import{c as x,l as ke,s as Ae}from"./accountIds-CW2BP-d9.js";import{q as je,v as Me}from"./device-linking-DiCNt3iA.js";import{M as Ne,X as S,Y as Pe,d as Fe,q as Ie}from"./walletAuthority-BTGAuOi8.js";import{F as Le,M as Re,N as ze,Nt as Be,S as Ve,j as He,rt as C,st as Ue,x as We}from"./digestEncoding-CqNXPZY9.js";import{r as Ge}from"./walletAuthMethodRecord-DLBB5fez.js";import{r as Ke}from"./registrationAuthMethodInput-BR1WVbK3.js";import{a as w,o as qe}from"./signerSlot-D2RZnb27.js";import{o as Je,u as Ye}from"./registrationSignerPlan-DK2b3N_p.js";import{C as Xe,E as Ze,M as Qe,b as $e,l as et,y as tt}from"./emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js";import{n as nt}from"./thresholdEcdsa-CqR1fFA-.js";function rt(e){let t=D(e);if(!t||!(`kind`in t)||typeof t.kind!=`string`)return null;switch(t.kind){case`issued`:{if(!O(t,[`kind`,`session`])||!(`session`in t))return null;let e=it(t.session);return e===null?null:{kind:`issued`,session:e}}case`already_committed`:{if(!O(t,[`kind`,`session`,`next`])||!(`session`in t)||!(`next`in t)||t.next!==`unlock_exact_method`)return null;let e=st(t.session);return e===null?null:{kind:`already_committed`,session:e,next:t.next}}default:return null}}function it(e){try{let t=D(e);if(!t||!O(t,[`kind`,`walletId`,`authorizationId`,`walletSessionId`,`quotaId`,`expiresAtMs`,`remainingUses`,`walletSession`,`operationCredential`,`tokens`])||!(`kind`in t)||!(`walletId`in t)||!(`authorizationId`in t)||!(`walletSessionId`in t)||!(`quotaId`in t)||!(`expiresAtMs`in t)||!(`remainingUses`in t)||!(`walletSession`in t)||!(`operationCredential`in t)||!(`tokens`in t)||t.kind!==`registration_established_wallet_session_v2`)return null;let n=c(t.walletId),r=v(t.walletSessionId),i=fe(t.authorizationId),a=_(t.quotaId);if(!n.ok||!i.ok||!r.ok||!a.ok)return null;let o=E(t.expiresAtMs),s=E(t.remainingUses);if(o===null||o<=0||s===null||s<=0)return null;let l=ae(t.walletSession),u=ie(t.operationCredential);if(l.walletId!==n.value||l.authorizationId!==i.value||l.quotaId!==a.value||l.expiresAtMs!==o||u.walletSessionId!==r.value)return null;let d=ct(t.tokens);return d===null||!at(l,d)?null:{kind:`registration_established_wallet_session_v2`,walletId:n.value,authorizationId:i.value,walletSessionId:r.value,quotaId:a.value,expiresAtMs:o,remainingUses:s,walletSession:l,operationCredential:u,tokens:d}}catch{return null}}function at(e,t){switch(t.kind){case`evm_family_ecdsa`:return T(e,`ecdsa_secp256k1`,t.ecdsa.materialActivation)&&!ot(e,`ecdsa_secp256k1`);case`near_ed25519`:return T(e,`ed25519`,t.ed25519.materialActivation)&&!ot(e,`ed25519`);case`near_ed25519_and_evm_family_ecdsa`:return T(e,`ecdsa_secp256k1`,t.ecdsa.materialActivation)&&T(e,`ed25519`,t.ed25519.materialActivation)&&!ot(e,`ed25519`,`ecdsa_secp256k1`);default:return!1}}function T(e,t,n){return e.capabilitySubjects.some(e=>e.kind===`sign`&&e.keyFamily===t&&s(e.materialActivation,n))}function ot(e,...t){return e.capabilitySubjects.some(e=>e.kind===`sign`&&!t.includes(e.keyFamily))}function st(e){try{let t=D(e);if(!t||!O(t,[`kind`,`walletId`,`authorizationId`,`walletSessionId`,`quotaId`,`expiresAtMs`,`remainingUses`,`walletSession`,`tokens`])||!(`kind`in t)||!(`walletId`in t)||!(`authorizationId`in t)||!(`walletSessionId`in t)||!(`quotaId`in t)||!(`expiresAtMs`in t)||!(`remainingUses`in t)||!(`walletSession`in t)||!(`tokens`in t)||t.kind!==`registration_established_wallet_session_projection_v2`)return null;let n=c(t.walletId),r=fe(t.authorizationId),i=v(t.walletSessionId),a=_(t.quotaId);if(!n.ok||!r.ok||!i.ok||!a.ok||new Set([r.value,i.value,a.value]).size!==3)return null;let o=E(t.expiresAtMs),s=E(t.remainingUses),l=ae(t.walletSession),u=ct(t.tokens);return o===null||o<=0||s===null||u===null||l.walletId!==n.value||l.authorizationId!==r.value||l.quotaId!==a.value||l.expiresAtMs!==o||!at(l,u)?null:{kind:`registration_established_wallet_session_projection_v2`,walletId:n.value,authorizationId:r.value,walletSessionId:i.value,quotaId:a.value,expiresAtMs:o,remainingUses:s,walletSession:l,tokens:u}}catch{return null}}function ct(e){let t=D(e);if(!t||!(`kind`in t)||typeof t.kind!=`string`)return null;switch(t.kind){case`evm_family_ecdsa`:{if(!O(t,[`kind`,`ecdsa`])||!(`ecdsa`in t))return null;let e=lt(t.ecdsa);return e===null?null:{kind:`evm_family_ecdsa`,ecdsa:e}}case`near_ed25519`:{if(!O(t,[`kind`,`ed25519`])||!(`ed25519`in t))return null;let e=ut(t.ed25519);return e===null?null:{kind:`near_ed25519`,ed25519:e}}case`near_ed25519_and_evm_family_ecdsa`:{if(!O(t,[`kind`,`ecdsa`,`ed25519`])||!(`ecdsa`in t)||!(`ed25519`in t))return null;let e=lt(t.ecdsa),n=ut(t.ed25519);return e===null||n===null?null:{kind:`near_ed25519_and_evm_family_ecdsa`,ecdsa:e,ed25519:n}}default:return null}}function lt(e){let t=D(e);if(!t||!O(t,[`sessionKind`,`thresholdSessionId`,`keyHandle`,`runtimePolicyScope`,`materialActivation`,`routerAbEcdsaDerivationNormalSigning`])||!(`sessionKind`in t)||!(`thresholdSessionId`in t)||!(`keyHandle`in t)||!(`runtimePolicyScope`in t)||!(`materialActivation`in t)||!(`routerAbEcdsaDerivationNormalSigning`in t)||t.sessionKind!==`credential_free_projection_v2`)return null;let n=a(t.thresholdSessionId);if(!n.ok)return null;try{let e=Qe(t.keyHandle),r=dt(t.runtimePolicyScope),i=o(t.materialActivation);if(!i.ok)return null;let a=We(t.routerAbEcdsaDerivationNormalSigning);if(!a)return null;let c=Be(a.scope.material_activation);return s(i.value,c)?{sessionKind:`credential_free_projection_v2`,thresholdSessionId:n.value,keyHandle:e,runtimePolicyScope:r,materialActivation:i.value,routerAbEcdsaDerivationNormalSigning:a}:null}catch{return null}}function ut(t){let n=D(t);if(!n||!O(n,[`sessionKind`,`thresholdSessionId`,`nearAccountId`,`nearEd25519SigningKeyId`,`runtimePolicyScope`,`materialActivation`,`routerAbNormalSigning`])||!(`sessionKind`in n)||!(`thresholdSessionId`in n)||!(`nearAccountId`in n)||!(`nearEd25519SigningKeyId`in n)||!(`runtimePolicyScope`in n)||!(`materialActivation`in n)||!(`routerAbNormalSigning`in n)||n.sessionKind!==`credential_free_projection_v2`)return null;let r=e(n.thresholdSessionId),i=ke(n.nearAccountId);if(!r.ok||!i.ok)return null;try{let e=w(n.nearEd25519SigningKeyId),t=dt(n.runtimePolicyScope),a=o(n.materialActivation);if(!a.ok)return null;let s=se(n.routerAbNormalSigning);return s?{sessionKind:`credential_free_projection_v2`,thresholdSessionId:r.value,nearAccountId:i.value,nearEd25519SigningKeyId:e,runtimePolicyScope:t,materialActivation:a.value,routerAbNormalSigning:s}:null}catch{return null}}function dt(e){let t=D(e);if(!t||!O(t,[`orgId`,`projectId`,`envId`,`signingRootVersion`])||!(`orgId`in t)||!(`projectId`in t)||!(`envId`in t)||!(`signingRootVersion`in t))throw Error(`runtime policy scope projection is invalid`);return re({orgId:t.orgId,projectId:t.projectId,envId:t.envId,signingRootVersion:t.signingRootVersion})}function E(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function D(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function O(e,t){return Object.keys(e).length===t.length&&t.every(t=>Object.prototype.hasOwnProperty.call(e,t))}function ft(e){let t=String(e||``).trim().toLowerCase();return/^0x[0-9a-f]{40}$/.test(t)?t:``}const pt=/^ederivation-key-[A-Za-z0-9_-]+$/;function k(e){let t=String(e||``).trim();return t?pt.test(t)?{kind:`resolved`,keyHandle:t}:{kind:`invalid`}:{kind:`missing`}}function mt(e){let t=k(e.keyHandle),n=d(e.sharedEvmFamilyKey)?k(e.sharedEvmFamilyKey.keyHandle):{kind:`missing`};return t.kind===`missing`?{kind:`blocked`,reason:`missing_key_handle`}:t.kind===`invalid`||n.kind===`invalid`?{kind:`blocked`,reason:`invalid_key_handle`}:n.kind===`resolved`&&t.keyHandle!==n.keyHandle?{kind:`blocked`,reason:`duplicate_key_handles`}:{kind:`resolved`,keyHandle:t.keyHandle}}function ht(e){let t=(d(e.metadata.sharedEvmFamilyKey)?e.metadata.sharedEvmFamilyKey:null)||e.metadata,n=String(t.thresholdEcdsaPublicKeyB64u||e.metadata.thresholdEcdsaPublicKeyB64u||``).trim();if(!n)return null;let r=String(t.walletId||``).trim();if(!r)return null;try{Ze(n);let i=t.ecdsaThresholdKeyId||e.metadata.ecdsaThresholdKeyId,a=t.signingRootId||e.metadata.signingRootId,o=t.signingRootVersion||e.metadata.signingRootVersion,s=t.participantIds||e.metadata.participantIds,c=t.thresholdOwnerAddress||e.metadata.thresholdOwnerAddress||e.metadata.ownerAddress;return et({walletId:r,keyHandle:e.keyHandle,chainTarget:e.chainTarget,ecdsaThresholdKeyId:i,signingRootId:a,signingRootVersion:o,participantIds:s,thresholdOwnerAddress:c,thresholdEcdsaPublicKeyB64u:n})}catch{return null}}function gt(e){try{let t=Ve(e.raw);return String(t.client_id)!==String(e.walletId)||t.public_identity.threshold_public_key33_b64u!==e.thresholdEcdsaPublicKeyB64u?null:t}catch{return null}}function _t(e){let t=e.signer;if(t.status!==`active`||t.signerKind!==he.thresholdEcdsa||t.signerAuthMethod!==me.passkey)return{kind:`skipped`};let n=d(t.metadata)?t.metadata:{};if(!d(n.chainTarget))return{kind:`blocked`,targetKey:``,reason:`missing_chain_target`};let r;try{r=b(n.chainTarget)}catch{return{kind:`blocked`,targetKey:``,reason:`invalid_chain_target`}}if(!e.configuredTargets.some(e=>Oe(e,r)))return{kind:`skipped`};let i=De(r),a=mt(n);if(a.kind===`blocked`)return{kind:`blocked`,targetKey:i,reason:a.reason};let o=ht({metadata:n,keyHandle:a.keyHandle,chainTarget:r});if(!o)return{kind:`key_facts_inventory_required`,chainTarget:r,targetKey:i,keyHandle:a.keyHandle,reason:`missing_key_facts`};let s=gt({raw:n.publicCapability,walletId:e.walletId,thresholdEcdsaPublicKeyB64u:o.keyFacts.thresholdEcdsaPublicKeyB64u});return{kind:`active_wallet_key`,chainTarget:r,targetKey:i,walletKey:o,publicCapability:s?{kind:`persisted_public_capability`,value:s}:{kind:`missing_public_capability`}}}function vt(e){let{raw:t}=e;if(!d(t)||!d(t.chainTarget))return null;let n=d(t.key)?t.key:t,r;try{r=b(t.chainTarget)}catch{return null}let i=k(t.keyHandle),a=k(n.keyHandle),o=ft(t.accountAddress),s=ft(t.ownerAddress),c=String(n.walletId||``).trim(),l=String(n.subjectId||``).trim(),u=String(Ee({walletId:e.walletId})),f=String(n.rpId||``).trim(),p=String(n.thresholdEcdsaPublicKeyB64u||t.thresholdEcdsaPublicKeyB64u||``).trim(),m=ft(n.thresholdOwnerAddress||t.ownerAddress||t.accountAddress||t.ethereumAddress);if(i.kind!==`resolved`||a.kind!==`resolved`||a.keyHandle!==i.keyHandle||!p||!s||!o||!m||c!==String(e.walletId)||l&&l!==u||f!==e.rpId||m!==s)return null;try{let a=gt({raw:t.publicCapability,walletId:e.walletId,thresholdEcdsaPublicKeyB64u:p});if(!a)return null;let c=Xe(i.keyHandle),l=$e({record:{ecdsaThresholdKeyId:t.ecdsaThresholdKeyId}}),u=tt({signingRootId:t.signingRootId||n.signingRootId,signingRootVersion:t.signingRootVersion||n.signingRootVersion});return{accountAddress:o,ownerAddress:s,publicCapability:a,walletKey:et({walletId:e.walletId,keyHandle:c,chainTarget:r,ecdsaThresholdKeyId:l,signingRootId:u.signingRootId,signingRootVersion:u.signingRootVersion,participantIds:n.participantIds||t.participantIds,thresholdOwnerAddress:m,thresholdEcdsaPublicKeyB64u:p})}}catch{return null}}function yt(e){let t=[];for(let n of e.records){let r=vt({walletId:e.walletId,rpId:e.rpId,raw:n});r&&t.push(r)}return t}function A(e){let t=String(e.value||``).trim();if(!t)throw Error(`${e.responseName} response missing ${e.field}`);return t}function j(e){if(!u(e.value))throw Error(`${e.responseName} response missing ${e.field}`);return e.value}function M(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw Error(`${n} response contains unexpected ${t}`)}function N(e){let t=Number(e.value);if(!Number.isSafeInteger(t)||t<e.minimum)throw Error(`${e.responseName} response has invalid ${e.field}`);return t}function P(e,t){if(!Array.isArray(e)||e.length!==2)throw Error(`${t} response has invalid participantIds`);let n=N({responseName:t,field:`participantIds[0]`,value:e[0],minimum:1}),r=N({responseName:t,field:`participantIds[1]`,value:e[1],minimum:1});if(n===r)throw Error(`${t} response has duplicate participantIds`);if(n!==1||r!==2)throw Error(`${t} response has unsupported participantIds`);return[n,r]}function F(e,t){let n=r(e);if(!n.ok)throw Error(`${t} response has invalid rpId`);return n.value}function bt(e,t){let n=j({responseName:t,field:`authorityScope`,value:e});switch(n.kind){case`passkey_rp`:return M(n,[`kind`,`rpId`],t),{kind:`passkey_rp`,rpId:F(n.rpId,t)};case`email_otp`:if(M(n,[`kind`,`provider`,`providerUserId`],t),n.provider!==`google`&&n.provider!==`email`)throw Error(`${t} response has invalid authorityScope provider`);return{kind:`email_otp`,provider:n.provider,providerUserId:A({responseName:t,field:`authorityScope.providerUserId`,value:n.providerUserId})};default:throw Error(`${t} response has invalid authorityScope`)}}function xt(e,t){let n=j({responseName:t,field:`ed25519`,value:e});if(M(n,[`signerSlot`,`nearAccountId`,`nearEd25519SigningKeyId`,`publicKey`,`relayerKeyId`,`keyVersion`,`recoveryExportCapable`,`participantIds`],t),n.recoveryExportCapable!==!0)throw Error(`${t} response is not recovery/export capable`);return{signerSlot:N({responseName:t,field:`ed25519.signerSlot`,value:n.signerSlot,minimum:1}),nearAccountId:A({responseName:t,field:`ed25519.nearAccountId`,value:n.nearAccountId}),nearEd25519SigningKeyId:A({responseName:t,field:`ed25519.nearEd25519SigningKeyId`,value:n.nearEd25519SigningKeyId}),publicKey:A({responseName:t,field:`ed25519.publicKey`,value:n.publicKey}),relayerKeyId:A({responseName:t,field:`ed25519.relayerKeyId`,value:n.relayerKeyId}),keyVersion:A({responseName:t,field:`ed25519.keyVersion`,value:n.keyVersion}),recoveryExportCapable:!0,participantIds:P(n.participantIds,t)}}function St(t,n){let r=j({responseName:n,field:`ed25519`,value:t});M(r,[`signerSlot`,`nearAccountId`,`nearEd25519SigningKeyId`,`publicKey`,`relayerKeyId`,`keyVersion`,`recoveryExportCapable`,`participantIds`,`thresholdSessionId`,`runtimePolicyScope`,`routerAbNormalSigning`],n);let i=xt({signerSlot:r.signerSlot,nearAccountId:r.nearAccountId,nearEd25519SigningKeyId:r.nearEd25519SigningKeyId,publicKey:r.publicKey,relayerKeyId:r.relayerKeyId,keyVersion:r.keyVersion,recoveryExportCapable:r.recoveryExportCapable,participantIds:r.participantIds},n),a=e(r.thresholdSessionId);if(!a.ok)throw Error(`${n} response has invalid ed25519.thresholdSessionId`);let o=ne(r.runtimePolicyScope);if(!o)throw Error(`${n} response has invalid ed25519.runtimePolicyScope`);return{...i,thresholdSessionId:a.value,runtimePolicyScope:o,routerAbNormalSigning:ce(r.routerAbNormalSigning)}}function Ct(e,t){let n=j({responseName:t,field:`chainTarget`,value:e});switch(n.kind){case`evm`:return M(n,[`kind`,`namespace`,`chainId`,`networkSlug`],t),b(n);case`tempo`:return M(n,[`kind`,`chainId`,`networkSlug`],t),b(n);default:throw Error(`${t} response has invalid chainTarget kind`)}}function wt(e,t){let n=j({responseName:t,field:`ecdsa.walletKeys[]`,value:e});if(M(n,[`keyScope`,`chainTarget`,`walletId`,`evmFamilySigningKeySlotId`,`keyHandle`,`ecdsaThresholdKeyId`,`signingRootId`,`signingRootVersion`,`thresholdEcdsaPublicKeyB64u`,`thresholdOwnerAddress`,`relayerKeyId`,`relayerVerifyingShareB64u`,`contextBinding32B64u`,`derivationClientSharePublicKey33B64u`,`clientShareRetryCounter`,`relayerShareRetryCounter`,`participantIds`,`publicCapability`],t),n.keyScope!==`evm-family`)throw Error(`${t} response has invalid keyScope`);return{keyScope:`evm-family`,chainTarget:Ct(n.chainTarget,t),walletId:A({responseName:t,field:`walletId`,value:n.walletId}),evmFamilySigningKeySlotId:A({responseName:t,field:`evmFamilySigningKeySlotId`,value:n.evmFamilySigningKeySlotId}),keyHandle:A({responseName:t,field:`keyHandle`,value:n.keyHandle}),ecdsaThresholdKeyId:A({responseName:t,field:`ecdsaThresholdKeyId`,value:n.ecdsaThresholdKeyId}),signingRootId:A({responseName:t,field:`signingRootId`,value:n.signingRootId}),signingRootVersion:A({responseName:t,field:`signingRootVersion`,value:n.signingRootVersion}),thresholdEcdsaPublicKeyB64u:A({responseName:t,field:`thresholdEcdsaPublicKeyB64u`,value:n.thresholdEcdsaPublicKeyB64u}),thresholdOwnerAddress:A({responseName:t,field:`thresholdOwnerAddress`,value:n.thresholdOwnerAddress}),relayerKeyId:A({responseName:t,field:`relayerKeyId`,value:n.relayerKeyId}),relayerVerifyingShareB64u:A({responseName:t,field:`relayerVerifyingShareB64u`,value:n.relayerVerifyingShareB64u}),contextBinding32B64u:A({responseName:t,field:`contextBinding32B64u`,value:n.contextBinding32B64u}),derivationClientSharePublicKey33B64u:A({responseName:t,field:`derivationClientSharePublicKey33B64u`,value:n.derivationClientSharePublicKey33B64u}),clientShareRetryCounter:N({responseName:t,field:`clientShareRetryCounter`,value:n.clientShareRetryCounter,minimum:0}),relayerShareRetryCounter:N({responseName:t,field:`relayerShareRetryCounter`,value:n.relayerShareRetryCounter,minimum:0}),participantIds:P(n.participantIds,t),publicCapability:Ve(n.publicCapability)}}function Tt(e){switch(e){case`registrationIntentLoadMs`:case`registrationIntentDigestMs`:case`registrationIntentConsumeMs`:case`registrationAttemptGateMs`:case`registrationPreparationPersistMs`:case`registrationPreparationLoadMs`:case`registrationPreparationConsumeMs`:case`registrationPreparationScopeCheckMs`:case`registrationAuthorityVerifyMs`:case`registrationEcdsaPrepareMs`:case`registrationCeremonyPersistMs`:case`registerPrepareTotalMs`:case`registerStartTotalMs`:case`registrationEcdsaRespondMs`:case`registrationFinalizeReplayLoadMs`:case`registrationCeremonyLoadMs`:case`registrationEcdsaBootstrapVerifyMs`:case`sponsoredNearAccountCreateMs`:case`registrationKeygenMs`:case`registrationEmailOtpEnrollmentPlanMs`:case`relaySessionMintMs`:case`relayGoogleEmailOtpActivationPlanMs`:case`relayPersistenceMs`:case`registrationFinalizeReplayCacheMs`:case`registerFinalizeTotalMs`:return e;default:throw Error(`Wallet registration finalize response has invalid diagnostics timing name`)}}function Et(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`registrationDiagnostics`,value:e});if(M(n,[`kind`,`route`,`entries`],t),n.kind!==`wallet_registration_route_diagnostics_v1`||n.route!==`wallets_register_finalize`||!Array.isArray(n.entries))throw Error(`${t} response has invalid registrationDiagnostics`);return{kind:`wallet_registration_route_diagnostics_v1`,route:`wallets_register_finalize`,entries:n.entries.map(e=>{let n=j({responseName:t,field:`registrationDiagnostics.entries[]`,value:e});if(M(n,[`name`,`durationMs`],t),typeof n.durationMs!=`number`||!Number.isFinite(n.durationMs)||n.durationMs<0)throw Error(`${t} response has invalid diagnostics durationMs`);return{name:Tt(n.name),durationMs:n.durationMs}})}}function Dt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`authority`,value:e});M(n,[`walletId`,`factor`,`verifier`,`bindingId`],t);let r=j({responseName:t,field:`authority.factor`,value:n.factor}),i=j({responseName:t,field:`authority.verifier`,value:n.verifier});switch(r.kind){case`passkey`:M(r,[`kind`,`credentialIdB64u`],t),M(i,[`kind`,`rpId`],t);break;case`email_otp`:M(r,[`kind`,`provider`,`providerUserId`],t),M(i,[`kind`,`emailHashHex`],t);break;default:throw Error(`${t} response has invalid authority factor`)}let a=Ue(n);if(!a)throw Error(`${t} response has invalid authority`);return a}function Ot(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`authMethod`,value:e.response.authMethod});if(String(e.authority.walletId)!==String(e.walletId))throw Error(`${t} response authority wallet mismatch`);switch(n.kind){case`passkey`:{if(M(n,[`kind`,`credentialIdB64u`,`credentialPublicKeyB64u`],t),!C(e.authority))throw Error(`${t} response has inconsistent passkey authority`);let r=F(e.response.rpId,t),i=A({responseName:t,field:`authMethod.credentialIdB64u`,value:n.credentialIdB64u});if(String(e.authority.factor.credentialIdB64u)!==i||String(e.authority.verifier.rpId)!==String(r))throw Error(`${t} response passkey authority binding mismatch`);return{kind:`passkey`,rpId:r,authMethod:{kind:`passkey`,credentialIdB64u:i,credentialPublicKeyB64u:A({responseName:t,field:`authMethod.credentialPublicKeyB64u`,value:n.credentialPublicKeyB64u})}}}case`email_otp`:if(M(n,[`kind`,`registrationAuthorityId`],t),C(e.authority)||e.response.rpId!==void 0)throw Error(`${t} response has inconsistent email OTP authority`);return{kind:`email_otp`,authMethod:{kind:`email_otp`,registrationAuthorityId:A({responseName:t,field:`authMethod.registrationAuthorityId`,value:n.registrationAuthorityId})}};default:throw Error(`${t} response has invalid authMethod`)}}function kt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`accountProvisioning`,value:e});switch(n.kind){case`implicit_account`:if(M(n,[`kind`,`accountIdSource`],t),n.accountIdSource!==`ed25519_public_key`)throw Error(`${t} response has invalid implicit account provisioning`);return{kind:`implicit_account`,accountIdSource:`ed25519_public_key`};case`sponsored_named_account`:{M(n,[`kind`,`requestedAccountId`,`sponsor`],t);let e=x(n.requestedAccountId);if(!e.ok||n.sponsor!==`relayer`)throw Error(`${t} response has invalid named account provisioning`);return{kind:`sponsored_named_account`,requestedAccountId:e.value,sponsor:`relayer`}}default:throw Error(`${t} response has invalid accountProvisioning kind`)}}function At(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`resolvedAccount`,value:e});switch(n.kind){case`implicit_account`:{M(n,[`kind`,`nearAccountId`,`nearEd25519SigningKeyId`],t);let e=Ae(n.nearAccountId);if(!e.ok)throw Error(`${t} response has invalid implicit nearAccountId`);return{kind:`implicit_account`,nearAccountId:e.value,nearEd25519SigningKeyId:w(n.nearEd25519SigningKeyId)}}case`sponsored_named_account`:{M(n,[`kind`,`nearAccountId`,`nearEd25519SigningKeyId`,`transactionHash`],t);let e=x(n.nearAccountId);if(!e.ok)throw Error(`${t} response has invalid named nearAccountId`);return{kind:`sponsored_named_account`,nearAccountId:e.value,nearEd25519SigningKeyId:w(n.nearEd25519SigningKeyId),transactionHash:A({responseName:t,field:`resolvedAccount.transactionHash`,value:n.transactionHash})}}default:throw Error(`${t} response has invalid resolvedAccount kind`)}}function jt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`ecdsa`,value:e.value});if(M(n,[`walletKeys`],t),!Array.isArray(n.walletKeys)||n.walletKeys.length===0)throw Error(`${t} response has invalid walletKeys`);let r=new Set;return{walletKeys:n.walletKeys.map(n=>{let i=wt(n,t);if(i.walletId!==String(e.walletId))throw Error(`${t} response ECDSA walletId mismatch`);if(String(i.publicCapability.client_id)!==String(e.walletId)||i.publicCapability.public_identity.context_binding_b64u!==i.contextBinding32B64u||i.publicCapability.public_identity.derivation_client_share_public_key33_b64u!==i.derivationClientSharePublicKey33B64u||i.publicCapability.public_identity.threshold_public_key33_b64u!==i.thresholdEcdsaPublicKeyB64u||i.publicCapability.public_identity.client_share_retry_counter!==i.clientShareRetryCounter||i.publicCapability.public_identity.server_share_retry_counter!==i.relayerShareRetryCounter)throw Error(`${t} response ECDSA public capability mismatch`);let a=De(i.chainTarget);if(r.has(a))throw Error(`${t} response has duplicate ECDSA target ${a}`);return r.add(a),i})}}function Mt(e){let t=`Wallet registration finalize`,n=bt(e.response.authorityScope,t),r=kt(e.response.accountProvisioning),i=At(e.response.resolvedAccount),a=St(e.response.ed25519,t);if(r.kind!==i.kind||i.nearAccountId!==a.nearAccountId||i.nearEd25519SigningKeyId!==a.nearEd25519SigningKeyId)throw Error(`${t} response has inconsistent Ed25519 identity`);if(n.kind===`passkey_rp`&&(!C(e.authority)||String(e.authority.verifier.rpId)!==String(n.rpId))||n.kind===`email_otp`&&(C(e.authority)||e.authority.factor.provider!==n.provider||String(e.authority.factor.providerUserId)!==n.providerUserId))throw Error(`${t} response authorityScope mismatch`);return{authorityScope:n,accountProvisioning:r,resolvedAccount:i,ed25519:a}}function Nt(e){let t=`Wallet registration finalize`,n=j({responseName:t,field:`body`,value:e.value});if(M(n,[`ok`,`walletId`,`authority`,`foundingAuthority`,`foundingAuthMethod`,`registrationDiagnostics`,`rpId`,`authMethod`,`walletCustody`,`custodyKeyManifestDigestB64u`,`kind`,`authorityScope`,`accountProvisioning`,`resolvedAccount`,`ed25519`,`ecdsa`],t),n.ok!==!0||n.kind!==e.expectedKind)throw Error(`${t} response substituted signer branch`);let r=qe(A({responseName:t,field:`walletId`,value:n.walletId})),i=Dt(n.authority),a=Fe(n.foundingAuthority),o=Ge(n.foundingAuthMethod);if(!a.ok)throw Error(`${t} response has an invalid founding authority: ${a.error.message}`);if(a.value.state!==`active`)throw Error(`${t} response has an inactive founding authority`);if(!o)throw Error(`${t} response has an invalid founding auth method`);if(o.status!==`active`)throw Error(`${t} response has an inactive founding auth method`);if(a.value.walletId!==r||o.walletId!==r)throw Error(`${t} response changed the founding wallet identity`);if(o.walletAuthorityId!==a.value.authorityId)throw Error(`${t} response has mismatched founding authority identities`);if(o.walletAuthMethodId!==i.bindingId)throw Error(`${t} response has mismatched founding auth-method identities`);let s=Ot({response:n,walletId:r,authority:i}),c=n.registrationDiagnostics===void 0?void 0:Et(n.registrationDiagnostics),l=n.walletCustody===void 0?{}:{walletCustody:xe(n.walletCustody,t)},u=n.custodyKeyManifestDigestB64u===void 0?void 0:A({responseName:t,field:`custodyKeyManifestDigestB64u`,value:n.custodyKeyManifestDigestB64u});if(u!==void 0&&te(u).byteLength!==32)throw Error(`${t} response has invalid custodyKeyManifestDigestB64u`);let d=u===void 0?{}:{custodyKeyManifestDigestB64u:u};switch(n.kind){case`near_ed25519`:{if(n.ecdsa!==void 0)throw Error(`${t} response mixed signer branches`);let e=Mt({response:n,authority:i});return s.kind===`passkey`?{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,rpId:s.rpId,authMethod:s.authMethod,kind:`near_ed25519`,authorityScope:e.authorityScope,accountProvisioning:e.accountProvisioning,resolvedAccount:e.resolvedAccount,ed25519:e.ed25519}:{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,authMethod:s.authMethod,kind:`near_ed25519`,authorityScope:e.authorityScope,accountProvisioning:e.accountProvisioning,resolvedAccount:e.resolvedAccount,ed25519:e.ed25519}}case`evm_family_ecdsa`:{if(n.authorityScope!==void 0||n.accountProvisioning!==void 0||n.resolvedAccount!==void 0||n.ed25519!==void 0)throw Error(`${t} response mixed signer branches`);let e=jt({value:n.ecdsa,walletId:r});return s.kind===`passkey`?{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,rpId:s.rpId,authMethod:s.authMethod,kind:`evm_family_ecdsa`,ecdsa:e}:{ok:!0,walletId:r,authority:i,foundingAuthority:a.value,foundingAuthMethod:o,...c?{registrationDiagnostics:c}:{},...l,...d,authMethod:s.authMethod,kind:`evm_family_ecdsa`,ecdsa:e}}default:throw Error(`${t} response has invalid kind`)}}const Pt=`/wallets/register/respond`,Ft=`/wallets/register/activate`,It=`/wallets/register/near-provisioning`,Lt=`X-Seams-Environment-Id`;function Rt(e){let t=[Pt];e.evmFamilyEcdsa&&t.push(Ft),e.nearEd25519&&(e.evmFamilyEcdsa&&t.push(`/wallets/register/near-admission`),t.push(Ne,It,le,ue)),m(e.relayerUrl,t)}function zt(e){try{return new TextEncoder().encode(String(e||``)).length}catch{return String(e||``).length}}function Bt(){try{return globalThis.__SEAMS_REGISTRATION_BENCHMARK_DIAGNOSTICS===!0}catch{return!1}}function Vt(e){if(!(!e.value||typeof e.value!=`object`||Array.isArray(e.value))&&!(Object.keys(e.out).length>=64))for(let[t,n]of Object.entries(e.value)){if(Object.keys(e.out).length>=64)return;let r=e.path?`${e.path}.${t}`:t;typeof n==`string`?e.out[`${r}Bytes`]=zt(n):Array.isArray(n)?e.out[`${r}Count`]=n.length:e.depth>0&&n&&typeof n==`object`&&Vt({value:n,out:e.out,path:r,depth:e.depth-1})}}function Ht(e){let t={};return Vt({value:e,out:t,path:``,depth:2}),t}function Ut(e){try{return JSON.parse(e)}catch{return}}function I(e,t){if(!(typeof e!=`object`||!e||Array.isArray(e)))return Reflect.get(e,t)}async function Wt(e){try{return await e.text()}catch{return`{}`}}async function L(e){let t=Date.now(),n=JSON.stringify(e.body),r=await fetch(`${ee(e.relayerUrl,{trim:!1})}${e.path}`,h({headers:{...e.headers,"X-Seams-Wallet-Protocol":`4`},body:e.body,bodyJson:n}));if(e.onServerTiming)try{e.onServerTiming(r.headers.get(`Server-Timing`))}catch{}let i=await Wt(r),a=Ut(i);if(Bt()&&console.info(`[Registration] wallet route payload summary`,{path:e.path,status:r.status,requestBytes:zt(n),requestSizeBreakdown:Ht(e.body),responseBytes:zt(i),responseSizeBreakdown:Ht(a),totalMs:Date.now()-t}),!r.ok||I(a,`ok`)===!1){let e=String(I(a,`code`)||``).trim(),t=String(I(a,`message`)||I(a,`error`)||e||`HTTP ${r.status}`);throw Object.assign(Error(t),e?{code:e}:{})}return a}const Gt=[`ok`,`walletId`,`nearAccountId`,`fundedAmountYocto`],Kt=[`transactionHash`,`message`],qt=[`ok`,`code`,`message`];function Jt(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Yt(e,t,n,r){let i=new Set([...t,...n]),a=Object.keys(e);if(a.some(e=>!i.has(e)))throw Error(`${r} contains unexpected fields`);for(let e of t)if(!a.includes(e))throw Error(`${r}.${e} is required`)}function R(e,t){return Reflect.get(e,t)}function Xt(e,t){if(typeof e!=`string`||e.trim().length===0)throw Error(`${t} must be a non-empty string`);return e.trim()}function Zt(e,t){if(e!==void 0){if(typeof e!=`string`)throw Error(`${t} must be a string`);return e}}function Qt(e){let t=Jt(e,`fund implicit NEAR account response`),n=R(t,`ok`);if(n===!0){Yt(t,Gt,Kt,`fund implicit NEAR account success response`);let e=c(R(t,`walletId`));if(!e.ok)throw Error(`fund implicit NEAR account walletId is invalid`);let n=Ae(R(t,`nearAccountId`));if(!n.ok)throw Error(`fund implicit NEAR account nearAccountId is invalid`);let r=Zt(R(t,`transactionHash`),`fund implicit NEAR account transactionHash`),i=Zt(R(t,`message`),`fund implicit NEAR account message`);return{ok:!0,walletId:e.value,nearAccountId:n.value,fundedAmountYocto:Xt(R(t,`fundedAmountYocto`),`fund implicit NEAR account fundedAmountYocto`),...r===void 0?{}:{transactionHash:r},...i===void 0?{}:{message:i}}}if(n===!1)return Yt(t,qt,[],`fund implicit NEAR account failure response`),{ok:!1,code:Xt(R(t,`code`),`fund implicit NEAR account code`),message:Xt(R(t,`message`),`fund implicit NEAR account message`)};throw Error(`fund implicit NEAR account response has an invalid ok discriminator`)}async function $t(e){let t=String(e.walletId||``).trim(),n=String(e.nearAccountId||``).trim(),r=String(e.nearPublicKeyStr||``).trim(),i=String(e.walletSessionToken||``).trim();if(!t)throw Error(`walletId is required for implicit NEAR account funding`);if(!n)throw Error(`nearAccountId is required for implicit NEAR account funding`);if(!r)throw Error(`nearPublicKeyStr is required for implicit NEAR account funding`);if(!i)throw Error(`walletSessionToken is required for implicit NEAR account funding`);return Qt(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/near/implicit-account/fund`,headers:f({token:i,missingMessage:`walletSessionToken is required for implicit NEAR account funding`}),body:{nearAccountId:n,nearPublicKeyStr:r}}))}function en(e){let t=String(e||``).trim();if(!t)throw Error(`Registration preparation id is required`);return t}const tn=[`formatVersion`,`walletId`,`evmFamilySigningKeySlotId`,`ecdsaThresholdKeyId`,`signingRootId`,`signingRootVersion`,`keyScope`,`relayerKeyId`,`registrationPreparationId`,`requestId`,`thresholdSessionId`,`ttlMs`,`remainingUses`,`participantIds`,`runtimePolicyScope`];function z(e){if(e.value===null||typeof e.value!=`object`||Array.isArray(e.value))throw Error(`${e.responseName} response missing ${e.field}`);return e.value}function B(e,t,n){if(!Object.keys(e).includes(t))throw Error(`${n} is missing ${t}`);return Reflect.get(e,t)}function V(e,t,n){if(Object.keys(e).includes(t))return Reflect.get(e,t)}function H(e,t,n){let r=new Set(t);for(let t of Object.keys(e))if(!r.has(t))throw Error(`${n} contains unexpected ${t}`)}function U(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}function nn(e,t){return Object.keys(e).includes(t)}function rn(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e)throw Error(`${t} must be a non-empty canonical string`);return e}function an(e,t,n){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<n)throw Error(`${t} must be a safe integer`);return e}function W(e,t,n){return rn(B(e,t,n),`${n}.${t}`)}function G(e,t,n){if(nn(e,t))return rn(B(e,t,n),`${n}.${t}`)}function K(e,t,n,r){return an(B(e,t,n),`${n}.${t}`,r)}function on(e,t){let n=U(e,t);if(n.length===0)throw Error(`${t} must not be empty`);let r=[];for(let e=0;e<n.length;e+=1)r.push(an(n[e],`${t}[${e}]`,1));return r}function sn(e,t){let n=on(e,t);if(n.length!==2||n[0]!==1||n[1]!==2)throw Error(`${t} must be [1, 2]`);return[1,2]}function cn(e,t,n=!1){if(e===void 0)return;let r=`${t} runtimePolicyScope`,i=z({responseName:r,field:`value`,value:e});H(i,[`orgId`,`projectId`,`envId`,`signingRootVersion`],r);let a=G(i,`signingRootVersion`,r);if(n&&a===void 0)throw Error(`${r}.signingRootVersion is required`);let o={orgId:W(i,`orgId`,r),projectId:W(i,`projectId`,r),envId:W(i,`envId`,r)};return a===void 0?o:{...o,signingRootVersion:a}}function ln(e,t){let n=cn(e,t,!0);if(!n||n.signingRootVersion===void 0)throw Error(`${t} runtimePolicyScope is invalid`);return{orgId:n.orgId,projectId:n.projectId,envId:n.envId,signingRootVersion:n.signingRootVersion}}function un(e){let t=`Wallet registration setup intent authMethod`,n=z({responseName:t,field:`value`,value:e});switch(W(n,`kind`,t)){case`passkey`:if(H(n,[`kind`,`rpId`,`authenticatorOptions`],t),!r(W(n,`rpId`,t)).ok)throw Error(`${t}.rpId is invalid`);if(!nn(n,`authenticatorOptions`))break;if(B(n,`authenticatorOptions`,t)===void 0)throw Error(`${t}.authenticatorOptions must be defined when present`);break;case`email_otp`:switch(W(n,`proofKind`,t)){case`otp_challenge`:H(n,[`kind`,`proofKind`,`email`,`providerSubject`,`otpCode`,`challengeId`],t),G(n,`challengeId`,t),W(n,`email`,t),W(n,`providerSubject`,t),W(n,`otpCode`,t);break;case`google_sso_registration`:H(n,[`kind`,`proofKind`,`email`,`providerSubject`,`googleEmailOtpRegistrationAttemptId`,`googleEmailOtpRegistrationOfferId`,`googleEmailOtpRegistrationCandidateId`],t),W(n,`email`,t),W(n,`providerSubject`,t),W(n,`googleEmailOtpRegistrationAttemptId`,t),W(n,`googleEmailOtpRegistrationOfferId`,t),W(n,`googleEmailOtpRegistrationCandidateId`,t);break;default:throw Error(`${t}.proofKind is invalid`)}break;default:throw Error(`${t}.kind is invalid`)}let i=Ke(e);if(!i)throw Error(`${t} is invalid`);return i}function dn(e){let t=`Wallet registration setup intent accountProvisioning`,n=z({responseName:t,field:`value`,value:e}),r=W(n,`kind`,t);switch(r){case`implicit_account`:if(H(n,[`kind`,`accountIdSource`],t),W(n,`accountIdSource`,t)!==`ed25519_public_key`)throw Error(`${t}.accountIdSource is invalid`);return{kind:r,accountIdSource:`ed25519_public_key`};case`sponsored_named_account`:{if(H(n,[`kind`,`requestedAccountId`,`sponsor`],t),W(n,`sponsor`,t)!==`relayer`)throw Error(`${t}.sponsor is invalid`);let e=x(W(n,`requestedAccountId`,t));if(!e.ok)throw Error(`${t}.requestedAccountId is invalid`);return{kind:r,requestedAccountId:e.value,sponsor:`relayer`}}default:throw Error(`${t}.kind is invalid`)}}function q(e,t){switch(e.kind){case`evm`:return t.kind===`evm`&&e.namespace===t.namespace&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;case`tempo`:return t.kind===`tempo`&&e.chainId===t.chainId&&e.networkSlug===t.networkSlug;default:return fn(e)}}function fn(e){throw Error(`Unsupported wallet registration setup chain target: ${String(e)}`)}function J(e,t){let n=z({responseName:t,field:`chainTarget`,value:e}),r=W(n,`kind`,t);switch(r){case`evm`:{if(H(n,[`kind`,`namespace`,`chainId`,`networkSlug`],t),W(n,`namespace`,t)!==`eip155`)throw Error(`${t}.namespace is invalid`);let e=K(n,`chainId`,t,1),i=G(n,`networkSlug`,t);return i===void 0?{kind:r,namespace:`eip155`,chainId:e}:{kind:r,namespace:`eip155`,chainId:e,networkSlug:i}}case`tempo`:{H(n,[`kind`,`chainId`,`networkSlug`],t);let e=K(n,`chainId`,t,1),i=G(n,`networkSlug`,t);return i===void 0?{kind:r,chainId:e}:{kind:r,chainId:e,networkSlug:i}}default:throw Error(`${t}.kind is invalid`)}}function pn(e){try{return J(e,`Wallet registration setup intent`)}catch{return null}}function mn(e){let t=`Wallet registration setup intent signer`,n=z({responseName:t,field:`value`,value:e}),r=W(n,`kind`,t);switch(r){case`near_ed25519`:if(H(n,[`kind`,`accountProvisioning`,`signerSlot`,`participantIds`,`derivationVersion`],t),K(n,`derivationVersion`,t,1)!==1)throw Error(`${t}.derivationVersion is invalid`);return{kind:r,accountProvisioning:dn(B(n,`accountProvisioning`,t)),signerSlot:K(n,`signerSlot`,t,1),participantIds:on(B(n,`participantIds`,t),`${t}.participantIds`),derivationVersion:1};case`evm_family_ecdsa`:{H(n,[`kind`,`participantIds`,`chainTargets`],t);let e=U(B(n,`chainTargets`,t),`${t}.chainTargets`);if(e.length===0)throw Error(`${t}.chainTargets must not be empty`);let i=[];for(let n of e){let e=J(n,`${t}.chainTargets`);if(i.some(t=>q(t,e)))throw Error(`${t}.chainTargets contains a duplicate target`);i.push(e)}return{kind:r,participantIds:on(B(n,`participantIds`,t),`${t}.participantIds`),chainTargets:i}}default:throw Error(`${t}.kind is invalid`)}}function hn(e){let t=`Wallet registration setup intent signerSelection`,n=z({responseName:t,field:`value`,value:e});if(H(n,[`kind`,`signers`],t),W(n,`kind`,t)!==`signer_set`)throw Error(`${t}.kind is invalid`);let r=U(B(n,`signers`,t),`${t}.signers`);if(r.length===0)throw Error(`${t}.signers must not be empty`);let i=[];for(let e of r)i.push(mn(e));return{kind:`signer_set`,signers:i}}function gn(e){let n=`Wallet registration setup intent`,r=z({responseName:n,field:`intent`,value:e});if(H(r,[`version`,`walletId`,`authMethod`,`signerSelection`,`foundingWalletAuthMethodId`,`runtimePolicyScope`,`nonceB64u`],n),W(r,`version`,n)!==`registration_intent_v1`)throw Error(`${n}.version is invalid`);let i=c(W(r,`walletId`,n));if(!i.ok)throw Error(`${n}.walletId is invalid`);let a=t(W(r,`foundingWalletAuthMethodId`,n));if(!a.ok)throw Error(`${n}.foundingWalletAuthMethodId is invalid`);let o=un(B(r,`authMethod`,n)),s=hn(B(r,`signerSelection`,n)),l=cn(V(r,`runtimePolicyScope`,n),n),u=W(r,`nonceB64u`,n);return l===void 0?{version:`registration_intent_v1`,walletId:i.value,authMethod:o,signerSelection:s,foundingWalletAuthMethodId:a.value,nonceB64u:u}:{version:`registration_intent_v1`,walletId:i.value,authMethod:o,signerSelection:s,foundingWalletAuthMethodId:a.value,runtimePolicyScope:l,nonceB64u:u}}function _n(e){let t=`Wallet add-signer ECDSA derivation`,n=z({responseName:t,field:`response`,value:e});if(H(n,[`ok`,`addSignerCeremonyId`,`ecdsa`],`${t} response`),B(n,`ok`,`${t} response`)!==!0)throw Error(`${t} response is not successful`);let r=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,`${t} response`)});if(H(r,[`kind`,`strictResult`],`${t} response ecdsa`),B(r,`kind`,`${t} response ecdsa`)!==`router_ab_ecdsa_registration_forwarded_v1`)throw Error(`${t} response kind is invalid`);return{ok:!0,addSignerCeremonyId:A({responseName:t,field:`addSignerCeremonyId`,value:B(n,`addSignerCeremonyId`,t)}),ecdsa:{kind:`router_ab_ecdsa_registration_forwarded_v1`,strictResult:ze(B(r,`strictResult`,`${t} response ecdsa`))}}}function vn(e){let t=`Wallet add-signer ECDSA activation`,n=z({responseName:t,field:`response`,value:e});if(H(n,[`ok`,`addSignerCeremonyId`,`ecdsa`],`${t} response`),B(n,`ok`,`${t} response`)!==!0)throw Error(`${t} response is not successful`);let r=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,`${t} response`)});if(H(r,[`kind`,`activation`,`bootstrap`],`${t} response ecdsa`),B(r,`kind`,`${t} response ecdsa`)!==`router_ab_ecdsa_registration_activated_v1`)throw Error(`${t} response kind is invalid`);return{ok:!0,addSignerCeremonyId:A({responseName:t,field:`addSignerCeremonyId`,value:B(n,`addSignerCeremonyId`,t)}),ecdsa:{kind:`router_ab_ecdsa_registration_activated_v1`,activation:He(B(r,`activation`,`${t} response ecdsa`)),bootstrap:nt(B(r,`bootstrap`,`${t} response ecdsa`))}}}function yn(e){return e.authMethod.kind===`email_otp`}function bn(e){let t=`Wallet add-auth-method intent`,n=z({responseName:t,field:`body`,value:e});if(H(n,[`ok`,`intent`,`addAuthMethodIntentDigestB64u`,`addAuthMethodIntentGrant`,`expiresAtMs`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=_e(B(n,`intent`,t)),i;try{i=pe(B(n,`addAuthMethodIntentDigestB64u`,t))}catch{throw Error(`${t} response has invalid addAuthMethodIntentDigestB64u`)}let a=B(n,`addAuthMethodIntentGrant`,t);if(typeof a!=`string`||!a.trim())throw Error(`${t} response is missing addAuthMethodIntentGrant`);return{ok:!0,intent:r,addAuthMethodIntentDigestB64u:i,addAuthMethodIntentGrant:Te(a),expiresAtMs:N({responseName:t,field:`expiresAtMs`,value:B(n,`expiresAtMs`,t),minimum:1})}}function xn(e){let t=`Wallet add-signer intent`,n=z({responseName:t,field:`body`,value:e});if(H(n,[`ok`,`intent`,`addSignerIntentDigestB64u`,`addSignerIntentGrant`,`expiresAtMs`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=Ce(B(n,`intent`,t)),i;try{i=pe(B(n,`addSignerIntentDigestB64u`,t))}catch{throw Error(`${t} response has invalid addSignerIntentDigestB64u`)}let a=B(n,`addSignerIntentGrant`,t);if(typeof a!=`string`||!a.trim())throw Error(`${t} response is missing addSignerIntentGrant`);return{ok:!0,intent:r,addSignerIntentDigestB64u:i,addSignerIntentGrant:Se(a),expiresAtMs:N({responseName:t,field:`expiresAtMs`,value:B(n,`expiresAtMs`,t),minimum:1})}}function Sn(e){let t=`Wallet add-auth-method finalize`,i=z({responseName:t,field:`body`,value:e});if(B(i,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let a=z({responseName:t,field:`authMethod`,value:B(i,`authMethod`,t)}),o=B(a,`kind`,`${t} authMethod`);if(o!==`passkey`&&o!==`email_otp`)throw Error(`${t} response has invalid authMethod kind`);let s=c(B(i,`walletId`,t));if(!s.ok)throw Error(`${t} response has invalid walletId`);let l=Ue(B(i,`authority`,t));if(!l)throw Error(`${t} response has invalid authority`);if(l.walletId!==s.value)throw Error(`${t} response authority wallet mismatch`);if(o===`passkey`){if(H(i,[`ok`,`walletId`,`authority`,`rpId`,`authMethod`],t),H(a,[`kind`,`status`,`credentialIdB64u`,`credentialPublicKeyB64u`,`counter`,`device`],`${t} authMethod`),B(a,`status`,t)!==`active`)throw Error(`${t} response has invalid authMethod status`);if(l.factor.kind!==`passkey`||l.verifier.kind!==`webauthn`)throw Error(`${t} response has inconsistent passkey authority`);let e=r(B(i,`rpId`,t));if(!e.ok)throw Error(`${t} response has invalid rpId`);let o=n(B(a,`credentialIdB64u`,t));if(!o.ok)throw Error(`${t} response has invalid credentialIdB64u`);let c=B(a,`credentialPublicKeyB64u`,t);if(typeof c!=`string`||!c.trim())throw Error(`${t} response is missing credentialPublicKeyB64u`);let u=B(a,`counter`,t);if(typeof u!=`number`||!Number.isSafeInteger(u)||u<0)throw Error(`${t} response has invalid counter`);let d=Me(B(a,`device`,t));if(!d)throw Error(`${t} response has invalid device`);if(l.factor.credentialIdB64u!==o.value||l.verifier.rpId!==e.value)throw Error(`${t} response passkey authority binding mismatch`);return{ok:!0,walletId:s.value,authority:l,rpId:e.value,authMethod:{kind:`passkey`,status:`active`,credentialIdB64u:o.value,credentialPublicKeyB64u:c.trim(),counter:u,device:d}}}if(H(i,[`ok`,`walletId`,`authority`,`authMethod`],t),H(a,[`kind`,`status`],`${t} authMethod`),B(a,`status`,t)!==`active`)throw Error(`${t} response has invalid authMethod status`);if(l.factor.kind!==`email_otp`||l.verifier.kind!==`email_otp_wallet_auth_method`)throw Error(`${t} response has inconsistent email OTP authority`);return{ok:!0,walletId:s.value,authority:l,authMethod:{kind:`email_otp`,status:`active`}}}function Cn(e){let t=`Wallet add-auth-method start`,n=z({responseName:t,field:`body`,value:e.value});if(B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=A({responseName:t,field:`addAuthMethodCeremonyId`,value:B(n,`addAuthMethodCeremonyId`,t)}),i=Tn(B(n,`intent`,t),e.expectedIntent);return e.expectedIntent.authMethod.kind===`email_otp`?(H(n,[`ok`,`addAuthMethodCeremonyId`,`intent`,`custodyEnvelope`,`addAuthMethodCeremonyExpiresAtMs`],t),{ok:!0,addAuthMethodCeremonyId:r,intent:i,custodyEnvelope:y(B(n,`custodyEnvelope`,t)),addAuthMethodCeremonyExpiresAtMs:N({responseName:t,field:`addAuthMethodCeremonyExpiresAtMs`,value:B(n,`addAuthMethodCeremonyExpiresAtMs`,t),minimum:1})}):(H(n,[`ok`,`addAuthMethodCeremonyId`,`intent`,`custodyEnvelope`,`registration`,`addAuthMethodCeremonyExpiresAtMs`],t),{ok:!0,addAuthMethodCeremonyId:r,intent:i,custodyEnvelope:y(B(n,`custodyEnvelope`,t)),registration:je(B(n,`registration`,t)),addAuthMethodCeremonyExpiresAtMs:N({responseName:t,field:`addAuthMethodCeremonyExpiresAtMs`,value:B(n,`addAuthMethodCeremonyExpiresAtMs`,t),minimum:1})})}function wn(e,t){try{if(!ve(Ce(e),t))throw Error(`intent mismatch`)}catch{throw Error(`Wallet add-signer start response changed the admitted intent`)}return t}function Tn(e,t){try{if(!we(_e(e),t))throw Error(`intent mismatch`)}catch{throw Error(`Wallet add-auth-method start response changed the admitted intent`)}return t}function En(e,t){let n=z({responseName:t,field:`ecdsa.prepare`,value:e});if(H(n,tn,t),B(n,`formatVersion`,t)!==`ecdsa-derivation-role-local`||B(n,`keyScope`,t)!==`evm-family`)throw Error(`${t} response has invalid prepare discriminator`);let r=ne(B(n,`runtimePolicyScope`,t));if(!r)throw Error(`${t} response has invalid runtimePolicyScope`);return{formatVersion:`ecdsa-derivation-role-local`,walletId:A({responseName:t,field:`prepare.walletId`,value:B(n,`walletId`,t)}),evmFamilySigningKeySlotId:A({responseName:t,field:`prepare.evmFamilySigningKeySlotId`,value:B(n,`evmFamilySigningKeySlotId`,t)}),ecdsaThresholdKeyId:A({responseName:t,field:`prepare.ecdsaThresholdKeyId`,value:B(n,`ecdsaThresholdKeyId`,t)}),signingRootId:A({responseName:t,field:`prepare.signingRootId`,value:B(n,`signingRootId`,t)}),signingRootVersion:A({responseName:t,field:`prepare.signingRootVersion`,value:B(n,`signingRootVersion`,t)}),keyScope:`evm-family`,relayerKeyId:A({responseName:t,field:`prepare.relayerKeyId`,value:B(n,`relayerKeyId`,t)}),registrationPreparationId:en(A({responseName:t,field:`prepare.registrationPreparationId`,value:B(n,`registrationPreparationId`,t)})),requestId:A({responseName:t,field:`prepare.requestId`,value:B(n,`requestId`,t)}),thresholdSessionId:A({responseName:t,field:`prepare.thresholdSessionId`,value:B(n,`thresholdSessionId`,t)}),ttlMs:N({responseName:t,field:`prepare.ttlMs`,value:B(n,`ttlMs`,t),minimum:1}),remainingUses:N({responseName:t,field:`prepare.remainingUses`,value:B(n,`remainingUses`,t),minimum:0}),participantIds:[...P(B(n,`participantIds`,t),t)],runtimePolicyScope:r}}function Dn(e,t){let n=z({responseName:t,field:`ecdsa.prepare`,value:e});if(H(n,tn,t),B(n,`formatVersion`,t)!==`ecdsa-derivation-role-local`||B(n,`keyScope`,t)!==`evm-family`)throw Error(`${t} response has invalid prepare discriminator`);for(let e of[`walletId`,`evmFamilySigningKeySlotId`,`ecdsaThresholdKeyId`,`signingRootId`,`signingRootVersion`,`relayerKeyId`,`registrationPreparationId`,`requestId`,`thresholdSessionId`])W(n,e,t);K(n,`ttlMs`,t,1),K(n,`remainingUses`,t,0),sn(B(n,`participantIds`,t),`${t}.participantIds`),ln(B(n,`runtimePolicyScope`,t),t)}function On(e){let t=`Wallet registration setup ECDSA`,n=z({responseName:t,field:`ecdsa`,value:e});if(H(n,[`kind`,`chainTargets`,`prepare`,`strictRegistration`],t),B(n,`kind`,t)!==`evm_family_ecdsa_keygen`)throw Error(`${t} response has an invalid kind`);let r=B(n,`chainTargets`,t);if(!Array.isArray(r)||r.length===0)throw Error(`${t} response has invalid chainTargets`);let i=[];for(let e of r){let n=J(e,`${t}.chainTargets`);if(i.some(e=>q(e,n)))throw Error(`${t} response has duplicate chainTargets`);i.push(n)}let[a,...o]=i;if(!a)throw Error(`${t} response has invalid chainTargets`);let s=B(n,`prepare`,t);Dn(s,t);let c=En(s,t),l=Re(B(n,`strictRegistration`,t));if(l.registration_purpose!==`wallet_registration`)throw Error(`${t} response has an invalid registration purpose`);return{kind:`evm_family_ecdsa_keygen`,chainTargets:[a,...o],prepare:c,strictRegistration:l}}function kn(e){let t=!1,n=!1;for(let r of e.signerSelection.signers)switch(r.kind){case`near_ed25519`:t=!0;break;case`evm_family_ecdsa`:n=!0;break;default:return An(r)}if(t&&n)return`near_ed25519_and_evm_family_ecdsa`;if(n)return`evm_family_ecdsa`;if(t)return`near_ed25519`;throw Error(`Wallet registration setup intent has no signer branch`)}function An(e){throw Error(`Unsupported wallet registration setup signer: ${String(e)}`)}function jn(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Mn(e,t){return e!==void 0&&e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}function Nn(e,t){try{return q(J(e,`Wallet registration setup intent`),t)}catch{return!1}}function Pn(e){let t=e.intent.signerSelection.signers.find(e=>e.kind===`evm_family_ecdsa`);if(!t)throw Error(`${e.responseName} response has no ECDSA intent branch`);if(t.chainTargets.length!==e.ecdsa.chainTargets.length||t.chainTargets.some((t,n)=>!Nn(t,e.ecdsa.chainTargets[n])))throw Error(`${e.responseName} response ECDSA chainTargets do not match intent`);if(!jn(t.participantIds,e.ecdsa.prepare.participantIds))throw Error(`${e.responseName} response ECDSA participantIds do not match intent`);if(e.ecdsa.prepare.walletId!==String(e.walletId))throw Error(`${e.responseName} response ECDSA prepare walletId does not match response`);if(!Mn(e.intent.runtimePolicyScope,e.ecdsa.prepare.runtimePolicyScope))throw Error(`${e.responseName} response ECDSA runtimePolicyScope does not match intent`);let n=e.ecdsa.strictRegistration.lifecycle;if(n.lifecycle_id!==e.registrationCeremonyId||n.account_id!==String(e.walletId)||e.ecdsa.strictRegistration.client_id!==String(e.walletId))throw Error(`${e.responseName} response ECDSA identities do not match response`)}function Fn(e){let n=`Wallet registration setup`,r=z({responseName:n,field:`body`,value:e});if(B(r,`ok`,n)!==!0)throw Error(`${n} response is not successful`);let i=B(r,`kind`,n);if(i!==`near_ed25519`&&i!==`evm_family_ecdsa`&&i!==`near_ed25519_and_evm_family_ecdsa`)throw Error(`${n} response kind is invalid`);let a=i!==`near_ed25519`;H(r,[`ok`,`registrationCeremonyId`,`walletId`,`walletAuthMethodId`,`registrationIntentDigestB64u`,`intent`,`signedSetup`,`home`,`kind`,a?`ecdsa`:`ed25519`],n);let o=W(r,`registrationCeremonyId`,n),s=c(W(r,`walletId`,n));if(!s.ok)throw Error(`${n} response has an invalid walletId`);let l=t(W(r,`walletAuthMethodId`,n));if(!l.ok)throw Error(`${n} response has an invalid walletAuthMethodId`);let u=gn(B(r,`intent`,n));if(u.walletId!==s.value)throw Error(`${n} response walletId does not match intent`);if(u.foundingWalletAuthMethodId!==l.value)throw Error(`${n} response walletAuthMethodId does not match intent`);let d;try{d=pe(B(r,`registrationIntentDigestB64u`,n))}catch{throw Error(`${n} response has an invalid registrationIntentDigestB64u`)}let f=oe(B(r,`home`,n)),p=B(r,`signedSetup`,n);if(typeof p!=`string`||!p.trim())throw Error(`${n} response missing signedSetup`);if(!a){if(kn(u)!==i)throw Error(`${n} response kind does not match intent`);return{ok:!0,registrationCeremonyId:o,walletId:s.value,walletAuthMethodId:l.value,registrationIntentDigestB64u:d,intent:u,signedSetup:p,home:f,kind:`near_ed25519`,ed25519:In(B(r,`ed25519`,n),{registrationCeremonyId:o,walletId:s.value})}}let m=On(B(r,`ecdsa`,n));if(kn(u)!==i)throw Error(`${n} response kind does not match intent`);return Pn({responseName:n,registrationCeremonyId:o,walletId:s.value,intent:u,ecdsa:m}),{ok:!0,registrationCeremonyId:o,walletId:s.value,walletAuthMethodId:l.value,registrationIntentDigestB64u:d,intent:u,signedSetup:p,home:f,kind:i,ecdsa:m}}function In(e,t){let n=`Wallet registration setup ed25519`,r=z({responseName:n,field:`ed25519`,value:e}),i=B(r,`status`,n);if(i===`after_proof`)return H(r,[`status`],n),{status:`after_proof`};if(i!==`described`)throw Error(`${n} status is invalid`);H(r,[`status`,`admissionRequest`,`admissionReceipt`],n);let a=S(B(r,`admissionRequest`,n)),o=Ie(B(r,`admissionReceipt`,n));if(!a.ok||!o.ok)throw Error(`${n} request or receipt is invalid`);if(a.value.scope.lifecycle_id!==t.registrationCeremonyId||a.value.scope.account_id!==t.walletId||a.value.application_binding.wallet_id!==t.walletId||o.value.binding.lifecycle.lifecycle_id!==t.registrationCeremonyId||o.value.binding.lifecycle.account_id!==t.walletId)throw Error(`${n} admission does not belong to this registration`);return{status:`described`,admissionRequest:a.value,admissionReceipt:o.value}}function Ln(e){let t=Ke(e.authMethod);if(!t)throw Error(`Wallet registration setup request authMethod is invalid`);let n=Je(e.signerSelection);if(!n.ok)throw Error(`Wallet registration setup request signerSelection is invalid: ${n.message}`);let r=Ye(n.value,{normalizeEcdsaChainTarget:pn});if(!r.ok)throw Error(`Wallet registration setup request signerSelection is invalid: ${r.message}`);return{wallet:e.wallet??{kind:`server_allocated`},authMethod:t,signerSelection:r.value}}function Rn(e,t){let n={version:`registration_intent_v1`,walletId:e.walletId,authMethod:t.authMethod,signerSelection:t.signerSelection,foundingWalletAuthMethodId:e.foundingWalletAuthMethodId,nonceB64u:e.nonceB64u};return e.runtimePolicyScope===void 0?n:{...n,runtimePolicyScope:e.runtimePolicyScope}}async function zn(e){if(e.requestedWallet?.kind===`provided`&&String(e.requestedWallet.walletId)!==e.response.walletId)throw Error(`Wallet registration setup response walletId does not match request`);if(await ye(e.response.intent)!==e.response.registrationIntentDigestB64u)throw Error(`Wallet registration setup response digest does not match intent`);if(await ye(Rn(e.response.intent,e.request))!==e.response.registrationIntentDigestB64u)throw Error(`Wallet registration setup response intent does not match request`)}function Bn(e,t){let n=`Wallet add-signer ECDSA start`,r=z({responseName:n,field:`ecdsa`,value:e});H(r,[`kind`,`chainTargets`,`prepare`,`strictRegistration`,`custodyEnvelope`],n);let i=B(r,`kind`,n),a=B(r,`chainTargets`,n);if(i!==`evm_family_ecdsa_keygen`||!Array.isArray(a))throw Error(`${n} response has invalid payload`);if(t.signerSelection.mode!==`ecdsa`)throw Error(`${n} response substituted signer branch`);let o=t.signerSelection.ecdsa.chainTargets;if(a.length!==o.length)throw Error(`${n} response changed target count`);let s=[];for(let e=0;e<a.length;e+=1){let t=a[e],r=Ct(t,n),i=o[e];if(!i||!Oe(r,Ct(i,n)))throw Error(`${n} response changed chainTarget`);s.push(r)}let[c,...l]=s;if(!c)throw Error(`${n} response requires an EVM-family target`);let u=En(B(r,`prepare`,n),n),d=Re(B(r,`strictRegistration`,n));if(d.registration_purpose!==`wallet_add_signer`)throw Error(`${n} response has invalid registration purpose`);return{kind:`evm_family_ecdsa_keygen`,chainTargets:[c,...l],prepare:u,strictRegistration:d}}function Vn(e){let t=`Wallet add-signer start`,n=z({responseName:t,field:`body`,value:e.value});if(H(n,[`ok`,`addSignerCeremonyId`,`intent`,`authorizationKind`,`kind`,`ed25519`,`ecdsa`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=A({responseName:t,field:`addSignerCeremonyId`,value:B(n,`addSignerCeremonyId`,t)}),i=wn(B(n,`intent`,t),e.expectedIntent),a=B(n,`authorizationKind`,t);if(a!==`webauthn_assertion`)throw Error(`${t} response has invalid authorization kind`);switch(B(n,`kind`,t)){case`near_ed25519`:{if(a!==`webauthn_assertion`||i.signerSelection.mode!==`ed25519`||V(n,`ecdsa`,t)!==void 0)throw Error(`${t} response substituted signer branch`);let e=z({responseName:t,field:`ed25519`,value:B(n,`ed25519`,t)});H(e,[`admissionRequest`,`custodyEnvelope`],t);let o=S(B(e,`admissionRequest`,t));if(!o.ok)throw Error(o.message);return{ok:!0,addSignerCeremonyId:r,intent:i,authorizationKind:`webauthn_assertion`,kind:`near_ed25519`,ed25519:{admissionRequest:o.value,custodyEnvelope:y(B(e,`custodyEnvelope`,t))}}}case`evm_family_ecdsa`:{if(i.signerSelection.mode!==`ecdsa`||V(n,`ed25519`,t)!==void 0)throw Error(`${t} response substituted signer branch`);let e=B(n,`ecdsa`,t),a=Bn(e,i),o=z({responseName:t,field:`ecdsa`,value:e});return{ok:!0,addSignerCeremonyId:r,intent:i,authorizationKind:`webauthn_assertion`,kind:`evm_family_ecdsa`,ecdsa:{...a,custodyEnvelope:y(B(o,`custodyEnvelope`,t))}}}default:throw Error(`${t} response has invalid kind`)}}function Hn(e){let t=`Wallet add-signer finalize`,n=z({responseName:t,field:`body`,value:e.value});H(n,[`ok`,`walletId`,`kind`,`rpId`,`credentialIdB64u`,`ed25519`,`ecdsa`,`authority`],t);let r=B(n,`ok`,t),i=B(n,`kind`,t);if(r!==!0||i!==e.expectedKind)throw Error(`${t} response substituted signer branch`);let a=qe(A({responseName:t,field:`walletId`,value:B(n,`walletId`,t)})),o=F(B(n,`rpId`,t),t);switch(i){case`near_ed25519`:{if(V(n,`ecdsa`,t)!==void 0||V(n,`authority`,t)!==void 0)throw Error(`${t} response mixed signer branches`);let e=xt(B(n,`ed25519`,t),`Wallet add-signer Ed25519 finalize`);return{ok:!0,walletId:a,kind:`near_ed25519`,rpId:o,credentialIdB64u:A({responseName:t,field:`credentialIdB64u`,value:B(n,`credentialIdB64u`,t)}),ed25519:e}}case`evm_family_ecdsa`:{if(V(n,`ed25519`,t)!==void 0||V(n,`credentialIdB64u`,t)!==void 0)throw Error(`${t} response mixed signer branches`);let e=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,t)});H(e,[`walletKeys`],t);let r=U(B(e,`walletKeys`,t),`${t} walletKeys`);if(r.length===0)throw Error(`${t} response has invalid walletKeys`);let i=Fe(B(n,`authority`,t));if(!i.ok||i.value.state!==`active`||i.value.walletId!==a)throw Error(`${t} response has invalid authority`);return{ok:!0,walletId:a,kind:`evm_family_ecdsa`,rpId:o,ecdsa:{walletKeys:r.map(Un)},authority:i.value}}default:throw Error(`${t} response has invalid kind`)}}function Un(e){return wt(e,`Wallet add-signer ECDSA finalize`)}function Y(e){let t=String(e.expected||``).trim(),n=String(e.actual||``).trim();if(!t||!n)throw Error(`ECDSA registration bootstrap returned incomplete ${e.field}`);if(t!==n)throw Error(`ECDSA registration bootstrap ${e.field} mismatch`);return n}function Wn(e){let t=e.expected.map(e=>Math.floor(Number(e))),n=e.actual.map(e=>Math.floor(Number(e)));if(t.length===0||n.length===0||t.some(e=>!Number.isSafeInteger(e)||e<=0)||n.some(e=>!Number.isSafeInteger(e)||e<=0))throw Error(`ECDSA registration bootstrap returned incomplete participantIds`);if(t.length!==n.length||t.some((e,t)=>e!==n[t]))throw Error(`ECDSA registration bootstrap participantIds mismatch`);return n}function Gn(e){let t=e.clientBootstrap,n=e.serverBootstrap;Y({field:`derivationClientSharePublicKey33B64u`,expected:t.derivationClientSharePublicKey33B64u,actual:n.publicIdentity.derivationClientSharePublicKey33B64u});let r=Y({field:`contextBinding32B64u`,expected:t.contextBinding32B64u,actual:n.contextBinding32B64u}),i=Y({field:`walletId`,expected:t.walletId,actual:n.walletId}),a=Y({field:`evmFamilySigningKeySlotId`,expected:t.evmFamilySigningKeySlotId,actual:n.evmFamilySigningKeySlotId});Y({field:`activationEpoch`,expected:e.activationEpoch,actual:n.activationEpoch});let o=Wn({expected:t.participantIds,actual:n.participantIds}),s=Le(n.routerAbEcdsaDerivationNormalSigning),c=String(n.ecdsaThresholdKeyId||``).trim(),l=String(n.keyHandle||``).trim(),u=String(n.signingRootId||``).trim(),d=String(n.signingRootVersion||``).trim(),f=String(n.applicationBindingDigestB64u||``).trim(),p=String(n.thresholdEcdsaPublicKeyB64u||``).trim(),m=String(n.ethereumAddress||``).trim(),h=String(n.relayerKeyId||``).trim(),ee=String(n.relayerVerifyingShareB64u||``).trim(),g=Math.floor(Number(n.relayerShareRetryCounter));if(!i||!a||!l||!c||!u||!d||!f||!p||!m||!h||!ee||!Number.isSafeInteger(g)||g<0||!o.length||o.some(e=>!Number.isSafeInteger(e)||e<=0))throw Error(`ECDSA registration bootstrap returned incomplete session material`);return{walletId:i,evmFamilySigningKeySlotId:a,ecdsaThresholdKeyId:c,relayerKeyId:h,applicationBindingDigestB64u:f,contextBinding32B64u:r,publicIdentity:n.publicIdentity,relayerShareRetryCounter:g,keyHandle:l,signingRootId:u,signingRootVersion:d,thresholdEcdsaPublicKeyB64u:p,ethereumAddress:m,relayerVerifyingShareB64u:ee,participantIds:o,routerAbEcdsaDerivationNormalSigning:s}}function Kn(e){let t=`Wallet ECDSA key-facts inventory`,n=z({responseName:t,field:`body`,value:e.value});if(H(n,[`ok`,`ecdsaKeyIdentityTargets`,`diagnostics`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=U(B(n,`ecdsaKeyIdentityTargets`,t),`${t} ecdsaKeyIdentityTargets`);return{ok:!0,records:yt({walletId:e.walletId,rpId:e.rpId,records:r}),diagnostics:B(n,`diagnostics`,t)}}async function qn(e){let t=String(e.auth?.publishableKey||``).trim(),n=String(e.auth?.environmentId||``).trim();if(!t||!n)return{ok:!1,code:`invalid_body`,message:`registration setup requires a publishable key and environment id`};let r=Ln(e.request),i=await be({relayerUrl:e.relayerUrl,publishableKey:t,environmentId:n}),a=await ge.begin(i,r),o=Fn(await L({relayerUrl:e.relayerUrl,path:g,headers:{...e.headers,Authorization:`Bearer ${t}`,[Lt]:n},body:{registrationOperationId:a.operationId,wallet:r.wallet,signerSelection:r.signerSelection,authMethod:r.authMethod},...e.onServerTiming?{onServerTiming:e.onServerTiming}:{}}));return o.ok?(await zn({response:o,...e.request.wallet?{requestedWallet:e.request.wallet}:{},request:r}),await ge.accept(a,o),o):o}async function Jn(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer intent`);let n=String(e.auth.publishableKey||``).trim(),r=String(e.auth.environmentId||``).trim();if(!n||!r)throw Error(`add-signer intent requires a publishable key and environment id`);return xn(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/intent`,headers:{Authorization:`Bearer ${n}`,[Lt]:r},body:e.request}))}function Yn(e){let t=`Wallet auth-method revoke`,n=z({responseName:t,field:`body`,value:e});if(B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=c(B(n,`walletId`,t));if(!r.ok)throw Error(`${t} response has invalid walletId`);let i=z({responseName:t,field:`authMethod`,value:B(n,`authMethod`,t)});if(H(i,[`kind`,`status`],`${t} response authMethod`),B(i,`status`,t)!==`revoked`)throw Error(`${t} response has invalid authMethod status`);let a=B(i,`kind`,t);switch(a){case`passkey`:return H(n,[`ok`,`walletId`,`authMethod`,`rpId`],t),{ok:!0,walletId:r.value,authMethod:{kind:`passkey`,status:`revoked`},rpId:F(B(n,`rpId`,t),t)};case`email_otp`:case`voiceid`:return H(n,[`ok`,`walletId`,`authMethod`],t),{ok:!0,walletId:r.value,authMethod:{kind:a,status:`revoked`}};default:throw Error(`${t} response has invalid authMethod kind`)}}async function Xn(e){let t=String(e.walletId||``).trim(),n=String(e.walletAuthMethodId||``).trim();if(!t||!n)throw Error(`auth-method revoke requires a wallet and a target method`);let r={relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/${encodeURIComponent(n)}/revoke`,body:{walletId:t,walletAuthMethodId:n,requestedAtMs:e.requestedAtMs,sourceProof:e.sourceProof}},i;try{i=await L(r)}catch(e){if(!(e instanceof TypeError))throw e;i=await L(r)}return Yn(i)}async function Zn(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-auth-method intent`);let n=String(e.auth.publishableKey||``).trim(),r=String(e.auth.environmentId||``).trim();if(!n||!r)throw Error(`add-auth-method intent requires a publishable key and environment id`);let i=e.request.caller.caller===`same_device_addition`?{caller:`same_device_addition`,source:e.request.caller.source}:{caller:`linked_device_ceremony`};return bn(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/intent`,headers:{Authorization:`Bearer ${n}`,[Lt]:r},body:{walletId:e.request.walletId,rpId:e.request.rpId,authMethod:e.request.authMethod,...i}}))}function Qn(e){let t=`Wallet registration respond`,n=z({responseName:t,field:`body`,value:e});if(B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=A({responseName:t,field:`registrationCeremonyId`,value:B(n,`registrationCeremonyId`,t)}),i=B(n,`kind`,t);if(i!==`evm_family_ecdsa`&&i!==`near_ed25519_and_evm_family_ecdsa`&&i!==`near_ed25519`)throw Error(`${t} response kind is invalid`);let a=i!==`near_ed25519`,o=i!==`evm_family_ecdsa`;H(n,[`ok`,`registrationCeremonyId`,`kind`,...a?[`ecdsa`]:[],...o?[`ed25519`]:[]],t);let s=V(n,`ed25519`,t);if(o&&s===void 0)throw Error(`${t} signer plan is missing its ed25519 deferred work`);if(!a)return{ok:!0,registrationCeremonyId:r,kind:`near_ed25519`,ed25519:$n(s)};let c=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,t)});if(H(c,[`kind`,`strictResult`],`${t} ecdsa`),B(c,`kind`,`${t} ecdsa`)!==`router_ab_ecdsa_registration_forwarded_v1`)throw Error(`${t} ecdsa kind is invalid`);let l=o?er(s):null,u={kind:`router_ab_ecdsa_registration_forwarded_v1`,strictResult:ze(B(c,`strictResult`,`${t} ecdsa`))};return l?{ok:!0,registrationCeremonyId:r,kind:`near_ed25519_and_evm_family_ecdsa`,ecdsa:u,ed25519:l}:{ok:!0,registrationCeremonyId:r,kind:`evm_family_ecdsa`,ecdsa:u}}function $n(e){let t=`Wallet registration respond ed25519 admission`,n=z({responseName:t,field:`ed25519`,value:e}),r=B(n,`status`,t);if(r!==`admitted`&&r!==`executed`)throw Error(`${t} status is invalid`);H(n,[`status`,`admissionRequest`,`admissionReceipt`,...r===`executed`?[`activationResult`]:[]],t);let i=S(B(n,`admissionRequest`,t)),a=Ie(B(n,`admissionReceipt`,t));if(!i.ok||!a.ok)throw Error(`${t} request or receipt is invalid`);if(r===`admitted`)return{status:`admitted`,admissionRequest:i.value,admissionReceipt:a.value};let o=Pe(B(n,`activationResult`,t));if(!o.ok)throw Error(`${t} activationResult is invalid`);return{status:`executed`,admissionRequest:i.value,admissionReceipt:a.value,activationResult:o.value}}function er(e){let t=`Wallet registration respond ed25519`,n=z({responseName:t,field:`ed25519`,value:e});if(H(n,[`status`,`admissionRequest`],t),B(n,`status`,t)!==`deferred`)throw Error(`${t} status is invalid`);let r=S(B(n,`admissionRequest`,t));if(!r.ok)throw Error(`${t} admissionRequest is invalid`);return{status:`deferred`,admissionRequest:r.value}}function tr(e){let t={registrationCeremonyId:e.registrationCeremonyId,signedSetup:e.signedSetup,kind:e.signerPlanKind};switch(e.kind){case`passkey`:t.webauthn_registration=e.webauthnRegistration;break;case`email_otp`:t.emailOtpRegistrationProof=e.emailOtpRegistrationProof;break}return t.ecdsa=e.ecdsa,e.ed25519Execution!==void 0&&(t.ed25519Execution=e.ed25519Execution),t}async function nr(e){return Qn(await L({relayerUrl:e.relayerUrl,path:Pt,headers:e.headers,body:tr(e),onServerTiming:e.onServerTiming}))}function rr(e,t){let n=rt(e);if(n===null||n.session.walletId!==t)throw Error(`Wallet registration established session direct session result is invalid`);return n}function ir(e,t){let n=`Wallet registration activate`,r=V(e,`registrationDiagnostics`,n),i=V(e,`rpId`,n),a=V(e,`walletCustody`,n),o=V(e,`custodyKeyManifestDigestB64u`,n);return{ok:B(e,`ok`,n),walletId:B(e,`walletId`,n),authority:B(e,`authority`,n),foundingAuthority:B(e,`foundingAuthority`,n),foundingAuthMethod:B(e,`foundingAuthMethod`,n),...r===void 0?{}:{registrationDiagnostics:r},...i===void 0?{}:{rpId:i},authMethod:B(e,`authMethod`,n),...a===void 0?{}:{walletCustody:a},...o===void 0?{}:{custodyKeyManifestDigestB64u:o},kind:`evm_family_ecdsa`,ecdsa:{walletKeys:B(t,`walletKeys`,n)}}}function ar(e){let t=`Wallet registration NEAR provisioning`,n=V(e,`registrationDiagnostics`,t),r=V(e,`rpId`,t),i=V(e,`walletCustody`,t),a=V(e,`custodyKeyManifestDigestB64u`,t);return{ok:B(e,`ok`,t),walletId:B(e,`walletId`,t),authority:B(e,`authority`,t),foundingAuthority:B(e,`foundingAuthority`,t),foundingAuthMethod:B(e,`foundingAuthMethod`,t),...n===void 0?{}:{registrationDiagnostics:n},...r===void 0?{}:{rpId:r},authMethod:B(e,`authMethod`,t),...i===void 0?{}:{walletCustody:i},...a===void 0?{}:{custodyKeyManifestDigestB64u:a},kind:`near_ed25519`,authorityScope:B(e,`authorityScope`,t),accountProvisioning:B(e,`accountProvisioning`,t),resolvedAccount:B(e,`resolvedAccount`,t),ed25519:B(e,`ed25519`,t)}}function or(e){let t=`Wallet registration activate`,n=z({responseName:t,field:`body`,value:e}),r=B(n,`kind`,t),i=V(n,`nearProvisioning`,t),a=V(n,`registrationEstablishedSession`,t);if(r!==`evm_family_ecdsa`)throw Error(`${t} response has invalid kind`);let o=z({responseName:t,field:`ecdsa`,value:B(n,`ecdsa`,t)});H(n,[`ok`,`walletId`,`authority`,`foundingAuthority`,`foundingAuthMethod`,`registrationDiagnostics`,`rpId`,`authMethod`,`walletCustody`,`custodyKeyManifestDigestB64u`,`kind`,`ecdsa`,`nearProvisioning`,`registrationEstablishedSession`],t),H(o,[`walletKeys`,`activation`,`bootstrap`],t);let s=V(o,`activation`,t),c=V(o,`bootstrap`,t);if(i!==void 0){let e=z({responseName:t,field:`nearProvisioning`,value:i});if(H(e,[`status`],`${t} nearProvisioning`),B(e,`status`,`${t} nearProvisioning`)!==`near_pending`)throw Error(`${t} nearProvisioning status is invalid`)}if(s===void 0||c===void 0)throw Error(`${t} is missing the activation payload the client needs to build its ECDSA session`);let l=Nt({value:ir(n,o),expectedKind:`evm_family_ecdsa`});if(!l.ok||l.kind!==`evm_family_ecdsa`)throw Error(`${t} did not return an activated ECDSA wallet`);let u=rr(a,l.walletId);return{...l,ecdsa:{...l.ecdsa,activation:He(s),bootstrap:nt(c)},registrationEstablishedSession:u,...i===void 0?{}:{nearProvisioning:{status:`near_pending`}}}}function sr(e){let t={registrationCeremonyId:e.registrationCeremonyId,kind:e.signerPlanKind,signedSetup:e.signedSetup,idempotencyKey:e.idempotencyKey};return t.ecdsa=e.ecdsa,e.emailOtpEnrollment&&(t.emailOtpEnrollment=e.emailOtpEnrollment),e.walletCustodyCommit&&(t.walletCustodyCommit=e.walletCustodyCommit),t}async function cr(e){return or(await L({relayerUrl:e.relayerUrl,path:Ft,headers:e.headers,body:sr(e),onServerTiming:e.onServerTiming}))}function lr(e){let t=`Wallet registration session seal`,n=z({responseName:t,field:`body`,value:e});H(n,[`ciphertext`,`keyVersion`,`expiresAtMs`,`remainingUses`],t);let r=B(n,`ciphertext`,t),i=B(n,`keyVersion`,t),a=B(n,`expiresAtMs`,t),o=B(n,`remainingUses`,t);if(typeof r!=`string`||!r.trim()||typeof i!=`string`||!i.trim()||typeof a!=`number`||!Number.isSafeInteger(a)||a<=0||typeof o!=`number`||!Number.isSafeInteger(o)||o<0)throw Error(`${t} is invalid`);return{ciphertext:r,keyVersion:i,expiresAtMs:a,remainingUses:o}}function ur(e){let t=`Wallet registration NEAR provisioning`,n=z({responseName:t,field:`body`,value:e});if(B(n,`ok`,t)!==!0){H(n,[`ok`,`code`,`message`,`nearProvisioning`],t);let e=B(n,`code`,t),r=B(n,`message`,t);if(typeof e!=`string`||typeof r!=`string`)throw Error(`${t} failure is invalid`);let i=V(n,`nearProvisioning`,t);if(i!==void 0){let n=z({responseName:t,field:`nearProvisioning`,value:i});if(H(n,[`status`],`${t} nearProvisioning`),B(n,`status`,`${t} nearProvisioning`)!==`near_failed_retryable`)throw Error(`${t} failure status is invalid`);return{ok:!1,code:e,message:r,nearProvisioning:{status:`near_failed_retryable`}}}return{ok:!1,code:e,message:r}}H(n,[`ok`,`walletId`,`authority`,`foundingAuthority`,`foundingAuthMethod`,`registrationDiagnostics`,`rpId`,`authMethod`,`walletCustody`,`custodyKeyManifestDigestB64u`,`kind`,`accountProvisioning`,`resolvedAccount`,`ed25519`,`authorityScope`,`nearProvisioning`,`registrationEstablishedSession`,`sessionSeal`],t);let r=z({responseName:t,field:`nearProvisioning`,value:B(n,`nearProvisioning`,t)});if(H(r,[`status`],`${t} nearProvisioning`),B(r,`status`,`${t} nearProvisioning`)!==`near_ready`)throw Error(`${t} success status is invalid`);let i=Nt({value:ar(n),expectedKind:`near_ed25519`});if(!i.ok||i.kind!==`near_ed25519`)throw Error(`${t} did not return a finalized Ed25519 wallet`);let a=V(n,`sessionSeal`,t),o=rr(B(n,`registrationEstablishedSession`,t),i.walletId);if(yn(i)){if(a!==void 0)throw Error(`${t} returned a session seal for an Email OTP authority`);return{...i,nearProvisioning:{status:`near_ready`},registrationEstablishedSession:o}}let s={...i,nearProvisioning:{status:`near_ready`},registrationEstablishedSession:o};return a===void 0?s:{...s,sessionSeal:lr(a)}}async function dr(e){let t={registrationCeremonyId:e.registrationCeremonyId,signedSetup:e.signedSetup,idempotencyKey:e.idempotencyKey,ed25519:e.ed25519};return e.auth.kind===`email_otp`&&(t.emailOtpEnrollment=e.auth.enrollment),e.walletCustodyCommit&&(t.walletCustodyCommit=e.walletCustodyCommit),e.sessionSeal&&(t.sessionSeal=e.sessionSeal),ur(await L({relayerUrl:e.relayerUrl,path:It,headers:e.headers,body:t,...e.onServerTiming?{onServerTiming:e.onServerTiming}:{}}))}function fr(e){switch(e.kind){case`webauthn_assertion`:return{kind:`webauthn_assertion`,rpId:e.rpId,credential:e.credential,expectedChallengeDigestB64u:e.expectedChallengeDigestB64u}}}function pr(e){switch(e.kind){case`webauthn_assertion`:return{kind:`webauthn_assertion`,rpId:e.rpId,credential:e.credential,expectedChallengeDigestB64u:e.expectedChallengeDigestB64u};case`wallet_session`:return{kind:`wallet_session`};case`email_otp`:return{kind:`email_otp`,challengeId:e.challengeId,otpCode:e.otpCode,expectedChallengeDigestB64u:e.expectedChallengeDigestB64u}}}function mr(e){switch(e.kind){case`passkey`:return{};case`email_otp`:return{emailOtpRegistrationProof:e.emailOtpRegistrationProof}}}async function hr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer start`);return Vn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/start`,body:{addSignerIntentGrant:e.addSignerIntentGrant,addSignerIntentDigestB64u:e.addSignerIntentDigestB64u,intent:e.intent,auth:fr(e.auth)}}),expectedIntent:e.intent})}function gr(e){let t=`Email OTP enrollment code`,n=z({responseName:t,field:`body`,value:e});if(H(n,[`ok`,`challengeId`,`expiresAtMs`,`emailHint`],t),B(n,`ok`,t)!==!0)throw Error(`${t} response is not successful`);let r=B(n,`challengeId`,t);if(typeof r!=`string`||!r.trim())throw Error(`${t} response missing challengeId`);let i=B(n,`expiresAtMs`,t);if(typeof i!=`number`||!Number.isSafeInteger(i)||i<1)throw Error(`${t} response has invalid expiresAtMs`);let a=B(n,`emailHint`,t);if(typeof a!=`string`)throw Error(`${t} response has invalid emailHint`);return{challengeId:r.trim(),expiresAtMs:i,emailHint:a}}async function _r(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for the Email OTP enrollment code`);return gr(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/email-otp/challenge`,body:{addAuthMethodIntentGrant:e.addAuthMethodIntentGrant,addAuthMethodIntentDigestB64u:e.addAuthMethodIntentDigestB64u}}))}async function vr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-auth-method start`);return Cn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/start`,body:{addAuthMethodIntentGrant:e.addAuthMethodIntentGrant,addAuthMethodIntentDigestB64u:e.addAuthMethodIntentDigestB64u,intent:e.intent,auth:pr(e.auth),...mr(e.authority)},...e.auth.kind===`wallet_session`?{headers:{authorization:`Bearer ${e.auth.walletSessionToken}`}}:{}}),expectedIntent:e.intent})}async function yr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer ECDSA respond`);return _n(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/derivation/respond`,body:{addSignerCeremonyId:e.addSignerCeremonyId,ecdsa:e.ecdsa}}))}async function br(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer ECDSA activation`);return vn(await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/derivation/activate`,body:{addSignerCeremonyId:e.addSignerCeremonyId,ecdsa:{kind:`router_ab_ecdsa_registration_activation_v1`,activationCorrelationId:e.activationCorrelationId,publicFacts:e.publicFacts,expectedActivationRequestDigest:e.expectedActivationRequestDigest}}}))}function xr(e){switch(e.kind){case`near_ed25519`:return{addSignerCeremonyId:e.addSignerCeremonyId,idempotencyKey:e.idempotencyKey,kind:e.kind,ed25519:e.ed25519,custodyKeySet:e.custodyKeySet};case`evm_family_ecdsa`:return{addSignerCeremonyId:e.addSignerCeremonyId,idempotencyKey:e.idempotencyKey,kind:e.kind,ecdsa:e.ecdsa,custodyKeySet:e.custodyKeySet}}}async function Sr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-signer finalize`);return Hn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/finalize`,body:xr(e)}),expectedKind:e.kind})}async function Cr(e){let t=String(e.walletId||``).trim();if(!t)throw Error(`walletId is required for add-auth-method finalize`);let n=e.custodyEnvelope===void 0?{addAuthMethodCeremonyId:e.addAuthMethodCeremonyId}:e.webauthnRegistration===void 0?{addAuthMethodCeremonyId:e.addAuthMethodCeremonyId,custodyEnvelope:y(e.custodyEnvelope),emailOtpTarget:e.emailOtpTarget}:{addAuthMethodCeremonyId:e.addAuthMethodCeremonyId,webauthnRegistration:e.webauthnRegistration,custodyEnvelope:y(e.custodyEnvelope)},r={relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/auth-methods/finalize`,body:n},i;try{i=await L(r)}catch(e){if(!(e instanceof TypeError))throw e;i=await L(r)}return Sn(i)}async function wr(e){let t=String(e.walletId||``).trim(),n=String(e.rpId||``).trim(),r=e.operationCredential;if(!t)throw Error(`walletId is required for ECDSA key-facts inventory`);if(!n)throw Error(`rpId is required for ECDSA key-facts inventory`);return Kn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/ecdsa/key-facts/inventory`,headers:p(r),body:{rpId:n,keyTargets:e.keyTargets,auth:{kind:r.kind,walletSessionId:r.walletSessionId}}}),walletId:e.walletId,rpId:n})}async function Tr(e){let t=String(e.walletId||``).trim(),n=String(e.rpId||``).trim(),r=String(e.serverNonceB64u||``).trim(),i=String(e.expectedChallengeDigestB64u||``).trim();if(!t)throw Error(`walletId is required for ECDSA key-facts inventory`);if(!n)throw Error(`rpId is required for ECDSA key-facts inventory`);if(!r||!i)throw Error(`WebAuthn ECDSA key-facts inventory requires challenge binding`);return Kn({value:await L({relayerUrl:e.relayerUrl,path:`/wallets/${encodeURIComponent(t)}/signers/ecdsa/key-facts/inventory`,body:{rpId:n,keyTargets:e.keyTargets,auth:{kind:`webauthn_assertion`,credential:e.credential,serverNonceB64u:r,expectedChallengeDigestB64u:i,...e.runtimePolicyScope?{runtimePolicyScope:e.runtimePolicyScope}:{}}}}),walletId:e.walletId,rpId:n})}function X(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let n=Object.keys(e);return n.length===t.length&&n.every(e=>t.includes(e))}const Er=[`kind`,`walletId`,`authorityId`,`walletAuthMethodId`,`mintId`,`authorizationId`,`walletSessionId`,`quotaId`],Dr=[`ok`,`code`,`message`,`next`,`committed`],Or=[`ok`,`code`,`message`,`next`,`kind`,`walletId`,`authorityId`,`walletAuthMethodId`,`mintId`,`authorizationId`,`walletSessionId`,`quotaId`],kr=[...Or,`unlocked`,`unlockBackend`];function Ar(e){if(!u(e)||!X(e,Er)||e.kind!==`already_committed_wallet_session_v1`)return null;let n=c(e.walletId),r=i(e.authorityId),a=t(e.walletAuthMethodId),o=de(e.mintId),s=fe(e.authorizationId),l=v(e.walletSessionId),d=_(e.quotaId);return!n.ok||!r.ok||!a.ok||!o.ok||!s.ok||!l.ok||!d.ok?null:{kind:`already_committed_wallet_session_v1`,walletId:n.value,authorityId:r.value,walletAuthMethodId:a.value,mintId:o.value,authorizationId:s.value,walletSessionId:l.value,quotaId:d.value}}function jr(e){return e.ok!==!1||e.code!==`already_committed`||typeof e.message!=`string`||e.next!==`unlock_exact_method`?null:{ok:!1,code:`already_committed`,message:e.message,next:`unlock_exact_method`}}function Mr(e){return!X(e,Or)&&!X(e,kr)||X(e,kr)&&(e.unlocked!==!1||e.unlockBackend!==`passkey`&&e.unlockBackend!==`email_otp`)||e.kind!==`already_committed`?null:Ar({kind:`already_committed_wallet_session_v1`,walletId:e.walletId,authorityId:e.authorityId,walletAuthMethodId:e.walletAuthMethodId,mintId:e.mintId,authorizationId:e.authorizationId,walletSessionId:e.walletSessionId,quotaId:e.quotaId})}function Nr(e,t){return{ok:!1,code:`already_committed`,message:e.message,next:`unlock_exact_method`,committed:t}}function Pr(e){if(!u(e))return null;let t=jr(e);if(!t||!X(e,Dr))return null;let n=Ar(e.committed);return n?Nr(t,n):null}function Fr(e){if(!u(e))return null;let t=jr(e);if(!t)return null;let n=Mr(e);return n?Nr(t,n):null}var Z=class{retainProof(){return!0}constructor(){this.retainProof()}},Ir=class extends Z{kind=`use_live_runtime`;capability;materialOwner;authority;runtime;materialActivation;constructor(e){super(),this.capability=e.materialActivation.capability,this.materialOwner=e.materialActivation.materialOwner,this.authority=e.authority,this.runtime=e.runtime,this.materialActivation=e.materialActivation}},Lr=class extends Z{kind=`rehydrate_material_activation`;capability;materialOwner;authority;materialActivation;sealedMaterial;constructor(e){super(),this.capability=e.materialActivation.capability,this.materialOwner=e.materialActivation.materialOwner,this.authority=e.authority,this.materialActivation=e.materialActivation,this.sealedMaterial=e.sealedMaterial}},Rr=class extends Z{kind=`reauthorize_public_anchor`;capability;materialOwner;authority;retirement;publicReauthAnchor;constructor(e){super(),this.capability=e.publicReauthAnchor.capability,this.materialOwner=e.publicReauthAnchor.materialOwner,this.authority=e.publicReauthAnchor.authority,this.retirement=e.retirement,this.publicReauthAnchor=e.publicReauthAnchor}},zr=class extends Z{kind=`blocked`},Br=class extends zr{capability=null;reason=`missing_capability`},Vr=class extends zr{capability;reason;constructor(e){super(),this.capability=e.capability,this.reason=e.reason}};function Hr(e){return new Ir(e)}function Ur(e){return new Lr(e)}function Wr(e){return new Rr(e)}function Q(e){return e.reason===`missing_capability`?new Br:new Vr(e)}function Gr(e){if(!e.ok)throw Error(e.error.message);return e.value}function Kr(e){return e.materialActivation}function qr(e){return Gr(l(`near-ed25519-yao:${e.activationId}`))}function $(e,t){let n=e.sealed.kind===`available`?e.sealed.materialActivation.capability:e.runtime.kind===`live`?e.runtime.materialActivation.capability:e.publicLocator.kind===`available`?e.publicLocator.materialActivation.capability:null;return Q(n?{capability:n,reason:t}:{capability:null,reason:`missing_capability`})}function Jr(e){switch(e.publicLocator.kind){case`missing`:return Q({capability:null,reason:`missing_capability`});case`retired`:return Wr({retirement:e.publicLocator.retirement,publicReauthAnchor:e.publicLocator.publicReauthAnchor});case`conflict`:return $(e,`exact_record_conflict`);case`corrupt`:return $(e,`corrupt`);case`unavailable`:return Q({capability:e.publicLocator.capability,reason:`persistence_unavailable`});case`available`:break;default:e.publicLocator}let t=e.publicLocator.materialActivation;if(String(t.materialOwner)!==e.publicLocator.walletId)return $(e,`binding_mismatch`);switch(e.runtime.kind){case`live`:return s(t,e.runtime.materialActivation)?Hr({authority:e.publicLocator.authority,runtime:e.runtime.runtime,materialActivation:t}):$(e,`binding_mismatch`);case`absent`:break;default:e.runtime}switch(e.sealed.kind){case`missing`:return $(e,`missing_material`);case`corrupt`:return $(e,`corrupt`);case`available`:break;default:e.sealed}let n=e.sealed;if(String(n.authority.walletId)!==e.publicLocator.walletId||String(n.authority.authorityDigest)!==String(e.publicLocator.authority.authorityDigest)||String(n.materialActivation.materialOwner)!==e.publicLocator.walletId||!s(n.materialActivation,e.publicLocator.materialActivation))return $(e,`binding_mismatch`);switch(e.unlockSource.kind){case`unavailable`:return $(e,`missing_material`);case`available`:return String(e.unlockSource.authority.walletId)!==String(n.authority.walletId)||String(e.unlockSource.authority.authorityDigest)!==String(n.authority.authorityDigest)?$(e,`binding_mismatch`):Ur({authority:n.authority,materialActivation:n.materialActivation,sealedMaterial:n.sealedMaterial});default:e.unlockSource}throw Error(`Unsupported Near Ed25519 unlock-source observation`)}export{_t as A,_r as C,qn as D,Xn as E,vr as O,Rt as S,nr as T,Cr as _,Ur as a,yn as b,Fr as c,cr as d,dr as f,Tr as g,wr as h,Q as i,hr as k,X as l,Jn as m,qr as n,Hr as o,Zn as p,Jr as r,Pr as s,Kr as t,br as u,Sr as v,yr as w,Gn as x,$t as y};