| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- import express from 'express';
- import { startSyncMarketsData, getIorInfo } from "../libs/syncData.js";
- import { getLineInfo } from "../libs/pinnacleClient.js";
- import Logs from "../libs/logs.js";
- import {
- createLimitOrder,
- getBalanceAllowance,
- getMultipleOrderBooks,
- getOrderBook,
- transferWallet,
- } from "../libs/polymarketClient.js";
- const router = express.Router();
- router.get('/balance/:wallet', (req, res) => {
- const { wallet } = req.params;
- if (wallet !== "both" && wallet !== "proxy" && wallet !== "deposit") {
- return res.badRequest('invalid wallet');
- }
- getBalanceAllowance({ wallet })
- .then(data => res.sendSuccess(data))
- .catch(error => {
- Logs.errDev('get balance allowance error', error);
- return res.sendError(error);
- });
- });
- router.post('/wallet/transfer', (req, res) => {
- const { amount, from, to } = req.body;
- if (!amount) {
- return res.badRequest('amount is required');
- }
- if (!from) {
- return res.badRequest('from is required');
- }
- if (!to) {
- return res.badRequest('to is required');
- }
- transferWallet({ amount, from, to })
- .then(data => res.sendSuccess(data))
- .catch(error => {
- Logs.errDev('transfer wallet error', error);
- return res.sendError(error);
- });
- });
- router.get('/get_ior_info/:id/:ior', (req, res) => {
- const { id, ior } = req.params;
- getIorInfo(ior, id)
- .then(data => res.sendSuccess(data))
- .catch(error => {
- Logs.errDev('get ior info error', error);
- return res.sendError(error);
- });
- });
- router.get('/orderbook/:tokenId', (req, res) => {
- getOrderBook(req.params.tokenId)
- .then(data => res.sendSuccess(data))
- .catch(error => {
- Logs.errDev('get order book error', error);
- return res.sendError(error);
- });
- });
- router.post('/get_line_info', (req, res) => {
- getLineInfo(req.body)
- .then(data => res.sendSuccess(data))
- .catch(error => {
- Logs.errDev('get line info error', error);
- return res.sendError(error);
- });
- });
- router.post('/orderbooks', (req, res) => {
- const { tokenIds } = req.body;
- if (!Array.isArray(tokenIds) || tokenIds.length === 0) {
- return res.badRequest('tokenIds is required');
- }
- getMultipleOrderBooks(tokenIds)
- .then(data => res.sendSuccess(data))
- .catch(error => {
- Logs.errDev('get multiple order books error', error);
- return res.sendError(error);
- });
- });
- router.post('/orders/limit', (req, res) => {
- const {
- tokenID,
- tokenId,
- price,
- size,
- side,
- tickSize = "0.01",
- negRisk = false,
- orderType,
- // postOnly = false,
- expiration,
- deferExec = false,
- } = req.body;
- createLimitOrder({
- tokenID: tokenID || tokenId,
- price,
- size,
- side,
- tickSize,
- negRisk,
- orderType,
- // postOnly,
- expiration,
- deferExec,
- })
- .then(data => res.sendSuccess(data))
- .catch(error => {
- Logs.errDev('create limit order error', error);
- return res.sendError(error);
- });
- });
- startSyncMarketsData();
- export default router;
|