APIs for getSink and getConvertValues
- floExchangeAPI.getSink: resolves an active sink id (for a service, default: exchange) - services can be listed in floExchangeAPI.serviceList - floExchangeAPI.getConvertValues: resolves the available convert values
This commit is contained in:
parent
b029c0ec30
commit
c8b70e3fec
@ -600,6 +600,26 @@
|
|||||||
CONVERT_MODE_PUT: 0,
|
CONVERT_MODE_PUT: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const serviceList = exchangeAPI.serviceList = {
|
||||||
|
EXCHANGE: "exchange",
|
||||||
|
CONVERT: "convert",
|
||||||
|
BLOCKCHAIN_BOND: "blockchain-bond",
|
||||||
|
BOBS_FUND: "bobs-fund"
|
||||||
|
}
|
||||||
|
|
||||||
|
exchangeAPI.getSink = function (service = serviceList.EXCHANGE) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!(service in serviceList))
|
||||||
|
return reject(ExchangeError(ExchangeError.BAD_REQUEST_CODE, 'service required', errorCode.INVALID_TYPE));
|
||||||
|
fetch_api('/get-sink?service=' + service)
|
||||||
|
.then(result => {
|
||||||
|
responseParse(result, false)
|
||||||
|
.then(result => resolve(result))
|
||||||
|
.catch(error => reject(error))
|
||||||
|
}).catch(error => reject(error));
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
exchangeAPI.getAccount = function (floID, proxySecret) {
|
exchangeAPI.getAccount = function (floID, proxySecret) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let request = {
|
let request = {
|
||||||
@ -1241,6 +1261,17 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exchangeAPI.getConvertValues = function () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
fetch_api('/get-convert-values')
|
||||||
|
.then(result => {
|
||||||
|
responseParse(result)
|
||||||
|
.then(result => resolve(result))
|
||||||
|
.catch(error => reject(error))
|
||||||
|
}).catch(error => reject(error));
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
exchangeAPI.convertToBTC = function (amount, floID, sinkID, privKey) {
|
exchangeAPI.convertToBTC = function (amount, floID, sinkID, privKey) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!floCrypto.verifyPrivKey(privKey, floID))
|
if (!floCrypto.verifyPrivKey(privKey, floID))
|
||||||
|
|||||||
10
src/app.js
10
src/app.js
@ -76,6 +76,7 @@ module.exports = function App(secret) {
|
|||||||
app.get('/rate-history', Request.GetRateHistory);
|
app.get('/rate-history', Request.GetRateHistory);
|
||||||
app.get('/get-balance', Request.GetBalance);
|
app.get('/get-balance', Request.GetBalance);
|
||||||
app.get('/get-transaction', Request.GetTransaction);
|
app.get('/get-transaction', Request.GetTransaction);
|
||||||
|
app.get('/get-sink', Request.GetSink);
|
||||||
|
|
||||||
//get account details
|
//get account details
|
||||||
app.post('/account', Request.Account);
|
app.post('/account', Request.Account);
|
||||||
@ -88,6 +89,7 @@ module.exports = function App(secret) {
|
|||||||
app.post('/get-transact', Request.GetUserTransacts);
|
app.post('/get-transact', Request.GetUserTransacts);
|
||||||
|
|
||||||
//convert from or to coin
|
//convert from or to coin
|
||||||
|
app.get('/get-convert-values', Request.GetConvertValues);
|
||||||
app.post('/convert-to', Request.ConvertTo);
|
app.post('/convert-to', Request.ConvertTo);
|
||||||
app.post('/convert-from', Request.ConvertFrom);
|
app.post('/convert-from', Request.ConvertFrom);
|
||||||
app.post('/deposit-convert-coin-fund', Request.DepositConvertCoinFund);
|
app.post('/deposit-convert-coin-fund', Request.DepositConvertCoinFund);
|
||||||
@ -127,14 +129,6 @@ module.exports = function App(secret) {
|
|||||||
set: (assets) => Request.assetList = assets
|
set: (assets) => Request.assetList = assets
|
||||||
});
|
});
|
||||||
|
|
||||||
Object.defineProperty(self, "chests", {
|
|
||||||
set: (chests) => Request.chests = chests
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.defineProperty(self, "collectAndCall", {
|
|
||||||
set: (fn) => Request.collectAndCall = fn
|
|
||||||
});
|
|
||||||
|
|
||||||
//Refresh data (from blockchain)
|
//Refresh data (from blockchain)
|
||||||
self.refreshData = (nodeList) => Request.refreshData(nodeList);
|
self.refreshData = (nodeList) => Request.refreshData(nodeList);
|
||||||
|
|
||||||
|
|||||||
@ -248,6 +248,5 @@ function auditBalance(sellerID, buyerID, asset) {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
initiate: startCouplingForAsset,
|
initiate: startCouplingForAsset,
|
||||||
stopAll: stopAllInstance,
|
stopAll: stopAllInstance,
|
||||||
updateBalance,
|
updateBalance
|
||||||
price
|
|
||||||
}
|
}
|
||||||
@ -5,6 +5,8 @@ const market = require("./market");
|
|||||||
const conversion = require('./services/conversion');
|
const conversion = require('./services/conversion');
|
||||||
const blockchain_bonds = require("./services/bonds");
|
const blockchain_bonds = require("./services/bonds");
|
||||||
const bobs_fund = require("./services/bobs-fund");
|
const bobs_fund = require("./services/bobs-fund");
|
||||||
|
const background = require("./background");
|
||||||
|
const keys = require("./keys");
|
||||||
|
|
||||||
const {
|
const {
|
||||||
SIGN_EXPIRE_TIME,
|
SIGN_EXPIRE_TIME,
|
||||||
@ -12,6 +14,7 @@ const {
|
|||||||
} = require("./_constants")["request"];
|
} = require("./_constants")["request"];
|
||||||
|
|
||||||
const eCode = require('../docs/scripts/floExchangeAPI').errorCode;
|
const eCode = require('../docs/scripts/floExchangeAPI').errorCode;
|
||||||
|
const serviceList = require('../docs/scripts/floExchangeAPI').serviceList;
|
||||||
|
|
||||||
var trustedIDs, secret; //containers for trusted IDs and secret
|
var trustedIDs, secret; //containers for trusted IDs and secret
|
||||||
|
|
||||||
@ -132,7 +135,6 @@ function Account(req, res) {
|
|||||||
timestamp: data.timestamp
|
timestamp: data.timestamp
|
||||||
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
}, data.sign, data.floID, data.pubKey).then(req_str => {
|
||||||
market.getAccountDetails(data.floID).then(result => {
|
market.getAccountDetails(data.floID).then(result => {
|
||||||
result.sinkID = market.chests.pick;
|
|
||||||
if (trustedIDs.includes(data.floID))
|
if (trustedIDs.includes(data.floID))
|
||||||
result.subAdmin = true;
|
result.subAdmin = true;
|
||||||
res.send(result);
|
res.send(result);
|
||||||
@ -493,6 +495,43 @@ function ListTradeTransactions(req, res) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function GetConvertValues(req, res) {
|
||||||
|
if (!serving)
|
||||||
|
res.status(INVALID.e_code).send(INCORRECT_SERVER_ERROR.toString());
|
||||||
|
else conversion.getConvertValues()
|
||||||
|
.then(result => res.send(result))
|
||||||
|
.catch(error => {
|
||||||
|
if (error instanceof INVALID)
|
||||||
|
res.status(INVALID.e_code).send(error.toString());
|
||||||
|
else {
|
||||||
|
console.error(error);
|
||||||
|
res.status(INTERNAL.e_code).send(INTERNAL.str("Unable to process! Try again later!"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function GetSink(req, res) {
|
||||||
|
if (!serving)
|
||||||
|
res.status(INVALID.e_code).send(INCORRECT_SERVER_ERROR.toString());
|
||||||
|
else {
|
||||||
|
let service = req.query.service;
|
||||||
|
if (!service)
|
||||||
|
res.status(INVALID.e_code).send(INVALID.str(eCode.MISSING_PARAMETER, "Missing service parameter"));
|
||||||
|
else if (!(service in serviceList))
|
||||||
|
res.status(INVALID.e_code).send(INVALID.str(eCode.INVALID_TYPE, "Invalid service parameter"));
|
||||||
|
else {
|
||||||
|
let group;
|
||||||
|
switch (service) {
|
||||||
|
case serviceList[EXCHANGE]: group = keys.sink_groups.EXCHANGE; break;
|
||||||
|
case serviceList[CONVERT]: group = keys.sink_groups.CONVERT; break;
|
||||||
|
case serviceList[BLOCKCHAIN_BOND]: group = keys.sink_groups.BLOCKCHAIN_BONDS; break;
|
||||||
|
case serviceList[BOBS_FUND]: group = keys.sink_groups.BOBS_FUND; break;
|
||||||
|
}
|
||||||
|
res.send(keys.sink_chest.active_pick(group));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function GetRates(req, res) {
|
function GetRates(req, res) {
|
||||||
if (!serving)
|
if (!serving)
|
||||||
res.status(INVALID.e_code).send(INCORRECT_SERVER_ERROR.toString());
|
res.status(INVALID.e_code).send(INCORRECT_SERVER_ERROR.toString());
|
||||||
@ -590,6 +629,7 @@ module.exports = {
|
|||||||
GetRateHistory,
|
GetRateHistory,
|
||||||
GetTransaction,
|
GetTransaction,
|
||||||
GetBalance,
|
GetBalance,
|
||||||
|
GetSink,
|
||||||
Account,
|
Account,
|
||||||
DepositFLO,
|
DepositFLO,
|
||||||
WithdrawFLO,
|
WithdrawFLO,
|
||||||
@ -600,6 +640,7 @@ module.exports = {
|
|||||||
RemoveUserTag,
|
RemoveUserTag,
|
||||||
AddDistributor,
|
AddDistributor,
|
||||||
RemoveDistributor,
|
RemoveDistributor,
|
||||||
|
GetConvertValues,
|
||||||
ConvertTo,
|
ConvertTo,
|
||||||
ConvertFrom,
|
ConvertFrom,
|
||||||
DepositConvertCoinFund,
|
DepositConvertCoinFund,
|
||||||
@ -614,12 +655,6 @@ module.exports = {
|
|||||||
set assetList(assets) {
|
set assetList(assets) {
|
||||||
market.assetList = assets;
|
market.assetList = assets;
|
||||||
},
|
},
|
||||||
set chests(c) {
|
|
||||||
market.chests = c;
|
|
||||||
},
|
|
||||||
set collectAndCall(fn) {
|
|
||||||
market.collectAndCall = fn;
|
|
||||||
},
|
|
||||||
set secret(s) {
|
set secret(s) {
|
||||||
secret = s;
|
secret = s;
|
||||||
},
|
},
|
||||||
@ -629,10 +664,10 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
pause() {
|
pause() {
|
||||||
serving = false;
|
serving = false;
|
||||||
market.periodicProcess.stop();
|
background.periodicProcess.stop();
|
||||||
},
|
},
|
||||||
resume() {
|
resume() {
|
||||||
serving = true;
|
serving = true;
|
||||||
market.periodicProcess.start();
|
background.periodicProcess.start();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Loading…
Reference in New Issue
Block a user