rwadurian/frontend/mining-app/lib/domain/repositories/trading_repository.dart

51 lines
1.6 KiB
Dart

import 'package:dartz/dartz.dart';
import '../../core/error/failures.dart';
import '../entities/price_info.dart';
import '../entities/market_overview.dart';
import '../entities/trading_account.dart';
import '../entities/trade_order.dart';
import '../entities/asset_display.dart';
import '../../data/models/trade_order_model.dart';
abstract class TradingRepository {
/// 获取当前价格信息
Future<Either<Failure, PriceInfo>> getCurrentPrice();
/// 获取市场概览
Future<Either<Failure, MarketOverview>> getMarketOverview();
/// 获取交易账户信息
Future<Either<Failure, TradingAccount>> getTradingAccount(String accountSequence);
/// 创建订单
Future<Either<Failure, Map<String, dynamic>>> createOrder({
required String type,
required String price,
required String quantity,
});
/// 取消订单
Future<Either<Failure, void>> cancelOrder(String orderNo);
/// 获取用户订单列表
Future<Either<Failure, OrdersPageModel>> getOrders({
int page = 1,
int pageSize = 50,
});
/// 预估卖出收益
Future<Either<Failure, Map<String, dynamic>>> estimateSell(String quantity);
/// 划入积分股 (从挖矿账户到交易账户)
Future<Either<Failure, Map<String, dynamic>>> transferIn(String amount);
/// 划出积分股 (从交易账户到挖矿账户)
Future<Either<Failure, Map<String, dynamic>>> transferOut(String amount);
/// 获取我的资产显示信息
Future<Either<Failure, AssetDisplay>> getMyAsset({String? dailyAllocation});
/// 获取指定账户资产显示信息
Future<Either<Failure, AssetDisplay>> getAccountAsset(String accountSequence, {String? dailyAllocation});
}