Commit 6ffab4a8 authored by ml's avatar ml

Merge branch 'master' of ssh://gitlab.mytoken.org:10022/zhuangke/ts-api-demo

# Conflicts:
#	package-lock.json
parents 400b5854 83af69c5
'use strict';
const schedule = require('node-schedule');
let { logger, datetimeUtils } = require('@madex/ex-js-public');
import { spotPairs, ormDB, coinType } from "@madex/ex-ts-dao";
import { getPairFromCore, getCoinFromCore } from '../src/utils/coreSystemUtils'
let running = false;
/**
* 每五分钟检查一次
*/
let job = schedule.scheduleJob('*/15 * * * * ?', async function () {
logger.info('setting sync start');
if (!running) {
try {
await syncPair();
await syncCoin();
running = true;
logger.info("coinAndPair sync job finish");
} catch (e) {
logger.info(e)
}
running = false;
}
});
const syncPair = async () => {
let now = new Date();
let res = await spotPairs.prototype.findAll({
where: {
status:1,
updatedAt:{[ormDB.Op.lt]:new Date(now.getTime()-10*1000)} // 10秒之前的
},
raw: true
})
for (const pair of res) {
const { symbol, id } = pair;
let cfg = await getPairFromCore(symbol);
if (cfg) {
await spotPairs.prototype.update({
status: 2,
product_id: cfg.id,
price_scale: cfg["price-scale"],
price_increment: cfg["price-increment"],
quantity_scale: cfg["quantity-scale"],
quantity_increment: cfg["quantity-increment"],
}, {
where: { id, status: 1 }
});
logger.info(symbol, "sync config success")
}
}
}
const syncCoin = async () => {
let now = new Date();
let res = await coinType.prototype.findAll({
where: {
is_main:1,
main_status:1,
updatedAt:{[ormDB.Op.lt]:new Date(now.getTime()-10*1000)} // 10秒之前的
},
raw: true
})
for (const coin of res) {
const { general_name:symbol, id } = coin;
let cfg = await getCoinFromCore(symbol);
if (cfg) {
await coinType.prototype.update({
main_status: 2,
asset_id: cfg["id"],
}, {
where: { id, main_status: 1 }
});
logger.info(symbol, "sync config success")
}
}
}
// job.invoke();
// 计划任务
\ No newline at end of file
// 计划任务
require("./coinAndPairSetting.sync");
\ No newline at end of file
......@@ -30,7 +30,6 @@
"express-swagger-generator": "^1.1.17",
"geoip-lite": "^1.4.7",
"glob": "10.3.10",
"image-size": "1.0.2",
"isemail": "^3.2.0",
"jsonwebtoken": "^7.4.3",
"lodash": "^4.17.21",
......@@ -106,9 +105,9 @@
}
},
"node_modules/@babel/compat-data": {
"version": "7.25.4",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/compat-data/-/compat-data-7.25.4.tgz",
"integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==",
"version": "7.25.2",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/compat-data/-/compat-data-7.25.2.tgz",
"integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==",
"dev": true,
"license": "MIT",
"engines": {
......@@ -164,13 +163,13 @@
}
},
"node_modules/@babel/generator": {
"version": "7.25.5",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/generator/-/generator-7.25.5.tgz",
"integrity": "sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==",
"version": "7.25.0",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/generator/-/generator-7.25.0.tgz",
"integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.25.4",
"@babel/types": "^7.25.0",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^2.5.1"
......@@ -392,13 +391,13 @@
}
},
"node_modules/@babel/parser": {
"version": "7.25.4",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/parser/-/parser-7.25.4.tgz",
"integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==",
"version": "7.25.3",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/parser/-/parser-7.25.3.tgz",
"integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.25.4"
"@babel/types": "^7.25.2"
},
"bin": {
"parser": "bin/babel-parser.js"
......@@ -423,17 +422,17 @@
}
},
"node_modules/@babel/traverse": {
"version": "7.25.4",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/traverse/-/traverse-7.25.4.tgz",
"integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==",
"version": "7.25.3",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/traverse/-/traverse-7.25.3.tgz",
"integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.25.4",
"@babel/parser": "^7.25.4",
"@babel/generator": "^7.25.0",
"@babel/parser": "^7.25.3",
"@babel/template": "^7.25.0",
"@babel/types": "^7.25.4",
"@babel/types": "^7.25.2",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
......@@ -452,9 +451,9 @@
}
},
"node_modules/@babel/types": {
"version": "7.25.4",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/types/-/types-7.25.4.tgz",
"integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==",
"version": "7.25.2",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@babel/types/-/types-7.25.2.tgz",
"integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
......@@ -875,7 +874,7 @@
},
"node_modules/@madex/ex-js-common": {
"version": "1.0.0",
"resolved": "git+ssh://git@bitbucket.org/biiigle/ex-js-common.git#a074015198403c5598adea7e0fd4380936a5aa2b",
"resolved": "git+ssh://git@bitbucket.org/biiigle/ex-js-common.git#6aa1d7d9264b2a13e13fe6c79d33223205b9cc40",
"license": "ISC",
"dependencies": {
"@madex/ex-js-dao": "git+ssh://git@bitbucket.org/biiigle/ex-js-dao.git#master",
......@@ -1069,9 +1068,9 @@
}
},
"node_modules/@madex/ex-ts-dao": {
"version": "0.0.19",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@madex/ex-ts-dao/-/@madex/ex-ts-dao-0.0.19.tgz",
"integrity": "sha512-53kKxSQOXwHmf2XLooD6xU+EiD9N1wYym5B4De0CQP5NW+pu63DaDsBzQb9IC7cZ9UzYPXUDtYWlv6u10MTgug==",
"version": "0.0.17",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@madex/ex-ts-dao/-/@madex/ex-ts-dao-0.0.17.tgz",
"integrity": "sha512-TDR4FNGVSAv4FLqJQJZ+D8ZeJmBacQIF7AYVECutsL4PWE5LBRP3xylvuL1EB6DRdbDRt/L42k7bdChWn1TN0A==",
"license": "ISC",
"dependencies": {
"@madex/ex-js-public": "git+ssh://git@bitbucket.org/biiigle/ex-js-public.git#master",
......@@ -1697,9 +1696,9 @@
"license": "MIT"
},
"node_modules/@types/validator": {
"version": "13.12.1",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@types/validator/-/validator-13.12.1.tgz",
"integrity": "sha512-w0URwf7BQb0rD/EuiG12KP0bailHKHP5YVviJG9zw3ykAokL0TuxU2TUqMB7EwZ59bDHYdeTIvjI5m0S7qHfOA==",
"version": "13.12.0",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/@types/validator/-/validator-13.12.0.tgz",
"integrity": "sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag==",
"dev": true,
"license": "MIT"
},
......@@ -3322,9 +3321,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001653",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz",
"integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==",
"version": "1.0.30001651",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz",
"integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==",
"dev": true,
"funding": [
{
......@@ -5016,9 +5015,9 @@
}
},
"node_modules/eslint-module-utils": {
"version": "2.8.2",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz",
"integrity": "sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==",
"version": "2.8.1",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
"integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
"dev": true,
"license": "MIT",
"dependencies": {
......@@ -6976,21 +6975,6 @@
"node": ">= 4"
}
},
"node_modules/image-size": {
"version": "1.0.2",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/image-size/-/image-size-1.0.2.tgz",
"integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==",
"license": "MIT",
"dependencies": {
"queue": "6.0.2"
},
"bin": {
"image-size": "bin/image-size.js"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/imageinfo": {
"version": "1.0.4",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/imageinfo/-/imageinfo-1.0.4.tgz",
......@@ -9464,9 +9448,9 @@
}
},
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"version": "4.0.7",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/micromatch/-/micromatch-4.0.7.tgz",
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
"dev": true,
"license": "MIT",
"dependencies": {
......@@ -11485,15 +11469,6 @@
"license": "MIT",
"optional": true
},
"node_modules/queue": {
"version": "6.0.2",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/queue/-/queue-6.0.2.tgz",
"integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
"license": "MIT",
"dependencies": {
"inherits": "~2.0.3"
}
},
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/queue-microtask/-/queue-microtask-1.2.3.tgz",
......@@ -13798,9 +13773,9 @@
}
},
"node_modules/tslib": {
"version": "2.7.0",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/tslib/-/tslib-2.7.0.tgz",
"integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
"version": "2.6.3",
"resolved": "https://packages.aliyun.com/646341b481b284e28f47a25b/npm/npm-registry/tslib/-/tslib-2.6.3.tgz",
"integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
"license": "0BSD"
},
"node_modules/tsscmp": {
......
import * as service from "../service/coinType.service";
import { AddParam, ListParam } from "../service/coinType.service";
let { logger, ResponseUtils, optionalUtils: Optional, apiAssertUtils: ApiAssert } = require('@madex/ex-js-public');
let { logger, Res3Utils, optionalUtils: Optional, apiAssertUtils: ApiAssert } = require('@madex/ex-js-public');
export const list = async (req: any, param: ListParam) => {
......@@ -11,16 +11,16 @@ export const list = async (req: any, param: ListParam) => {
param.page = Optional.opt(param, 'page', 1);
param.size = Optional.opt(param, 'size', 50);
let res = await service.list(param);
return ResponseUtils.success(cmd, res);
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return ResponseUtils.error(func_name, cmd, e);
return Res3Utils.getErrorResult(e);
}
};
export const add = async (req: any, param: AddParam) => {
let func_name = "coinTypeCtl.add";
export const save = async (req: any, param: AddParam) => {
let func_name = "coinTypeCtl.save";
let cmd = req.path;
try {
ApiAssert.notNull('3000', param.symbol);
......@@ -33,11 +33,26 @@ export const add = async (req: any, param: AddParam) => {
ApiAssert.isInt('3000', param.deposit_confirm_count);
ApiAssert.isInt('3000', param.safe_confirm_count);
let res = await service.add(param);
return ResponseUtils.success(cmd, res);
let res = await service.save(param);
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return ResponseUtils.error(func_name, cmd, e);
return Res3Utils.getErrorResult(e);
}
};
export const pushToCoreSystem = async (req: any, id: any) => {
let func_name = "coinTypeCtl.pushToCoreSystem";
let cmd = req.path;
try {
ApiAssert.notNull('3000', id);
let res = await service.pushToCoreSystem(id);
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return Res3Utils.getErrorResult(e);
}
};
import * as service from "../service/spotPair.service";
import { AddParam, ListParam } from "../service/spotPair.service";
let { logger, ResponseUtils, optionalUtils: Optional, apiAssertUtils: ApiAssert } = require('@madex/ex-js-public');
let { logger, Res3Utils, optionalUtils: Optional, apiAssertUtils: ApiAssert } = require('@madex/ex-js-public');
export const list = async (req: any, param: ListParam) => {
......@@ -11,16 +11,16 @@ export const list = async (req: any, param: ListParam) => {
param.page = Optional.opt(param, 'page', 1);
param.size = Optional.opt(param, 'size', 50);
let res = await service.list(param);
return ResponseUtils.success(cmd, res);
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return ResponseUtils.error(func_name, cmd, e);
return Res3Utils.getErrorResult(e);
}
};
export const add = async (req: any, param: AddParam) => {
let func_name = "spotPairCtl.add";
export const save = async (req: any, param: AddParam) => {
let func_name = "spotPairCtl.save";
let cmd = req.path;
try {
ApiAssert.notNull('3000', param.base);
......@@ -31,11 +31,26 @@ export const add = async (req: any, param: AddParam) => {
ApiAssert.notNull('3000', param.quantity_scale);
ApiAssert.notNull('3000', param.maker_fee);
ApiAssert.notNull('3000', param.taker_fee);
let res = await service.add(param);
return ResponseUtils.success(cmd, res);
let res = await service.save(param);
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return ResponseUtils.error(func_name, cmd, e);
return Res3Utils.getErrorResult(e);
}
};
export const pushToCoreSystem = async (req: any, id: any) => {
let func_name = "spotPairCtl.pushToCoreSystem";
let cmd = req.path;
try {
ApiAssert.notNull('3000', id);
let res = await service.pushToCoreSystem(id);
return Res3Utils.result(res);
}
catch (e) {
logger.error(`${func_name} error:${e}`);
return Res3Utils.getErrorResult(e);
}
};
// @madex/ex-ts-dao 是 ts 的 dao, 代码在 bitbucket/ex-js-dao 的 ts 分支上
import { coinType, ormDB } from "@madex/ex-ts-dao";
import { coinType, ormDB, spotPairs } from "@madex/ex-ts-dao";
import { addCoin2Core, addPairToCore } from "../../../utils/coreSystemUtils";
export interface ListParam {
......@@ -11,6 +12,8 @@ export interface ListParam {
}
export interface AddParam {
id: any,
symbol: string;
is_active: number;
......@@ -60,29 +63,29 @@ export interface AddParam {
total_amount?: number;
supply_amount?: number ;
supply_amount?: number;
circulation_rate?: number ;
circulation_rate?: number;
address_num?: number;
price?: string ;
price?: string;
supply_time?:string ;
supply_time?: string;
deflation_rate?:number ;
deflation_rate?: number;
comment?: string ;
comment?: string;
max_transfer_amount?: number ;
max_transfer_amount?: number;
tag: string;
forbid_info_related?: number ;
forbid_info_related?: number;
is_hidden?: number ;
is_hidden?: number;
main_status?: number ;
main_status?: number;
}
......@@ -101,8 +104,39 @@ export async function list(param: ListParam) {
return resList;
}
export const add = async (param: AddParam) => {
await coinType.prototype.create(param);
export const save = async (param: AddParam) => {
let id = param.id;
if (id) {
delete param.id
await coinType.prototype.update(param, {
where: { id: id }
})
}
else {
await coinType.prototype.create(param);
}
return 'ok';
};
export const pushToCoreSystem = async (id: any) => {
let where = { id: id, main_status: 0, is_main: 1 };
let cfg = await coinType.prototype.find({
where: where, raw: true
});
if (cfg) {
let symbol = cfg.general_name;
let optResult = await addCoin2Core(symbol);
if (optResult) {
await coinType.prototype.update({ main_status: 1 }, {
where: where
})
}
}
return 'ok';
};
// @madex/ex-ts-dao 是 ts 的 dao, 代码在 bitbucket/ex-js-dao 的 ts 分支上
import { spotPairs, ormDB } from "@madex/ex-ts-dao";
import { spotPairs, ormDB, coinType } from "@madex/ex-ts-dao";
import { NUMBER } from "sequelize";
import { addPairToCore } from "../../../utils/coreSystemUtils";
export interface ListParam {
symbol: string | any;
page: number;
size: number;
}
export interface AddParam {
base:string;
quote:string;
symbol:string;
name:string;
price_scale:number;
quantity_scale:number;
maker_fee:string;
id: any;
base: string;
quote: string;
symbol: string;
name: string;
price_scale: number;
quantity_scale: number;
maker_fee: string;
taker_fee: string;
}
......@@ -24,7 +36,7 @@ export interface AddParam {
export async function list(param: ListParam) {
let where = {};
if (param.symbol) {
where["symbol"]= { [ormDB.Op.like]: `%${param.symbol}%` };
where["symbol"] = { [ormDB.Op.like]: `%${param.symbol}%` };
}
let resList = await spotPairs.prototype.findAndCount({
where: where,
......@@ -36,8 +48,44 @@ export async function list(param: ListParam) {
return resList;
}
export const add = async (param: AddParam) => {
await spotPairs.prototype.create(param);
export const save = async (param: AddParam) => {
let id = param.id;
if (id) {
delete param.id
await spotPairs.prototype.update(param, {
where: { id: id }
})
}
else {
await spotPairs.prototype.create(param);
}
return 'ok';
};
export const pushToCoreSystem = async (id: any) => {
let where = { id: id, status: 0 };
let cfg = await spotPairs.prototype.find({
where: where, raw: true
});
if (cfg) {
let symbol = cfg.symbol;
let sps = symbol.split("_");
let base = sps[0];
let quote = sps[1]
let param = {
"base": base, "quote": quote, "symbol": symbol, "name": symbol,
"price-scale": cfg.price_scale, "quantity-scale": cfg.quantity_scale,
"maker-fee": cfg.maker_fee, "taker-fee": cfg.taker_fee
}
let optResult = await addPairToCore(param);
if (optResult) {
await spotPairs.prototype.update({ status: 1 }, {
where: where
});
}
}
return 'ok';
};
......@@ -36,10 +36,13 @@ const postFunc = {
'i18n/info/log/list': i18nLogCtrl.list,
'i18n/info/log/revert': i18nLogCtrl.revert,
'spotpair/add': spotPairCtrl.add,
'spotpair/list': spotPairCtrl.list,
'coinType/add': coinTypeCtrl.add,
'spotPair/add': spotPairCtrl.save,
'spotPair/list': spotPairCtrl.list,
'spotPair/spotPairCtl': spotPairCtrl.pushToCoreSystem,
'coinType/add': coinTypeCtrl.save,
'coinType/list': coinTypeCtrl.list,
'coinType/spotPairCtl': coinTypeCtrl.pushToCoreSystem,
//权限管理
'acl/user/add': aclUserCtrl.add,
......
const axios = require("axios");
import configSetting from "./../../config"
const webadmin_endpoint = configSetting.webadmin_endpoint
let { logger } = require('@madex/ex-js-public');
// { id: 1, symbol: 'BTC' }
export const getCoinFromCore = async(symbol)=> {
const url = `${webadmin_endpoint}/asset/by_symbol?symbol=${symbol}`
let { data } = await axios.get(url);
if (data.error) {
logger.error("getCoinFromCore",data);
return null
}
return data[0];
}
// {
// "id": 1,
// "symbol": 'BTC_USDT',
// 'price-scale': 4,
// 'price-increment': 1,
// 'quantity-scale': 2,
// 'quantity-increment': '0'
// }
export const getPairFromCore = async(symbol,market="spot")=> {
const url = `${webadmin_endpoint}/pair/by_symbol?symbol=${symbol}&market=${market}`
let { data } = await axios.get(url);
if (data.error) {
logger.error("getPairFromCore",data);
return null
}
return data[0]
}
export const addCoin2Core = async(symbol)=> {
const url = `${webadmin_endpoint}/asset/add`
let body = {
"symbol":symbol,
}
let { data } = await axios.post(url,body);
if (data.error) {
logger.error(data);
return false;
}
return true;
}
export const addPairToCore = async(body)=> {
const url = `${webadmin_endpoint}/pair/add_product`
let { data } = await axios.post(url,body);
if (data.error) {
logger.error(data);
return false;
}
return true;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment