diff --git a/apps/coordinator-api/src/app/routers/marketplace_gpu.py b/apps/coordinator-api/src/app/routers/marketplace_gpu.py index 1818f6a8..9c2acb4f 100755 --- a/apps/coordinator-api/src/app/routers/marketplace_gpu.py +++ b/apps/coordinator-api/src/app/routers/marketplace_gpu.py @@ -293,7 +293,7 @@ async def buy_gpu( } -@router.post("/marketplace/gpu/list_for_sale") +@router.post("/marketplace/gpu/sell") async def sell_gpu( request: GPUSellRequest, session: Annotated[Session, Depends(get_session)], diff --git a/cli/handlers/market.py b/cli/handlers/market.py index d3ae61ef..68f30e88 100644 --- a/cli/handlers/market.py +++ b/cli/handlers/market.py @@ -285,13 +285,32 @@ def handle_market_gpu_list(args, default_coordinator_url, output_format): def handle_market_buy(args, default_coordinator_url, read_password, render_mapping): - """Handle marketplace buy command via coordinator API.""" + """Handle marketplace buy command via coordinator API using dual-mode wallet adapter.""" + from ..utils.dual_mode_wallet_adapter import DualModeWalletAdapter + from ..config import Config + coordinator_url = getattr(args, 'rpc_url', default_coordinator_url) or default_coordinator_url if not args.item or not args.wallet: print("Error: --item and --wallet are required") sys.exit(1) + # Load config and use dual-mode adapter + try: + config = Config() + except Exception: + config = None + + adapter = DualModeWalletAdapter(config, use_daemon=True) + + # Get wallet balance via daemon first + try: + balance_info = adapter.get_wallet_balance(args.wallet) + if balance_info: + print(f"Wallet balance: {balance_info.get('balance', 0)} AIT") + except Exception as e: + print(f"Note: Could not get balance from daemon ({e}), proceeding...") + # Submit purchase to coordinator API purchase_data = { "buyer_id": args.wallet,