@seams/wallet 0.15.6 → 0.17.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 (507) hide show
  1. package/README.md +11 -3
  2. package/THIRD_PARTY_NOTICES.md +102 -1
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/SeamsWeb.js +20 -1
  5. package/dist/esm/SeamsWeb/operations/registration/registrationSignerSet.js +73 -0
  6. package/dist/esm/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +22 -0
  7. package/dist/esm/SeamsWeb/publicApi/capabilitySelection.js +2 -1
  8. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +26 -1
  9. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +71 -69
  10. package/dist/esm/SeamsWeb/walletIframe/client/preferenceState.js +6 -8
  11. package/dist/esm/SeamsWeb/walletIframe/client/preferences.js +7 -5
  12. package/dist/esm/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +2 -1
  13. package/dist/esm/SeamsWeb/walletIframe/client/router.js +116 -108
  14. package/dist/esm/SeamsWeb/walletIframe/client/surface/transactionSurfaceQueue.js +11 -7
  15. package/dist/esm/SeamsWeb/walletIframe/client/transactionReviewReservation.js +3 -2
  16. package/dist/esm/SeamsWeb/walletIframe/client/transport/IframeTransport.js +53 -49
  17. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +6 -2
  18. package/dist/esm/SeamsWeb/walletIframe/coordinator.js +18 -13
  19. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +14 -13
  20. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +1 -4
  21. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +298 -294
  22. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +9 -6
  23. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +1 -0
  24. package/dist/esm/core/config/configBuilder.js +1 -1
  25. package/dist/esm/core/config/defaultConfigs.js +1 -0
  26. package/dist/esm/core/indexedDB/accountSignerLifecycle.js +2 -0
  27. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +1 -0
  28. package/dist/esm/core/indexedDB/seamsWalletDB/manager.js +6 -5
  29. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +2 -0
  30. package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +2 -2
  31. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +6 -3
  32. package/dist/esm/core/rpcClients/near/NearRpcError.js +7 -0
  33. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +3 -0
  34. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +6 -2
  35. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +5 -4
  36. package/dist/esm/core/signingEngine/chains/evm/evmAdapter.js +2 -1
  37. package/dist/esm/core/signingEngine/chains/tempo/tempoAdapter.js +2 -1
  38. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +1 -1
  39. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +5 -1
  40. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/webauthnP256.js +1 -1
  41. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +3 -2
  42. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignatureRefillProgress.js +5 -7
  43. package/dist/esm/core/signingEngine/session/lifecycle/walletSessionFailure.js +2 -0
  44. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +68 -10
  45. package/dist/esm/core/signingEngine/session/material/walletSigningStateFailure.js +2 -2
  46. package/dist/esm/core/signingEngine/session/operationState/authorizationAdmission.js +2 -0
  47. package/dist/esm/core/signingEngine/stepUpConfirmation/methodSelection.js +2 -0
  48. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +29 -28
  49. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +3 -6
  50. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +20 -23
  51. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +134 -137
  52. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +17 -20
  53. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +41 -39
  54. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +14 -17
  55. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/HaloBorder.js +21 -24
  56. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +6 -9
  57. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +100 -103
  58. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +70 -73
  59. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +23 -26
  60. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +19 -22
  61. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +114 -117
  62. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/email-otp-session.js +81 -80
  63. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +41 -37
  64. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +13 -9
  65. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +4 -21
  66. package/dist/esm/core/types/actionBuilders.js +16 -2
  67. package/dist/esm/core/types/amounts.js +83 -0
  68. package/dist/esm/core/types/linkDevice.js +1 -1
  69. package/dist/esm/externalEvm/controller.js +49 -48
  70. package/dist/esm/index.js +2 -1
  71. package/dist/esm/react/boundWallet.js +56 -0
  72. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +13 -2
  73. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +90 -93
  74. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +55 -58
  75. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +17 -6
  76. package/dist/esm/react/components/ShowQRCode.css +13 -2
  77. package/dist/esm/react/context/index.js +30 -3
  78. package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -1
  79. package/dist/esm/react/externalEvm.js +22 -25
  80. package/dist/esm/react/index.js +4 -4
  81. package/dist/esm/react/styles/styles.css +13 -2
  82. package/dist/esm/react/transactionReview/TransactionReviewHost.js +3 -6
  83. package/dist/esm/react/transactionReview/boundCalls.js +1 -1
  84. package/dist/esm/react/transactionReview/controller.js +121 -119
  85. package/dist/esm/sdk/ConfirmationDrawer-CXVNmfTy.js +1 -0
  86. package/dist/esm/sdk/NonceCoordinator-DuDKN-B8.js +1 -0
  87. package/dist/{public/sdk/accountLifecycle-CBOkr0vU.js → esm/sdk/accountLifecycle-D61FIpFS.js} +1 -1
  88. package/dist/esm/sdk/{activeWalletSession-WdZkhtBB.js → activeWalletSession-Ba6X4CUN.js} +1 -1
  89. package/dist/esm/sdk/adapters-CTlDBRJy.js +2 -0
  90. package/dist/esm/sdk/authorizationAdmission-Dd23mTx7.js +1 -0
  91. package/dist/esm/sdk/{canonicalPrimitives-Dsbsxgxc.js → canonicalPrimitives-BOzRXzfv.js} +1 -1
  92. package/dist/esm/sdk/{capabilityKinds-N8xo_IEh.js → capabilityKinds-D0Yrp9uf.js} +1 -1
  93. package/dist/esm/sdk/{chains-C_X_fNuS.js → chains-CPmd4s9f.js} +1 -1
  94. package/dist/esm/sdk/challengeDelivery-FD9GHK1T.js +1 -0
  95. package/dist/esm/sdk/{clientSessionPersistenceState-CBylL1Ul.js → clientSessionPersistenceState-BHRUSWMt.js} +1 -1
  96. package/dist/esm/sdk/{commitQueue-DYEgzoLA.js → commitQueue-DOIaR0Hr.js} +1 -1
  97. package/dist/esm/sdk/{configHelpers-B-hs0mTO.js → configHelpers-BXdl5Mxs.js} +1 -1
  98. package/dist/esm/sdk/{digestEncoding-BX3VW9eF.js → digestEncoding-CbEFYvlJ.js} +1 -1
  99. package/dist/esm/sdk/{display-DsfJkAra.js → display-CY_aJEn6.js} +1 -1
  100. package/dist/esm/sdk/domainIds-C3fUa33Q.js +1 -0
  101. package/dist/esm/sdk/ecdsaCapabilityManifest-DzA996y9.js +1 -0
  102. package/dist/esm/sdk/{ecdsaChainTarget-Bfatk3oP.js → ecdsaChainTarget-DkOrgv4y.js} +1 -1
  103. package/dist/esm/sdk/ecdsaDerivationClientWasm-DQlajPpE.js +1 -0
  104. package/dist/{public/sdk/ecdsaDerivationExport-DOGzq0qC.js → esm/sdk/ecdsaDerivationExport-DyugdheE.js} +1 -1
  105. package/dist/esm/sdk/{ecdsaWalletRecords-CHfrYvKr.js → ecdsaWalletRecords-C_v74n5X.js} +1 -1
  106. package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-Bik0N8v9.js → esm/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js} +1 -1
  107. package/dist/esm/sdk/{errors-DIWY1KR9.js → errors-ADOZT8oV.js} +1 -1
  108. package/dist/esm/sdk/export-viewer-host-DsRaS0UH.js +1 -0
  109. package/dist/{public/sdk/exportKeypairOperation-DzbjKbnk.js → esm/sdk/exportKeypairOperation-SJPysnE1.js} +1 -1
  110. package/dist/esm/sdk/{helpers-B9fpZNAP.js → helpers-D3CUEdHI.js} +1 -1
  111. package/dist/esm/sdk/{host-DfWylEiw.js → host-GPb_mSAQ.js} +1 -1
  112. package/dist/esm/sdk/{intentDigest-P_-CM7lS.js → intentDigest-CGLrsMgj.js} +1 -1
  113. package/dist/esm/sdk/{lanes-5kcTFbPx.js → lanes-DJKIHJBm.js} +1 -1
  114. package/dist/esm/sdk/{localOnly-C5mSXb_D.js → localOnly-CPmpw381.js} +1 -1
  115. package/dist/esm/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +1 -0
  116. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +2 -0
  117. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js +1 -0
  118. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-RIfkYN0d.js → esm/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js} +1 -1
  119. package/dist/esm/sdk/{nonceLaneKeys-BCYfl1wv.js → nonceLaneKeys-D18nlLjh.js} +1 -1
  120. package/dist/esm/sdk/{normalization-n503J-BI.js → normalization-Ct9-AY13.js} +1 -1
  121. package/dist/esm/sdk/{operationFingerprint-BHNYryLY.js → operationFingerprint-Boa9DQ51.js} +1 -1
  122. package/dist/esm/sdk/{passkey-custody-DpTM-eNJ.js → passkey-custody-CBSal3E9.js} +1 -1
  123. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-C60sZMj5.js → pendingWalletRecoveryCodeBackup-CvsrXbzn.js} +1 -1
  124. package/dist/esm/sdk/presignaturePool-CQNt13kE.js +1 -0
  125. package/dist/esm/sdk/{primitives-CqrjmIAH.js → primitives-cC0a9GRC.js} +1 -1
  126. package/dist/{public/sdk/recovery-entrypoint-BULjaFBM.js → esm/sdk/recovery-entrypoint-nj7Zo3CR.js} +1 -1
  127. package/dist/esm/sdk/{registration-CyF7nOXs.js → registration-49OGU_GZ.js} +1 -1
  128. package/dist/esm/sdk/registration-C7tywPXF.js +1 -0
  129. package/dist/esm/sdk/{registrationAccounts-BQMUusdD.js → registrationAccounts-9GFI0Ger.js} +1 -1
  130. package/dist/esm/sdk/{registrationAuthMethodInput-RbSR7R1G.js → registrationAuthMethodInput-B23_HRil.js} +1 -1
  131. package/dist/esm/sdk/{registrationIds-BaK3jUS6.js → registrationIds-Br-zI4_5.js} +1 -1
  132. package/dist/{public/sdk/registrationIntent-090Zj7Iu.js → esm/sdk/registrationIntent-PqmcTEE3.js} +1 -1
  133. package/dist/{public/sdk/registrationSignerPlan-CPzHavPM.js → esm/sdk/registrationSignerPlan-BHkqlian.js} +1 -1
  134. package/dist/{public/sdk/requireStepUpAuth-BCY5ZStI.js → esm/sdk/requireStepUpAuth-C4PGTly-.js} +1 -1
  135. package/dist/esm/sdk/routerAbNormalSigning-xxATTIh5.js +1 -0
  136. package/dist/esm/sdk/runtime-auth-CpjGW90U.js +1 -0
  137. package/dist/esm/sdk/{runtime-device-link-fpvaxYyR.js → runtime-device-link-CKgfGi7D.js} +1 -1
  138. package/dist/esm/sdk/{runtime-ecdsa-tempo-AE5QTaXu.js → runtime-ecdsa-tempo-5VV9xSEh.js} +1 -1
  139. package/dist/esm/sdk/{runtime-email-otp-Dl03QI-O.js → runtime-email-otp-D1hYZNn6.js} +1 -1
  140. package/dist/esm/sdk/{runtime-export-F9s12UcT.js → runtime-export-B92wQD25.js} +1 -1
  141. package/dist/esm/sdk/{runtime-near-Bjrz1KYf.js → runtime-near-CUuKg38M.js} +1 -1
  142. package/dist/esm/sdk/runtime-preferences-EdL3G_MO.js +1 -0
  143. package/dist/esm/sdk/{runtime-recovery-codes-GOytzExh.js → runtime-recovery-codes-LR4mg7-k.js} +1 -1
  144. package/dist/esm/sdk/runtime-recovery-uyw8sywI.js +1 -0
  145. package/dist/esm/sdk/{sdkSentEvents-D4KtK7_I.js → sdkSentEvents-DujYAPEM.js} +1 -1
  146. package/dist/esm/sdk/secp256k1-BldUPNQI.js +1 -0
  147. package/dist/{public/sdk/sessionObservationRevision-CnEOLDbl.js → esm/sdk/sessionObservationRevision-DmmNV25w.js} +1 -1
  148. package/dist/esm/sdk/shared-ha31XIdc.js +6 -0
  149. package/dist/{public/sdk/signEvmFamily-Cpm3e6Zs.js → esm/sdk/signEvmFamily-C_RvEnDB.js} +1 -1
  150. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js +1 -0
  151. package/dist/esm/sdk/{signEvmWithUiConfirm-BRmdLgmm.js → signEvmWithUiConfirm-CxXzcvj2.js} +1 -1
  152. package/dist/esm/sdk/signNear-Dno7NsP_.js +1 -0
  153. package/dist/esm/sdk/signatureUses-B_nN17i7.js +1 -0
  154. package/dist/esm/sdk/{signerDomain-Dp7BhfmZ.js → signerDomain-BFqRQ0Jl.js} +1 -1
  155. package/dist/{public/sdk/signingFlow-VAnM8L5C.js → esm/sdk/signingFlow-DtugI_2z.js} +2 -2
  156. package/dist/esm/sdk/{signingQueue-D_Ebmzcn.js → signingQueue-C1Pb07gm.js} +1 -1
  157. package/dist/{public/sdk/singletons-BXhnsqeY.js → esm/sdk/singletons-DxIyVhNb.js} +1 -1
  158. package/dist/esm/sdk/surface-measurement-reporter-BJhfiPw6.js +1 -0
  159. package/dist/{public/sdk/thresholdEcdsa-CneSKcRt.js → esm/sdk/thresholdEcdsa-murTq-xz.js} +1 -1
  160. package/dist/esm/sdk/{trace-BBux0jtr.js → trace-CsRMlSh1.js} +1 -1
  161. package/dist/{public/sdk/transaction-activity-Cccvec2J.js → esm/sdk/transaction-activity-C0nCSW6c.js} +1 -1
  162. package/dist/esm/sdk/transactionReviewAdmission-CNNho8IG.js +1 -0
  163. package/dist/{public/sdk/transactionState-Day-1x7Y.js → esm/sdk/transactionState-XbZm9Zon.js} +1 -1
  164. package/dist/esm/sdk/tx-confirm-ui.js +709 -744
  165. package/dist/esm/sdk/{types-hKLqDUhR.js → types-CQTWmtqu.js} +1 -1
  166. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  167. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  168. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  169. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  170. package/dist/{public/sdk/wallet-recovery-Bfhfk52N.js → esm/sdk/wallet-recovery-CVUalZ3p.js} +1 -1
  171. package/dist/esm/sdk/wallet-ui.css +1 -1
  172. package/dist/{public/sdk/walletAuthMethodRecord-LniOQQmj.js → esm/sdk/walletAuthMethodRecord-Bv68Vq-g.js} +1 -1
  173. package/dist/{public/sdk/walletAuthority-CAiGuWW2.js → esm/sdk/walletAuthority-v5wvv3IB.js} +1 -1
  174. package/dist/esm/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js +1 -0
  175. package/dist/esm/sdk/{walletDbName-DtRewci9.js → walletDbName-DRzPv5Ir.js} +1 -1
  176. package/dist/esm/sdk/{walletOwnershipGeneration-B6HyR2rE.js → walletOwnershipGeneration-pMmmJ6XA.js} +1 -1
  177. package/dist/esm/sdk/{walletRecoveryCommit-C6HF84_U.js → walletRecoveryCommit-DvC6WlGz.js} +1 -1
  178. package/dist/esm/sdk/{walletRecoveryRotate-BN3H8byw.js → walletRecoveryRotate-Dd3prJpr.js} +1 -1
  179. package/dist/esm/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +1 -0
  180. package/dist/esm/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js +1 -0
  181. package/dist/esm/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js +1 -0
  182. package/dist/esm/sdk/walletSessionFailure-C6TAQTZn.js +1 -0
  183. package/dist/esm/sdk/webauthnP256-XgYu-Y6E.js +1 -0
  184. package/dist/esm/sdk/webauthnPromptCoordinator-D5sP8Q7e.js +1 -0
  185. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
  186. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +6 -0
  187. package/dist/esm/shared-ts/src/near/nearClient.js +6 -0
  188. package/dist/esm/shared-ts/src/threshold/participants.js +2 -1
  189. package/dist/esm/shared-ts/src/threshold/secp256k1.js +6 -0
  190. package/dist/esm/shared-ts/src/utils/domainIds.js +7 -0
  191. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  192. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +14 -1
  193. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +5 -4
  194. package/dist/esm/utils/qrScanner.js +10 -8
  195. package/dist/public/headers.manifest.json +1 -1
  196. package/dist/public/sdk/ConfirmationDrawer-CXVNmfTy.js +1 -0
  197. package/dist/public/sdk/NonceCoordinator-DuDKN-B8.js +1 -0
  198. package/dist/{esm/sdk/accountLifecycle-CBOkr0vU.js → public/sdk/accountLifecycle-D61FIpFS.js} +1 -1
  199. package/dist/public/sdk/{activeWalletSession-WdZkhtBB.js → activeWalletSession-Ba6X4CUN.js} +1 -1
  200. package/dist/public/sdk/adapters-CTlDBRJy.js +2 -0
  201. package/dist/public/sdk/authorizationAdmission-Dd23mTx7.js +1 -0
  202. package/dist/public/sdk/{canonicalPrimitives-Dsbsxgxc.js → canonicalPrimitives-BOzRXzfv.js} +1 -1
  203. package/dist/public/sdk/{capabilityKinds-N8xo_IEh.js → capabilityKinds-D0Yrp9uf.js} +1 -1
  204. package/dist/public/sdk/{chains-C_X_fNuS.js → chains-CPmd4s9f.js} +1 -1
  205. package/dist/public/sdk/challengeDelivery-FD9GHK1T.js +1 -0
  206. package/dist/public/sdk/{clientSessionPersistenceState-CBylL1Ul.js → clientSessionPersistenceState-BHRUSWMt.js} +1 -1
  207. package/dist/public/sdk/{commitQueue-DYEgzoLA.js → commitQueue-DOIaR0Hr.js} +1 -1
  208. package/dist/public/sdk/{configHelpers-B-hs0mTO.js → configHelpers-BXdl5Mxs.js} +1 -1
  209. package/dist/public/sdk/{digestEncoding-BX3VW9eF.js → digestEncoding-CbEFYvlJ.js} +1 -1
  210. package/dist/public/sdk/{display-DsfJkAra.js → display-CY_aJEn6.js} +1 -1
  211. package/dist/public/sdk/domainIds-C3fUa33Q.js +1 -0
  212. package/dist/public/sdk/ecdsaCapabilityManifest-DzA996y9.js +1 -0
  213. package/dist/public/sdk/{ecdsaChainTarget-Bfatk3oP.js → ecdsaChainTarget-DkOrgv4y.js} +1 -1
  214. package/dist/public/sdk/ecdsaDerivationClientWasm-DQlajPpE.js +1 -0
  215. package/dist/{esm/sdk/ecdsaDerivationExport-DOGzq0qC.js → public/sdk/ecdsaDerivationExport-DyugdheE.js} +1 -1
  216. package/dist/public/sdk/{ecdsaWalletRecords-CHfrYvKr.js → ecdsaWalletRecords-C_v74n5X.js} +1 -1
  217. package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-Bik0N8v9.js → public/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js} +1 -1
  218. package/dist/public/sdk/{errors-DIWY1KR9.js → errors-ADOZT8oV.js} +1 -1
  219. package/dist/public/sdk/export-viewer-host-DsRaS0UH.js +1 -0
  220. package/dist/{esm/sdk/exportKeypairOperation-DzbjKbnk.js → public/sdk/exportKeypairOperation-SJPysnE1.js} +1 -1
  221. package/dist/public/sdk/{helpers-B9fpZNAP.js → helpers-D3CUEdHI.js} +1 -1
  222. package/dist/public/sdk/{host-DfWylEiw.js → host-GPb_mSAQ.js} +1 -1
  223. package/dist/public/sdk/{intentDigest-P_-CM7lS.js → intentDigest-CGLrsMgj.js} +1 -1
  224. package/dist/public/sdk/{lanes-5kcTFbPx.js → lanes-DJKIHJBm.js} +1 -1
  225. package/dist/public/sdk/{localOnly-C5mSXb_D.js → localOnly-CPmpw381.js} +1 -1
  226. package/dist/public/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +1 -0
  227. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +2 -0
  228. package/dist/public/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js +1 -0
  229. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-RIfkYN0d.js → public/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js} +1 -1
  230. package/dist/public/sdk/{nonceLaneKeys-BCYfl1wv.js → nonceLaneKeys-D18nlLjh.js} +1 -1
  231. package/dist/public/sdk/{normalization-n503J-BI.js → normalization-Ct9-AY13.js} +1 -1
  232. package/dist/public/sdk/{operationFingerprint-BHNYryLY.js → operationFingerprint-Boa9DQ51.js} +1 -1
  233. package/dist/public/sdk/{passkey-custody-DpTM-eNJ.js → passkey-custody-CBSal3E9.js} +1 -1
  234. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-C60sZMj5.js → pendingWalletRecoveryCodeBackup-CvsrXbzn.js} +1 -1
  235. package/dist/public/sdk/presignaturePool-CQNt13kE.js +1 -0
  236. package/dist/public/sdk/{primitives-CqrjmIAH.js → primitives-cC0a9GRC.js} +1 -1
  237. package/dist/{esm/sdk/recovery-entrypoint-BULjaFBM.js → public/sdk/recovery-entrypoint-nj7Zo3CR.js} +1 -1
  238. package/dist/public/sdk/{registration-CyF7nOXs.js → registration-49OGU_GZ.js} +1 -1
  239. package/dist/public/sdk/registration-C7tywPXF.js +1 -0
  240. package/dist/public/sdk/{registrationAccounts-BQMUusdD.js → registrationAccounts-9GFI0Ger.js} +1 -1
  241. package/dist/public/sdk/{registrationAuthMethodInput-RbSR7R1G.js → registrationAuthMethodInput-B23_HRil.js} +1 -1
  242. package/dist/public/sdk/{registrationIds-BaK3jUS6.js → registrationIds-Br-zI4_5.js} +1 -1
  243. package/dist/{esm/sdk/registrationIntent-090Zj7Iu.js → public/sdk/registrationIntent-PqmcTEE3.js} +1 -1
  244. package/dist/{esm/sdk/registrationSignerPlan-CPzHavPM.js → public/sdk/registrationSignerPlan-BHkqlian.js} +1 -1
  245. package/dist/{esm/sdk/requireStepUpAuth-BCY5ZStI.js → public/sdk/requireStepUpAuth-C4PGTly-.js} +1 -1
  246. package/dist/public/sdk/routerAbNormalSigning-xxATTIh5.js +1 -0
  247. package/dist/public/sdk/runtime-auth-CpjGW90U.js +1 -0
  248. package/dist/public/sdk/{runtime-device-link-fpvaxYyR.js → runtime-device-link-CKgfGi7D.js} +1 -1
  249. package/dist/public/sdk/{runtime-ecdsa-tempo-AE5QTaXu.js → runtime-ecdsa-tempo-5VV9xSEh.js} +1 -1
  250. package/dist/public/sdk/{runtime-email-otp-Dl03QI-O.js → runtime-email-otp-D1hYZNn6.js} +1 -1
  251. package/dist/public/sdk/{runtime-export-F9s12UcT.js → runtime-export-B92wQD25.js} +1 -1
  252. package/dist/public/sdk/{runtime-near-Bjrz1KYf.js → runtime-near-CUuKg38M.js} +1 -1
  253. package/dist/public/sdk/runtime-preferences-EdL3G_MO.js +1 -0
  254. package/dist/public/sdk/{runtime-recovery-codes-GOytzExh.js → runtime-recovery-codes-LR4mg7-k.js} +1 -1
  255. package/dist/public/sdk/runtime-recovery-uyw8sywI.js +1 -0
  256. package/dist/public/sdk/{sdkSentEvents-D4KtK7_I.js → sdkSentEvents-DujYAPEM.js} +1 -1
  257. package/dist/public/sdk/secp256k1-BldUPNQI.js +1 -0
  258. package/dist/{esm/sdk/sessionObservationRevision-CnEOLDbl.js → public/sdk/sessionObservationRevision-DmmNV25w.js} +1 -1
  259. package/dist/public/sdk/shared-ha31XIdc.js +6 -0
  260. package/dist/{esm/sdk/signEvmFamily-Cpm3e6Zs.js → public/sdk/signEvmFamily-C_RvEnDB.js} +1 -1
  261. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js +1 -0
  262. package/dist/public/sdk/{signEvmWithUiConfirm-BRmdLgmm.js → signEvmWithUiConfirm-CxXzcvj2.js} +1 -1
  263. package/dist/public/sdk/signNear-Dno7NsP_.js +1 -0
  264. package/dist/public/sdk/signatureUses-B_nN17i7.js +1 -0
  265. package/dist/public/sdk/{signerDomain-Dp7BhfmZ.js → signerDomain-BFqRQ0Jl.js} +1 -1
  266. package/dist/{esm/sdk/signingFlow-VAnM8L5C.js → public/sdk/signingFlow-DtugI_2z.js} +2 -2
  267. package/dist/public/sdk/{signingQueue-D_Ebmzcn.js → signingQueue-C1Pb07gm.js} +1 -1
  268. package/dist/{esm/sdk/singletons-BXhnsqeY.js → public/sdk/singletons-DxIyVhNb.js} +1 -1
  269. package/dist/public/sdk/surface-measurement-reporter-BJhfiPw6.js +1 -0
  270. package/dist/{esm/sdk/thresholdEcdsa-CneSKcRt.js → public/sdk/thresholdEcdsa-murTq-xz.js} +1 -1
  271. package/dist/public/sdk/{trace-BBux0jtr.js → trace-CsRMlSh1.js} +1 -1
  272. package/dist/{esm/sdk/transaction-activity-Cccvec2J.js → public/sdk/transaction-activity-C0nCSW6c.js} +1 -1
  273. package/dist/public/sdk/transactionReviewAdmission-CNNho8IG.js +1 -0
  274. package/dist/{esm/sdk/transactionState-Day-1x7Y.js → public/sdk/transactionState-XbZm9Zon.js} +1 -1
  275. package/dist/public/sdk/tx-confirm-ui.js +709 -744
  276. package/dist/public/sdk/{types-hKLqDUhR.js → types-CQTWmtqu.js} +1 -1
  277. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  278. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  279. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  280. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  281. package/dist/{esm/sdk/wallet-recovery-Bfhfk52N.js → public/sdk/wallet-recovery-CVUalZ3p.js} +1 -1
  282. package/dist/public/sdk/wallet-ui.css +1 -1
  283. package/dist/{esm/sdk/walletAuthMethodRecord-LniOQQmj.js → public/sdk/walletAuthMethodRecord-Bv68Vq-g.js} +1 -1
  284. package/dist/{esm/sdk/walletAuthority-CAiGuWW2.js → public/sdk/walletAuthority-v5wvv3IB.js} +1 -1
  285. package/dist/public/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js +1 -0
  286. package/dist/public/sdk/{walletDbName-DtRewci9.js → walletDbName-DRzPv5Ir.js} +1 -1
  287. package/dist/public/sdk/{walletOwnershipGeneration-B6HyR2rE.js → walletOwnershipGeneration-pMmmJ6XA.js} +1 -1
  288. package/dist/public/sdk/{walletRecoveryCommit-C6HF84_U.js → walletRecoveryCommit-DvC6WlGz.js} +1 -1
  289. package/dist/public/sdk/{walletRecoveryRotate-BN3H8byw.js → walletRecoveryRotate-Dd3prJpr.js} +1 -1
  290. package/dist/public/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +1 -0
  291. package/dist/public/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js +1 -0
  292. package/dist/public/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js +1 -0
  293. package/dist/public/sdk/walletSessionFailure-C6TAQTZn.js +1 -0
  294. package/dist/public/sdk/webauthnP256-XgYu-Y6E.js +1 -0
  295. package/dist/public/sdk/webauthnPromptCoordinator-D5sP8Q7e.js +1 -0
  296. package/dist/public/sdk/workers/device-linking-key.worker.js +12 -11
  297. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +146 -48
  298. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +7 -6
  299. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +7 -6
  300. package/dist/public/sdk/workers/email-otp.worker.js +17 -3
  301. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +10 -0
  302. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +2 -1
  303. package/dist/public/wallet-assets.manifest.json +190 -190
  304. package/dist/public/wallet-service/index.html +4 -4
  305. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +14 -14
  306. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +1 -1
  307. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +1 -1
  308. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +1 -1
  309. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +5 -5
  310. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +3 -3
  311. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +1 -1
  312. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentity.d.ts +1 -1
  313. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -2
  314. package/dist/types/shared-ts/src/utils/base64.d.ts +2 -2
  315. package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +1 -1
  316. package/dist/types/shared-ts/src/utils/digests.d.ts +2 -2
  317. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +16 -16
  318. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +1 -1
  319. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +10 -10
  320. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +12 -11
  321. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +3 -3
  322. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +1 -1
  323. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +15 -15
  324. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +11 -11
  325. package/dist/types/shared-ts/src/utils/walletSessionFailure.d.ts +8 -8
  326. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +2 -2
  327. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +1 -1
  328. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +1 -1
  329. package/dist/types/wallet/build-paths.d.ts +73 -73
  330. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.d.ts +3 -2
  331. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingResume.d.ts +2 -2
  332. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceTargetActivation.d.ts +1 -1
  333. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +3 -3
  334. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationEd25519Yao.d.ts +4 -3
  335. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationSignerSet.d.ts +5 -0
  336. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +2 -2
  337. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +10 -1
  338. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +4 -2
  339. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +1 -0
  340. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +1 -0
  341. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -1
  342. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +4 -4
  343. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createEmailOtpCommands.d.ts +3 -2
  344. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +3 -3
  345. package/dist/types/wallet/src/config.d.ts +8 -8
  346. package/dist/types/wallet/src/core/browser/walletIframe/events.d.ts +1 -1
  347. package/dist/types/wallet/src/core/indexedDB/linkedAuthoritySignerMaterial.d.ts +3 -3
  348. package/dist/types/wallet/src/core/indexedDB/pendingWalletRecoveryCommit.d.ts +1 -1
  349. package/dist/types/wallet/src/core/indexedDB/schemaNames.d.ts +181 -181
  350. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.d.ts +8 -8
  351. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.d.ts +4 -4
  352. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +1 -1
  353. package/dist/types/wallet/src/core/indexedDB/walletCustodyEd25519MaterialRecord.d.ts +2 -2
  354. package/dist/types/wallet/src/core/indexedDB/walletDbName.d.ts +1 -1
  355. package/dist/types/wallet/src/core/signingEngine/chains/evm/evmAdapter.d.ts +1 -1
  356. package/dist/types/wallet/src/core/signingEngine/chains/evm/evmSigning.types.d.ts +1 -0
  357. package/dist/types/wallet/src/core/signingEngine/chains/tempo/tempoAdapter.d.ts +1 -1
  358. package/dist/types/wallet/src/core/signingEngine/flows/shared/signingStateMachine.d.ts +27 -27
  359. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/secp256k1.d.ts +1 -1
  360. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/webauthnP256.d.ts +1 -1
  361. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +17 -17
  362. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +40 -40
  363. package/dist/types/wallet/src/core/signingEngine/session/material/walletSigningStateFailure.d.ts +4 -4
  364. package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +8 -8
  365. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +1 -1
  366. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionRecords.d.ts +1 -1
  367. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmCommon.d.ts +3 -3
  368. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +4 -4
  369. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +1 -1
  370. package/dist/types/wallet/src/core/signingEngine/threshold/sessionPolicy.d.ts +1 -1
  371. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.d.ts +1 -1
  372. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.d.ts +2 -2
  373. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/CopyStatusIcon.d.ts +1 -1
  374. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PadlockIcon.d.ts +1 -1
  375. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyHaloLoading.d.ts +1 -1
  376. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.d.ts +1 -1
  377. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/SeamsWordmark.d.ts +1 -1
  378. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/helpers.d.ts +2 -2
  379. package/dist/types/wallet/src/core/signingEngine/workerManager/SignerWorkerManager.d.ts +1 -0
  380. package/dist/types/wallet/src/core/signingEngine/workerManager/deviceLinkingPorts.d.ts +1 -1
  381. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.d.ts +3 -3
  382. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.d.ts +1 -1
  383. package/dist/types/wallet/src/core/signingEngine/workerManager/validation.d.ts +1 -1
  384. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTransport.d.ts +1 -0
  385. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +1 -1
  386. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ecdsaTargetShareHpke.d.ts +3 -3
  387. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ordinaryMaterialState.d.ts +1 -1
  388. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +3 -3
  389. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/materialParsing.d.ts +1 -1
  390. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/payloadParsing.d.ts +2 -2
  391. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +1 -1
  392. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/workerErrorPayload.d.ts +2 -2
  393. package/dist/types/wallet/src/core/types/actionBuilders.d.ts +16 -2
  394. package/dist/types/wallet/src/core/types/amounts.d.ts +75 -0
  395. package/dist/types/wallet/src/core/types/amounts.typecheck.d.ts +2 -0
  396. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +5 -5
  397. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +1 -1
  398. package/dist/types/wallet/src/core/types/signer-worker.d.ts +7 -7
  399. package/dist/types/wallet/src/externalEvm/types.d.ts +1 -0
  400. package/dist/types/wallet/src/index.d.ts +2 -0
  401. package/dist/types/wallet/src/react/{hooks/useWallet.d.ts → boundWallet.d.ts} +8 -48
  402. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +0 -1
  403. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountsSection.d.ts +0 -1
  404. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +0 -1
  405. package/dist/types/wallet/src/react/components/AccountMenuButton/ExportKeysSection.d.ts +0 -1
  406. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +0 -1
  407. package/dist/types/wallet/src/react/components/AccountMenuButton/ProfileDropdown.d.ts +0 -1
  408. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +0 -1
  409. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -1
  410. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +0 -1
  411. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -1
  412. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -1
  413. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -1
  414. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -1
  415. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockKeyholeIcon.d.ts +1 -1
  416. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -1
  417. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/PlusIcon.d.ts +1 -1
  418. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -1
  419. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -1
  420. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -1
  421. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -1
  422. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/TouchIcon.d.ts +0 -1
  423. package/dist/types/wallet/src/react/components/AccountMenuButton/index.d.ts +0 -1
  424. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +8 -8
  425. package/dist/types/wallet/src/react/components/ShowQRCode.d.ts +0 -1
  426. package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +0 -1
  427. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +1 -0
  428. package/dist/types/wallet/src/react/context/index.d.ts +2 -1
  429. package/dist/types/wallet/src/react/context/useSeamsContextValue.d.ts +2 -2
  430. package/dist/types/wallet/src/react/index.d.ts +3 -2
  431. package/dist/types/wallet/src/react/styles.d.ts +2 -0
  432. package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +57 -57
  433. package/dist/types/wallet/src/react/types.d.ts +14 -1
  434. package/dist/types/wallet/src/theme/base-styles.d.ts +4 -4
  435. package/dist/workers/device-linking-key.worker.js +12 -11
  436. package/dist/workers/ecdsa-derivation-client.worker.js +146 -48
  437. package/dist/workers/ecdsa-online-client.worker.js +7 -6
  438. package/dist/workers/ecdsa-presign-client.worker.js +7 -6
  439. package/dist/workers/email-otp.worker.js +17 -3
  440. package/dist/workers/passkey-mpc-export.worker.js +10 -0
  441. package/dist/workers/passkey-mpc-session.worker.js +2 -1
  442. package/package.json +8 -6
  443. package/dist/esm/react/hooks/useWallet.js +0 -108
  444. package/dist/esm/sdk/ConfirmationDrawer-BFzQjd1P.js +0 -1
  445. package/dist/esm/sdk/NonceCoordinator-CDGnEgfI.js +0 -1
  446. package/dist/esm/sdk/adapters-DsAaBNNY.js +0 -2
  447. package/dist/esm/sdk/authorizationAdmission-CGinGhXH.js +0 -1
  448. package/dist/esm/sdk/challengeDelivery-CATQ4u6P.js +0 -1
  449. package/dist/esm/sdk/domainIds-BzkGsRqO.js +0 -1
  450. package/dist/esm/sdk/ecdsaCapabilityManifest-DX6TflEz.js +0 -1
  451. package/dist/esm/sdk/ecdsaDerivationClientWasm-CpjnN4aK.js +0 -1
  452. package/dist/esm/sdk/export-viewer-host-CV-lSsQF.js +0 -1
  453. package/dist/esm/sdk/mountExportPrivateKeySurface-CatAhYoG.js +0 -1
  454. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DlEb3uD7.js +0 -2
  455. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-Bo3IOTS-.js +0 -1
  456. package/dist/esm/sdk/presignaturePool-V10fZpG3.js +0 -1
  457. package/dist/esm/sdk/registration-yoF0o52H.js +0 -1
  458. package/dist/esm/sdk/routerAbNormalSigning-C4P2tDU-.js +0 -1
  459. package/dist/esm/sdk/runtime-auth--i_j8PP7.js +0 -1
  460. package/dist/esm/sdk/runtime-preferences-oLRSEqmz.js +0 -1
  461. package/dist/esm/sdk/runtime-recovery-DBBKvIIg.js +0 -1
  462. package/dist/esm/sdk/secp256k1-CKq7_HD-.js +0 -1
  463. package/dist/esm/sdk/shared-D893jckQ.js +0 -6
  464. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-DGWmm9n7.js +0 -1
  465. package/dist/esm/sdk/signNear-XGZBxc_g.js +0 -1
  466. package/dist/esm/sdk/signatureUses-BKAoDbQd.js +0 -1
  467. package/dist/esm/sdk/surface-measurement-reporter-DvVHPu_O.js +0 -1
  468. package/dist/esm/sdk/transactionReviewAdmission-CIvR4W5_.js +0 -1
  469. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B4fTDL10.js +0 -1
  470. package/dist/esm/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +0 -1
  471. package/dist/esm/sdk/walletSessionAuthorizationStatus-BL7j2TeM.js +0 -1
  472. package/dist/esm/sdk/walletSessionAuthorizationStore-DmYe-cDR.js +0 -1
  473. package/dist/esm/sdk/walletSessionFailure-YuhraC3P.js +0 -1
  474. package/dist/esm/sdk/webauthnP256-BwgxtG5N.js +0 -1
  475. package/dist/esm/sdk/webauthnPromptCoordinator-CwJeKiYq.js +0 -1
  476. package/dist/public/sdk/ConfirmationDrawer-BFzQjd1P.js +0 -1
  477. package/dist/public/sdk/NonceCoordinator-CDGnEgfI.js +0 -1
  478. package/dist/public/sdk/adapters-DsAaBNNY.js +0 -2
  479. package/dist/public/sdk/authorizationAdmission-CGinGhXH.js +0 -1
  480. package/dist/public/sdk/challengeDelivery-CATQ4u6P.js +0 -1
  481. package/dist/public/sdk/domainIds-BzkGsRqO.js +0 -1
  482. package/dist/public/sdk/ecdsaCapabilityManifest-DX6TflEz.js +0 -1
  483. package/dist/public/sdk/ecdsaDerivationClientWasm-CpjnN4aK.js +0 -1
  484. package/dist/public/sdk/export-viewer-host-CV-lSsQF.js +0 -1
  485. package/dist/public/sdk/mountExportPrivateKeySurface-CatAhYoG.js +0 -1
  486. package/dist/public/sdk/mountRecoveryCodeBackupSurface-DlEb3uD7.js +0 -2
  487. package/dist/public/sdk/nearEd25519YaoMaterialActivation-Bo3IOTS-.js +0 -1
  488. package/dist/public/sdk/presignaturePool-V10fZpG3.js +0 -1
  489. package/dist/public/sdk/registration-yoF0o52H.js +0 -1
  490. package/dist/public/sdk/routerAbNormalSigning-C4P2tDU-.js +0 -1
  491. package/dist/public/sdk/runtime-auth--i_j8PP7.js +0 -1
  492. package/dist/public/sdk/runtime-preferences-oLRSEqmz.js +0 -1
  493. package/dist/public/sdk/runtime-recovery-DBBKvIIg.js +0 -1
  494. package/dist/public/sdk/secp256k1-CKq7_HD-.js +0 -1
  495. package/dist/public/sdk/shared-D893jckQ.js +0 -6
  496. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-DGWmm9n7.js +0 -1
  497. package/dist/public/sdk/signNear-XGZBxc_g.js +0 -1
  498. package/dist/public/sdk/signatureUses-BKAoDbQd.js +0 -1
  499. package/dist/public/sdk/surface-measurement-reporter-DvVHPu_O.js +0 -1
  500. package/dist/public/sdk/transactionReviewAdmission-CIvR4W5_.js +0 -1
  501. package/dist/public/sdk/walletCustodyEcdsaContinuity-B4fTDL10.js +0 -1
  502. package/dist/public/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +0 -1
  503. package/dist/public/sdk/walletSessionAuthorizationStatus-BL7j2TeM.js +0 -1
  504. package/dist/public/sdk/walletSessionAuthorizationStore-DmYe-cDR.js +0 -1
  505. package/dist/public/sdk/walletSessionFailure-YuhraC3P.js +0 -1
  506. package/dist/public/sdk/webauthnP256-BwgxtG5N.js +0 -1
  507. package/dist/public/sdk/webauthnPromptCoordinator-CwJeKiYq.js +0 -1
@@ -0,0 +1,83 @@
1
+ //#region src/core/types/amounts.ts
2
+ var AmountError = class extends Error {
3
+ constructor(code, message) {
4
+ super(message);
5
+ this.code = code;
6
+ this.name = "AmountError";
7
+ }
8
+ };
9
+ const DECIMAL_AMOUNT = /^(\d+)(?:\.(\d+))?$/;
10
+ /**
11
+ * Convert a decimal amount to integer base units: `amount * 10^decimals`.
12
+ * Use it for a token whose decimals are not 18 or 24, such as an ERC-20.
13
+ *
14
+ * @example
15
+ * parseUnits('1.5', 6); // 1500000n
16
+ *
17
+ * @throws {AmountError} `invalid_format` for anything other than digits with
18
+ * an optional fraction (no sign, unit or exponent), and `too_many_decimals`
19
+ * for more fractional digits than `decimals`.
20
+ */
21
+ function parseUnits(amount, decimals) {
22
+ if (!Number.isSafeInteger(decimals) || decimals < 0) throw new RangeError(`decimals must be a non-negative integer, got ${decimals}`);
23
+ const match = DECIMAL_AMOUNT.exec(amount);
24
+ if (!match) throw new AmountError("invalid_format", `Invalid amount ${JSON.stringify(amount)}: expected a decimal such as '1' or '0.5'`);
25
+ const [, whole, fraction = ""] = match;
26
+ if (fraction.length > decimals) throw new AmountError("too_many_decimals", `Invalid amount ${JSON.stringify(amount)}: at most ${decimals} decimal places`);
27
+ return BigInt(whole + fraction.padEnd(decimals, "0"));
28
+ }
29
+ /**
30
+ * Convert a decimal NEAR amount to yoctoNEAR.
31
+ *
32
+ * @example
33
+ * parseNear('1'); // '1000000000000000000000000'
34
+ * parseNear('0.5'); // '500000000000000000000000'
35
+ *
36
+ * @throws {AmountError} as `parseUnits`, with at most 24 decimal places.
37
+ */
38
+ function parseNear(amount) {
39
+ return parseUnits(amount, 24).toString();
40
+ }
41
+ /**
42
+ * Take an amount that is already in yoctoNEAR.
43
+ *
44
+ * @example
45
+ * yoctoNear('1000000000000000000000000'); // 1 NEAR
46
+ *
47
+ * @throws {AmountError} unless `amount` is a non-negative integer.
48
+ */
49
+ function yoctoNear(amount) {
50
+ return parseUnits(typeof amount === "bigint" ? amount.toString() : amount, 0).toString();
51
+ }
52
+ const YOCTO_NEAR_SUFFIX = " yoctoNEAR";
53
+ const NEAR_SUFFIX = " NEAR";
54
+ /**
55
+ * Resolve a `NearAmount` to yoctoNEAR with the same exact parsers.
56
+ *
57
+ * @throws {AmountError} for a negative, non-numeric or over-precise amount,
58
+ * or for spacing other than one space before the unit.
59
+ */
60
+ function toYoctoNear(amount) {
61
+ if (amount.endsWith(YOCTO_NEAR_SUFFIX)) return yoctoNear(amount.slice(0, -10));
62
+ if (amount.endsWith(NEAR_SUFFIX)) return parseNear(amount.slice(0, -5));
63
+ return yoctoNear(amount);
64
+ }
65
+ /**
66
+ * Convert a decimal amount of an EVM chain's native coin to wei
67
+ * (1 coin = 10^18 wei). "Ether" names the 10^18 denomination, so this is
68
+ * correct for any chain whose native coin has 18 decimals: ETH on Ethereum
69
+ * and Base, POL on Polygon, and so on.
70
+ *
71
+ * @example
72
+ * parseEther('1'); // 1000000000000000000n
73
+ * parseEther('0.5'); // 500000000000000000n
74
+ *
75
+ * @throws {AmountError} as `parseUnits`, with at most 18 decimal places.
76
+ */
77
+ function parseEther(amount) {
78
+ return parseUnits(amount, 18);
79
+ }
80
+ //#endregion
81
+ export { AmountError, parseEther, parseNear, parseUnits, toYoctoNear, yoctoNear };
82
+
83
+ //# sourceMappingURL=amounts.js.map
@@ -2,11 +2,11 @@ import { parseVerifiedEmailAddress } from "../../shared-ts/src/utils/domainIds.j
2
2
  import "./sdkSentEvents.js";
3
3
  //#region src/core/types/linkDevice.ts
4
4
  var DeviceLinkingError = class extends Error {
5
+ name = "DeviceLinkingError";
5
6
  constructor(message, code, phase) {
6
7
  super(message);
7
8
  this.code = code;
8
9
  this.phase = phase;
9
- this.name = "DeviceLinkingError";
10
10
  }
11
11
  };
12
12
  let DeviceLinkingErrorCode = /* @__PURE__ */ function(DeviceLinkingErrorCode) {
@@ -10,16 +10,16 @@ var ProviderBinding = class {
10
10
  constructor(detail, owner) {
11
11
  this.detail = detail;
12
12
  this.owner = owner;
13
- this.accountsChanged = (value) => {
14
- this.owner.providerEvent(this, "accounts", value);
15
- };
16
- this.chainChanged = (value) => {
17
- this.owner.providerEvent(this, "chain", value);
18
- };
19
- this.disconnected = () => {
20
- this.owner.providerEvent(this, "disconnect", null);
21
- };
22
13
  }
14
+ accountsChanged = (value) => {
15
+ this.owner.providerEvent(this, "accounts", value);
16
+ };
17
+ chainChanged = (value) => {
18
+ this.owner.providerEvent(this, "chain", value);
19
+ };
20
+ disconnected = () => {
21
+ this.owner.providerEvent(this, "disconnect", null);
22
+ };
23
23
  attach() {
24
24
  this.detail.provider.on("accountsChanged", this.accountsChanged);
25
25
  this.detail.provider.on("chainChanged", this.chainChanged);
@@ -38,48 +38,28 @@ function removeProviderListener(provider, event, listener) {
38
38
  }
39
39
  /** Host-owned controller. Construction is side-effect free; start discovery on mount. */
40
40
  var ExternalEvmController = class {
41
+ chains;
42
+ registry = /* @__PURE__ */ new Map();
43
+ subscribers = /* @__PURE__ */ new Set();
44
+ mountTokens = /* @__PURE__ */ new Set();
45
+ binding = null;
46
+ target = null;
47
+ activeRequestToken = null;
48
+ generation = 0;
49
+ eventVersion = 0;
50
+ snapshot = Object.freeze({
51
+ wallets: [],
52
+ connection: DISCONNECTED_EXTERNAL_EVM,
53
+ busy: false
54
+ });
41
55
  constructor(chains) {
42
- this.registry = /* @__PURE__ */ new Map();
43
- this.subscribers = /* @__PURE__ */ new Set();
44
- this.mountTokens = /* @__PURE__ */ new Set();
45
- this.binding = null;
46
- this.target = null;
47
- this.activeRequestToken = null;
48
- this.generation = 0;
49
- this.eventVersion = 0;
50
- this.snapshot = Object.freeze({
51
- wallets: [],
52
- connection: DISCONNECTED_EXTERNAL_EVM,
53
- busy: false
54
- });
55
- this.getSnapshot = () => this.snapshot;
56
- this.subscribe = (listener) => {
57
- this.subscribers.add(listener);
58
- return this.unsubscribe.bind(this, listener);
59
- };
60
- this.mount = () => {
61
- const token = Symbol("external EVM mount");
62
- this.mountTokens.add(token);
63
- if (typeof window !== "undefined") this.start(window);
64
- return this.releaseMount.bind(this, token);
65
- };
66
- this.announce = (event) => {
67
- try {
68
- if (!("detail" in event)) return;
69
- const detail = parseAnnouncement(event.detail);
70
- if (detail) this.registerProvider(detail);
71
- } catch {}
72
- };
73
- this.disconnect = () => {
74
- this.clearConnection(this.snapshot.wallets);
75
- };
76
- this.dispose = () => {
77
- this.mountTokens.clear();
78
- this.stopDiscovery();
79
- this.clearConnection([]);
80
- };
81
56
  this.chains = parseChains(chains);
82
57
  }
58
+ getSnapshot = () => this.snapshot;
59
+ subscribe = (listener) => {
60
+ this.subscribers.add(listener);
61
+ return this.unsubscribe.bind(this, listener);
62
+ };
83
63
  unsubscribe(listener) {
84
64
  this.subscribers.delete(listener);
85
65
  }
@@ -105,10 +85,23 @@ var ExternalEvmController = class {
105
85
  } catch {}
106
86
  target.dispatchEvent(new Event("eip6963:requestProvider"));
107
87
  }
88
+ mount = () => {
89
+ const token = Symbol("external EVM mount");
90
+ this.mountTokens.add(token);
91
+ if (typeof window !== "undefined") this.start(window);
92
+ return this.releaseMount.bind(this, token);
93
+ };
108
94
  releaseMount(token) {
109
95
  if (!this.mountTokens.delete(token)) return;
110
96
  if (this.mountTokens.size === 0) this.dispose();
111
97
  }
98
+ announce = (event) => {
99
+ try {
100
+ if (!("detail" in event)) return;
101
+ const detail = parseAnnouncement(event.detail);
102
+ if (detail) this.registerProvider(detail);
103
+ } catch {}
104
+ };
112
105
  registerProvider(detail) {
113
106
  if (this.registry.has(detail.wallet.id)) return;
114
107
  for (const registered of this.registry.values()) if (registered.provider === detail.provider) return;
@@ -116,6 +109,9 @@ var ExternalEvmController = class {
116
109
  const wallets = Object.freeze([...this.snapshot.wallets, detail.wallet]);
117
110
  this.publish(this.snapshot.connection, wallets);
118
111
  }
112
+ disconnect = () => {
113
+ this.clearConnection(this.snapshot.wallets);
114
+ };
119
115
  clearConnection(wallets) {
120
116
  this.activeRequestToken = null;
121
117
  this.generation += 1;
@@ -129,6 +125,11 @@ var ExternalEvmController = class {
129
125
  this.target = null;
130
126
  this.registry.clear();
131
127
  }
128
+ dispose = () => {
129
+ this.mountTokens.clear();
130
+ this.stopDiscovery();
131
+ this.clearConnection([]);
132
+ };
132
133
  async connect(walletId) {
133
134
  if (this.activeRequestToken !== null) return pending();
134
135
  if (typeof walletId !== "string" || !walletId.trim()) return externalEvmFailure("invalid_input", "Select a wallet.");
package/dist/esm/index.js CHANGED
@@ -11,6 +11,7 @@ import { DEVICE_LINKING_CONFIG, SIGNER_WORKER_MANAGER_CONFIG } from "./config.js
11
11
  import { defineSeamsConfig, seamsTestnetConfig } from "./core/config/defineConfig.js";
12
12
  import { DEFAULT_WAIT_STATUS } from "./core/types/rpc.js";
13
13
  import { ActionType } from "./shared-ts/src/near/actions.js";
14
+ import { AmountError, parseEther, parseNear, parseUnits, yoctoNear } from "./core/types/amounts.js";
14
15
  import { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer } from "./core/types/actionBuilders.js";
15
16
  import { logWalletEvents } from "./core/types/eventLogging.js";
16
- export { AccountSyncEventPhase, ActionType, BrowserCapabilityUnavailableError, DEFAULT_WAIT_STATUS, DEVICE_LINKING_CONFIG, ExternalEvmController, KeyExportEventPhase, LinkDeviceEventPhase, PASSKEY_MANAGER_DEFAULT_CONFIGS, RegistrationEventPhase, SIGNER_WORKER_MANAGER_CONFIG, SeamsWeb, SigningEventPhase, UnlockEventPhase, WALLET_FLOW_EVENT_MESSAGES, WALLET_FLOW_EVENT_STEPS, WALLET_FLOW_EVENT_VERSION, addKey, buildConfigsFromEnv, buildHostedAuthMenuOpenRequest, configuredThresholdEcdsaChainTargets, createAccount, createAccountSyncFlowEvent, createKeyExportFlowEvent, createLinkDeviceFlowEvent, createRegistrationFlowEvent, createSigningFlowEvent, createUnlockFlowEvent, createWalletFlowEvent, defineSeamsConfig, deleteAccount, deleteKey, deployContract, functionCall, hostedAuthMenuExternalAuthRequestIdFromBoundary, hostedAuthMenuSessionIdFromBoundary, isWalletFlowEvent, logWalletEvents, nearAccountRefFromAccountId, parseWalletMoveId, seamsTestnetConfig, stake, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toAccountId, toWalletId, transfer, walletIdFromWalletProfile, walletSessionRefFromSession };
17
+ export { AccountSyncEventPhase, ActionType, AmountError, BrowserCapabilityUnavailableError, DEFAULT_WAIT_STATUS, DEVICE_LINKING_CONFIG, ExternalEvmController, KeyExportEventPhase, LinkDeviceEventPhase, PASSKEY_MANAGER_DEFAULT_CONFIGS, RegistrationEventPhase, SIGNER_WORKER_MANAGER_CONFIG, SeamsWeb, SigningEventPhase, UnlockEventPhase, WALLET_FLOW_EVENT_MESSAGES, WALLET_FLOW_EVENT_STEPS, WALLET_FLOW_EVENT_VERSION, addKey, buildConfigsFromEnv, buildHostedAuthMenuOpenRequest, configuredThresholdEcdsaChainTargets, createAccount, createAccountSyncFlowEvent, createKeyExportFlowEvent, createLinkDeviceFlowEvent, createRegistrationFlowEvent, createSigningFlowEvent, createUnlockFlowEvent, createWalletFlowEvent, defineSeamsConfig, deleteAccount, deleteKey, deployContract, functionCall, hostedAuthMenuExternalAuthRequestIdFromBoundary, hostedAuthMenuSessionIdFromBoundary, isWalletFlowEvent, logWalletEvents, nearAccountRefFromAccountId, parseEther, parseNear, parseUnits, parseWalletMoveId, seamsTestnetConfig, stake, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toAccountId, toWalletId, transfer, walletIdFromWalletProfile, walletSessionRefFromSession, yoctoNear };
@@ -0,0 +1,56 @@
1
+ import { nearAccountRefFromAccountId, walletSessionRefFromSession } from "../core/signingEngine/interfaces/ecdsaChainTarget.js";
2
+ import { createReviewedBoundCalls } from "./transactionReview/boundCalls.js";
3
+ //#region src/react/boundWallet.ts
4
+ function createBoundWallet(seams, loginState, host, owner) {
5
+ const { walletId, nearAccountId } = loginState;
6
+ const walletSession = walletSessionRefFromSession({ walletId });
7
+ const nearAccount = nearAccountId ? nearAccountRefFromAccountId(nearAccountId) : null;
8
+ const reviewed = createReviewedBoundCalls({
9
+ seams,
10
+ walletId,
11
+ walletSession,
12
+ nearAccount,
13
+ host,
14
+ owner
15
+ });
16
+ return {
17
+ walletId,
18
+ walletSession,
19
+ near: nearAccount && nearAccountId ? {
20
+ accountId: nearAccountId,
21
+ signAndSendTransaction: reviewed.nearSign,
22
+ signMessage: signMessage.bind(null, seams, walletSession, nearAccount)
23
+ } : null,
24
+ evm: {
25
+ signTransaction: reviewed.evmSign,
26
+ signAndSendTransaction: reviewed.evmExecute
27
+ },
28
+ tempo: {
29
+ signTransaction: reviewed.tempoSign,
30
+ signAndSendTransaction: reviewed.tempoExecute
31
+ },
32
+ exportKey: exportKey.bind(null, seams, walletSession, nearAccount)
33
+ };
34
+ }
35
+ function signMessage(seams, walletSession, nearAccount, args) {
36
+ return seams.near.signMessage({
37
+ ...args,
38
+ walletSession,
39
+ nearAccount
40
+ });
41
+ }
42
+ function exportKey(seams, walletSession, nearAccount, input) {
43
+ if (input.kind === "ed25519") return seams.keys.exportKey({
44
+ ...input,
45
+ walletSession,
46
+ ...nearAccount ? { nearAccount } : {}
47
+ });
48
+ return seams.keys.exportKey({
49
+ ...input,
50
+ walletSession
51
+ });
52
+ }
53
+ //#endregion
54
+ export { createBoundWallet };
55
+
56
+ //# sourceMappingURL=boundWallet.js.map
@@ -375,8 +375,19 @@
375
375
  }
376
376
 
377
377
  .seams-linked-devices-modal-otp-input:focus-visible {
378
- outline: 2px solid var(--seams-colors-primary);
379
- outline-offset: 2px;
378
+ outline: none;
379
+ border-color: transparent;
380
+ background:
381
+ linear-gradient(var(--seams-colors-colorBackground), var(--seams-colors-colorBackground))
382
+ padding-box,
383
+ var(
384
+ --seams-colors-focusGradient,
385
+ linear-gradient(
386
+ var(--seams-colors-focus, var(--seams-colors-primary)),
387
+ var(--seams-colors-focus, var(--seams-colors-primary))
388
+ )
389
+ )
390
+ border-box;
380
391
  }
381
392
 
382
393
  .seams-linked-devices-modal-secondary,
@@ -73,99 +73,10 @@ function assertNever(value) {
73
73
  throw new Error(`Unexpected wallet region state: ${String(value)}`);
74
74
  }
75
75
  var WalletRegionSection = class extends Component {
76
- constructor(..._args) {
77
- super(..._args);
78
- this.state = { view: { kind: "loading" } };
79
- this.mounted = false;
80
- this.requestRevision = 0;
81
- this.timer = null;
82
- this.load = async () => {
83
- const revision = ++this.requestRevision;
84
- this.commit({ kind: "loading" });
85
- try {
86
- const last = await this.props.placement.getLastMoveRequest(this.props.walletId);
87
- if (!this.mounted || revision !== this.requestRevision) return;
88
- const result = await this.props.placement.get(this.props.walletId);
89
- if (!this.mounted || revision !== this.requestRevision) return;
90
- if (!result.ok || result.placement.state === "unavailable") {
91
- if (last !== null) {
92
- await this.readMove(last);
93
- return;
94
- }
95
- this.commit({
96
- kind: "unavailable",
97
- message: "Unable to check wallet placement. Unlock this wallet or reconnect to try again."
98
- });
99
- return;
100
- }
101
- if (result.placement.state === "moving") {
102
- this.showProgress(result.placement);
103
- return;
104
- }
105
- if (last !== null && last.expectedGeneration >= result.placement.generation) {
106
- this.commit({
107
- kind: "uncertain",
108
- request: last,
109
- message: "Reconnecting to check progress. The previous request may have been accepted."
110
- });
111
- await this.readMove(last);
112
- return;
113
- }
114
- this.commit({
115
- kind: "ready",
116
- placement: result.placement,
117
- selected: result.placement.region
118
- });
119
- } catch {
120
- if (!this.mounted || revision !== this.requestRevision) return;
121
- this.commit({
122
- kind: "unavailable",
123
- message: "Unable to check wallet placement. Reconnect to try again."
124
- });
125
- }
126
- };
127
- this.select = (event) => {
128
- if (this.state.view.kind !== "ready") return;
129
- const region = REGIONS.find(matchesRegion.bind(null, event.currentTarget.value));
130
- if (!region) return;
131
- this.commit({
132
- kind: "ready",
133
- placement: this.state.view.placement,
134
- selected: region.value
135
- });
136
- };
137
- this.submit = async () => {
138
- const state = this.state.view;
139
- if (state.kind !== "ready" || state.selected === state.placement.region || state.placement.nextMoveAtMs > Date.now()) return;
140
- const request = {
141
- walletId: this.props.walletId,
142
- moveId: parseWalletMoveId(`wmove_${base64UrlEncode(crypto.getRandomValues(new Uint8Array(32)))}`),
143
- destinationRegion: state.selected,
144
- expectedGeneration: state.placement.generation
145
- };
146
- await this.send(request);
147
- };
148
- this.retry = async () => {
149
- if (this.state.view.kind !== "uncertain") return;
150
- await this.send(this.state.view.request);
151
- };
152
- this.poll = async () => {
153
- this.timer = null;
154
- const state = this.state.view;
155
- if (state.kind === "uncertain") {
156
- await this.readMove(state.request);
157
- return;
158
- }
159
- if (state.kind !== "progress" || state.status.state !== "moving") return;
160
- const move = state.status.move;
161
- await this.readMove({
162
- walletId: this.props.walletId,
163
- moveId: move.moveId,
164
- destinationRegion: move.destinationRegion,
165
- expectedGeneration: move.sourceGeneration
166
- });
167
- };
168
- }
76
+ state = { view: { kind: "loading" } };
77
+ mounted = false;
78
+ requestRevision = 0;
79
+ timer = null;
169
80
  componentDidMount() {
170
81
  this.mounted = true;
171
82
  this.props.onAvailability(false);
@@ -180,6 +91,76 @@ var WalletRegionSection = class extends Component {
180
91
  this.setState({ view: state });
181
92
  this.props.onAvailability(permitsWalletActions(state));
182
93
  }
94
+ load = async () => {
95
+ const revision = ++this.requestRevision;
96
+ this.commit({ kind: "loading" });
97
+ try {
98
+ const last = await this.props.placement.getLastMoveRequest(this.props.walletId);
99
+ if (!this.mounted || revision !== this.requestRevision) return;
100
+ const result = await this.props.placement.get(this.props.walletId);
101
+ if (!this.mounted || revision !== this.requestRevision) return;
102
+ if (!result.ok || result.placement.state === "unavailable") {
103
+ if (last !== null) {
104
+ await this.readMove(last);
105
+ return;
106
+ }
107
+ this.commit({
108
+ kind: "unavailable",
109
+ message: "Unable to check wallet placement. Unlock this wallet or reconnect to try again."
110
+ });
111
+ return;
112
+ }
113
+ if (result.placement.state === "moving") {
114
+ this.showProgress(result.placement);
115
+ return;
116
+ }
117
+ if (last !== null && last.expectedGeneration >= result.placement.generation) {
118
+ this.commit({
119
+ kind: "uncertain",
120
+ request: last,
121
+ message: "Reconnecting to check progress. The previous request may have been accepted."
122
+ });
123
+ await this.readMove(last);
124
+ return;
125
+ }
126
+ this.commit({
127
+ kind: "ready",
128
+ placement: result.placement,
129
+ selected: result.placement.region
130
+ });
131
+ } catch {
132
+ if (!this.mounted || revision !== this.requestRevision) return;
133
+ this.commit({
134
+ kind: "unavailable",
135
+ message: "Unable to check wallet placement. Reconnect to try again."
136
+ });
137
+ }
138
+ };
139
+ select = (event) => {
140
+ if (this.state.view.kind !== "ready") return;
141
+ const region = REGIONS.find(matchesRegion.bind(null, event.currentTarget.value));
142
+ if (!region) return;
143
+ this.commit({
144
+ kind: "ready",
145
+ placement: this.state.view.placement,
146
+ selected: region.value
147
+ });
148
+ };
149
+ submit = async () => {
150
+ const state = this.state.view;
151
+ if (state.kind !== "ready" || state.selected === state.placement.region || state.placement.nextMoveAtMs > Date.now()) return;
152
+ const request = {
153
+ walletId: this.props.walletId,
154
+ moveId: parseWalletMoveId(`wmove_${base64UrlEncode(crypto.getRandomValues(new Uint8Array(32)))}`),
155
+ destinationRegion: state.selected,
156
+ expectedGeneration: state.placement.generation
157
+ };
158
+ await this.send(request);
159
+ };
160
+ retry = async () => {
161
+ if (this.state.view.kind !== "uncertain") return;
162
+ await this.send(this.state.view.request);
163
+ };
183
164
  async send(request) {
184
165
  const revision = ++this.requestRevision;
185
166
  if (this.timer !== null) {
@@ -216,6 +197,22 @@ var WalletRegionSection = class extends Component {
216
197
  this.timer = setTimeout(this.poll, 1500);
217
198
  }
218
199
  }
200
+ poll = async () => {
201
+ this.timer = null;
202
+ const state = this.state.view;
203
+ if (state.kind === "uncertain") {
204
+ await this.readMove(state.request);
205
+ return;
206
+ }
207
+ if (state.kind !== "progress" || state.status.state !== "moving") return;
208
+ const move = state.status.move;
209
+ await this.readMove({
210
+ walletId: this.props.walletId,
211
+ moveId: move.moveId,
212
+ destinationRegion: move.destinationRegion,
213
+ expectedGeneration: move.sourceGeneration
214
+ });
215
+ };
219
216
  async readMove(request) {
220
217
  const revision = this.requestRevision;
221
218
  try {
@@ -104,68 +104,65 @@ function WalletSettingsHeader() {
104
104
  });
105
105
  }
106
106
  var WalletSettingsLayout = class extends Component {
107
- constructor(..._args) {
108
- super(..._args);
109
- this.state = {
110
- regionReady: true,
111
- selected: "authentication-methods",
112
- mobileMenuOpen: false,
113
- lock: { kind: "idle" }
107
+ state = {
108
+ regionReady: true,
109
+ selected: "authentication-methods",
110
+ mobileMenuOpen: false,
111
+ lock: { kind: "idle" }
112
+ };
113
+ regionAvailability = (regionReady) => {
114
+ this.setState({ regionReady });
115
+ };
116
+ heading = React.createRef();
117
+ select = (event) => {
118
+ const item = SETTINGS_ITEMS.find(this.matchesSelection.bind(null, event.currentTarget.dataset.section));
119
+ if (!item) return;
120
+ const commit = () => {
121
+ this.setState({
122
+ selected: item.id,
123
+ mobileMenuOpen: false
124
+ }, this.focusHeading);
114
125
  };
115
- this.regionAvailability = (regionReady) => {
116
- this.setState({ regionReady });
117
- };
118
- this.heading = React.createRef();
119
- this.select = (event) => {
120
- const item = SETTINGS_ITEMS.find(this.matchesSelection.bind(null, event.currentTarget.dataset.section));
121
- if (!item) return;
122
- const commit = () => {
123
- this.setState({
124
- selected: item.id,
125
- mobileMenuOpen: false
126
- }, this.focusHeading);
127
- };
128
- if (!this.state.mobileMenuOpen) {
129
- commit();
130
- return;
131
- }
132
- blinkMenuItem(event.currentTarget)?.then(commit);
133
- };
134
- this.focusHeading = () => {
135
- this.heading.current?.focus();
136
- };
137
- this.isAvailableSelection = (item) => item.id === this.state.selected;
138
- this.toggleMobileMenu = () => {
139
- this.setState({ mobileMenuOpen: !this.state.mobileMenuOpen });
140
- };
141
- this.lock = async () => {
142
- if (this.state.lock.kind === "locking") return;
143
- this.setState({ lock: { kind: "locking" } });
144
- try {
145
- await this.props.onLock();
146
- } catch (error) {
147
- this.setState({ lock: {
148
- kind: "failed",
149
- message: error instanceof Error ? error.message : "Unable to lock your wallet. Try again."
150
- } });
151
- }
152
- };
153
- this.renderItem = (item) => /* @__PURE__ */ jsxs("button", {
154
- type: "button",
155
- "data-section": item.id,
156
- disabled: !this.state.regionReady && item.id !== "wallet-region",
157
- onClick: this.select,
158
- "aria-current": (this.state.regionReady ? this.state.selected : "wallet-region") === item.id ? "page" : void 0,
159
- children: [/* @__PURE__ */ jsx("span", {
160
- className: "seams-settings-nav-icon",
161
- "aria-hidden": "true",
162
- children: item.icon
163
- }), /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx("strong", { children: item.label }), /* @__PURE__ */ jsx("small", { children: item.description })] })]
164
- }, item.id);
165
- }
126
+ if (!this.state.mobileMenuOpen) {
127
+ commit();
128
+ return;
129
+ }
130
+ blinkMenuItem(event.currentTarget)?.then(commit);
131
+ };
166
132
  matchesSelection(id, item) {
167
133
  return item.id === id;
168
134
  }
135
+ focusHeading = () => {
136
+ this.heading.current?.focus();
137
+ };
138
+ isAvailableSelection = (item) => item.id === this.state.selected;
139
+ toggleMobileMenu = () => {
140
+ this.setState({ mobileMenuOpen: !this.state.mobileMenuOpen });
141
+ };
142
+ lock = async () => {
143
+ if (this.state.lock.kind === "locking") return;
144
+ this.setState({ lock: { kind: "locking" } });
145
+ try {
146
+ await this.props.onLock();
147
+ } catch (error) {
148
+ this.setState({ lock: {
149
+ kind: "failed",
150
+ message: error instanceof Error ? error.message : "Unable to lock your wallet. Try again."
151
+ } });
152
+ }
153
+ };
154
+ renderItem = (item) => /* @__PURE__ */ jsxs("button", {
155
+ type: "button",
156
+ "data-section": item.id,
157
+ disabled: !this.state.regionReady && item.id !== "wallet-region",
158
+ onClick: this.select,
159
+ "aria-current": (this.state.regionReady ? this.state.selected : "wallet-region") === item.id ? "page" : void 0,
160
+ children: [/* @__PURE__ */ jsx("span", {
161
+ className: "seams-settings-nav-icon",
162
+ "aria-hidden": "true",
163
+ children: item.icon
164
+ }), /* @__PURE__ */ jsxs("span", { children: [/* @__PURE__ */ jsx("strong", { children: item.label }), /* @__PURE__ */ jsx("small", { children: item.description })] })]
165
+ }, item.id);
169
166
  render() {
170
167
  const selectedId = this.state.regionReady ? this.state.selected : "wallet-region";
171
168
  const selected = SETTINGS_ITEMS.find(this.matchesSelection.bind(null, selectedId));
@@ -96,13 +96,24 @@ function hostedAuthMenuEffectConfigKey(config) {
96
96
  }
97
97
  }
98
98
  var HostedAuthMenuSessionController = class {
99
+ seams;
100
+ anchorElement;
101
+ authMenuSessionId;
102
+ initialMode;
103
+ registrationAccountInput;
104
+ showRegistrationInput;
105
+ showProgress;
106
+ copy;
107
+ externalAuthBroker;
108
+ onOutcome;
109
+ externalAuthRequestIds = /* @__PURE__ */ new Set();
110
+ handleExternalAuthRequestBound;
111
+ unsubscribeExternalAuthRequest = null;
112
+ isActive = false;
113
+ hasOpenRequest = false;
114
+ hasTerminalOutcome = false;
115
+ hasFinalizedCleanup = false;
99
116
  constructor(args) {
100
- this.externalAuthRequestIds = /* @__PURE__ */ new Set();
101
- this.unsubscribeExternalAuthRequest = null;
102
- this.isActive = false;
103
- this.hasOpenRequest = false;
104
- this.hasTerminalOutcome = false;
105
- this.hasFinalizedCleanup = false;
106
117
  this.seams = args.seams;
107
118
  this.anchorElement = args.anchorElement;
108
119
  this.authMenuSessionId = args.authMenuSessionId;