mirror of
https://github.com/orionprotocol/sdk.git
synced 2026-03-14 06:02:36 +03:00
Semantics improvements
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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'));
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -71,7 +71,11 @@ const selfBrokerSchema = z.custom<SelfBroker>((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}`,
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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()
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -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(),
|
||||
});
|
||||
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user