@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
@@ -124,8 +124,19 @@
124
124
  }
125
125
 
126
126
  .seams-device-link-email-field input:focus-visible {
127
- outline: 2px solid var(--seams-colors-primary, #3b82f6);
128
- outline-offset: 2px;
127
+ outline: none;
128
+ border-color: transparent;
129
+ background:
130
+ linear-gradient(var(--seams-colors-surface, #ffffff), var(--seams-colors-surface, #ffffff))
131
+ padding-box,
132
+ var(
133
+ --seams-colors-focusGradient,
134
+ linear-gradient(
135
+ var(--seams-colors-focus, var(--seams-colors-primary, #3b82f6)),
136
+ var(--seams-colors-focus, var(--seams-colors-primary, #3b82f6))
137
+ )
138
+ )
139
+ border-box;
129
140
  }
130
141
 
131
142
  .qr-code-section {
@@ -6,6 +6,8 @@ import { useNearProvisioningStateRefresh } from "./useNearProvisioningStateRefre
6
6
  import { useSeamsContextValue } from "./useSeamsContextValue.js";
7
7
  import { useWalletIframeLifecycle } from "./useWalletIframeLifecycle.js";
8
8
  import { getOrCreateSeamsManager } from "./seamsManagerSingleton.js";
9
+ import { createBoundWallet } from "../boundWallet.js";
10
+ import { useTransactionReviewOwner } from "../transactionReview/TransactionReviewHost.js";
9
11
  import { createContext, useContext, useEffect, useMemo, useRef, useState } from "react";
10
12
  import { jsx } from "react/jsx-runtime";
11
13
  //#region src/react/context/index.tsx
@@ -109,11 +111,36 @@ const SeamsContextProvider = ({ children, config, theme }) => {
109
111
  children
110
112
  });
111
113
  };
112
- const useSeams = () => {
114
+ /** Authentication, lifecycle state, and the current wallet's bound signers. */
115
+ function useSeams() {
113
116
  const context = useContext(SeamsContext);
114
117
  if (context === void 0) throw new Error("useSeams must be used within a SeamsContextProvider");
115
- return context;
116
- };
118
+ const { seams, loginState } = context;
119
+ const { host, owner } = useTransactionReviewOwner(loginState.walletId);
120
+ const walletState = useMemo(bindCurrentWallet.bind(null, seams, loginState, host, owner), [
121
+ seams,
122
+ loginState,
123
+ host,
124
+ owner
125
+ ]);
126
+ return useMemo(buildSeamsContext.bind(null, context, walletState), [context, walletState]);
127
+ }
128
+ function bindCurrentWallet(seams, loginState, host, owner) {
129
+ if (!loginState.isLoggedIn) return {
130
+ loginState,
131
+ wallet: null
132
+ };
133
+ return {
134
+ loginState,
135
+ wallet: createBoundWallet(seams, loginState, host, owner)
136
+ };
137
+ }
138
+ function buildSeamsContext(context, walletState) {
139
+ return {
140
+ ...context,
141
+ ...walletState
142
+ };
143
+ }
117
144
  //#endregion
118
145
  export { SeamsContextProvider, useSeams };
119
146
 
@@ -29,7 +29,7 @@ function useSeamsWithSdkFlow(args) {
29
29
  return await seams.auth.unlock(walletId, wrappedOptions);
30
30
  };
31
31
  const registerWalletWithSdkFlow = async (registerWalletArgs) => {
32
- const seq = beginSdkFlow("register", registerWalletArgs.wallet.kind === "provided" ? String(registerWalletArgs.wallet.walletId) : void 0);
32
+ const seq = beginSdkFlow("register", registerWalletArgs.wallet?.kind === "provided" ? String(registerWalletArgs.wallet.walletId) : void 0);
33
33
  const options = registerWalletArgs.options;
34
34
  const wrappedOptions = {
35
35
  ...options,
@@ -13,34 +13,31 @@ function ExternalEvmWalletPicker({ controller, snapshot }) {
13
13
  });
14
14
  }
15
15
  var WalletPicker = class extends Component {
16
- constructor(..._args) {
17
- super(..._args);
18
- this.state = { message: "" };
19
- this.connect = async (event) => {
20
- event.preventDefault();
21
- const walletId = new FormData(event.currentTarget).get("wallet");
22
- if (typeof walletId !== "string") return;
23
- this.showResult(await this.props.controller.connect(walletId));
24
- };
25
- this.accountChanged = (event) => {
26
- const connection = this.props.snapshot.connection;
27
- if (connection.kind === "connected") this.showResult(this.props.controller.selectAccount(connection, event.currentTarget.value));
28
- };
29
- this.switchChain = async (event) => {
30
- event.preventDefault();
31
- const connection = this.props.snapshot.connection;
32
- if (connection.kind !== "connected") return;
33
- const chainId = Number(new FormData(event.currentTarget).get("chain"));
34
- this.showResult(await this.props.controller.switchChain(connection, chainId));
35
- };
36
- this.disconnect = () => {
37
- this.props.controller.disconnect();
38
- this.setState({ message: "Disconnected from this app. Manage site permissions in your wallet." });
39
- };
40
- }
16
+ state = { message: "" };
41
17
  showResult(result) {
42
18
  this.setState({ message: result.ok ? "Wallet connection updated." : result.message });
43
19
  }
20
+ connect = async (event) => {
21
+ event.preventDefault();
22
+ const walletId = new FormData(event.currentTarget).get("wallet");
23
+ if (typeof walletId !== "string") return;
24
+ this.showResult(await this.props.controller.connect(walletId));
25
+ };
26
+ accountChanged = (event) => {
27
+ const connection = this.props.snapshot.connection;
28
+ if (connection.kind === "connected") this.showResult(this.props.controller.selectAccount(connection, event.currentTarget.value));
29
+ };
30
+ switchChain = async (event) => {
31
+ event.preventDefault();
32
+ const connection = this.props.snapshot.connection;
33
+ if (connection.kind !== "connected") return;
34
+ const chainId = Number(new FormData(event.currentTarget).get("chain"));
35
+ this.showResult(await this.props.controller.switchChain(connection, chainId));
36
+ };
37
+ disconnect = () => {
38
+ this.props.controller.disconnect();
39
+ this.setState({ message: "Disconnected from this app. Manage site permissions in your wallet." });
40
+ };
44
41
  render() {
45
42
  const { controller, snapshot } = this.props;
46
43
  const { connection, busy, wallets } = snapshot;
@@ -5,18 +5,18 @@ import { SeamsWeb } from "../SeamsWeb/SeamsWeb.js";
5
5
  import { ExternalEvmController } from "../externalEvm/controller.js";
6
6
  import { defineSeamsConfig, seamsTestnetConfig } from "../core/config/defineConfig.js";
7
7
  import { ActionType, TxExecutionStatus } from "../shared-ts/src/near/actions.js";
8
+ import { AmountError, parseEther, parseNear, parseUnits, yoctoNear } from "../core/types/amounts.js";
8
9
  import { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer } from "../core/types/actionBuilders.js";
9
10
  import { logWalletEvents } from "../core/types/eventLogging.js";
10
11
  import { useNearClient } from "./hooks/useNearClient.js";
11
12
  import { useAccountInput } from "./hooks/useAccountInput.js";
13
+ import { TransactionReviewError } from "../SeamsWeb/walletIframe/shared/transactionReview.js";
14
+ import { TransactionReviewHost } from "./transactionReview/TransactionReviewHost.js";
12
15
  import { SeamsContextProvider, useSeams } from "./context/index.js";
13
16
  import { ExternalEvmWalletPicker, useExternalEvm } from "./externalEvm.js";
14
17
  import { DARK_TOKENS, LIGHT_TOKENS, SHAPE_PRESETS, SHAPE_ROUNDED, SHAPE_SQUARE } from "./components/theme/design-tokens.js";
15
18
  import { Theme, useTheme } from "./components/theme/ThemeProvider.js";
16
19
  import { SeamsWebProvider } from "./context/SeamsWebProvider.js";
17
- import { TransactionReviewError } from "../SeamsWeb/walletIframe/shared/transactionReview.js";
18
- import { TransactionReviewHost } from "./transactionReview/TransactionReviewHost.js";
19
- import { useWallet } from "./hooks/useWallet.js";
20
20
  import { useWalletAuth } from "./hooks/useWalletAuth.js";
21
21
  import { useWalletDevices } from "./hooks/useWalletDevices.js";
22
22
  import { useDeviceLinking } from "./hooks/useDeviceLinking.js";
@@ -34,4 +34,4 @@ import { ShowQRCode } from "./components/ShowQRCode.js";
34
34
  import { VoiceAssistantCard } from "./components/VoiceAssistantCard.js";
35
35
  import QRCodeIcon from "./components/QRCodeIcon.js";
36
36
  import { VoiceBeam } from "voice-glow";
37
- export { AccountMenuButton, AccountMenuButtonMock, 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 };
37
+ export { AccountMenuButton, AccountMenuButtonMock, AccountSyncEventPhase, ActionType, AmountError, 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, parseEther, parseNear, parseUnits, seamsTestnetConfig, stake, thresholdEcdsaChainTargetFromChainFamily, thresholdEcdsaChainTargetFromConfig, thresholdEcdsaChainTargetFromConfiguredRequest, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetKey, thresholdEcdsaChainTargetsEqual, toWalletId, transfer, useAccountInput, useDeviceLinking, useExternalEvm, useNearClient, useQRCamera, useSeams, useTheme, useWalletAuth, useWalletDevices, walletIdFromWalletProfile, walletSessionRefFromSession, yoctoNear };
@@ -2381,8 +2381,19 @@
2381
2381
  }
2382
2382
 
2383
2383
  .seams-device-link-email-field input:focus-visible {
2384
- outline: 2px solid var(--seams-colors-primary, #3b82f6);
2385
- outline-offset: 2px;
2384
+ outline: none;
2385
+ border-color: transparent;
2386
+ background:
2387
+ linear-gradient(var(--seams-colors-surface, #ffffff), var(--seams-colors-surface, #ffffff))
2388
+ padding-box,
2389
+ var(
2390
+ --seams-colors-focusGradient,
2391
+ linear-gradient(
2392
+ var(--seams-colors-focus, var(--seams-colors-primary, #3b82f6)),
2393
+ var(--seams-colors-focus, var(--seams-colors-primary, #3b82f6))
2394
+ )
2395
+ )
2396
+ border-box;
2386
2397
  }
2387
2398
 
2388
2399
  .qr-code-section {
@@ -1,9 +1,9 @@
1
- import { useSeams } from "../context/index.js";
2
1
  import { TransactionReviewError } from "../../SeamsWeb/walletIframe/shared/transactionReview.js";
3
2
  import { ReviewHostController, ReviewOwner } from "./controller.js";
3
+ import { useSeams } from "../context/index.js";
4
4
  import { Component, Suspense, createContext, useContext, useEffect, useLayoutEffect, useMemo, useRef, useSyncExternalStore } from "react";
5
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
5
  import { createPortal } from "react-dom";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/react/transactionReview/TransactionReviewHost.tsx
8
8
  const ReviewContext = createContext(null);
9
9
  /** Place below the application providers that review components consume. */
@@ -89,10 +89,7 @@ function ReviewFailure({ call }) {
89
89
  })] });
90
90
  }
91
91
  var ReviewErrorBoundary = class extends Component {
92
- constructor(..._args) {
93
- super(..._args);
94
- this.state = { failed: false };
95
- }
92
+ state = { failed: false };
96
93
  static getDerivedStateFromError() {
97
94
  return { failed: true };
98
95
  }
@@ -5,7 +5,7 @@ import { snapshotNearAction, snapshotTransactionInput, snapshotTransactionOption
5
5
  //#region src/react/transactionReview/boundCalls.ts
6
6
  function requireHost(env) {
7
7
  env.owner.assertLive();
8
- if (!env.host) throw new TransactionReviewError("review_host_unavailable", "Wrap this useWallet component in TransactionReviewHost inside SeamsWebProvider");
8
+ if (!env.host) throw new TransactionReviewError("review_host_unavailable", "Wrap this useSeams component in TransactionReviewHost inside SeamsWebProvider");
9
9
  return env.host;
10
10
  }
11
11
  function createReviewedBoundCalls(env) {
@@ -3,11 +3,9 @@ import { TransactionReviewError, assertTransactionReviewValid } from "../../Seam
3
3
  //#region src/react/transactionReview/controller.ts
4
4
  const hosts = /* @__PURE__ */ new WeakMap();
5
5
  var ReviewOwner = class {
6
- constructor() {
7
- this.generation = 0;
8
- this.disposed = false;
9
- this.calls = /* @__PURE__ */ new Set();
10
- }
6
+ generation = 0;
7
+ disposed = false;
8
+ calls = /* @__PURE__ */ new Set();
11
9
  retain() {
12
10
  this.disposed = false;
13
11
  const generation = ++this.generation;
@@ -22,22 +20,17 @@ var ReviewOwner = class {
22
20
  for (const call of this.calls) call.dispose();
23
21
  }
24
22
  assertLive() {
25
- if (this.disposed) throw new TransactionReviewError("review_owner_disposed", "This useWallet instance has been disposed");
23
+ if (this.disposed) throw new TransactionReviewError("review_owner_disposed", "This useSeams wallet owner has been disposed");
26
24
  }
27
25
  };
28
26
  var ReviewHostController = class {
27
+ live = false;
28
+ generation = 0;
29
+ listeners = /* @__PURE__ */ new Set();
30
+ calls = /* @__PURE__ */ new Set();
31
+ view = null;
29
32
  constructor(seams) {
30
33
  this.seams = seams;
31
- this.live = false;
32
- this.generation = 0;
33
- this.listeners = /* @__PURE__ */ new Set();
34
- this.calls = /* @__PURE__ */ new Set();
35
- this.view = null;
36
- this.subscribe = (listener) => {
37
- this.listeners.add(listener);
38
- return this.unsubscribe.bind(this, listener);
39
- };
40
- this.snapshot = () => this.view;
41
34
  }
42
35
  retain() {
43
36
  const existing = hosts.get(this.seams.near);
@@ -59,9 +52,14 @@ var ReviewHostController = class {
59
52
  this.view = null;
60
53
  this.emit();
61
54
  }
55
+ subscribe = (listener) => {
56
+ this.listeners.add(listener);
57
+ return this.unsubscribe.bind(this, listener);
58
+ };
62
59
  unsubscribe(listener) {
63
60
  this.listeners.delete(listener);
64
61
  }
62
+ snapshot = () => this.view;
65
63
  emit() {
66
64
  for (const listener of this.listeners) listener();
67
65
  }
@@ -91,6 +89,15 @@ var ReviewHostController = class {
91
89
  }
92
90
  };
93
91
  var ReviewCall = class {
92
+ state = { kind: "queued" };
93
+ abort = new AbortController();
94
+ deadline = null;
95
+ prepareTimer = null;
96
+ resolve;
97
+ reject;
98
+ listeners = /* @__PURE__ */ new Set();
99
+ result;
100
+ controls;
94
101
  constructor(host, owner, walletId, review, confirmationConfig, execute) {
95
102
  this.host = host;
96
103
  this.owner = owner;
@@ -98,109 +105,6 @@ var ReviewCall = class {
98
105
  this.review = review;
99
106
  this.confirmationConfig = confirmationConfig;
100
107
  this.execute = execute;
101
- this.state = { kind: "queued" };
102
- this.abort = new AbortController();
103
- this.deadline = null;
104
- this.prepareTimer = null;
105
- this.listeners = /* @__PURE__ */ new Set();
106
- this.captureResult = (resolve, reject) => {
107
- this.resolve = resolve;
108
- this.reject = reject;
109
- };
110
- this.subscribe = (listener) => {
111
- this.listeners.add(listener);
112
- return this.unsubscribe.bind(this, listener);
113
- };
114
- this.snapshot = () => this.state;
115
- this.reservationChanged = () => {
116
- if (this.state.kind === "queued" || this.state.kind === "settled") return;
117
- const reservation = this.state.reservation;
118
- if (reservation.state.kind === "reviewing_again") {
119
- this.transition({
120
- kind: "reviewing",
121
- reservation
122
- });
123
- this.host.show(this);
124
- return;
125
- }
126
- if (reservation.state.kind === "wallet_approval" || reservation.state.kind === "signing") {
127
- if (this.prepareTimer) clearTimeout(this.prepareTimer);
128
- this.prepareTimer = null;
129
- this.transition({
130
- kind: reservation.state.kind === "signing" ? "signing" : "wallet_approval",
131
- reservation
132
- });
133
- if (reservation.state.kind === "signing") this.host.hide(this);
134
- }
135
- };
136
- this.continueToWallet = () => {
137
- if (this.state.kind !== "reviewing") return;
138
- try {
139
- this.owner.assertLive();
140
- assertTransactionReviewValid(this.review.validity);
141
- const reservation = this.state.reservation;
142
- this.transition({
143
- kind: "preparing_approval",
144
- reservation
145
- });
146
- this.prepareTimer = setTimeout(this.prepareTimedOut, 3e4);
147
- if (reservation.state.kind === "reviewing_again") reservation.resume();
148
- else this.dispatch(reservation);
149
- } catch (error) {
150
- this.rejectBeforeDispatch(error);
151
- }
152
- };
153
- this.cancel = () => {
154
- if (this.state.kind === "review_failed") {
155
- this.rejectBeforeDispatch(this.state.error);
156
- return;
157
- }
158
- if (this.state.kind !== "reviewing") return;
159
- this.rejectBeforeDispatch(new TransactionReviewError("cancelled", "Transaction review cancelled"));
160
- };
161
- this.fail = (cause) => {
162
- if (this.state.kind !== "reviewing") return;
163
- const error = new TransactionReviewError("review_render_failed", "The application review could not be displayed", { cause });
164
- this.transition({
165
- kind: "review_failed",
166
- reservation: this.state.reservation,
167
- error
168
- });
169
- };
170
- this.loadingTimedOut = () => {
171
- if (this.state.kind !== "reviewing") return;
172
- this.rejectBeforeDispatch(new TransactionReviewError("review_prepare_timeout", "The application review did not finish loading"));
173
- };
174
- this.prepareTimedOut = () => {
175
- this.cancelOutstanding(new TransactionReviewError("review_prepare_timeout", "Wallet approval could not be prepared in time"));
176
- };
177
- this.checkDeadline = () => {
178
- try {
179
- assertTransactionReviewValid(this.review.validity);
180
- } catch (error) {
181
- this.cancelOutstanding(error instanceof Error ? error : new Error(String(error)));
182
- }
183
- };
184
- this.scheduleDeadline = () => {
185
- if (this.review.validity.kind === "unbounded" || this.state.kind === "settled") return;
186
- const remaining = this.review.validity.atMs - Date.now();
187
- if (remaining <= 0) {
188
- this.checkDeadline();
189
- return;
190
- }
191
- this.deadline = setTimeout(this.scheduleDeadline, Math.min(remaining, 2147483647));
192
- };
193
- this.rejectBeforeDispatch = (error) => {
194
- if (this.state.kind === "settled") return;
195
- if (this.state.kind === "review_failed" && error instanceof TransactionReviewError && error.code === "cancelled") error = this.state.error;
196
- if (this.state.kind !== "queued" && this.state.reservation.state.kind !== "reviewing") {
197
- this.state.reservation.cancel(error instanceof Error ? error : new Error(String(error)));
198
- return;
199
- }
200
- this.abort.abort(error);
201
- this.reject(error);
202
- this.finish();
203
- };
204
108
  this.result = new Promise(this.captureResult);
205
109
  this.controls = Object.freeze({
206
110
  continueToWallet: this.continueToWallet,
@@ -208,9 +112,18 @@ var ReviewCall = class {
208
112
  fail: this.fail
209
113
  });
210
114
  }
115
+ captureResult = (resolve, reject) => {
116
+ this.resolve = resolve;
117
+ this.reject = reject;
118
+ };
119
+ subscribe = (listener) => {
120
+ this.listeners.add(listener);
121
+ return this.unsubscribe.bind(this, listener);
122
+ };
211
123
  unsubscribe(listener) {
212
124
  this.listeners.delete(listener);
213
125
  }
126
+ snapshot = () => this.state;
214
127
  transition(state) {
215
128
  this.state = state;
216
129
  for (const listener of this.listeners) listener();
@@ -245,6 +158,44 @@ var ReviewCall = class {
245
158
  this.rejectBeforeDispatch(error);
246
159
  }
247
160
  }
161
+ reservationChanged = () => {
162
+ if (this.state.kind === "queued" || this.state.kind === "settled") return;
163
+ const reservation = this.state.reservation;
164
+ if (reservation.state.kind === "reviewing_again") {
165
+ this.transition({
166
+ kind: "reviewing",
167
+ reservation
168
+ });
169
+ this.host.show(this);
170
+ return;
171
+ }
172
+ if (reservation.state.kind === "wallet_approval" || reservation.state.kind === "signing") {
173
+ if (this.prepareTimer) clearTimeout(this.prepareTimer);
174
+ this.prepareTimer = null;
175
+ this.transition({
176
+ kind: reservation.state.kind === "signing" ? "signing" : "wallet_approval",
177
+ reservation
178
+ });
179
+ if (reservation.state.kind === "signing") this.host.hide(this);
180
+ }
181
+ };
182
+ continueToWallet = () => {
183
+ if (this.state.kind !== "reviewing") return;
184
+ try {
185
+ this.owner.assertLive();
186
+ assertTransactionReviewValid(this.review.validity);
187
+ const reservation = this.state.reservation;
188
+ this.transition({
189
+ kind: "preparing_approval",
190
+ reservation
191
+ });
192
+ this.prepareTimer = setTimeout(this.prepareTimedOut, 3e4);
193
+ if (reservation.state.kind === "reviewing_again") reservation.resume();
194
+ else this.dispatch(reservation);
195
+ } catch (error) {
196
+ this.rejectBeforeDispatch(error);
197
+ }
198
+ };
248
199
  async dispatch(reservation) {
249
200
  try {
250
201
  const bridge = getTransactionReviewBridge(this.host.seams.near);
@@ -257,14 +208,65 @@ var ReviewCall = class {
257
208
  this.finish();
258
209
  }
259
210
  }
211
+ cancel = () => {
212
+ if (this.state.kind === "review_failed") {
213
+ this.rejectBeforeDispatch(this.state.error);
214
+ return;
215
+ }
216
+ if (this.state.kind !== "reviewing") return;
217
+ this.rejectBeforeDispatch(new TransactionReviewError("cancelled", "Transaction review cancelled"));
218
+ };
219
+ fail = (cause) => {
220
+ if (this.state.kind !== "reviewing") return;
221
+ const error = new TransactionReviewError("review_render_failed", "The application review could not be displayed", { cause });
222
+ this.transition({
223
+ kind: "review_failed",
224
+ reservation: this.state.reservation,
225
+ error
226
+ });
227
+ };
260
228
  dispose() {
261
229
  this.cancelOutstanding(new TransactionReviewError("review_owner_disposed", "The transaction review owner was disposed"));
262
230
  }
231
+ loadingTimedOut = () => {
232
+ if (this.state.kind !== "reviewing") return;
233
+ this.rejectBeforeDispatch(new TransactionReviewError("review_prepare_timeout", "The application review did not finish loading"));
234
+ };
235
+ prepareTimedOut = () => {
236
+ this.cancelOutstanding(new TransactionReviewError("review_prepare_timeout", "Wallet approval could not be prepared in time"));
237
+ };
238
+ checkDeadline = () => {
239
+ try {
240
+ assertTransactionReviewValid(this.review.validity);
241
+ } catch (error) {
242
+ this.cancelOutstanding(error instanceof Error ? error : new Error(String(error)));
243
+ }
244
+ };
245
+ scheduleDeadline = () => {
246
+ if (this.review.validity.kind === "unbounded" || this.state.kind === "settled") return;
247
+ const remaining = this.review.validity.atMs - Date.now();
248
+ if (remaining <= 0) {
249
+ this.checkDeadline();
250
+ return;
251
+ }
252
+ this.deadline = setTimeout(this.scheduleDeadline, Math.min(remaining, 2147483647));
253
+ };
263
254
  cancelOutstanding(error) {
264
255
  if (this.state.kind === "settled" || this.state.kind === "signing") return;
265
256
  if (this.state.kind === "queued" || this.state.kind === "reviewing" || this.state.kind === "review_failed") this.rejectBeforeDispatch(error);
266
257
  else this.state.reservation.cancel(error);
267
258
  }
259
+ rejectBeforeDispatch = (error) => {
260
+ if (this.state.kind === "settled") return;
261
+ if (this.state.kind === "review_failed" && error instanceof TransactionReviewError && error.code === "cancelled") error = this.state.error;
262
+ if (this.state.kind !== "queued" && this.state.reservation.state.kind !== "reviewing") {
263
+ this.state.reservation.cancel(error instanceof Error ? error : new Error(String(error)));
264
+ return;
265
+ }
266
+ this.abort.abort(error);
267
+ this.reject(error);
268
+ this.finish();
269
+ };
268
270
  finish() {
269
271
  if (this.state.kind === "settled") return;
270
272
  const previous = this.state;
@@ -0,0 +1 @@
1
+ import{o as e,s as t,t as n}from"./jsxRuntime.module-DKsgiFjd.js";async function r(e,t,n){if(!e.isConnected||n?.aborted)return!1;let r=e.ownerDocument,i=r.defaultView?.navigator.clipboard;if(i?.writeText)try{return await i.writeText(t),!0}catch{}if(!e.isConnected||n?.aborted)return!1;let a=r.createElement(`textarea`);a.value=t,a.readOnly=!0,a.className=`seams-offscreen`,e.appendChild(a),a.select();try{return r.execCommand(`copy`)}finally{a.remove()}}function i(){return n(`span`,{class:`copy-icon`,"aria-hidden":`true`,children:[n(`span`,{class:`copy-icon-check`,children:n(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:n(`path`,{d:`M20 6 9 17l-5-5`})})}),n(`span`,{class:`copy-icon-copy`,children:n(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,children:[n(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}),n(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})]})})]})}let a=0;function o(e){return n(s,{...e},e.context)}var s=class extends e{dialog=t();hosted=t();containerId=`seams-confirmation-modal-${++a}`;componentDidMount(){this.props.context===`standalone`?this.dialog.current?.showModal():this.hosted.current?.focus({preventScroll:!0})}componentWillUnmount(){this.dialog.current?.close()}cancel=e=>{e.preventDefault(),e.stopPropagation(),this.props.onCancel()};backdropClick=e=>{let t=this.dialog.current;if(!t||e.target!==t)return;let n=t.getBoundingClientRect();(e.clientX<n.left||e.clientX>n.right||e.clientY<n.top||e.clientY>n.bottom)&&this.cancel(e)};hostedKeyDown=e=>{!e.defaultPrevented&&e.key===`Escape`&&this.cancel(e)};render(){return this.props.context===`standalone`?n(`dialog`,{ref:this.dialog,class:`seams-confirmation-modal`,"aria-label":this.props.label,onCancel:this.cancel,onClick:this.backdropClick,children:n(`div`,{id:this.containerId,class:`modal-container-root`,tabIndex:-1,children:this.props.children})}):n(`div`,{ref:this.hosted,class:`seams-confirmation-modal seams-confirmation-modal--hosted`,tabIndex:-1,onKeyDown:this.hostedKeyDown,children:n(`div`,{id:this.containerId,class:`modal-container-root`,children:this.props.children})})}};function c(e){let t=e.startTranslatePx+e.deltaPx;if(t>=e.restTranslatePx)return t;let n=Math.max(e.sheetHeightPx*.5,e.viewportHeightPx*.5,e.minimumOverpullPx),r=e.restTranslatePx-t;return e.restTranslatePx-n*(1-1/(r/n+1))}function l(e){let t=e.totalDeltaPx/Math.max(1,e.durationMs);return Math.min(e.velocityPxPerMs,t)<=-.6||Math.max(e.velocityPxPerMs,t)>=.7||e.translatePx>=e.sheetHeightPx-50}let u=0;function d(e){return n(f,{...e},e.context)}var f=class extends e{state={settled:!1};id=`seams-confirmation-drawer-${++u}`;dialog=t();sheet=t();body=t();content=t();observer=null;frame=null;closeTimer=null;gesture={kind:`idle`};lifetime=`active`;closeReported=!1;suppressPointerClick=!1;componentDidMount(){let e=this.sheet.current,t=e.ownerDocument.defaultView;this.dialog.current?.showModal(),this.dialog.current||e.focus({preventScroll:!0}),this.observer=new ResizeObserver(this.measureContent),this.observer.observe(this.content.current),this.observer.observe(e),t.addEventListener(`resize`,this.scheduleMeasure),t.visualViewport?.addEventListener(`resize`,this.scheduleMeasure),this.measure(),this.frame=t.requestAnimationFrame(this.openAfterLayout),this.props.state.kind===`closing`&&this.startClose()}openAfterLayout=()=>{this.frame=null,this.setState({settled:!0})};componentDidUpdate(e){e.styles!==this.props.styles&&(e.styles.deleteDynamicRule(this.id),e.styles.deleteDynamicRule(`${this.id}-drag`),this.resetGesture(),this.measure()),e.state.kind!==this.props.state.kind&&(this.props.state.kind===`closing`?this.startClose():(this.clearCloseTimer(),this.closeReported=!1)),this.props.state.kind===`open`&&this.props.state.interaction===`busy`&&this.resetGesture()}componentWillUnmount(){this.lifetime=`disposed`,this.resetGesture();let e=this.sheet.current.ownerDocument.defaultView;this.frame!==null&&e.cancelAnimationFrame(this.frame),this.clearCloseTimer(),this.observer?.disconnect(),e.removeEventListener(`resize`,this.scheduleMeasure),e.visualViewport?.removeEventListener(`resize`,this.scheduleMeasure),this.props.styles.deleteDynamicRule(this.id),this.dialog.current?.close()}scheduleMeasure=()=>{this.lifetime===`disposed`||this.frame!==null||(this.frame=this.sheet.current.ownerDocument.defaultView.requestAnimationFrame(this.measureFrame))};measureFrame=()=>{this.frame=null,this.measure()};measureContent=()=>{this.lifetime===`active`&&this.measure()};measure(){if(this.gesture.kind!==`idle`)return;let e=this.sheet.current,t=this.content.current,n=Math.round(t.getBoundingClientRect().bottom-e.getBoundingClientRect().top),r=this.props.context===`standalone`?Math.max(0,e.offsetHeight-n):0;this.props.styles.setDynamicDeclarations(this.id,`#${this.id}`,{"--seams-drawer-rest":`${r}px`})}startClose(){this.resetGesture(),this.clearCloseTimer();let e=this.sheet.current.ownerDocument.defaultView,t=e.matchMedia(`(prefers-reduced-motion: reduce)`).matches?0:150;this.closeTimer=e.setTimeout(this.reportClosed,t)}clearCloseTimer(){this.closeTimer!==null&&(this.sheet.current.ownerDocument.defaultView.clearTimeout(this.closeTimer),this.closeTimer=null)}reportClosed=()=>{this.clearCloseTimer(),!(this.lifetime===`disposed`||this.closeReported||this.props.state.kind!==`closing`)&&(this.closeReported=!0,this.props.state.onClosed())};transitionEnd=e=>{e.target===this.sheet.current&&e.propertyName===`transform`&&this.reportClosed()};cancel=e=>{e.preventDefault(),e.stopPropagation(),this.props.state.kind===`open`&&this.props.onCancel()};backdropClick=e=>{this.props.dismissOnBackdrop!==!1&&e.target===this.dialog.current&&this.canDrag()&&this.cancel(e)};keyDown=e=>{!e.defaultPrevented&&e.key===`Escape`&&this.cancel(e)};canDrag(){return this.props.state.kind===`open`&&this.props.state.interaction===`ready`}pointerDown=e=>{if(this.clearClickSuppression(),!this.canDrag()||this.gesture.kind!==`idle`||!e.isPrimary||e.button!==0)return;let t=e.target;if(t instanceof Element&&t.closest(`a, input, textarea, select, summary, button:not(.seams-drawer-handle), [data-seams-drawer-no-drag]`))return;this.gesture={kind:`pending`,pointerId:e.pointerId,startY:e.clientY};let n=this.sheet.current.ownerDocument;n.addEventListener(`pointermove`,this.pointerMove,{passive:!1}),n.addEventListener(`pointerup`,this.pointerUp),n.addEventListener(`pointercancel`,this.pointerCancel)};pointerMove=e=>{let t=this.gesture;if(t.kind===`idle`||t.pointerId!==e.pointerId)return;let n=this.sheet.current;if(t.kind===`pending`){if(Math.abs(e.clientY-t.startY)<8||this.body.current.scrollTop>0)return;let r=n.ownerDocument.defaultView,i=new DOMMatrixReadOnly(r.getComputedStyle(n).transform).m42;t={kind:`dragging`,pointerId:t.pointerId,startY:t.startY,lastY:t.startY,startedAt:e.timeStamp,lastTime:e.timeStamp,velocity:0,rest:i,translate:i,height:n.offsetHeight},this.gesture=t,n.setPointerCapture(e.pointerId),n.classList.add(`is-dragging`)}let r=e.timeStamp-t.lastTime;r>0&&(t.velocity=(e.clientY-t.lastY)/r),t.lastY=e.clientY,t.lastTime=e.timeStamp,t.translate=c({startTranslatePx:t.rest,deltaPx:e.clientY-t.startY,restTranslatePx:t.rest,sheetHeightPx:t.height,viewportHeightPx:n.ownerDocument.defaultView.innerHeight,minimumOverpullPx:160}),this.props.styles.setDynamicDeclarations(`${this.id}-drag`,`#${this.id}`,{"--seams-drawer-drag":`${t.translate}px`}),e.preventDefault()};pointerUp=e=>{let t=this.gesture;if(t.kind===`idle`||t.pointerId!==e.pointerId)return;let n=t.kind===`dragging`&&l({velocityPxPerMs:t.velocity,totalDeltaPx:t.lastY-t.startY,durationMs:e.timeStamp-t.startedAt,translatePx:t.translate,sheetHeightPx:t.height});t.kind===`dragging`&&(this.suppressPointerClick=!0,e.preventDefault()),this.resetGesture(),n&&this.props.state.kind===`open`&&this.props.onCancel()};pointerCancel=e=>{this.gesture.kind!==`idle`&&this.gesture.pointerId===e.pointerId&&(this.gesture.kind===`dragging`&&(this.suppressPointerClick=!0),this.resetGesture())};clearClickSuppression=()=>{this.suppressPointerClick=!1};suppressDragClick=e=>{!this.suppressPointerClick||e.detail===0||(this.suppressPointerClick=!1,e.preventDefault(),e.stopPropagation())};resetGesture(){let e=this.sheet.current,t=this.gesture;this.gesture={kind:`idle`},t.kind!==`idle`&&e.hasPointerCapture(t.pointerId)&&e.releasePointerCapture(t.pointerId),e.classList.remove(`is-dragging`);let n=e.ownerDocument;n.removeEventListener(`pointermove`,this.pointerMove),n.removeEventListener(`pointerup`,this.pointerUp),n.removeEventListener(`pointercancel`,this.pointerCancel),this.props.styles.deleteDynamicRule(`${this.id}-drag`),this.lifetime===`active`&&this.scheduleMeasure()}render(){let e=this.state.settled&&this.props.state.kind===`open`,t=[`seams-confirmation-drawer`];e&&t.push(`is-open`),this.gesture.kind===`dragging`&&t.push(`is-dragging`);let r=n(`section`,{ref:this.sheet,id:this.id,class:t.join(` `),"data-context":this.props.context,tabIndex:-1,onPointerDownCapture:this.pointerDown,onClickCapture:this.suppressDragClick,onLostPointerCapture:this.pointerCancel,onTransitionEnd:this.transitionEnd,onKeyDown:this.keyDown,children:[n(`div`,{class:`seams-drawer-controls`,children:[this.props.origin&&n(`div`,{class:`seams-drawer-origin`,children:this.props.origin}),n(`button`,{type:`button`,class:`seams-drawer-handle`,"aria-label":`Dismiss confirmation`,disabled:!this.canDrag(),onClick:this.cancel,children:n(`span`,{})}),n(`button`,{type:`button`,class:`seams-drawer-close`,"aria-label":`Close`,disabled:!this.canDrag(),onClick:this.cancel,children:`×`})]}),n(`div`,{class:`seams-drawer-body`,ref:this.body,children:[this.props.errorMessage&&n(`div`,{class:`error`,children:this.props.errorMessage}),n(`div`,{class:`seams-drawer-content`,ref:this.content,children:this.props.children})]})]});return this.props.context===`wallet-iframe`?r:n(`dialog`,{class:`seams-drawer-dialog`,ref:this.dialog,"aria-label":this.props.label,onCancel:this.cancel,onClick:this.backdropClick,onClickCapture:this.suppressDragClick,onPointerDownCapture:this.clearClickSuppression,children:r})}};export{r as i,o as n,i as r,d as t};