From 2c26af4e36f332d3f07d76ad5a1dc837e76112c2 Mon Sep 17 00:00:00 2001 From: Ukridge <53254325+Ukridge@users.noreply.github.com> Date: Mon, 11 Mar 2024 15:57:45 +0300 Subject: [PATCH 01/25] Update package.json (version) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cec14eb..b549948 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.68-rc1", + "version": "0.20.68", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 5cb1bfb9d93b2161bea0dbc26f4bb42f1293467d Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 12 Mar 2024 12:13:40 +0300 Subject: [PATCH 02/25] getAmountAt function --- package-lock.json | 4 ++-- package.json | 2 +- src/services/Indexer/index.ts | 11 +++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d4e89e..26e988f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.66-rc2", + "version": "0.20.69", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.66-rc2", + "version": "0.20.69", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index b549948..3b5722a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.68", + "version": "0.20.69", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/Indexer/index.ts b/src/services/Indexer/index.ts index bcdfaca..3a4bb1e 100644 --- a/src/services/Indexer/index.ts +++ b/src/services/Indexer/index.ts @@ -94,6 +94,7 @@ class IndexerService { this.veORNInfo = this.veORNInfo.bind(this); this.listAmount = this.listAmount.bind(this); this.getAmountByORN = this.getAmountByORN.bind(this); + this.getAmountAt = this.getAmountAt.bind(this); this.getAmountAtCurrent = this.getAmountAtCurrent.bind(this); this.getVotingInfo = this.getVotingInfo.bind(this); } @@ -117,6 +118,16 @@ class IndexerService { }); }; + readonly getAmountAt = (amount: number, timestamp?: number): BigNumber => { + const currentTime = Date.now() / 1000; + + // sqrt + return BigNumber(amount).dividedBy(this.getK(timestamp ?? currentTime)); + }; + + /** + * @deprecated In favor of getAmountAt + */ readonly getAmountAtCurrent = (amount: number): BigNumber => { const timestamp = Date.now() / 1000; From c814d41dc1c30eff7f11e23cc083ca05da078da3 Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 12 Mar 2024 13:44:14 +0300 Subject: [PATCH 03/25] fix: timestamp --- package-lock.json | 4 ++-- package.json | 2 +- src/services/Indexer/index.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26e988f..82eccec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.69", + "version": "0.20.70", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.69", + "version": "0.20.70", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 3b5722a..af701f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.69", + "version": "0.20.70", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/Indexer/index.ts b/src/services/Indexer/index.ts index 3a4bb1e..597871e 100644 --- a/src/services/Indexer/index.ts +++ b/src/services/Indexer/index.ts @@ -119,10 +119,10 @@ class IndexerService { }; readonly getAmountAt = (amount: number, timestamp?: number): BigNumber => { - const currentTime = Date.now() / 1000; + const finalTimestamp = timestamp !== undefined ? timestamp / 1000 : Date.now() / 1000; // sqrt - return BigNumber(amount).dividedBy(this.getK(timestamp ?? currentTime)); + return BigNumber(amount).dividedBy(this.getK(finalTimestamp)); }; /** From daf45567c8826a09a4d27efbb2364d7546789356 Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 12 Mar 2024 15:18:48 +0300 Subject: [PATCH 04/25] fixed getAmountAt --- package-lock.json | 4 ++-- package.json | 2 +- src/services/Indexer/index.ts | 26 ++++++++++++++++++-------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82eccec..8bb3d76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.70", + "version": "0.20.71", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.70", + "version": "0.20.71", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index af701f3..9396db9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.70", + "version": "0.20.71", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/Indexer/index.ts b/src/services/Indexer/index.ts index 597871e..2791f8a 100644 --- a/src/services/Indexer/index.ts +++ b/src/services/Indexer/index.ts @@ -9,7 +9,7 @@ import { PoolV2InfoResponseSchema, testIncrementorSchema, veORNInfoResponseSchema, - votingInfoResponseSchema + votingInfoResponseSchema, } from './schemas'; import { fetchWithValidation } from 'simple-typed-fetch'; import { BigNumber } from 'bignumber.js'; @@ -118,16 +118,23 @@ class IndexerService { }); }; - readonly getAmountAt = (amount: number, timestamp?: number): BigNumber => { - const finalTimestamp = timestamp !== undefined ? timestamp / 1000 : Date.now() / 1000; + /** + * @param {number} amount - amount + * @param {number} [timestamp = Date.now()] - timestamp, defaults to current time + */ + readonly getAmountAt = ( + amount: number, + timestamp = Date.now() + ): BigNumber => { + const finalTimestamp = timestamp / 1000; // sqrt return BigNumber(amount).dividedBy(this.getK(finalTimestamp)); }; /** - * @deprecated In favor of getAmountAt - */ + * @deprecated since version 69 in favor of getAmountAt + */ readonly getAmountAtCurrent = (amount: number): BigNumber => { const timestamp = Date.now() / 1000; @@ -145,8 +152,7 @@ class IndexerService { const multSQRT = deltaDaysBN.dividedBy(WEEK_DAYS).sqrt(); const multCUBE = deltaDaysBN.dividedBy(alpha).pow(3); - return BigNumber(amountToken) - .multipliedBy(multSQRT.plus(multCUBE)); + return BigNumber(amountToken).multipliedBy(multSQRT.plus(multCUBE)); }; readonly getVotingInfo = (userAddress?: string) => { @@ -219,7 +225,11 @@ class IndexerService { }); }; - readonly poolV2Info = (token0: string, token1: string, address: string | undefined) => { + readonly poolV2Info = ( + token0: string, + token1: string, + address: string | undefined + ) => { return fetchWithValidation(this.apiUrl, PoolV2InfoResponseSchema, { method: 'POST', body: this.makeRPCPayload({ From 14acef6d14a69c210112e5a706219ba08583d212 Mon Sep 17 00:00:00 2001 From: Ukridge <53254325+Ukridge@users.noreply.github.com> Date: Wed, 13 Mar 2024 01:34:40 +0300 Subject: [PATCH 05/25] Update README.md --- README.md | 55 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 9ff3632..b06f8c3 100644 --- a/README.md +++ b/README.md @@ -735,56 +735,63 @@ Please take look at code example below. Simple example: ```ts -import Orion from '../Orion'; +// Node.js + +import { Orion } from '@orionprotocol/sdk' import {Wallet} from "ethers"; -import {simpleFetch} from "simple-typed-fetch"; (async() => { const apiKey = '958153f1-b8b9-3ec4-84eb-2147429105d9'; const secretKey = 'secretKey'; const yourWalletPrivateKey = '0x...'; - + const orion = new Orion('testing'); // Leave empty for PROD environment const bsc = orion.getUnit('bsc'); const wallet = new Wallet(yourWalletPrivateKey, bsc.provider); - + // This can be done only once, no need to repeat this every time - // assetToDecimals can also be useful for calculations - const {assetToAddress, assetToDecimals} = await simpleFetch(bsc.blockchainService.getInfo)(); - + // assetToDecimals can also be useful for calculations + // const {assetToAddress, assetToDecimals} = await bsc.blockchainService.getInfo(); + const info = await bsc.blockchainService.getInfo(); + + if(!info.isOk()) + return; + + const {assetToAddress, assetToDecimals} = info.value.data; + // Also you need to allow FRQ contract to spend tokens from your address. // This also can be done only once. await bsc.pmm.setAllowance(assetToAddress.ORN, '1000000000000000000', wallet); - + // Just output the PMM router contract address console.log('Router contract address: ', await bsc.pmm.getContractAddress()); const rfqOrder = await bsc.aggregator.RFQOrder( - assetToAddress.ORN, // Spending asset - assetToAddress.USDT, // Receiving asset - '10000000000', // Amount in "satoshi" of spending asset - apiKey, - secretKey, - '0x61Eed69c0d112C690fD6f44bB621357B89fBE67F' // Can be any address, ignored for now + assetToAddress.ORN, // Spending asset + assetToAddress.USDT, // Receiving asset + '1000000000', // Amount in "satoshi" of spending asset + apiKey, + secretKey, + '0x61Eed69c0d112C690fD6f44bB621357B89fBE67F' // Can be any address, ignored for now ); - + if(!rfqOrder.success) { console.log(rfqOrder.error); return; } - + // ... here you can check order prices, etc. - + // Send order to blockchain try { - const tx = await bsc.pmm.fillRFQOrder(rfqOrder, wallet); - - // If tx.hash is not empty - then transaction was sent to blockchain - console.log(tx.hash); + const tx = await bsc.pmm.fillRFQOrder(rfqOrder, wallet); + + // If tx.hash is not empty - then transaction was sent to blockchain + console.log(tx.hash); } catch(err) { - console.log(err); - } + console.log(err); + } })(); ``` @@ -814,4 +821,4 @@ RFQ order response example description (`rfqOrder` from example above): * maker - can be ignored for now; * allowedSender - can be ignored for now; * makingAmount - how much you will RECEIVE (in receiving asset's precision) -* takingAmount - how much you should SPEND (in spending asset's precision) \ No newline at end of file +* takingAmount - how much you should SPEND (in spending asset's precision) From 8dedc46cb58e7bc709ceaa01402c3bc4f90992f3 Mon Sep 17 00:00:00 2001 From: TheJuze Date: Wed, 13 Mar 2024 13:34:18 +0300 Subject: [PATCH 06/25] Remove analyticsAPI from config --- ADVANCED.md | 2 -- package-lock.json | 4 ++-- package.json | 2 +- src/Orion/index.ts | 1 - src/__tests__/basic.test.ts | 2 -- src/config/envs.json | 5 ----- src/config/schemas/pureEnvSchema.ts | 1 - src/types.ts | 1 - 8 files changed, 3 insertions(+), 15 deletions(-) diff --git a/ADVANCED.md b/ADVANCED.md index f4b1267..8f3fd9b 100644 --- a/ADVANCED.md +++ b/ADVANCED.md @@ -2,7 +2,6 @@ ```ts const orion = new Orion({ - analyticsAPI: "https://analytics-api.orionprotocol.io", referralAPI: "https://referral-api.orionprotocol.io", networks: { 1: { @@ -26,7 +25,6 @@ const orion = new Orion({ // Also you can set some config as default and override it for some params const orion = new Orion("testing", { - analyticsAPI: "https://asdasd.orionprotocol.io", networks: { [SupportedChainId.BSC_TESTNET]: { nodeJsonRpc: "https://data-seed-prebsc-1-s1.binance.org:8545/", diff --git a/package-lock.json b/package-lock.json index 8bb3d76..98ae352 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.71", + "version": "0.20.72", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.71", + "version": "0.20.72", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 9396db9..e94746e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.71", + "version": "0.20.72", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/Orion/index.ts b/src/Orion/index.ts index 02ccd5c..fd73418 100644 --- a/src/Orion/index.ts +++ b/src/Orion/index.ts @@ -33,7 +33,6 @@ export default class Orion { } this.env = envOrConfig; config = { - analyticsAPI: envConfig.analyticsAPI, referralAPI: envConfig.referralAPI, networks: Object.entries(envConfig.networks).map(([chainId, networkConfig]) => { if (!isValidChainId(chainId)) throw new Error(`Invalid chainId: ${chainId}`); diff --git a/src/__tests__/basic.test.ts b/src/__tests__/basic.test.ts index d4de381..f64386b 100644 --- a/src/__tests__/basic.test.ts +++ b/src/__tests__/basic.test.ts @@ -159,7 +159,6 @@ describe('Orion', () => { const orionPriceFeedAPI = `http://localhost:${server2.port}`; const orion = new Orion({ - analyticsAPI: 'https://analytics-api.orionprotocol.io', referralAPI: 'https://referral-api.orionprotocol.io', networks: { 1: { @@ -239,7 +238,6 @@ describe('Orion', () => { test('Init Orion testing with overrides', () => { const orion = new Orion('testing', { - analyticsAPI: 'https://asdasd.orionprotocol.io', referralAPI: 'https://zxczxc.orionprotocol.io', networks: { [SupportedChainId.BSC_TESTNET]: { diff --git a/src/config/envs.json b/src/config/envs.json index 41094b3..6628b38 100644 --- a/src/config/envs.json +++ b/src/config/envs.json @@ -1,6 +1,5 @@ { "production": { - "analyticsAPI": "https://trade.orion.xyz/api/stats", "referralAPI": "https://trade.orion.xyz/referral-api", "networks": { "1": { @@ -169,7 +168,6 @@ } }, "testing": { - "analyticsAPI": "https://trade.orion.xyz/api/stats", "referralAPI": "https://testing.orion.xyz/referral-api", "networks": { "97": { @@ -284,7 +282,6 @@ } }, "staging": { - "analyticsAPI": "https://trade.orion.xyz/api/stats", "referralAPI": "https://staging.orion.xyz/referral-api", "networks": { "1": { @@ -452,7 +449,6 @@ } }, "experimental": { - "analyticsAPI": "https://trade.orion.xyz/api/stats", "referralAPI": "https://testing.orion.xyz/referral-api", "networks": { "97": { @@ -494,7 +490,6 @@ } }, "kucoin-production": { - "analyticsAPI": "https://trade.orion.xyz/api/stats", "referralAPI": "https://trade.orion.xyz/referral-api", "networks": { "1": { diff --git a/src/config/schemas/pureEnvSchema.ts b/src/config/schemas/pureEnvSchema.ts index 642dd0b..26ab7ce 100644 --- a/src/config/schemas/pureEnvSchema.ts +++ b/src/config/schemas/pureEnvSchema.ts @@ -23,7 +23,6 @@ export const pureEnvNetworksSchema = z.object({ }); export const pureEnvPayloadSchema = z.object({ - analyticsAPI: z.string().url(), referralAPI: z.string().url(), networks: z.record( z.nativeEnum(SupportedChainId), diff --git a/src/types.ts b/src/types.ts index 5a96d83..712316b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -279,7 +279,6 @@ export type KnownEnv = typeof knownEnvs[number]; export type Json = string | number | boolean | null | Json[] | { [key: string]: Json }; export type EnvConfig = { - analyticsAPI: string referralAPI: string networks: Partial< Record< From cf2fd889a057064590116c8a5525ca519e4c2135 Mon Sep 17 00:00:00 2001 From: TheJuze Date: Wed, 13 Mar 2024 14:07:36 +0300 Subject: [PATCH 07/25] return analyticsAPI and make it optional --- ADVANCED.md | 2 ++ package.json | 2 +- src/Orion/index.ts | 1 + src/__tests__/basic.test.ts | 2 ++ src/config/schemas/pureEnvSchema.ts | 1 + src/types.ts | 1 + 6 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ADVANCED.md b/ADVANCED.md index 8f3fd9b..d28f801 100644 --- a/ADVANCED.md +++ b/ADVANCED.md @@ -2,6 +2,7 @@ ```ts const orion = new Orion({ + analyticsAPI: "https://analytics-api.orionprotocol.io", referralAPI: "https://referral-api.orionprotocol.io", networks: { 1: { @@ -25,6 +26,7 @@ const orion = new Orion({ // Also you can set some config as default and override it for some params const orion = new Orion("testing", { + analyticsAPI: "https://analytics-api.orionprotocol.io", networks: { [SupportedChainId.BSC_TESTNET]: { nodeJsonRpc: "https://data-seed-prebsc-1-s1.binance.org:8545/", diff --git a/package.json b/package.json index e94746e..8d2b156 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.72", + "version": "0.20.73", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/Orion/index.ts b/src/Orion/index.ts index fd73418..7245c00 100644 --- a/src/Orion/index.ts +++ b/src/Orion/index.ts @@ -33,6 +33,7 @@ export default class Orion { } this.env = envOrConfig; config = { + analyticsAPI: envConfig?.analyticsAPI, referralAPI: envConfig.referralAPI, networks: Object.entries(envConfig.networks).map(([chainId, networkConfig]) => { if (!isValidChainId(chainId)) throw new Error(`Invalid chainId: ${chainId}`); diff --git a/src/__tests__/basic.test.ts b/src/__tests__/basic.test.ts index f64386b..d4de381 100644 --- a/src/__tests__/basic.test.ts +++ b/src/__tests__/basic.test.ts @@ -159,6 +159,7 @@ describe('Orion', () => { const orionPriceFeedAPI = `http://localhost:${server2.port}`; const orion = new Orion({ + analyticsAPI: 'https://analytics-api.orionprotocol.io', referralAPI: 'https://referral-api.orionprotocol.io', networks: { 1: { @@ -238,6 +239,7 @@ describe('Orion', () => { test('Init Orion testing with overrides', () => { const orion = new Orion('testing', { + analyticsAPI: 'https://asdasd.orionprotocol.io', referralAPI: 'https://zxczxc.orionprotocol.io', networks: { [SupportedChainId.BSC_TESTNET]: { diff --git a/src/config/schemas/pureEnvSchema.ts b/src/config/schemas/pureEnvSchema.ts index 26ab7ce..9c799c4 100644 --- a/src/config/schemas/pureEnvSchema.ts +++ b/src/config/schemas/pureEnvSchema.ts @@ -23,6 +23,7 @@ export const pureEnvNetworksSchema = z.object({ }); export const pureEnvPayloadSchema = z.object({ + analyticsAPI: z.string().url().optional(), referralAPI: z.string().url(), networks: z.record( z.nativeEnum(SupportedChainId), diff --git a/src/types.ts b/src/types.ts index 712316b..0f1bbb3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -279,6 +279,7 @@ export type KnownEnv = typeof knownEnvs[number]; export type Json = string | number | boolean | null | Json[] | { [key: string]: Json }; export type EnvConfig = { + analyticsAPI: string | undefined referralAPI: string networks: Partial< Record< From b2a340683684a5579d0d5dd67e6c1ec8c76419ee Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Tue, 19 Mar 2024 09:09:03 +0000 Subject: [PATCH 08/25] feat: added new method getExchangeContractWalletBalance --- package.json | 2 +- src/services/BlockchainService/index.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8d2b156..471d681 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.73", + "version": "0.20.74-rc0", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/BlockchainService/index.ts b/src/services/BlockchainService/index.ts index 16d5e59..ceacbcb 100644 --- a/src/services/BlockchainService/index.ts +++ b/src/services/BlockchainService/index.ts @@ -114,6 +114,7 @@ class BlockchainService { this.getRedeemOrderBySecretHash = this.getRedeemOrderBySecretHash.bind(this); this.claimOrder = this.claimOrder.bind(this); this.getGasLimits = this.getGasLimits.bind(this); + this.getExchangeContractWalletBalance = this.getExchangeContractWalletBalance.bind(this); } get basicAuthHeaders() { @@ -495,6 +496,12 @@ class BlockchainService { z.record(z.number()), { headers: this.basicAuthHeaders } ); + + getExchangeContractWalletBalance = (exchangeContractAddress: string) => fetchWithValidation( + `${this.apiUrl}/api/broker/getWalletBalance/${exchangeContractAddress}`, + z.record(z.string()), + { headers: this.basicAuthHeaders } + ); } export * as schemas from './schemas/index.js'; From d97e5267f0dc4d715d39756ca1f0dd02e45305d6 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Wed, 20 Mar 2024 11:27:39 +0000 Subject: [PATCH 09/25] feat: updated contracts --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98ae352..9cc7fbb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.72", + "version": "0.20.73", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.72", + "version": "0.20.73", "hasInstallScript": true, "license": "ISC", "dependencies": { "@babel/runtime": "^7.21.0", "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/providers": "^5.7.2", - "@orionprotocol/contracts": "1.22.10", + "@orionprotocol/contracts": "1.23.3", "@types/lodash.clonedeep": "^4.5.9", "bignumber.js": "^9.1.1", "bson-objectid": "^2.0.4", @@ -2423,9 +2423,9 @@ } }, "node_modules/@orionprotocol/contracts": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/@orionprotocol/contracts/-/contracts-1.22.10.tgz", - "integrity": "sha512-c9cUkXs1Nv8p+EVTybwJqeXhecwm7xeycAVauhl6jYAqvKOx7PDCUjzE3Nh0tpi4xP3CLeABgNy8JAFYyvN1VA==" + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/@orionprotocol/contracts/-/contracts-1.23.3.tgz", + "integrity": "sha512-3PBnuiUe//v7COArcm/dzFx71vxW+a9emU4PHi1zBdow+OUAa4WNb+NmNZ3AOjnx2AZKK+gWJY+zKo1zSfAOHQ==" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", @@ -13493,9 +13493,9 @@ } }, "@orionprotocol/contracts": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/@orionprotocol/contracts/-/contracts-1.22.10.tgz", - "integrity": "sha512-c9cUkXs1Nv8p+EVTybwJqeXhecwm7xeycAVauhl6jYAqvKOx7PDCUjzE3Nh0tpi4xP3CLeABgNy8JAFYyvN1VA==" + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/@orionprotocol/contracts/-/contracts-1.23.3.tgz", + "integrity": "sha512-3PBnuiUe//v7COArcm/dzFx71vxW+a9emU4PHi1zBdow+OUAa4WNb+NmNZ3AOjnx2AZKK+gWJY+zKo1zSfAOHQ==" }, "@sinclair/typebox": { "version": "0.27.8", diff --git a/package.json b/package.json index 8d2b156..93c9440 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@babel/runtime": "^7.21.0", "@ethersproject/abstract-signer": "^5.7.0", "@ethersproject/providers": "^5.7.2", - "@orionprotocol/contracts": "1.22.10", + "@orionprotocol/contracts": "1.23.3", "@types/lodash.clonedeep": "^4.5.9", "bignumber.js": "^9.1.1", "bson-objectid": "^2.0.4", From 712c0d45a21cdc14c24038a7f17e42bcbed906d0 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Wed, 20 Mar 2024 11:28:25 +0000 Subject: [PATCH 10/25] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 93c9440..b92b6e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.73", + "version": "0.20.74", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 555e26f842cf22294659c7103908e2d7f40d70a2 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Wed, 20 Mar 2024 13:47:40 +0000 Subject: [PATCH 11/25] feat: get from wallet first fix --- package.json | 2 +- src/Unit/Exchange/generateSwapCalldata.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b92b6e2..01262dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.74", + "version": "0.20.75-rc0", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/Unit/Exchange/generateSwapCalldata.ts b/src/Unit/Exchange/generateSwapCalldata.ts index 91f3fe6..fd7fe08 100644 --- a/src/Unit/Exchange/generateSwapCalldata.ts +++ b/src/Unit/Exchange/generateSwapCalldata.ts @@ -397,7 +397,7 @@ async function shouldUseExchangeBalance( let useExchangeBalance = true; let additionalTransferAmount = 0n; - if (exchangeBalance == 0n) { + if (walletBalance >= amount || exchangeBalance == 0n) { useExchangeBalance = false; additionalTransferAmount = amount; } else { From e2549932b24bde82be49d7f9b20316af5131378a Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Wed, 20 Mar 2024 14:02:27 +0000 Subject: [PATCH 12/25] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 01262dc..563e1fb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.75-rc0", + "version": "0.20.75", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From a6d40294647ce14ba2df30159d85673673b8e739 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Mon, 25 Mar 2024 08:34:12 +0000 Subject: [PATCH 13/25] feat: added new AVAX network --- src/config/chains.json | 13 +++++++++ src/config/envs.json | 36 +++++++++++++++++++++++++ src/constants/chains.ts | 1 + src/constants/networkCodes.ts | 2 +- src/constants/uppercasedNetworkCodes.ts | 2 +- src/types.ts | 1 + 6 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/config/chains.json b/src/config/chains.json index bed5a5d..9d21aae 100644 --- a/src/config/chains.json +++ b/src/config/chains.json @@ -219,5 +219,18 @@ "WETH": "0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f", "curveRegistry": "" } + }, + "43114": { + "chainId": "43114", + "label": "Avalanche Network", + "shortName": "Avax", + "code": "avax", + "baseCurrencyName": "AVAX", + "rpc": "https://api.avax.network/ext/bc/C/rpc/", + "explorer": "https://snowtrace.io/", + "contracts": { + "WETH": "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7", + "curveRegistry": "" + } } } diff --git a/src/config/envs.json b/src/config/envs.json index 6628b38..0dddc93 100644 --- a/src/config/envs.json +++ b/src/config/envs.json @@ -164,6 +164,24 @@ "http": "/orion-indexer/" } } + }, + "43114": { + "api": "https://trade.orion.xyz/avax-mainnet", + "services": { + "aggregator": { + "http": "/backend", + "ws": "/v1" + }, + "blockchain": { + "http": "" + }, + "priceFeed": { + "all": "/price-feed" + }, + "indexer": { + "http": "/orion-indexer/" + } + } } } }, @@ -445,6 +463,24 @@ "http": "/orion-indexer/" } } + }, + "43114": { + "api": "https://trade.orion.xyz/avax-mainnet", + "services": { + "aggregator": { + "http": "/backend", + "ws": "/v1" + }, + "blockchain": { + "http": "" + }, + "priceFeed": { + "all": "/price-feed" + }, + "indexer": { + "http": "/orion-indexer/" + } + } } } }, diff --git a/src/constants/chains.ts b/src/constants/chains.ts index 0e0b025..aac8213 100644 --- a/src/constants/chains.ts +++ b/src/constants/chains.ts @@ -19,4 +19,5 @@ export const productionChains = [ SupportedChainId.OPBNB, SupportedChainId.INEVM, SupportedChainId.LINEA, + SupportedChainId.AVAX, ]; diff --git a/src/constants/networkCodes.ts b/src/constants/networkCodes.ts index 74b0d0f..c3a5dad 100644 --- a/src/constants/networkCodes.ts +++ b/src/constants/networkCodes.ts @@ -1 +1 @@ -export default ['ftm', 'bsc', 'eth', 'polygon', 'okc', 'arb', 'drip', 'opbnb', 'inevm', 'linea'] as const; +export default ['ftm', 'bsc', 'eth', 'polygon', 'okc', 'arb', 'drip', 'opbnb', 'inevm', 'linea', 'avax'] as const; diff --git a/src/constants/uppercasedNetworkCodes.ts b/src/constants/uppercasedNetworkCodes.ts index f3c9515..6b8e312 100644 --- a/src/constants/uppercasedNetworkCodes.ts +++ b/src/constants/uppercasedNetworkCodes.ts @@ -1 +1 @@ -export default ['FTM', 'BSC', 'ETH', 'POLYGON', 'OKC', 'ARB', 'OPBNB', 'INEVM', 'LINEA'] as const; +export default ['FTM', 'BSC', 'ETH', 'POLYGON', 'OKC', 'ARB', 'OPBNB', 'INEVM', 'LINEA', 'AVAX'] as const; diff --git a/src/types.ts b/src/types.ts index 0f1bbb3..5828296 100644 --- a/src/types.ts +++ b/src/types.ts @@ -90,6 +90,7 @@ export enum SupportedChainId { OPBNB = '204', INEVM = '2525', LINEA = '59144', + AVAX = '43114', POLYGON_TESTNET = '80001', FANTOM_TESTNET = '4002', From 18f6805bf738e0f059c5dba77c7766e8a26185c5 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Mon, 25 Mar 2024 08:34:47 +0000 Subject: [PATCH 14/25] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 563e1fb..f4be77f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.75", + "version": "0.20.76", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 8be6ff9c0309d5c9055ea117c482d49a6621aced Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Mon, 25 Mar 2024 09:26:48 +0000 Subject: [PATCH 15/25] feat: updated api url for AVAX network --- src/config/envs.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config/envs.json b/src/config/envs.json index 0dddc93..a6c3988 100644 --- a/src/config/envs.json +++ b/src/config/envs.json @@ -166,7 +166,7 @@ } }, "43114": { - "api": "https://trade.orion.xyz/avax-mainnet", + "api": "https://trade.orion.xyz/avalanche-c-chain", "services": { "aggregator": { "http": "/backend", @@ -465,7 +465,7 @@ } }, "43114": { - "api": "https://trade.orion.xyz/avax-mainnet", + "api": "https://trade.orion.xyz/avalanche-c-chain", "services": { "aggregator": { "http": "/backend", From 42c7f929ddedc31d4ef22780e976c2ea69120cd9 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Mon, 25 Mar 2024 09:27:18 +0000 Subject: [PATCH 16/25] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f4be77f..9266080 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.76", + "version": "0.20.77", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 1e45222a43e3dd400a44e690c6c278fb18e1da66 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Thu, 28 Mar 2024 12:04:29 +0000 Subject: [PATCH 17/25] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 690319a..cb7a74f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.74-rc0", + "version": "0.20.74-rc1", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From d17fed1e9e0005b6512427b05faf4c8f64c0def8 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Thu, 28 Mar 2024 12:09:01 +0000 Subject: [PATCH 18/25] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cb7a74f..ee8c258 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.74-rc1", + "version": "0.20.78", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 9e493457715ed3cc45d02202b05e2d0178fe4881 Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 2 Apr 2024 15:07:26 +0300 Subject: [PATCH 19/25] 0.20.79-rc1 --- package-lock.json | 4 +- package.json | 2 +- src/Orion/index.ts | 9 ++- src/Unit/index.ts | 8 ++- src/services/Aggregator/index.ts | 98 ++++++++++++++--------------- src/services/Aggregator/ws/index.ts | 26 +++++--- 6 files changed, 83 insertions(+), 64 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9cc7fbb..f02c880 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.73", + "version": "0.20.79-rc1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.73", + "version": "0.20.79-rc1", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index ee8c258..48979e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.78", + "version": "0.20.79-rc1", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/Orion/index.ts b/src/Orion/index.ts index 7245c00..8ddf534 100644 --- a/src/Orion/index.ts +++ b/src/Orion/index.ts @@ -21,10 +21,15 @@ export default class Orion { // TODO: get tradable pairs (aggregated) + public logger: ((message: string) => void) | undefined; + constructor( envOrConfig: KnownEnv | EnvConfig = 'production', - overrides?: DeepPartial + overrides?: DeepPartial, + logger?: ((message: string) => void) | undefined ) { + this.logger = logger; + let config: EnvConfig; if (typeof envOrConfig === 'string') { const envConfig = envs[envOrConfig]; @@ -92,7 +97,7 @@ export default class Orion { // api: networkConfig.api, nodeJsonRpc: networkConfig.nodeJsonRpc, services: networkConfig.services, - }); + }, logger); return { ...acc, [chainId]: unit, diff --git a/src/Unit/index.ts b/src/Unit/index.ts index 85d7052..9b504cc 100644 --- a/src/Unit/index.ts +++ b/src/Unit/index.ts @@ -41,7 +41,10 @@ export default class Unit { public readonly contracts: Record; - constructor(config: KnownConfig | VerboseUnitConfig) { + public logger: ((message: string) => void) | undefined; + + constructor(config: KnownConfig | VerboseUnitConfig, logger?: ((message: string) => void) | undefined) { + this.logger = logger; if ('env' in config) { const staticConfig = envs[config.env]; if (!staticConfig) { @@ -118,7 +121,8 @@ export default class Unit { this.aggregator = new Aggregator( this.config.services.aggregator.http, this.config.services.aggregator.ws, - this.config.basicAuth + this.config.basicAuth, + logger, ); this.priceFeed = new PriceFeed( this.config.services.priceFeed.api, diff --git a/src/services/Aggregator/index.ts b/src/services/Aggregator/index.ts index f04e4c5..2cbc6c5 100644 --- a/src/services/Aggregator/index.ts +++ b/src/services/Aggregator/index.ts @@ -19,9 +19,9 @@ import httpToWS from '../../utils/httpToWS.js'; import { ethers } from 'ethers'; import orderSchema from './schemas/orderSchema.js'; import { fetchWithValidation } from 'simple-typed-fetch'; -import hmacSHA256 from "crypto-js/hmac-sha256"; -import Hex from "crypto-js/enc-hex"; -import {pmmOrderSchema} from "../../Unit/Pmm/schemas/order"; +import hmacSHA256 from 'crypto-js/hmac-sha256'; +import Hex from 'crypto-js/enc-hex'; +import { pmmOrderSchema } from '../../Unit/Pmm/schemas/order'; class Aggregator { private readonly apiUrl: string; @@ -34,11 +34,16 @@ class Aggregator { return this.apiUrl; } + public logger: ((message: string) => void) | undefined; + constructor( httpAPIUrl: string, wsAPIUrl: string, - basicAuth?: BasicAuthCredentials + basicAuth?: BasicAuthCredentials, + logger?: ((message: string) => void) | undefined ) { + this.logger = logger; + // const oaUrl = new URL(apiUrl); // const oaWsProtocol = oaUrl.protocol === 'https:' ? 'wss' : 'ws'; // const aggregatorWsUrl = `${oaWsProtocol}://${oaUrl.host + (oaUrl.pathname === '/' @@ -46,7 +51,7 @@ class Aggregator { // : oaUrl.pathname)}/v1`; this.apiUrl = httpAPIUrl; - this.ws = new AggregatorWS(httpToWS(wsAPIUrl)); + this.ws = new AggregatorWS(httpToWS(wsAPIUrl), undefined, logger); this.basicAuth = basicAuth; this.getHistoryAtomicSwaps = this.getHistoryAtomicSwaps.bind(this); @@ -373,24 +378,23 @@ class Aggregator { return fetchWithValidation(url.toString(), atomicSwapHistorySchema, { headers: this.basicAuthHeaders }); }; - - private encode_utf8(s : string) { + private encode_utf8(s: string) { return unescape(encodeURIComponent(s)); } - private sign(message : string, key: string) { + private sign(message: string, key: string) { return hmacSHA256( - this.encode_utf8(message), - this.encode_utf8(key) + this.encode_utf8(message), + this.encode_utf8(key) ).toString(Hex); } - private generateHeaders(body : any, method : string, path : string, timestamp : number, apiKey : string, secretKey : string) { + private generateHeaders(body: any, method: string, path: string, timestamp: number, apiKey: string, secretKey: string) { const sortedBody = Object.keys(body) - .sort() - .map((key) => ( - `${key}=${body[key]}` - )).join('&'); + .sort() + .map((key) => ( + `${key}=${body[key]}` + )).join('&'); const payload = timestamp + method.toUpperCase() + path + sortedBody; @@ -407,40 +411,38 @@ class Aggregator { } public async RFQOrder( - tokenFrom: string, - tokenTo: string, - fromTokenAmount: string, - apiKey: string, // - secretKey: string, - wallet: string - ) : Promise> { - + tokenFrom: string, + tokenTo: string, + fromTokenAmount: string, + apiKey: string, // + secretKey: string, + wallet: string + ): Promise> { // Making the order structure const - path = '/rfq' - , url = `${this.apiUrl}/api/v1/integration/pmm`+path - , headers = { - 'Content-Type': 'application/json', - } - , data = { - "baseToken":tokenFrom, // USDT - "quoteToken":tokenTo, // ORN - "amount": fromTokenAmount, // 100 - "taker": wallet, - "feeBps": 0 - } - , method = 'POST' - , timestamp = Date.now() - , signatureHeaders = this.generateHeaders(data, method, path, timestamp, apiKey, secretKey) - , compiledHeaders = {...headers, ...signatureHeaders.headers, } - , body = JSON.stringify(data) + path = '/rfq'; + const url = `${this.apiUrl}/api/v1/integration/pmm` + path; + const headers = { + 'Content-Type': 'application/json', + }; + const data = { + baseToken: tokenFrom, // USDT + quoteToken: tokenTo, // ORN + amount: fromTokenAmount, // 100 + taker: wallet, + feeBps: 0 + }; + const method = 'POST'; + const timestamp = Date.now(); + const signatureHeaders = this.generateHeaders(data, method, path, timestamp, apiKey, secretKey); + const compiledHeaders = { ...headers, ...signatureHeaders.headers, }; + const body = JSON.stringify(data) ; - - let res = pmmOrderSchema.parse({}); + const res = pmmOrderSchema.parse({}); try { - const result = await fetch(url,{ + const result = await fetch(url, { headers: compiledHeaders, method, body @@ -449,14 +451,13 @@ class Aggregator { const json = await result.json(); const parseResult = pmmOrderSchema.safeParse(json); - if(!parseResult.success) { + if (!parseResult.success) { // Try to parse error answer - const errorSchema = z.object({error: z.object({code: z.number(), reason: z.string()})}); + const errorSchema = z.object({ error: z.object({ code: z.number(), reason: z.string() }) }); const errorParseResult = errorSchema.safeParse(json); - if(!errorParseResult.success) - throw Error(`Unrecognized answer from aggregator: ${json}`); + if (!errorParseResult.success) { throw Error(`Unrecognized answer from aggregator: ${json}`); } throw Error(errorParseResult.data.error.reason); } @@ -466,8 +467,7 @@ class Aggregator { res.error = ''; res.success = true; // return result; - } - catch(err) { + } catch (err) { res.error = `${err}`; } return res; diff --git a/src/services/Aggregator/ws/index.ts b/src/services/Aggregator/ws/index.ts index 69d214c..ab6f6c5 100644 --- a/src/services/Aggregator/ws/index.ts +++ b/src/services/Aggregator/ws/index.ts @@ -66,10 +66,11 @@ type PairConfigSubscription = { type AggregatedOrderbookSubscription = { payload: string + dc?: number callback: ( asks: OrderbookItem[], bids: OrderbookItem[], - pair: string + pair: string, ) => void errorCb?: (message: string) => void } @@ -195,9 +196,10 @@ class AggregatorWS { readonly basicAuth?: BasicAuthCredentials | undefined; - constructor(wsUrl: string, basicAuth?: BasicAuthCredentials) { + constructor(wsUrl: string, basicAuth?: BasicAuthCredentials, logger?: ((message: string) => void) | undefined) { this.wsUrl = wsUrl; this.basicAuth = basicAuth; + this.logger = logger; } private messageQueue: BufferLike[] = []; @@ -252,7 +254,7 @@ class AggregatorWS { subscription: Subscription[T], prevSubscriptionId?: string ) { - const id = type === 'aobus' + const id = type === SubscriptionType.AGGREGATED_ORDER_BOOK_UPDATES_SUBSCRIBE ? ((subscription as any).payload as string) // TODO: Refactor!!! : uuidv4(); @@ -261,6 +263,14 @@ class AggregatorWS { const subRequest: Json = {}; subRequest['T'] = type; subRequest['id'] = id; + // test + if ('dc' in subscription) { + if (typeof subscription.dc === 'number') { + subRequest['dc'] = subscription.dc; + } + } + + this.logger?.('test'); if ('payload' in subscription) { if (typeof subscription.payload === 'string') { @@ -369,11 +379,11 @@ class AggregatorWS { delete this.subscriptions[SubscriptionType.ASSET_PAIR_CONFIG_UPDATES_SUBSCRIBE]?.[newestSubId]; // !!! swap info subscription is uuid that contains hyphen } else if (isOrderBooksSubscription(newestSubId)) { // is pair name(AGGREGATED_ORDER_BOOK_UPDATE) - const aobSubscriptions = this.subscriptions[SubscriptionType.AGGREGATED_ORDER_BOOK_UPDATES_SUBSCRIBE]; - if (aobSubscriptions) { - const targetAobSub = Object.entries(aobSubscriptions).find(([, value]) => value?.payload === newestSubId); - if (targetAobSub) { - const [key] = targetAobSub; + const aobusSubscriptions = this.subscriptions[SubscriptionType.AGGREGATED_ORDER_BOOK_UPDATES_SUBSCRIBE]; + if (aobusSubscriptions) { + const targetAobusSub = Object.entries(aobusSubscriptions).find(([, value]) => value?.payload === newestSubId); + if (targetAobusSub) { + const [key] = targetAobusSub; delete this.subscriptions[SubscriptionType.AGGREGATED_ORDER_BOOK_UPDATES_SUBSCRIBE]?.[key]; } } From 57cffe5eff92d976ef9a5e169eed93f7c3bee645 Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 2 Apr 2024 15:09:57 +0300 Subject: [PATCH 20/25] 0.20.80-rc1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 48979e1..14d3066 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.79-rc1", + "version": "0.20.80-rc1", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 84a0fe7a86fb9646a65602b507f0a53c3482df37 Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 2 Apr 2024 15:18:35 +0300 Subject: [PATCH 21/25] fix: remove test logger --- package.json | 2 +- src/services/Aggregator/ws/index.ts | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/package.json b/package.json index 14d3066..d19b27e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.80-rc1", + "version": "0.20.80-rc2", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/Aggregator/ws/index.ts b/src/services/Aggregator/ws/index.ts index ab6f6c5..55c875e 100644 --- a/src/services/Aggregator/ws/index.ts +++ b/src/services/Aggregator/ws/index.ts @@ -263,15 +263,12 @@ class AggregatorWS { const subRequest: Json = {}; subRequest['T'] = type; subRequest['id'] = id; - // test if ('dc' in subscription) { if (typeof subscription.dc === 'number') { subRequest['dc'] = subscription.dc; } } - this.logger?.('test'); - if ('payload' in subscription) { if (typeof subscription.payload === 'string') { subRequest['S'] = subscription.payload; From c204ebf0b3c6ce3487822ad2ce7cd2586c37e2ac Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 2 Apr 2024 16:19:36 +0300 Subject: [PATCH 22/25] fix: space --- src/services/Aggregator/ws/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/Aggregator/ws/index.ts b/src/services/Aggregator/ws/index.ts index 55c875e..f0f0e8f 100644 --- a/src/services/Aggregator/ws/index.ts +++ b/src/services/Aggregator/ws/index.ts @@ -263,6 +263,7 @@ class AggregatorWS { const subRequest: Json = {}; subRequest['T'] = type; subRequest['id'] = id; + if ('dc' in subscription) { if (typeof subscription.dc === 'number') { subRequest['dc'] = subscription.dc; From 6b95e76a83c8a49b867f5f936c69f6ad018c2177 Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 2 Apr 2024 16:29:23 +0300 Subject: [PATCH 23/25] bump version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f02c880..9e4bc27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.79-rc1", + "version": "0.20.79", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.20.79-rc1", + "version": "0.20.79", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index d19b27e..b9093ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.80-rc2", + "version": "0.20.80-rc3", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 201a177938f98eb709c4aaa847ca04d145b77ce2 Mon Sep 17 00:00:00 2001 From: Kirill Litvinov Date: Tue, 2 Apr 2024 16:30:24 +0300 Subject: [PATCH 24/25] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b9093ae..986ea3e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.80-rc3", + "version": "0.20.79", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", From 8f840aede201d641e9ef7228edad726739a8e85e Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Tue, 2 Apr 2024 15:10:28 +0100 Subject: [PATCH 25/25] feat: updated readme file --- README.md | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b06f8c3..0fec57d 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,8 @@ +[//]: # ( Orion Protocol SDK logo)
- Orion Protocol SDK logo -

Orion Protocol SDK

+

Lumia Stream SDK

Use CEX and DEX liquidity without KYC.

@@ -14,16 +10,15 @@ ![npm bundle size (version)](https://img.shields.io/bundlephobia/minzip/@orionprotocol/sdk) [![Downloads](https://img.shields.io/npm/dm/@orionprotocol/sdk.svg)](https://www.npmjs.com/package/@orionprotocol/sdk) -Do you want to integrate the Orion protocol into your application? See [integration guide](./docs/INTEGRATION.md) +Do you want to integrate the Lumia Stream protocol into your application? See [integration guide](./docs/INTEGRATION.md) ## Overview -Orion Software Developer Kit is a set of functions and methods that allow dApp developers connect to the superior aggregated liquidity of Orion Protocol which combines orderbooks of centralized exchanges as well decentralized automatic market makers such as Uniswap or Spookyswap across several supported blockchains. -Through this connection, developers using the SDK can perform a wide range of actions, including swapping selected tokens using Orion’s aggregated liquidity, obtaining relevant market information through subscriptions, add and remove liquidity to Orion’s pools. +Lumia Stream Developer Kit, natively built into Lumia, is a set of functions and methods that allow dApp developers to connect to the superior aggregated liquidity of Lumia Stream which combines orderbooks of centralized exchanges as well as decentralized Automatic Market Makers (AMMs) such as Uniswap, PancakeSwap, and Curve, across several supported blockchains. Through this connection, developers using the SDK can perform a wide range of actions, including swapping selected tokens, obtaining relevant market information through subscriptions, and more. ## API Key -Orion’s SDK is free to use and does not require an API key or registration. Refer to integration examples for more detailed information. +Lumia Stream’s SDK is free to use and does not require an API key or registration. Refer to integration examples for more detailed information. - [Overview](#overview) - [API Key](#api-key) @@ -33,7 +28,7 @@ Orion’s SDK is free to use and does not require an API key or registration. Re - [High level methods](#high-level-methods) - [Get assets](#get-assets) - [Get pairs](#get-pairs) - - [Get Orion Bridge history](#get-orion-bridge-history) + - [Get Lumia Stream Bridge history](#get-lumia-stream-bridge-history) - [Bridge swap](#bridge-swap) - [Withdraw](#withdraw) - [Deposit](#deposit) @@ -145,7 +140,7 @@ const pairs = await orion.getPairs("spot"); // 'spot' // } ``` -### Get Orion Bridge history +### Get Lumia Stream Bridge history ```ts const bridgeHistory = await orion.bridge.getHistory( @@ -722,7 +717,7 @@ switch (data.type) { ``` ## PMM -PMM allows institutional traders to request RFQ orders from Orion and then fill them. +PMM allows institutional traders to request RFQ orders from Lumia Stream and then fill them. RFQ order allows trader to fix the price for a certain time interval (up to 90 seconds, including the order settlement time interval on blockchain).