mirror of
https://github.com/orionprotocol/sdk.git
synced 2026-03-16 16:21:32 +03:00
feat: governance improvements (#211)
This commit is contained in:
@@ -18,12 +18,6 @@ import { makePartial } from '../../utils';
|
||||
import type { networkCodes } from '../../constants/index.js';
|
||||
import { fetchWithValidation } from 'simple-typed-fetch';
|
||||
import type { BasicAuthCredentials } from '../../types.js';
|
||||
import {
|
||||
governanceChainsInfoSchema,
|
||||
governanceContractsSchema,
|
||||
governancePoolSchema,
|
||||
governancePoolsSchema
|
||||
} from './schemas';
|
||||
|
||||
type IAdminAuthHeaders = {
|
||||
auth: string
|
||||
@@ -116,10 +110,6 @@ class BlockchainService {
|
||||
this.getBlockNumber = this.getBlockNumber.bind(this);
|
||||
this.getRedeemOrderBySecretHash = this.getRedeemOrderBySecretHash.bind(this);
|
||||
this.claimOrder = this.claimOrder.bind(this);
|
||||
this.getGovernanceContracts = this.getGovernanceContracts.bind(this);
|
||||
this.getGovernancePools = this.getGovernancePools.bind(this);
|
||||
this.getGovernancePool = this.getGovernancePool.bind(this);
|
||||
this.getGovernanceChainsInfo = this.getGovernanceChainsInfo.bind(this);
|
||||
}
|
||||
|
||||
get basicAuthHeaders() {
|
||||
@@ -487,30 +477,6 @@ class BlockchainService {
|
||||
body: JSON.stringify(secretHashes),
|
||||
},
|
||||
);
|
||||
|
||||
getGovernanceContracts = () => fetchWithValidation(
|
||||
`${this.apiUrl}/api/governance/info`,
|
||||
governanceContractsSchema,
|
||||
{ headers: this.basicAuthHeaders },
|
||||
);
|
||||
|
||||
getGovernancePools = () => fetchWithValidation(
|
||||
`${this.apiUrl}/api/governance/pools`,
|
||||
governancePoolsSchema,
|
||||
{ headers: this.basicAuthHeaders },
|
||||
);
|
||||
|
||||
getGovernancePool = (address: string) => fetchWithValidation(
|
||||
`${this.apiUrl}/api/governance/pools/${address}`,
|
||||
governancePoolSchema,
|
||||
{ headers: this.basicAuthHeaders },
|
||||
);
|
||||
|
||||
getGovernanceChainsInfo = () => fetchWithValidation(
|
||||
`${this.apiUrl}/api/governance/chains-info`,
|
||||
governanceChainsInfoSchema,
|
||||
{ headers: this.basicAuthHeaders },
|
||||
);
|
||||
}
|
||||
|
||||
export * as schemas from './schemas/index.js';
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
const governanceChainsInfoSchema = z.object({
|
||||
isChainSupported: z.boolean(),
|
||||
});
|
||||
|
||||
export default governanceChainsInfoSchema;
|
||||
@@ -1,19 +0,0 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
const governanceContractsSchema = z.object({
|
||||
controllerAddress: z.string(),
|
||||
veTOKENAddress: z.string(),
|
||||
veTOKENYieldDistributorV4Address: z.string(),
|
||||
time_total: z.string(),
|
||||
absolute_ve_token_in_voting: z.string(),
|
||||
info: z.record(
|
||||
z.string(),
|
||||
z.object({
|
||||
gaugeAddress: z.string(),
|
||||
gaugeType: z.number(),
|
||||
gaugeName: z.string(),
|
||||
})
|
||||
),
|
||||
});
|
||||
|
||||
export default governanceContractsSchema;
|
||||
@@ -1,18 +0,0 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
const governancePoolSchema = z.object({
|
||||
min_apr: z.string(),
|
||||
max_apr: z.string(),
|
||||
tvl: z.string(),
|
||||
lp_supply: z.string(),
|
||||
lp_staked: z.string(),
|
||||
lp_staked_with_boost: z.string(),
|
||||
lp_price_in_usd: z.string(),
|
||||
reward_per_period: z.string(),
|
||||
lock_time_for_max_multiplier: z.string(),
|
||||
lock_max_multiplier: z.string(),
|
||||
veorn_max_multiplier: z.string(),
|
||||
veorn_boost_scale_factor: z.string(),
|
||||
});
|
||||
|
||||
export default governancePoolSchema;
|
||||
@@ -1,28 +0,0 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
const governancePoolsSchema = z.array(
|
||||
z.object({
|
||||
slug: z.string(),
|
||||
identifier: z.string(),
|
||||
chain: z.string(),
|
||||
platform: z.string(),
|
||||
logo: z.string(),
|
||||
pair: z.string(),
|
||||
lp_address: z.string(),
|
||||
lp_staked: z.string(),
|
||||
lp_staked_with_boost: z.string(),
|
||||
lp_supply: z.string(),
|
||||
lp_price_in_usd: z.string(),
|
||||
farm_address: z.string(),
|
||||
pool_tokens: z.tuple([z.string(), z.string()]),
|
||||
pool_rewards: z.array(z.string()),
|
||||
tvl: z.string(),
|
||||
min_apr: z.string(),
|
||||
max_apr: z.string(),
|
||||
reward_per_period: z.array(z.string()),
|
||||
weight: z.string(),
|
||||
liquidity: z.string(),
|
||||
})
|
||||
);
|
||||
|
||||
export default governancePoolsSchema;
|
||||
@@ -12,9 +12,5 @@ export { default as atomicSummarySchema } from './atomicSummarySchema.js';
|
||||
export { default as poolsLpAndStakedSchema } from './poolsLpAndStakedSchema.js';
|
||||
export { default as userVotesSchema } from './userVotesSchema.js';
|
||||
export { default as userEarnedSchema } from './userEarnedSchema.js';
|
||||
export { default as governanceContractsSchema } from './governanceContractsSchema.js';
|
||||
export { default as governancePoolsSchema } from './governancePoolsSchema.js';
|
||||
export { default as governancePoolSchema } from './governancePoolSchema.js';
|
||||
export { default as governanceChainsInfoSchema } from './governanceChainsInfoSchema.js';
|
||||
export { default as poolsV3InfoSchema } from './poolsV3InfoSchema.js';
|
||||
export { pricesWithQuoteAssetSchema } from './pricesWithQuoteAssetSchema.js';
|
||||
|
||||
@@ -208,7 +208,7 @@ class IndexerService {
|
||||
});
|
||||
};
|
||||
|
||||
readonly poolV2Info = (token0: string, token1: string, address: string) => {
|
||||
readonly poolV2Info = (token0: string, token1: string, address: string | undefined) => {
|
||||
return fetchWithValidation(this.apiUrl, PoolV2InfoResponseSchema, {
|
||||
method: 'POST',
|
||||
body: this.makeRPCPayload({
|
||||
|
||||
@@ -6,16 +6,16 @@ const environmentResponseSchema = z.object({
|
||||
result: z.object({
|
||||
chainId: z.number().int().nonnegative(),
|
||||
nativeToken: z.string(),
|
||||
ORN: evmAddressSchema,
|
||||
WETH9: evmAddressSchema,
|
||||
OrionV3Factory: evmAddressSchema.optional(),
|
||||
OrionV2Factory: evmAddressSchema,
|
||||
OrionV2Factory: evmAddressSchema.optional(),
|
||||
OrionV3NFTManager: evmAddressSchema.optional(),
|
||||
SwapRouterV3: evmAddressSchema.optional(),
|
||||
OrionFarmV3: evmAddressSchema.optional(),
|
||||
OrionFarmV2: evmAddressSchema,
|
||||
OrionVoting: evmAddressSchema,
|
||||
veORN: evmAddressSchema,
|
||||
ORN: evmAddressSchema,
|
||||
WETH9: evmAddressSchema,
|
||||
OrionFarmV2: evmAddressSchema.optional(),
|
||||
OrionVoting: evmAddressSchema.optional(),
|
||||
veORN: evmAddressSchema.optional(),
|
||||
}),
|
||||
info: infoSchema,
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@ const poolInfoSchema = z.object({
|
||||
token0Decimals: z.number().int().nonnegative().max(18),
|
||||
token1Decimals: z.number().int().nonnegative().max(18),
|
||||
WETH9: z.string(),
|
||||
farmAddress: z.string(),
|
||||
farmAddress: z.string().optional(),
|
||||
weight: z.number(),
|
||||
liquidity0: z.number(),
|
||||
liquidity1: z.number(),
|
||||
|
||||
Reference in New Issue
Block a user