mirror of
https://github.com/orionprotocol/sdk.git
synced 2026-03-14 06:02:36 +03:00
add veORN method
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@orionprotocol/sdk",
|
||||
"version": "0.19.89-rc0",
|
||||
"version": "0.19.89-rc1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@orionprotocol/sdk",
|
||||
"version": "0.19.89-rc0",
|
||||
"version": "0.19.89-rc1",
|
||||
"hasInstallScript": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@orionprotocol/sdk",
|
||||
"version": "0.19.89-rc0",
|
||||
"version": "0.19.89-rc1",
|
||||
"description": "Orion Protocol SDK",
|
||||
"main": "./lib/index.cjs",
|
||||
"module": "./lib/index.js",
|
||||
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
getPoolResponseSchema,
|
||||
listNFTOrderResponseSchema,
|
||||
listPoolResponseSchema,
|
||||
veORNInfoSchema,
|
||||
} from './schemas/index.js';
|
||||
import { fetchWithValidation } from 'simple-typed-fetch';
|
||||
|
||||
@@ -35,11 +36,18 @@ type ListPoolPayload = BasePayload & {
|
||||
params: [string]
|
||||
};
|
||||
|
||||
type VeORNInfoPayload = BasePayload & {
|
||||
model: 'veORN'
|
||||
method: 'info'
|
||||
params: [string]
|
||||
}
|
||||
|
||||
type Payload =
|
||||
| GetEnvironmentPayload
|
||||
| ListNFTOrderPayload
|
||||
| GetPoolInfoPayload
|
||||
| ListPoolPayload;
|
||||
| GetEnvironmentPayload
|
||||
| ListNFTOrderPayload
|
||||
| GetPoolInfoPayload
|
||||
| ListPoolPayload
|
||||
| VeORNInfoPayload;
|
||||
|
||||
class IntegratorService {
|
||||
private readonly apiUrl: string;
|
||||
@@ -58,6 +66,7 @@ class IntegratorService {
|
||||
this.listNFTOrder = this.listNFTOrder.bind(this);
|
||||
this.getPoolInfo = this.getPoolInfo.bind(this);
|
||||
this.listPool = this.listPool.bind(this);
|
||||
this.veORNInfo = this.veORNInfo.bind(this);
|
||||
}
|
||||
|
||||
makeRPCPayload = (payload: Omit<Payload, 'chainId' | 'jsonrpc'>) => {
|
||||
@@ -115,6 +124,17 @@ class IntegratorService {
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
private readonly veORNInfo = (address: string) => {
|
||||
return fetchWithValidation(this.apiUrl, veORNInfoSchema, {
|
||||
method: 'POST',
|
||||
body: this.makeRPCPayload({
|
||||
model: 'veORN',
|
||||
method: 'info',
|
||||
params: [address]
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export * as schemas from './schemas/index.js';
|
||||
|
||||
@@ -2,3 +2,4 @@ export { default as environmentResponseSchema } from './environment-response-sch
|
||||
export { default as listNFTOrderResponseSchema } from './list-nft-order-response-schema.js';
|
||||
export { default as getPoolResponseSchema } from './get-pool-response-schema.js';
|
||||
export { default as listPoolResponseSchema } from './list-pool-response-schema.js';
|
||||
export { default as veORNInfoSchema } from './veORN-info-schema.js';
|
||||
|
||||
26
src/services/Integrator/schemas/veORN-info-schema.ts
Normal file
26
src/services/Integrator/schemas/veORN-info-schema.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import { z } from 'zod';
|
||||
import { evmAddressSchema } from './util-schemas.js';
|
||||
import infoSchema from './info-schema.js';
|
||||
|
||||
const veORNResultSchema = z.object({
|
||||
avgAPR: z.number(),
|
||||
minAPR: z.number(),
|
||||
maxAPR: z.number(),
|
||||
veTOKENAddress: evmAddressSchema,
|
||||
totalORNLocked: z.number(),
|
||||
totalVeORN: z.number(),
|
||||
weekly_reward: z.number(),
|
||||
userAPR: z.number(),
|
||||
userVeORN: z.number(),
|
||||
userORNLocked: z.number(),
|
||||
userPeriodLock: z.number(),
|
||||
userReward: z.number(),
|
||||
userWeeklyReward: z.number()
|
||||
});
|
||||
|
||||
const veORNInfoSchema = z.object({
|
||||
result: veORNResultSchema,
|
||||
info: infoSchema,
|
||||
});
|
||||
|
||||
export default veORNInfoSchema;
|
||||
Reference in New Issue
Block a user