instantSettlement impl

This commit is contained in:
Aleksandr Kraiz
2022-08-19 11:04:22 +04:00
parent 7497f683df
commit 64d68082ab
6 changed files with 20 additions and 6 deletions

View File

@@ -139,13 +139,16 @@ orionUnit.exchange
// Each trading pair has its own quantity precision
// You need to prepare (round) the quantity according to quantity precision
const pairConfig = await simpleFetch(orionAggregator.getPairConfig)('ORN-USDT');
const pairConfig = await simpleFetch(orionAggregator.getPairConfig)("ORN-USDT");
if (!pairConfig) throw new Error(`Pair config ORN-USDT not found`);
const { qtyPrecision } = pairConfig;
const amount = 23.5346563;
const roundedAmount = new BigNumber(amount).dp(qtyPrecision, BigNumber.ROUND_FLOOR); // You can use you own Math lib
const roundedAmount = new BigNumber(amount).dp(
qtyPrecision,
BigNumber.ROUND_FLOOR
); // You can use you own Math lib
orionUnit.exchange
.swapMarket({
@@ -159,6 +162,7 @@ orionUnit.exchange
options: {
// All options are optional 🙂
poolOnly: true, // You can specify whether you want to perform the exchange only through the pool
instantSettlement: true, // Set true to ensure that funds can be instantly transferred to wallet (otherwise, there is a possibility of receiving funds to the balance of the exchange contract)
logger: console.log,
// Set it to true if you want the issues associated with
// the lack of allowance to be automatically corrected
@@ -195,9 +199,11 @@ orionUnit.farmingManager.removeAllLiquidity({
```ts
import { simpleFetch } from "@orionprotocol/sdk";
const orderbook = await simpleFetch(orionUnit.orionAggregator.getAggregatedOrderbook)(
const orderbook = await simpleFetch(
orionUnit.orionAggregator.getAggregatedOrderbook
)(
"ORN-USDT",
20, // Depth
20 // Depth
);
```

View File

@@ -1,6 +1,6 @@
{
"name": "@orionprotocol/sdk",
"version": "0.13.2",
"version": "0.14.0-rc.0",
"description": "Orion Protocol SDK",
"main": "./lib/esm/index.js",
"module": "./lib/esm/index.js",

View File

@@ -61,6 +61,7 @@ export default async function getSwapMarketFeeInfo({
assetIn,
assetOut,
amount.toString(),
false,
options?.poolOnly ? ['ORION_POOL'] : undefined,
);

View File

@@ -22,6 +22,7 @@ export type SwapMarketParams = {
orionUnit: OrionUnit,
options?: {
poolOnly?: boolean,
instantSettlement?: boolean,
logger?: (message: string) => void,
autoApprove?: boolean,
developer?: {
@@ -124,6 +125,7 @@ export default async function swapMarket({
assetIn,
assetOut,
amount.toString(),
options?.instantSettlement,
options?.poolOnly ? ['ORION_POOL'] : undefined,
);

View File

@@ -151,6 +151,7 @@ class OrionAggregator {
assetIn: string,
assetOut: string,
amount: string,
instantSettlement?: boolean,
exchanges?: Exchange[],
) => {
const url = new URL(`${this.apiUrl}/api/v1/swap`);
@@ -166,6 +167,9 @@ class OrionAggregator {
url.searchParams.append('exchanges', exchange);
});
}
if (instantSettlement) {
url.searchParams.append('instantSettlement', 'true');
}
return fetchWithValidation(
url.toString(),

View File

@@ -70,8 +70,9 @@ type SwapSubscriptionRequest = {
i: string, // asset in
o: string, // asset out
a: number // amount IN/OUT
es?: Exchange[], // exchange list
es?: Exchange[] | 'cex' | 'pools', // exchange list of all cex or all pools (ORION_POOL, UNISWAP, PANCAKESWAP etc)
e?: boolean; // is amount IN? Value `false` means a = amount OUT, `true` if omitted
is?: boolean; // instant settlement
}
type BrokerTradableAtomicSwapBalanceSubscription = {