@seams/wallet 0.23.0 → 0.24.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 (601) hide show
  1. package/README.md +19 -2
  2. package/THIRD_PARTY_NOTICES.md +182 -5
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +1 -0
  5. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +3 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/authMenuAnchor.js +44 -0
  7. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +4 -6
  8. package/dist/esm/SeamsWeb/walletIframe/client/registrationCommands.js +12 -0
  9. package/dist/esm/SeamsWeb/walletIframe/client/router.js +67 -31
  10. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +4 -0
  11. package/dist/esm/SeamsWeb/walletIframe/client/surface/geometry.js +2 -2
  12. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.js +2 -2
  13. package/dist/esm/SeamsWeb/walletIframe/host/auth-menu/domain.js +22 -3
  14. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +6 -2
  15. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +1 -3
  16. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +81 -19
  17. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +1 -4
  18. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +7 -11
  19. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +86 -0
  20. package/dist/esm/SeamsWeb/walletIframe/shared/configuration.js +23 -1
  21. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +1 -0
  22. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
  23. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +20 -1
  24. package/dist/esm/core/authMethods/availability.js +28 -0
  25. package/dist/esm/core/authMethods/availabilityTypes.js +29 -0
  26. package/dist/esm/core/authMethods/plugins.js +17 -0
  27. package/dist/esm/core/config/configBuilder.js +2 -0
  28. package/dist/esm/core/config/defaultConfigs.js +1 -0
  29. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +41 -2
  30. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +3 -0
  31. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +1 -1
  32. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
  33. package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +2 -1
  34. package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +29 -12
  35. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +1 -0
  36. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +2 -1
  37. package/dist/esm/core/signingEngine/flows/signNear/requireNearStepUpAuth.js +1 -0
  38. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +1 -1
  39. package/dist/esm/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +5 -0
  40. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +16 -12
  41. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +2 -3
  42. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +16 -1
  43. package/dist/esm/core/signingEngine/session/identity/signingLaneAuthBinding.js +6 -0
  44. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +3 -0
  45. package/dist/esm/core/signingEngine/session/operationState/lanes.js +21 -4
  46. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +94 -0
  47. package/dist/esm/core/signingEngine/stepUpConfirmation/methodSelection.js +1 -0
  48. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +19 -2
  49. package/dist/esm/core/signingEngine/uiConfirm/ui/confirmation-model.js +3 -1
  50. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +6 -0
  51. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +59 -23
  52. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +13 -0
  53. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +48 -16
  54. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +146 -9
  55. package/dist/esm/core/signingEngine/walletCustody/ceremonyStepRunner.js +8 -0
  56. package/dist/esm/core/signingEngine/walletCustody/resealedEnvelopeResult.js +24 -0
  57. package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +74 -0
  58. package/dist/esm/core/signingEngine/workerManager/workerDeferred.js +25 -0
  59. package/dist/esm/core/ui/messages.js +15 -4
  60. package/dist/esm/externalNear/controller.js +36 -0
  61. package/dist/esm/externalNear/hot.js +1 -0
  62. package/dist/esm/externalNear/intear.js +1 -0
  63. package/dist/esm/externalNear/message.js +60 -0
  64. package/dist/esm/externalNear/meteor.js +12 -0
  65. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +10 -22
  66. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +2 -2
  67. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +7 -4
  68. package/dist/esm/react/components/AccountMenuButton/AddEvmAccount.js +124 -0
  69. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +41 -23
  70. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +220 -164
  71. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +7 -5
  72. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +142 -36
  73. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +11 -2
  74. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +12 -10
  75. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +1 -1
  76. package/dist/esm/react/components/AccountMenuButton/VoiceIdAvailabilityControl.js +186 -0
  77. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +10 -8
  78. package/dist/esm/react/components/AccountMenuButton/icons/ChevronRightIcon.js +8 -0
  79. package/dist/esm/react/components/AccountMenuButton/icons/WalletIcon.js +8 -0
  80. package/dist/esm/react/components/AccountMenuButton/index.js +35 -13
  81. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +8 -4
  82. package/dist/esm/react/context/useLoginStateRefresher.js +10 -2
  83. package/dist/esm/react/index.js +2 -4
  84. package/dist/esm/react/styles/styles.css +22 -332
  85. package/dist/esm/react/styles.css +0 -1
  86. package/dist/esm/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  87. package/dist/esm/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  88. package/dist/esm/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  89. package/dist/esm/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  90. package/dist/esm/sdk/actions-GYsSR2Q2.js +1 -0
  91. package/dist/esm/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  92. package/dist/esm/sdk/adapters-D5MZ5NG5.js +2 -0
  93. package/dist/esm/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  94. package/dist/esm/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  95. package/dist/esm/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  96. package/dist/esm/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  97. package/dist/esm/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  98. package/dist/esm/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  99. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  100. package/dist/esm/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  101. package/dist/esm/sdk/configBuilder-DrxXNUpV.js +1 -0
  102. package/dist/esm/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  103. package/dist/esm/sdk/configuration-CAqANpTI.js +1 -0
  104. package/dist/esm/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  105. package/dist/esm/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  106. package/dist/esm/sdk/domainIds-t1lp25yU.js +1 -0
  107. package/dist/esm/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  108. package/dist/esm/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  109. package/dist/esm/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  110. package/dist/esm/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  111. package/dist/esm/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  112. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  113. package/dist/esm/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  114. package/dist/esm/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  115. package/dist/esm/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  116. package/dist/esm/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  117. package/dist/esm/sdk/{helpers-BXezXx19.js → helpers-CXqXyyCU.js} +1 -1
  118. package/dist/esm/sdk/host-C0Is56lU.js +1 -0
  119. package/dist/esm/sdk/icons-DyndJzSh.js +1 -0
  120. package/dist/esm/sdk/indexedDB-C1odKEC6.js +1 -0
  121. package/dist/esm/sdk/intentDigest-BMXki7yB.js +1 -0
  122. package/dist/esm/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  123. package/dist/esm/sdk/lanes-C7OvAK_L.js +1 -0
  124. package/dist/esm/sdk/localOnly-BB3Rx3J6.js +1 -0
  125. package/dist/esm/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  126. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-D3QFgMGE.js → mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  127. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  128. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  129. package/dist/esm/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  130. package/dist/esm/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  131. package/dist/esm/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  132. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  133. package/dist/esm/sdk/presignaturePool-CultzkOG.js +1 -0
  134. package/dist/esm/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  135. package/dist/esm/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  136. package/dist/esm/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  137. package/dist/esm/sdk/registration-CM5a7WYO.js +1 -0
  138. package/dist/esm/sdk/registration-Hv0xi7-L.js +1 -0
  139. package/dist/esm/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  140. package/dist/esm/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  141. package/dist/esm/sdk/registrationIntent-DTs2SR9E.js +1 -0
  142. package/dist/esm/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  143. package/dist/esm/sdk/{requireStepUpAuth-DsNLml1i.js → requireStepUpAuth-B7tC4MrA.js} +1 -1
  144. package/dist/esm/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  145. package/dist/esm/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  146. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  147. package/dist/esm/sdk/runtime-auth-CVw1KoVD.js +1 -0
  148. package/dist/esm/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  149. package/dist/esm/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  150. package/dist/esm/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  151. package/dist/esm/sdk/runtime-export-upMPrZ4V.js +1 -0
  152. package/dist/esm/sdk/runtime-near-B64Hn3nc.js +1 -0
  153. package/dist/esm/sdk/runtime-preferences-CULdHkbg.js +1 -0
  154. package/dist/esm/sdk/runtime-recovery-D2saBaJy.js +1 -0
  155. package/dist/esm/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  156. package/dist/esm/sdk/runtimeContext-CNFJjcns.js +6 -0
  157. package/dist/{public/sdk/sdkSentEvents-BzMVO1AR.js → esm/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  158. package/dist/{public/sdk/secp256k1-CYu8ENjP.js → esm/sdk/secp256k1-BGVlx50C.js} +1 -1
  159. package/dist/esm/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  160. package/dist/esm/sdk/shared-DcHtE-D-.js +1 -0
  161. package/dist/esm/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  162. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  163. package/dist/esm/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  164. package/dist/esm/sdk/signNear-r8VCOoTh.js +1 -0
  165. package/dist/esm/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  166. package/dist/esm/sdk/signerDomain-D-EUTlLK.js +1 -0
  167. package/dist/esm/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  168. package/dist/{public/sdk/signingFlow-Co_QtuHK.js → esm/sdk/signingFlow-BVvteILM.js} +1 -1
  169. package/dist/{public/sdk/signingQueue-Cj9sCJLj.js → esm/sdk/signingQueue-BJzOrwDq.js} +1 -1
  170. package/dist/esm/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  171. package/dist/{public/sdk/thresholdEcdsa-LvkD6z8-.js → esm/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  172. package/dist/esm/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  173. package/dist/esm/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  174. package/dist/esm/sdk/transactionReview-DSGnpreN.js +1 -0
  175. package/dist/esm/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  176. package/dist/{public/sdk/transactionState-BaFSiA9t.js → esm/sdk/transactionState-BS1VLT7B.js} +1 -1
  177. package/dist/esm/sdk/tx-confirm-ui.js +418 -109
  178. package/dist/esm/sdk/types-DdzuHlAQ.js +1 -0
  179. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  180. package/dist/esm/sdk/voiceid-host.js +1 -0
  181. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  182. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  183. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  184. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  185. package/dist/esm/sdk/wallet-recovery-BjIQdOha.js +1 -0
  186. package/dist/esm/sdk/wallet-ui.css +1 -1
  187. package/dist/esm/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  188. package/dist/esm/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  189. package/dist/esm/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  190. package/dist/esm/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  191. package/dist/esm/sdk/walletDbName-DDJXrgA5.js +1 -0
  192. package/dist/esm/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  193. package/dist/esm/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  194. package/dist/esm/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  195. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  196. package/dist/esm/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  197. package/dist/{public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → esm/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  198. package/dist/esm/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  199. package/dist/esm/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  200. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +4 -1
  201. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +11 -2
  202. package/dist/esm/shared-ts/src/authorization/voiceIdDeviceAssertion.js +110 -0
  203. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +1 -0
  204. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +1 -0
  205. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +17 -9
  206. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +62 -3
  207. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +1 -1
  208. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +5 -2
  209. package/dist/esm/shared-ts/src/utils/domainIds.js +14 -1
  210. package/dist/esm/shared-ts/src/utils/signerDomain.js +4 -2
  211. package/dist/esm/shared-ts/src/utils/validation.js +4 -1
  212. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +46 -2
  213. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +116 -6
  214. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +39 -1
  215. package/dist/esm/voiceid-host.js +47 -0
  216. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  217. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  218. package/dist/public/headers.manifest.json +1 -1
  219. package/dist/public/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  220. package/dist/public/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  221. package/dist/public/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  222. package/dist/public/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  223. package/dist/public/sdk/actions-GYsSR2Q2.js +1 -0
  224. package/dist/public/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  225. package/dist/public/sdk/adapters-D5MZ5NG5.js +2 -0
  226. package/dist/public/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  227. package/dist/public/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  228. package/dist/public/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  229. package/dist/public/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  230. package/dist/public/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  231. package/dist/public/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  232. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  233. package/dist/public/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  234. package/dist/public/sdk/configBuilder-DrxXNUpV.js +1 -0
  235. package/dist/public/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  236. package/dist/public/sdk/configuration-CAqANpTI.js +1 -0
  237. package/dist/public/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  238. package/dist/public/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  239. package/dist/public/sdk/domainIds-t1lp25yU.js +1 -0
  240. package/dist/public/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  241. package/dist/public/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  242. package/dist/public/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  243. package/dist/public/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  244. package/dist/public/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  245. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  246. package/dist/public/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  247. package/dist/public/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  248. package/dist/public/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  249. package/dist/public/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  250. package/dist/public/sdk/{helpers-BXezXx19.js → helpers-CXqXyyCU.js} +1 -1
  251. package/dist/public/sdk/host-C0Is56lU.js +1 -0
  252. package/dist/public/sdk/icons-DyndJzSh.js +1 -0
  253. package/dist/public/sdk/indexedDB-C1odKEC6.js +1 -0
  254. package/dist/public/sdk/intentDigest-BMXki7yB.js +1 -0
  255. package/dist/public/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  256. package/dist/public/sdk/lanes-C7OvAK_L.js +1 -0
  257. package/dist/public/sdk/localOnly-BB3Rx3J6.js +1 -0
  258. package/dist/public/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  259. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-D3QFgMGE.js → mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  260. package/dist/public/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  261. package/dist/public/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  262. package/dist/public/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  263. package/dist/public/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  264. package/dist/public/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  265. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  266. package/dist/public/sdk/presignaturePool-CultzkOG.js +1 -0
  267. package/dist/public/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  268. package/dist/public/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  269. package/dist/public/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  270. package/dist/public/sdk/registration-CM5a7WYO.js +1 -0
  271. package/dist/public/sdk/registration-Hv0xi7-L.js +1 -0
  272. package/dist/public/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  273. package/dist/public/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  274. package/dist/public/sdk/registrationIntent-DTs2SR9E.js +1 -0
  275. package/dist/public/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  276. package/dist/public/sdk/{requireStepUpAuth-DsNLml1i.js → requireStepUpAuth-B7tC4MrA.js} +1 -1
  277. package/dist/public/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  278. package/dist/public/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  279. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  280. package/dist/public/sdk/runtime-auth-CVw1KoVD.js +1 -0
  281. package/dist/public/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  282. package/dist/public/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  283. package/dist/public/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  284. package/dist/public/sdk/runtime-export-upMPrZ4V.js +1 -0
  285. package/dist/public/sdk/runtime-near-B64Hn3nc.js +1 -0
  286. package/dist/public/sdk/runtime-preferences-CULdHkbg.js +1 -0
  287. package/dist/public/sdk/runtime-recovery-D2saBaJy.js +1 -0
  288. package/dist/public/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  289. package/dist/public/sdk/runtimeContext-CNFJjcns.js +6 -0
  290. package/dist/{esm/sdk/sdkSentEvents-BzMVO1AR.js → public/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  291. package/dist/{esm/sdk/secp256k1-CYu8ENjP.js → public/sdk/secp256k1-BGVlx50C.js} +1 -1
  292. package/dist/public/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  293. package/dist/public/sdk/shared-DcHtE-D-.js +1 -0
  294. package/dist/public/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  295. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  296. package/dist/public/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  297. package/dist/public/sdk/signNear-r8VCOoTh.js +1 -0
  298. package/dist/public/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  299. package/dist/public/sdk/signerDomain-D-EUTlLK.js +1 -0
  300. package/dist/public/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  301. package/dist/{esm/sdk/signingFlow-Co_QtuHK.js → public/sdk/signingFlow-BVvteILM.js} +1 -1
  302. package/dist/{esm/sdk/signingQueue-Cj9sCJLj.js → public/sdk/signingQueue-BJzOrwDq.js} +1 -1
  303. package/dist/public/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  304. package/dist/{esm/sdk/thresholdEcdsa-LvkD6z8-.js → public/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  305. package/dist/public/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  306. package/dist/public/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  307. package/dist/public/sdk/transactionReview-DSGnpreN.js +1 -0
  308. package/dist/public/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  309. package/dist/{esm/sdk/transactionState-BaFSiA9t.js → public/sdk/transactionState-BS1VLT7B.js} +1 -1
  310. package/dist/public/sdk/tx-confirm-ui.js +418 -109
  311. package/dist/public/sdk/types-DdzuHlAQ.js +1 -0
  312. package/dist/public/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  313. package/dist/public/sdk/voiceid-host.js +1 -0
  314. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  315. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  316. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  317. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  318. package/dist/public/sdk/wallet-recovery-BjIQdOha.js +1 -0
  319. package/dist/public/sdk/wallet-ui.css +1 -1
  320. package/dist/public/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  321. package/dist/public/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  322. package/dist/public/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  323. package/dist/public/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  324. package/dist/public/sdk/walletDbName-DDJXrgA5.js +1 -0
  325. package/dist/public/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  326. package/dist/public/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  327. package/dist/public/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  328. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  329. package/dist/public/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  330. package/dist/{esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → public/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  331. package/dist/public/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  332. package/dist/public/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  333. package/dist/public/sdk/workers/device-linking-key.worker.js +93 -5
  334. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +67 -65
  335. package/dist/public/sdk/workers/email-otp.worker.js +93 -4
  336. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +21 -2
  337. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  338. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +20 -2
  339. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  340. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  341. package/dist/public/wallet-assets.manifest.json +503 -239
  342. package/dist/public/wallet-service/index.html +4 -4
  343. package/dist/types/shared-ts/src/authorization/voiceIdDeviceAssertion.d.ts +32 -0
  344. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -1
  345. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -0
  346. package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +4 -4
  347. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +29 -0
  348. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +1 -0
  349. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +2 -2
  350. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +2 -1
  351. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +10 -2
  352. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +2 -2
  353. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +9 -0
  354. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +3 -3
  355. package/dist/types/shared-ts/src/utils/domainIds.d.ts +4 -5
  356. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +0 -1
  357. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -0
  358. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +32 -2
  359. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +15 -1
  360. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +20 -0
  361. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.d.ts +2 -2
  362. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  363. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +1 -1
  364. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +22 -0
  365. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -0
  366. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +2 -0
  367. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/authMenuAnchor.d.ts +17 -0
  368. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
  369. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/geometry.d.ts +0 -1
  370. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +2 -1
  371. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +9 -0
  372. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +15 -0
  373. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createRegistrationCommands.d.ts +2 -1
  374. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +7 -2
  375. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +2 -2
  376. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeContext.d.ts +3 -0
  377. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +4 -0
  378. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +0 -1
  379. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +2 -2
  380. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMutationGuard.d.ts +2 -0
  381. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +15 -4
  382. package/dist/types/wallet/src/core/authMethods/availability.d.ts +13 -0
  383. package/dist/types/wallet/src/core/authMethods/availabilityTypes.d.ts +13 -0
  384. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +82 -0
  385. package/dist/types/wallet/src/core/authMethods/hostRegistry.d.ts +5 -0
  386. package/dist/types/wallet/src/core/authMethods/installSession.d.ts +15 -0
  387. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +7 -0
  388. package/dist/types/wallet/src/core/authMethods/prepareEcdsaSession.d.ts +6 -0
  389. package/dist/types/wallet/src/core/authMethods/prepareNearSession.d.ts +18 -0
  390. package/dist/types/wallet/src/core/authMethods/sessionIdentity.d.ts +53 -0
  391. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +11 -1
  392. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +53 -2
  393. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -0
  394. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +1 -1
  395. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportMaterial.d.ts +6 -3
  396. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/ecdsaSelection.d.ts +8 -2
  397. package/dist/types/wallet/src/core/signingEngine/session/availability/availableSigningLanes.d.ts +10 -10
  398. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +1 -1
  399. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +3 -1
  400. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +16 -4
  401. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +13 -4
  402. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +15 -6
  403. package/dist/types/wallet/src/core/signingEngine/session/operationState/lanes.d.ts +11 -4
  404. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +3 -3
  405. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.d.ts +6 -0
  406. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodSelection.d.ts +1 -1
  407. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +1 -1
  408. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +6 -0
  409. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +11 -1
  410. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-ui-types.d.ts +2 -0
  411. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirmation-model.d.ts +1 -1
  412. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +1 -0
  413. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +4 -0
  414. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +1 -1
  415. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +2 -2
  416. package/dist/types/wallet/src/core/signingEngine/walletCustody/resealedEnvelopeResult.d.ts +10 -0
  417. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +1 -1
  418. package/dist/types/wallet/src/core/types/seams.d.ts +4 -0
  419. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  420. package/dist/types/wallet/src/externalNear/controller.d.ts +2 -1
  421. package/dist/types/wallet/src/externalNear/hot.d.ts +3 -2
  422. package/dist/types/wallet/src/externalNear/index.d.ts +1 -1
  423. package/dist/types/wallet/src/externalNear/intear.d.ts +3 -2
  424. package/dist/types/wallet/src/externalNear/message.d.ts +14 -0
  425. package/dist/types/wallet/src/externalNear/meteor.d.ts +5 -2
  426. package/dist/types/wallet/src/externalNear/meteorRequest.d.ts +1 -1
  427. package/dist/types/wallet/src/externalNear/types.d.ts +22 -2
  428. package/dist/types/wallet/src/index.d.ts +1 -0
  429. package/dist/types/wallet/src/react/components/AccountMenuButton/AddEvmAccount.d.ts +29 -0
  430. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodRow.d.ts +8 -3
  431. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsView.d.ts +1 -2
  432. package/dist/types/wallet/src/react/components/AccountMenuButton/VoiceIdAvailabilityControl.d.ts +19 -0
  433. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ChevronRightIcon.d.ts +2 -0
  434. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/WalletIcon.d.ts +2 -0
  435. package/dist/types/wallet/src/react/index.d.ts +1 -4
  436. package/dist/types/wallet/src/voiceid-host.d.ts +52 -0
  437. package/dist/workers/device-linking-key.worker.js +93 -5
  438. package/dist/workers/ecdsa-derivation-client.worker.js +67 -65
  439. package/dist/workers/email-otp.worker.js +93 -4
  440. package/dist/workers/passkey-mpc-export.worker.js +21 -2
  441. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  442. package/dist/workers/wallet-custody-ceremony.worker.js +20 -2
  443. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  444. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  445. package/package.json +8 -3
  446. package/dist/esm/react/components/AccountMenuButton/icons/PlusIcon.js +0 -8
  447. package/dist/esm/react/components/VoiceAssistantCard.css +0 -313
  448. package/dist/esm/react/components/VoiceAssistantCard.js +0 -150
  449. package/dist/esm/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  450. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +0 -1
  451. package/dist/esm/sdk/adapters-CgJpSAxH.js +0 -2
  452. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  453. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  454. package/dist/esm/sdk/configBuilder-BMNShuOu.js +0 -1
  455. package/dist/esm/sdk/domainIds-C3fUa33Q.js +0 -1
  456. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  457. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  458. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  459. package/dist/esm/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  460. package/dist/esm/sdk/host-C5KYWEcs.js +0 -1
  461. package/dist/esm/sdk/intentDigest--FZ63NBy.js +0 -1
  462. package/dist/esm/sdk/lanes-l274pbT5.js +0 -1
  463. package/dist/esm/sdk/localOnly-CvFSZFUy.js +0 -1
  464. package/dist/esm/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  465. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  466. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  467. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  468. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +0 -1
  469. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  470. package/dist/esm/sdk/registration-CIxJvbTo.js +0 -1
  471. package/dist/esm/sdk/registration-CeOmKyCG.js +0 -1
  472. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +0 -1
  473. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  474. package/dist/esm/sdk/runtime-auth-C0V-5znH.js +0 -1
  475. package/dist/esm/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  476. package/dist/esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  477. package/dist/esm/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  478. package/dist/esm/sdk/runtime-export-Ba12ChDI.js +0 -1
  479. package/dist/esm/sdk/runtime-near-DRrdWzmr.js +0 -1
  480. package/dist/esm/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  481. package/dist/esm/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  482. package/dist/esm/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  483. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  484. package/dist/esm/sdk/shared-B95wnpoD.js +0 -6
  485. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +0 -1
  486. package/dist/esm/sdk/signNear-B_UcqMRf.js +0 -1
  487. package/dist/esm/sdk/signerDomain-YEHkugWX.js +0 -1
  488. package/dist/esm/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  489. package/dist/esm/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  490. package/dist/esm/sdk/types-BrEW276O.js +0 -1
  491. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +0 -1
  492. package/dist/esm/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  493. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  494. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  495. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  496. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +0 -1
  497. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  498. package/dist/esm/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  499. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  500. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  501. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  502. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  503. package/dist/public/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  504. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +0 -1
  505. package/dist/public/sdk/adapters-CgJpSAxH.js +0 -2
  506. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  507. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  508. package/dist/public/sdk/configBuilder-BMNShuOu.js +0 -1
  509. package/dist/public/sdk/domainIds-C3fUa33Q.js +0 -1
  510. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  511. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  512. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  513. package/dist/public/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  514. package/dist/public/sdk/host-C5KYWEcs.js +0 -1
  515. package/dist/public/sdk/intentDigest--FZ63NBy.js +0 -1
  516. package/dist/public/sdk/lanes-l274pbT5.js +0 -1
  517. package/dist/public/sdk/localOnly-CvFSZFUy.js +0 -1
  518. package/dist/public/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  519. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  520. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  521. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  522. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +0 -1
  523. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  524. package/dist/public/sdk/registration-CIxJvbTo.js +0 -1
  525. package/dist/public/sdk/registration-CeOmKyCG.js +0 -1
  526. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +0 -1
  527. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  528. package/dist/public/sdk/runtime-auth-C0V-5znH.js +0 -1
  529. package/dist/public/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  530. package/dist/public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  531. package/dist/public/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  532. package/dist/public/sdk/runtime-export-Ba12ChDI.js +0 -1
  533. package/dist/public/sdk/runtime-near-DRrdWzmr.js +0 -1
  534. package/dist/public/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  535. package/dist/public/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  536. package/dist/public/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  537. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  538. package/dist/public/sdk/shared-B95wnpoD.js +0 -6
  539. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +0 -1
  540. package/dist/public/sdk/signNear-B_UcqMRf.js +0 -1
  541. package/dist/public/sdk/signerDomain-YEHkugWX.js +0 -1
  542. package/dist/public/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  543. package/dist/public/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  544. package/dist/public/sdk/types-BrEW276O.js +0 -1
  545. package/dist/public/sdk/wallet-recovery-BEui57xM.js +0 -1
  546. package/dist/public/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  547. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  548. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  549. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  550. package/dist/public/sdk/walletDbName-BVZhb4xF.js +0 -1
  551. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  552. package/dist/public/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  553. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  554. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  555. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  556. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  557. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/PlusIcon.d.ts +0 -2
  558. package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +0 -37
  559. package/dist/types/wallet/src/react/components/VoiceAssistantCard.typecheck.d.ts +0 -2
  560. /package/dist/esm/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  561. /package/dist/esm/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  562. /package/dist/esm/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  563. /package/dist/esm/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  564. /package/dist/esm/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  565. /package/dist/esm/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  566. /package/dist/esm/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  567. /package/dist/esm/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  568. /package/dist/esm/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  569. /package/dist/esm/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  570. /package/dist/esm/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  571. /package/dist/esm/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  572. /package/dist/esm/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  573. /package/dist/esm/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  574. /package/dist/esm/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  575. /package/dist/esm/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  576. /package/dist/esm/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  577. /package/dist/esm/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  578. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  579. /package/dist/esm/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  580. /package/dist/esm/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.js} +0 -0
  581. /package/dist/public/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  582. /package/dist/public/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  583. /package/dist/public/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  584. /package/dist/public/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  585. /package/dist/public/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  586. /package/dist/public/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  587. /package/dist/public/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  588. /package/dist/public/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  589. /package/dist/public/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  590. /package/dist/public/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  591. /package/dist/public/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  592. /package/dist/public/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  593. /package/dist/public/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  594. /package/dist/public/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  595. /package/dist/public/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  596. /package/dist/public/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  597. /package/dist/public/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  598. /package/dist/public/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  599. /package/dist/public/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  600. /package/dist/public/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  601. /package/dist/public/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.js} +0 -0
@@ -0,0 +1,74 @@
1
+ import "../../../shared-ts/src/authorization/capabilityKinds.js";
2
+ import "../../../shared-ts/src/passkey-custody/index.js";
3
+ import { requestWalletCustodyCeremonyOperation } from "./ceremonyStepRunner.js";
4
+ //#region src/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.ts
5
+ let currentCapability = null;
6
+ let currentCapabilityTransport = null;
7
+ let currentCapabilityExpiryTimer = null;
8
+ function walletCustodyCeremonyTransportFromWorkerContextV1(workerContext) {
9
+ return { requestOperation: requestWalletCustodyCeremonyOperation.bind(void 0, workerContext) };
10
+ }
11
+ function clearCurrentCapabilityExpiryTimer() {
12
+ if (currentCapabilityExpiryTimer === null) return;
13
+ clearTimeout(currentCapabilityExpiryTimer);
14
+ currentCapabilityExpiryTimer = null;
15
+ }
16
+ function clearCurrentCapabilityReference() {
17
+ clearCurrentCapabilityExpiryTimer();
18
+ currentCapability = null;
19
+ currentCapabilityTransport = null;
20
+ }
21
+ /**
22
+ * The current seed-backed capability for this exact wallet, or undefined when
23
+ * the wallet has none — never a prompt, and never a stale or expired
24
+ * reference. A linked device's Client-root capability is never returned here:
25
+ * seed reseals and auth-method additions cannot use it.
26
+ */
27
+ function readUnlockedWalletEd25519ExportRootCapabilityV1(walletId) {
28
+ const capability = readUnlockedEd25519ExportRootLinkingCapabilityV1(walletId);
29
+ return capability?.kind === "unlocked_wallet_ed25519_export_root_capability_v1" ? capability : void 0;
30
+ }
31
+ /**
32
+ * The current capability a device approving a link seals the export root
33
+ * from, of either kind, for this exact wallet — never a prompt, and never a
34
+ * stale or expired reference.
35
+ */
36
+ function readUnlockedEd25519ExportRootLinkingCapabilityV1(walletId) {
37
+ const capability = currentCapability;
38
+ if (!capability) return void 0;
39
+ if (capability.walletId !== walletId) return void 0;
40
+ if (capability.expiresAtMs <= Date.now()) {
41
+ const transport = currentCapabilityTransport;
42
+ if (transport) destroyUnlockedWalletEd25519ExportRootCapabilitiesV1(transport, {
43
+ kind: "capability",
44
+ capabilityHandleId: capability.capabilityHandleId
45
+ });
46
+ else clearCurrentCapabilityReference();
47
+ return;
48
+ }
49
+ return capability;
50
+ }
51
+ /**
52
+ * Destroys worker-held capabilities in the given scope and drops the local
53
+ * reference when it falls inside that scope. Failures to reach the worker are
54
+ * absorbed after dropping the local reference: a torn-down or resetting worker
55
+ * has already lost its handle memory, which is the destruction this call
56
+ * wants.
57
+ */
58
+ async function destroyUnlockedWalletEd25519ExportRootCapabilitiesV1(transport, scope) {
59
+ const capability = currentCapability;
60
+ if (capability !== null && (scope.kind === "all" || scope.kind === "capability" && scope.capabilityHandleId === capability.capabilityHandleId || scope.kind === "wallet" && scope.walletId === capability.walletId || scope.kind === "wallet_session" && scope.walletSessionId === capability.walletSessionId)) clearCurrentCapabilityReference();
61
+ try {
62
+ await transport.requestOperation({
63
+ kind: "walletCustodyCeremony",
64
+ request: {
65
+ type: "destroyUnlockedWalletEd25519ExportRootCapabilities",
66
+ payload: { scope }
67
+ }
68
+ });
69
+ } catch {}
70
+ }
71
+ //#endregion
72
+ export { readUnlockedWalletEd25519ExportRootCapabilityV1, walletCustodyCeremonyTransportFromWorkerContextV1 };
73
+
74
+ //# sourceMappingURL=unlockedEd25519ExportRootCapability.js.map
@@ -0,0 +1,25 @@
1
+ //#region src/core/signingEngine/workerManager/workerDeferred.ts
2
+ var WorkerDeferred = class {
3
+ promise;
4
+ resolveValue = null;
5
+ rejectValue = null;
6
+ constructor() {
7
+ this.promise = new Promise(this.capture);
8
+ }
9
+ resolve(value) {
10
+ if (!this.resolveValue) throw new Error("Worker deferred resolver is unavailable");
11
+ this.resolveValue(value);
12
+ }
13
+ reject(error) {
14
+ if (!this.rejectValue) throw new Error("Worker deferred rejecter is unavailable");
15
+ this.rejectValue(error);
16
+ }
17
+ capture = (resolve, reject) => {
18
+ this.resolveValue = resolve;
19
+ this.rejectValue = reject;
20
+ };
21
+ };
22
+ //#endregion
23
+ export { WorkerDeferred };
24
+
25
+ //# sourceMappingURL=workerDeferred.js.map
@@ -69,6 +69,14 @@ const walletMessages = [
69
69
  ["Creating your wallet", "ウォレットを作成中"],
70
70
  ["Continue with your passkey", "パスキーで続ける"],
71
71
  ["Accounts", "アカウント"],
72
+ ["View or add accounts", "アカウントの表示・追加"],
73
+ ["Add EVM account", "EVM アカウントを追加"],
74
+ ["Adding EVM account…", "EVM アカウントを追加中…"],
75
+ ["EVM account added.", "EVM アカウントを追加しました。"],
76
+ ["Account added. Open this wallet again to finish setup.", "アカウントを追加しました。このウォレットを開き直して設定を完了してください。"],
77
+ ["Enable this app’s EVM networks with your passkey.", "パスキーでこのアプリの EVM ネットワークを有効にします。"],
78
+ ["Add a passkey in Authentication methods first.", "先に「認証方法」でパスキーを追加してください。"],
79
+ ["The account could not be added. Try again.", "アカウントを追加できませんでした。もう一度お試しください。"],
72
80
  ["View accounts on block explorers", "ブロックエクスプローラーでアカウントを表示"],
73
81
  ["Export keys", "鍵をエクスポート"],
74
82
  ["Export wallet signing keys", "ウォレットの署名鍵をエクスポート"],
@@ -338,8 +346,6 @@ const walletMessages = [
338
346
  ["Adding Email OTP…", "メール認証を追加中…"],
339
347
  ["Passkey added.", "パスキーを追加しました。"],
340
348
  ["Email OTP added.", "メール認証を追加しました。"],
341
- ["Unlocking wallet management…", "ウォレット管理のロックを解除中…"],
342
- ["Wallet management unlocked.", "ウォレット管理のロックを解除しました。"],
343
349
  ["Checking authentication methods…", "認証方法を確認中…"],
344
350
  ["Unable to load authentication methods:", "認証方法を読み込めません:"],
345
351
  ["Active authentication methods", "有効な認証方法"],
@@ -350,8 +356,13 @@ const walletMessages = [
350
356
  ["Add passkey", "パスキーを追加"],
351
357
  ["Use a passkey from this device to unlock the wallet.", "このデバイスのパスキーでウォレットのロックを解除します。"],
352
358
  ["Add Email OTP", "メール認証を追加"],
353
- ["Unlock to manage methods", "ロックを解除して認証方法を管理"],
354
- ["Confirm your current authentication method to add or remove methods.", "認証方法を追加・削除するには、現在の認証方法を確認してください。"],
359
+ ["Add", "追加"],
360
+ ["Use a one-time code from your email to unlock the wallet.", "メールに届くワンタイムコードでウォレットのロックを解除します。"],
361
+ ["Next, confirm with your passkey. Then enter the code that we email to this address.", "次にパスキーで確認します。その後、このアドレスに届くコードを入力してください。"],
362
+ ["Send code", "コードを送信"],
363
+ ["Sending code…", "コードを送信中…"],
364
+ ["Enter a valid email address.", "有効なメールアドレスを入力してください。"],
365
+ ["Codes go to the email address you verified.", "確認済みのメールアドレスにコードを送信します。"],
355
366
  ["Transfer", "送金"],
356
367
  ["Warnings", "警告"],
357
368
  ["No operations", "操作なし"],
@@ -1,6 +1,7 @@
1
1
  import { createNearWalletProvider, nearWalletName } from "./wallets.js";
2
2
  import { connectedNear } from "./types.js";
3
3
  import { executionStatus, parseAccounts, parseSubmission, validateTransaction } from "./boundary.js";
4
+ import { parseSignedMessage, validateMessage } from "./message.js";
4
5
  //#region src/externalNear/controller.ts
5
6
  function failure(code, message) {
6
7
  return {
@@ -104,6 +105,41 @@ var ExternalNearController = class {
104
105
  provider?.dispose();
105
106
  this.publish({ kind: "disconnected" });
106
107
  }
108
+ async signMessage(connection, input) {
109
+ if (this.pending) return failure("pending_request", "Complete the pending wallet request.");
110
+ if (connection !== this.snapshot.connection || !this.provider) return failure("connection_changed", "Reconnect the wallet before signing.");
111
+ const provider = this.provider;
112
+ if (provider.messageSigning === "unsupported") return failure("unavailable", "This wallet does not support NEP-413 message signing in Seams.");
113
+ let message;
114
+ try {
115
+ message = validateMessage(input);
116
+ } catch {
117
+ return failure("invalid_input", "Provide a message, recipient, and 32-byte nonce.");
118
+ }
119
+ const generation = this.generation;
120
+ this.pending = true;
121
+ this.publish(connection);
122
+ try {
123
+ const accounts = parseAccounts(await provider.accounts(this.network));
124
+ if (connection !== this.snapshot.connection || !accounts.includes(connection.accountId)) return failure("connection_changed", "Wallet account changed. Reconnect before signing.");
125
+ const raw = await provider.signMessage(connection, message);
126
+ if (connection !== this.snapshot.connection) return failure("connection_changed", "Wallet selection changed.");
127
+ const signed = await parseSignedMessage(raw, connection, message);
128
+ if (connection !== this.snapshot.connection) return failure("connection_changed", "Wallet selection changed.");
129
+ return {
130
+ ok: true,
131
+ value: signed
132
+ };
133
+ } catch {
134
+ if (connection !== this.snapshot.connection) return failure("connection_changed", "Wallet selection changed.");
135
+ return failure("unavailable", "The wallet did not return a valid NEP-413 message signature.");
136
+ } finally {
137
+ if (generation === this.generation) {
138
+ this.pending = false;
139
+ this.publish(this.snapshot.connection);
140
+ }
141
+ }
142
+ }
107
143
  async sendTransaction(connection, input) {
108
144
  if (this.pending) return failure("pending_request", "Complete the pending wallet request.");
109
145
  if (connection !== this.snapshot.connection || !this.provider) return failure("connection_changed", "Reconnect the wallet before signing.");
@@ -3,6 +3,7 @@ import { externalNearAction } from "./actions.js";
3
3
  //#region src/externalNear/hot.ts
4
4
  /** Direct extension API documented by hot-dao/hot-sdk-js. No iframe fallback. */
5
5
  var HotExtensionProvider = class {
6
+ messageSigning = "unsupported";
6
7
  lifecycle = "active";
7
8
  transport = Reflect.get(window, "hotExtension");
8
9
  async request(method, params) {
@@ -14,6 +14,7 @@ async function authenticate(key, payload) {
14
14
  };
15
15
  }
16
16
  var IntearWalletProvider = class {
17
+ messageSigning = "unsupported";
17
18
  lifecycle = "active";
18
19
  popup = null;
19
20
  session = null;
@@ -0,0 +1,60 @@
1
+ import { isPlainObject } from "../shared-ts/src/utils/validation.js";
2
+ import { base64Decode, base64Encode } from "../shared-ts/src/utils/base64.js";
3
+ import { base58Decode } from "../shared-ts/src/utils/base58.js";
4
+ import { serialize } from "../node_modules/borsh/lib/esm/index.js";
5
+ //#region src/externalNear/message.ts
6
+ const messageBrand = Symbol("validated NEP-413 message");
7
+ const utf8StringSchema = { array: { type: "u8" } };
8
+ const messageSchema = { struct: {
9
+ tag: "u32",
10
+ message: utf8StringSchema,
11
+ nonce: { array: {
12
+ type: "u8",
13
+ len: 32
14
+ } },
15
+ recipient: utf8StringSchema,
16
+ callbackUrl: { option: utf8StringSchema }
17
+ } };
18
+ function validateMessage(input) {
19
+ if (!isPlainObject(input) || typeof input.message !== "string" || typeof input.recipient !== "string" || !input.recipient.trim() || !(input.nonce instanceof Uint8Array) || input.nonce.length !== 32 || input.callbackUrl !== void 0 && typeof input.callbackUrl !== "string" || input.state !== void 0 && typeof input.state !== "string") throw new Error("Provide a message, recipient, and 32-byte nonce.");
20
+ return Object.freeze({
21
+ [messageBrand]: true,
22
+ message: input.message,
23
+ recipient: input.recipient,
24
+ nonce: new Uint8Array(input.nonce),
25
+ callbackUrl: input.callbackUrl ?? null,
26
+ state: input.state ?? null
27
+ });
28
+ }
29
+ async function parseSignedMessage(raw, connection, message) {
30
+ if (!isPlainObject(raw) || raw.accountId !== connection.accountId || typeof raw.publicKey !== "string" || !raw.publicKey.startsWith("ed25519:") || typeof raw.signature !== "string" || raw.state !== void 0 && raw.state !== message.state) throw new Error("Message identity does not match the request.");
31
+ const publicKey = base58Decode(raw.publicKey.slice(8));
32
+ const signature = base64Decode(raw.signature);
33
+ if (publicKey.length !== 32 || signature.length !== 64 || base64Encode(signature) !== raw.signature) throw new Error("Invalid NEP-413 key or signature.");
34
+ const encoder = new TextEncoder();
35
+ const payload = serialize(messageSchema, {
36
+ tag: 2 ** 31 + 413,
37
+ message: encoder.encode(message.message),
38
+ nonce: message.nonce,
39
+ recipient: encoder.encode(message.recipient),
40
+ callbackUrl: message.callbackUrl === null ? null : encoder.encode(message.callbackUrl)
41
+ });
42
+ const digest = await crypto.subtle.digest("SHA-256", new Uint8Array(payload));
43
+ const key = await crypto.subtle.importKey("raw", new Uint8Array(publicKey), "Ed25519", false, ["verify"]);
44
+ if (!await crypto.subtle.verify("Ed25519", key, signature, digest)) throw new Error("The signature does not match the requested NEP-413 message.");
45
+ if (message.state !== null) return Object.freeze({
46
+ accountId: connection.accountId,
47
+ publicKey: raw.publicKey,
48
+ signature: raw.signature,
49
+ state: message.state
50
+ });
51
+ return Object.freeze({
52
+ accountId: connection.accountId,
53
+ publicKey: raw.publicKey,
54
+ signature: raw.signature
55
+ });
56
+ }
57
+ //#endregion
58
+ export { parseSignedMessage, validateMessage };
59
+
60
+ //# sourceMappingURL=message.js.map
@@ -47,6 +47,7 @@ function meteorAction(action) {
47
47
  }
48
48
  }
49
49
  var MeteorExtensionProvider = class {
50
+ messageSigning = "nep413";
50
51
  lifecycle = "active";
51
52
  transport = meteorTransportFromWindow();
52
53
  request = null;
@@ -76,6 +77,17 @@ var MeteorExtensionProvider = class {
76
77
  async accounts(network) {
77
78
  return this.account?.network === network ? [this.account.accountId] : [];
78
79
  }
80
+ async signMessage(connection, message) {
81
+ if (this.account?.accountId !== connection.accountId || this.account.network !== connection.network) throw new Error("Meteor account changed.");
82
+ return this.execute(connection.network, "sign_message", {
83
+ accountId: connection.accountId,
84
+ message: message.message,
85
+ nonce: Array.from(message.nonce),
86
+ recipient: message.recipient,
87
+ callbackUrl: message.callbackUrl ?? void 0,
88
+ state: message.state ?? void 0
89
+ });
90
+ }
79
91
  async send(connection, transaction) {
80
92
  if (this.account?.accountId !== connection.accountId || this.account.network !== connection.network) throw new Error("Meteor account changed.");
81
93
  const response = await fetch(this.rpcUrl, {
@@ -105,29 +105,17 @@ function AccountMenuButtonView({ buttonRef, dropdownRef, trigger, dropdown, clas
105
105
  }),
106
106
  /* @__PURE__ */ jsxs("footer", {
107
107
  className: "seams-account-footer",
108
- children: [
109
- /* @__PURE__ */ jsxs("svg", {
110
- width: "17",
111
- height: "17",
112
- viewBox: "0 0 24 24",
113
- fill: "none",
114
- stroke: "currentColor",
115
- strokeWidth: "1.5",
116
- children: [/* @__PURE__ */ jsx("path", { d: "m12 3 8 3v6c0 5-8 9-8 9s-8-4-8-9V6z" }), /* @__PURE__ */ jsx("path", { d: "m8 12 3 3 5-6" })]
117
- }),
118
- /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { message: "Secured by" }) }),
119
- /* @__PURE__ */ jsx("svg", {
120
- className: "seams-account-wordmark",
121
- viewBox: "0 0 1428 285",
122
- role: "img",
123
- "aria-label": "seams",
124
- children: /* @__PURE__ */ jsx("path", {
125
- d: SEAMS_STANDARD_WORDMARK_PATH,
126
- fill: "currentColor",
127
- fillRule: "evenodd"
128
- })
108
+ children: [/* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { message: "Secured by" }) }), /* @__PURE__ */ jsx("svg", {
109
+ className: "seams-account-wordmark",
110
+ viewBox: "0 0 1428 285",
111
+ role: "img",
112
+ "aria-label": "seams",
113
+ children: /* @__PURE__ */ jsx("path", {
114
+ d: SEAMS_STANDARD_WORDMARK_PATH,
115
+ fill: "currentColor",
116
+ fillRule: "evenodd"
129
117
  })
130
- ]
118
+ })]
131
119
  })
132
120
  ]
133
121
  })
@@ -21,10 +21,10 @@ function AccountMenuDeviceDetails({ title, description, details, children, icon
21
21
  /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { copy: description }) })
22
22
  ]
23
23
  }),
24
- /* @__PURE__ */ jsx("dl", {
24
+ details.length > 0 ? /* @__PURE__ */ jsx("dl", {
25
25
  className: "seams-account-inset",
26
26
  children: details.map(renderDetail)
27
- }),
27
+ }) : null,
28
28
  children
29
29
  ] });
30
30
  }
@@ -56,7 +56,7 @@ function deviceRow(setScreen, parent, device) {
56
56
  onSelect: selectDevice.bind(null, setScreen, parent, device)
57
57
  }, device.id);
58
58
  }
59
- function MethodTiles({ methods }) {
59
+ function MethodTiles({ methods, inUse }) {
60
60
  const locale = useWalletLocale();
61
61
  return /* @__PURE__ */ jsxs("ul", {
62
62
  className: "seams-account-method-tiles",
@@ -64,7 +64,8 @@ function MethodTiles({ methods }) {
64
64
  children: [methods !== "email_otp" ? /* @__PURE__ */ jsx(AuthenticationMethodRow, {
65
65
  kind: "passkey",
66
66
  title: walletText(locale, "Passkey"),
67
- description: walletText(locale, "Touch ID · This device")
67
+ description: walletText(locale, "Touch ID · This device"),
68
+ chip: inUse === "passkey" ? walletText(locale, "In use now") : void 0
68
69
  }) : null, methods !== "passkey" ? /* @__PURE__ */ jsx(AuthenticationMethodRow, {
69
70
  kind: "email_otp",
70
71
  title: walletText(locale, "Email OTP"),
@@ -150,8 +151,10 @@ function AccountMenuMockScreens({ screen, setScreen, accounts, transactionSettin
150
151
  onBack: back,
151
152
  children: /* @__PURE__ */ jsx(AuthenticationMethodsView, {
152
153
  walletLabel: walletId,
153
- status: "Active",
154
- children: /* @__PURE__ */ jsx(MethodTiles, { methods: "both" })
154
+ children: /* @__PURE__ */ jsx(MethodTiles, {
155
+ methods: "both",
156
+ inUse: "passkey"
157
+ })
155
158
  })
156
159
  });
157
160
  case "linked": return /* @__PURE__ */ jsxs(AccountMenuScreen, {
@@ -0,0 +1,124 @@
1
+ import { configuredThresholdEcdsaChainTargets } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
2
+ import { WalletText } from "../../context/WalletLocale.js";
3
+ import { accountMenuCapabilitiesForLoginState } from "../../context/reactLoginStateBuilders.js";
4
+ import { useSeams } from "../../context/index.js";
5
+ import { useEffect, useMemo, useRef, useState } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/react/components/AccountMenuButton/AddEvmAccount.tsx
8
+ function trackMount(mounted) {
9
+ mounted.current = true;
10
+ return clearMount.bind(null, mounted);
11
+ }
12
+ function clearMount(mounted) {
13
+ mounted.current = false;
14
+ }
15
+ function setupError(error) {
16
+ return error instanceof Error ? error.message : "The account could not be added. Try again.";
17
+ }
18
+ function assertCurrentWallet(context, walletId) {
19
+ const selected = context.seams.preferences.getCurrentWalletId();
20
+ if (!context.mounted.current || selected && selected !== walletId) throw new Error("Account added. Open this wallet again to finish setup.");
21
+ }
22
+ async function addAccount(context, state, walletId, targets) {
23
+ if (state.kind === "adding") return;
24
+ if (state.kind === "added" && state.walletId === walletId) return;
25
+ context.setState({
26
+ kind: "adding",
27
+ walletId
28
+ });
29
+ try {
30
+ const rpId = context.seams.configs.wallet.iframe.rpIdOverride || new URL(context.seams.configs.wallet.iframe.origin).hostname;
31
+ const result = await context.seams.registration.addSigner({
32
+ walletId,
33
+ rpId,
34
+ signerSelection: {
35
+ mode: "ecdsa",
36
+ ecdsa: {
37
+ chainTargets: [...targets],
38
+ participantIds: [1, 2]
39
+ }
40
+ }
41
+ });
42
+ if (!result.success) throw new Error(result.error);
43
+ if (result.kind !== "wallet_signer_added" || result.capabilities[0].kind !== "evm_family_ecdsa") throw new Error("The wallet did not return an EVM account.");
44
+ assertCurrentWallet(context, walletId);
45
+ context.setState({
46
+ kind: "added",
47
+ walletId,
48
+ evmAddress: result.capabilities[0].thresholdEcdsaEthereumAddress,
49
+ nearAccountId: context.nearAccountId
50
+ });
51
+ } catch (error) {
52
+ if (context.mounted.current) context.setState({
53
+ kind: "failed",
54
+ walletId,
55
+ message: setupError(error)
56
+ });
57
+ return;
58
+ }
59
+ await context.refreshSession(walletId);
60
+ }
61
+ /** The menu owns setup across navigation between its screens. */
62
+ function useEvmAccountSetup() {
63
+ const { seams, refreshSession, loginState } = useSeams();
64
+ const [state, setState] = useState({ kind: "idle" });
65
+ const mounted = useRef(false);
66
+ useEffect(trackMount.bind(null, mounted), [mounted]);
67
+ return {
68
+ state,
69
+ add: addAccount.bind(null, {
70
+ seams,
71
+ refreshSession,
72
+ mounted,
73
+ setState,
74
+ nearAccountId: loginState.nearAccountId
75
+ }, state)
76
+ };
77
+ }
78
+ function AddEvmAccount({ walletId, setup }) {
79
+ const { seams, loginState } = useSeams();
80
+ const targets = useMemo(accountTargets.bind(null, seams.configs.network.chains), [seams.configs.network.chains]);
81
+ const state = setup.state;
82
+ const busy = state.kind === "adding";
83
+ const current = state.kind !== "idle" && state.walletId === walletId;
84
+ if (!targets || !busy && !(current && state.kind === "added") && (loginState.walletId !== walletId || accountMenuCapabilitiesForLoginState(loginState).kind !== "owner")) return null;
85
+ if (current && state.kind === "added") return /* @__PURE__ */ jsx("p", {
86
+ className: "seams-account-note",
87
+ role: "status",
88
+ children: /* @__PURE__ */ jsx(WalletText, { message: "EVM account added." })
89
+ });
90
+ if (loginState.thresholdEcdsaEthereumAddress && !busy) return null;
91
+ const hasPasskey = loginState.authMethods.some(isPasskey);
92
+ let actionLabel = /* @__PURE__ */ jsx(WalletText, { message: "Add EVM account" });
93
+ if (busy) actionLabel = /* @__PURE__ */ jsx(WalletText, { message: "Adding EVM account…" });
94
+ return /* @__PURE__ */ jsxs("div", { children: [
95
+ /* @__PURE__ */ jsx("button", {
96
+ type: "button",
97
+ className: "seams-account-action primary",
98
+ disabled: busy || !hasPasskey,
99
+ onClick: setup.add.bind(null, walletId, targets),
100
+ children: actionLabel
101
+ }),
102
+ /* @__PURE__ */ jsx("p", {
103
+ className: "seams-account-note",
104
+ role: busy ? "status" : void 0,
105
+ children: hasPasskey || busy ? /* @__PURE__ */ jsx(WalletText, { message: "Enable this app’s EVM networks with your passkey." }) : /* @__PURE__ */ jsx(WalletText, { message: "Add a passkey in Authentication methods first." })
106
+ }),
107
+ current && state.kind === "failed" ? /* @__PURE__ */ jsx("p", {
108
+ className: "seams-account-error",
109
+ role: "alert",
110
+ children: /* @__PURE__ */ jsx(WalletText, { copy: state.message })
111
+ }) : null
112
+ ] });
113
+ }
114
+ function isPasskey(method) {
115
+ return method.kind === "passkey";
116
+ }
117
+ function accountTargets(chains) {
118
+ const [first, ...rest] = configuredThresholdEcdsaChainTargets(chains);
119
+ return first ? [first, ...rest] : null;
120
+ }
121
+ //#endregion
122
+ export { AddEvmAccount, useEvmAccountSetup };
123
+
124
+ //# sourceMappingURL=AddEvmAccount.js.map
@@ -5,7 +5,31 @@ import { MailIcon } from "./icons/MailIcon.js";
5
5
  import "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/react/components/AccountMenuButton/AuthenticationMethodRow.tsx
8
- function AuthenticationMethodRow({ kind, title, description, icon, action, onSelect, children }) {
8
+ function methodIcon(kind) {
9
+ switch (kind) {
10
+ case "passkey": return /* @__PURE__ */ jsx(TouchIcon, {
11
+ width: 20,
12
+ height: 20,
13
+ strokeWidth: 1.5
14
+ });
15
+ case "email_otp": return /* @__PURE__ */ jsx(MailIcon, {
16
+ size: 20,
17
+ strokeWidth: 1.75
18
+ });
19
+ case "voiceid": return /* @__PURE__ */ jsx("svg", {
20
+ width: "20",
21
+ height: "20",
22
+ viewBox: "0 0 24 24",
23
+ fill: "none",
24
+ stroke: "currentColor",
25
+ strokeWidth: "1.75",
26
+ strokeLinecap: "round",
27
+ "aria-hidden": "true",
28
+ children: /* @__PURE__ */ jsx("path", { d: "M4 10v4m4-7v10m4-14v18m4-14v10m4-7v4" })
29
+ });
30
+ }
31
+ }
32
+ function AuthenticationMethodRow({ kind, title, description, chip, icon, action, footer, onSelect, children }) {
9
33
  if (onSelect) return /* @__PURE__ */ jsx("li", {
10
34
  className: "seams-account-method-list-item",
11
35
  children: /* @__PURE__ */ jsxs("button", {
@@ -15,34 +39,21 @@ function AuthenticationMethodRow({ kind, title, description, icon, action, onSel
15
39
  children: [
16
40
  /* @__PURE__ */ jsx("span", {
17
41
  className: "seams-account-avatar",
18
- children: icon ?? (kind === "passkey" ? /* @__PURE__ */ jsx(TouchIcon, {
19
- width: 20,
20
- height: 20,
21
- strokeWidth: 1.5
22
- }) : /* @__PURE__ */ jsx(MailIcon, {
23
- size: 20,
24
- strokeWidth: 1.5
25
- }))
42
+ children: icon ?? methodIcon(kind)
26
43
  }),
27
- /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: title }) }), /* @__PURE__ */ jsx("small", { children: /* @__PURE__ */ jsx(WalletText, { copy: description }) })] }),
44
+ /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: title }) }), /* @__PURE__ */ jsx("small", { children: renderDescription(description) })] }),
28
45
  /* @__PURE__ */ jsx(HoverArrowIcon, {})
29
46
  ]
30
47
  })
31
48
  });
32
49
  return /* @__PURE__ */ jsxs("li", {
33
50
  className: "seams-linked-devices-modal-item seams-linked-devices-modal-item--row",
51
+ "data-auth-method": kind,
34
52
  children: [
35
53
  /* @__PURE__ */ jsx("span", {
36
54
  className: "seams-linked-devices-modal-item-icon",
37
55
  "aria-hidden": "true",
38
- children: kind === "passkey" ? /* @__PURE__ */ jsx(TouchIcon, {
39
- width: 20,
40
- height: 20,
41
- strokeWidth: 1.5
42
- }) : /* @__PURE__ */ jsx(MailIcon, {
43
- size: 20,
44
- strokeWidth: 1.75
45
- })
56
+ children: icon ?? methodIcon(kind)
46
57
  }),
47
58
  /* @__PURE__ */ jsxs("div", {
48
59
  className: "seams-linked-devices-modal-item-content",
@@ -52,22 +63,29 @@ function AuthenticationMethodRow({ kind, title, description, icon, action, onSel
52
63
  children: [/* @__PURE__ */ jsx("span", {
53
64
  className: "seams-linked-devices-modal-item-name",
54
65
  children: /* @__PURE__ */ jsx(WalletText, { copy: title })
55
- }), /* @__PURE__ */ jsx("span", {
66
+ }), chip ? /* @__PURE__ */ jsx("span", {
56
67
  className: "seams-linked-devices-modal-standing tone-active",
57
- children: /* @__PURE__ */ jsx(WalletText, { message: "Active" })
58
- })]
68
+ children: /* @__PURE__ */ jsx(WalletText, { copy: chip })
69
+ }) : null]
59
70
  }),
60
71
  /* @__PURE__ */ jsx("div", {
61
72
  className: "seams-linked-devices-modal-item-detail",
62
- children: /* @__PURE__ */ jsx(WalletText, { copy: description })
73
+ children: renderDescription(description)
63
74
  }),
64
75
  children
65
76
  ]
66
77
  }),
67
- action
78
+ action,
79
+ footer ? /* @__PURE__ */ jsx("div", {
80
+ className: "seams-auth-method-footer",
81
+ children: footer
82
+ }) : null
68
83
  ]
69
84
  });
70
85
  }
86
+ function renderDescription(description) {
87
+ return typeof description === "string" ? /* @__PURE__ */ jsx(WalletText, { copy: description }) : description;
88
+ }
71
89
  //#endregion
72
90
  export { AuthenticationMethodRow };
73
91