@pendle/sdk-boros 0.1.30 → 0.1.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { AMMStateResponse, OrderBooksV3Response } from '../../backend/secrettune/BorosBackendSDK';
|
|
2
|
-
export declare function combineMarketOrderBookAndAMM(
|
|
2
|
+
export declare function combineMarketOrderBookAndAMM(tickSize: number, marketOrderBook: OrderBooksV3Response, ammStateResponse: AMMStateResponse, isPositiveAMM: boolean): OrderBooksV3Response;
|
package/dist/entities/amm/amm.js
CHANGED
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.combineMarketOrderBookAndAMM = combineMarketOrderBookAndAMM;
|
|
4
4
|
const boros_offchain_math_1 = require("@pendle/boros-offchain-math");
|
|
5
|
-
const types_1 = require("../../types");
|
|
6
|
-
const tickLib_1 = require("../../utils/tickLib");
|
|
7
5
|
const NegativeAMMMath_1 = require("./NegativeAMMMath");
|
|
8
6
|
const PositiveAMMMath_1 = require("./PositiveAMMMath");
|
|
9
7
|
const constants_1 = require("./constants");
|
|
10
|
-
function combineMarketOrderBookAndAMM(
|
|
8
|
+
function combineMarketOrderBookAndAMM(tickSize, marketOrderBook, ammStateResponse, isPositiveAMM) {
|
|
11
9
|
const ammState = convertAMMStateResponseToAMMContractState(ammStateResponse);
|
|
12
10
|
const { normFixedAmount, totalFloatAmount } = ammState;
|
|
13
11
|
const AMMImpliedRate = isPositiveAMM
|
|
@@ -16,8 +14,8 @@ function combineMarketOrderBookAndAMM(tickStep, tickSize, marketOrderBook, ammSt
|
|
|
16
14
|
const bestBidRate = marketOrderBook.long.ia.length > 0 ? marketOrderBook.long.ia[0] * tickSize : AMMImpliedRate;
|
|
17
15
|
const bestAskRate = marketOrderBook.short.ia.length > 0 ? marketOrderBook.short.ia[0] * tickSize : AMMImpliedRate;
|
|
18
16
|
let longOrderBookIndex = 0, shortOrderBookIndex = 0;
|
|
19
|
-
let
|
|
20
|
-
let
|
|
17
|
+
let ammShortRate = AMMImpliedRate;
|
|
18
|
+
let ammLongRate = AMMImpliedRate;
|
|
21
19
|
let impliedRate = AMMImpliedRate;
|
|
22
20
|
let longIa = Math.floor(AMMImpliedRate / tickSize);
|
|
23
21
|
let shortIa = Math.ceil(AMMImpliedRate / tickSize);
|
|
@@ -42,15 +40,14 @@ function combineMarketOrderBookAndAMM(tickStep, tickSize, marketOrderBook, ammSt
|
|
|
42
40
|
sz += BigInt(marketOrderBook.short.sz[shortOrderBookIndex]);
|
|
43
41
|
shortOrderBookIndex++;
|
|
44
42
|
}
|
|
45
|
-
const
|
|
46
|
-
sz +=
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
tickStep,
|
|
43
|
+
const newAMMShortRate = shortIa * tickSize;
|
|
44
|
+
sz += calSwapAMMFromToRate({
|
|
45
|
+
fromRate: ammShortRate,
|
|
46
|
+
toRate: newAMMShortRate,
|
|
50
47
|
isPositiveAMM,
|
|
51
48
|
state: ammState,
|
|
52
49
|
});
|
|
53
|
-
|
|
50
|
+
ammShortRate = Math.max(ammShortRate, newAMMShortRate);
|
|
54
51
|
if (sz > 0n) {
|
|
55
52
|
short.ia.push(shortIa);
|
|
56
53
|
short.sz.push(sz.toString());
|
|
@@ -71,15 +68,14 @@ function combineMarketOrderBookAndAMM(tickStep, tickSize, marketOrderBook, ammSt
|
|
|
71
68
|
sz += BigInt(marketOrderBook.long.sz[longOrderBookIndex]);
|
|
72
69
|
longOrderBookIndex++;
|
|
73
70
|
}
|
|
74
|
-
const
|
|
75
|
-
sz +=
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
tickStep,
|
|
71
|
+
const newAMMLongRate = longIa * tickSize;
|
|
72
|
+
sz += calSwapAMMFromToRate({
|
|
73
|
+
fromRate: newAMMLongRate,
|
|
74
|
+
toRate: ammLongRate,
|
|
79
75
|
isPositiveAMM,
|
|
80
76
|
state: ammState,
|
|
81
77
|
});
|
|
82
|
-
|
|
78
|
+
ammLongRate = Math.min(ammLongRate, newAMMLongRate);
|
|
83
79
|
if (sz > 0n) {
|
|
84
80
|
long.ia.push(longIa);
|
|
85
81
|
long.sz.push(sz.toString());
|
|
@@ -94,35 +90,32 @@ function combineMarketOrderBookAndAMM(tickStep, tickSize, marketOrderBook, ammSt
|
|
|
94
90
|
short,
|
|
95
91
|
};
|
|
96
92
|
}
|
|
97
|
-
function
|
|
98
|
-
if (
|
|
93
|
+
function calSwapAMMFromToRate({ fromRate, toRate, isPositiveAMM, state, }) {
|
|
94
|
+
if (fromRate > toRate) {
|
|
99
95
|
return 0n;
|
|
100
96
|
}
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
tickStep,
|
|
97
|
+
const toRateSize = calcSwapAMMToRate({
|
|
98
|
+
rate: toRate,
|
|
104
99
|
isPositiveAMM,
|
|
105
100
|
state,
|
|
106
101
|
});
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
tickStep,
|
|
102
|
+
const fromRateSize = calcSwapAMMToRate({
|
|
103
|
+
rate: fromRate,
|
|
110
104
|
isPositiveAMM,
|
|
111
105
|
state,
|
|
112
106
|
});
|
|
113
|
-
if (
|
|
114
|
-
return _abs(
|
|
107
|
+
if (toRateSize < 0) {
|
|
108
|
+
return _abs(fromRateSize) - _abs(toRateSize);
|
|
115
109
|
}
|
|
116
|
-
if (
|
|
117
|
-
return
|
|
110
|
+
if (fromRateSize < 0) {
|
|
111
|
+
return toRateSize + _abs(fromRateSize);
|
|
118
112
|
}
|
|
119
|
-
return
|
|
113
|
+
return toRateSize - fromRateSize;
|
|
120
114
|
}
|
|
121
|
-
function
|
|
122
|
-
const rate = (0, tickLib_1.getRateAtTick)(tick, BigInt(tickStep)).value;
|
|
115
|
+
function calcSwapAMMToRate({ rate, isPositiveAMM, state, }) {
|
|
123
116
|
return isPositiveAMM
|
|
124
|
-
? PositiveAMMMath_1.PositiveAMMMath.calcSwapSize(state, rate).swapSize
|
|
125
|
-
: NegativeAMMMath_1.NegativeAMMMath.calcSwapSize(state, rate).swapSize;
|
|
117
|
+
? PositiveAMMMath_1.PositiveAMMMath.calcSwapSize(state, boros_offchain_math_1.FixedX18.fromNumber(rate).value).swapSize
|
|
118
|
+
: NegativeAMMMath_1.NegativeAMMMath.calcSwapSize(state, boros_offchain_math_1.FixedX18.fromNumber(rate).value).swapSize;
|
|
126
119
|
}
|
|
127
120
|
function _abs(value) {
|
|
128
121
|
return value < 0n ? -value : value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amm.js","sourceRoot":"","sources":["../../../src/entities/amm/amm.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"amm.js","sourceRoot":"","sources":["../../../src/entities/amm/amm.ts"],"names":[],"mappings":"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"}
|