feat: bitfinex implementation
This commit is contained in:
parent
80291637c0
commit
98c48ba853
6 changed files with 68 additions and 4 deletions
|
|
@ -4,7 +4,7 @@ const _ = require('lodash/fp')
|
||||||
const { ALL } = require('../../plugins/common/ccxt')
|
const { ALL } = require('../../plugins/common/ccxt')
|
||||||
|
|
||||||
const { BTC, BCH, DASH, ETH, LTC, USDT, ZEC, XMR, LN, TRX, USDT_TRON } = COINS
|
const { BTC, BCH, DASH, ETH, LTC, USDT, ZEC, XMR, LN, TRX, USDT_TRON } = COINS
|
||||||
const { bitpay, coinbase, itbit, bitstamp, kraken, binanceus, cex, binance } = ALL
|
const { bitpay, coinbase, itbit, bitstamp, kraken, binanceus, cex, binance, bitfinex } = ALL
|
||||||
|
|
||||||
const TICKER = 'ticker'
|
const TICKER = 'ticker'
|
||||||
const WALLET = 'wallet'
|
const WALLET = 'wallet'
|
||||||
|
|
@ -17,6 +17,8 @@ const ZERO_CONF = 'zeroConf'
|
||||||
const WALLET_SCORING = 'wallet_scoring'
|
const WALLET_SCORING = 'wallet_scoring'
|
||||||
|
|
||||||
const ALL_ACCOUNTS = [
|
const ALL_ACCOUNTS = [
|
||||||
|
{ code: 'bitfinex', display: 'Bitfinex', class: TICKER, cryptos: bitfinex.CRYPTO },
|
||||||
|
{ code: 'bitfinex', display: 'Bitfinex', class: EXCHANGE, cryptos: bitfinex.CRYPTO },
|
||||||
{ code: 'binance', display: 'Binance', class: TICKER, cryptos: binance.CRYPTO },
|
{ code: 'binance', display: 'Binance', class: TICKER, cryptos: binance.CRYPTO },
|
||||||
{ code: 'binanceus', display: 'Binance.us', class: TICKER, cryptos: binanceus.CRYPTO },
|
{ code: 'binanceus', display: 'Binance.us', class: TICKER, cryptos: binanceus.CRYPTO },
|
||||||
{ code: 'cex', display: 'CEX.IO', class: TICKER, cryptos: cex.CRYPTO },
|
{ code: 'cex', display: 'CEX.IO', class: TICKER, cryptos: cex.CRYPTO },
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,8 @@ const SECRET_FIELDS = [
|
||||||
'telnyx.apiKey',
|
'telnyx.apiKey',
|
||||||
'vonage.apiSecret',
|
'vonage.apiSecret',
|
||||||
'galoy.walletId',
|
'galoy.walletId',
|
||||||
'galoy.apiSecret'
|
'galoy.apiSecret',
|
||||||
|
'bitfinex.secret'
|
||||||
]
|
]
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ const binanceus = require('../exchange/binanceus')
|
||||||
const cex = require('../exchange/cex')
|
const cex = require('../exchange/cex')
|
||||||
const bitpay = require('../ticker/bitpay')
|
const bitpay = require('../ticker/bitpay')
|
||||||
const binance = require('../exchange/binance')
|
const binance = require('../exchange/binance')
|
||||||
|
const bitfinex = require('../exchange/bitfinex')
|
||||||
const logger = require('../../logger')
|
const logger = require('../../logger')
|
||||||
|
|
||||||
const { BTC, BCH, DASH, ETH, LTC, ZEC, USDT, TRX, USDT_TRON, LN } = COINS
|
const { BTC, BCH, DASH, ETH, LTC, ZEC, USDT, TRX, USDT_TRON, LN } = COINS
|
||||||
|
|
@ -24,7 +25,8 @@ const ALL = {
|
||||||
CRYPTO: [BTC, ETH, LTC, DASH, ZEC, BCH, USDT, USDT_TRON, TRX, LN],
|
CRYPTO: [BTC, ETH, LTC, DASH, ZEC, BCH, USDT, USDT_TRON, TRX, LN],
|
||||||
FIAT: 'ALL_CURRENCIES'
|
FIAT: 'ALL_CURRENCIES'
|
||||||
},
|
},
|
||||||
binance: binance
|
binance: binance,
|
||||||
|
bitfinex: bitfinex
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildMarket (fiatCode, cryptoCode, serviceName) {
|
function buildMarket (fiatCode, cryptoCode, serviceName) {
|
||||||
|
|
|
||||||
21
lib/plugins/exchange/bitfinex.js
Normal file
21
lib/plugins/exchange/bitfinex.js
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
const { COINS } = require('@lamassu/coins')
|
||||||
|
const _ = require('lodash/fp')
|
||||||
|
|
||||||
|
const { ORDER_TYPES } = require('./consts')
|
||||||
|
|
||||||
|
const ORDER_TYPE = ORDER_TYPES.MARKET
|
||||||
|
const { BTC, ETH, LTC, BCH, USDT, LN } = COINS
|
||||||
|
const CRYPTO = [BTC, ETH, LTC, BCH, USDT, LN]
|
||||||
|
const FIAT = ['USD', 'EUR']
|
||||||
|
const AMOUNT_PRECISION = 8
|
||||||
|
const REQUIRED_CONFIG_FIELDS = ['key', 'secret']
|
||||||
|
|
||||||
|
const loadConfig = (account) => {
|
||||||
|
const mapper = {
|
||||||
|
'key': 'apiKey',
|
||||||
|
}
|
||||||
|
const mapped = _.mapKeys(key => mapper[key] ? mapper[key] : key)(account)
|
||||||
|
return { ...mapped, timeout: 3000 }
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { loadConfig, REQUIRED_CONFIG_FIELDS, CRYPTO, FIAT, ORDER_TYPE, AMOUNT_PRECISION }
|
||||||
36
new-lamassu-admin/src/pages/Services/schemas/bitfinex.js
Normal file
36
new-lamassu-admin/src/pages/Services/schemas/bitfinex.js
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
import * as Yup from 'yup'
|
||||||
|
|
||||||
|
import SecretInputFormik from 'src/components/inputs/formik/SecretInput'
|
||||||
|
import TextInputFormik from 'src/components/inputs/formik/TextInput'
|
||||||
|
|
||||||
|
import { secretTest } from './helper'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
code: 'bitfinex',
|
||||||
|
name: 'Bitfinex',
|
||||||
|
title: 'Bitfinex (Exchange)',
|
||||||
|
elements: [
|
||||||
|
{
|
||||||
|
code: 'key',
|
||||||
|
display: 'API Key',
|
||||||
|
component: TextInputFormik,
|
||||||
|
face: true,
|
||||||
|
long: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: 'secret',
|
||||||
|
display: 'API Secret',
|
||||||
|
component: SecretInputFormik
|
||||||
|
}
|
||||||
|
],
|
||||||
|
getValidationSchema: account => {
|
||||||
|
return Yup.object().shape({
|
||||||
|
key: Yup.string('The API key must be a string')
|
||||||
|
.max(100, 'The API key is too long')
|
||||||
|
.required('The API key is required'),
|
||||||
|
secret: Yup.string('The API secret must be a string')
|
||||||
|
.max(100, 'The API secret is too long')
|
||||||
|
.test(secretTest(account?.secret, 'API secret'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import binance from './binance'
|
import binance from './binance'
|
||||||
import binanceus from './binanceus'
|
import binanceus from './binanceus'
|
||||||
|
import bitfinex from './bitfinex'
|
||||||
import bitgo from './bitgo'
|
import bitgo from './bitgo'
|
||||||
import bitstamp from './bitstamp'
|
import bitstamp from './bitstamp'
|
||||||
import blockcypher from './blockcypher'
|
import blockcypher from './blockcypher'
|
||||||
|
|
@ -31,5 +32,6 @@ export default {
|
||||||
[cex.code]: cex,
|
[cex.code]: cex,
|
||||||
[ciphertrace.code]: ciphertrace,
|
[ciphertrace.code]: ciphertrace,
|
||||||
[trongrid.code]: trongrid,
|
[trongrid.code]: trongrid,
|
||||||
[binance.code]: binance
|
[binance.code]: binance,
|
||||||
|
[bitfinex.code]: bitfinex
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue