Skip to content
This repository has been archived by the owner on Apr 8, 2024. It is now read-only.

Commit

Permalink
Merge pull request #555 from rhinofi/feature/PI-387-use-fetch-instead…
Browse files Browse the repository at this point in the history
…-of-request-promise

Feature/PI-387 use fetch instead of request promise
  • Loading branch information
adrian-gierakowski authored Aug 31, 2023
2 parents a51ee78 + cf8c7c7 commit 7faf8d4
Show file tree
Hide file tree
Showing 22 changed files with 113 additions and 75 deletions.
51 changes: 51 additions & 0 deletions examples/34.estimatedNextBatchTime.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/usr/bin/env -S yarn node
/* eslint-disable no-unused-vars */

/*
DO NOT EDIT THIS FILE BY HAND!
Examples are generated using helpers/buildExamples.js script.
Check README.md for more details.
*/

const sw = require('@rhino.fi/starkware-crypto')
const getWeb3 = require('./helpers/getWeb3')

const RhinofiClientFactory = require('../src')
const envVars = require('./helpers/loadFromEnvOrConfig')(
process.env.CONFIG_FILE_NAME
)
const logExampleResult = require('./helpers/logExampleResult')(__filename)

const ethPrivKey = envVars.ETH_PRIVATE_KEY
// NOTE: you can also generate a new key using:`
// const starkPrivKey = rhinofi.stark.createPrivateKey()
const starkPrivKey = envVars.STARK_PRIVATE_KEY
const rpcUrl = envVars.RPC_URL

const { web3, provider } = getWeb3(ethPrivKey, rpcUrl)

const rhinofiConfig = {
api: envVars.API_URL,
dataApi: envVars.DATA_API_URL,
useAuthHeader: true,
wallet: {
type: 'tradingKey',
meta: {
starkPrivateKey: starkPrivKey
}
}
// Add more variables to override default values
}

;(async () => {
const rhinofi = await RhinofiClientFactory(web3, rhinofiConfig)

const estimatedNextBatchTimeResponse = await rhinofi.estimatedNextBatchTime()

logExampleResult(estimatedNextBatchTimeResponse)

})()
.catch(error => {
console.error(error)
process.exit(1)
})
1 change: 1 addition & 0 deletions examples/helpers/examplesList.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ module.exports = Object.freeze([
'transfer',
'getRegistrationStatuses',
'generateL1RegistrationPayload',
'estimatedNextBatchTime',
// TODO
// 'submitBuyOrder',
// 'submitSellOrder',
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rhino.fi/client-js",
"version": "5.2.2",
"version": "5.3.0",
"main": "src/index.js",
"files": [
"src",
Expand Down
7 changes: 4 additions & 3 deletions src/api/deposit.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const { post } = require('request-promise')
const post = require('../lib/dvf/post-generic')

const DVFError = require('../lib/dvf/DVFError')
const validateAssertions = require('../lib/validators/validateAssertions')

Expand Down Expand Up @@ -36,7 +37,7 @@ module.exports = async (dvf, token, amount, starkPrivateKey, nonce, signature) =

const starkSignature = dvf.stark.sign(starkKeyPair, starkMessage)

const url = dvf.config.api + '/v1/trading/w/deposit'
const url = '/v1/trading/w/deposit'

const data = {
token,
Expand All @@ -51,7 +52,7 @@ module.exports = async (dvf, token, amount, starkPrivateKey, nonce, signature) =

await dvf.contract.approve(token, dvf.token.toBaseUnitAmount(token, amount), dvf.config.DVF.starkExContractAddress, 'ETHEREUM')

const depositResponse = await post(url, { json: data })
const depositResponse = await post(dvf, url, data)

const { status, transactionHash } = await dvf.contract.deposit(
tempVaultId,
Expand Down
13 changes: 3 additions & 10 deletions src/api/estimatedNextBatchTime.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
const { get } = require('request-promise')
const get = require('../lib/dvf/get-generic')

module.exports = async dvf => {
// avoid browser cache with timestamp as querystring
const t = Date.now()

const url = `${dvf.config.api}/v1/trading/r/estimatedNextBatchTime?t=${t}`
try {
const data = await get(url)
return JSON.parse(data)
}
catch(e) {
return null;
}
const url = `/v1/trading/r/estimatedNextBatchTime?t=${t}`
return get(dvf, url)
}
7 changes: 3 additions & 4 deletions src/api/eth/getGasStationPrice.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
const { get } = require('request-promise')

const { request } = require('@rhino.fi/dvf-utils')
/**
* Provides a safe average gas price
*/

module.exports = async (dvf) => {
try {
const res = await get(`${dvf.config.gasApi}/json/ethgasAPI.json?api-key=${dvf.config.gasStationApiKey || ''}`)
dvf.config.defaultGasPrice = parseInt((JSON.parse(res).average * 1.25 *100000000))
const res = await request.get(`${dvf.config.gasApi}/json/ethgasAPI.json?api-key=${dvf.config.gasStationApiKey || ''}`)
dvf.config.defaultGasPrice = parseInt((res.average * 1.25 *100000000))
} catch(e) {
console.log('Error getting safe gas priec, using default ', e)
}
Expand Down
6 changes: 3 additions & 3 deletions src/api/fastWithdrawal.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { post } = require('request-promise')
const post = require('../lib/dvf/post-generic')

module.exports = async (dvf, withdrawalData) => {
const url = dvf.config.api + '/v1/trading/w/fastWithdrawal'
const url = '/v1/trading/w/fastWithdrawal'
const json = await dvf.createFastWithdrawalPayload(withdrawalData)
return post(url, { json })
return post(dvf, url, json)
}
6 changes: 3 additions & 3 deletions src/api/fastWithdrawalFee.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { get } = require('request-promise')
const get = require('../lib/dvf/get-generic')

// TODO: Deprecated (CHAIN-719)
module.exports = async (dvf, token) => {
const url = dvf.config.api + '/v1/trading/r/fastWithdrawalFee'
return get(url, { json: true, qs: { token } })
const url = '/v1/trading/r/fastWithdrawalFee'
return get(dvf, url, { token })
}
6 changes: 3 additions & 3 deletions src/api/getConfig.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const { post } = require('request-promise')
const post = require('../lib/dvf/post-generic')

module.exports = async dvf => {
const url = dvf.config.api + '/v1/trading/r/getConf'
const url = '/v1/trading/r/getConf'
try {
const exchangeConf = await post(url, { json: {} })
const exchangeConf = await post(dvf, url)
dvf.config = Object.assign({}, dvf.config, exchangeConf)
return exchangeConf
} catch (error) {
Expand Down
7 changes: 3 additions & 4 deletions src/api/getGasPrice.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
const { get } = require('request-promise')
const get = require('../lib/dvf/get-generic')

module.exports = async (dvf) => {
const defaultGasPrice = dvf.config.defaultGasPrice
const oldGasPrice = { fast: defaultGasPrice * 1.2, average: defaultGasPrice * 0.9, cheap: defaultGasPrice * 0.8 }

const endpoint = '/v1/trading/r/getGasPrice'
const url = dvf.config.api + endpoint
const url = '/v1/trading/r/getGasPrice'

try {
const newGasPrice = await get(url, { json: true })
const newGasPrice = await get(dvf, url)
dvf.config.defaultGasPrice = newGasPrice.fast || dvf.config.defaultGasPrice
return newGasPrice || oldGasPrice
}
Expand Down
5 changes: 2 additions & 3 deletions src/api/getTickers.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
const { get } = require('request-promise')
const get = require('../lib/dvf/get-generic')

module.exports = async (dvf, symbols) => {
if (symbols.constructor !== Array) {
symbols = [symbols]
}

const response = await get(`${dvf.config.api}/market-data/tickers?symbols=${symbols.join(',')}`)
return JSON.parse(response)
return get(dvf, `/market-data/tickers?symbols=${symbols.join(',')}`)
}
8 changes: 4 additions & 4 deletions src/api/getTokenHolders.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const { get } = require('request-promise')
const get = require('../lib/dvf/get-generic')

module.exports = async (dvf, token) => {
if (token) {
const response = await get(
`${dvf.config.api}/v1/trading/r/getTokenHolders?token=${token}`
return get(
dvf,
`/v1/trading/r/getTokenHolders?token=${token}`
)
return response
}
return null
}
8 changes: 4 additions & 4 deletions src/api/getTokenLiquidityLeft.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const { get } = require('request-promise')
const get = require('../lib/dvf/get-generic')

module.exports = async (dvf, token) => {
if (token) {
const response = await get(
`${dvf.config.api}/v1/trading/r/getTokenLiquidityLeft?token=${token}`
return get(
dvf,
`/v1/trading/r/getTokenLiquidityLeft?token=${token}`
)
return response
}
return null
}
8 changes: 4 additions & 4 deletions src/api/getTokenSaleStartEnd.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const { get } = require('request-promise')
const get = require('../lib/dvf/get-generic')

module.exports = async (dvf, token) => {
if (token) {
const response = await get(
`${dvf.config.api}/v1/trading/r/getTokenSaleStartEnd?token=${token}`
return get(
dvf,
`/v1/trading/r/getTokenSaleStartEnd?token=${token}`
)
return response
}
return null
}
6 changes: 3 additions & 3 deletions src/api/ledger/deposit.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const {post} = require('request-promise')
const post = require('../../lib/dvf/post-generic')
const validateAssertions = require('../../lib/validators/validateAssertions')

module.exports = async (dvf, token, amount, path, nonce, signature) => {
Expand All @@ -17,9 +17,9 @@ module.exports = async (dvf, token, amount, path, nonce, signature) => {
starkPublicKey: starkDeposit.starkPublicKey
}

const url = dvf.config.api + '/v1/trading/w/deposit'
const url = '/v1/trading/w/deposit'

const deposit = await post(url, {json: data})
const deposit = await post(dvf, url, data)
const ctDeposit = await dvf.contract.deposit(tempVaultId, token, amount, `0x${starkDeposit.starkPublicKey.x}`)

return {...deposit, ...ctDeposit}
Expand Down
6 changes: 3 additions & 3 deletions src/api/ledger/transferUsingVaultIdAndStarkKey.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const { post } = require('request-promise')
const post = require('../../lib/dvf/post-generic')
const makeCreateSignedTransferTxLedger = require('../../lib/ledger/makeCreateSignedTransferTxLedger')

module.exports = async (dvf, transferData, path, feeRecipient) => {
const url = dvf.config.api + '/v1/trading/w/transfer'
const url = '/v1/trading/w/transfer'
const createSignedTransferTx = makeCreateSignedTransferTxLedger(dvf)(path)
const json = await dvf.createTransferPayload(transferData, feeRecipient, createSignedTransferTx)
return post(url, { json })
return post(dvf, url, json)
}
9 changes: 3 additions & 6 deletions src/api/ledger/withdraw.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { post } = require('request-promise')
const post = require('../../lib/dvf/post-generic')
const validateAssertions = require('../../lib/validators/validateAssertions')

module.exports = async (dvf, token, amount, starkWithdrawal) => {
Expand Down Expand Up @@ -28,10 +28,7 @@ module.exports = async (dvf, token, amount, starkWithdrawal) => {
expireTime
}

//console.log({ data })
const url = dvf.config.api + '/v1/trading/w/withdraw'
const url = '/v1/trading/w/withdraw'

return post(url, {
json: data
})
return post(dvf, url, data)
}
7 changes: 3 additions & 4 deletions src/api/submitMarketOrder.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { post } = require('request-promise')
const post = require('../lib/dvf/post-generic')
const { Joi } = require('@rhino.fi/dvf-utils')
/*
Keeping the schema visible and not in a seperate method
Expand Down Expand Up @@ -30,7 +30,6 @@ const schema = Joi.object({
module.exports = async (dvf, orderData) => {
const { value, error } = schema.validate(orderData)
// TODO handle error
return post(dvf.config.api + '/v1/trading/w/submitOrder', {
json: await dvf.createMarketOrderPayload(value)
})
const data = await dvf.createMarketOrderPayload(value)
return post(dvf, '/v1/trading/w/submitOrder', data)
}
4 changes: 2 additions & 2 deletions src/api/submitOrder.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { post } = require('request-promise')
const post = require('../lib/dvf/post-generic')
const DVFError = require('../lib/dvf/DVFError')
const { Joi } = require('@rhino.fi/dvf-utils')
const P = require('@rhino.fi/aigle')
Expand Down Expand Up @@ -67,5 +67,5 @@ module.exports = async (dvf, orderData) => {
: dvf.createOrderPayload(value)
)

return post(dvf.config.api + '/v1/trading/w/submitOrder', { json })
return post(dvf, '/v1/trading/w/submitOrder', json)
}
6 changes: 3 additions & 3 deletions src/api/transferUsingVaultIdAndStarkKey.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
const { post } = require('request-promise')
const post = require('../lib/dvf/post-generic')

module.exports = async (dvf, transferData, feeRecipient) => {
const url = dvf.config.api + '/v1/trading/w/transfer'
const url = '/v1/trading/w/transfer'

const json = await dvf.createTransferPayload(transferData, feeRecipient)
return post(url, { json })
return post(dvf, url, json)
}
6 changes: 3 additions & 3 deletions src/api/withdraw.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { post } = require('request-promise')
const post = require('../lib/dvf/post-generic')
const DVFError = require('../lib/dvf/DVFError')
const validateAssertions = require('../lib/validators/validateAssertions')
const { Joi } = require('@rhino.fi/dvf-utils')
Expand Down Expand Up @@ -43,7 +43,7 @@ module.exports = async (dvf, token, amount, starkPrivateKey) => {

const starkSignature = dvf.stark.sign(starkKeyPair, starkMessage)

const url = dvf.config.api + '/v1/trading/w/withdraw'
const url = '/v1/trading/w/withdraw'

const data = {
token,
Expand All @@ -55,5 +55,5 @@ module.exports = async (dvf, token, amount, starkPrivateKey) => {
expireTime
}
//console.log({ data })
return post(url, { json: data })
return post(dvf, url, data)
}
9 changes: 4 additions & 5 deletions src/lib/dvf/post-generic.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
const { post } = require('request-promise')
const { request } = require('@rhino.fi/dvf-utils')
const _omitBy = require('lodash/omitBy')
const _isNil = require('lodash/isNil')

module.exports = async (dvf, endpoint, json = {}, headers = {}) => {
const url = dvf.config.api + endpoint

const options = {
uri: url,
headers,
// removes null and undefined values
json: _omitBy(json, _isNil)
data: _omitBy(json, _isNil)
}

return post(options)
}
return request.post(url, options)
}

0 comments on commit 7faf8d4

Please sign in to comment.