From 40389fcfc7222144c5d38b774de4b42b7c71a83e Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 29 Jan 2026 07:53:04 -0800 Subject: [PATCH] =?UTF-8?q?feat(trading-service,=20mining-admin-web):=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=9C=A8=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=81=9A=E5=B8=82=E5=95=86=E9=92=B1=E5=8C=85?= =?UTF-8?q?=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 后端: 在 UpdateConfigDto 和 updateConfig 方法中添加 kavaWalletAddress 字段 - 前端: 在充值对话框中添加钱包地址配置输入框 Co-Authored-By: Claude Opus 4.5 --- .../controllers/market-maker.controller.ts | 4 ++ .../services/market-maker.service.ts | 1 + .../src/app/(dashboard)/market-maker/page.tsx | 57 +++++++++++++++++-- .../market-maker/api/market-maker.api.ts | 1 + .../market-maker/hooks/use-market-maker.ts | 1 + 5 files changed, 58 insertions(+), 6 deletions(-) diff --git a/backend/services/trading-service/src/api/controllers/market-maker.controller.ts b/backend/services/trading-service/src/api/controllers/market-maker.controller.ts index f394cbc9..6dddb028 100644 --- a/backend/services/trading-service/src/api/controllers/market-maker.controller.ts +++ b/backend/services/trading-service/src/api/controllers/market-maker.controller.ts @@ -78,6 +78,10 @@ class UpdateConfigDto { @IsOptional() @IsNumber() discountRate?: number; + + @IsOptional() + @IsString() + kavaWalletAddress?: string; } class UpdateMakerConfigDto { diff --git a/backend/services/trading-service/src/application/services/market-maker.service.ts b/backend/services/trading-service/src/application/services/market-maker.service.ts index 84521957..f0b8ae41 100644 --- a/backend/services/trading-service/src/application/services/market-maker.service.ts +++ b/backend/services/trading-service/src/application/services/market-maker.service.ts @@ -760,6 +760,7 @@ export class MarketMakerService { maxIntervalMs?: number; priceStrategy?: string; discountRate?: number; + kavaWalletAddress?: string; }, ): Promise { const config = await this.getConfig(name); diff --git a/frontend/mining-admin-web/src/app/(dashboard)/market-maker/page.tsx b/frontend/mining-admin-web/src/app/(dashboard)/market-maker/page.tsx index dfc715a9..f54103fc 100644 --- a/frontend/mining-admin-web/src/app/(dashboard)/market-maker/page.tsx +++ b/frontend/mining-admin-web/src/app/(dashboard)/market-maker/page.tsx @@ -6,6 +6,7 @@ import { PageHeader } from '@/components/layout/page-header'; import { useMarketMakerConfig, useInitializeMarketMaker, + useUpdateMarketMakerConfig, useDepositCash, useWithdrawCash, useDepositShares, @@ -80,8 +81,10 @@ export default function MarketMakerPage() { const refreshOrdersMutation = useRefreshOrders(); const cancelAllOrdersMutation = useCancelAllOrders(); const setDepthEnabledMutation = useSetDepthEnabled(); + const updateConfigMutation = useUpdateMarketMakerConfig(); const [initAccountSeq, setInitAccountSeq] = useState('MM001'); + const [walletAddressInput, setWalletAddressInput] = useState(''); const [depositCashAmount, setDepositCashAmount] = useState(''); const [withdrawCashAmount, setWithdrawCashAmount] = useState(''); const [depositSharesAmount, setDepositSharesAmount] = useState(''); @@ -253,9 +256,30 @@ export default function MarketMakerPage() { ) : ( -
- -

做市商钱包地址未配置

+
+
+ +

做市商钱包地址未配置

+
+
+ + setWalletAddressInput(e.target.value)} + placeholder="0x..." + className="mt-1" + /> +
+
)} @@ -449,9 +473,30 @@ export default function MarketMakerPage() {
) : ( -
- -

做市商钱包地址未配置

+
+
+ +

做市商钱包地址未配置

+
+
+ + setWalletAddressInput(e.target.value)} + placeholder="0x..." + className="mt-1" + /> +
+
)} diff --git a/frontend/mining-admin-web/src/features/market-maker/api/market-maker.api.ts b/frontend/mining-admin-web/src/features/market-maker/api/market-maker.api.ts index 22cb2b65..b092df1a 100644 --- a/frontend/mining-admin-web/src/features/market-maker/api/market-maker.api.ts +++ b/frontend/mining-admin-web/src/features/market-maker/api/market-maker.api.ts @@ -142,6 +142,7 @@ export const marketMakerApi = { maxIntervalMs?: number; priceStrategy?: string; discountRate?: number; + kavaWalletAddress?: string; }): Promise<{ success: boolean; message: string }> => { const response = await tradingClient.post(`/admin/market-maker/${name}/config`, data); return response.data; diff --git a/frontend/mining-admin-web/src/features/market-maker/hooks/use-market-maker.ts b/frontend/mining-admin-web/src/features/market-maker/hooks/use-market-maker.ts index d564c095..48bc9f1e 100644 --- a/frontend/mining-admin-web/src/features/market-maker/hooks/use-market-maker.ts +++ b/frontend/mining-admin-web/src/features/market-maker/hooks/use-market-maker.ts @@ -39,6 +39,7 @@ export function useUpdateMarketMakerConfig() { maxIntervalMs?: number; priceStrategy?: string; discountRate?: number; + kavaWalletAddress?: string; }) => marketMakerApi.updateConfig(MARKET_MAKER_NAME, data), onSuccess: (data) => { toast({ title: '成功', description: data.message });