From ab36c0b26b87a2beb4a7a9051aa2b4b0e9b00227 Mon Sep 17 00:00:00 2001 From: Aleksandr Kraiz Date: Thu, 18 May 2023 22:33:20 +0400 Subject: [PATCH] Semantics improvements --- package.json | 2 +- src/__tests__/basic.test.ts | 3 ++- src/__tests__/bridge.test.ts | 3 ++- src/__tests__/exchangeContract.test.ts | 9 +++++---- src/__tests__/pools.test.ts | 11 ++++++----- src/__tests__/priceFeed.test.ts | 3 ++- src/__tests__/trading.test.ts | 5 +++-- src/constants/exchanges.ts | 2 ++ src/constants/exchangesMap.ts | 2 ++ src/constants/index.ts | 2 ++ src/services/Aggregator/schemas/orderSchema.ts | 6 +++++- .../schemas/governanceContractsSchema.ts | 8 ++++---- src/services/PriceFeed/ws/schemas/candleSchema.ts | 2 +- .../schemas/aggregatedHistorySchema.ts | 8 ++++---- .../ReferralSystem/schemas/claimInfoSchema.ts | 12 ++++++------ .../ReferralSystem/schemas/miniStatsSchema.ts | 6 +++--- .../ReferralSystem/schemas/ratingSchema.ts | 8 ++++---- .../ReferralSystem/schemas/rewardsMappingSchema.ts | 2 +- src/utils/calculateFeeInFeeAsset.ts | 14 +++++++------- src/utils/calculateNetworkFeeInFeeAsset.ts | 10 +++++----- src/utils/calculateServiceFeeInFeeAsset.ts | 8 ++++---- 21 files changed, 71 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 68f13dc..19ce66c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.19.2", + "version": "0.19.3", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/__tests__/basic.test.ts b/src/__tests__/basic.test.ts index df7bbf7..6f8241b 100644 --- a/src/__tests__/basic.test.ts +++ b/src/__tests__/basic.test.ts @@ -10,6 +10,7 @@ import { } from 'http-terminator'; import { ethers } from 'ethers'; import { simpleFetch } from 'simple-typed-fetch'; +import { SERVICE_TOKEN } from '../index.js'; jest.setTimeout(10000); const createServer = (externalHost: string) => { @@ -271,7 +272,7 @@ describe('Orion', () => { }, 10000); unitBSC.aggregator.ws.subscribe('aobus', { - payload: 'ORN-USDT', + payload: `${SERVICE_TOKEN}-USDT`, callback: () => { resolve(true); unitBSC.aggregator.ws.destroy(); diff --git a/src/__tests__/bridge.test.ts b/src/__tests__/bridge.test.ts index e502c97..66e9011 100644 --- a/src/__tests__/bridge.test.ts +++ b/src/__tests__/bridge.test.ts @@ -1,6 +1,7 @@ import { Wallet } from 'ethers'; import Orion from '../Orion/index.js'; import { SupportedChainId } from '../types.js'; +import { SERVICE_TOKEN } from '../index.js'; const privateKey = process.env['PRIVATE_KEY'] if (privateKey === undefined) throw new Error('Private key is required'); @@ -13,7 +14,7 @@ describe('Bridge', () => { const wallet = new Wallet(privateKey); await orion.bridge.swap( - 'ORN', + SERVICE_TOKEN, 0.12345678, SupportedChainId.FANTOM_TESTNET, SupportedChainId.BSC_TESTNET, diff --git a/src/__tests__/exchangeContract.test.ts b/src/__tests__/exchangeContract.test.ts index b2b6a35..f88767b 100644 --- a/src/__tests__/exchangeContract.test.ts +++ b/src/__tests__/exchangeContract.test.ts @@ -1,5 +1,6 @@ import { ethers } from 'ethers'; import Orion from '../Orion/index.js'; +import { SERVICE_TOKEN } from '../index.js'; const privateKey = process.env['PRIVATE_KEY']; if (privateKey === undefined) throw new Error('Private key is required'); @@ -7,7 +8,7 @@ if (privateKey === undefined) throw new Error('Private key is required'); jest.setTimeout(30000); describe('Transfers', () => { - test('Deposit ORN', async () => { + test(`Deposit ${SERVICE_TOKEN}`, async () => { const orion = new Orion('testing'); const bscUnit = orion.getUnit('bsc'); const wallet = new ethers.Wallet( @@ -16,13 +17,13 @@ describe('Transfers', () => { ); await bscUnit.exchange.deposit({ - asset: 'ORN', + asset: SERVICE_TOKEN, amount: 20, signer: wallet, }); }); - test('Withdraw ORN', async () => { + test(`Withdraw ${SERVICE_TOKEN}`, async () => { const orion = new Orion('testing'); const bscUnit = orion.getUnit('bsc'); const wallet = new ethers.Wallet( @@ -31,7 +32,7 @@ describe('Transfers', () => { ); await bscUnit.exchange.withdraw({ - asset: 'ORN', + asset: SERVICE_TOKEN, amount: 20, signer: wallet, }); diff --git a/src/__tests__/pools.test.ts b/src/__tests__/pools.test.ts index 6b837c1..4389527 100644 --- a/src/__tests__/pools.test.ts +++ b/src/__tests__/pools.test.ts @@ -1,5 +1,6 @@ import { ethers } from 'ethers'; import Orion from '../Orion/index.js'; +import { SERVICE_TOKEN } from '../index.js'; const privateKey = process.env['PRIVATE_KEY'] if (privateKey === undefined) throw new Error('Private key is required'); @@ -7,7 +8,7 @@ if (privateKey === undefined) throw new Error('Private key is required'); jest.setTimeout(30000); describe('Pools', () => { - test('Add liquidity ORN', async () => { + test(`Add liquidity ${SERVICE_TOKEN}`, async () => { const orion = new Orion('testing'); const bscUnit = orion.getUnit('bsc'); const wallet = new ethers.Wallet( @@ -16,14 +17,14 @@ describe('Pools', () => { ); await bscUnit.farmingManager.addLiquidity({ - amountAsset: 'ORN', - poolName: 'ORN-USDT', + amountAsset: SERVICE_TOKEN, + poolName: `${SERVICE_TOKEN}-USDT`, amount: 20, signer: wallet, }); }); - test('Remove liquidity ORN', async () => { + test(`Remove liquidity ${SERVICE_TOKEN}`, async () => { const orion = new Orion('testing'); const bscUnit = orion.getUnit('bsc'); const wallet = new ethers.Wallet( @@ -32,7 +33,7 @@ describe('Pools', () => { ); await bscUnit.farmingManager.removeAllLiquidity({ - poolName: 'ORN-USDT', + poolName: `${SERVICE_TOKEN}-USDT`, signer: wallet, }); }); diff --git a/src/__tests__/priceFeed.test.ts b/src/__tests__/priceFeed.test.ts index 155733c..2ceff93 100644 --- a/src/__tests__/priceFeed.test.ts +++ b/src/__tests__/priceFeed.test.ts @@ -1,10 +1,11 @@ import Orion from '../Orion/index.js'; +import { SERVICE_TOKEN } from '../index.js'; describe('Price Feed', () => { test('Ticker', async () => { const { unitsArray } = new Orion('testing'); for (const unit of unitsArray) { - const ticker = 'ORN-USDT'; + const ticker = `${SERVICE_TOKEN}-USDT`; await new Promise((resolve, reject) => { const timeout = setTimeout(() => { reject(new Error('Timeout')); diff --git a/src/__tests__/trading.test.ts b/src/__tests__/trading.test.ts index 0887896..5ed9b0f 100644 --- a/src/__tests__/trading.test.ts +++ b/src/__tests__/trading.test.ts @@ -1,6 +1,7 @@ import { ethers } from 'ethers'; import Orion from '../Orion/index.js'; import swapMarket from '../Unit/Exchange/swapMarket.js'; +import { SERVICE_TOKEN } from '../index.js'; const privateKey = process.env['PRIVATE_KEY'] if (privateKey === undefined) throw new Error('Private key is required'); @@ -17,7 +18,7 @@ describe('Spot trading', () => { ); const result = await swapMarket({ - assetIn: 'ORN', + assetIn: SERVICE_TOKEN, assetOut: 'USDT', amount: 20, type: 'exactSpend', @@ -42,7 +43,7 @@ describe('Spot trading', () => { const result = await bscUnit.exchange.swapMarket({ assetIn: 'USDT', - assetOut: 'ORN', + assetOut: SERVICE_TOKEN, amount: 20, type: 'exactReceive', signer: wallet, diff --git a/src/constants/exchanges.ts b/src/constants/exchanges.ts index 5c646f6..dd10afc 100644 --- a/src/constants/exchanges.ts +++ b/src/constants/exchanges.ts @@ -5,6 +5,7 @@ export default [ 'BINANCE', 'KUCOIN', 'ORION', // Internal + 'INTERNAL_CEX', // DEXes 'SPOOKYSWAP', @@ -12,6 +13,7 @@ export default [ 'UNISWAP', 'QUICKSWAP', 'ORION_POOL', + 'INTERNAL_DEX', 'CHERRYSWAP', 'OKXSWAP', 'CURVE', diff --git a/src/constants/exchangesMap.ts b/src/constants/exchangesMap.ts index 1f67ba5..3af93aa 100644 --- a/src/constants/exchangesMap.ts +++ b/src/constants/exchangesMap.ts @@ -10,6 +10,7 @@ const mapping: Record< BINANCE: 'Binance', KUCOIN: 'KuCoin', ORION: 'Orion', // Internal + INTERNAL_CEX: 'Internal', // DEXes SPOOKYSWAP: 'SpookySwap', @@ -17,6 +18,7 @@ const mapping: Record< UNISWAP: 'Uniswap', QUICKSWAP: 'QuickSwap', ORION_POOL: 'Orion Pool', + INTERNAL_DEX: 'Orion Pool', CHERRYSWAP: 'CherrySwap', OKXSWAP: 'OKXSwap', CURVE: 'Curve', diff --git a/src/constants/index.ts b/src/constants/index.ts index b70d52a..c414279 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -9,3 +9,5 @@ export { default as exchangesMap } from './exchangesMap.js'; export * from './chains.js'; export * from './precisions.js'; export * from './gasLimits.js'; + +export const SERVICE_TOKEN = 'ORN'; diff --git a/src/services/Aggregator/schemas/orderSchema.ts b/src/services/Aggregator/schemas/orderSchema.ts index 193d92c..5d4cfd5 100644 --- a/src/services/Aggregator/schemas/orderSchema.ts +++ b/src/services/Aggregator/schemas/orderSchema.ts @@ -71,7 +71,11 @@ const selfBrokerSchema = z.custom((value) => { return false; }); -const brokerAddressSchema = z.enum(['ORION_BROKER', 'SELF_BROKER']) +const brokerAddressSchema = z.enum([ + 'INTERNAL_BROKER', + 'ORION_BROKER', + 'SELF_BROKER' +]) .or(selfBrokerSchema) .or(z.string().refine(ethers.utils.isAddress, (value) => ({ message: `subOrder.subOrders.[n].brokerAddress must be an address, got ${value}`, diff --git a/src/services/BlockchainService/schemas/governanceContractsSchema.ts b/src/services/BlockchainService/schemas/governanceContractsSchema.ts index ea43623..4e2c526 100644 --- a/src/services/BlockchainService/schemas/governanceContractsSchema.ts +++ b/src/services/BlockchainService/schemas/governanceContractsSchema.ts @@ -2,11 +2,11 @@ import { z } from 'zod'; const governanceContractsSchema = z.object({ controllerAddress: z.string(), - veORNAddress: z.string(), - veORNYieldDistributorV4Address: z.string(), - orionGaugeORNRewardsDistributorAddress: z.string(), + veTOKENAddress: z.string(), + veTOKENYieldDistributorV4Address: z.string(), + orionGaugeTOKENRewardsDistributorAddress: z.string(), time_total: z.string(), - absolute_ve_orn_in_voting: z.string(), + absolute_ve_token_in_voting: z.string(), info: z.record( z.string(), z.object({ diff --git a/src/services/PriceFeed/ws/schemas/candleSchema.ts b/src/services/PriceFeed/ws/schemas/candleSchema.ts index f91ff0d..c7e456b 100644 --- a/src/services/PriceFeed/ws/schemas/candleSchema.ts +++ b/src/services/PriceFeed/ws/schemas/candleSchema.ts @@ -3,7 +3,7 @@ import { z } from 'zod'; const candleSchema = z .tuple([ z.string(), // interval [FIVE, FIFTEEN, THIRTY, HOUR, HOUR4, DAY, WEEK] - z.string(), // pair ["orn-usdt"] + z.string(), // pair ["btc-usdt"] z.number(), // timeStart [timestamp] z.number(), // timeEnd [timestamp] z.string(), // close diff --git a/src/services/ReferralSystem/schemas/aggregatedHistorySchema.ts b/src/services/ReferralSystem/schemas/aggregatedHistorySchema.ts index c4d143e..9c4f5c3 100644 --- a/src/services/ReferralSystem/schemas/aggregatedHistorySchema.ts +++ b/src/services/ReferralSystem/schemas/aggregatedHistorySchema.ts @@ -9,12 +9,12 @@ const aggregatedHistorySchema = z.object({ date_unix: z.number(), date_time_local: z.string(), date_time_utc: z.string(), - amount_orn: z.string(), - amount_orn_fmt: z.number(), + amount_token: z.string(), + amount_token_fmt: z.number(), amount_usd: z.string(), amount_usd_fmt: z.number(), - orn_price: z.string(), - orn_price_fmt: z.number() + token_price: z.string(), + token_price_fmt: z.number() })), pagination_info: z.object({ c_page: z.number(), diff --git a/src/services/ReferralSystem/schemas/claimInfoSchema.ts b/src/services/ReferralSystem/schemas/claimInfoSchema.ts index 7ed1135..43fbd40 100644 --- a/src/services/ReferralSystem/schemas/claimInfoSchema.ts +++ b/src/services/ReferralSystem/schemas/claimInfoSchema.ts @@ -3,27 +3,27 @@ import { z } from 'zod'; const claimInfoSchema = z.object({ global: z.object({ total_non_accrued: z.number(), - total_non_accrued_orn: z.number(), + total_non_accrued_token: z.number(), total_non_accrued_usd: z.number() }), chain_to_reward_info: z.record( z.string(), z.object({ total_accrued: z.number(), - total_accrued_orn: z.number(), + total_accrued_token: z.number(), total_accrued_usd: z.number(), total_non_accrued: z.number(), - total_non_accrued_orn: z.number(), + total_non_accrued_token: z.number(), total_non_accrued_usd: z.number(), total_earned: z.number() }) ), mini_stats: z.object({ - earned_on_referrals_orn: z.number(), + earned_on_referrals_token: z.number(), earned_on_referrals_usd: z.number(), - orn_usd: z.number(), + token_usd: z.number(), registered_via_link_count: z.number(), - earned_in_a_week_orn: z.number(), + earned_in_a_week_token: z.number(), earned_in_a_week_usd: z.number() }), }); diff --git a/src/services/ReferralSystem/schemas/miniStatsSchema.ts b/src/services/ReferralSystem/schemas/miniStatsSchema.ts index 97c2c8c..cf79838 100644 --- a/src/services/ReferralSystem/schemas/miniStatsSchema.ts +++ b/src/services/ReferralSystem/schemas/miniStatsSchema.ts @@ -1,11 +1,11 @@ import { z } from 'zod'; const miniStatsSchema = z.object({ - earned_on_referrals_orn: z.number(), + earned_on_referrals_token: z.number(), earned_on_referrals_usd: z.number(), - orn_usd: z.number(), + token_usd: z.number(), registered_via_link_count: z.number(), - earned_in_a_week_orn: z.number(), + earned_in_a_week_token: z.number(), earned_in_a_week_usd: z.number(), }); diff --git a/src/services/ReferralSystem/schemas/ratingSchema.ts b/src/services/ReferralSystem/schemas/ratingSchema.ts index 653cb7a..b67128a 100644 --- a/src/services/ReferralSystem/schemas/ratingSchema.ts +++ b/src/services/ReferralSystem/schemas/ratingSchema.ts @@ -10,8 +10,8 @@ const ratingSchema = z.object({ personal_info: z.object({ rank_id: z.number(), wallet: z.string(), - staked_ve_orn: z.string(), - staked_ve_orn_fmt: z.number(), + staked_ve_token: z.string(), + staked_ve_token_fmt: z.number(), weighted_volume: z.string(), weighted_volume_fmt: z.number(), total_weight: z.string(), @@ -23,8 +23,8 @@ const ratingSchema = z.object({ list: z.array(z.object({ rank_id: z.number(), wallet: z.string(), - staked_ve_orn: z.string(), - staked_ve_orn_fmt: z.number(), + staked_ve_token: z.string(), + staked_ve_token_fmt: z.number(), weighted_volume: z.string(), weighted_volume_fmt: z.number(), total_weight: z.string(), diff --git a/src/services/ReferralSystem/schemas/rewardsMappingSchema.ts b/src/services/ReferralSystem/schemas/rewardsMappingSchema.ts index 984a120..66b3dba 100644 --- a/src/services/ReferralSystem/schemas/rewardsMappingSchema.ts +++ b/src/services/ReferralSystem/schemas/rewardsMappingSchema.ts @@ -5,7 +5,7 @@ const rewardsMappingSchema = z.object({ z.object({ distribution: z.object({ dist: z.object({ - orion: z.number(), + underlying_token: z.number(), referers_list: z.array(z.number()), }), address_to_reward_mapping: z.record(z.string(), z.number()), diff --git a/src/utils/calculateFeeInFeeAsset.ts b/src/utils/calculateFeeInFeeAsset.ts index 9ee75db..e4a6da9 100644 --- a/src/utils/calculateFeeInFeeAsset.ts +++ b/src/utils/calculateFeeInFeeAsset.ts @@ -5,23 +5,23 @@ import calculateServiceFeeInFeeAsset from './calculateServiceFeeInFeeAsset.js'; const calculateFeeInFeeAsset = ( amount: BigNumber.Value, - feeAssetPriceInOrn: BigNumber.Value, - baseAssetPriceInOrn: BigNumber.Value, - baseCurrencyPriceInOrn: BigNumber.Value, + feeAssetPriceInServiceToken: BigNumber.Value, + baseAssetPriceInServiceToken: BigNumber.Value, + baseCurrencyPriceInServiceToken: BigNumber.Value, gasPriceGwei: BigNumber.Value, feePercent: BigNumber.Value, ) => { const serviceFeeInFeeAsset = calculateServiceFeeInFeeAsset( amount, - feeAssetPriceInOrn, - baseAssetPriceInOrn, + feeAssetPriceInServiceToken, + baseAssetPriceInServiceToken, feePercent, ); const networkFeeInFeeAsset = calculateNetworkFeeInFeeAsset( gasPriceGwei, FILL_ORDERS_GAS_LIMIT, - baseCurrencyPriceInOrn, - feeAssetPriceInOrn, + baseCurrencyPriceInServiceToken, + feeAssetPriceInServiceToken, ); return { diff --git a/src/utils/calculateNetworkFeeInFeeAsset.ts b/src/utils/calculateNetworkFeeInFeeAsset.ts index 939fdfd..23b611c 100644 --- a/src/utils/calculateNetworkFeeInFeeAsset.ts +++ b/src/utils/calculateNetworkFeeInFeeAsset.ts @@ -4,16 +4,16 @@ import calculateNetworkFee from './calculateNetworkFee.js'; const calculateNetworkFeeInFeeAsset = ( gasPriceGwei: BigNumber.Value, gasLimit: BigNumber.Value, - baseCurrencyPriceInOrn: BigNumber.Value, - feeAssetPriceInOrn: BigNumber.Value, + baseCurrencyPriceInServiceToken: BigNumber.Value, + feeAssetPriceInServiceToken: BigNumber.Value, ) => { const networkFee = calculateNetworkFee(gasPriceGwei, gasLimit); - const networkFeeInOrn = new BigNumber(networkFee).multipliedBy(baseCurrencyPriceInOrn); - const networkFeeInFeeAsset = networkFeeInOrn + const networkFeeInServiceToken = new BigNumber(networkFee).multipliedBy(baseCurrencyPriceInServiceToken); + const networkFeeInFeeAsset = networkFeeInServiceToken .multipliedBy( new BigNumber(1) - .div(feeAssetPriceInOrn), + .div(feeAssetPriceInServiceToken), ); return networkFeeInFeeAsset.toString(); diff --git a/src/utils/calculateServiceFeeInFeeAsset.ts b/src/utils/calculateServiceFeeInFeeAsset.ts index bab38b0..4cad980 100644 --- a/src/utils/calculateServiceFeeInFeeAsset.ts +++ b/src/utils/calculateServiceFeeInFeeAsset.ts @@ -2,14 +2,14 @@ import { BigNumber } from 'bignumber.js'; export default function calculateServiceFeeInFeeAsset( amount: BigNumber.Value, - feeAssetPriceInOrn: BigNumber.Value, - baseAssetPriceInOrn: BigNumber.Value, + feeAssetPriceInServiceToken: BigNumber.Value, + baseAssetPriceInServiceToken: BigNumber.Value, feePercent: BigNumber.Value, ) { const result = new BigNumber(amount) .multipliedBy(new BigNumber(feePercent).div(100)) - .multipliedBy(baseAssetPriceInOrn) - .multipliedBy(new BigNumber(1).div(feeAssetPriceInOrn)) + .multipliedBy(baseAssetPriceInServiceToken) + .multipliedBy(new BigNumber(1).div(feeAssetPriceInServiceToken)) .toString(); return result;