From bceda40a9abbd9c22f87a396f9475aaf2d8ce078 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Thu, 22 Dec 2022 15:11:53 +0000 Subject: [PATCH] OP-3268 [CFD] Deposit amount Added CFDContracts endpoint package.json version update --- package.json | 2 +- src/services/OrionBlockchain/index.ts | 7 +++++++ .../schemas/CFDContractsSchema.ts | 17 +++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/services/OrionBlockchain/schemas/CFDContractsSchema.ts diff --git a/package.json b/package.json index 3a80e33..bbcc421 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.16.0-rc.0", + "version": "0.16.0-rc.1", "description": "Orion Protocol SDK", "main": "./lib/esm/index.js", "module": "./lib/esm/index.js", diff --git a/src/services/OrionBlockchain/index.ts b/src/services/OrionBlockchain/index.ts index 88fa473..86a7b40 100644 --- a/src/services/OrionBlockchain/index.ts +++ b/src/services/OrionBlockchain/index.ts @@ -15,6 +15,7 @@ import redeemOrderSchema from '../OrionAggregator/schemas/redeemOrderSchema'; import { sourceAtomicHistorySchema, targetAtomicHistorySchema } from './schemas/atomicHistorySchema'; import { makePartial } from '../../utils'; import { networkCodes } from '../../constants'; +import CFDContractsSchema from './schemas/CFDContractsSchema'; interface IAdminAuthHeaders { auth: string; @@ -90,6 +91,7 @@ class OrionBlockchain { this.getBlockNumber = this.getBlockNumber.bind(this); this.getRedeemOrderBySecretHash = this.getRedeemOrderBySecretHash.bind(this); this.claimOrder = this.claimOrder.bind(this); + this.getCFDContracts = this.getCFDContracts.bind(this); } get orionBlockchainWsUrl() { @@ -377,6 +379,11 @@ class OrionBlockchain { body: JSON.stringify(secretHashes), }, ); + + getCFDContracts = () => fetchWithValidation( + `${this.apiUrl}/api/cfd/contracts`, + CFDContractsSchema, + ); } export * as schemas from './schemas'; diff --git a/src/services/OrionBlockchain/schemas/CFDContractsSchema.ts b/src/services/OrionBlockchain/schemas/CFDContractsSchema.ts new file mode 100644 index 0000000..c120891 --- /dev/null +++ b/src/services/OrionBlockchain/schemas/CFDContractsSchema.ts @@ -0,0 +1,17 @@ +import { z } from 'zod'; + +const CFDContractsSchema = z.array(z.object({ + name: z.string(), + alias: z.string(), + address: z.string(), + leverage: z.number(), + soLevel: z.number(), + shortFR: z.number(), + longFR: z.number(), + shortFRStored: z.number(), + longFRStored: z.number(), + lastFRPriceUpdateTime: z.number(), + priceIndex: z.number(), +})); + +export default CFDContractsSchema;