Types improvements

This commit is contained in:
Aleksandr Kraiz
2022-11-28 13:43:55 +04:00
parent a6300ec2c8
commit 1913a84f1e
8 changed files with 37 additions and 32 deletions

46
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@orionprotocol/sdk",
"version": "0.15.14",
"version": "0.15.15",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@orionprotocol/sdk",
"version": "0.15.14",
"version": "0.15.15",
"license": "ISC",
"dependencies": {
"@ethersproject/abstract-signer": "^5.6.0",
@@ -18,7 +18,7 @@
"crypto-browserify": "^3.12.0",
"ethers": "^5.6.2",
"isomorphic-unfetch": "^3.1.0",
"isomorphic-ws": "^4.0.1",
"isomorphic-ws": "^5.0.0",
"just-clone": "^5.0.1",
"neverthrow": "^4.3.1",
"stream-browserify": "^3.0.0",
@@ -28,7 +28,7 @@
"zod": "^3.17.3"
},
"devDependencies": {
"@types/node": "^17.0.23",
"@types/node": "^18.11.9",
"@types/socket.io-client": "1.4.33",
"@types/uuid": "^8.3.4",
"@types/ws": "^8.5.3",
@@ -43,7 +43,7 @@
"husky": "^7.0.4",
"jest": "^27.5.1",
"ts-loader": "^9.3.0",
"typescript": "^4.7.2",
"typescript": "^4.9.3",
"webpack": "^5.72.0",
"webpack-cli": "^4.9.2"
}
@@ -2343,9 +2343,9 @@
"dev": true
},
"node_modules/@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
"version": "18.11.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
"integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
"dev": true
},
"node_modules/@types/prettier": {
@@ -6191,9 +6191,9 @@
}
},
"node_modules/isomorphic-ws": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
"integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz",
"integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==",
"peerDependencies": {
"ws": "*"
}
@@ -10146,9 +10146,9 @@
}
},
"node_modules/typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"version": "4.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
"integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -12319,9 +12319,9 @@
"dev": true
},
"@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
"version": "18.11.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz",
"integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==",
"dev": true
},
"@types/prettier": {
@@ -15266,9 +15266,9 @@
}
},
"isomorphic-ws": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
"integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz",
"integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==",
"requires": {}
},
"istanbul-lib-coverage": {
@@ -18220,9 +18220,9 @@
}
},
"typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"version": "4.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
"integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"dev": true
},
"unbox-primitive": {

View File

@@ -1,6 +1,6 @@
{
"name": "@orionprotocol/sdk",
"version": "0.15.15",
"version": "0.15.16",
"description": "Orion Protocol SDK",
"main": "./lib/esm/index.js",
"module": "./lib/esm/index.js",
@@ -37,7 +37,7 @@
"url": "https://github.com/orionprotocol/sdk/issues"
},
"devDependencies": {
"@types/node": "^17.0.23",
"@types/node": "^18.11.9",
"@types/socket.io-client": "1.4.33",
"@types/uuid": "^8.3.4",
"@types/ws": "^8.5.3",
@@ -52,7 +52,7 @@
"husky": "^7.0.4",
"jest": "^27.5.1",
"ts-loader": "^9.3.0",
"typescript": "^4.7.2",
"typescript": "^4.9.3",
"webpack": "^5.72.0",
"webpack-cli": "^4.9.2"
},
@@ -66,7 +66,7 @@
"crypto-browserify": "^3.12.0",
"ethers": "^5.6.2",
"isomorphic-unfetch": "^3.1.0",
"isomorphic-ws": "^4.0.1",
"isomorphic-ws": "^5.0.0",
"just-clone": "^5.0.1",
"neverthrow": "^4.3.1",
"stream-browserify": "^3.0.0",

View File

@@ -2,6 +2,7 @@ export { default as cancelOrderTypes } from './cancelOrderTypes';
export { default as orderStatuses } from './orderStatuses';
export { default as orderTypes } from './orderTypes';
export { default as subOrderStatuses } from './subOrderStatuses';
export { default as networkCodes } from './networkCodes';
export * from './chains';
export * from './precisions';

View File

@@ -0,0 +1 @@
export default ['ftm', 'bsc', 'eth', 'polygon', 'okc'] as const;

View File

@@ -14,6 +14,7 @@ import { pairConfigSchema } from './schemas';
import {
aggregatedOrderbookSchema, exchangeOrderbookSchema,
} from './schemas/aggregatedOrderbookSchema';
import networkCodes from '../../constants/networkCodes';
class OrionAggregator {
private readonly apiUrl: string;
@@ -222,7 +223,7 @@ class OrionAggregator {
*/
placeAtomicSwap = (
secretHash: string,
sourceNetworkCode: string,
sourceNetworkCode: Uppercase<typeof networkCodes[number]>,
) => fetchWithValidation(
`${this.apiUrl}/api/v1/atomic-swap`,
placeAtomicSwapSchema,

View File

@@ -1,4 +1,5 @@
import { z } from 'zod';
import networkCodes from '../../../constants/networkCodes';
import redeemOrderSchema from './redeemOrderSchema';
export const atomicSwapHistorySchema = z.array(z.object({
@@ -11,7 +12,7 @@ export const atomicSwapHistorySchema = z.array(z.object({
expiration: z.number(),
secretHash: z.string(),
used: z.boolean(),
sourceNetworkCode: z.string(),
sourceNetworkCode: z.enum(networkCodes),
}),
redeemOrder: redeemOrderSchema,
status: z.enum(['SETTLED', 'EXPIRED', 'ACTIVE']),

View File

@@ -14,6 +14,7 @@ import {
import redeemOrderSchema from '../OrionAggregator/schemas/redeemOrderSchema';
import { sourceAtomicHistorySchema, targetAtomicHistorySchema } from './schemas/atomicHistorySchema';
import { makePartial } from '../../utils';
import { networkCodes } from '../../constants';
interface IAdminAuthHeaders {
auth: string;
@@ -37,7 +38,7 @@ type AtomicSwapHistoryBaseQuery = {
receiver?: string,
used?: 0 | 1,
page?: number,
sourceNetworkCode?: string,
sourceNetworkCode?: 'ftm' | 'bsc' | 'eth' | 'polygon' | 'okc',
}
type AtomicSwapHistorySourceQuery = AtomicSwapHistoryBaseQuery & {
@@ -95,7 +96,7 @@ class OrionBlockchain {
return `${this.apiUrl}/`;
}
private getSummaryRedeem = (brokerAddress: string, unshifted?: 1 | 0, sourceNetworkCode?: string) => {
private getSummaryRedeem = (brokerAddress: string, unshifted?: 1 | 0, sourceNetworkCode?: typeof networkCodes[number]) => {
const url = new URL(`${this.apiUrl}/api/atomic/summary-redeem/${brokerAddress}`);
if (unshifted) {
url.searchParams.append('unshifted', unshifted.toString());

View File

@@ -26,7 +26,7 @@ export function isUnknownObject(x: unknown): x is {
return x !== null && typeof x === 'object';
}
export function isKeyOfObject<T>(
export function isKeyOfObject<K extends string | number | symbol, T extends Record<K, unknown>>(
key: string | number | symbol,
obj: T,
): key is keyof T {