From bbf054bc74a3a32018f58cf52448f3a09d4bd248 Mon Sep 17 00:00:00 2001 From: Dmitry Leleko Date: Tue, 11 Apr 2023 02:13:10 +0300 Subject: [PATCH] OP-3702 Add governancePoolSchema --- package-lock.json | 4 ++-- package.json | 2 +- src/services/OrionBlockchain/index.ts | 7 +++++++ .../schemas/governancePoolSchema.ts | 18 ++++++++++++++++++ src/services/OrionBlockchain/schemas/index.ts | 1 + 5 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 src/services/OrionBlockchain/schemas/governancePoolSchema.ts diff --git a/package-lock.json b/package-lock.json index 3af0656..c24f5ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.18.13-rc2", + "version": "0.18.13-rc3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.18.13-rc2", + "version": "0.18.13-rc3", "license": "ISC", "dependencies": { "@babel/runtime": "^7.21.0", diff --git a/package.json b/package.json index 7ac744e..d06d449 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.18.13-rc2", + "version": "0.18.13-rc3", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/OrionBlockchain/index.ts b/src/services/OrionBlockchain/index.ts index e8f3680..e1ab29b 100644 --- a/src/services/OrionBlockchain/index.ts +++ b/src/services/OrionBlockchain/index.ts @@ -13,6 +13,7 @@ import { cfdHistorySchema, governanceContractsSchema, governancePoolsSchema, + governancePoolSchema, } from './schemas/index.js'; import type redeemOrderSchema from '../OrionAggregator/schemas/redeemOrderSchema.js'; import { sourceAtomicHistorySchema, targetAtomicHistorySchema } from './schemas/atomicHistorySchema.js'; @@ -108,6 +109,7 @@ class OrionBlockchain { this.getCFDHistory = this.getCFDHistory.bind(this); this.getGovernanceContracts = this.getGovernanceContracts.bind(this); this.getGovernancePools = this.getGovernancePools.bind(this); + this.getGovernancePool = this.getGovernancePool.bind(this); } get orionBlockchainWsUrl() { @@ -436,6 +438,11 @@ class OrionBlockchain { `${this.apiUrl}/api/governance/pools`, governancePoolsSchema, ); + + getGovernancePool = (address: string) => fetchWithValidation( + `${this.apiUrl}/api/governance/pools/${address}`, + governancePoolSchema, + ); } export * as schemas from './schemas/index.js'; diff --git a/src/services/OrionBlockchain/schemas/governancePoolSchema.ts b/src/services/OrionBlockchain/schemas/governancePoolSchema.ts new file mode 100644 index 0000000..bb3c6f8 --- /dev/null +++ b/src/services/OrionBlockchain/schemas/governancePoolSchema.ts @@ -0,0 +1,18 @@ +import { z } from 'zod'; + +const governancePoolSchema = z.object({ + base_apr: z.number(), + max_apr: z.number(), + tvl: z.string(), + lp_supply: z.string(), + lp_staked: z.string(), + lp_staked_with_boost: z.string(), + lp_price: z.string(), + reward_per_period: z.number(), + 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; diff --git a/src/services/OrionBlockchain/schemas/index.ts b/src/services/OrionBlockchain/schemas/index.ts index e862163..e79e0c9 100644 --- a/src/services/OrionBlockchain/schemas/index.ts +++ b/src/services/OrionBlockchain/schemas/index.ts @@ -16,3 +16,4 @@ export { default as cfdContractsSchema } from './cfdContractsSchema.js'; export { default as cfdHistorySchema } from './cfdHistorySchema.js'; export { default as governanceContractsSchema } from './governanceContractsSchema.js'; export { default as governancePoolsSchema } from './governancePoolsSchema.js'; +export { default as governancePoolSchema } from './governancePoolSchema.js';