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 });