From 80c7c5e8f8c70ed3dab5fedf8355b312c11e4223 Mon Sep 17 00:00:00 2001 From: rassadin11 Date: Mon, 8 Jun 2026 10:44:40 +0300 Subject: [PATCH] fix --- src/features/admin/api/adminApi.ts | 17 ++++-- .../hooks/useCreateOrganizationWallets.ts | 4 +- .../admin/hooks/useOrganizationWallets.ts | 12 +++++ src/features/admin/index.ts | 2 + src/features/admin/model/types.ts | 9 ++++ .../ui/AdminOrganizationPage.tsx | 10 +++- src/pages/admin/ui/AdminPage.tsx | 4 +- src/widgets/organization-wallets/index.ts | 1 + .../ui/OrganizationWallets.module.css | 52 ++++++++++++++++++ .../ui/OrganizationWallets.tsx | 53 +++++++++++++++++++ tsconfig.tsbuildinfo | 2 +- 11 files changed, 157 insertions(+), 9 deletions(-) create mode 100644 src/features/admin/hooks/useOrganizationWallets.ts create mode 100644 src/widgets/organization-wallets/index.ts create mode 100644 src/widgets/organization-wallets/ui/OrganizationWallets.module.css create mode 100644 src/widgets/organization-wallets/ui/OrganizationWallets.tsx diff --git a/src/features/admin/api/adminApi.ts b/src/features/admin/api/adminApi.ts index 27d602b..7df4471 100644 --- a/src/features/admin/api/adminApi.ts +++ b/src/features/admin/api/adminApi.ts @@ -3,12 +3,13 @@ import type { AdminLoginResponse, AdminMeResponse, CreateOrganizationRequest, + CreateWalletsResponse, + WalletResponse, DocumentResponse, Organization, OrganizationListResponse, PurchaseRequestListResponse, UpdateOrganizationRequest, - WalletResponse, } from '../model/types' const ADMIN_API_URL = 'https://app.admin.elcsa.ru' @@ -113,10 +114,18 @@ export function getOrganization(id: string): Promise { return doAdminRequest(`/v1/organizations/${id}`, {}, true) } -export function createOrganizationWallets(id: string): Promise { - return doAdminRequest( +export function createOrganizationWallets(id: string): Promise { + return doAdminRequest( `/v1/organizations/${id}/wallets/create`, - { method: 'POST' }, + { method: 'POST', body: JSON.stringify({ id }) }, + true, + ) +} + +export function getOrganizationWallets(id: string): Promise { + return doAdminRequest( + `/v1/organizations/${id}/wallets`, + {}, true, ) } diff --git a/src/features/admin/hooks/useCreateOrganizationWallets.ts b/src/features/admin/hooks/useCreateOrganizationWallets.ts index dbb6c4e..8b339f7 100644 --- a/src/features/admin/hooks/useCreateOrganizationWallets.ts +++ b/src/features/admin/hooks/useCreateOrganizationWallets.ts @@ -2,15 +2,17 @@ import { useMutation, useQueryClient } from '@tanstack/react-query' import { createOrganizationWallets } from '../api/adminApi' import { ORGANIZATIONS_QUERY_KEY } from './useOrganizations' import { ORGANIZATION_QUERY_KEY } from './useOrganization' +import { WALLETS_QUERY_KEY } from './useOrganizationWallets' export function useCreateOrganizationWallets() { const queryClient = useQueryClient() return useMutation({ mutationFn: (organizationId: string) => createOrganizationWallets(organizationId), - onSuccess: (_wallets, organizationId) => { + onSuccess: (_result, organizationId) => { // `has_wallets` flips to true server-side — refresh list and detail view. queryClient.invalidateQueries({ queryKey: ORGANIZATIONS_QUERY_KEY }) queryClient.invalidateQueries({ queryKey: ORGANIZATION_QUERY_KEY(organizationId) }) + queryClient.invalidateQueries({ queryKey: WALLETS_QUERY_KEY(organizationId) }) }, }) } diff --git a/src/features/admin/hooks/useOrganizationWallets.ts b/src/features/admin/hooks/useOrganizationWallets.ts new file mode 100644 index 0000000..f5753a9 --- /dev/null +++ b/src/features/admin/hooks/useOrganizationWallets.ts @@ -0,0 +1,12 @@ +import { useQuery } from '@tanstack/react-query' +import { getOrganizationWallets } from '../api/adminApi' + +export const WALLETS_QUERY_KEY = (orgId: string) => ['admin-wallets', orgId] + +export function useOrganizationWallets(orgId: string | undefined) { + return useQuery({ + queryKey: WALLETS_QUERY_KEY(orgId ?? ''), + queryFn: () => getOrganizationWallets(orgId as string), + enabled: !!orgId, + }) +} diff --git a/src/features/admin/index.ts b/src/features/admin/index.ts index e9ec761..f2f45f6 100644 --- a/src/features/admin/index.ts +++ b/src/features/admin/index.ts @@ -6,6 +6,7 @@ export { getOrganization, createOrganization, createOrganizationWallets, + getOrganizationWallets, updateOrganization, getDocuments, uploadDocument, @@ -35,6 +36,7 @@ export { useOrganization, ORGANIZATION_QUERY_KEY } from './hooks/useOrganization export { useCreateOrganization } from './hooks/useCreateOrganization' export { useCreateOrganizationWallets } from './hooks/useCreateOrganizationWallets' export { useUpdateOrganization } from './hooks/useUpdateOrganization' +export { useOrganizationWallets, WALLETS_QUERY_KEY } from './hooks/useOrganizationWallets' export { useDocuments, DOCUMENTS_QUERY_KEY } from './hooks/useDocuments' export { useUploadDocument } from './hooks/useUploadDocument' export { usePurchaseRequests, PURCHASE_REQUESTS_QUERY_KEY } from './hooks/usePurchaseRequests' diff --git a/src/features/admin/model/types.ts b/src/features/admin/model/types.ts index 30d7389..9997cdd 100644 --- a/src/features/admin/model/types.ts +++ b/src/features/admin/model/types.ts @@ -58,6 +58,15 @@ export interface WalletResponse { created_at: string | null } +export interface CreateWalletsRequest { + id: string +} + +export interface CreateWalletsResponse { + wallets: WalletResponse[] + mnemonic: string +} + export interface DocumentResponse { id: string organization_id: string diff --git a/src/pages/admin-organization/ui/AdminOrganizationPage.tsx b/src/pages/admin-organization/ui/AdminOrganizationPage.tsx index e3a4cc8..b5a2760 100644 --- a/src/pages/admin-organization/ui/AdminOrganizationPage.tsx +++ b/src/pages/admin-organization/ui/AdminOrganizationPage.tsx @@ -6,13 +6,15 @@ import { FormField, Notification, PrimaryButton } from '@shared/ui' import { AdminLoginForm } from '@widgets/admin-login-form' import { OrganizationDocuments } from '@widgets/organization-documents' import { OrganizationPurchaseRequests } from '@widgets/organization-purchase-requests' +import { OrganizationWallets } from '@widgets/organization-wallets' import { useOrganizationForm } from '../model/useOrganizationForm' import styles from './AdminOrganizationPage.module.css' -type Tab = 'info' | 'documents' | 'requests' +type Tab = 'info' | 'wallets' | 'documents' | 'requests' const TABS: { id: Tab; label: string }[] = [ { id: 'info', label: 'Общая информация' }, + { id: 'wallets', label: 'Кошельки' }, { id: 'documents', label: 'Документы' }, { id: 'requests', label: 'Заявки' }, ] @@ -118,6 +120,12 @@ export function AdminOrganizationPage() { )} + {org && activeTab === 'wallets' && ( +
+ +
+ )} + {org && activeTab === 'documents' && (
diff --git a/src/pages/admin/ui/AdminPage.tsx b/src/pages/admin/ui/AdminPage.tsx index 5c19fd1..74ca8dc 100644 --- a/src/pages/admin/ui/AdminPage.tsx +++ b/src/pages/admin/ui/AdminPage.tsx @@ -21,10 +21,10 @@ export function AdminPage() { function handleCreated(organization: Organization) { setNotification({ status: 'success', message: 'Юридическое лицо добавлено' }) createWallets.mutate(organization.id, { - onSuccess: (wallets) => { + onSuccess: (result) => { setNotification({ status: 'success', - message: `Кошельки созданы (${wallets.length})`, + message: `Кошельки созданы (${result.wallets.length})`, }) }, onError: () => { diff --git a/src/widgets/organization-wallets/index.ts b/src/widgets/organization-wallets/index.ts new file mode 100644 index 0000000..b431a2a --- /dev/null +++ b/src/widgets/organization-wallets/index.ts @@ -0,0 +1 @@ +export { OrganizationWallets } from './ui/OrganizationWallets' diff --git a/src/widgets/organization-wallets/ui/OrganizationWallets.module.css b/src/widgets/organization-wallets/ui/OrganizationWallets.module.css new file mode 100644 index 0000000..e7c63b5 --- /dev/null +++ b/src/widgets/organization-wallets/ui/OrganizationWallets.module.css @@ -0,0 +1,52 @@ +.section { + background: rgba(255, 255, 255, 0.04); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 20px; + padding: 24px; +} + +.sectionTitle { + font-size: 14px; + letter-spacing: 1.5px; + text-transform: uppercase; + color: var(--text-secondary, rgba(255, 255, 255, 0.5)); + font-weight: 600; + margin: 0 0 18px; +} + +.table { + width: 100%; + border-collapse: collapse; +} + +.table th { + text-align: left; + font-size: 12px; + letter-spacing: 1.5px; + text-transform: uppercase; + color: var(--text-secondary); + font-weight: 500; + padding: 0 16px 14px; + white-space: nowrap; +} + +.table td { + padding: 14px 16px; + border-top: 1px solid rgba(255, 255, 255, 0.06); + vertical-align: middle; + font-size: 14px; + color: var(--text-primary); +} + +.mono { + font-family: var(--font-mono, monospace); + font-size: 13px; + word-break: break-all; +} + +.state { + padding: 32px 16px; + text-align: center; + color: var(--text-secondary, rgba(255, 255, 255, 0.6)); + font-size: 14px; +} diff --git a/src/widgets/organization-wallets/ui/OrganizationWallets.tsx b/src/widgets/organization-wallets/ui/OrganizationWallets.tsx new file mode 100644 index 0000000..0c3ded3 --- /dev/null +++ b/src/widgets/organization-wallets/ui/OrganizationWallets.tsx @@ -0,0 +1,53 @@ +import { useOrganizationWallets } from '@features/admin' +import styles from './OrganizationWallets.module.css' + +interface Props { + orgId: string +} + +function formatDate(value: string | null): string { + if (!value) return '—' + const d = new Date(value) + if (Number.isNaN(d.getTime())) return '—' + return d.toLocaleString('ru-RU') +} + +export function OrganizationWallets({ orgId }: Props) { + const { data: wallets, isLoading, isError } = useOrganizationWallets(orgId) + + return ( +
+

Кошельки

+ + {isLoading &&
Загрузка...
} + {isError &&
Не удалось загрузить кошельки
} + + {wallets && wallets.length === 0 && ( +
Кошельки ещё не созданы
+ )} + + {wallets && wallets.length > 0 && ( + + + + + + + + + + + {wallets.map((wallet) => ( + + + + + + + ))} + +
СетьАдресDerivation pathСоздано
{wallet.chain}{wallet.address}{wallet.derivation_path}{formatDate(wallet.created_at)}
+ )} +
+ ) +} diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index 74e835d..07b89e4 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/app.tsx","./src/app/providers/guestroute.tsx","./src/app/providers/protectedroute.tsx","./src/app/providers/queryprovider.tsx","./src/app/providers/routerprovider.tsx","./src/app/providers/scrolltotop.tsx","./src/app/providers/index.ts","./src/entities/commission/index.ts","./src/entities/commission/model/tiers.ts","./src/entities/commission/ui/commissiontable.tsx","./src/features/admin/index.ts","./src/features/admin/api/adminapi.ts","./src/features/admin/hooks/useadminauth.ts","./src/features/admin/hooks/useadminlogin.ts","./src/features/admin/hooks/useadminlogout.ts","./src/features/admin/hooks/usecreateorganization.ts","./src/features/admin/hooks/usecreateorganizationwallets.ts","./src/features/admin/hooks/usedocuments.ts","./src/features/admin/hooks/useorganization.ts","./src/features/admin/hooks/useorganizations.ts","./src/features/admin/hooks/usepurchaserequests.ts","./src/features/admin/hooks/useupdateorganization.ts","./src/features/admin/hooks/useuploaddocument.ts","./src/features/admin/model/types.ts","./src/features/auth/index.ts","./src/features/auth/api/profileapi.ts","./src/features/auth/api/registrationapi.ts","./src/features/auth/hooks/useauth.ts","./src/features/auth/hooks/useisauthenticated.ts","./src/features/auth/hooks/useme.ts","./src/features/auth/hooks/useupdatephone.ts","./src/features/auth/hooks/useuploadavatar.ts","./src/features/kyc/api/kycapi.ts","./src/features/payment/index.ts","./src/features/payment/api/paymentapi.ts","./src/features/payment/hooks/usecreateorder.ts","./src/features/payment/hooks/useorders.ts","./src/features/payment/hooks/usepaymentconfig.ts","./src/features/payment/hooks/usepaymentquote.ts","./src/features/payment/hooks/usepaymentquotebyrub.ts","./src/features/payment/model/usecurrencyconversion.ts","./src/features/wallet/index.ts","./src/features/wallet/api/walletapi.ts","./src/features/wallet/model/usewalletdata.ts","./src/pages/admin/index.ts","./src/pages/admin/ui/adminpage.tsx","./src/pages/admin-organization/index.ts","./src/pages/admin-organization/model/useorganizationform.ts","./src/pages/admin-organization/ui/adminorganizationpage.tsx","./src/pages/bridge/index.ts","./src/pages/bridge/ui/bridgepage.tsx","./src/pages/converter/index.ts","./src/pages/converter/ui/converterpage.tsx","./src/pages/converter/ui/legalconverterpage.tsx","./src/pages/converter-test/index.ts","./src/pages/converter-test/ui/convertertestpage.tsx","./src/pages/home/index.ts","./src/pages/home/ui/homepage.tsx","./src/pages/kyc/index.ts","./src/pages/kyc/ui/kycpage.tsx","./src/pages/login/index.ts","./src/pages/login/ui/loginpage.tsx","./src/pages/politika-cookie/index.ts","./src/pages/politika-cookie/ui/politikacookiepage.tsx","./src/pages/politika-personalnyh-dannyh/index.ts","./src/pages/politika-personalnyh-dannyh/ui/politikapage.tsx","./src/pages/profile/index.ts","./src/pages/profile/ui/individualfields.tsx","./src/pages/profile/ui/legalentityfields.tsx","./src/pages/profile/ui/profilepage.tsx","./src/pages/publichnaya-oferta/index.ts","./src/pages/publichnaya-oferta/ui/publichnayaofertapage.tsx","./src/pages/reestr-pd-rkn/index.ts","./src/pages/reestr-pd-rkn/ui/reestrypage.tsx","./src/pages/register/index.ts","./src/pages/register/ui/registerpage.tsx","./src/pages/register-test/index.ts","./src/pages/register-test/ui/registertestpage.tsx","./src/pages/restore-password/index.ts","./src/pages/restore-password/ui/restorepasswordpage.tsx","./src/pages/seed-phrase/index.ts","./src/pages/seed-phrase/ui/seedphrasepage.tsx","./src/pages/soglasie-personalnyh-dannyh/index.ts","./src/pages/soglasie-personalnyh-dannyh/ui/soglasiepage.tsx","./src/pages/swap/index.ts","./src/pages/swap/ui/swappage.tsx","./src/pages/transactions/index.ts","./src/pages/transactions/ui/transactionspage.tsx","./src/pages/wallet/index.ts","./src/pages/wallet/ui/walletpage.tsx","./src/shared/api/base.ts","./src/shared/api/csrf.ts","./src/shared/api/tokenstore.ts","./src/shared/api/types.ts","./src/shared/assets/coins/index.ts","./src/shared/config/constants.ts","./src/shared/config/env.ts","./src/shared/config/routes.ts","./src/shared/lib/hooks/usedebounce.ts","./src/shared/lib/hooks/uselocalstorage.ts","./src/shared/lib/utils/baseunits.ts","./src/shared/lib/utils/cn.ts","./src/shared/lib/utils/truncatedecimals.ts","./src/shared/types/index.ts","./src/shared/ui/index.ts","./src/shared/ui/button/button.tsx","./src/shared/ui/button/index.ts","./src/shared/ui/convertfield/convertfield.tsx","./src/shared/ui/convertfield/index.ts","./src/shared/ui/directionswapbutton/directionswapbutton.tsx","./src/shared/ui/directionswapbutton/index.ts","./src/shared/ui/formfield/formfield.tsx","./src/shared/ui/formfield/index.ts","./src/shared/ui/notification/notification.tsx","./src/shared/ui/notification/index.ts","./src/shared/ui/pill/pill.tsx","./src/shared/ui/pill/index.ts","./src/shared/ui/primarybutton/primarybutton.tsx","./src/shared/ui/primarybutton/index.ts","./src/shared/ui/select/select.tsx","./src/shared/ui/select/index.ts","./src/shared/ui/title/title.tsx","./src/shared/ui/tokenicon/tokenicon.tsx","./src/shared/ui/tokenicon/index.ts","./src/widgets/about/index.ts","./src/widgets/about/ui/about.tsx","./src/widgets/add-legal-entity-modal/index.ts","./src/widgets/add-legal-entity-modal/model/useaddlegalentityform.ts","./src/widgets/add-legal-entity-modal/ui/addlegalentitymodal.tsx","./src/widgets/admin-login-form/index.ts","./src/widgets/admin-login-form/model/useadminloginform.ts","./src/widgets/admin-login-form/ui/adminloginform.tsx","./src/widgets/balance-card/index.ts","./src/widgets/balance-card/ui/balancecard.tsx","./src/widgets/bridge-form/index.ts","./src/widgets/bridge-form/ui/bridgeconfirmmodal.tsx","./src/widgets/bridge-form/ui/bridgeform.tsx","./src/widgets/bridge-form/ui/networkselect.tsx","./src/widgets/converter-page/index.ts","./src/widgets/converter-page/model/useconvertersection.ts","./src/widgets/converter-page/ui/agreementcheck.tsx","./src/widgets/converter-page/ui/convertersection.tsx","./src/widgets/currency-converter/index.ts","./src/widgets/currency-converter/ui/agreementcheckbox.tsx","./src/widgets/currency-converter/ui/converter.tsx","./src/widgets/footer/index.ts","./src/widgets/footer/ui/footer.tsx","./src/widgets/header/index.ts","./src/widgets/header/ui/header.tsx","./src/widgets/hero/index.ts","./src/widgets/hero/lib/usecountdown.ts","./src/widgets/hero/ui/conversionflow.tsx","./src/widgets/hero/ui/countdown.tsx","./src/widgets/hero/ui/exchangecard.tsx","./src/widgets/hero/ui/hero.tsx","./src/widgets/kyc-verification/index.ts","./src/widgets/kyc-verification/model/usekyc.ts","./src/widgets/kyc-verification/ui/kycmodal.tsx","./src/widgets/kyc-verification/ui/kycwidget.tsx","./src/widgets/legal-entities-table/index.ts","./src/widgets/legal-entities-table/ui/legalentitiestable.tsx","./src/widgets/login-form/index.ts","./src/widgets/login-form/model/useloginform.ts","./src/widgets/login-form/ui/loginform.tsx","./src/widgets/networks-table/index.ts","./src/widgets/networks-table/model/networks.ts","./src/widgets/networks-table/ui/networkstable.tsx","./src/widgets/organization-documents/index.ts","./src/widgets/organization-documents/ui/organizationdocuments.tsx","./src/widgets/organization-purchase-requests/index.ts","./src/widgets/organization-purchase-requests/ui/organizationpurchaserequests.tsx","./src/widgets/profile/index.ts","./src/widgets/profile/ui/avatarcropmodal.tsx","./src/widgets/profile/ui/profileavatar.tsx","./src/widgets/profile/ui/profilesection.tsx","./src/widgets/profile/ui/getcroppedimg.ts","./src/widgets/receive-modal/index.ts","./src/widgets/receive-modal/ui/receivemodal.tsx","./src/widgets/register-form/index.ts","./src/widgets/register-form/model/useregisterform.ts","./src/widgets/register-form/ui/individualform.tsx","./src/widgets/register-form/ui/legalregisterinfo.tsx","./src/widgets/register-form/ui/registerform.tsx","./src/widgets/restore-password-form/index.ts","./src/widgets/restore-password-form/ui/restorepasswordform.tsx","./src/widgets/seed-phrase/index.ts","./src/widgets/seed-phrase/model/useseedphrase.ts","./src/widgets/seed-phrase/ui/seedphrasewidget.tsx","./src/widgets/send-modal/index.ts","./src/widgets/send-modal/model/sendtypes.ts","./src/widgets/send-modal/ui/sendmodal.tsx","./src/widgets/swap-bridge-tabs/index.ts","./src/widgets/swap-bridge-tabs/ui/swapbridgetabs.tsx","./src/widgets/swap-form/index.ts","./src/widgets/swap-form/model/useswapform.ts","./src/widgets/swap-form/ui/raterow.tsx","./src/widgets/swap-form/ui/swapcard.tsx","./src/widgets/swap-form/ui/swapconfirmmodal.tsx","./src/widgets/swap-form/ui/swapdirectionbutton.tsx","./src/widgets/swap-form/ui/swapform.tsx","./src/widgets/swap-form/ui/swapinfopanel.tsx","./src/widgets/swap-form/ui/tokenselect.tsx","./src/widgets/swap-form/ui/trxconfirmmodal.tsx","./src/widgets/token-table/index.ts","./src/widgets/token-table/model/tokens.ts","./src/widgets/token-table/model/usechaintokenrows.ts","./src/widgets/token-table/ui/tokentable.tsx","./src/widgets/transactions-list/index.ts","./src/widgets/transactions-list/model/format.ts","./src/widgets/transactions-list/model/paymentstatuslabels.ts","./src/widgets/transactions-list/ui/copybutton.tsx","./src/widgets/transactions-list/ui/orderaccordion.tsx","./src/widgets/transactions-list/ui/statusbadge.tsx","./src/widgets/transactions-list/ui/transactionslist.tsx","./src/widgets/wallet-chain-tabs/index.ts","./src/widgets/wallet-chain-tabs/ui/walletchaintabs.tsx","./src/widgets/wallet-header/index.ts","./src/widgets/wallet-header/ui/walletheader.tsx","./src/widgets/wallet-layout/index.ts","./src/widgets/wallet-layout/ui/walletlayout.tsx"],"version":"5.6.3"} \ No newline at end of file +{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/app.tsx","./src/app/providers/guestroute.tsx","./src/app/providers/protectedroute.tsx","./src/app/providers/queryprovider.tsx","./src/app/providers/routerprovider.tsx","./src/app/providers/scrolltotop.tsx","./src/app/providers/index.ts","./src/entities/commission/index.ts","./src/entities/commission/model/tiers.ts","./src/entities/commission/ui/commissiontable.tsx","./src/features/admin/index.ts","./src/features/admin/api/adminapi.ts","./src/features/admin/hooks/useadminauth.ts","./src/features/admin/hooks/useadminlogin.ts","./src/features/admin/hooks/useadminlogout.ts","./src/features/admin/hooks/usecreateorganization.ts","./src/features/admin/hooks/usecreateorganizationwallets.ts","./src/features/admin/hooks/usedocuments.ts","./src/features/admin/hooks/useorganization.ts","./src/features/admin/hooks/useorganizationwallets.ts","./src/features/admin/hooks/useorganizations.ts","./src/features/admin/hooks/usepurchaserequests.ts","./src/features/admin/hooks/useupdateorganization.ts","./src/features/admin/hooks/useuploaddocument.ts","./src/features/admin/model/types.ts","./src/features/auth/index.ts","./src/features/auth/api/profileapi.ts","./src/features/auth/api/registrationapi.ts","./src/features/auth/hooks/useauth.ts","./src/features/auth/hooks/useisauthenticated.ts","./src/features/auth/hooks/useme.ts","./src/features/auth/hooks/useupdatephone.ts","./src/features/auth/hooks/useuploadavatar.ts","./src/features/kyc/api/kycapi.ts","./src/features/payment/index.ts","./src/features/payment/api/paymentapi.ts","./src/features/payment/hooks/usecreateorder.ts","./src/features/payment/hooks/useorders.ts","./src/features/payment/hooks/usepaymentconfig.ts","./src/features/payment/hooks/usepaymentquote.ts","./src/features/payment/hooks/usepaymentquotebyrub.ts","./src/features/payment/model/usecurrencyconversion.ts","./src/features/wallet/index.ts","./src/features/wallet/api/walletapi.ts","./src/features/wallet/model/usewalletdata.ts","./src/pages/admin/index.ts","./src/pages/admin/ui/adminpage.tsx","./src/pages/admin-organization/index.ts","./src/pages/admin-organization/model/useorganizationform.ts","./src/pages/admin-organization/ui/adminorganizationpage.tsx","./src/pages/bridge/index.ts","./src/pages/bridge/ui/bridgepage.tsx","./src/pages/converter/index.ts","./src/pages/converter/ui/converterpage.tsx","./src/pages/converter/ui/legalconverterpage.tsx","./src/pages/converter-test/index.ts","./src/pages/converter-test/ui/convertertestpage.tsx","./src/pages/home/index.ts","./src/pages/home/ui/homepage.tsx","./src/pages/kyc/index.ts","./src/pages/kyc/ui/kycpage.tsx","./src/pages/login/index.ts","./src/pages/login/ui/loginpage.tsx","./src/pages/politika-cookie/index.ts","./src/pages/politika-cookie/ui/politikacookiepage.tsx","./src/pages/politika-personalnyh-dannyh/index.ts","./src/pages/politika-personalnyh-dannyh/ui/politikapage.tsx","./src/pages/profile/index.ts","./src/pages/profile/ui/individualfields.tsx","./src/pages/profile/ui/legalentityfields.tsx","./src/pages/profile/ui/profilepage.tsx","./src/pages/publichnaya-oferta/index.ts","./src/pages/publichnaya-oferta/ui/publichnayaofertapage.tsx","./src/pages/reestr-pd-rkn/index.ts","./src/pages/reestr-pd-rkn/ui/reestrypage.tsx","./src/pages/register/index.ts","./src/pages/register/ui/registerpage.tsx","./src/pages/register-test/index.ts","./src/pages/register-test/ui/registertestpage.tsx","./src/pages/restore-password/index.ts","./src/pages/restore-password/ui/restorepasswordpage.tsx","./src/pages/seed-phrase/index.ts","./src/pages/seed-phrase/ui/seedphrasepage.tsx","./src/pages/soglasie-personalnyh-dannyh/index.ts","./src/pages/soglasie-personalnyh-dannyh/ui/soglasiepage.tsx","./src/pages/swap/index.ts","./src/pages/swap/ui/swappage.tsx","./src/pages/transactions/index.ts","./src/pages/transactions/ui/transactionspage.tsx","./src/pages/wallet/index.ts","./src/pages/wallet/ui/walletpage.tsx","./src/shared/api/base.ts","./src/shared/api/csrf.ts","./src/shared/api/tokenstore.ts","./src/shared/api/types.ts","./src/shared/assets/coins/index.ts","./src/shared/config/constants.ts","./src/shared/config/env.ts","./src/shared/config/routes.ts","./src/shared/lib/hooks/usedebounce.ts","./src/shared/lib/hooks/uselocalstorage.ts","./src/shared/lib/utils/baseunits.ts","./src/shared/lib/utils/cn.ts","./src/shared/lib/utils/truncatedecimals.ts","./src/shared/types/index.ts","./src/shared/ui/index.ts","./src/shared/ui/button/button.tsx","./src/shared/ui/button/index.ts","./src/shared/ui/convertfield/convertfield.tsx","./src/shared/ui/convertfield/index.ts","./src/shared/ui/directionswapbutton/directionswapbutton.tsx","./src/shared/ui/directionswapbutton/index.ts","./src/shared/ui/formfield/formfield.tsx","./src/shared/ui/formfield/index.ts","./src/shared/ui/notification/notification.tsx","./src/shared/ui/notification/index.ts","./src/shared/ui/pill/pill.tsx","./src/shared/ui/pill/index.ts","./src/shared/ui/primarybutton/primarybutton.tsx","./src/shared/ui/primarybutton/index.ts","./src/shared/ui/select/select.tsx","./src/shared/ui/select/index.ts","./src/shared/ui/spinner/spinner.tsx","./src/shared/ui/spinner/index.ts","./src/shared/ui/title/title.tsx","./src/shared/ui/tokenicon/tokenicon.tsx","./src/shared/ui/tokenicon/index.ts","./src/widgets/about/index.ts","./src/widgets/about/ui/about.tsx","./src/widgets/add-legal-entity-modal/index.ts","./src/widgets/add-legal-entity-modal/model/useaddlegalentityform.ts","./src/widgets/add-legal-entity-modal/ui/addlegalentitymodal.tsx","./src/widgets/admin-login-form/index.ts","./src/widgets/admin-login-form/model/useadminloginform.ts","./src/widgets/admin-login-form/ui/adminloginform.tsx","./src/widgets/balance-card/index.ts","./src/widgets/balance-card/ui/balancecard.tsx","./src/widgets/bridge-form/index.ts","./src/widgets/bridge-form/ui/bridgeconfirmmodal.tsx","./src/widgets/bridge-form/ui/bridgeform.tsx","./src/widgets/bridge-form/ui/networkselect.tsx","./src/widgets/converter-page/index.ts","./src/widgets/converter-page/model/useconvertersection.ts","./src/widgets/converter-page/ui/agreementcheck.tsx","./src/widgets/converter-page/ui/convertersection.tsx","./src/widgets/currency-converter/index.ts","./src/widgets/currency-converter/ui/agreementcheckbox.tsx","./src/widgets/currency-converter/ui/converter.tsx","./src/widgets/footer/index.ts","./src/widgets/footer/ui/footer.tsx","./src/widgets/header/index.ts","./src/widgets/header/ui/header.tsx","./src/widgets/hero/index.ts","./src/widgets/hero/lib/usecountdown.ts","./src/widgets/hero/ui/conversionflow.tsx","./src/widgets/hero/ui/countdown.tsx","./src/widgets/hero/ui/exchangecard.tsx","./src/widgets/hero/ui/hero.tsx","./src/widgets/kyc-verification/index.ts","./src/widgets/kyc-verification/model/usekyc.ts","./src/widgets/kyc-verification/ui/kycmodal.tsx","./src/widgets/kyc-verification/ui/kycwidget.tsx","./src/widgets/legal-entities-table/index.ts","./src/widgets/legal-entities-table/ui/legalentitiestable.tsx","./src/widgets/login-form/index.ts","./src/widgets/login-form/model/useloginform.ts","./src/widgets/login-form/ui/loginform.tsx","./src/widgets/networks-table/index.ts","./src/widgets/networks-table/model/networks.ts","./src/widgets/networks-table/ui/networkstable.tsx","./src/widgets/organization-documents/index.ts","./src/widgets/organization-documents/ui/organizationdocuments.tsx","./src/widgets/organization-purchase-requests/index.ts","./src/widgets/organization-purchase-requests/ui/organizationpurchaserequests.tsx","./src/widgets/organization-wallets/index.ts","./src/widgets/organization-wallets/ui/organizationwallets.tsx","./src/widgets/profile/index.ts","./src/widgets/profile/ui/avatarcropmodal.tsx","./src/widgets/profile/ui/profileavatar.tsx","./src/widgets/profile/ui/profilesection.tsx","./src/widgets/profile/ui/getcroppedimg.ts","./src/widgets/receive-modal/index.ts","./src/widgets/receive-modal/ui/receivemodal.tsx","./src/widgets/register-form/index.ts","./src/widgets/register-form/model/useregisterform.ts","./src/widgets/register-form/ui/individualform.tsx","./src/widgets/register-form/ui/legalregisterinfo.tsx","./src/widgets/register-form/ui/registerform.tsx","./src/widgets/restore-password-form/index.ts","./src/widgets/restore-password-form/ui/restorepasswordform.tsx","./src/widgets/seed-phrase/index.ts","./src/widgets/seed-phrase/model/useseedphrase.ts","./src/widgets/seed-phrase/ui/seedphrasewidget.tsx","./src/widgets/send-modal/index.ts","./src/widgets/send-modal/model/sendtypes.ts","./src/widgets/send-modal/ui/sendmodal.tsx","./src/widgets/swap-bridge-tabs/index.ts","./src/widgets/swap-bridge-tabs/ui/swapbridgetabs.tsx","./src/widgets/swap-form/index.ts","./src/widgets/swap-form/model/useswapform.ts","./src/widgets/swap-form/ui/raterow.tsx","./src/widgets/swap-form/ui/swapcard.tsx","./src/widgets/swap-form/ui/swapconfirmmodal.tsx","./src/widgets/swap-form/ui/swapdirectionbutton.tsx","./src/widgets/swap-form/ui/swapform.tsx","./src/widgets/swap-form/ui/swapinfopanel.tsx","./src/widgets/swap-form/ui/tokenselect.tsx","./src/widgets/swap-form/ui/trxconfirmmodal.tsx","./src/widgets/token-table/index.ts","./src/widgets/token-table/model/tokens.ts","./src/widgets/token-table/model/usechaintokenrows.ts","./src/widgets/token-table/ui/tokentable.tsx","./src/widgets/transactions-list/index.ts","./src/widgets/transactions-list/model/format.ts","./src/widgets/transactions-list/model/paymentstatuslabels.ts","./src/widgets/transactions-list/ui/copybutton.tsx","./src/widgets/transactions-list/ui/orderaccordion.tsx","./src/widgets/transactions-list/ui/statusbadge.tsx","./src/widgets/transactions-list/ui/transactionslist.tsx","./src/widgets/wallet-chain-tabs/index.ts","./src/widgets/wallet-chain-tabs/ui/walletchaintabs.tsx","./src/widgets/wallet-header/index.ts","./src/widgets/wallet-header/ui/walletheader.tsx","./src/widgets/wallet-layout/index.ts","./src/widgets/wallet-layout/ui/walletlayout.tsx"],"version":"5.6.3"} \ No newline at end of file