@seams/wallet 0.9.2 → 0.9.4

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 (322) hide show
  1. package/README.md +3 -3
  2. package/THIRD_PARTY_NOTICES.md +33 -1
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +4 -9
  5. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +10 -2
  6. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +6 -1
  7. package/dist/esm/react/components/VoiceAssistantCard.css +313 -0
  8. package/dist/esm/react/components/VoiceAssistantCard.js +150 -0
  9. package/dist/esm/react/index.js +3 -1
  10. package/dist/esm/react/styles/styles.css +314 -0
  11. package/dist/esm/react/styles.css +1 -0
  12. package/dist/esm/sdk/{ConfirmationDrawer-DY0_yeUV.js → ConfirmationDrawer-Frj3uEee.js} +1 -1
  13. package/dist/{public/sdk/NonceCoordinator-CFFq8-Q9.js → esm/sdk/NonceCoordinator-S5ZbrkDp.js} +1 -1
  14. package/dist/{public/sdk/accountLifecycle-CAMVowDl.js → esm/sdk/accountLifecycle-HEUmDLus.js} +1 -1
  15. package/dist/esm/sdk/activeWalletSession-WdZkhtBB.js +1 -0
  16. package/dist/esm/sdk/{adapters-DdDOQzl4.js → adapters-DYPu0nK9.js} +2 -2
  17. package/dist/esm/sdk/{canonicalPrimitives-CKPGgpxg.js → canonicalPrimitives-Dsbsxgxc.js} +1 -1
  18. package/dist/esm/sdk/{capabilityKinds-CKQ4Uqnv.js → capabilityKinds-N8xo_IEh.js} +1 -1
  19. package/dist/esm/sdk/{chains-CiYQT1K4.js → chains-C_X_fNuS.js} +1 -1
  20. package/dist/esm/sdk/challengeDelivery-5lIu9spR.js +1 -0
  21. package/dist/{public/sdk/clientSessionPersistenceState-CImFWDj6.js → esm/sdk/clientSessionPersistenceState-DRdve9rC.js} +1 -1
  22. package/dist/esm/sdk/{commitQueue-iBNUt9Bz.js → commitQueue-qjvY_zWn.js} +1 -1
  23. package/dist/esm/sdk/{configHelpers-D8Ivi6p8.js → configHelpers-B-hs0mTO.js} +1 -1
  24. package/dist/esm/sdk/digestEncoding-CkUc5vtR.js +1 -0
  25. package/dist/esm/sdk/{display-ClqZq-Xt.js → display-DjoWrSgE.js} +1 -1
  26. package/dist/esm/sdk/domainIds-BzkGsRqO.js +1 -0
  27. package/dist/{public/sdk/ecdsaCapabilityManifest-BlzJAQF8.js → esm/sdk/ecdsaCapabilityManifest-ChszYCC0.js} +1 -1
  28. package/dist/esm/sdk/{ecdsaChainTarget-C8ZtMZ8l.js → ecdsaChainTarget-DJBXHzbH.js} +1 -1
  29. package/dist/{public/sdk/ecdsaDerivationClientWasm-CVeNEou2.js → esm/sdk/ecdsaDerivationClientWasm-CpH-b3jx.js} +1 -1
  30. package/dist/{public/sdk/ecdsaDerivationExport-BZFHSMCv.js → esm/sdk/ecdsaDerivationExport-C1cE5m0t.js} +1 -1
  31. package/dist/esm/sdk/{ecdsaWalletRecords-D4WeYc7H.js → ecdsaWalletRecords-Di_NUxD_.js} +1 -1
  32. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-p0C1CQva.js +1 -0
  33. package/dist/esm/sdk/{enrichDisplayModelWithAbi-69bNckvi.js → enrichDisplayModelWithAbi-DZIhvE-x.js} +1 -1
  34. package/dist/esm/sdk/{evmCryptoWasm-BXsIyRon.js → evmCryptoWasm-DeobzyP-.js} +1 -1
  35. package/dist/{public/sdk/export-viewer-host-CsFeiIhd.js → esm/sdk/export-viewer-host-DUMwD6zP.js} +1 -1
  36. package/dist/{public/sdk/exportKeypairOperation-DGQIYML3.js → esm/sdk/exportKeypairOperation-DYCzCbqL.js} +1 -1
  37. package/dist/esm/sdk/{helpers-Ddy72ULN.js → helpers-BnkILY2_.js} +1 -1
  38. package/dist/esm/sdk/host-h55onlkx.js +1 -0
  39. package/dist/esm/sdk/{intentDigest-CE-tLw87.js → intentDigest-DJBrMyLJ.js} +1 -1
  40. package/dist/esm/sdk/{lanes-DnBwWv4l.js → lanes-Ck81oEGv.js} +1 -1
  41. package/dist/esm/sdk/{localOnly-ClCo6602.js → localOnly-KvZeKkH5.js} +1 -1
  42. package/dist/{public/sdk/messages-vxz27Way.js → esm/sdk/messages-DgJlG9NU.js} +1 -1
  43. package/dist/esm/sdk/{mountExportPrivateKeySurface-CBZ0wRYj.js → mountExportPrivateKeySurface-B4gH1Sel.js} +1 -1
  44. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js → esm/sdk/mountRecoveryCodeBackupSurface-BA2ttbTM.js} +1 -1
  45. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-CvDs4RtV.js +1 -0
  46. package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-B0d1AG3u.js → nearEd25519YaoSigningPreparation-Eiq_ikXk.js} +1 -1
  47. package/dist/esm/sdk/{nonceLaneKeys-Fkvk2UPy.js → nonceLaneKeys-Do5Vs-De.js} +1 -1
  48. package/dist/esm/sdk/{normalization-DCvuCvh0.js → normalization-DJPmcXTg.js} +1 -1
  49. package/dist/esm/sdk/{operationFingerprint-CTR9G1NT.js → operationFingerprint-CUrnoh-M.js} +1 -1
  50. package/dist/esm/sdk/passkey-custody-Cd_yyoRa.js +1 -0
  51. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-yJN8VAHn.js → pendingWalletRecoveryCodeBackup-BkIrbd6Q.js} +1 -1
  52. package/dist/esm/sdk/presignaturePool-CLHu7HaU.js +1 -0
  53. package/dist/esm/sdk/{prfCache-BMpqZZ-v.js → prfCache-DCkuB8Lu.js} +1 -1
  54. package/dist/esm/sdk/primitives-CqrjmIAH.js +1 -0
  55. package/dist/{public/sdk/recovery-entrypoint-Bl5GgbW9.js → esm/sdk/recovery-entrypoint-DoXswV9I.js} +1 -1
  56. package/dist/esm/sdk/{registration-C4sALQZO.js → registration-BFHEYmgh.js} +1 -1
  57. package/dist/esm/sdk/registration-Cfg9rWhA.js +1 -0
  58. package/dist/esm/sdk/{registrationAccounts-D4RVetMz.js → registrationAccounts-DP-32yCK.js} +1 -1
  59. package/dist/esm/sdk/{registrationAuthMethodInput-6ccY2Vuh.js → registrationAuthMethodInput-BBCeWDmw.js} +1 -1
  60. package/dist/esm/sdk/{registrationIds-CdPqm-Ya.js → registrationIds-ByuReLUc.js} +1 -1
  61. package/dist/esm/sdk/registrationIntent-BHU5k2Q-.js +1 -0
  62. package/dist/esm/sdk/{registrationSignerPlan-B9GCvpTV.js → registrationSignerPlan-dY9Rp0m_.js} +1 -1
  63. package/dist/esm/sdk/{requireStepUpAuth-DCVqmeee.js → requireStepUpAuth-C67sluoC.js} +1 -1
  64. package/dist/esm/sdk/routerAbNormalSigning-DVKFBYgV.js +1 -0
  65. package/dist/esm/sdk/{runtime-auth-BKFyLISf.js → runtime-auth-Ch4qvKL2.js} +1 -1
  66. package/dist/{public/sdk/runtime-device-link-ENxdEXQW.js → esm/sdk/runtime-device-link-DtNpEjq5.js} +1 -1
  67. package/dist/{public/sdk/runtime-ecdsa-tempo-DhGEb9U7.js → esm/sdk/runtime-ecdsa-tempo-Bntp_Zgx.js} +1 -1
  68. package/dist/esm/sdk/{runtime-email-otp-dgsP7XZi.js → runtime-email-otp-DEFt-Y-_.js} +1 -1
  69. package/dist/esm/sdk/{runtime-export-D2RCm5Gk.js → runtime-export-DE_umiS1.js} +1 -1
  70. package/dist/{public/sdk/runtime-near-Bf-9MFBQ.js → esm/sdk/runtime-near-uXqcLEz8.js} +1 -1
  71. package/dist/esm/sdk/runtime-preferences-C49p0VLC.js +1 -0
  72. package/dist/esm/sdk/runtime-recovery-D7wklehP.js +1 -0
  73. package/dist/esm/sdk/{runtime-recovery-codes-BZMiAR_5.js → runtime-recovery-codes-Dn-NccpU.js} +1 -1
  74. package/dist/esm/sdk/{sdkSentEvents-D3q1h-Uo.js → sdkSentEvents-DiQ3YVlj.js} +1 -1
  75. package/dist/esm/sdk/{secp256k1-DSLttQND.js → secp256k1-C-AETUpI.js} +1 -1
  76. package/dist/esm/sdk/{secureRandomId-BIekT8bE.js → secureRandomId-LwBFx84B.js} +1 -1
  77. package/dist/esm/sdk/{sessionPolicy-J-RrlPZQ.js → sessionPolicy-CBTZQe1n.js} +1 -1
  78. package/dist/esm/sdk/shared-D6RYxvYR.js +6 -0
  79. package/dist/{public/sdk/signEvmFamily-KUNWKVeh.js → esm/sdk/signEvmFamily-DjD3tn8e.js} +1 -1
  80. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js → signEvmFamilyWithUiConfirmForTempo-CwRFbaLM.js} +1 -1
  81. package/dist/esm/sdk/{signEvmWithUiConfirm-CqxL7UbT.js → signEvmWithUiConfirm-BHG0dwVG.js} +1 -1
  82. package/dist/esm/sdk/signNear-DR50cpes.js +1 -0
  83. package/dist/esm/sdk/{signatureUses-CjJ233KX.js → signatureUses-8c8Ku_Fw.js} +1 -1
  84. package/dist/esm/sdk/{signerDomain-vQmlnsbF.js → signerDomain-DqLCvI-D.js} +1 -1
  85. package/dist/esm/sdk/{signingFlow-vrXxrhlG.js → signingFlow-Mym5j6aw.js} +1 -1
  86. package/dist/esm/sdk/signingQueue-2pr7lAUS.js +1 -0
  87. package/dist/esm/sdk/thresholdEcdsa-D-QMyevW.js +1 -0
  88. package/dist/esm/sdk/{trace-BvbCxdXF.js → trace-QLsbYdld.js} +1 -1
  89. package/dist/esm/sdk/{transaction-activity-D40ih2j-.js → transaction-activity-Cb2JyYKv.js} +1 -1
  90. package/dist/{public/sdk/transactionReviewAdmission-C-a3ctCJ.js → esm/sdk/transactionReviewAdmission-CIvR4W5_.js} +1 -1
  91. package/dist/{public/sdk/transactionState-DVinJk4K.js → esm/sdk/transactionState-CGULLokO.js} +1 -1
  92. package/dist/esm/sdk/{types-D3GM-uHR.js → types-WGrFMQSw.js} +1 -1
  93. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  94. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  95. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  96. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  97. package/dist/esm/sdk/wallet-recovery-D7ywcIHw.js +1 -0
  98. package/dist/{public/sdk/walletAuthMethodRecord-CXedSgpV.js → esm/sdk/walletAuthMethodRecord-CnBw27ED.js} +1 -1
  99. package/dist/esm/sdk/walletAuthority-BWvfaKIX.js +1 -0
  100. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B8aO2NFb.js +1 -0
  101. package/dist/esm/sdk/{walletOwnershipGeneration-DoXVMDWe.js → walletOwnershipGeneration-CAycHv-H.js} +1 -1
  102. package/dist/esm/sdk/walletRecoveryCommit-C3EgMjo-.js +1 -0
  103. package/dist/esm/sdk/walletRecoveryRotate-D_1a8Agl.js +1 -0
  104. package/dist/esm/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +1 -0
  105. package/dist/esm/sdk/walletSessionAuthorizationStatus-BLyzJbU8.js +1 -0
  106. package/dist/esm/sdk/{walletSessionAuthorizationStore-gEYPmu-G.js → walletSessionAuthorizationStore-BiKGIBWQ.js} +1 -1
  107. package/dist/esm/sdk/warmSessionHydration-B7-kCnJh.js +1 -0
  108. package/dist/esm/sdk/{webauthnP256-BEz4DEAs.js → webauthnP256-DZCusNY9.js} +1 -1
  109. package/dist/{public/sdk/webauthnPromptCoordinator-BEudHQBr.js → esm/sdk/webauthnPromptCoordinator-CS4Xc_jZ.js} +1 -1
  110. package/dist/public/headers.manifest.json +1 -1
  111. package/dist/public/sdk/{ConfirmationDrawer-DY0_yeUV.js → ConfirmationDrawer-Frj3uEee.js} +1 -1
  112. package/dist/{esm/sdk/NonceCoordinator-CFFq8-Q9.js → public/sdk/NonceCoordinator-S5ZbrkDp.js} +1 -1
  113. package/dist/{esm/sdk/accountLifecycle-CAMVowDl.js → public/sdk/accountLifecycle-HEUmDLus.js} +1 -1
  114. package/dist/public/sdk/activeWalletSession-WdZkhtBB.js +1 -0
  115. package/dist/public/sdk/{adapters-DdDOQzl4.js → adapters-DYPu0nK9.js} +2 -2
  116. package/dist/public/sdk/{canonicalPrimitives-CKPGgpxg.js → canonicalPrimitives-Dsbsxgxc.js} +1 -1
  117. package/dist/public/sdk/{capabilityKinds-CKQ4Uqnv.js → capabilityKinds-N8xo_IEh.js} +1 -1
  118. package/dist/public/sdk/{chains-CiYQT1K4.js → chains-C_X_fNuS.js} +1 -1
  119. package/dist/public/sdk/challengeDelivery-5lIu9spR.js +1 -0
  120. package/dist/{esm/sdk/clientSessionPersistenceState-CImFWDj6.js → public/sdk/clientSessionPersistenceState-DRdve9rC.js} +1 -1
  121. package/dist/public/sdk/{commitQueue-iBNUt9Bz.js → commitQueue-qjvY_zWn.js} +1 -1
  122. package/dist/public/sdk/{configHelpers-D8Ivi6p8.js → configHelpers-B-hs0mTO.js} +1 -1
  123. package/dist/public/sdk/digestEncoding-CkUc5vtR.js +1 -0
  124. package/dist/public/sdk/{display-ClqZq-Xt.js → display-DjoWrSgE.js} +1 -1
  125. package/dist/public/sdk/domainIds-BzkGsRqO.js +1 -0
  126. package/dist/{esm/sdk/ecdsaCapabilityManifest-BlzJAQF8.js → public/sdk/ecdsaCapabilityManifest-ChszYCC0.js} +1 -1
  127. package/dist/public/sdk/{ecdsaChainTarget-C8ZtMZ8l.js → ecdsaChainTarget-DJBXHzbH.js} +1 -1
  128. package/dist/{esm/sdk/ecdsaDerivationClientWasm-CVeNEou2.js → public/sdk/ecdsaDerivationClientWasm-CpH-b3jx.js} +1 -1
  129. package/dist/{esm/sdk/ecdsaDerivationExport-BZFHSMCv.js → public/sdk/ecdsaDerivationExport-C1cE5m0t.js} +1 -1
  130. package/dist/public/sdk/{ecdsaWalletRecords-D4WeYc7H.js → ecdsaWalletRecords-Di_NUxD_.js} +1 -1
  131. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-p0C1CQva.js +1 -0
  132. package/dist/public/sdk/{enrichDisplayModelWithAbi-69bNckvi.js → enrichDisplayModelWithAbi-DZIhvE-x.js} +1 -1
  133. package/dist/public/sdk/{evmCryptoWasm-BXsIyRon.js → evmCryptoWasm-DeobzyP-.js} +1 -1
  134. package/dist/{esm/sdk/export-viewer-host-CsFeiIhd.js → public/sdk/export-viewer-host-DUMwD6zP.js} +1 -1
  135. package/dist/{esm/sdk/exportKeypairOperation-DGQIYML3.js → public/sdk/exportKeypairOperation-DYCzCbqL.js} +1 -1
  136. package/dist/public/sdk/{helpers-Ddy72ULN.js → helpers-BnkILY2_.js} +1 -1
  137. package/dist/public/sdk/host-h55onlkx.js +1 -0
  138. package/dist/public/sdk/{intentDigest-CE-tLw87.js → intentDigest-DJBrMyLJ.js} +1 -1
  139. package/dist/public/sdk/{lanes-DnBwWv4l.js → lanes-Ck81oEGv.js} +1 -1
  140. package/dist/public/sdk/{localOnly-ClCo6602.js → localOnly-KvZeKkH5.js} +1 -1
  141. package/dist/{esm/sdk/messages-vxz27Way.js → public/sdk/messages-DgJlG9NU.js} +1 -1
  142. package/dist/public/sdk/{mountExportPrivateKeySurface-CBZ0wRYj.js → mountExportPrivateKeySurface-B4gH1Sel.js} +1 -1
  143. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js → public/sdk/mountRecoveryCodeBackupSurface-BA2ttbTM.js} +1 -1
  144. package/dist/public/sdk/nearEd25519YaoMaterialActivation-CvDs4RtV.js +1 -0
  145. package/dist/public/sdk/{nearEd25519YaoSigningPreparation-B0d1AG3u.js → nearEd25519YaoSigningPreparation-Eiq_ikXk.js} +1 -1
  146. package/dist/public/sdk/{nonceLaneKeys-Fkvk2UPy.js → nonceLaneKeys-Do5Vs-De.js} +1 -1
  147. package/dist/public/sdk/{normalization-DCvuCvh0.js → normalization-DJPmcXTg.js} +1 -1
  148. package/dist/public/sdk/{operationFingerprint-CTR9G1NT.js → operationFingerprint-CUrnoh-M.js} +1 -1
  149. package/dist/public/sdk/passkey-custody-Cd_yyoRa.js +1 -0
  150. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-yJN8VAHn.js → pendingWalletRecoveryCodeBackup-BkIrbd6Q.js} +1 -1
  151. package/dist/public/sdk/presignaturePool-CLHu7HaU.js +1 -0
  152. package/dist/public/sdk/{prfCache-BMpqZZ-v.js → prfCache-DCkuB8Lu.js} +1 -1
  153. package/dist/public/sdk/primitives-CqrjmIAH.js +1 -0
  154. package/dist/{esm/sdk/recovery-entrypoint-Bl5GgbW9.js → public/sdk/recovery-entrypoint-DoXswV9I.js} +1 -1
  155. package/dist/public/sdk/{registration-C4sALQZO.js → registration-BFHEYmgh.js} +1 -1
  156. package/dist/public/sdk/registration-Cfg9rWhA.js +1 -0
  157. package/dist/public/sdk/{registrationAccounts-D4RVetMz.js → registrationAccounts-DP-32yCK.js} +1 -1
  158. package/dist/public/sdk/{registrationAuthMethodInput-6ccY2Vuh.js → registrationAuthMethodInput-BBCeWDmw.js} +1 -1
  159. package/dist/public/sdk/{registrationIds-CdPqm-Ya.js → registrationIds-ByuReLUc.js} +1 -1
  160. package/dist/public/sdk/registrationIntent-BHU5k2Q-.js +1 -0
  161. package/dist/public/sdk/{registrationSignerPlan-B9GCvpTV.js → registrationSignerPlan-dY9Rp0m_.js} +1 -1
  162. package/dist/public/sdk/{requireStepUpAuth-DCVqmeee.js → requireStepUpAuth-C67sluoC.js} +1 -1
  163. package/dist/public/sdk/routerAbNormalSigning-DVKFBYgV.js +1 -0
  164. package/dist/public/sdk/{runtime-auth-BKFyLISf.js → runtime-auth-Ch4qvKL2.js} +1 -1
  165. package/dist/{esm/sdk/runtime-device-link-ENxdEXQW.js → public/sdk/runtime-device-link-DtNpEjq5.js} +1 -1
  166. package/dist/{esm/sdk/runtime-ecdsa-tempo-DhGEb9U7.js → public/sdk/runtime-ecdsa-tempo-Bntp_Zgx.js} +1 -1
  167. package/dist/public/sdk/{runtime-email-otp-dgsP7XZi.js → runtime-email-otp-DEFt-Y-_.js} +1 -1
  168. package/dist/public/sdk/{runtime-export-D2RCm5Gk.js → runtime-export-DE_umiS1.js} +1 -1
  169. package/dist/{esm/sdk/runtime-near-Bf-9MFBQ.js → public/sdk/runtime-near-uXqcLEz8.js} +1 -1
  170. package/dist/public/sdk/runtime-preferences-C49p0VLC.js +1 -0
  171. package/dist/public/sdk/runtime-recovery-D7wklehP.js +1 -0
  172. package/dist/public/sdk/{runtime-recovery-codes-BZMiAR_5.js → runtime-recovery-codes-Dn-NccpU.js} +1 -1
  173. package/dist/public/sdk/{sdkSentEvents-D3q1h-Uo.js → sdkSentEvents-DiQ3YVlj.js} +1 -1
  174. package/dist/public/sdk/{secp256k1-DSLttQND.js → secp256k1-C-AETUpI.js} +1 -1
  175. package/dist/public/sdk/{secureRandomId-BIekT8bE.js → secureRandomId-LwBFx84B.js} +1 -1
  176. package/dist/public/sdk/{sessionPolicy-J-RrlPZQ.js → sessionPolicy-CBTZQe1n.js} +1 -1
  177. package/dist/public/sdk/shared-D6RYxvYR.js +6 -0
  178. package/dist/{esm/sdk/signEvmFamily-KUNWKVeh.js → public/sdk/signEvmFamily-DjD3tn8e.js} +1 -1
  179. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js → signEvmFamilyWithUiConfirmForTempo-CwRFbaLM.js} +1 -1
  180. package/dist/public/sdk/{signEvmWithUiConfirm-CqxL7UbT.js → signEvmWithUiConfirm-BHG0dwVG.js} +1 -1
  181. package/dist/public/sdk/signNear-DR50cpes.js +1 -0
  182. package/dist/public/sdk/{signatureUses-CjJ233KX.js → signatureUses-8c8Ku_Fw.js} +1 -1
  183. package/dist/public/sdk/{signerDomain-vQmlnsbF.js → signerDomain-DqLCvI-D.js} +1 -1
  184. package/dist/public/sdk/{signingFlow-vrXxrhlG.js → signingFlow-Mym5j6aw.js} +1 -1
  185. package/dist/public/sdk/signingQueue-2pr7lAUS.js +1 -0
  186. package/dist/public/sdk/thresholdEcdsa-D-QMyevW.js +1 -0
  187. package/dist/public/sdk/{trace-BvbCxdXF.js → trace-QLsbYdld.js} +1 -1
  188. package/dist/public/sdk/{transaction-activity-D40ih2j-.js → transaction-activity-Cb2JyYKv.js} +1 -1
  189. package/dist/{esm/sdk/transactionReviewAdmission-C-a3ctCJ.js → public/sdk/transactionReviewAdmission-CIvR4W5_.js} +1 -1
  190. package/dist/{esm/sdk/transactionState-DVinJk4K.js → public/sdk/transactionState-CGULLokO.js} +1 -1
  191. package/dist/public/sdk/{types-D3GM-uHR.js → types-WGrFMQSw.js} +1 -1
  192. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  193. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  194. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  195. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  196. package/dist/public/sdk/wallet-recovery-D7ywcIHw.js +1 -0
  197. package/dist/{esm/sdk/walletAuthMethodRecord-CXedSgpV.js → public/sdk/walletAuthMethodRecord-CnBw27ED.js} +1 -1
  198. package/dist/public/sdk/walletAuthority-BWvfaKIX.js +1 -0
  199. package/dist/public/sdk/walletCustodyEcdsaContinuity-B8aO2NFb.js +1 -0
  200. package/dist/public/sdk/{walletOwnershipGeneration-DoXVMDWe.js → walletOwnershipGeneration-CAycHv-H.js} +1 -1
  201. package/dist/public/sdk/walletRecoveryCommit-C3EgMjo-.js +1 -0
  202. package/dist/public/sdk/walletRecoveryRotate-D_1a8Agl.js +1 -0
  203. package/dist/public/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +1 -0
  204. package/dist/public/sdk/walletSessionAuthorizationStatus-BLyzJbU8.js +1 -0
  205. package/dist/public/sdk/{walletSessionAuthorizationStore-gEYPmu-G.js → walletSessionAuthorizationStore-BiKGIBWQ.js} +1 -1
  206. package/dist/public/sdk/warmSessionHydration-B7-kCnJh.js +1 -0
  207. package/dist/public/sdk/{webauthnP256-BEz4DEAs.js → webauthnP256-DZCusNY9.js} +1 -1
  208. package/dist/{esm/sdk/webauthnPromptCoordinator-BEudHQBr.js → public/sdk/webauthnPromptCoordinator-CS4Xc_jZ.js} +1 -1
  209. package/dist/public/sdk/workers/shamir3pass_runtime_bg.wasm +0 -0
  210. package/dist/public/wallet-assets.manifest.json +264 -240
  211. package/dist/public/wallet-service/index.html +4 -4
  212. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistrationSetupPrewarm.d.ts +4 -0
  213. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signatureOnlySigning.d.ts +2 -2
  214. package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +38 -0
  215. package/dist/types/wallet/src/react/components/VoiceAssistantCard.typecheck.d.ts +2 -0
  216. package/dist/types/wallet/src/react/index.d.ts +5 -1
  217. package/dist/workers/shamir3pass_runtime_bg.wasm +0 -0
  218. package/package.json +3 -2
  219. package/dist/esm/sdk/activeWalletSession-DiZcKjB_.js +0 -1
  220. package/dist/esm/sdk/challengeDelivery-DxXAkOfS.js +0 -1
  221. package/dist/esm/sdk/digestEncoding-Dzc1rzWV.js +0 -1
  222. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +0 -1
  223. package/dist/esm/sdk/host-c1__wJwz.js +0 -1
  224. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +0 -1
  225. package/dist/esm/sdk/normalize-kUDm5zfS.js +0 -1
  226. package/dist/esm/sdk/passkey-custody-BQj44jEM.js +0 -1
  227. package/dist/esm/sdk/presignaturePool-DwlTReFO.js +0 -1
  228. package/dist/esm/sdk/primitives-CAcl7ON7.js +0 -1
  229. package/dist/esm/sdk/registration-CEqVAgNJ.js +0 -1
  230. package/dist/esm/sdk/registrationIntent-DOkZcKSP.js +0 -1
  231. package/dist/esm/sdk/routerAbNormalSigning-BG75eyI2.js +0 -1
  232. package/dist/esm/sdk/runtime-preferences-LQ8SPE7o.js +0 -1
  233. package/dist/esm/sdk/runtime-recovery-BuEzJzuZ.js +0 -1
  234. package/dist/esm/sdk/shared-8ffIBYw2.js +0 -6
  235. package/dist/esm/sdk/signNear-BhTkDm2-.js +0 -1
  236. package/dist/esm/sdk/signingQueue-BrGJXBqe.js +0 -1
  237. package/dist/esm/sdk/thresholdEcdsa-CO7xo1So.js +0 -1
  238. package/dist/esm/sdk/wallet-recovery-C1kesLCF.js +0 -1
  239. package/dist/esm/sdk/walletAuthority-B5hXHWpK.js +0 -1
  240. package/dist/esm/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +0 -1
  241. package/dist/esm/sdk/walletRecoveryCommit-Cc9AqHr0.js +0 -1
  242. package/dist/esm/sdk/walletRecoveryRotate-DWTAFYiv.js +0 -1
  243. package/dist/esm/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +0 -1
  244. package/dist/esm/sdk/warmSessionHydration-DgjuUacN.js +0 -1
  245. package/dist/public/sdk/activeWalletSession-DiZcKjB_.js +0 -1
  246. package/dist/public/sdk/challengeDelivery-DxXAkOfS.js +0 -1
  247. package/dist/public/sdk/digestEncoding-Dzc1rzWV.js +0 -1
  248. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +0 -1
  249. package/dist/public/sdk/host-c1__wJwz.js +0 -1
  250. package/dist/public/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +0 -1
  251. package/dist/public/sdk/normalize-kUDm5zfS.js +0 -1
  252. package/dist/public/sdk/passkey-custody-BQj44jEM.js +0 -1
  253. package/dist/public/sdk/presignaturePool-DwlTReFO.js +0 -1
  254. package/dist/public/sdk/primitives-CAcl7ON7.js +0 -1
  255. package/dist/public/sdk/registration-CEqVAgNJ.js +0 -1
  256. package/dist/public/sdk/registrationIntent-DOkZcKSP.js +0 -1
  257. package/dist/public/sdk/routerAbNormalSigning-BG75eyI2.js +0 -1
  258. package/dist/public/sdk/runtime-preferences-LQ8SPE7o.js +0 -1
  259. package/dist/public/sdk/runtime-recovery-BuEzJzuZ.js +0 -1
  260. package/dist/public/sdk/shared-8ffIBYw2.js +0 -6
  261. package/dist/public/sdk/signNear-BhTkDm2-.js +0 -1
  262. package/dist/public/sdk/signingQueue-BrGJXBqe.js +0 -1
  263. package/dist/public/sdk/thresholdEcdsa-CO7xo1So.js +0 -1
  264. package/dist/public/sdk/wallet-recovery-C1kesLCF.js +0 -1
  265. package/dist/public/sdk/walletAuthority-B5hXHWpK.js +0 -1
  266. package/dist/public/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +0 -1
  267. package/dist/public/sdk/walletRecoveryCommit-Cc9AqHr0.js +0 -1
  268. package/dist/public/sdk/walletRecoveryRotate-DWTAFYiv.js +0 -1
  269. package/dist/public/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +0 -1
  270. package/dist/public/sdk/warmSessionHydration-DgjuUacN.js +0 -1
  271. /package/dist/esm/sdk/{appearance-ZGVLwA4N.js → appearance-DITtYj-z.js} +0 -0
  272. /package/dist/esm/sdk/{authenticatorOptions-DMLnDWT2.js → authenticatorOptions-C9aCKgeF.js} +0 -0
  273. /package/dist/esm/sdk/{authorizationAdmission-Ckx6q6tp.js → authorizationAdmission-CGinGhXH.js} +0 -0
  274. /package/dist/esm/sdk/{base64-CsEj-_bC.js → base64-DW79QA0h.js} +0 -0
  275. /package/dist/esm/sdk/{browser-D4wUl_77.js → browser-DkCRXFkk.js} +0 -0
  276. /package/dist/esm/sdk/{bytes-BBYkulRB.js → bytes-DZRW2UDg.js} +0 -0
  277. /package/dist/esm/sdk/{canonicalSignerErrorCode-DEHsPxNm.js → canonicalSignerErrorCode-Cz48v4oy.js} +0 -0
  278. /package/dist/esm/sdk/{configBuilder-ZiZwFKt4.js → configBuilder-BMawmNpz.js} +0 -0
  279. /package/dist/esm/sdk/{errors-BZO3LF6G.js → errors-DIWY1KR9.js} +0 -0
  280. /package/dist/esm/sdk/{events-DsQJQ0Cl.js → events-1dzC4Ocx.js} +0 -0
  281. /package/dist/esm/sdk/{executeWorkerOperation-BInr8RYN.js → executeWorkerOperation-DKCRRq5E.js} +0 -0
  282. /package/dist/esm/sdk/{jsonRpc-DrCYQIM9.js → jsonRpc-YKL5n8VL.js} +0 -0
  283. /package/dist/esm/sdk/{jsxRuntime.module-BcZNe_OA.js → jsxRuntime.module-C8JOKu_4.js} +0 -0
  284. /package/dist/esm/sdk/{keccak-B02Fekdh.js → keccak-BArcwgbj.js} +0 -0
  285. /package/dist/esm/sdk/{normalization-CpLZcL2f.js → normalization-CeZT7ob0.js} +0 -0
  286. /package/dist/esm/sdk/{presignatures-DB2IPD-A.js → presignatures-DZm0d6Wy.js} +0 -0
  287. /package/dist/esm/sdk/{profileAccountProjection-DmmfMood.js → profileAccountProjection-B3LXAUmo.js} +0 -0
  288. /package/dist/esm/sdk/{promptText-D2f5Rg0h.js → promptText-B8RprJhO.js} +0 -0
  289. /package/dist/esm/sdk/{signerSlot-Dto7dObP.js → signerSlot-B4Eq8Oe2.js} +0 -0
  290. /package/dist/esm/sdk/{signingSessionSeal-CDLUmAFY.js → signingSessionSeal-DX41aXUL.js} +0 -0
  291. /package/dist/esm/sdk/{surface-measurement-reporter-IlPOI3QK.js → surface-measurement-reporter-DvVHPu_O.js} +0 -0
  292. /package/dist/esm/sdk/{theme-_AUTWLS_.js → theme-BKaFqCAj.js} +0 -0
  293. /package/dist/esm/sdk/{types-BNUuaUtl.js → types-DhtByIcQ.js} +0 -0
  294. /package/dist/esm/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  295. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-DWBksIJR.js → walletSessionAuthorizationProjection-DuU6w0FP.js} +0 -0
  296. /package/dist/esm/sdk/{walletSessionFailure-Bu4VPKTz.js → walletSessionFailure-YuhraC3P.js} +0 -0
  297. /package/dist/public/sdk/{appearance-ZGVLwA4N.js → appearance-DITtYj-z.js} +0 -0
  298. /package/dist/public/sdk/{authenticatorOptions-DMLnDWT2.js → authenticatorOptions-C9aCKgeF.js} +0 -0
  299. /package/dist/public/sdk/{authorizationAdmission-Ckx6q6tp.js → authorizationAdmission-CGinGhXH.js} +0 -0
  300. /package/dist/public/sdk/{base64-CsEj-_bC.js → base64-DW79QA0h.js} +0 -0
  301. /package/dist/public/sdk/{browser-D4wUl_77.js → browser-DkCRXFkk.js} +0 -0
  302. /package/dist/public/sdk/{bytes-BBYkulRB.js → bytes-DZRW2UDg.js} +0 -0
  303. /package/dist/public/sdk/{canonicalSignerErrorCode-DEHsPxNm.js → canonicalSignerErrorCode-Cz48v4oy.js} +0 -0
  304. /package/dist/public/sdk/{configBuilder-ZiZwFKt4.js → configBuilder-BMawmNpz.js} +0 -0
  305. /package/dist/public/sdk/{errors-BZO3LF6G.js → errors-DIWY1KR9.js} +0 -0
  306. /package/dist/public/sdk/{events-DsQJQ0Cl.js → events-1dzC4Ocx.js} +0 -0
  307. /package/dist/public/sdk/{executeWorkerOperation-BInr8RYN.js → executeWorkerOperation-DKCRRq5E.js} +0 -0
  308. /package/dist/public/sdk/{jsonRpc-DrCYQIM9.js → jsonRpc-YKL5n8VL.js} +0 -0
  309. /package/dist/public/sdk/{jsxRuntime.module-BcZNe_OA.js → jsxRuntime.module-C8JOKu_4.js} +0 -0
  310. /package/dist/public/sdk/{keccak-B02Fekdh.js → keccak-BArcwgbj.js} +0 -0
  311. /package/dist/public/sdk/{normalization-CpLZcL2f.js → normalization-CeZT7ob0.js} +0 -0
  312. /package/dist/public/sdk/{presignatures-DB2IPD-A.js → presignatures-DZm0d6Wy.js} +0 -0
  313. /package/dist/public/sdk/{profileAccountProjection-DmmfMood.js → profileAccountProjection-B3LXAUmo.js} +0 -0
  314. /package/dist/public/sdk/{promptText-D2f5Rg0h.js → promptText-B8RprJhO.js} +0 -0
  315. /package/dist/public/sdk/{signerSlot-Dto7dObP.js → signerSlot-B4Eq8Oe2.js} +0 -0
  316. /package/dist/public/sdk/{signingSessionSeal-CDLUmAFY.js → signingSessionSeal-DX41aXUL.js} +0 -0
  317. /package/dist/public/sdk/{surface-measurement-reporter-IlPOI3QK.js → surface-measurement-reporter-DvVHPu_O.js} +0 -0
  318. /package/dist/public/sdk/{theme-_AUTWLS_.js → theme-BKaFqCAj.js} +0 -0
  319. /package/dist/public/sdk/{types-BNUuaUtl.js → types-DhtByIcQ.js} +0 -0
  320. /package/dist/public/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  321. /package/dist/public/sdk/{walletSessionAuthorizationProjection-DWBksIJR.js → walletSessionAuthorizationProjection-DuU6w0FP.js} +0 -0
  322. /package/dist/public/sdk/{walletSessionFailure-Bu4VPKTz.js → walletSessionFailure-YuhraC3P.js} +0 -0
package/README.md CHANGED
@@ -1,18 +1,18 @@
1
1
  # Seams Wallet SDK
2
2
 
3
- `@seams/wallet` **0.9.2** provides browser wallet lifecycle, NEAR and EVM-family
3
+ `@seams/wallet` **0.9.4** provides browser wallet lifecycle, NEAR and EVM-family
4
4
  threshold signing, React components, and hosted wallet runtime assets.
5
5
 
6
6
  ## Install
7
7
 
8
8
  ```sh
9
- pnpm add @seams/wallet@0.9.2
9
+ pnpm add @seams/wallet@0.9.4
10
10
  ```
11
11
 
12
12
  React integrations support React 18 and 19. Import the provider and UI from
13
13
  `@seams/wallet/react` and its stylesheet from `@seams/wallet/react/styles`.
14
14
  Keep the application package, wallet-origin assets, and
15
- `@seams/wallet-server@0.9.2` on the matching release.
15
+ `@seams/wallet-server@0.9.4` on the matching release.
16
16
 
17
17
  ## Next release migration (unreleased)
18
18
 
@@ -5,7 +5,7 @@ distributed Seams Wallet SDK, server runtime, Wasm, strict Workers, and CLI.
5
5
  Dependency license expressions come from their package metadata. Packaged
6
6
  license and notice wording is reproduced below with normalized whitespace.
7
7
 
8
- Inventory: 517 dependency records (109 npm, 408 Cargo).
8
+ Inventory: 518 dependency records (110 npm, 408 Cargo).
9
9
 
10
10
  ## Dependency inventory
11
11
 
@@ -527,6 +527,7 @@ Inventory: 517 dependency records (109 npm, 408 Cargo).
527
527
  | npm | utils-merge | 1.0.1 | MIT | Jared Hanson jaredhanson@gmail.com |
528
528
  | npm | vary | 1.1.2 | MIT | Douglas Christopher Wilson <doug@somethingdoug.com> |
529
529
  | npm | viem | 2.46.0 | MIT | |
530
+ | npm | voice-glow | 0.2.1 | MIT | Jakub Antalik |
530
531
  | npm | ws | 8.18.3 | MIT | Einar Otto Stangvik <einaros@gmail.com> (http://2x.io) |
531
532
 
532
533
  ## Dependencies without a packaged license file
@@ -9803,6 +9804,37 @@ Applies to:
9803
9804
  DEALINGS IN THE SOFTWARE.
9804
9805
 
9805
9806
 
9807
+ ### 915a283980628a0c
9808
+
9809
+ Packaged as: LICENSE
9810
+
9811
+ Applies to:
9812
+
9813
+ - npm:voice-glow@0.2.1
9814
+
9815
+ MIT License
9816
+
9817
+ Copyright (c) 2026 Jakub Antalik
9818
+
9819
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9820
+ of this software and associated documentation files (the "Software"), to deal
9821
+ in the Software without restriction, including without limitation the rights
9822
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9823
+ copies of the Software, and to permit persons to whom the Software is
9824
+ furnished to do so, subject to the following conditions:
9825
+
9826
+ The above copyright notice and this permission notice shall be included in all
9827
+ copies or substantial portions of the Software.
9828
+
9829
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
9830
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9831
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
9832
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
9833
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
9834
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
9835
+ SOFTWARE.
9836
+
9837
+
9806
9838
  ### 916586c760c1cb10
9807
9839
 
9808
9840
  Packaged as: LICENSE
@@ -1 +1 @@
1
- 392dfb0f192f2256956e72a6ec24a6d93a8c39e38b83581ad6c62f1dd73df7a5
1
+ 1fe901bf530cf409235570334a284f3829db3df382b53293b1c2e6597313f9c2
@@ -1,6 +1,5 @@
1
1
  import { SigningSessionIds, SigningSessionPlanKind } from "../../../session/operationState/types.js";
2
2
  import { nearEd25519SignerBindingFromBoundaryFields } from "../../../session/identity/exactSigningLaneIdentity.js";
3
- import { computeUiIntentDigestFromNep413 } from "../../../../../utils/intentDigest.js";
4
3
  import { parseSigningOperationFingerprintDigest } from "../../../../../shared-ts/src/authorization/operationFingerprint.js";
5
4
  import { SigningOperationCommandKind, runSigningOperationCommand } from "../../shared/signingStateMachine.js";
6
5
  import { buildSigningConfirmationAuthParams } from "../../../stepUpConfirmation/confirmOperation.js";
@@ -241,14 +240,14 @@ function authorizeNearSignatureOnlyOperation(operation, stepUp, confirmation) {
241
240
  };
242
241
  }
243
242
  /**
244
- * Sends the server prepare of a warm-session NEP-413 signature while the
243
+ * Sends the server prepare of a warm-session signature while the
245
244
  * confirmation dialog is open. The request is bound to the digest the dialog
246
245
  * shows and to the signing digest. A confirmation that returns another digest,
247
246
  * a declined confirmation or a step-up leaves the prepare to expire with its
248
247
  * lease; the quota use it claimed stays spent.
249
248
  */
250
- async function startNearSignatureOnlyPrepare(operation, stepUp, signingSessionCoordinator) {
251
- if (stepUp.preparedStepUp.kind !== "warm_session" || operation.intent.kind !== "nep413_message_v1") return null;
249
+ async function startNearSignatureOnlyPrepare(operation, stepUp, signingSessionCoordinator, displayDigest) {
250
+ if (stepUp.preparedStepUp.kind !== "warm_session") return null;
252
251
  const resolved = await resolveConfirmedNearEd25519YaoCapability({
253
252
  preparation: operation.preparation,
254
253
  executor: operation.executor
@@ -267,11 +266,7 @@ async function startNearSignatureOnlyPrepare(operation, stepUp, signingSessionCo
267
266
  nearAccountId: operation.nearAccountId,
268
267
  operationId: operation.signingOperation.operationId,
269
268
  operationFingerprint: operation.signingOperation.operationFingerprint,
270
- displayDigest: await computeUiIntentDigestFromNep413({
271
- nearAccountId: operation.nearAccountId,
272
- recipient: operation.intent.recipient,
273
- message: operation.intent.message
274
- }),
269
+ displayDigest,
275
270
  signingDigestB64u: await operation.computeSigningDigestB64u(),
276
271
  intent: operation.intent
277
272
  });
@@ -6,7 +6,9 @@ import { ensureEd25519Prefix } from "../../../../shared-ts/src/utils/near.js";
6
6
  import { toAccountId } from "../../../types/accountIds.js";
7
7
  import { SigningEventPhase, createSigningFlowEvent } from "../../../types/sdkSentEvents.js";
8
8
  import { SigningOperationIntent, SigningSessionIds } from "../../session/operationState/types.js";
9
+ import { computeUiIntentDigestFromTxs, orderActionForDigest } from "../../../../utils/intentDigest.js";
9
10
  import { isWarmSessionSigningAuthPlan } from "../../stepUpConfirmation/types.js";
11
+ import { emitEd25519SigningTiming } from "../../session/operationState/trace.js";
10
12
  import { SigningOperationCommandKind, runSigningOperationCommand } from "../shared/signingStateMachine.js";
11
13
  import { resolveNearSigningMaterials } from "./shared/signingMaterials.js";
12
14
  import { buildNearDelegateSigningPayloads } from "../../chains/near/payloads.js";
@@ -14,7 +16,7 @@ import { parseThresholdEd25519NearAction, thresholdEd25519DelegateActionOperatio
14
16
  import { computeThresholdEd25519DelegateSigningDigestWasm } from "../../chains/near/nearSignerWasm.js";
15
17
  import { finalizeThresholdEd25519DelegateSignatureResult } from "./shared/ed25519YaoNormalSigning.js";
16
18
  import { toPublicKeyString } from "../../workerManager/validation.js";
17
- import { authorizeNearSignatureOnlyOperation, confirmNearSignatureOnlyOperation, prepareNearSignatureOnlyStepUp, resolveNearSignatureOnlySigningMaterial, resolveNearSignatureOnlySigningPlans, runNearSignatureOnlySignCommand, signNearSignatureOnlyOperation } from "./shared/signatureOnlySigning.js";
19
+ import { authorizeNearSignatureOnlyOperation, confirmNearSignatureOnlyOperation, prepareNearSignatureOnlyStepUp, resolveNearSignatureOnlySigningMaterial, resolveNearSignatureOnlySigningPlans, runNearSignatureOnlySignCommand, signNearSignatureOnlyOperation, startNearSignatureOnlyPrepare } from "./shared/signatureOnlySigning.js";
18
20
  //#region src/core/signingEngine/flows/signNear/signDelegate.ts
19
21
  function emitNearSigningEvent(onEvent, accountId, event) {
20
22
  try {
@@ -137,6 +139,11 @@ async function runNearDelegateActionSigning({ ctx, commandSubject, nearAccount,
137
139
  remainingUses: confirmationAuthPayload.signingAuthPlan.remainingUses
138
140
  }
139
141
  });
142
+ const startedPrepare = await startNearSignatureOnlyPrepare(operation, stepUp, signingSessionCoordinator, await computeUiIntentDigestFromTxs([{
143
+ receiverId: delegateSigningPayloads.confirmationDelegate.receiverId,
144
+ actions: delegateSigningPayloads.confirmationDelegate.actions.map(orderActionForDigest)
145
+ }]));
146
+ const confirmationStartedAt = performance.now();
140
147
  emitNearSigningEvent(onEvent, nearAccountId, {
141
148
  phase: SigningEventPhase.STEP_05_CONFIRMATION_DISPLAYED,
142
149
  status: "waiting_for_user",
@@ -160,6 +167,7 @@ async function runNearDelegateActionSigning({ ctx, commandSubject, nearAccount,
160
167
  rpcCall: resolvedRpcCall
161
168
  }
162
169
  });
170
+ emitEd25519SigningTiming(String(operationId), "confirmation", confirmationStartedAt);
163
171
  emitNearSigningEvent(onEvent, nearAccountId, {
164
172
  phase: SigningEventPhase.STEP_05_CONFIRMATION_APPROVED,
165
173
  status: "succeeded",
@@ -183,7 +191,7 @@ async function runNearDelegateActionSigning({ ctx, commandSubject, nearAccount,
183
191
  overlay: "none"
184
192
  }
185
193
  });
186
- const material = await resolveNearSignatureOnlySigningMaterial(operation, authorization);
194
+ const material = await resolveNearSignatureOnlySigningMaterial(operation, authorization, startedPrepare);
187
195
  emitNearSigningEvent(onEvent, nearAccountId, {
188
196
  phase: SigningEventPhase.STEP_07_AUTHENTICATION_COMPLETE,
189
197
  status: "succeeded",
@@ -4,6 +4,7 @@ import { resolveNearNetwork } from "../../../config/chains.js";
4
4
  import { normalizeThresholdEd25519ParticipantIds } from "../../../../shared-ts/src/threshold/participants.js";
5
5
  import { PASSKEY_MANAGER_DEFAULT_CONFIGS } from "../../../config/defaultConfigs.js";
6
6
  import { SigningOperationIntent, SigningSessionIds } from "../../session/operationState/types.js";
7
+ import { computeUiIntentDigestFromNep413 } from "../../../../utils/intentDigest.js";
7
8
  import { emitEd25519SigningTiming } from "../../session/operationState/trace.js";
8
9
  import { SigningOperationCommandKind, runSigningOperationCommand } from "../shared/signingStateMachine.js";
9
10
  import { resolveNearSigningMaterials } from "./shared/signingMaterials.js";
@@ -83,7 +84,11 @@ async function signNep413Message({ ctx, commandSubject, nearAccount, signingSess
83
84
  passkeyEd25519OperationStepUp,
84
85
  emailOtpEd25519StepUp
85
86
  });
86
- const startedPrepare = await startNearSignatureOnlyPrepare(operation, stepUp, signingSessionCoordinator);
87
+ const startedPrepare = await startNearSignatureOnlyPrepare(operation, stepUp, signingSessionCoordinator, await computeUiIntentDigestFromNep413({
88
+ nearAccountId,
89
+ recipient: payload.recipient,
90
+ message: payload.message
91
+ }));
87
92
  emitEd25519SigningTiming(String(operationId), "pre_confirmation", preConfirmationStartedAt);
88
93
  const confirmationStartedAt = performance.now();
89
94
  const confirmation = await confirmNearSignatureOnlyOperation(operation, {
@@ -0,0 +1,313 @@
1
+ .voice-assistant-card {
2
+ --voice-surface: #1d1d1d;
3
+ --voice-foreground: #f2f2f2;
4
+ --voice-muted: rgb(202 202 202 / 70%);
5
+ --voice-bubble: #303030;
6
+ --voice-divider: rgb(255 255 255 / 4%);
7
+ --voice-button: rgb(255 255 255 / 10%);
8
+ --voice-button-shadow:
9
+ 0 1px 1px rgb(0 0 0 / 24%), inset 0 0 0 1px rgb(255 255 255 / 4%),
10
+ inset 0 1px 0 rgb(255 255 255 / 6%);
11
+ display: grid;
12
+ inline-size: 360px;
13
+ max-inline-size: 100%;
14
+ min-inline-size: 0;
15
+ border-radius: 24px;
16
+ background: var(--voice-surface);
17
+ color: var(--voice-foreground);
18
+ font: 400 14px / 20px var(--seams-fonts-sans, Inter, system-ui, sans-serif);
19
+ -webkit-font-smoothing: antialiased;
20
+ color-scheme: dark;
21
+ }
22
+
23
+ .voice-assistant-card[data-theme='light'] {
24
+ --voice-surface: #fff;
25
+ --voice-foreground: #0d0d0d;
26
+ --voice-muted: #6c6c6c;
27
+ --voice-bubble: #f0f0f0;
28
+ --voice-divider: rgb(0 0 0 / 4%);
29
+ --voice-button: rgb(255 255 255 / 40%);
30
+ --voice-button-shadow:
31
+ 0 1px 3px rgb(0 0 0 / 4%), inset 0 0 0 1px rgb(0 0 0 / 8%), inset 0 -1px 0 rgb(0 0 0 / 8%);
32
+ box-shadow:
33
+ 0 0 0 1px rgb(0 0 0 / 4%),
34
+ 0 8px 32px -4px rgb(0 0 0 / 6%),
35
+ 0 1px 3px rgb(0 0 0 / 4%);
36
+ color-scheme: light;
37
+ }
38
+
39
+ .voice-assistant-card,
40
+ .voice-assistant-card * {
41
+ box-sizing: border-box;
42
+ }
43
+
44
+ .voice-assistant-beam {
45
+ margin: -1px;
46
+ border-radius: 25px;
47
+ min-inline-size: 0;
48
+ }
49
+
50
+ .voice-assistant-content {
51
+ position: relative;
52
+ z-index: 5;
53
+ display: flex;
54
+ flex-direction: column;
55
+ min-block-size: 342px;
56
+ border-radius: 25px;
57
+ }
58
+
59
+ .voice-assistant-header {
60
+ display: flex;
61
+ align-items: center;
62
+ gap: 12px;
63
+ padding: 16px;
64
+ }
65
+
66
+ .voice-assistant-avatar {
67
+ display: grid;
68
+ flex: none;
69
+ place-items: center;
70
+ inline-size: 32px;
71
+ block-size: 32px;
72
+ border-radius: 50%;
73
+ background: #27272e;
74
+ color: #e6dfec;
75
+ box-shadow: inset 0 0 0 1px rgb(255 255 255 / 4%);
76
+ font-size: 13px;
77
+ font-weight: 500;
78
+ line-height: 1;
79
+ }
80
+
81
+ .voice-assistant-card[data-theme='light'] .voice-assistant-avatar {
82
+ background: #eee9f2;
83
+ color: #37364f;
84
+ box-shadow: inset 0 0 0 1px rgb(0 0 0 / 2%);
85
+ }
86
+
87
+ .voice-assistant-identity {
88
+ min-inline-size: 0;
89
+ }
90
+
91
+ .voice-assistant-identity h2,
92
+ .voice-assistant-identity p {
93
+ margin: 0;
94
+ overflow-wrap: anywhere;
95
+ }
96
+
97
+ .voice-assistant-identity h2 {
98
+ font-size: 16px;
99
+ font-weight: 500;
100
+ line-height: 22px;
101
+ }
102
+
103
+ .voice-assistant-identity p {
104
+ color: var(--voice-muted);
105
+ font-size: 12px;
106
+ line-height: 16px;
107
+ }
108
+
109
+ .voice-assistant-divider {
110
+ flex: none;
111
+ block-size: 1px;
112
+ background: linear-gradient(90deg, transparent, var(--voice-divider) 20% 80%, transparent);
113
+ }
114
+
115
+ .voice-assistant-body {
116
+ display: flex;
117
+ flex-direction: column;
118
+ gap: 16px;
119
+ padding: 24px 24px 0;
120
+ overflow-wrap: anywhere;
121
+ }
122
+
123
+ .voice-assistant-bubble-row {
124
+ padding-inline-start: 8px;
125
+ animation: voice-assistant-float 4s ease-in-out infinite;
126
+ }
127
+
128
+ .voice-assistant-bubble {
129
+ position: relative;
130
+ display: inline-block;
131
+ max-inline-size: 240px;
132
+ margin: 0;
133
+ padding: 8px 12px;
134
+ border-radius: 18px;
135
+ background: var(--voice-bubble);
136
+ font-size: 14px;
137
+ line-height: 20px;
138
+ }
139
+
140
+ .voice-assistant-bubble span {
141
+ position: relative;
142
+ z-index: 1;
143
+ }
144
+
145
+ .voice-assistant-bubble::before {
146
+ content: '';
147
+ position: absolute;
148
+ inset-block-end: 0;
149
+ inset-inline-start: -7px;
150
+ inline-size: 20px;
151
+ block-size: 20px;
152
+ border-end-end-radius: 16px 14px;
153
+ background: var(--voice-bubble);
154
+ }
155
+
156
+ .voice-assistant-bubble::after {
157
+ content: '';
158
+ position: absolute;
159
+ inset-block-end: 0;
160
+ inset-inline-start: -26px;
161
+ inline-size: 26px;
162
+ block-size: 20px;
163
+ border-end-end-radius: 10px;
164
+ background: var(--voice-surface);
165
+ }
166
+
167
+ .voice-assistant-transcript {
168
+ padding-inline-start: 32px;
169
+ text-align: end;
170
+ text-wrap: pretty;
171
+ }
172
+
173
+ .voice-assistant-footer {
174
+ display: flex;
175
+ flex-direction: column;
176
+ align-items: center;
177
+ gap: 12px;
178
+ margin-block-start: auto;
179
+ padding: 24px;
180
+ }
181
+
182
+ .voice-assistant-caption {
183
+ display: grid;
184
+ color: var(--voice-muted);
185
+ font-size: 12px;
186
+ line-height: 16px;
187
+ }
188
+
189
+ .voice-assistant-caption > span {
190
+ grid-area: 1 / 1;
191
+ text-align: center;
192
+ opacity: 0;
193
+ transform: translateY(4px);
194
+ transition:
195
+ opacity var(--seams-voice-transition, 150ms ease-out),
196
+ transform var(--seams-voice-transition, 150ms ease-out);
197
+ }
198
+
199
+ .voice-assistant-caption > span[data-visible='true'] {
200
+ opacity: 1;
201
+ transform: translateY(0);
202
+ }
203
+
204
+ .voice-assistant-status {
205
+ position: absolute;
206
+ inline-size: 1px;
207
+ block-size: 1px;
208
+ overflow: hidden;
209
+ clip-path: inset(50%);
210
+ white-space: nowrap;
211
+ }
212
+
213
+ .voice-assistant-mic {
214
+ display: grid;
215
+ place-items: center;
216
+ inline-size: 48px;
217
+ block-size: 48px;
218
+ padding: 0;
219
+ border: 0;
220
+ border-radius: 50%;
221
+ background: var(--voice-button);
222
+ box-shadow: var(--voice-button-shadow);
223
+ color: inherit;
224
+ font: inherit;
225
+ cursor: pointer;
226
+ touch-action: manipulation;
227
+ -webkit-tap-highlight-color: transparent;
228
+ user-select: none;
229
+ transition: transform var(--seams-voice-transition, 150ms ease-out);
230
+ }
231
+
232
+ .voice-assistant-mic:active {
233
+ transform: scale(0.95);
234
+ }
235
+
236
+ .voice-assistant-mic:focus-visible {
237
+ outline: 2px solid var(--voice-foreground);
238
+ outline-offset: 3px;
239
+ }
240
+
241
+ @media (hover: hover) and (pointer: fine) {
242
+ .voice-assistant-mic:hover {
243
+ background-image: linear-gradient(rgb(128 128 128 / 4%) 0 100%);
244
+ }
245
+ }
246
+
247
+ .voice-assistant-wave {
248
+ display: flex;
249
+ align-items: center;
250
+ gap: 2px;
251
+ block-size: 20px;
252
+ }
253
+
254
+ .voice-assistant-wave i {
255
+ inline-size: 2px;
256
+ block-size: 6px;
257
+ border-radius: 1px;
258
+ background: currentColor;
259
+ }
260
+
261
+ .voice-assistant-wave i:nth-child(2),
262
+ .voice-assistant-wave i:nth-child(4) {
263
+ block-size: 12px;
264
+ }
265
+
266
+ .voice-assistant-wave i:nth-child(3) {
267
+ block-size: 18px;
268
+ }
269
+
270
+ .voice-assistant-card[data-state='listening'] .voice-assistant-wave i {
271
+ animation: voice-assistant-wave 900ms ease-in-out infinite;
272
+ }
273
+
274
+ .voice-assistant-wave i:nth-child(2) {
275
+ animation-delay: -270ms;
276
+ }
277
+
278
+ .voice-assistant-wave i:nth-child(3) {
279
+ animation-delay: -540ms;
280
+ }
281
+
282
+ .voice-assistant-wave i:nth-child(4) {
283
+ animation-delay: -135ms;
284
+ }
285
+
286
+ .voice-assistant-wave i:nth-child(5) {
287
+ animation-delay: -405ms;
288
+ }
289
+
290
+ @keyframes voice-assistant-wave {
291
+ 50% {
292
+ transform: scaleY(0.35);
293
+ }
294
+ }
295
+
296
+ @keyframes voice-assistant-float {
297
+ 50% {
298
+ transform: translateY(-3px);
299
+ }
300
+ }
301
+
302
+ @media (prefers-reduced-motion: reduce) {
303
+ .voice-assistant-bubble-row,
304
+ .voice-assistant-card[data-state='listening'] .voice-assistant-wave i {
305
+ animation: none;
306
+ }
307
+
308
+ .voice-assistant-caption > span,
309
+ .voice-assistant-mic {
310
+ transition: none;
311
+ transform: none;
312
+ }
313
+ }
@@ -0,0 +1,150 @@
1
+ import React from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { VoiceBeam } from "voice-glow";
4
+ import "./VoiceAssistantCard.css";
5
+ //#region src/react/components/VoiceAssistantCard.tsx
6
+ /** Controlled presentation. The caller owns audio, transcripts, and work. */
7
+ function VoiceAssistantCard(props) {
8
+ const titleId = React.useId();
9
+ const drive = beamDrive(props.state);
10
+ const listening = props.state.kind === "listening";
11
+ return /* @__PURE__ */ jsx("section", {
12
+ className: `voice-assistant-card ${props.className ?? ""}`,
13
+ style: props.style,
14
+ "data-theme": props.theme,
15
+ "data-state": props.state.kind,
16
+ "aria-labelledby": titleId,
17
+ children: /* @__PURE__ */ jsx(VoiceBeam, {
18
+ className: "voice-assistant-beam",
19
+ theme: props.theme,
20
+ level: drive.level,
21
+ stream: drive.stream,
22
+ processing: drive.processing,
23
+ children: /* @__PURE__ */ jsxs("div", {
24
+ className: "voice-assistant-content",
25
+ children: [
26
+ /* @__PURE__ */ jsxs("header", {
27
+ className: "voice-assistant-header",
28
+ children: [/* @__PURE__ */ jsx("span", {
29
+ className: "voice-assistant-avatar",
30
+ "aria-hidden": "true",
31
+ children: props.initials
32
+ }), /* @__PURE__ */ jsxs("div", {
33
+ className: "voice-assistant-identity",
34
+ children: [/* @__PURE__ */ jsx("h2", {
35
+ id: titleId,
36
+ children: props.name
37
+ }), /* @__PURE__ */ jsx("p", { children: props.description })]
38
+ })]
39
+ }),
40
+ /* @__PURE__ */ jsx("div", {
41
+ className: "voice-assistant-divider",
42
+ "aria-hidden": "true"
43
+ }),
44
+ /* @__PURE__ */ jsxs("div", {
45
+ className: "voice-assistant-body",
46
+ children: [/* @__PURE__ */ jsx("div", {
47
+ className: "voice-assistant-bubble-row",
48
+ children: /* @__PURE__ */ jsx("p", {
49
+ className: "voice-assistant-bubble",
50
+ children: /* @__PURE__ */ jsx("span", { children: props.message })
51
+ })
52
+ }), /* @__PURE__ */ jsx("div", {
53
+ className: "voice-assistant-transcript",
54
+ children: props.transcript
55
+ })]
56
+ }),
57
+ /* @__PURE__ */ jsxs("footer", {
58
+ className: "voice-assistant-footer",
59
+ children: [
60
+ /* @__PURE__ */ jsxs("div", {
61
+ className: "voice-assistant-caption",
62
+ "aria-hidden": "true",
63
+ children: [
64
+ /* @__PURE__ */ jsx("span", {
65
+ "data-visible": props.state.kind === "idle",
66
+ children: "Tap to speak"
67
+ }),
68
+ /* @__PURE__ */ jsx("span", {
69
+ "data-visible": listening,
70
+ children: "Listening…"
71
+ }),
72
+ /* @__PURE__ */ jsx("span", {
73
+ "data-visible": props.state.kind === "processing",
74
+ children: "One moment"
75
+ })
76
+ ]
77
+ }),
78
+ /* @__PURE__ */ jsx("span", {
79
+ className: "voice-assistant-status",
80
+ role: "status",
81
+ children: stateCaption(props.state)
82
+ }),
83
+ /* @__PURE__ */ jsx("button", {
84
+ type: "button",
85
+ className: "voice-assistant-mic",
86
+ "aria-label": listening ? "Stop speaking" : "Start speaking",
87
+ "aria-pressed": listening,
88
+ onClick: props.onToggle,
89
+ children: /* @__PURE__ */ jsxs("span", {
90
+ className: "voice-assistant-wave",
91
+ "aria-hidden": "true",
92
+ children: [
93
+ /* @__PURE__ */ jsx("i", {}),
94
+ /* @__PURE__ */ jsx("i", {}),
95
+ /* @__PURE__ */ jsx("i", {}),
96
+ /* @__PURE__ */ jsx("i", {}),
97
+ /* @__PURE__ */ jsx("i", {})
98
+ ]
99
+ })
100
+ })
101
+ ]
102
+ })
103
+ ]
104
+ })
105
+ })
106
+ });
107
+ }
108
+ function stateCaption(state) {
109
+ switch (state.kind) {
110
+ case "idle": return "Tap to speak";
111
+ case "listening": return "Listening…";
112
+ case "processing": return "One moment";
113
+ default: return assertNeverVoiceAssistantVariant(state);
114
+ }
115
+ }
116
+ function beamDrive(state) {
117
+ switch (state.kind) {
118
+ case "idle": return {
119
+ level: .06,
120
+ stream: null,
121
+ processing: false
122
+ };
123
+ case "processing": return {
124
+ level: .06,
125
+ stream: null,
126
+ processing: true
127
+ };
128
+ case "listening": switch (state.input.kind) {
129
+ case "level": return {
130
+ level: state.input.level,
131
+ stream: null,
132
+ processing: false
133
+ };
134
+ case "microphone": return {
135
+ level: 0,
136
+ stream: state.input.stream,
137
+ processing: false
138
+ };
139
+ default: return assertNeverVoiceAssistantVariant(state.input);
140
+ }
141
+ default: return assertNeverVoiceAssistantVariant(state);
142
+ }
143
+ }
144
+ function assertNeverVoiceAssistantVariant(value) {
145
+ throw new Error(`Unexpected voice assistant variant: ${String(value)}`);
146
+ }
147
+ //#endregion
148
+ export { VoiceAssistantCard };
149
+
150
+ //# sourceMappingURL=VoiceAssistantCard.js.map
@@ -30,5 +30,7 @@ import { SeamsAuthMenuMock } from "./components/HostedSeamsAuthMenu/SeamsAuthMen
30
30
  import HostedSeamsAuthMenu from "./components/HostedSeamsAuthMenu/shell.js";
31
31
  import { AccountMenuButton, ProfileSettingsButton, WalletSettingsPage } from "./components/AccountMenuButton/index.js";
32
32
  import { ShowQRCode } from "./components/ShowQRCode.js";
33
+ import { VoiceAssistantCard } from "./components/VoiceAssistantCard.js";
33
34
  import QRCodeIcon from "./components/QRCodeIcon.js";
34
- export { AccountMenuButton, AccountSyncEventPhase, ActionType, DARK_TOKENS, ExternalEvmController, ExternalEvmWalletPicker, HostedSeamsAuthMenu, KeyExportEventPhase, LIGHT_TOKENS, LinkDeviceEventPhase, MoonIcon, PASSKEY_MANAGER_DEFAULT_CONFIGS, PROFILE_MENU_ITEM_IDS, ProfileSettingsButton, QRCodeIcon, QRCodeScanner, QRScanMode, RegistrationEventPhase, SHAPE_PRESETS, SHAPE_ROUNDED, SHAPE_SQUARE, SeamsAuthMenuMock, SeamsContextProvider, SeamsWeb, SeamsWebProvider, ShowQRCode, SigningEventPhase, SunIcon, Theme, TouchIcon, TransactionReviewError, TransactionReviewHost, TxExecutionStatus, UnlockEventPhase, WALLET_FLOW_EVENT_MESSAGES, WALLET_FLOW_EVENT_STEPS, WALLET_FLOW_EVENT_VERSION, WalletSettingsPage, addKey, configuredThresholdEcdsaChainTargets, createAccount, createAccountSyncFlowEvent, createKeyExportFlowEvent, createLinkDeviceFlowEvent, createRegistrationFlowEvent, createSigningFlowEvent, createUnlockFlowEvent, createWalletFlowEvent, defineSeamsConfig, deleteAccount, deleteKey, deployContract, functionCall, isWalletFlowEvent, logWalletEvents, nearAccountRefFromAccountId, seamsTestnetConfig, stake, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toWalletId, transfer, useAccountInput, useDeviceLinking, useExternalEvm, useNearClient, useQRCamera, useSeams, useTheme, useWallet, useWalletAuth, useWalletDevices, walletIdFromWalletProfile, walletSessionRefFromSession };
35
+ import { VoiceBeam } from "voice-glow";
36
+ export { AccountMenuButton, AccountSyncEventPhase, ActionType, DARK_TOKENS, ExternalEvmController, ExternalEvmWalletPicker, HostedSeamsAuthMenu, KeyExportEventPhase, LIGHT_TOKENS, LinkDeviceEventPhase, MoonIcon, PASSKEY_MANAGER_DEFAULT_CONFIGS, PROFILE_MENU_ITEM_IDS, ProfileSettingsButton, QRCodeIcon, QRCodeScanner, QRScanMode, RegistrationEventPhase, SHAPE_PRESETS, SHAPE_ROUNDED, SHAPE_SQUARE, SeamsAuthMenuMock, SeamsContextProvider, SeamsWeb, SeamsWebProvider, ShowQRCode, SigningEventPhase, SunIcon, Theme, TouchIcon, TransactionReviewError, TransactionReviewHost, TxExecutionStatus, UnlockEventPhase, VoiceAssistantCard, VoiceBeam, WALLET_FLOW_EVENT_MESSAGES, WALLET_FLOW_EVENT_STEPS, WALLET_FLOW_EVENT_VERSION, WalletSettingsPage, addKey, configuredThresholdEcdsaChainTargets, createAccount, createAccountSyncFlowEvent, createKeyExportFlowEvent, createLinkDeviceFlowEvent, createRegistrationFlowEvent, createSigningFlowEvent, createUnlockFlowEvent, createWalletFlowEvent, defineSeamsConfig, deleteAccount, deleteKey, deployContract, functionCall, isWalletFlowEvent, logWalletEvents, nearAccountRefFromAccountId, seamsTestnetConfig, stake, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toWalletId, transfer, useAccountInput, useDeviceLinking, useExternalEvm, useNearClient, useQRCamera, useSeams, useTheme, useWallet, useWalletAuth, useWalletDevices, walletIdFromWalletProfile, walletSessionRefFromSession };