diff --git a/package.json b/package.json index a07086d..2cf75ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.76-rc107", + "version": "0.20.76-rc108", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/config/chains.json b/src/config/chains.json index 9d21aae..3fecfd8 100644 --- a/src/config/chains.json +++ b/src/config/chains.json @@ -232,5 +232,18 @@ "WETH": "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7", "curveRegistry": "" } + }, + "8453": { + "chainId": "8453", + "label": "Base", + "shortName": "BASE", + "code": "base", + "baseCurrencyName": "ETH", + "rpc": "https://mainnet.base.org/", + "explorer": "https://basescan.org/", + "contracts": { + "WETH": "0x4200000000000000000000000000000000000006", + "curveRegistry": "" + } } } diff --git a/src/config/envs.json b/src/config/envs.json index a6c3988..12e87f9 100644 --- a/src/config/envs.json +++ b/src/config/envs.json @@ -182,6 +182,24 @@ "http": "/orion-indexer/" } } + }, + "8453": { + "api": "https://trade.orion.xyz/base-mainnet", + "services": { + "aggregator": { + "http": "/backend", + "ws": "/v1" + }, + "blockchain": { + "http": "" + }, + "priceFeed": { + "all": "/price-feed" + }, + "indexer": { + "http": "/orion-indexer/" + } + } } } }, @@ -429,7 +447,7 @@ } }, "2525": { - "api": "https://trade.orion.xyz/inevm-mainnet", + "api": "https://staging.orion.xyz/inevm-mainnet", "services": { "aggregator": { "http": "/backend", @@ -447,7 +465,7 @@ } }, "59144": { - "api": "https://trade.orion.xyz/linea-mainnet", + "api": "https://staging.orion.xyz/linea-mainnet", "services": { "aggregator": { "http": "/backend", @@ -465,7 +483,25 @@ } }, "43114": { - "api": "https://trade.orion.xyz/avalanche-c-chain", + "api": "https://staging.orion.xyz/avalanche-c-chain", + "services": { + "aggregator": { + "http": "/backend", + "ws": "/v1" + }, + "blockchain": { + "http": "" + }, + "priceFeed": { + "all": "/price-feed" + }, + "indexer": { + "http": "/orion-indexer/" + } + } + }, + "8453": { + "api": "https://staging.orion.xyz/base-mainnet", "services": { "aggregator": { "http": "/backend", diff --git a/src/constants/chains.ts b/src/constants/chains.ts index aac8213..1fb8ff3 100644 --- a/src/constants/chains.ts +++ b/src/constants/chains.ts @@ -20,4 +20,5 @@ export const productionChains = [ SupportedChainId.INEVM, SupportedChainId.LINEA, SupportedChainId.AVAX, + SupportedChainId.BASE, ]; diff --git a/src/constants/networkCodes.ts b/src/constants/networkCodes.ts index c3a5dad..498e149 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', 'avax'] as const; +export default ['ftm', 'bsc', 'eth', 'polygon', 'okc', 'arb', 'drip', 'opbnb', 'inevm', 'linea', 'avax', 'base'] as const; diff --git a/src/constants/uppercasedNetworkCodes.ts b/src/constants/uppercasedNetworkCodes.ts index 6b8e312..e69605f 100644 --- a/src/constants/uppercasedNetworkCodes.ts +++ b/src/constants/uppercasedNetworkCodes.ts @@ -1 +1 @@ -export default ['FTM', 'BSC', 'ETH', 'POLYGON', 'OKC', 'ARB', 'OPBNB', 'INEVM', 'LINEA', 'AVAX'] as const; +export default ['FTM', 'BSC', 'ETH', 'POLYGON', 'OKC', 'ARB', 'OPBNB', 'INEVM', 'LINEA', 'AVAX', 'BASE'] as const; diff --git a/src/services/Aggregator/schemas/swapInfoSchema.ts b/src/services/Aggregator/schemas/swapInfoSchema.ts index f4d0e0e..940612f 100644 --- a/src/services/Aggregator/schemas/swapInfoSchema.ts +++ b/src/services/Aggregator/schemas/swapInfoSchema.ts @@ -51,6 +51,7 @@ const swapInfoBase = z.object({ mi: z.number().optional(), // market amount in, USD d: z.string().optional(), // difference in available amount in/out (USD) and market amount out/in (USD) in percentage }).optional(), + autoSlippage: z.number().optional(), }); const swapInfoByAmountIn = swapInfoBase.extend({ diff --git a/src/services/Aggregator/ws/index.ts b/src/services/Aggregator/ws/index.ts index 28d04de..c7de84e 100644 --- a/src/services/Aggregator/ws/index.ts +++ b/src/services/Aggregator/ws/index.ts @@ -543,6 +543,7 @@ class AggregatorWS { marketAmountIn: json.usd.mi, difference: json.usd.d, }, + autoSlippage: json.sl, }; switch (json.k) { // kind diff --git a/src/services/Aggregator/ws/schemas/swapInfoSchema.ts b/src/services/Aggregator/ws/schemas/swapInfoSchema.ts index ba32789..48abe19 100644 --- a/src/services/Aggregator/ws/schemas/swapInfoSchema.ts +++ b/src/services/Aggregator/ws/schemas/swapInfoSchema.ts @@ -50,6 +50,7 @@ const swapInfoSchemaBase = baseMessageSchema.extend({ mi: z.number().optional(), // market amount in, USD d: z.string().optional(), // difference in available amount in/out (USD) and market amount out/in (USD) in percentage }).optional(), + sl: z.number().optional(), }); const swapInfoSchemaByAmountIn = swapInfoSchemaBase.extend({ diff --git a/src/types.ts b/src/types.ts index a4fd6d6..a808133 100644 --- a/src/types.ts +++ b/src/types.ts @@ -3,7 +3,7 @@ import type factories from './constants/factories.js'; import type { BigNumber } from 'bignumber.js'; import type subOrderStatuses from './constants/subOrderStatuses.js'; import type positionStatuses from './constants/positionStatuses.js'; -import type { knownEnvs } from './config/schemas/index.js'; +import type { knownEnvs } from './config/schemas'; import type getHistory from './Orion/bridge/getHistory.js'; export type DeepPartial = T extends object ? { @@ -91,6 +91,7 @@ export enum SupportedChainId { INEVM = '2525', LINEA = '59144', AVAX = '43114', + BASE = '8453', POLYGON_TESTNET = '80001', FANTOM_TESTNET = '4002', @@ -211,6 +212,7 @@ export type SwapInfoBase = { marketAmountIn: number | undefined difference: string | undefined } | undefined + autoSlippage: number | undefined } export type SwapInfoByAmountIn = SwapInfoBase & {