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 471d681..690319a 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", 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 { 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..a6c3988 100644 --- a/src/config/envs.json +++ b/src/config/envs.json @@ -164,6 +164,24 @@ "http": "/orion-indexer/" } } + }, + "43114": { + "api": "https://trade.orion.xyz/avalanche-c-chain", + "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/avalanche-c-chain", + "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',