@drift-labs/sdk 2.36.1-beta.5 → 2.36.1-beta.6
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.
- package/VERSION +1 -1
- package/lib/dlob/DLOB.d.ts +8 -0
- package/lib/dlob/DLOB.js +15 -0
- package/package.json +1 -1
- package/src/dlob/DLOB.ts +38 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.36.1-beta.
|
|
1
|
+
2.36.1-beta.6
|
package/lib/dlob/DLOB.d.ts
CHANGED
|
@@ -154,5 +154,13 @@ export declare class DLOB {
|
|
|
154
154
|
slot: number;
|
|
155
155
|
oraclePriceData: OraclePriceData;
|
|
156
156
|
}): BN;
|
|
157
|
+
getBestMakers({ marketIndex, marketType, direction, slot, oraclePriceData, numMakers, }: {
|
|
158
|
+
marketIndex: number;
|
|
159
|
+
marketType: MarketType;
|
|
160
|
+
direction: PositionDirection;
|
|
161
|
+
slot: number;
|
|
162
|
+
oraclePriceData: OraclePriceData;
|
|
163
|
+
numMakers: number;
|
|
164
|
+
}): PublicKey[];
|
|
157
165
|
}
|
|
158
166
|
export {};
|
package/lib/dlob/DLOB.js
CHANGED
|
@@ -1063,5 +1063,20 @@ class DLOB {
|
|
|
1063
1063
|
return this.estimateFillExactBaseAmountInForSide(baseAmount, oraclePriceData, slot, this.getRestingLimitBids(marketIndex, slot, marketType, oraclePriceData));
|
|
1064
1064
|
}
|
|
1065
1065
|
}
|
|
1066
|
+
getBestMakers({ marketIndex, marketType, direction, slot, oraclePriceData, numMakers, }) {
|
|
1067
|
+
const makers = new Map();
|
|
1068
|
+
const generator = (0, __1.isVariant)(direction, 'long')
|
|
1069
|
+
? this.getRestingLimitBids(marketIndex, slot, marketType, oraclePriceData)
|
|
1070
|
+
: this.getRestingLimitAsks(marketIndex, slot, marketType, oraclePriceData);
|
|
1071
|
+
for (const node of generator) {
|
|
1072
|
+
if (!makers.has(node.userAccount.toString())) {
|
|
1073
|
+
makers.set(node.userAccount.toString(), node.userAccount);
|
|
1074
|
+
}
|
|
1075
|
+
if (makers.size === numMakers) {
|
|
1076
|
+
break;
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
return Array.from(makers.values());
|
|
1080
|
+
}
|
|
1066
1081
|
}
|
|
1067
1082
|
exports.DLOB = DLOB;
|
package/package.json
CHANGED
package/src/dlob/DLOB.ts
CHANGED
|
@@ -1925,4 +1925,42 @@ export class DLOB {
|
|
|
1925
1925
|
);
|
|
1926
1926
|
}
|
|
1927
1927
|
}
|
|
1928
|
+
|
|
1929
|
+
public getBestMakers({
|
|
1930
|
+
marketIndex,
|
|
1931
|
+
marketType,
|
|
1932
|
+
direction,
|
|
1933
|
+
slot,
|
|
1934
|
+
oraclePriceData,
|
|
1935
|
+
numMakers,
|
|
1936
|
+
}: {
|
|
1937
|
+
marketIndex: number;
|
|
1938
|
+
marketType: MarketType;
|
|
1939
|
+
direction: PositionDirection;
|
|
1940
|
+
slot: number;
|
|
1941
|
+
oraclePriceData: OraclePriceData;
|
|
1942
|
+
numMakers: number;
|
|
1943
|
+
}): PublicKey[] {
|
|
1944
|
+
const makers = new Map<string, PublicKey>();
|
|
1945
|
+
const generator = isVariant(direction, 'long')
|
|
1946
|
+
? this.getRestingLimitBids(marketIndex, slot, marketType, oraclePriceData)
|
|
1947
|
+
: this.getRestingLimitAsks(
|
|
1948
|
+
marketIndex,
|
|
1949
|
+
slot,
|
|
1950
|
+
marketType,
|
|
1951
|
+
oraclePriceData
|
|
1952
|
+
);
|
|
1953
|
+
|
|
1954
|
+
for (const node of generator) {
|
|
1955
|
+
if (!makers.has(node.userAccount.toString())) {
|
|
1956
|
+
makers.set(node.userAccount.toString(), node.userAccount);
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
if (makers.size === numMakers) {
|
|
1960
|
+
break;
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1963
|
+
|
|
1964
|
+
return Array.from(makers.values());
|
|
1965
|
+
}
|
|
1928
1966
|
}
|