@seams/wallet 0.26.0 → 0.28.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 (384) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
  3. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
  4. package/dist/esm/SeamsWeb/walletIframe/client/router.js +95 -38
  5. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +16 -0
  6. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
  8. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
  9. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +1 -0
  10. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +27 -4
  11. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
  12. package/dist/esm/core/authMethods/plugins.js +8 -2
  13. package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
  14. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
  15. package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
  17. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
  19. package/dist/esm/core/ui/messages.js +17 -0
  20. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +35 -22
  21. package/dist/esm/react/components/AccountMenuButton/AccountSettingsDialog.js +157 -0
  22. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +13 -1
  23. package/dist/esm/react/components/AccountMenuButton/ExternalWalletSettings.js +46 -0
  24. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +14 -2
  25. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +1 -1
  26. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +154 -5
  27. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +27 -3
  28. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +2 -2
  29. package/dist/esm/react/components/AccountMenuButton/index.js +7 -3
  30. package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
  31. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
  32. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
  33. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +13 -4
  34. package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
  35. package/dist/esm/react/context/reactLoginStateBuilders.js +20 -0
  36. package/dist/esm/react/externalNear.js +2 -6
  37. package/dist/esm/react/index.js +2 -1
  38. package/dist/esm/react/styles/styles.css +364 -8
  39. package/dist/esm/react/styles.css +1 -0
  40. package/dist/esm/react/transactionReview/boundCalls.js +31 -26
  41. package/dist/esm/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
  42. package/dist/{public/sdk/NonceCoordinator-CcD2FqXh.js → esm/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
  43. package/dist/{public/sdk/SeamsWordmark-DqiC9-sd.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  44. package/dist/esm/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  45. package/dist/esm/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
  46. package/dist/esm/sdk/appearance-token-vars-01eH9pgA.js +1 -0
  47. package/dist/{public/sdk/clientSessionPersistenceState-YvVHKRoe.js → esm/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  48. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  49. package/dist/esm/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  50. package/dist/esm/sdk/configBuilder-DpChXfDO.js +1 -0
  51. package/dist/esm/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  52. package/dist/esm/sdk/confirm-ui-em0vkd2m.js +2 -0
  53. package/dist/esm/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  54. package/dist/esm/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
  55. package/dist/esm/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  56. package/dist/{public/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  57. package/dist/esm/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  58. package/dist/{public/sdk/ecdsaDerivationExport-CkmSe0ao.js → esm/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  59. package/dist/esm/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  60. package/dist/esm/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  61. package/dist/esm/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  62. package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
  63. package/dist/esm/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  64. package/dist/esm/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
  65. package/dist/esm/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
  66. package/dist/esm/sdk/host-C51z-AxP.js +1 -0
  67. package/dist/{public/sdk/icons-DDRXJ2W1.js → esm/sdk/icons-BlMXolHv.js} +1 -1
  68. package/dist/esm/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  69. package/dist/esm/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  70. package/dist/esm/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  71. package/dist/esm/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
  72. package/dist/{public/sdk/mountExportPrivateKeySurface-B_052qyI.js → esm/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
  73. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
  74. package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  75. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  76. package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  77. package/dist/esm/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  78. package/dist/esm/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  79. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → esm/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
  80. package/dist/esm/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  81. package/dist/esm/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
  82. package/dist/esm/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
  83. package/dist/esm/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
  84. package/dist/esm/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  85. package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
  86. package/dist/esm/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  87. package/dist/{public/sdk/requireStepUpAuth-DC9LSyRI.js → esm/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  88. package/dist/esm/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
  89. package/dist/esm/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
  90. package/dist/esm/sdk/runtime-auth-ufbVur2p.js +1 -0
  91. package/dist/esm/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
  92. package/dist/{public/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → esm/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
  93. package/dist/{public/sdk/runtime-email-otp-CaxfpqKI.js → esm/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
  94. package/dist/esm/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
  95. package/dist/esm/sdk/runtime-near-59yU_3ud.js +1 -0
  96. package/dist/esm/sdk/runtime-preferences-B9qLHX8W.js +1 -0
  97. package/dist/esm/sdk/runtime-recovery-DNyzdMBj.js +1 -0
  98. package/dist/esm/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
  99. package/dist/esm/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
  100. package/dist/{public/sdk/secp256k1--vF2pJgR.js → esm/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  101. package/dist/esm/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
  102. package/dist/esm/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  103. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  104. package/dist/esm/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  105. package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
  106. package/dist/esm/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  107. package/dist/{public/sdk/signingFlow-C7fwkxPx.js → esm/sdk/signingFlow-BcetvUeS.js} +1 -1
  108. package/dist/{public/sdk/signingQueue-DvHGcaLc.js → esm/sdk/signingQueue-dMFOFOP5.js} +1 -1
  109. package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  110. package/dist/esm/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  111. package/dist/esm/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  112. package/dist/esm/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  113. package/dist/esm/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  114. package/dist/esm/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  115. package/dist/esm/sdk/tx-confirm-ui.js +181 -18
  116. package/dist/esm/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  117. package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  118. package/dist/esm/sdk/voiceid-host.js +1 -1
  119. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  120. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  121. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  122. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  123. package/dist/{public/sdk/wallet-recovery-jyfGoejZ.js → esm/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  124. package/dist/esm/sdk/wallet-ui.css +1 -1
  125. package/dist/esm/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  126. package/dist/{public/sdk/walletAuthority-DGdC9Glh.js → esm/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  127. package/dist/esm/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  128. package/dist/esm/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  129. package/dist/{public/sdk/walletOwnershipGeneration-z9NXOk-b.js → esm/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  130. package/dist/{public/sdk/walletRecoveryAdminProof-hytB9fXI.js → esm/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
  131. package/dist/{public/sdk/walletRecoveryCommit-sr8-RYvn.js → esm/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  132. package/dist/{public/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → esm/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  133. package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  134. package/dist/esm/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  135. package/dist/esm/shared-ts/src/auth/externalAuth.js +53 -0
  136. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  137. package/dist/esm/shared-ts/src/utils/errors.js +50 -2
  138. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  139. package/dist/esm/voiceid-host.js +1 -1
  140. package/dist/public/headers.manifest.json +1 -1
  141. package/dist/public/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
  142. package/dist/{esm/sdk/NonceCoordinator-CcD2FqXh.js → public/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
  143. package/dist/{esm/sdk/SeamsWordmark-DqiC9-sd.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  144. package/dist/public/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  145. package/dist/public/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
  146. package/dist/public/sdk/appearance-token-vars-01eH9pgA.js +1 -0
  147. package/dist/{esm/sdk/clientSessionPersistenceState-YvVHKRoe.js → public/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  148. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  149. package/dist/public/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  150. package/dist/public/sdk/configBuilder-DpChXfDO.js +1 -0
  151. package/dist/public/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  152. package/dist/public/sdk/confirm-ui-em0vkd2m.js +2 -0
  153. package/dist/public/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  154. package/dist/public/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
  155. package/dist/public/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  156. package/dist/{esm/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  157. package/dist/public/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  158. package/dist/{esm/sdk/ecdsaDerivationExport-CkmSe0ao.js → public/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  159. package/dist/public/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  160. package/dist/public/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  161. package/dist/public/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  162. package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
  163. package/dist/public/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  164. package/dist/public/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
  165. package/dist/public/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
  166. package/dist/public/sdk/host-C51z-AxP.js +1 -0
  167. package/dist/{esm/sdk/icons-DDRXJ2W1.js → public/sdk/icons-BlMXolHv.js} +1 -1
  168. package/dist/public/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  169. package/dist/public/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  170. package/dist/public/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  171. package/dist/public/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
  172. package/dist/{esm/sdk/mountExportPrivateKeySurface-B_052qyI.js → public/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
  173. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
  174. package/dist/public/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  175. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  176. package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  177. package/dist/public/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  178. package/dist/public/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  179. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → public/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
  180. package/dist/public/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  181. package/dist/public/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
  182. package/dist/public/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
  183. package/dist/public/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
  184. package/dist/public/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  185. package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
  186. package/dist/public/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  187. package/dist/{esm/sdk/requireStepUpAuth-DC9LSyRI.js → public/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  188. package/dist/public/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
  189. package/dist/public/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
  190. package/dist/public/sdk/runtime-auth-ufbVur2p.js +1 -0
  191. package/dist/public/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
  192. package/dist/{esm/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → public/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
  193. package/dist/{esm/sdk/runtime-email-otp-CaxfpqKI.js → public/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
  194. package/dist/public/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
  195. package/dist/public/sdk/runtime-near-59yU_3ud.js +1 -0
  196. package/dist/public/sdk/runtime-preferences-B9qLHX8W.js +1 -0
  197. package/dist/public/sdk/runtime-recovery-DNyzdMBj.js +1 -0
  198. package/dist/public/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
  199. package/dist/public/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
  200. package/dist/{esm/sdk/secp256k1--vF2pJgR.js → public/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  201. package/dist/public/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
  202. package/dist/public/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  203. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  204. package/dist/public/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  205. package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
  206. package/dist/public/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  207. package/dist/{esm/sdk/signingFlow-C7fwkxPx.js → public/sdk/signingFlow-BcetvUeS.js} +1 -1
  208. package/dist/{esm/sdk/signingQueue-DvHGcaLc.js → public/sdk/signingQueue-dMFOFOP5.js} +1 -1
  209. package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  210. package/dist/public/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  211. package/dist/public/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  212. package/dist/public/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  213. package/dist/public/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  214. package/dist/public/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  215. package/dist/public/sdk/tx-confirm-ui.js +181 -18
  216. package/dist/public/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  217. package/dist/public/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  218. package/dist/public/sdk/voiceid-host.js +1 -1
  219. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  220. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  221. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  222. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  223. package/dist/{esm/sdk/wallet-recovery-jyfGoejZ.js → public/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  224. package/dist/public/sdk/wallet-ui.css +1 -1
  225. package/dist/public/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  226. package/dist/{esm/sdk/walletAuthority-DGdC9Glh.js → public/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  227. package/dist/public/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  228. package/dist/public/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  229. package/dist/{esm/sdk/walletOwnershipGeneration-z9NXOk-b.js → public/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  230. package/dist/{esm/sdk/walletRecoveryAdminProof-hytB9fXI.js → public/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
  231. package/dist/{esm/sdk/walletRecoveryCommit-sr8-RYvn.js → public/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  232. package/dist/{esm/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → public/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  233. package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  234. package/dist/public/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  235. package/dist/public/wallet-assets.manifest.json +275 -251
  236. package/dist/public/wallet-service/index.html +4 -4
  237. package/dist/types/shared-ts/src/auth/externalAuth.d.ts +84 -0
  238. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -1
  239. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  240. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +11 -0
  241. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
  242. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +4 -2
  243. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +5 -2
  244. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalAuth.d.ts +29 -0
  245. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +1 -1
  246. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/sessionObserver.d.ts +1 -0
  247. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
  248. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -3
  249. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
  250. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +2 -0
  251. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
  252. package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
  253. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
  254. package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
  255. package/dist/types/wallet/src/core/types/seams.d.ts +29 -9
  256. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  257. package/dist/types/wallet/src/index.d.ts +1 -0
  258. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
  259. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountSettingsDialog.d.ts +10 -0
  260. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -2
  261. package/dist/types/wallet/src/react/components/AccountMenuButton/ExternalWalletSettings.d.ts +10 -0
  262. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -2
  263. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +1 -0
  264. package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +2 -2
  265. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
  266. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +4 -3
  267. package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
  268. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
  269. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
  270. package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
  271. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
  272. package/dist/types/wallet/src/react/context/reactLoginStateBuilders.d.ts +1 -1
  273. package/dist/types/wallet/src/react/index.d.ts +2 -0
  274. package/dist/types/wallet/src/react/types.d.ts +13 -3
  275. package/dist/types/wallet/src/voiceid-host.d.ts +2 -2
  276. package/package.json +1 -1
  277. package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +0 -66
  278. package/dist/esm/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  279. package/dist/esm/sdk/configBuilder-CSwJrmcR.js +0 -1
  280. package/dist/esm/sdk/confirm-ui-BpqwuMSl.js +0 -2
  281. package/dist/esm/sdk/errors-DLUmUo9m.js +0 -1
  282. package/dist/esm/sdk/host-aTcpYE27.js +0 -1
  283. package/dist/esm/sdk/registrationIntent-BVPp0k0k.js +0 -1
  284. package/dist/esm/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
  285. package/dist/esm/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  286. package/dist/esm/sdk/runtime-near-fas7U0MC.js +0 -1
  287. package/dist/esm/sdk/runtime-preferences-7-f34-by.js +0 -1
  288. package/dist/esm/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  289. package/dist/esm/sdk/runtimeContext-DF8MdfXl.js +0 -6
  290. package/dist/esm/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  291. package/dist/esm/sdk/signNear-DMzOU4dX.js +0 -1
  292. package/dist/esm/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  293. package/dist/esm/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  294. package/dist/public/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  295. package/dist/public/sdk/configBuilder-CSwJrmcR.js +0 -1
  296. package/dist/public/sdk/confirm-ui-BpqwuMSl.js +0 -2
  297. package/dist/public/sdk/errors-DLUmUo9m.js +0 -1
  298. package/dist/public/sdk/host-aTcpYE27.js +0 -1
  299. package/dist/public/sdk/registrationIntent-BVPp0k0k.js +0 -1
  300. package/dist/public/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
  301. package/dist/public/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  302. package/dist/public/sdk/runtime-near-fas7U0MC.js +0 -1
  303. package/dist/public/sdk/runtime-preferences-7-f34-by.js +0 -1
  304. package/dist/public/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  305. package/dist/public/sdk/runtimeContext-DF8MdfXl.js +0 -6
  306. package/dist/public/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  307. package/dist/public/sdk/signNear-DMzOU4dX.js +0 -1
  308. package/dist/public/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  309. package/dist/public/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  310. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +0 -9
  311. /package/dist/esm/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  312. /package/dist/esm/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  313. /package/dist/esm/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  314. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  315. /package/dist/esm/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  316. /package/dist/esm/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  317. /package/dist/esm/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  318. /package/dist/esm/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  319. /package/dist/esm/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  320. /package/dist/esm/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  321. /package/dist/esm/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  322. /package/dist/esm/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  323. /package/dist/esm/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  324. /package/dist/esm/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  325. /package/dist/esm/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  326. /package/dist/esm/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  327. /package/dist/esm/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  328. /package/dist/esm/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  329. /package/dist/esm/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  330. /package/dist/esm/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  331. /package/dist/esm/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  332. /package/dist/esm/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  333. /package/dist/esm/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  334. /package/dist/esm/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  335. /package/dist/esm/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  336. /package/dist/esm/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  337. /package/dist/esm/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  338. /package/dist/esm/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  339. /package/dist/esm/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  340. /package/dist/esm/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  341. /package/dist/esm/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  342. /package/dist/esm/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  343. /package/dist/esm/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  344. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  345. /package/dist/esm/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  346. /package/dist/esm/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  347. /package/dist/esm/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
  348. /package/dist/public/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  349. /package/dist/public/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  350. /package/dist/public/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  351. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  352. /package/dist/public/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  353. /package/dist/public/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  354. /package/dist/public/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  355. /package/dist/public/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  356. /package/dist/public/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  357. /package/dist/public/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  358. /package/dist/public/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  359. /package/dist/public/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  360. /package/dist/public/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  361. /package/dist/public/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  362. /package/dist/public/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  363. /package/dist/public/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  364. /package/dist/public/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  365. /package/dist/public/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  366. /package/dist/public/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  367. /package/dist/public/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  368. /package/dist/public/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  369. /package/dist/public/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  370. /package/dist/public/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  371. /package/dist/public/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  372. /package/dist/public/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  373. /package/dist/public/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  374. /package/dist/public/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  375. /package/dist/public/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  376. /package/dist/public/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  377. /package/dist/public/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  378. /package/dist/public/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  379. /package/dist/public/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  380. /package/dist/public/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  381. /package/dist/public/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  382. /package/dist/public/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  383. /package/dist/public/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  384. /package/dist/public/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
@@ -1 +1 @@
1
- 5e18387096278925c5c1f4c69f379b59f0eab2e662d419fe575bee269eb216df
1
+ ea177740b9a568b4deea722dc18528d4cbfd4098970381660360b3bd1003291b
@@ -1,5 +1,6 @@
1
1
  import { CAPABILITY_KINDS, NEAR_ED25519_MPC_OPERATION_KINDS } from "../../shared-ts/src/authorization/capabilityKinds.js";
2
2
  import { toError } from "../../shared-ts/src/utils/errors.js";
3
+ import { nearTransactionFailure } from "../../core/signingEngine/nearTransactionSubmission.js";
3
4
  import { requireBrowserCapabilityOperation } from "./capabilitySelection.js";
4
5
  import { accountExists } from "../../core/rpcClients/near/accountExists.js";
5
6
  import { delegateRelayerAuthFromConfigs, sendDelegateAction } from "../operations/near/delegateAction.js";
@@ -23,16 +24,21 @@ var NearSigner = class {
23
24
  this.deps = deps;
24
25
  }
25
26
  async signAndSendTransaction(rawArgs) {
26
- const args = {
27
+ let subject;
28
+ try {
29
+ subject = await this.deps.currentWallet.nearSubject(rawArgs);
30
+ requireBrowserCapabilityOperation(this.deps.configs, {
31
+ capabilityKind: CAPABILITY_KINDS.nearEd25519MpcSigning,
32
+ operationKind: NEAR_ED25519_MPC_OPERATION_KINDS.signTransaction
33
+ });
34
+ } catch (error) {
35
+ return nearTransactionFailure(error, "not_submitted");
36
+ }
37
+ return this.deps.commands.signAndSendTransaction({
27
38
  ...rawArgs,
28
- ...await this.deps.currentWallet.nearSubject(rawArgs),
39
+ ...subject,
29
40
  options: rawArgs.options ?? {}
30
- };
31
- requireBrowserCapabilityOperation(this.deps.configs, {
32
- capabilityKind: CAPABILITY_KINDS.nearEd25519MpcSigning,
33
- operationKind: NEAR_ED25519_MPC_OPERATION_KINDS.signTransaction
34
41
  });
35
- return await this.deps.commands.signAndSendTransaction(args);
36
42
  }
37
43
  async signTransaction(rawArgs) {
38
44
  const args = {
@@ -47,12 +53,17 @@ var NearSigner = class {
47
53
  return await this.deps.commands.signTransaction(args);
48
54
  }
49
55
  async sendTransaction(rawArgs) {
50
- const args = {
56
+ let subject;
57
+ try {
58
+ subject = await this.deps.currentWallet.nearSubject(rawArgs);
59
+ } catch (error) {
60
+ return nearTransactionFailure(error, "not_submitted");
61
+ }
62
+ return this.deps.commands.sendTransaction({
51
63
  ...rawArgs,
52
- ...await this.deps.currentWallet.nearSubject(rawArgs),
64
+ ...subject,
53
65
  options: rawArgs.options ?? {}
54
- };
55
- return await this.deps.commands.sendTransaction(args);
66
+ });
56
67
  }
57
68
  async signDelegateAction(rawArgs) {
58
69
  const args = {
@@ -1,4 +1,5 @@
1
1
  import { toError } from "../../../shared-ts/src/utils/errors.js";
2
+ import { nearTransactionFailure, notifyNearTransactionResult } from "../../../core/signingEngine/nearTransactionSubmission.js";
2
3
  //#region src/SeamsWeb/walletIframe/client/nearCommands.ts
3
4
  function createApplicationNearCommands(walletIframe, beforeSigning, transactionDispatch) {
4
5
  const commands = new ApplicationNearCommands(walletIframe, beforeSigning, transactionDispatch);
@@ -31,13 +32,12 @@ var ApplicationNearCommands = class {
31
32
  transaction,
32
33
  options: args.options
33
34
  }, this.transactionDispatch);
34
- await args.options?.afterCall?.(true, result);
35
+ await notifyNearTransactionResult(args.options, result);
35
36
  return result;
36
37
  } catch (error) {
37
- const e = toError(error);
38
- await args.options?.onError?.(e);
39
- await args.options?.afterCall?.(false, void 0, e);
40
- throw e;
38
+ const result = nearTransactionFailure(error, "not_submitted");
39
+ await notifyNearTransactionResult(args.options, result);
40
+ return result;
41
41
  }
42
42
  }
43
43
  async signTransaction(args) {
@@ -83,13 +83,12 @@ var ApplicationNearCommands = class {
83
83
  ...args.options && "waitUntil" in args.options ? { waitUntil: args.options.waitUntil } : {}
84
84
  }
85
85
  });
86
- await args.options?.afterCall?.(true, result);
86
+ await notifyNearTransactionResult(args.options, result);
87
87
  return result;
88
88
  } catch (error) {
89
- const e = toError(error);
90
- await args.options?.onError?.(e);
91
- await args.options?.afterCall?.(false, void 0, e);
92
- throw e;
89
+ const result = nearTransactionFailure(error, "not_submitted");
90
+ await notifyNearTransactionResult(args.options, result);
91
+ return result;
93
92
  }
94
93
  }
95
94
  async signDelegateAction(args) {
@@ -3,6 +3,7 @@ import { extractBorshBytesFromPlainSignedTx, isBoolean, isObject, isPlainSignedT
3
3
  import { parseMpcMaterialActivationRef } from "../../../shared-ts/src/utils/domainIds.js";
4
4
  import { createIframePlacementCommands } from "./placementCommands.js";
5
5
  import { toError } from "../../../shared-ts/src/utils/errors.js";
6
+ import { NearTransactionRequest, parseNearTransactionResult } from "../../../core/signingEngine/nearTransactionSubmission.js";
6
7
  import { secureRandomBase36 } from "../../../shared-ts/src/utils/secureRandomId.js";
7
8
  import { SignedTransaction } from "../../../core/rpcClients/near/NearClient.js";
8
9
  import { thresholdEcdsaChainTargetsEqual, toWalletId } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
@@ -1902,6 +1903,44 @@ var WalletIframeRouter = class {
1902
1903
  }
1903
1904
  }, { timeout: "interactive" })).result;
1904
1905
  }
1906
+ async authenticate(input) {
1907
+ return (await this.post({
1908
+ type: "PM_EXTERNAL_AUTH",
1909
+ payload: {
1910
+ action: "authenticate",
1911
+ input
1912
+ }
1913
+ })).result;
1914
+ }
1915
+ async prepareExternalAuth(walletId) {
1916
+ return (await this.post({
1917
+ type: "PM_EXTERNAL_AUTH",
1918
+ payload: {
1919
+ action: "prepare",
1920
+ walletId
1921
+ }
1922
+ })).result;
1923
+ }
1924
+ async removeExternalAuth(input) {
1925
+ return (await this.post({
1926
+ type: "PM_EXTERNAL_AUTH",
1927
+ payload: {
1928
+ action: "unlink",
1929
+ walletId: input.walletId,
1930
+ associationId: input.associationId
1931
+ }
1932
+ })).result;
1933
+ }
1934
+ async associateExternalAuth(input) {
1935
+ return (await this.post({
1936
+ type: "PM_EXTERNAL_AUTH",
1937
+ payload: {
1938
+ action: "associate",
1939
+ walletId: input.walletId,
1940
+ idToken: input.idToken
1941
+ }
1942
+ })).result;
1943
+ }
1905
1944
  async getWalletSession(walletId) {
1906
1945
  const expectedWalletId = walletId === void 0 ? void 0 : parseRequestedWalletId(walletId);
1907
1946
  if (!this.state.ready || !this.state.port) await this.init();
@@ -2463,31 +2502,39 @@ var WalletIframeRouter = class {
2463
2502
  };
2464
2503
  }
2465
2504
  async signAndSendTransaction(payload, transactionDispatch = { kind: "ordinary" }) {
2466
- if (transactionDispatch.kind === "reviewed") payload = {
2467
- ...payload,
2468
- options: {
2469
- ...payload.options,
2470
- confirmationConfig: transactionDispatch.reservation.confirmationConfig
2471
- }
2472
- };
2473
- const { options } = payload;
2474
- const safeOptions = {
2475
- waitUntil: options.waitUntil,
2476
- ...options.voiceId !== void 0 ? { voiceId: options.voiceId } : {},
2477
- confirmationConfig: options.confirmationConfig,
2478
- ...typeof options.signerSlot === "number" ? { signerSlot: options.signerSlot } : {},
2479
- ...options.confirmerText ? { confirmerText: options.confirmerText } : {}
2480
- };
2481
- return (await this.post({
2482
- type: "PM_SIGN_AND_SEND_TX",
2483
- payload: {
2484
- walletId: payload.walletId,
2485
- nearAccountId: payload.nearAccountId,
2486
- transaction: payload.transaction,
2487
- options: safeOptions
2488
- },
2489
- options: { onProgress: this.wrapOnEvent(options?.onEvent, isSigningFlowEvent) }
2490
- }, { transactionDispatch })).result;
2505
+ const request = new NearTransactionRequest({ kind: "sign_and_send" });
2506
+ try {
2507
+ if (transactionDispatch.kind === "reviewed") payload = {
2508
+ ...payload,
2509
+ options: {
2510
+ ...payload.options,
2511
+ confirmationConfig: transactionDispatch.reservation.confirmationConfig
2512
+ }
2513
+ };
2514
+ const { options } = payload;
2515
+ const safeOptions = {
2516
+ waitUntil: options.waitUntil,
2517
+ ...options.voiceId !== void 0 ? { voiceId: options.voiceId } : {},
2518
+ confirmationConfig: options.confirmationConfig,
2519
+ ...typeof options.signerSlot === "number" ? { signerSlot: options.signerSlot } : {},
2520
+ ...options.confirmerText ? { confirmerText: options.confirmerText } : {}
2521
+ };
2522
+ return parseNearTransactionResult((await this.post({
2523
+ type: "PM_SIGN_AND_SEND_TX",
2524
+ payload: {
2525
+ walletId: payload.walletId,
2526
+ nearAccountId: payload.nearAccountId,
2527
+ transaction: payload.transaction,
2528
+ options: safeOptions
2529
+ },
2530
+ options: { onProgress: this.wrapOnEvent(options?.onEvent, isSigningFlowEvent) }
2531
+ }, {
2532
+ transactionDispatch,
2533
+ onDispatched: request.dispatched
2534
+ })).result);
2535
+ } catch (error) {
2536
+ return request.failed(error);
2537
+ }
2491
2538
  }
2492
2539
  async hasPasskeyCredential(walletId) {
2493
2540
  return !!(await this.post({
@@ -2518,18 +2565,26 @@ var WalletIframeRouter = class {
2518
2565
  })).result);
2519
2566
  }
2520
2567
  async sendTransaction(args) {
2521
- const { options } = args;
2522
- const safeOptions = options ? { waitUntil: options.waitUntil } : void 0;
2523
- return (await this.post({
2524
- type: "PM_SEND_TRANSACTION",
2525
- payload: {
2526
- walletId: args.walletId,
2527
- nearAccountId: args.nearAccountId,
2528
- signedTransaction: args.signedTransaction,
2529
- options: safeOptions
2530
- },
2531
- options: { onProgress: this.wrapOnEvent(options?.onEvent, isSigningFlowEvent) }
2532
- })).result;
2568
+ const request = new NearTransactionRequest({
2569
+ kind: "send",
2570
+ transactionId: args.signedTransaction.transactionHash
2571
+ });
2572
+ try {
2573
+ const { options } = args;
2574
+ const safeOptions = options ? { waitUntil: options.waitUntil } : void 0;
2575
+ return parseNearTransactionResult((await this.post({
2576
+ type: "PM_SEND_TRANSACTION",
2577
+ payload: {
2578
+ walletId: args.walletId,
2579
+ nearAccountId: args.nearAccountId,
2580
+ signedTransaction: args.signedTransaction,
2581
+ options: safeOptions
2582
+ },
2583
+ options: { onProgress: this.wrapOnEvent(options?.onEvent, isSigningFlowEvent) }
2584
+ }, { onDispatched: request.dispatched })).result);
2585
+ } catch (error) {
2586
+ return request.failed(error);
2587
+ }
2533
2588
  }
2534
2589
  async resolveExactKeyExportLane(input) {
2535
2590
  return parseResolveExactKeyExportLaneResult((await this.post({
@@ -2711,7 +2766,7 @@ var WalletIframeRouter = class {
2711
2766
  requestId,
2712
2767
  payload
2713
2768
  });
2714
- if (!this.reviews.has(requestId) && isWalletFlowEvent(payload) && payload.status === "cancelled") {
2769
+ if (!this.reviews.has(requestId) && this.state.pending.get(requestId)?.requestType !== "PM_SIGN_AND_SEND_TX" && this.state.pending.get(requestId)?.requestType !== "PM_SEND_TRANSACTION" && isWalletFlowEvent(payload) && payload.status === "cancelled") {
2715
2770
  this.settlePendingRequestCancellation(requestId, false);
2716
2771
  this.sendBestEffortCancel(requestId);
2717
2772
  return;
@@ -2902,6 +2957,7 @@ var WalletIframeRouter = class {
2902
2957
  options: void 0
2903
2958
  };
2904
2959
  this.state.port.postMessage(serializableFull);
2960
+ postOpts?.onDispatched?.();
2905
2961
  } catch (err) {
2906
2962
  this.state.pending.delete(requestId);
2907
2963
  window.clearTimeout(timer);
@@ -3055,6 +3111,7 @@ function normalizeSignedTransactionResult(result) {
3055
3111
  transaction: signedTransaction.transaction,
3056
3112
  signature: signedTransaction.signature,
3057
3113
  borsh_bytes: extractBorshBytesFromPlainSignedTx(signedTransaction),
3114
+ transactionHash: signedTransaction.transactionHash,
3058
3115
  ...nonceLease ? { nonceLease } : {},
3059
3116
  ...serverDispatch ? { serverDispatch } : {}
3060
3117
  })
@@ -3,6 +3,10 @@ import { walletIframeUnlockRequestFromLoginHooks } from "../shared/unlockOptions
3
3
  //#region src/SeamsWeb/walletIframe/client/sessionCommands.ts
4
4
  function createApplicationSessionCommands(walletIframe) {
5
5
  return {
6
+ authenticate: authenticate.bind(null, walletIframe),
7
+ prepareExternalAuth: prepareExternalAuth.bind(null, walletIframe),
8
+ associateExternalAuth: associateExternalAuth.bind(null, walletIframe),
9
+ removeExternalAuth: removeExternalAuth.bind(null, walletIframe),
6
10
  unlock: unlock.bind(null, walletIframe),
7
11
  unlockWithAuthMethod: unlockWithAuthMethod.bind(null, walletIframe),
8
12
  lock: lock.bind(null, walletIframe),
@@ -11,6 +15,18 @@ function createApplicationSessionCommands(walletIframe) {
11
15
  hasPasskey: hasPasskey.bind(null, walletIframe)
12
16
  };
13
17
  }
18
+ async function authenticate(walletIframe, input) {
19
+ return (await walletIframe.requireRouter()).authenticate(input);
20
+ }
21
+ async function prepareExternalAuth(walletIframe, walletId) {
22
+ return (await walletIframe.requireRouter()).prepareExternalAuth(walletId);
23
+ }
24
+ async function associateExternalAuth(walletIframe, input) {
25
+ return (await walletIframe.requireRouter()).associateExternalAuth(input);
26
+ }
27
+ async function removeExternalAuth(walletIframe, input) {
28
+ return (await walletIframe.requireRouter()).removeExternalAuth(input);
29
+ }
14
30
  async function unlock(walletIframe, walletId, options) {
15
31
  const resolvedWalletId = String(walletId || "").trim();
16
32
  if (!resolvedWalletId) throw new Error("unlock requires walletId");
@@ -23,6 +23,7 @@ function sizeFromEntryOrElement(element, entry) {
23
23
  function sizeForReporter(options, entry) {
24
24
  if (options.kind === "request_scroll_surface") {
25
25
  const rect = options.element.getBoundingClientRect();
26
+ if (options.element.classList.contains("seams-confirm-surface-pinned")) return sizeFromRect(rect);
26
27
  return sizeFromRect({
27
28
  width: Math.max(options.element.scrollWidth, rect.width),
28
29
  height: Math.max(options.element.scrollHeight, rect.height)
@@ -753,7 +753,7 @@ var AuthMenuSurface = class extends Component {
753
753
  "data-auth-menu-provider": "google",
754
754
  disabled: !isAuthMenuGoogleActionReady(viewModel),
755
755
  onClick: this.onGoogleClick,
756
- children: [googleIcon(), /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { copy: viewModel.mode === "login" ? "Email code (Google)" : "Continue with Google" }) })]
756
+ children: [googleIcon(), /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(WalletText, { copy: viewModel.mode === "login" ? "Unlock with email code" : "Continue with Google" }) })]
757
757
  }) : null,
758
758
  viewModel.mode === "login" && viewModel.accountOptions.some(voiceAvailableForWallet.bind(null, selectedLoginAccount(viewModel)?.walletId)) ? /* @__PURE__ */ jsxs("button", {
759
759
  type: "button",
@@ -24,6 +24,7 @@ function authMenuStyles(document) {
24
24
  var MountedAuthMenuSurface = class {
25
25
  element;
26
26
  styles;
27
+ entrance = [];
27
28
  state;
28
29
  constructor(input) {
29
30
  const document = input.parent.ownerDocument;
@@ -39,11 +40,36 @@ var MountedAuthMenuSurface = class {
39
40
  input.parent.appendChild(this.element);
40
41
  try {
41
42
  this.update(input.viewModel);
43
+ this.animateEntrance(input.initialHeightCssPx);
42
44
  } catch (error) {
43
45
  this.dispose();
44
46
  throw error;
45
47
  }
46
48
  }
49
+ animateEntrance(initialHeightCssPx) {
50
+ if (initialHeightCssPx === void 0 || window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
51
+ const card = this.element.querySelector(".auth-menu-root");
52
+ if (!card) return;
53
+ const height = card.getBoundingClientRect().height;
54
+ this.entrance.push(card.animate([{
55
+ height: `${initialHeightCssPx}px`,
56
+ minHeight: "0px",
57
+ overflow: "hidden"
58
+ }, {
59
+ height: `${height}px`,
60
+ minHeight: "0px",
61
+ overflow: "hidden"
62
+ }], {
63
+ duration: 200,
64
+ easing: "cubic-bezier(0.32, 0.72, 0, 1)"
65
+ }));
66
+ for (const child of card.children) this.entrance.push(child.animate([{ opacity: 0 }, { opacity: 1 }], {
67
+ duration: 140,
68
+ delay: 60,
69
+ fill: "backwards",
70
+ easing: "cubic-bezier(0.25, 1, 0.5, 1)"
71
+ }));
72
+ }
47
73
  update(viewModel) {
48
74
  if (this.state.kind === "disposed") return;
49
75
  this.element.lang = viewModel.appearance.locale ?? "en";
@@ -59,6 +85,8 @@ var MountedAuthMenuSurface = class {
59
85
  dispose() {
60
86
  if (this.state.kind === "disposed") return;
61
87
  this.state = { kind: "disposed" };
88
+ for (const animation of this.entrance) animation.cancel();
89
+ this.entrance = [];
62
90
  this.element.removeEventListener("cancel", this.cancel);
63
91
  render(null, this.element);
64
92
  this.styles.deleteDynamicRule(this.element.id + "-appearance");
@@ -44,6 +44,7 @@ function walletForHostRequest(request, currentWalletId) {
44
44
  case "PM_REGISTER_WALLET":
45
45
  case "PM_UNLOCK":
46
46
  case "PM_UNLOCK_AUTH_METHOD":
47
+ case "PM_EXTERNAL_AUTH":
47
48
  case "PM_LOCK":
48
49
  case "PM_LOCK_EXACT_WALLET_SESSION":
49
50
  case "PM_GET_LAST_WALLET_MOVE_REQUEST":
@@ -6,6 +6,7 @@ import "../../../shared-ts/src/device-linking/activeWalletSession.js";
6
6
  import { parseWalletAuthAuthorityRef } from "../../../shared-ts/src/utils/walletAuthAuthority.js";
7
7
  import { toAccountId } from "../../../core/types/accountIds.js";
8
8
  import { isWalletAuthMethod } from "../../../shared-ts/src/utils/signerDomain.js";
9
+ import { parseExternalWalletAuthentication, parseExternalWalletSettings } from "../../../shared-ts/src/auth/externalAuth.js";
9
10
  import { NonceCoordinatorDegradationReason, NonceCoordinatorFallback, NonceLeaseState } from "../../../core/signingEngine/nonce/nonceTypes.js";
10
11
  import { parseEcdsaThresholdKeyId } from "../../../core/signingEngine/session/keyMaterialBrands.js";
11
12
  import { parseNearEd25519SigningKeyId } from "../../../shared-ts/src/utils/registrationIds.js";
@@ -89,12 +90,33 @@ function parseWalletIframeExactSessionState(value) {
89
90
  function parseWalletSessionFromBoundary(value, expectedWalletId) {
90
91
  if (value === null || typeof value !== "object" || Array.isArray(value)) throw new Error("Wallet Session must be an object");
91
92
  if (Reflect.get(value, "reusableWalletSession") !== void 0) throw new Error("Wallet Session contains removed reusable-session fields");
92
- const parsed = {
93
- appIdentity: parseWalletSessionAppIdentity(Reflect.get(value, "appIdentity")),
94
- authentication: parseWalletAuthenticationState(Reflect.get(value, "authentication")),
95
- capabilityProjection: parseWalletSessionCapabilityProjection(Reflect.get(value, "capabilityProjection")),
93
+ const appIdentity = parseWalletSessionAppIdentity(Reflect.get(value, "appIdentity"));
94
+ const authentication = parseWalletAuthenticationState(Reflect.get(value, "authentication"));
95
+ const capabilityProjection = parseWalletSessionCapabilityProjection(Reflect.get(value, "capabilityProjection"));
96
+ const common = {
97
+ appIdentity,
96
98
  nonceDiagnostics: parseNullableNonceDiagnostics(Reflect.get(value, "nonceDiagnostics"))
97
99
  };
100
+ let parsed;
101
+ if (authentication.kind === "external_authenticated") {
102
+ if (appIdentity.kind !== "resolved") throw new Error("External authentication requires a resolved wallet");
103
+ if (common.nonceDiagnostics !== null) throw new Error("External authentication has no signing runtime");
104
+ if (capabilityProjection.kind !== "not_requested") throw new Error("External authentication cannot grant signing capabilities");
105
+ const externalSettings = parseExternalWalletSettings(Reflect.get(value, "externalSettings"));
106
+ if (externalSettings.authentication.sessionId !== authentication.sessionId || externalSettings.authentication.walletId !== authentication.walletId || externalSettings.authentication.associationId !== authentication.associationId || externalSettings.authentication.environmentId !== authentication.environmentId || externalSettings.authentication.expiresAtMs !== authentication.expiresAtMs) throw new Error("External settings identity mismatch");
107
+ parsed = {
108
+ appIdentity,
109
+ nonceDiagnostics: common.nonceDiagnostics,
110
+ authentication,
111
+ capabilityProjection,
112
+ externalSettings
113
+ };
114
+ } else parsed = {
115
+ appIdentity: common.appIdentity,
116
+ nonceDiagnostics: common.nonceDiagnostics,
117
+ authentication,
118
+ capabilityProjection
119
+ };
98
120
  const expected = expectedWalletId === void 0 ? null : requireWalletId(expectedWalletId);
99
121
  const canonicalWalletId = walletSessionCanonicalWalletId(parsed);
100
122
  if (expected !== null && canonicalWalletId === null) throw new Error("Wallet iframe Wallet Session omitted the requested wallet identity");
@@ -106,6 +128,7 @@ function parseWalletAuthenticationState(value) {
106
128
  if (value === null || typeof value !== "object" || Array.isArray(value)) throw new Error("Wallet Session authentication must be an object");
107
129
  switch (Reflect.get(value, "kind")) {
108
130
  case "signed_out": return { kind: "signed_out" };
131
+ case "external_authenticated": return parseExternalWalletAuthentication(value);
109
132
  case "authenticated": {
110
133
  const authMethod = Reflect.get(value, "authMethod");
111
134
  if (!isWalletAuthMethod(authMethod)) throw new Error("Wallet Session authentication method is invalid");
@@ -203,6 +203,7 @@ function parseHostedAuthMenuOpenRequest(value) {
203
203
  "kind",
204
204
  "authMenuSessionId",
205
205
  "initialMode",
206
+ "initialHeightCssPx",
206
207
  "loginTarget",
207
208
  "registrationAccountInput",
208
209
  "showRegistrationInput",
@@ -212,6 +213,8 @@ function parseHostedAuthMenuOpenRequest(value) {
212
213
  ]) || !hasOnlyHostedAuthMenuCopyKeys(record.copy)) return null;
213
214
  const authMenuSessionId = hostedAuthMenuSessionIdFromBoundary(record.authMenuSessionId);
214
215
  const initialMode = parseAuthMenuMode(record.initialMode);
216
+ const initialHeightCssPx = record.initialHeightCssPx;
217
+ if (initialHeightCssPx !== void 0 && (typeof initialHeightCssPx !== "number" || !Number.isFinite(initialHeightCssPx) || initialHeightCssPx <= 0)) return null;
215
218
  const loginTargetRecord = recordFromBoundary(record.loginTarget);
216
219
  const loginWalletId = loginTargetRecord?.kind === "wallet" || loginTargetRecord?.kind === "wallet_sync" ? parseWalletId(loginTargetRecord.walletId) : null;
217
220
  const loginTarget = loginTargetRecord?.kind === "discoverable" && hasOnlyKeys(loginTargetRecord, ["kind"]) ? { kind: "discoverable" } : loginTargetRecord?.kind === "wallet" && hasOnlyKeys(loginTargetRecord, ["kind", "walletId"]) && loginWalletId?.ok ? {
@@ -228,6 +231,7 @@ function parseHostedAuthMenuOpenRequest(value) {
228
231
  kind: "hosted_auth_menu_open_v1",
229
232
  authMenuSessionId,
230
233
  initialMode,
234
+ initialHeightCssPx,
231
235
  loginTarget,
232
236
  registrationAccountInput,
233
237
  showRegistrationInput: record.showRegistrationInput,
@@ -242,6 +246,7 @@ function buildHostedAuthMenuOpenRequest(args) {
242
246
  if (!argsRecord || !hasOnlyKeys(argsRecord, [
243
247
  "authMenuSessionId",
244
248
  "initialMode",
249
+ "initialHeightCssPx",
245
250
  "loginTarget",
246
251
  "registrationAccountInput",
247
252
  "showRegistrationInput",
@@ -255,6 +260,7 @@ function buildHostedAuthMenuOpenRequest(args) {
255
260
  kind: "hosted_auth_menu_open_v1",
256
261
  authMenuSessionId: parsedSessionId,
257
262
  initialMode: args.initialMode ?? "login",
263
+ initialHeightCssPx: args.initialHeightCssPx,
258
264
  loginTarget: args.loginTarget ?? { kind: "discoverable" },
259
265
  registrationAccountInput: args.registrationAccountInput ?? "implicit_wallet",
260
266
  showRegistrationInput: args.showRegistrationInput ?? false,
@@ -464,7 +470,7 @@ function parseHostedAuthMenuOutcome(value) {
464
470
  default: return null;
465
471
  }
466
472
  }
467
- const WALLET_PROTOCOL_VERSION = "17.0.0";
473
+ const WALLET_PROTOCOL_VERSION = "18.0.0";
468
474
  const WALLET_IFRAME_PROTOCOL_VERSION_MISMATCH = "WALLET_IFRAME_PROTOCOL_VERSION_MISMATCH";
469
475
  const HOSTED_WALLET_REDEMPTION_PAYLOAD_FIELDS = [
470
476
  "home",
@@ -5,12 +5,18 @@ function parseWalletAuthMethodPlugins(value) {
5
5
  const plugins = [];
6
6
  const seen = /* @__PURE__ */ new Set();
7
7
  for (const candidate of value) {
8
- if (!isPlainObject(candidate) || Object.keys(candidate).length !== 1 || candidate.kind !== "voiceid" || seen.has(candidate.kind)) throw new Error("Unsupported or duplicate wallet auth method plugin.");
8
+ if (!isPlainObject(candidate) || Object.keys(candidate).some(unknownVoiceIdOption) || candidate.kind !== "voiceid" || candidate.transcriptionModel !== void 0 && candidate.transcriptionModel !== "aurora" && candidate.transcriptionModel !== "citrinet" || seen.has(candidate.kind)) throw new Error("Unsupported or duplicate wallet auth method plugin.");
9
9
  seen.add(candidate.kind);
10
- plugins.push({ kind: "voiceid" });
10
+ plugins.push({
11
+ kind: "voiceid",
12
+ transcriptionModel: candidate.transcriptionModel ?? "citrinet"
13
+ });
11
14
  }
12
15
  return plugins;
13
16
  }
17
+ function unknownVoiceIdOption(key) {
18
+ return key !== "kind" && key !== "transcriptionModel";
19
+ }
14
20
  //#endregion
15
21
  export { parseWalletAuthMethodPlugins };
16
22
 
@@ -1,13 +1,20 @@
1
+ import { requireCanonicalString } from "../../../shared-ts/src/utils/validation.js";
1
2
  import { errorMessage } from "../../../shared-ts/src/utils/errors.js";
2
3
  import { NearJsonRpcClient, SignedTransaction as SignedTransaction$1 } from "../../../shared-ts/src/near/nearClient.js";
3
4
  import { NearRpcError } from "./NearRpcError.js";
4
5
  //#region src/core/rpcClients/near/NearClient.ts
5
6
  var SignedTransaction = class SignedTransaction extends SignedTransaction$1 {
7
+ transactionHash;
8
+ constructor(input) {
9
+ super(input);
10
+ this.transactionHash = input.transactionHash;
11
+ }
6
12
  static fromPlain(input) {
7
13
  return new SignedTransaction({
8
14
  transaction: input.transaction,
9
15
  signature: input.signature,
10
16
  borsh_bytes: input.borsh_bytes,
17
+ transactionHash: requireCanonicalString(input.transactionHash, "signed transaction hash"),
11
18
  ...input.nonceLease ? { nonceLease: input.nonceLease } : {},
12
19
  ...input.serverDispatch ? { serverDispatch: input.serverDispatch } : {}
13
20
  });
@@ -908,12 +908,15 @@ function toSignedTransactionResult(args) {
908
908
  const signedTx = signedTransactions[0];
909
909
  if (!signedTx || !signedTx.transaction || !signedTx.signature) throw new Error("Incomplete signed transaction data received");
910
910
  const nonceLease = args.nonceLeases?.[0];
911
+ const transactionHash = args.okResponse.payload.transactionHashes?.[0];
912
+ if (!transactionHash) throw new Error("Signed transaction is missing its hash");
911
913
  const serverDispatch = signedTx.serverDispatch;
912
914
  return {
913
915
  signedTransaction: new SignedTransaction({
914
916
  transaction: signedTx.transaction,
915
917
  signature: signedTx.signature,
916
918
  borsh_bytes: Array.from(signedTx.borshBytes || []),
919
+ transactionHash,
917
920
  ...nonceLease ? { nonceLease } : {},
918
921
  ...serverDispatch ? { serverDispatch } : {}
919
922
  }),
@@ -0,0 +1,89 @@
1
+ import { requireCanonicalString, requireNonEmptyString, requireRecord } from "../../shared-ts/src/utils/validation.js";
2
+ import { safeErrorMessage } from "../../shared-ts/src/utils/errors.js";
3
+ import { decodeNearFinalExecutionOutcome } from "../../shared-ts/src/utils/nearRpcResults.js";
4
+ //#region src/core/signingEngine/nearTransactionSubmission.ts
5
+ var NearTransactionRequest = class {
6
+ state = "not_dispatched";
7
+ constructor(transaction) {
8
+ this.transaction = transaction;
9
+ }
10
+ dispatched = () => {
11
+ this.state = "dispatched";
12
+ };
13
+ failed(error) {
14
+ if (this.state === "not_dispatched") return nearTransactionFailure(error, "not_submitted");
15
+ switch (this.transaction.kind) {
16
+ case "sign_and_send": return nearTransactionFailure(error, "submission_unknown");
17
+ case "send": return unresolvedNearTransaction(this.transaction.transactionId, error);
18
+ default: return assertNeverNearTransactionState(this.transaction);
19
+ }
20
+ }
21
+ };
22
+ function assertNeverNearTransactionState(value) {
23
+ throw new Error(`Unsupported NEAR transaction state: ${String(value)}`);
24
+ }
25
+ function parseNearTransactionResult(raw) {
26
+ const result = requireRecord(raw, "NEAR transaction result");
27
+ if (result.success === true) {
28
+ const transactionId = requireCanonicalString(result.transactionId, "transactionId");
29
+ const outcome = decodeNearFinalExecutionOutcome(result.result);
30
+ if (transactionId !== outcome.transaction.hash) throw new Error("NEAR transaction result contains different transaction hashes");
31
+ if (typeof outcome.status === "object" && "Failure" in outcome.status) return unresolvedNearTransaction(transactionId, /* @__PURE__ */ new Error("NEAR transaction execution failed"));
32
+ return {
33
+ success: true,
34
+ transactionId,
35
+ result: outcome
36
+ };
37
+ }
38
+ if (result.success !== false) throw new Error("Invalid NEAR transaction result");
39
+ const error = requireNonEmptyString(result.error, "NEAR transaction error");
40
+ switch (result.kind) {
41
+ case "not_submitted": return {
42
+ success: false,
43
+ kind: "not_submitted",
44
+ error
45
+ };
46
+ case "submission_unknown": return {
47
+ success: false,
48
+ kind: "submission_unknown",
49
+ error
50
+ };
51
+ case "unresolved": return {
52
+ success: false,
53
+ kind: "unresolved",
54
+ transactionId: requireCanonicalString(result.transactionId, "transactionId"),
55
+ error
56
+ };
57
+ default: throw new Error("Invalid NEAR transaction failure");
58
+ }
59
+ }
60
+ function nearTransactionFailure(error, fallback) {
61
+ return {
62
+ success: false,
63
+ kind: fallback,
64
+ error: safeErrorMessage(error) || "NEAR transaction failed"
65
+ };
66
+ }
67
+ function unresolvedNearTransaction(transactionId, error) {
68
+ return {
69
+ success: false,
70
+ kind: "unresolved",
71
+ transactionId,
72
+ error: safeErrorMessage(error)
73
+ };
74
+ }
75
+ /** Application hooks cannot replace a settled transaction outcome with their own error. */
76
+ async function notifyNearTransactionResult(options, result) {
77
+ const error = result.success ? void 0 : new Error(result.error);
78
+ if (error) try {
79
+ await options?.onError?.(error);
80
+ } catch {}
81
+ try {
82
+ if (result.success) await options?.afterCall?.(true, result);
83
+ else await options?.afterCall?.(false, void 0, error);
84
+ } catch {}
85
+ }
86
+ //#endregion
87
+ export { NearTransactionRequest, nearTransactionFailure, notifyNearTransactionResult, parseNearTransactionResult };
88
+
89
+ //# sourceMappingURL=nearTransactionSubmission.js.map