@seams/wallet 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/SeamsWeb.js +2 -2
  3. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +25 -5
  4. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -2
  5. package/dist/esm/SeamsWeb/walletIframe/client/router.js +5 -2
  6. package/dist/esm/core/rpcClients/evm/EvmClient.js +11 -9
  7. package/dist/esm/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +1 -1
  8. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +20 -9
  9. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +107 -43
  10. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +1 -1
  11. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-receipt.js +36 -6
  12. package/dist/esm/core/ui/messages.js +9 -14
  13. package/dist/esm/plugins/SeamsWeb/walletIframe/sanitization.js +18 -0
  14. package/dist/esm/plugins/plugin-utils.js +5 -2
  15. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +3 -9
  16. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +2 -2
  17. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +23 -9
  18. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +376 -84
  19. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +87 -167
  20. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +11 -9
  21. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +76 -74
  22. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +23 -22
  23. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +1 -5
  24. package/dist/esm/react/components/AccountMenuButton/icons/MapPinIcon.js +12 -0
  25. package/dist/esm/react/components/AccountMenuButton/index.js +13 -2
  26. package/dist/esm/react/styles/styles.css +452 -162
  27. package/dist/esm/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  28. package/dist/esm/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  29. package/dist/esm/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  30. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +1 -0
  31. package/dist/esm/sdk/adapters-CgJpSAxH.js +2 -0
  32. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  33. package/dist/esm/sdk/challengeDelivery-C88JNwKf.js +1 -0
  34. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  35. package/dist/esm/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  36. package/dist/esm/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  37. package/dist/esm/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  38. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  39. package/dist/{public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js → esm/sdk/ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  40. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  41. package/dist/esm/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  42. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  43. package/dist/esm/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  44. package/dist/esm/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  45. package/dist/esm/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-C9n-62Pi.js} +1 -1
  46. package/dist/esm/sdk/exportKeypairOperation-Du9HKB8f.js +1 -0
  47. package/dist/esm/sdk/host-DoftJdVQ.js +1 -0
  48. package/dist/esm/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  49. package/dist/esm/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  50. package/dist/esm/sdk/localOnly-CvFSZFUy.js +1 -0
  51. package/dist/esm/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  52. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js +2 -0
  53. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  54. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  55. package/dist/esm/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  56. package/dist/esm/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  57. package/dist/esm/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  58. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +1 -0
  59. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +1 -0
  60. package/dist/esm/sdk/{singletons-CAsc9LvA.js → presignatures-DGLNs29C.js} +1 -1
  61. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  62. package/dist/esm/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  63. package/dist/esm/sdk/{registration-DknFwoqn.js → registration-CIxJvbTo.js} +1 -1
  64. package/dist/esm/sdk/registration-CeOmKyCG.js +1 -0
  65. package/dist/esm/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  66. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +1 -0
  67. package/dist/esm/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  68. package/dist/esm/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  69. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  70. package/dist/esm/sdk/runtime-auth-C0V-5znH.js +1 -0
  71. package/dist/{public/sdk/runtime-device-link-Dn_5hPCq.js → esm/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  72. package/dist/{public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  73. package/dist/esm/sdk/runtime-email-otp-DXuxFOjL.js +1 -0
  74. package/dist/esm/sdk/{runtime-export-Brz53_oi.js → runtime-export-Ba12ChDI.js} +1 -1
  75. package/dist/{public/sdk/runtime-near-Da_xFUXx.js → esm/sdk/runtime-near-DRrdWzmr.js} +1 -1
  76. package/dist/esm/sdk/runtime-preferences-BWyhRaBA.js +1 -0
  77. package/dist/esm/sdk/runtime-recovery-DlJlaZlf.js +1 -0
  78. package/dist/esm/sdk/runtime-recovery-codes-CuqYWqK7.js +1 -0
  79. package/dist/esm/sdk/secp256k1-CYu8ENjP.js +1 -0
  80. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  81. package/dist/esm/sdk/shared-B95wnpoD.js +6 -0
  82. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +1 -0
  83. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  84. package/dist/esm/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  85. package/dist/esm/sdk/signNear-B_UcqMRf.js +1 -0
  86. package/dist/esm/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  87. package/dist/esm/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  88. package/dist/esm/sdk/signingFlow-Co_QtuHK.js +2 -0
  89. package/dist/esm/sdk/signingQueue-Cj9sCJLj.js +1 -0
  90. package/dist/esm/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  91. package/dist/esm/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  92. package/dist/esm/sdk/transaction-activity-CpDMkSPm.js +1 -0
  93. package/dist/{public/sdk/transactionState-lB2qpkOm.js → esm/sdk/transactionState-BaFSiA9t.js} +1 -1
  94. package/dist/esm/sdk/tx-confirm-ui.js +186 -71
  95. package/dist/esm/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  96. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  97. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  98. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  99. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  100. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +1 -0
  101. package/dist/esm/sdk/wallet-ui.css +1 -1
  102. package/dist/esm/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  103. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  104. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  105. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  106. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +1 -0
  107. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  108. package/dist/esm/sdk/walletRecoveryAdminProof-CtH8_lph.js +1 -0
  109. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  110. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  111. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  112. package/dist/esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  113. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  114. package/dist/{public/sdk/webauthnP256-_ajaNl90.js → esm/sdk/webauthnP256-unqBoZCk.js} +1 -1
  115. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +2 -3
  116. package/dist/esm/shared-ts/src/utils/evmRpcResults.js +5 -3
  117. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +2 -1
  118. package/dist/public/headers.manifest.json +1 -1
  119. package/dist/public/sdk/{ConfirmationDrawer-DCw0m-Iv.js → ConfirmationDrawer-Ck33ZmU-.js} +1 -1
  120. package/dist/public/sdk/{NonceCoordinator-Dq-FZpBz.js → NonceCoordinator-Do23iTzQ.js} +1 -1
  121. package/dist/public/sdk/accountLifecycle-CXTlwnAS.js +1 -0
  122. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +1 -0
  123. package/dist/public/sdk/adapters-CgJpSAxH.js +2 -0
  124. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +2 -0
  125. package/dist/public/sdk/challengeDelivery-C88JNwKf.js +1 -0
  126. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +1 -0
  127. package/dist/public/sdk/collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js +1 -0
  128. package/dist/public/sdk/{commitQueue-BW7BpYyA.js → commitQueue-BQPOhyGl.js} +1 -1
  129. package/dist/public/sdk/{display-WtILOPQR.js → display-Dtugjeya.js} +1 -1
  130. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +1 -0
  131. package/dist/{esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js → public/sdk/ecdsaDerivationClientWasm-D1HzwUgV.js} +1 -1
  132. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +1 -0
  133. package/dist/public/sdk/ecdsaWalletRecords-BmhuJF1y.js +1 -0
  134. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +1 -0
  135. package/dist/public/sdk/{enrichDisplayModelWithAbi-DSj4NAlY.js → enrichDisplayModelWithAbi-D0o0IL7_.js} +1 -1
  136. package/dist/public/sdk/{evmCryptoWasm-DeobzyP-.js → evmCryptoWasm-S2gL5ht4.js} +1 -1
  137. package/dist/public/sdk/{export-viewer-host-DsdzagKK.js → export-viewer-host-C9n-62Pi.js} +1 -1
  138. package/dist/public/sdk/exportKeypairOperation-Du9HKB8f.js +1 -0
  139. package/dist/public/sdk/host-DoftJdVQ.js +1 -0
  140. package/dist/public/sdk/keyMaterialEnvelope-B3v6HLtz.js +1 -0
  141. package/dist/public/sdk/{lanes-BzU7cv2T.js → lanes-l274pbT5.js} +1 -1
  142. package/dist/public/sdk/localOnly-CvFSZFUy.js +1 -0
  143. package/dist/public/sdk/{mountExportPrivateKeySurface-DQzFzhNu.js → mountExportPrivateKeySurface-DdJHWwqY.js} +1 -1
  144. package/dist/public/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js +2 -0
  145. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +1 -0
  146. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +1 -0
  147. package/dist/public/sdk/{nonceLaneKeys-BzMBVxMU.js → nonceLaneKeys-CR2XEvnk.js} +1 -1
  148. package/dist/public/sdk/{normalization-Ct9-AY13.js → normalization-Ctkj80dW.js} +1 -1
  149. package/dist/public/sdk/{operationFingerprint-C4VX-0NI.js → operationFingerprint-DRPONhBD.js} +1 -1
  150. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +1 -0
  151. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +1 -0
  152. package/dist/public/sdk/{singletons-CAsc9LvA.js → presignatures-DGLNs29C.js} +1 -1
  153. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +1 -0
  154. package/dist/public/sdk/recoveryAuthorization-BplZWc-N.js +1 -0
  155. package/dist/public/sdk/{registration-DknFwoqn.js → registration-CIxJvbTo.js} +1 -1
  156. package/dist/public/sdk/registration-CeOmKyCG.js +1 -0
  157. package/dist/public/sdk/registrationAccounts-BfO6Ztye.js +1 -0
  158. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +1 -0
  159. package/dist/public/sdk/{registrationSignerPlan-BHkqlian.js → registrationSignerPlan-B66FjqIp.js} +1 -1
  160. package/dist/public/sdk/{requireStepUpAuth-CnSCFSOZ.js → requireStepUpAuth-DsNLml1i.js} +1 -1
  161. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +1 -0
  162. package/dist/public/sdk/runtime-auth-C0V-5znH.js +1 -0
  163. package/dist/{esm/sdk/runtime-device-link-Dn_5hPCq.js → public/sdk/runtime-device-link-B1jpHQSF.js} +1 -1
  164. package/dist/{esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js → public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js} +1 -1
  165. package/dist/public/sdk/runtime-email-otp-DXuxFOjL.js +1 -0
  166. package/dist/public/sdk/{runtime-export-Brz53_oi.js → runtime-export-Ba12ChDI.js} +1 -1
  167. package/dist/{esm/sdk/runtime-near-Da_xFUXx.js → public/sdk/runtime-near-DRrdWzmr.js} +1 -1
  168. package/dist/public/sdk/runtime-preferences-BWyhRaBA.js +1 -0
  169. package/dist/public/sdk/runtime-recovery-DlJlaZlf.js +1 -0
  170. package/dist/public/sdk/runtime-recovery-codes-CuqYWqK7.js +1 -0
  171. package/dist/public/sdk/secp256k1-CYu8ENjP.js +1 -0
  172. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +1 -0
  173. package/dist/public/sdk/shared-B95wnpoD.js +6 -0
  174. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +1 -0
  175. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js} +1 -1
  176. package/dist/public/sdk/{signEvmWithUiConfirm-D6nmJr_L.js → signEvmWithUiConfirm-lZyPfrGe.js} +1 -1
  177. package/dist/public/sdk/signNear-B_UcqMRf.js +1 -0
  178. package/dist/public/sdk/{signatureUses-B_nN17i7.js → signatureUses-CY4U-X6V.js} +1 -1
  179. package/dist/public/sdk/{registrationIds-B1OpqRAt.js → signerSlot-CpyIfl3J.js} +1 -1
  180. package/dist/public/sdk/signingFlow-Co_QtuHK.js +2 -0
  181. package/dist/public/sdk/signingQueue-Cj9sCJLj.js +1 -0
  182. package/dist/public/sdk/thresholdEcdsa-LvkD6z8-.js +1 -0
  183. package/dist/public/sdk/{trace-CsRMlSh1.js → trace-CWTzEALZ.js} +1 -1
  184. package/dist/public/sdk/transaction-activity-CpDMkSPm.js +1 -0
  185. package/dist/{esm/sdk/transactionState-lB2qpkOm.js → public/sdk/transactionState-BaFSiA9t.js} +1 -1
  186. package/dist/public/sdk/tx-confirm-ui.js +186 -71
  187. package/dist/public/sdk/{types-CQTWmtqu.js → types-BrEW276O.js} +1 -1
  188. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  189. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  190. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  191. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  192. package/dist/public/sdk/wallet-recovery-BEui57xM.js +1 -0
  193. package/dist/public/sdk/wallet-ui.css +1 -1
  194. package/dist/public/sdk/{walletAuthMethodRecord-CWdqdY_s.js → walletAuthMethodRecord-Cv_MYpxt.js} +1 -1
  195. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +1 -0
  196. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +1 -0
  197. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +1 -0
  198. package/dist/public/sdk/walletDbName-BVZhb4xF.js +1 -0
  199. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +1 -0
  200. package/dist/public/sdk/walletRecoveryAdminProof-CtH8_lph.js +1 -0
  201. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +1 -0
  202. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +1 -0
  203. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +1 -0
  204. package/dist/public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js +1 -0
  205. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +1 -0
  206. package/dist/{esm/sdk/webauthnP256-_ajaNl90.js → public/sdk/webauthnP256-unqBoZCk.js} +1 -1
  207. package/dist/public/sdk/workers/email-otp.worker.js +6 -1
  208. package/dist/public/wallet-assets.manifest.json +253 -276
  209. package/dist/public/wallet-service/index.html +4 -4
  210. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +1 -1
  211. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -7
  212. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +5 -0
  213. package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +3 -3
  214. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +1 -1
  215. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryAdminProof.d.ts +46 -0
  216. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.d.ts +4 -1
  217. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryRotation.d.ts +11 -7
  218. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +9 -1
  219. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -3
  220. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +6 -4
  221. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +2 -2
  222. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -6
  223. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +1 -0
  224. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -0
  225. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestWalletMove.d.ts +1 -1
  226. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -1
  227. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/recoveryAuthorization.d.ts +6 -0
  228. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +14 -3
  229. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +8 -0
  230. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +1 -0
  231. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-activity.d.ts +2 -2
  232. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-receipt.d.ts +25 -6
  233. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryRotation.d.ts +22 -3
  234. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +1 -0
  235. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +1 -0
  236. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +8 -2
  237. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  238. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -1
  239. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MapPinIcon.d.ts +2 -0
  240. package/dist/workers/email-otp.worker.js +6 -1
  241. package/package.json +1 -1
  242. package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +0 -77
  243. package/dist/esm/sdk/accountLifecycle-fLNUdjct.js +0 -1
  244. package/dist/esm/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  245. package/dist/esm/sdk/adapters-BNmcyf9K.js +0 -2
  246. package/dist/esm/sdk/appearance-token-vars-DxBm_cKA.js +0 -2
  247. package/dist/esm/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  248. package/dist/esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  249. package/dist/esm/sdk/digestEncoding-aC4dSf_x.js +0 -1
  250. package/dist/esm/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  251. package/dist/esm/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  252. package/dist/esm/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  253. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  254. package/dist/esm/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  255. package/dist/esm/sdk/host-DMR4KDy9.js +0 -1
  256. package/dist/esm/sdk/localOnly-DO191vDh.js +0 -1
  257. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  258. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  259. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  260. package/dist/esm/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  261. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  262. package/dist/esm/sdk/presignaturePool-BHoxnbOA.js +0 -1
  263. package/dist/esm/sdk/presignatures-K-yuzOE0.js +0 -1
  264. package/dist/esm/sdk/primitives-CTmDwMNc.js +0 -1
  265. package/dist/esm/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  266. package/dist/esm/sdk/registration-sQndIWRF.js +0 -1
  267. package/dist/esm/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  268. package/dist/esm/sdk/registrationIntent-D4YDjf2U.js +0 -1
  269. package/dist/esm/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  270. package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +0 -1
  271. package/dist/esm/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  272. package/dist/esm/sdk/runtime-preferences-riUZGaTs.js +0 -1
  273. package/dist/esm/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  274. package/dist/esm/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  275. package/dist/esm/sdk/secp256k1-wOOHtPcK.js +0 -1
  276. package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  277. package/dist/esm/sdk/shared-hx7KVyeq.js +0 -6
  278. package/dist/esm/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  279. package/dist/esm/sdk/signNear-B000QxBd.js +0 -1
  280. package/dist/esm/sdk/signerSlot-FJAGOhmg.js +0 -1
  281. package/dist/esm/sdk/signingFlow-gl85GOW4.js +0 -2
  282. package/dist/esm/sdk/signingQueue-gW7wmOuL.js +0 -1
  283. package/dist/esm/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  284. package/dist/esm/sdk/transaction-activity-C0nCSW6c.js +0 -1
  285. package/dist/esm/sdk/wallet-recovery-DFaS3geI.js +0 -1
  286. package/dist/esm/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  287. package/dist/esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  288. package/dist/esm/sdk/walletDbName-BxWApBQF.js +0 -1
  289. package/dist/esm/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  290. package/dist/esm/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  291. package/dist/esm/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  292. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  293. package/dist/esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  294. package/dist/esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  295. package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  296. package/dist/public/sdk/accountLifecycle-fLNUdjct.js +0 -1
  297. package/dist/public/sdk/activeWalletSession-BpbnpU9s.js +0 -1
  298. package/dist/public/sdk/adapters-BNmcyf9K.js +0 -2
  299. package/dist/public/sdk/appearance-token-vars-DxBm_cKA.js +0 -2
  300. package/dist/public/sdk/challengeDelivery-CG2J5Qxs.js +0 -1
  301. package/dist/public/sdk/clientSessionPersistenceState-BgO4P6CZ.js +0 -1
  302. package/dist/public/sdk/digestEncoding-aC4dSf_x.js +0 -1
  303. package/dist/public/sdk/ecdsaCapabilityManifest-DRc423SV.js +0 -1
  304. package/dist/public/sdk/ecdsaDerivationExport-DX89rq_u.js +0 -1
  305. package/dist/public/sdk/ecdsaWalletRecords-CxxUt3fS.js +0 -1
  306. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js +0 -1
  307. package/dist/public/sdk/exportKeypairOperation-BwW_E4Lt.js +0 -1
  308. package/dist/public/sdk/host-DMR4KDy9.js +0 -1
  309. package/dist/public/sdk/localOnly-DO191vDh.js +0 -1
  310. package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +0 -2
  311. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js +0 -1
  312. package/dist/public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js +0 -1
  313. package/dist/public/sdk/passkey-custody-Ba-NQ_4C.js +0 -1
  314. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-DOeIn_Qj.js +0 -1
  315. package/dist/public/sdk/presignaturePool-BHoxnbOA.js +0 -1
  316. package/dist/public/sdk/presignatures-K-yuzOE0.js +0 -1
  317. package/dist/public/sdk/primitives-CTmDwMNc.js +0 -1
  318. package/dist/public/sdk/recovery-entrypoint-DWghFZrZ.js +0 -1
  319. package/dist/public/sdk/registration-sQndIWRF.js +0 -1
  320. package/dist/public/sdk/registrationAccounts-CD1u1ZqZ.js +0 -1
  321. package/dist/public/sdk/registrationIntent-D4YDjf2U.js +0 -1
  322. package/dist/public/sdk/routerAbNormalSigning-BV1t27aB.js +0 -1
  323. package/dist/public/sdk/runtime-auth-BxG-J-BB.js +0 -1
  324. package/dist/public/sdk/runtime-email-otp-CPqTCH8Q.js +0 -1
  325. package/dist/public/sdk/runtime-preferences-riUZGaTs.js +0 -1
  326. package/dist/public/sdk/runtime-recovery-CTj4nDAM.js +0 -1
  327. package/dist/public/sdk/runtime-recovery-codes-D8T9LQ7-.js +0 -1
  328. package/dist/public/sdk/secp256k1-wOOHtPcK.js +0 -1
  329. package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +0 -1
  330. package/dist/public/sdk/shared-hx7KVyeq.js +0 -6
  331. package/dist/public/sdk/signEvmFamily-DT34Vtpa.js +0 -1
  332. package/dist/public/sdk/signNear-B000QxBd.js +0 -1
  333. package/dist/public/sdk/signerSlot-FJAGOhmg.js +0 -1
  334. package/dist/public/sdk/signingFlow-gl85GOW4.js +0 -2
  335. package/dist/public/sdk/signingQueue-gW7wmOuL.js +0 -1
  336. package/dist/public/sdk/thresholdEcdsa-Ci7yz395.js +0 -1
  337. package/dist/public/sdk/transaction-activity-C0nCSW6c.js +0 -1
  338. package/dist/public/sdk/wallet-recovery-DFaS3geI.js +0 -1
  339. package/dist/public/sdk/walletAuthority-BY3kyKQ-.js +0 -1
  340. package/dist/public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js +0 -1
  341. package/dist/public/sdk/walletDbName-BxWApBQF.js +0 -1
  342. package/dist/public/sdk/walletOwnershipGeneration-DSGfjuV2.js +0 -1
  343. package/dist/public/sdk/walletRecoveryCommit-DQA_wveK.js +0 -1
  344. package/dist/public/sdk/walletRecoveryRotate-zvQThn37.js +0 -1
  345. package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +0 -1
  346. package/dist/public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js +0 -1
  347. package/dist/public/sdk/walletSessionAuthorizationStore-DnUMtkev.js +0 -1
  348. package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +0 -1
  349. package/dist/types/wallet/src/react/components/AccountMenuButton/SegmentedControl.d.ts +0 -25
  350. /package/dist/esm/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  351. /package/dist/esm/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  352. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  353. /package/dist/esm/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  354. /package/dist/esm/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  355. /package/dist/esm/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  356. /package/dist/esm/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  357. /package/dist/esm/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  358. /package/dist/esm/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  359. /package/dist/esm/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  360. /package/dist/esm/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  361. /package/dist/esm/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  362. /package/dist/esm/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  363. /package/dist/esm/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  364. /package/dist/esm/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  365. /package/dist/esm/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  366. /package/dist/esm/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  367. /package/dist/esm/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  368. /package/dist/esm/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  369. /package/dist/esm/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  370. /package/dist/esm/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  371. /package/dist/esm/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  372. /package/dist/esm/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  373. /package/dist/esm/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  374. /package/dist/esm/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  375. /package/dist/esm/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  376. /package/dist/esm/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  377. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  378. /package/dist/esm/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  379. /package/dist/esm/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
  380. /package/dist/public/sdk/{accountIds-Cpvlkvbe.js → accountIds-BzZs7YoX.js} +0 -0
  381. /package/dist/public/sdk/{appearance-4DmzKUWf.js → appearance-ZGVLwA4N.js} +0 -0
  382. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-BB_sU4uA.js} +0 -0
  383. /package/dist/public/sdk/{authorizationAdmission-Dd23mTx7.js → authorizationAdmission-D7nx2n4d.js} +0 -0
  384. /package/dist/public/sdk/{browser-n3IVr7qu.js → browser-DkCRXFkk.js} +0 -0
  385. /package/dist/public/sdk/{bytes-DZRW2UDg.js → bytes-Cv07P0Pu.js} +0 -0
  386. /package/dist/public/sdk/{canonicalPrimitives-BMP5yILS.js → canonicalPrimitives-D_1HyEuJ.js} +0 -0
  387. /package/dist/public/sdk/{canonicalSignerErrorCode-Cz48v4oy.js → canonicalSignerErrorCode-CqHi6ji6.js} +0 -0
  388. /package/dist/public/sdk/{capabilityKinds-D0Yrp9uf.js → capabilityKinds-CqHVzVsJ.js} +0 -0
  389. /package/dist/public/sdk/{ecdsaChainTarget-DkOrgv4y.js → ecdsaChainTarget-svSlzhze.js} +0 -0
  390. /package/dist/public/sdk/{errors-ADOZT8oV.js → errors-CI1xdN0d.js} +0 -0
  391. /package/dist/public/sdk/{executeWorkerOperation-DKCRRq5E.js → executeWorkerOperation-S6glYwAs.js} +0 -0
  392. /package/dist/public/sdk/{helpers-DS0bksx9.js → helpers-BXezXx19.js} +0 -0
  393. /package/dist/public/sdk/{intentDigest-Rh5Mg8X7.js → intentDigest--FZ63NBy.js} +0 -0
  394. /package/dist/public/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-B5zMY6lE.js} +0 -0
  395. /package/dist/public/sdk/{keccak-mS0Mejjx.js → keccak-CaPOCznk.js} +0 -0
  396. /package/dist/public/sdk/{normalization-C6fQN6mW.js → normalization-CpLZcL2f.js} +0 -0
  397. /package/dist/public/sdk/{prfCache-BAFh1skJ.js → prfCache-D25ZCg5n.js} +0 -0
  398. /package/dist/public/sdk/{profileAccountProjection-BNVJLOt2.js → profileAccountProjection-C1z9sKHa.js} +0 -0
  399. /package/dist/public/sdk/{promptText-CnyrLxgj.js → promptText-D2f5Rg0h.js} +0 -0
  400. /package/dist/public/sdk/{registrationAuthMethodInput-B23_HRil.js → registrationAuthMethodInput-DKz6Mgg4.js} +0 -0
  401. /package/dist/public/sdk/{sdkSentEvents-DujYAPEM.js → sdkSentEvents-BzMVO1AR.js} +0 -0
  402. /package/dist/public/sdk/{signer-worker-DlK58rEA.js → signer-worker-Bh_5foqX.js} +0 -0
  403. /package/dist/public/sdk/{signerDomain-BFqRQ0Jl.js → signerDomain-YEHkugWX.js} +0 -0
  404. /package/dist/public/sdk/{surface-measurement-reporter-BJhfiPw6.js → surface-measurement-reporter-F-fVB7d3.js} +0 -0
  405. /package/dist/public/sdk/{types-Buoe6179.js → types-BNUuaUtl.js} +0 -0
  406. /package/dist/public/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-DJ0KOBHg.js} +0 -0
  407. /package/dist/public/sdk/{walletSessionAuthorizationProjection-DuU6w0FP.js → walletSessionAuthorizationProjection-UdGeS6x3.js} +0 -0
  408. /package/dist/public/sdk/{walletSessionFailure-C6TAQTZn.js → walletSessionFailure-Ct412mDZ.js} +0 -0
  409. /package/dist/public/sdk/{webauthnPromptCoordinator-9bVeHcTZ.js → webauthnPromptCoordinator-CBkTiMP0.js} +0 -0
@@ -5,14 +5,14 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>Web3Authn Wallet Service</title>
7
7
  <!-- Surface styles are external so strict CSP can keep style-src 'self' -->
8
- <link rel="stylesheet" href="/sdk/wallet-ui.css?v=0.20.0" />
8
+ <link rel="stylesheet" href="/sdk/wallet-ui.css?v=0.22.0" />
9
9
  <!-- Minimal shims some ESM bundles expect (externalized to enable strict CSP) -->
10
- <script src="/sdk/wallet-shims.js?v=0.20.0"></script>
10
+ <script src="/sdk/wallet-shims.js?v=0.22.0"></script>
11
11
  <!-- Hint the browser to fetch the host script earlier -->
12
- <link rel="modulepreload" href="/sdk/wallet-iframe-host-runtime.js?v=0.20.0" crossorigin>
12
+ <link rel="modulepreload" href="/sdk/wallet-iframe-host-runtime.js?v=0.22.0" crossorigin>
13
13
  </head>
14
14
  <body>
15
15
  <!-- sdkBasePath points to the SDK root (e.g. '/sdk'). Load the host directly. -->
16
- <script type="module" src="/sdk/wallet-iframe-host-runtime.js?v=0.20.0"></script>
16
+ <script type="module" src="/sdk/wallet-iframe-host-runtime.js?v=0.22.0"></script>
17
17
  </body>
18
18
  </html>
@@ -1,5 +1,5 @@
1
1
  import { type DigestB64u } from '../utils/canonicalPrimitives';
2
- export type WalletCustodyAdminOperation = 'credentials_list' | 'credential_label' | 'recovery_rotate' | 'recovery_read';
2
+ export type WalletCustodyAdminOperation = 'credentials_list' | 'credential_label' | 'recovery_rotate' | 'recovery_read' | 'recovery_status' | 'recovery_backup_acknowledge';
3
3
  /** Public challenge digest for a single wallet-administration factor proof. */
4
4
  export declare function computeWalletCustodyAdminChallengeDigest(input: {
5
5
  readonly walletId: string;
@@ -429,13 +429,7 @@ export type LinkedOwnerCredentialMetadataV1 = {
429
429
  } | {
430
430
  readonly kind: 'email_otp';
431
431
  readonly walletAuthMethodId: WalletAuthMethodId;
432
- /**
433
- * The verified address behind this factor. The management projection is
434
- * served only to an authenticated owner session, and the owner already
435
- * knows the address they enrolled — this exists so the settings surface
436
- * can name the factor. Local persistence keeps only the email hash.
437
- */
438
- readonly email: VerifiedEmailAddress;
432
+ readonly email?: never;
439
433
  readonly device?: never;
440
434
  readonly credentialIdB64u?: never;
441
435
  };
@@ -135,8 +135,10 @@ export type WalletCustodyRegistrationOutcome =
135
135
  /** No custody payload rode this leg. Registration is unaffected. */
136
136
  {
137
137
  readonly status: 'not_requested';
138
+ readonly issuedAtMs?: never;
138
139
  } | {
139
140
  readonly status: 'committed';
141
+ readonly issuedAtMs: number;
140
142
  }
141
143
  /**
142
144
  * A joining run: this key set's manifest digest, with no custody records
@@ -145,6 +147,7 @@ export type WalletCustodyRegistrationOutcome =
145
147
  | {
146
148
  readonly status: 'joined';
147
149
  readonly keyManifestDigestB64u: string;
150
+ readonly issuedAtMs?: never;
148
151
  }
149
152
  /**
150
153
  * Another ceremony established this wallet's custody first. The client must
@@ -152,11 +155,13 @@ export type WalletCustodyRegistrationOutcome =
152
155
  */
153
156
  | {
154
157
  readonly status: 'custody_already_established';
158
+ readonly issuedAtMs?: never;
155
159
  }
156
160
  /** The payload was refused. Nothing was written. */
157
161
  | {
158
162
  readonly status: 'rejected';
159
163
  readonly reason: string;
164
+ readonly issuedAtMs?: never;
160
165
  };
161
166
  /**
162
167
  * Reads a commit payload off the wire without judging it.
@@ -1,8 +1,8 @@
1
1
  export type EvmTransactionReceipt = {
2
- transactionHash?: string | null;
2
+ transactionHash: string;
3
3
  from?: string | null;
4
- blockNumber?: string | null;
5
- status?: string | null;
4
+ blockNumber: string;
5
+ status: string;
6
6
  gasUsed?: string | null;
7
7
  effectiveGasPrice?: string | null;
8
8
  gasPrice?: string | null;
@@ -441,7 +441,7 @@ type RouterAbEcdsaOperationStepUpWebAuthnCredentialV1Wire = {
441
441
  readonly signature: string;
442
442
  readonly userHandle: string | null;
443
443
  };
444
- readonly clientExtensionResults: unknown | null;
444
+ readonly clientExtensionResults: null;
445
445
  };
446
446
  export type RouterAbEcdsaOperationStepUpPreparationV1Wire = {
447
447
  readonly wallet_id: string;
@@ -0,0 +1,46 @@
1
+ import { type WalletCustodyFactorProof, type WalletRecoveryBackupAcknowledgementResult, type WalletRecoveryCodeStatusResult } from '../../../core/rpcClients/relayer/walletRecoveryRotate';
2
+ import type { RegistrationWebContext } from '../../signingSurface/types';
3
+ import type { WalletRecoveryFactorProofRequest } from '../../../core/signingEngine/walletCustody/walletRecoveryRotation';
4
+ type RecoveryAdminRequest = WalletRecoveryFactorProofRequest | {
5
+ readonly operation: 'recovery_backup_acknowledge';
6
+ readonly payload: {
7
+ readonly walletId: string;
8
+ readonly requestId: string;
9
+ readonly expectedIssuedAtMs: number;
10
+ };
11
+ };
12
+ export declare function readWalletRecoveryCodeStatusWithPasskey(args: {
13
+ readonly relayUrl: string;
14
+ readonly walletId: string;
15
+ readonly rpId: string;
16
+ }): Promise<WalletRecoveryCodeStatusResult>;
17
+ export declare function acknowledgeWalletRecoveryBackupWithPasskey(args: {
18
+ readonly relayUrl: string;
19
+ readonly walletId: string;
20
+ readonly rpId: string;
21
+ readonly expectedIssuedAtMs: number;
22
+ }): Promise<WalletRecoveryBackupAcknowledgementResult>;
23
+ export declare function selectedEmailOtpOwnerMethod(walletId: string): Promise<{
24
+ readonly walletAuthMethodId: string;
25
+ readonly providerSubjectId: string;
26
+ }>;
27
+ export declare function createWalletRecoveryAdminEmailOtpProof(args: {
28
+ readonly context: Pick<RegistrationWebContext, 'signingEngine'>;
29
+ readonly relayUrl: string;
30
+ readonly request: RecoveryAdminRequest;
31
+ }): Promise<Extract<WalletCustodyFactorProof, {
32
+ readonly kind: 'email_otp';
33
+ }>>;
34
+ export declare function readWalletRecoveryCodeStatusWithEmailOtp(args: {
35
+ readonly context: Pick<RegistrationWebContext, 'signingEngine'>;
36
+ readonly relayUrl: string;
37
+ readonly walletId: string;
38
+ }): Promise<WalletRecoveryCodeStatusResult>;
39
+ export declare function acknowledgeWalletRecoveryBackupWithEmailOtp(args: {
40
+ readonly context: Pick<RegistrationWebContext, 'signingEngine'>;
41
+ readonly relayUrl: string;
42
+ readonly walletId: string;
43
+ readonly expectedIssuedAtMs: number;
44
+ }): Promise<WalletRecoveryBackupAcknowledgementResult>;
45
+ export {};
46
+ //# sourceMappingURL=walletRecoveryAdminProof.d.ts.map
@@ -11,6 +11,9 @@ type RecoveryCodeBackupUiOptions = {
11
11
  readonly shouldCancel?: () => boolean;
12
12
  };
13
13
  export declare function showWalletRecoveryCodeBackupUi(request: WalletRecoveryCodeBackupRequestV1, measurementBinding?: UiConfirmSurfaceMeasurementBinding): Promise<WalletRecoveryCodeBackupAcknowledgementV1>;
14
- export declare function showWalletRecoveryCodesUi(request: WalletRecoveryCodesUiRequest, measurementBinding?: UiConfirmSurfaceMeasurementBinding, options?: RecoveryCodeBackupUiOptions): Promise<WalletRecoveryCodeBackupAcknowledgementV1>;
14
+ export declare function showWalletRecoveryCodesUi(request: WalletRecoveryCodesUiRequest, measurementBinding?: UiConfirmSurfaceMeasurementBinding, options?: RecoveryCodeBackupUiOptions): Promise<{
15
+ readonly kind: 'wallet_recovery_codes_backed_up_v1';
16
+ readonly issuedAtMs: number;
17
+ }>;
15
18
  export {};
16
19
  //# sourceMappingURL=walletRecoveryCodeBackup.d.ts.map
@@ -1,18 +1,22 @@
1
1
  import type { RegistrationWebContext } from '../../signingSurface/types';
2
2
  import { type WalletRecoveryRotationOutcome } from '../../../core/signingEngine/walletCustody/walletRecoveryRotation';
3
- export type WalletRecoveryRotationAuthorization = {
3
+ type NoParentRecoveryProof = {
4
+ readonly providerSubjectId?: never;
5
+ readonly statusProof?: never;
6
+ readonly rotationProof?: never;
7
+ readonly otpCode?: never;
8
+ readonly otp_code?: never;
9
+ };
10
+ export type WalletRecoveryRotationAuthorization = ({
4
11
  readonly kind: 'existing_passkey';
5
- } | {
12
+ } & NoParentRecoveryProof) | ({
6
13
  readonly kind: 'email_otp';
7
- readonly providerSubjectId: string;
8
- readonly challengeId: string;
9
- readonly challenge_digest: string;
10
- readonly otpCode: string;
11
- };
14
+ } & NoParentRecoveryProof);
12
15
  export declare function rotateWalletRecoveryCodes(args: {
13
16
  readonly context: RegistrationWebContext;
14
17
  readonly relayUrl: string;
15
18
  readonly walletId: string;
16
19
  readonly authorization: WalletRecoveryRotationAuthorization;
17
20
  }): Promise<WalletRecoveryRotationOutcome>;
21
+ export {};
18
22
  //# sourceMappingURL=walletRecoveryRotation.d.ts.map
@@ -22,6 +22,7 @@ import type { AddEmailOtpHooksOptions, AddEmailOtpResult } from '../operations/a
22
22
  import type { RevokeAuthMethodResult } from '../operations/authMethods/revokeAuthMethod';
23
23
  import type { WalletRecoveryBackupAcknowledgementResult, WalletRecoveryCodeStatusResult, WalletCustodyEmailOtpChallengeResult } from '../../core/rpcClients/relayer/walletRecoveryRotate';
24
24
  import type { WalletRecoveryRotationAuthorization } from '../operations/recovery/walletRecoveryRotation';
25
+ import type { WalletCustodyAdminOperation } from '../../../../shared-ts/src/authorization/walletCustodyOperation';
25
26
  import type { WalletRecoveryRotationOutcome } from '../../core/signingEngine/walletCustody/walletRecoveryRotation';
26
27
  import type { EvmAddress, EvmBytes, EvmSigningRequest } from '../../core/signingEngine/chains/evm/evmSigning.types';
27
28
  import type { TempoSigningRequest } from '../../core/signingEngine/chains/tempo/tempoSigning.types';
@@ -657,6 +658,11 @@ export interface EvmSignerCapability {
657
658
  /** Post-broadcast lifecycle reporting; `signAndSendTransaction` already drives it. */
658
659
  readonly advanced: EvmFamilyAdvancedCapability;
659
660
  }
661
+ export type WalletRecoveryOwnerFactor = {
662
+ readonly kind: 'passkey';
663
+ } | {
664
+ readonly kind: 'email_otp';
665
+ };
660
666
  export interface RecoveryCapability {
661
667
  syncAccount(args: {
662
668
  walletId?: string;
@@ -664,14 +670,16 @@ export interface RecoveryCapability {
664
670
  }): Promise<SyncAccountResult>;
665
671
  getCodeStatus(args: {
666
672
  walletId: string;
673
+ authorization: WalletRecoveryOwnerFactor;
667
674
  }): Promise<WalletRecoveryCodeStatusResult>;
668
675
  confirmBackup(args: {
669
676
  walletId: string;
677
+ authorization: WalletRecoveryOwnerFactor;
670
678
  }): Promise<WalletRecoveryBackupAcknowledgementResult>;
671
679
  requestWalletCustodyEmailOtpChallenge(args: {
672
680
  walletId: string;
673
681
  providerSubjectId: string;
674
- operation: 'credentials_list' | 'credential_label' | 'recovery_rotate' | 'recovery_read';
682
+ operation: WalletCustodyAdminOperation;
675
683
  payload: Record<string, unknown>;
676
684
  requestOrigin?: string;
677
685
  }): Promise<WalletCustodyEmailOtpChallengeResult>;
@@ -14,7 +14,7 @@ import { establishEvmFamilyCustodyV1, joinEvmFamilyCustodyV1 } from '../../core/
14
14
  import { type WalletSessionEd25519RecoveryBasisV1 } from '../../core/signingEngine/walletCustody/walletRecoveryEd25519';
15
15
  import { recoverWalletCustodyManifestV1 } from '../../core/signingEngine/walletCustody/walletRecoveryManifest';
16
16
  import { type LoadedWalletCustodyEd25519MaterialV1, type WalletCustodyEd25519MaterialBindingV1, type WalletCustodySealedEd25519MaterialV1 } from '../../core/signingEngine/walletCustody/ed25519SeedMaterial';
17
- import type { EstablishWalletCustodyNearEd25519KeySetArgs, EstablishedWalletCustodyEvmFamilyKeySetV1, EstablishedWalletCustodyNearEd25519KeySetV1, JoinedWalletCustodyNearEd25519KeySetV1, JoinedWalletCustodyEvmFamilyKeySetV1, RejoinedWalletCustodyEvmFamilyKeySetV1 } from './ports';
17
+ import type { EstablishWalletCustodyNearEd25519KeySetArgs, EstablishedWalletCustodyEvmFamilyKeySetV1, EstablishedWalletCustodyNearEd25519KeySetV1, JoinedWalletCustodyNearEd25519KeySetV1, JoinedWalletCustodyEvmFamilyKeySetV1, RejoinedWalletCustodyEvmFamilyKeySetV1, EmailOtpOwnerConfirmationPurpose } from './ports';
18
18
  import { type RouterAbEd25519YaoRegistrationAdmissionRequestV1 } from '../../../../shared-ts/src/utils/routerAbEd25519Yao';
19
19
  import type { RouterAbTraceContextV1 } from '../../../../shared-ts/src/utils/routerAbTraceContext';
20
20
  import type { SignerWorkerKind, SignerWorkerOperationRequest, SignerWorkerOperationResult, SignerWorkerOperationType, EmailOtpYaoPrewarmRequest, EmailOtpYaoPrewarmOutcome } from '../../core/signingEngine/workerManager/workerTypes';
@@ -401,7 +401,8 @@ export declare class BrowserSigningSurface {
401
401
  * typed into the wallet's own surface and never passes through the host
402
402
  * application — the reason `addEmail` takes an address and not a code.
403
403
  */
404
- requestEmailOtpEnrollmentConfirmation(params: {
404
+ requestEmailOtpOwnerConfirmation(params: {
405
+ purpose: EmailOtpOwnerConfirmationPurpose;
405
406
  walletId: string;
406
407
  emailAddress: string;
407
408
  challengeId: string;
@@ -411,7 +412,7 @@ export declare class BrowserSigningSurface {
411
412
  body?: string;
412
413
  };
413
414
  confirmationConfigOverride?: Partial<ConfirmationConfig>;
414
- onResend: () => Promise<{
415
+ onResend?: () => Promise<{
415
416
  challengeId: string;
416
417
  emailHint?: string;
417
418
  }>;
@@ -459,8 +459,10 @@ export type AccountSyncSigningSurface = LocalLoginStateSurface & Ed25519YaoCapab
459
459
  * any other: the wallet asks, the user types six digits into the wallet's own
460
460
  * surface, and the code never passes through the host application.
461
461
  */
462
- export interface EmailOtpEnrollmentConfirmationSurface {
463
- requestEmailOtpEnrollmentConfirmation(params: {
462
+ export type EmailOtpOwnerConfirmationPurpose = 'add_email_code' | 'add_passkey' | 'remove_auth_method' | 'move_wallet' | 'recovery_status' | 'recovery_unlock' | 'recovery_rotate' | 'recovery_backup_acknowledge';
463
+ export interface EmailOtpOwnerConfirmationSurface {
464
+ requestEmailOtpOwnerConfirmation(params: {
465
+ purpose: EmailOtpOwnerConfirmationPurpose;
464
466
  walletId: string;
465
467
  emailAddress: string;
466
468
  challengeId: string;
@@ -470,7 +472,7 @@ export interface EmailOtpEnrollmentConfirmationSurface {
470
472
  body?: string;
471
473
  };
472
474
  confirmationConfigOverride?: Partial<ConfirmationConfig>;
473
- onResend: () => Promise<{
475
+ onResend?: () => Promise<{
474
476
  challengeId: string;
475
477
  emailHint?: string;
476
478
  }>;
@@ -579,7 +581,7 @@ export interface KeyExportSigningSurface {
579
581
  export interface EmailOtpRegistrationEnrollmentSurface {
580
582
  prepareEmailOtpRegistrationEnrollmentMaterialInternal(args: PrepareEmailOtpRegistrationEnrollmentMaterialInternalArgs): Promise<PrepareEmailOtpRegistrationEnrollmentMaterialInternalResult>;
581
583
  }
582
- export type RegistrationSigningSurface = RpIdSurface & EcdsaLoginSessionSurface & WalletIframeSurfaceMeasurementSurface & Ed25519YaoCapabilityActivationSurface & UnlockedEd25519ExportRootCapabilitySurface & WalletCustodyCeremonySurface & Pick<WalletIframeWarmupSurface, 'warmCriticalResources'> & RegistrationResourceWarmupSurface & Pick<SigningSessionSurface, 'hydrateSigningSession' | 'prepareSigningSessionHydration' | 'readPreparedSigningSessionHydration' | 'discardSigningSessionHydration' | 'persistSigningSessionSealForThresholdSession'> & Pick<EmailOtpRegistrationEnrollmentSurface, 'prepareEmailOtpRegistrationEnrollmentMaterialInternal'> & SignerWorkerContextSurface & PasskeyLoginAssertionSurface & Pick<WalletAuthenticationSurface, 'setWalletAuthenticated'> & Pick<UserProfileStoreSurface, 'getUserBySignerSlot'> & Pick<RegistrationAccountSurface, 'storeWalletEd25519RegistrationData' | 'storeWalletEmailOtpEd25519RegistrationData'> & Pick<EcdsaRegistrationSurface, 'storeWalletEcdsaSignerRecords' | 'storeWalletEmailOtpEcdsaSignerRecords' | 'storeWalletEmailOtpEcdsaRegistrationData'> & WebAuthnRegistrationConfirmationSurface & EmailOtpEnrollmentConfirmationSurface & RegistrationAccountSurface & EcdsaRegistrationSurface;
584
+ export type RegistrationSigningSurface = RpIdSurface & EcdsaLoginSessionSurface & WalletIframeSurfaceMeasurementSurface & Ed25519YaoCapabilityActivationSurface & UnlockedEd25519ExportRootCapabilitySurface & WalletCustodyCeremonySurface & Pick<WalletIframeWarmupSurface, 'warmCriticalResources'> & RegistrationResourceWarmupSurface & Pick<SigningSessionSurface, 'hydrateSigningSession' | 'prepareSigningSessionHydration' | 'readPreparedSigningSessionHydration' | 'discardSigningSessionHydration' | 'persistSigningSessionSealForThresholdSession'> & Pick<EmailOtpRegistrationEnrollmentSurface, 'prepareEmailOtpRegistrationEnrollmentMaterialInternal'> & SignerWorkerContextSurface & PasskeyLoginAssertionSurface & Pick<WalletAuthenticationSurface, 'setWalletAuthenticated'> & Pick<UserProfileStoreSurface, 'getUserBySignerSlot'> & Pick<RegistrationAccountSurface, 'storeWalletEd25519RegistrationData' | 'storeWalletEmailOtpEd25519RegistrationData'> & Pick<EcdsaRegistrationSurface, 'storeWalletEcdsaSignerRecords' | 'storeWalletEmailOtpEcdsaSignerRecords' | 'storeWalletEmailOtpEcdsaRegistrationData'> & WebAuthnRegistrationConfirmationSurface & EmailOtpOwnerConfirmationSurface & RegistrationAccountSurface & EcdsaRegistrationSurface;
583
585
  export type SeamsWebBaseContext<TSigningEngine> = {
584
586
  signingEngine: TSigningEngine;
585
587
  nearClient: NearClient;
@@ -1,11 +1,11 @@
1
- import type { AccountSyncSigningSurface, EcdsaLoginSessionSurface, EcdsaRegistrationSurface, WalletCustodyCeremonySurface, Ed25519YaoCapabilityActivationSurface, EcdsaSessionBootstrapSurface, EcdsaSessionControlSurface, Ed25519SessionConnectionSurface, Ed25519MaterialOwnerQueueSurface, EmailOtpRegistrationEnrollmentSurface, EmailOtpSigningSessionSurface, EvmFamilySigningSurface, KeyExportSigningSurface, NearSigningSurface, NonceCoordinatorSurface, PasskeyLoginAssertionSurface, RegistrationAccountSurface, RegistrationResourceWarmupSurface, RpIdSurface, RuntimeStartupSurface, SeamsWebBaseContext, SigningEngineLifecycleEventSurface, SignerWorkerContextSurface, SigningSessionSurface, TempoNonceLifecycleSurface, UserProfileStoreSurface, WarmSessionStatusSurface, WalletIframeWarmupSurface, WalletIframeSurfaceMeasurementSurface, WalletAuthenticationSurface, WalletLockGenerationSurface, UnlockedEd25519ExportRootCapabilitySurface, WebAuthnRegistrationConfirmationSurface, EmailOtpEnrollmentConfirmationSurface } from './ports';
1
+ import type { AccountSyncSigningSurface, EcdsaLoginSessionSurface, EcdsaRegistrationSurface, WalletCustodyCeremonySurface, Ed25519YaoCapabilityActivationSurface, EcdsaSessionBootstrapSurface, EcdsaSessionControlSurface, Ed25519SessionConnectionSurface, Ed25519MaterialOwnerQueueSurface, EmailOtpRegistrationEnrollmentSurface, EmailOtpSigningSessionSurface, EvmFamilySigningSurface, KeyExportSigningSurface, NearSigningSurface, NonceCoordinatorSurface, PasskeyLoginAssertionSurface, RegistrationAccountSurface, RegistrationResourceWarmupSurface, RpIdSurface, RuntimeStartupSurface, SeamsWebBaseContext, SigningEngineLifecycleEventSurface, SignerWorkerContextSurface, SigningSessionSurface, TempoNonceLifecycleSurface, UserProfileStoreSurface, WarmSessionStatusSurface, WalletIframeWarmupSurface, WalletIframeSurfaceMeasurementSurface, WalletAuthenticationSurface, WalletLockGenerationSurface, UnlockedEd25519ExportRootCapabilitySurface, WebAuthnRegistrationConfirmationSurface, EmailOtpOwnerConfirmationSurface } from './ports';
2
2
  import type { UserPreferencesManager } from '../../core/signingEngine/session/userPreferences';
3
3
  import type { UiConfirmSurfaceMeasurementBinding } from '../../core/signingEngine/uiConfirm/uiConfirm.types';
4
4
  import type { AppearanceConfig, SeamsConfigsReadonly } from '../../core/types/seams';
5
5
  import type { WorkerOperationContext } from '../../core/signingEngine/workerManager/executeWorkerOperation';
6
6
  export type { AccountSyncSigningSurface, AccountSyncWebContext, WalletAuthWebContext, DeviceLinkingSigningSurface, DeviceLinkingWebContext, EcdsaLoginSessionSurface, EcdsaRegistrationSurface, Ed25519YaoCapabilityActivationSurface, EcdsaSessionBootstrapSurface, EcdsaSessionControlSurface, Ed25519SessionConnectionSurface, EmailOtpRegistrationEnrollmentSurface, EmailOtpSigningSessionSurface, WalletRecoverySigningSurface, WalletRecoveryWebContext, EvmFamilySigningSurface, LocalLoginStateSurface, LockSigningSurface, LoginUnlockSigningSurface, LoginWarmSigningSurface, LoginWebContext, NearSigningSurface, NearSigningWebContext, NonceCoordinatorSurface, PasskeyLoginAssertionSurface, RecentUnlocksSigningSurface, RecentUnlocksWebContext, RegistrationAccountSurface, RegistrationResourceWarmupSurface, RegistrationSigningSurface, RegistrationWebContext, RpIdSurface, RuntimeStartupSurface, SeamsWebBaseContext, SigningEngineLifecycleEventSurface, SignerWorkerContextSurface, SigningSessionSurface, TempoNonceLifecycleSurface, TempoSigningSurface, UnlockedEd25519ExportRootCapabilitySurface, UserAccountLookupSurface, UserProfileStoreSurface, WalletIframeWarmupSurface, WalletAuthenticationSurface, WalletSessionReadSurface, WalletSessionWebContext, WarmSessionStatusSurface, WebAuthnRegistrationConfirmationSurface, } from './ports';
7
7
  export type * from '../publicApi/types';
8
- export interface SeamsWebSigningSurface extends RpIdSurface, NonceCoordinatorSurface, WalletIframeWarmupSurface, WalletIframeSurfaceMeasurementSurface, WalletAuthenticationSurface, WalletLockGenerationSurface, RuntimeStartupSurface, SigningEngineLifecycleEventSurface, WorkerOperationContext, SigningSessionSurface, Ed25519SessionConnectionSurface, EcdsaSessionBootstrapSurface, EmailOtpSigningSessionSurface, EmailOtpRegistrationEnrollmentSurface, EcdsaLoginSessionSurface, EcdsaSessionControlSurface, SignerWorkerContextSurface, WarmSessionStatusSurface, NearSigningSurface, EvmFamilySigningSurface, TempoNonceLifecycleSurface, UserProfileStoreSurface, RegistrationResourceWarmupSurface, RegistrationAccountSurface, EcdsaRegistrationSurface, Ed25519YaoCapabilityActivationSurface, UnlockedEd25519ExportRootCapabilitySurface, WalletCustodyCeremonySurface, Ed25519MaterialOwnerQueueSurface, Pick<AccountSyncSigningSurface, 'storeNearThresholdKeyMaterial'>, WebAuthnRegistrationConfirmationSurface, EmailOtpEnrollmentConfirmationSurface, PasskeyLoginAssertionSurface, KeyExportSigningSurface {
8
+ export interface SeamsWebSigningSurface extends RpIdSurface, NonceCoordinatorSurface, WalletIframeWarmupSurface, WalletIframeSurfaceMeasurementSurface, WalletAuthenticationSurface, WalletLockGenerationSurface, RuntimeStartupSurface, SigningEngineLifecycleEventSurface, WorkerOperationContext, SigningSessionSurface, Ed25519SessionConnectionSurface, EcdsaSessionBootstrapSurface, EmailOtpSigningSessionSurface, EmailOtpRegistrationEnrollmentSurface, EcdsaLoginSessionSurface, EcdsaSessionControlSurface, SignerWorkerContextSurface, WarmSessionStatusSurface, NearSigningSurface, EvmFamilySigningSurface, TempoNonceLifecycleSurface, UserProfileStoreSurface, RegistrationResourceWarmupSurface, RegistrationAccountSurface, EcdsaRegistrationSurface, Ed25519YaoCapabilityActivationSurface, UnlockedEd25519ExportRootCapabilitySurface, WalletCustodyCeremonySurface, Ed25519MaterialOwnerQueueSurface, Pick<AccountSyncSigningSurface, 'storeNearThresholdKeyMaterial'>, WebAuthnRegistrationConfirmationSurface, EmailOtpOwnerConfirmationSurface, PasskeyLoginAssertionSurface, KeyExportSigningSurface {
9
9
  readonly seamsWebConfigs: SeamsConfigsReadonly;
10
10
  dispose(): void;
11
11
  setAppearance(appearance: AppearanceConfig): void;
@@ -245,12 +245,8 @@ export declare class WalletIframeRouter {
245
245
  requestEmailCode(payload: Parameters<AuthCapability['requestEmailCode']>[0]): ReturnType<AuthCapability['requestEmailCode']>;
246
246
  private googleEmailOtpWalletAuthFlowFromWire;
247
247
  startGoogleSignIn(payload: GoogleEmailOtpWalletAuthStartInput): Promise<GoogleEmailOtpWalletAuthResult<GoogleEmailOtpWalletAuthFlow>>;
248
- getCodeStatus(payload: {
249
- walletId: string;
250
- }): Promise<WalletRecoveryCodeStatusResult>;
251
- confirmBackup(payload: {
252
- walletId: string;
253
- }): Promise<WalletRecoveryBackupAcknowledgementResult>;
248
+ getCodeStatus(payload: Parameters<RecoveryCapability['getCodeStatus']>[0]): Promise<WalletRecoveryCodeStatusResult>;
249
+ confirmBackup(payload: Parameters<RecoveryCapability['confirmBackup']>[0]): Promise<WalletRecoveryBackupAcknowledgementResult>;
254
250
  requestWalletCustodyEmailOtpChallenge(payload: {
255
251
  walletId: string;
256
252
  providerSubjectId: string;
@@ -74,6 +74,7 @@ export declare class WalletHostRuntime {
74
74
  private syncAccountDomain;
75
75
  private onNearAccountChange;
76
76
  private getCodeStatusDomain;
77
+ private preloadedCodeStatusDomain;
77
78
  private confirmBackupDomain;
78
79
  private loadPendingWalletRecoveryCodeBackupRequest;
79
80
  private requestWalletCustodyEmailOtpChallengeDomain;
@@ -14,7 +14,9 @@ export declare class AuthMenuController {
14
14
  request: HostedAuthMenuOpenRequest;
15
15
  requestId: string | undefined;
16
16
  }): Promise<import('../../shared/messages').HostedAuthMenuOutcome>;
17
+ private readLoginAccounts;
17
18
  private bootstrapLoginAccounts;
19
+ private applyLoginAccounts;
18
20
  private prepareLogin;
19
21
  private prepareRecoveredLogin;
20
22
  private beginGoogleEmailOtp;
@@ -4,7 +4,7 @@ import type { BrowserSigningSurface } from '../../signingSurface/BrowserSigningS
4
4
  import { type WalletHostManagementRequestV1 } from '../../operations/devices/walletHostOwnerAuthority';
5
5
  type Context = WalletPlacementSession & {
6
6
  readonly managementRequest: WalletHostManagementRequestV1;
7
- readonly signingEngine: Pick<BrowserSigningSurface, 'getAuthenticationCredentialsSerialized' | 'requestEmailOtpEnrollmentConfirmation'>;
7
+ readonly signingEngine: Pick<BrowserSigningSurface, 'getAuthenticationCredentialsSerialized' | 'requestEmailOtpOwnerConfirmation'>;
8
8
  };
9
9
  export declare function requestWalletMove(host: Context, raw: WalletMoveRequest): Promise<WalletMoveStatusResult>;
10
10
  export {};
@@ -510,6 +510,10 @@ type PMEmailOtpChallengePayload = Omit<Extract<RequestEmailCodeInput, {
510
510
  }>, 'onEvent'> | Omit<Extract<RequestEmailCodeInput, {
511
511
  method: 'email';
512
512
  }>, 'onEvent'>;
513
+ interface PMWalletRecoveryOwnerPayload {
514
+ walletId: string;
515
+ authorization: import('../../publicApi/types').WalletRecoveryOwnerFactor;
516
+ }
513
517
  interface PMWalletRecoverySessionPayload {
514
518
  walletId: string;
515
519
  }
@@ -620,7 +624,7 @@ export type ParentToChildEnvelope = RpcEnvelope<'PM_ACTIVATE_TRANSACTION_REVIEW'
620
624
  readonly moveId: string;
621
625
  }> | RpcEnvelope<'PM_GET_WALLET_PLACEMENT', {
622
626
  readonly walletId: string;
623
- }> | RpcEnvelope<'PM_GET_WALLET_SESSION', PMGetWalletSessionPayload> | RpcEnvelope<'PM_GET_EXACT_WALLET_SESSION_STATE', PMGetExactWalletSessionStatePayload> | RpcEnvelope<'PM_GET_NEAR_PROVISIONING_STATE', PMGetNearProvisioningStatePayload> | RpcEnvelope<'PM_REQUEST_EMAIL_OTP_CHALLENGE', PMEmailOtpChallengePayload> | RpcEnvelope<'PM_BEGIN_GOOGLE_EMAIL_OTP_WALLET_AUTH', PMGoogleEmailOtpWalletAuthStartPayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_RESEND', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_REROLL_WALLET_ID', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_SUBMIT', PMGoogleEmailOtpWalletAuthSubmitPayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_COMPLETE_REGISTRATION', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_CANCEL', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GET_WALLET_RECOVERY_CODE_STATUS', PMWalletRecoverySessionPayload> | RpcEnvelope<'PM_ACKNOWLEDGE_WALLET_RECOVERY_CODE_BACKUP', PMWalletRecoverySessionPayload> | RpcEnvelope<'PM_ROTATE_WALLET_RECOVERY_CODES', PMRotateWalletRecoveryCodesPayload> | RpcEnvelope<'PM_REQUEST_WALLET_CUSTODY_EMAIL_OTP_CHALLENGE', PMRequestWalletCustodyEmailOtpChallengePayload> | RpcEnvelope<'PM_SIGN_TX_WITH_ACTIONS', PMSignTxPayload> | ReviewedTransactionEnvelope<RpcEnvelope<'PM_SIGN_AND_SEND_TX', PMSignAndSendTxPayload>> | RpcEnvelope<'PM_SEND_TRANSACTION', PMSendTxPayload> | RpcEnvelope<'PM_SIGN_DELEGATE_ACTION', PMSignDelegateActionPayload> | RpcEnvelope<'PM_SIGN_NEP413', PMSignNep413Payload> | ReviewedTransactionEnvelope<RpcEnvelope<'PM_SIGN_TEMPO', PMSignTempoPayload>> | RpcEnvelope<'PM_REPORT_TEMPO_BROADCAST_ACCEPTED', PMReportTempoBroadcastAcceptedPayload> | RpcEnvelope<'PM_REPORT_TEMPO_BROADCAST_REJECTED', PMReportTempoBroadcastRejectedPayload> | RpcEnvelope<'PM_REPORT_TEMPO_FINALIZED', PMReportTempoFinalizedPayload> | RpcEnvelope<'PM_REPORT_TEMPO_DROPPED_OR_REPLACED', PMReportTempoDroppedOrReplacedPayload> | RpcEnvelope<'PM_RECONCILE_TEMPO_NONCE_LANE', PMReconcileTempoNonceLanePayload> | RpcEnvelope<'PM_RESOLVE_EXACT_KEY_EXPORT_LANE', PMResolveExactKeyExportLanePayload> | RpcEnvelope<'PM_EXPORT_KEYPAIR_UI', PMExportKeypairUiPayload> | RpcEnvelope<'PM_GET_RECENT_UNLOCKS'> | RpcEnvelope<'PM_SET_CONFIRM_BEHAVIOR', PMSetConfirmBehaviorPayload> | RpcEnvelope<'PM_SET_CONFIRMATION_CONFIG', PMSetConfirmationConfigPayload> | RpcEnvelope<'PM_GET_CONFIRMATION_CONFIG'> | RpcEnvelope<'PM_HAS_PASSKEY', PMHasPasskeyPayload> | RpcEnvelope<'PM_LIST_LINKED_DEVICES', PMListLinkedDevicesPayload> | RpcEnvelope<'PM_REVOKE_LINKED_DEVICE', PMRevokeLinkedDevicePayload> | RpcEnvelope<'PM_SCAN_AND_LINK_DEVICE', {
627
+ }> | RpcEnvelope<'PM_GET_WALLET_SESSION', PMGetWalletSessionPayload> | RpcEnvelope<'PM_GET_EXACT_WALLET_SESSION_STATE', PMGetExactWalletSessionStatePayload> | RpcEnvelope<'PM_GET_NEAR_PROVISIONING_STATE', PMGetNearProvisioningStatePayload> | RpcEnvelope<'PM_REQUEST_EMAIL_OTP_CHALLENGE', PMEmailOtpChallengePayload> | RpcEnvelope<'PM_BEGIN_GOOGLE_EMAIL_OTP_WALLET_AUTH', PMGoogleEmailOtpWalletAuthStartPayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_RESEND', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_REROLL_WALLET_ID', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_SUBMIT', PMGoogleEmailOtpWalletAuthSubmitPayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_COMPLETE_REGISTRATION', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GOOGLE_EMAIL_OTP_WALLET_AUTH_CANCEL', PMGoogleEmailOtpWalletAuthHandlePayload> | RpcEnvelope<'PM_GET_WALLET_RECOVERY_CODE_STATUS', PMWalletRecoveryOwnerPayload> | RpcEnvelope<'PM_ACKNOWLEDGE_WALLET_RECOVERY_CODE_BACKUP', PMWalletRecoveryOwnerPayload> | RpcEnvelope<'PM_ROTATE_WALLET_RECOVERY_CODES', PMRotateWalletRecoveryCodesPayload> | RpcEnvelope<'PM_REQUEST_WALLET_CUSTODY_EMAIL_OTP_CHALLENGE', PMRequestWalletCustodyEmailOtpChallengePayload> | RpcEnvelope<'PM_SIGN_TX_WITH_ACTIONS', PMSignTxPayload> | ReviewedTransactionEnvelope<RpcEnvelope<'PM_SIGN_AND_SEND_TX', PMSignAndSendTxPayload>> | RpcEnvelope<'PM_SEND_TRANSACTION', PMSendTxPayload> | RpcEnvelope<'PM_SIGN_DELEGATE_ACTION', PMSignDelegateActionPayload> | RpcEnvelope<'PM_SIGN_NEP413', PMSignNep413Payload> | ReviewedTransactionEnvelope<RpcEnvelope<'PM_SIGN_TEMPO', PMSignTempoPayload>> | RpcEnvelope<'PM_REPORT_TEMPO_BROADCAST_ACCEPTED', PMReportTempoBroadcastAcceptedPayload> | RpcEnvelope<'PM_REPORT_TEMPO_BROADCAST_REJECTED', PMReportTempoBroadcastRejectedPayload> | RpcEnvelope<'PM_REPORT_TEMPO_FINALIZED', PMReportTempoFinalizedPayload> | RpcEnvelope<'PM_REPORT_TEMPO_DROPPED_OR_REPLACED', PMReportTempoDroppedOrReplacedPayload> | RpcEnvelope<'PM_RECONCILE_TEMPO_NONCE_LANE', PMReconcileTempoNonceLanePayload> | RpcEnvelope<'PM_RESOLVE_EXACT_KEY_EXPORT_LANE', PMResolveExactKeyExportLanePayload> | RpcEnvelope<'PM_EXPORT_KEYPAIR_UI', PMExportKeypairUiPayload> | RpcEnvelope<'PM_GET_RECENT_UNLOCKS'> | RpcEnvelope<'PM_SET_CONFIRM_BEHAVIOR', PMSetConfirmBehaviorPayload> | RpcEnvelope<'PM_SET_CONFIRMATION_CONFIG', PMSetConfirmationConfigPayload> | RpcEnvelope<'PM_GET_CONFIRMATION_CONFIG'> | RpcEnvelope<'PM_HAS_PASSKEY', PMHasPasskeyPayload> | RpcEnvelope<'PM_LIST_LINKED_DEVICES', PMListLinkedDevicesPayload> | RpcEnvelope<'PM_REVOKE_LINKED_DEVICE', PMRevokeLinkedDevicePayload> | RpcEnvelope<'PM_SCAN_AND_LINK_DEVICE', {
624
628
  qrData: QrLinkedDeviceSessionPayloadV5;
625
629
  options?: {
626
630
  confirmationConfig?: Partial<ConfirmationConfig>;
@@ -0,0 +1,6 @@
1
+ import type { WalletRecoveryOwnerFactor } from '../../publicApi/types';
2
+ export declare function parseWalletRecoveryRequest(value: unknown): {
3
+ readonly walletId: string;
4
+ readonly authorization: WalletRecoveryOwnerFactor;
5
+ };
6
+ //# sourceMappingURL=recoveryAuthorization.d.ts.map
@@ -1,17 +1,28 @@
1
1
  import { type WalletRecoveryCodeSet } from '../../../../../shared-ts/src/wallet-recovery';
2
2
  type PendingWalletRecoveryCodeBackup = {
3
+ readonly kind: 'awaiting_commit';
3
4
  readonly walletId: string;
4
5
  readonly recoveryCodes: WalletRecoveryCodeSet;
6
+ readonly issuedAtMs?: never;
7
+ } | {
8
+ readonly kind: 'ready';
9
+ readonly walletId: string;
10
+ readonly recoveryCodes: WalletRecoveryCodeSet;
11
+ readonly issuedAtMs: number;
12
+ };
13
+ export type PendingWalletRecoveryBackupRef = {
14
+ readonly walletId: string;
15
+ readonly pendingBackupId: string;
5
16
  };
6
17
  declare class PendingWalletRecoveryCodeBackupRepository {
7
18
  write(input: {
8
19
  readonly walletId: string;
9
20
  readonly recoveryCodes: readonly string[];
10
- readonly issuedAtMs?: number;
11
- }): Promise<void>;
21
+ }): Promise<PendingWalletRecoveryBackupRef>;
12
22
  read(walletIdInput: string): Promise<PendingWalletRecoveryCodeBackup | null>;
13
23
  has(walletId: string): Promise<boolean>;
14
- delete(walletIdInput: string): Promise<void>;
24
+ bindIssuedAtMs(ref: PendingWalletRecoveryBackupRef, serverIssuedAtMs: number): Promise<void>;
25
+ deleteIssuedAtMs(walletIdInput: string, issuedAtMs: number): Promise<void>;
15
26
  }
16
27
  export declare const pendingWalletRecoveryCodeBackupRepository: PendingWalletRecoveryCodeBackupRepository;
17
28
  export {};
@@ -59,12 +59,17 @@ export type WalletRecoveryCodeStatusResult = {
59
59
  export declare function readWalletRecoveryCodeStatus(args: {
60
60
  readonly relayUrl: string;
61
61
  readonly walletId: string;
62
+ readonly requestId: string;
63
+ readonly factorProof: WalletCustodyFactorProof;
62
64
  readonly fetchImpl?: typeof fetch;
63
65
  }): Promise<WalletRecoveryCodeStatusResult>;
64
66
  export type WalletRecoveryBackupAcknowledgementResult = {
65
67
  readonly kind: 'acknowledged';
66
68
  readonly walletId: string;
67
69
  readonly issuedAtMs: number;
70
+ } | {
71
+ readonly kind: 'conflict';
72
+ readonly message: string;
68
73
  } | {
69
74
  readonly kind: 'no_recovery_set';
70
75
  readonly message: string;
@@ -78,6 +83,9 @@ export type WalletRecoveryBackupAcknowledgementResult = {
78
83
  export declare function acknowledgeWalletRecoveryBackup(args: {
79
84
  readonly relayUrl: string;
80
85
  readonly walletId: string;
86
+ readonly requestId: string;
87
+ readonly expectedIssuedAtMs: number;
88
+ readonly factorProof: WalletCustodyFactorProof;
81
89
  readonly fetchImpl?: typeof fetch;
82
90
  }): Promise<WalletRecoveryBackupAcknowledgementResult>;
83
91
  export type WalletRecoverySetRotateResult = {
@@ -16,6 +16,7 @@ export type RecoveryBackupCloseDetail = {
16
16
  } | {
17
17
  readonly kind: 'recovery_codes';
18
18
  readonly acknowledged: boolean;
19
+ readonly request: WalletRecoveryCodeBackupRequestV1;
19
20
  };
20
21
  export type RecoveryBackupStage = 'summary' | 'opening' | 'recovery_codes';
21
22
  type SummaryLoadState = {
@@ -1,5 +1,5 @@
1
1
  import type { ChildToParentEnvelope, ParentToChildEnvelope } from '../../../../SeamsWeb/walletIframe/shared/messages';
2
- import type { TransactionReceiptModel, TransactionReceiptState, TransactionReceiptView } from './transaction-receipt';
2
+ import type { ReceiptProgress, TransactionReceiptModel, TransactionReceiptView } from './transaction-receipt';
3
3
  type ReceiptSurface = {
4
4
  readonly element: HTMLElement;
5
5
  showReceipt(model: TransactionReceiptModel): void;
@@ -9,7 +9,7 @@ type Activity = {
9
9
  requestId: string;
10
10
  post: (message: ChildToParentEnvelope) => void;
11
11
  surface: ReceiptSurface | null;
12
- state: TransactionReceiptState;
12
+ progress: ReceiptProgress;
13
13
  view: TransactionReceiptView;
14
14
  retained: boolean;
15
15
  signingHash: string | null;
@@ -19,15 +19,34 @@ export type TransactionReceiptState = {
19
19
  hash: string | null;
20
20
  message: string;
21
21
  };
22
+ export type MessageReceiptState = {
23
+ kind: 'signing';
24
+ message?: never;
25
+ } | {
26
+ kind: 'signed';
27
+ message?: never;
28
+ } | {
29
+ kind: 'failed';
30
+ message: string;
31
+ };
32
+ export type ReceiptProgress = {
33
+ readonly subject: 'transaction';
34
+ readonly state: TransactionReceiptState;
35
+ } | {
36
+ readonly subject: 'message';
37
+ readonly state: MessageReceiptState;
38
+ };
22
39
  export type TransactionReceiptView = 'expanded' | 'toast';
23
- export type TransactionReceiptModel = {
24
- state: TransactionReceiptState;
40
+ export type TransactionReceiptModel = ReceiptProgress & {
25
41
  view: TransactionReceiptView;
26
42
  onView: (view: TransactionReceiptView) => void;
27
43
  onDismiss: () => void;
28
44
  };
29
- export declare function receiptIsPending(state: TransactionReceiptState): boolean;
30
- export declare function receiptCompletedStages(state: TransactionReceiptState): 0 | 1 | 2 | 3;
31
- export declare function receiptHeading(state: TransactionReceiptState): string;
32
- export declare function receiptDescription(state: TransactionReceiptState): string;
45
+ export declare function receiptIsPending(receipt: ReceiptProgress): boolean;
46
+ export declare function receiptIsComplete(receipt: ReceiptProgress): boolean;
47
+ /** A message signature has one stage, so its toast fills at once when signed. */
48
+ export declare function receiptCompletedStages(receipt: ReceiptProgress): 0 | 1 | 2 | 3;
49
+ export declare function receiptTitle(receipt: ReceiptProgress): string;
50
+ export declare function receiptHeading(receipt: ReceiptProgress): string;
51
+ export declare function receiptDescription(receipt: ReceiptProgress): string;
33
52
  //# sourceMappingURL=transaction-receipt.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import { type WalletRecoverySetRotationWorkerResultV1 } from '../../../../../shared-ts/src/wallet-recovery/walletRecoveryRotation';
2
2
  import type { PasskeyCustodyEnvelopeRecord } from '../../../../../shared-ts/src/passkey-custody';
3
+ import type { WalletRecoverySetRotationWireV1 } from '../../../../../shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet';
3
4
  import { type WalletCustodyFactorProof, type WalletRecoverySetRotateResult } from '../../rpcClients/relayer/walletRecoveryRotate';
4
5
  type WalletRecoveryRotationWorker = {
5
6
  rotateRecoverySet(args: {
@@ -8,10 +9,26 @@ type WalletRecoveryRotationWorker = {
8
9
  readonly recoveryCodesJson: string;
9
10
  }): Promise<WalletRecoverySetRotationWorkerResultV1>;
10
11
  };
11
- export type WalletRecoveryFactorProofFactory = (input: {
12
+ export type WalletRecoveryFactorProofRequest = {
13
+ readonly operation: 'recovery_status';
14
+ readonly payload: {
15
+ readonly walletId: string;
16
+ readonly requestId: string;
17
+ };
18
+ } | {
12
19
  readonly operation: 'recovery_rotate';
13
- readonly payload: Record<string, unknown>;
14
- }) => Promise<WalletCustodyFactorProof>;
20
+ readonly payload: {
21
+ readonly walletId: string;
22
+ readonly expectedStoreVersion: string;
23
+ readonly manifestKekWraps: WalletRecoverySetRotationWireV1['manifestKekWraps'];
24
+ readonly entries: readonly WalletRecoverySetRotationWireV1['entry'][];
25
+ readonly recoveryCodeLocators: readonly {
26
+ readonly locatorB64u: string;
27
+ readonly recoveryKeyId: string;
28
+ }[];
29
+ };
30
+ };
31
+ export type WalletRecoveryFactorProofFactory = (request: WalletRecoveryFactorProofRequest) => Promise<WalletCustodyFactorProof>;
15
32
  type EmailOtpWalletRecoveryRotationWorker = {
16
33
  rotateRecoverySet(args: {
17
34
  readonly recoveryCodesJson: string;
@@ -36,6 +53,7 @@ export declare function rotateWalletRecoverySetWithActiveFactorV1(input: {
36
53
  readonly relayUrl: string;
37
54
  readonly walletId: string;
38
55
  readonly factorProof: WalletRecoveryFactorProofFactory;
56
+ readonly statusRequestId: string;
39
57
  readonly custodyEnvelope: PasskeyCustodyEnvelopeRecord;
40
58
  readonly factorSecret: ArrayBuffer;
41
59
  readonly worker: WalletRecoveryRotationWorker;
@@ -45,6 +63,7 @@ export declare function rotateWalletRecoverySetWithEmailOtpV1(input: {
45
63
  readonly relayUrl: string;
46
64
  readonly walletId: string;
47
65
  readonly factorProof: WalletRecoveryFactorProofFactory;
66
+ readonly statusRequestId: string;
48
67
  readonly worker: EmailOtpWalletRecoveryRotationWorker;
49
68
  readonly fetchImpl?: typeof fetch;
50
69
  }): Promise<WalletRecoveryRotationOutcome>;
@@ -570,6 +570,7 @@ export interface EmailOtpWorkerOperationMap {
570
570
  payload: {
571
571
  relayUrl: string;
572
572
  walletId: string;
573
+ walletAuthMethodId: string;
573
574
  userId: string;
574
575
  groupId: string;
575
576
  routePlan: EmailOtpRoutePlan;
@@ -107,6 +107,7 @@ export declare function loginWithEmailOtpAndUnlockWallet(args: {
107
107
  export type EmailOtpWalletCustodySeedUnlock = {
108
108
  readonly relayUrl: string;
109
109
  readonly walletId: string;
110
+ readonly walletAuthMethodId: string;
110
111
  readonly userId: string;
111
112
  readonly groupId: string;
112
113
  readonly routePlan: EmailOtpRoutePlan;
@@ -280,12 +280,18 @@ export interface AfterCall<T> {
280
280
  (success: true, result: T): void | Promise<void>;
281
281
  (success: false, result?: undefined, error?: Error): void | Promise<void>;
282
282
  }
283
- export type WalletRecoveryCodeBackupRequestV1 = {
283
+ type WalletRecoveryCodeBackupRequestBaseV1 = {
284
284
  readonly kind: 'wallet_recovery_code_backup_request_v1';
285
285
  readonly walletId: string;
286
286
  readonly recoveryCodes: readonly string[];
287
- readonly continuation: 'registration_may_defer' | 'pending_backup_must_finish';
288
287
  };
288
+ export type WalletRecoveryCodeBackupRequestV1 = WalletRecoveryCodeBackupRequestBaseV1 & ({
289
+ readonly continuation: 'registration_may_defer';
290
+ readonly issuedAtMs?: never;
291
+ } | {
292
+ readonly continuation: 'pending_backup_must_finish';
293
+ readonly issuedAtMs: number;
294
+ });
289
295
  export type WalletRecoveryCodeBackupAcknowledgementV1 = {
290
296
  readonly kind: 'wallet_recovery_codes_backed_up_v1';
291
297
  } | {