@drift-labs/jit-proxy 0.13.23 → 0.13.25
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/lib/jitter/baseJitter.d.ts +4 -4
- package/lib/jitter/baseJitter.js +5 -5
- package/lib/jitter/jitterShotgun.d.ts +3 -3
- package/lib/jitter/jitterShotgun.js +2 -2
- package/lib/jitter/jitterSniper.d.ts +3 -3
- package/lib/jitter/jitterSniper.js +2 -2
- package/package.json +2 -2
- package/src/jitter/baseJitter.ts +8 -8
- package/src/jitter/jitterShotgun.ts +4 -4
- package/src/jitter/jitterSniper.ts +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="bn.js" />
|
|
2
2
|
import { JitProxyClient, PriceType } from '../jitProxyClient';
|
|
3
3
|
import { PublicKey } from '@solana/web3.js';
|
|
4
|
-
import { AuctionSubscriber, BN, DriftClient, Order, PostOnlyParams,
|
|
4
|
+
import { AuctionSubscriber, BN, DriftClient, Order, PostOnlyParams, FastlaneOrderSubscriber, SlotSubscriber, SignedMsgOrderParams, UserAccount, UserStatsMap } from '@drift-labs/sdk';
|
|
5
5
|
export type UserFilter = (userAccount: UserAccount, userKey: string, order: Order) => boolean;
|
|
6
6
|
export type JitParams = {
|
|
7
7
|
bid: BN;
|
|
@@ -14,7 +14,7 @@ export type JitParams = {
|
|
|
14
14
|
};
|
|
15
15
|
export declare abstract class BaseJitter {
|
|
16
16
|
auctionSubscriber: AuctionSubscriber;
|
|
17
|
-
|
|
17
|
+
fastlaneOrderSubscriber: FastlaneOrderSubscriber;
|
|
18
18
|
slotSubscriber: SlotSubscriber;
|
|
19
19
|
driftClient: DriftClient;
|
|
20
20
|
jitProxyClient: JitProxyClient;
|
|
@@ -26,12 +26,12 @@ export declare abstract class BaseJitter {
|
|
|
26
26
|
userFilter: UserFilter;
|
|
27
27
|
computeUnits: number;
|
|
28
28
|
computeUnitsPrice: number;
|
|
29
|
-
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap,
|
|
29
|
+
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap, fastlaneOrderSubscriber, slotSubscriber, }: {
|
|
30
30
|
driftClient: DriftClient;
|
|
31
31
|
auctionSubscriber: AuctionSubscriber;
|
|
32
32
|
jitProxyClient: JitProxyClient;
|
|
33
33
|
userStatsMap: UserStatsMap;
|
|
34
|
-
|
|
34
|
+
fastlaneOrderSubscriber?: FastlaneOrderSubscriber;
|
|
35
35
|
slotSubscriber?: SlotSubscriber;
|
|
36
36
|
});
|
|
37
37
|
subscribe(): Promise<void>;
|
package/lib/jitter/baseJitter.js
CHANGED
|
@@ -5,7 +5,7 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
5
5
|
const sdk_1 = require("@drift-labs/sdk");
|
|
6
6
|
const tweetnacl_util_1 = require("tweetnacl-util");
|
|
7
7
|
class BaseJitter {
|
|
8
|
-
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap,
|
|
8
|
+
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap, fastlaneOrderSubscriber, slotSubscriber, }) {
|
|
9
9
|
this.perpParams = new Map();
|
|
10
10
|
this.spotParams = new Map();
|
|
11
11
|
this.seenOrders = new Set();
|
|
@@ -17,8 +17,8 @@ class BaseJitter {
|
|
|
17
17
|
userStatsMap ||
|
|
18
18
|
new sdk_1.UserStatsMap(this.driftClient, new sdk_1.BulkAccountLoader(this.driftClient.connection, 'confirmed', 0));
|
|
19
19
|
this.slotSubscriber = slotSubscriber;
|
|
20
|
-
this.
|
|
21
|
-
if (this.
|
|
20
|
+
this.fastlaneOrderSubscriber = fastlaneOrderSubscriber;
|
|
21
|
+
if (this.fastlaneOrderSubscriber && !this.slotSubscriber) {
|
|
22
22
|
throw new Error('Slot subscriber is required for signedMsg order subscriber');
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -78,7 +78,7 @@ class BaseJitter {
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
await ((_a = this.slotSubscriber) === null || _a === void 0 ? void 0 : _a.subscribe());
|
|
81
|
-
await ((_b = this.
|
|
81
|
+
await ((_b = this.fastlaneOrderSubscriber) === null || _b === void 0 ? void 0 : _b.subscribe(async (orderMessageRaw, signedMsgOrderParamsMessage) => {
|
|
82
82
|
var _a, _b, _c;
|
|
83
83
|
const signedMsgOrderParamsBufHex = Buffer.from(orderMessageRaw['order_message']);
|
|
84
84
|
const signedMsgOrderParamsBuf = Buffer.from(orderMessageRaw['order_message'], 'hex');
|
|
@@ -87,7 +87,7 @@ class BaseJitter {
|
|
|
87
87
|
const signingAuthority = new web3_js_1.PublicKey(orderMessageRaw['signing_authority']);
|
|
88
88
|
const takerUserPubkey = await (0, sdk_1.getUserAccountPublicKey)(this.driftClient.program.programId, takerAuthority, takerSubaccountId);
|
|
89
89
|
const takerUserPubkeyString = takerUserPubkey.toBase58();
|
|
90
|
-
const takerUserAccount = (await this.
|
|
90
|
+
const takerUserAccount = (await this.fastlaneOrderSubscriber.userMap.mustGet(takerUserPubkey.toString())).getUserAccount();
|
|
91
91
|
const signedMsgOrder = {
|
|
92
92
|
status: sdk_1.OrderStatus.OPEN,
|
|
93
93
|
orderType: signedMsgOrderParams.orderType,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { JitProxyClient } from '../jitProxyClient';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
|
-
import { AuctionSubscriber, DriftClient, Order, SlotSubscriber, SignedMsgOrderParams,
|
|
3
|
+
import { AuctionSubscriber, DriftClient, Order, SlotSubscriber, SignedMsgOrderParams, FastlaneOrderSubscriber, UserAccount, UserStatsMap } from '@drift-labs/sdk';
|
|
4
4
|
import { BaseJitter } from './baseJitter';
|
|
5
5
|
export declare class JitterShotgun extends BaseJitter {
|
|
6
|
-
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap,
|
|
6
|
+
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap, fastlaneOrderSubscriber, slotSubscriber, }: {
|
|
7
7
|
driftClient: DriftClient;
|
|
8
8
|
auctionSubscriber: AuctionSubscriber;
|
|
9
9
|
jitProxyClient: JitProxyClient;
|
|
10
10
|
userStatsMap?: UserStatsMap;
|
|
11
|
-
|
|
11
|
+
fastlaneOrderSubscriber?: FastlaneOrderSubscriber;
|
|
12
12
|
slotSubscriber?: SlotSubscriber;
|
|
13
13
|
});
|
|
14
14
|
createTryFill(taker: UserAccount, takerKey: PublicKey, takerStatsKey: PublicKey, order: Order, orderSignature: string): () => Promise<void>;
|
|
@@ -4,13 +4,13 @@ exports.JitterShotgun = void 0;
|
|
|
4
4
|
const sdk_1 = require("@drift-labs/sdk");
|
|
5
5
|
const baseJitter_1 = require("./baseJitter");
|
|
6
6
|
class JitterShotgun extends baseJitter_1.BaseJitter {
|
|
7
|
-
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap,
|
|
7
|
+
constructor({ auctionSubscriber, jitProxyClient, driftClient, userStatsMap, fastlaneOrderSubscriber, slotSubscriber, }) {
|
|
8
8
|
super({
|
|
9
9
|
auctionSubscriber,
|
|
10
10
|
jitProxyClient,
|
|
11
11
|
driftClient,
|
|
12
12
|
userStatsMap,
|
|
13
|
-
|
|
13
|
+
fastlaneOrderSubscriber,
|
|
14
14
|
slotSubscriber,
|
|
15
15
|
});
|
|
16
16
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JitProxyClient } from '../jitProxyClient';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
|
-
import { AuctionSubscriber, DriftClient, OraclePriceData, Order, SignedMsgOrderParams,
|
|
3
|
+
import { AuctionSubscriber, DriftClient, OraclePriceData, Order, SignedMsgOrderParams, FastlaneOrderSubscriber, SlotSubscriber, UserAccount, UserStatsMap } from '@drift-labs/sdk';
|
|
4
4
|
import { BaseJitter } from './baseJitter';
|
|
5
5
|
type AuctionAndOrderDetails = {
|
|
6
6
|
slotsTilCross: number;
|
|
@@ -15,13 +15,13 @@ type AuctionAndOrderDetails = {
|
|
|
15
15
|
export declare class JitterSniper extends BaseJitter {
|
|
16
16
|
slotSubscriber: SlotSubscriber;
|
|
17
17
|
userStatsMap: UserStatsMap;
|
|
18
|
-
constructor({ auctionSubscriber, slotSubscriber, jitProxyClient, driftClient, userStatsMap,
|
|
18
|
+
constructor({ auctionSubscriber, slotSubscriber, jitProxyClient, driftClient, userStatsMap, fastlaneOrderSubscriber, }: {
|
|
19
19
|
driftClient: DriftClient;
|
|
20
20
|
slotSubscriber: SlotSubscriber;
|
|
21
21
|
auctionSubscriber: AuctionSubscriber;
|
|
22
22
|
jitProxyClient: JitProxyClient;
|
|
23
23
|
userStatsMap?: UserStatsMap;
|
|
24
|
-
|
|
24
|
+
fastlaneOrderSubscriber?: FastlaneOrderSubscriber;
|
|
25
25
|
});
|
|
26
26
|
createTryFill(taker: UserAccount, takerKey: PublicKey, takerStatsKey: PublicKey, order: Order, orderSignature: string): () => Promise<void>;
|
|
27
27
|
createTrySignedMsgFill(authorityToUse: PublicKey, signedMsgOrderParams: SignedMsgOrderParams, uuid: Uint8Array, taker: UserAccount, takerKey: PublicKey, takerStatsKey: PublicKey, order: Order, orderSignature: string, marketIndex: number): () => Promise<void>;
|
|
@@ -4,13 +4,13 @@ exports.JitterSniper = void 0;
|
|
|
4
4
|
const sdk_1 = require("@drift-labs/sdk");
|
|
5
5
|
const baseJitter_1 = require("./baseJitter");
|
|
6
6
|
class JitterSniper extends baseJitter_1.BaseJitter {
|
|
7
|
-
constructor({ auctionSubscriber, slotSubscriber, jitProxyClient, driftClient, userStatsMap,
|
|
7
|
+
constructor({ auctionSubscriber, slotSubscriber, jitProxyClient, driftClient, userStatsMap, fastlaneOrderSubscriber, }) {
|
|
8
8
|
super({
|
|
9
9
|
auctionSubscriber,
|
|
10
10
|
jitProxyClient,
|
|
11
11
|
driftClient,
|
|
12
12
|
userStatsMap,
|
|
13
|
-
|
|
13
|
+
fastlaneOrderSubscriber,
|
|
14
14
|
slotSubscriber,
|
|
15
15
|
});
|
|
16
16
|
this.slotSubscriber = slotSubscriber;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drift-labs/jit-proxy",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.25",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"clean": "rm -rf lib",
|
|
6
6
|
"build": "yarn clean && tsc"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@coral-xyz/anchor": "0.26.0",
|
|
10
|
-
"@drift-labs/sdk": "2.110.0-beta.
|
|
10
|
+
"@drift-labs/sdk": "2.110.0-beta.22",
|
|
11
11
|
"@solana/web3.js": "1.91.7",
|
|
12
12
|
"tweetnacl-util": "^0.15.1"
|
|
13
13
|
},
|
package/src/jitter/baseJitter.ts
CHANGED
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
OrderStatus,
|
|
17
17
|
PositionDirection,
|
|
18
18
|
PostOnlyParams,
|
|
19
|
-
|
|
19
|
+
FastlaneOrderSubscriber,
|
|
20
20
|
SlotSubscriber,
|
|
21
21
|
SignedMsgOrderParams,
|
|
22
22
|
UserAccount,
|
|
@@ -44,7 +44,7 @@ export type JitParams = {
|
|
|
44
44
|
|
|
45
45
|
export abstract class BaseJitter {
|
|
46
46
|
auctionSubscriber: AuctionSubscriber;
|
|
47
|
-
|
|
47
|
+
fastlaneOrderSubscriber: FastlaneOrderSubscriber;
|
|
48
48
|
slotSubscriber: SlotSubscriber;
|
|
49
49
|
driftClient: DriftClient;
|
|
50
50
|
jitProxyClient: JitProxyClient;
|
|
@@ -66,14 +66,14 @@ export abstract class BaseJitter {
|
|
|
66
66
|
jitProxyClient,
|
|
67
67
|
driftClient,
|
|
68
68
|
userStatsMap,
|
|
69
|
-
|
|
69
|
+
fastlaneOrderSubscriber,
|
|
70
70
|
slotSubscriber,
|
|
71
71
|
}: {
|
|
72
72
|
driftClient: DriftClient;
|
|
73
73
|
auctionSubscriber: AuctionSubscriber;
|
|
74
74
|
jitProxyClient: JitProxyClient;
|
|
75
75
|
userStatsMap: UserStatsMap;
|
|
76
|
-
|
|
76
|
+
fastlaneOrderSubscriber?: FastlaneOrderSubscriber;
|
|
77
77
|
slotSubscriber?: SlotSubscriber;
|
|
78
78
|
}) {
|
|
79
79
|
this.auctionSubscriber = auctionSubscriber;
|
|
@@ -86,9 +86,9 @@ export abstract class BaseJitter {
|
|
|
86
86
|
new BulkAccountLoader(this.driftClient.connection, 'confirmed', 0)
|
|
87
87
|
);
|
|
88
88
|
this.slotSubscriber = slotSubscriber;
|
|
89
|
-
this.
|
|
89
|
+
this.fastlaneOrderSubscriber = fastlaneOrderSubscriber;
|
|
90
90
|
|
|
91
|
-
if (this.
|
|
91
|
+
if (this.fastlaneOrderSubscriber && !this.slotSubscriber) {
|
|
92
92
|
throw new Error(
|
|
93
93
|
'Slot subscriber is required for signedMsg order subscriber'
|
|
94
94
|
);
|
|
@@ -190,7 +190,7 @@ export abstract class BaseJitter {
|
|
|
190
190
|
}
|
|
191
191
|
);
|
|
192
192
|
await this.slotSubscriber?.subscribe();
|
|
193
|
-
await this.
|
|
193
|
+
await this.fastlaneOrderSubscriber?.subscribe(
|
|
194
194
|
async (orderMessageRaw, signedMsgOrderParamsMessage) => {
|
|
195
195
|
const signedMsgOrderParamsBufHex = Buffer.from(
|
|
196
196
|
orderMessageRaw['order_message']
|
|
@@ -220,7 +220,7 @@ export abstract class BaseJitter {
|
|
|
220
220
|
);
|
|
221
221
|
const takerUserPubkeyString = takerUserPubkey.toBase58();
|
|
222
222
|
const takerUserAccount = (
|
|
223
|
-
await this.
|
|
223
|
+
await this.fastlaneOrderSubscriber.userMap.mustGet(
|
|
224
224
|
takerUserPubkey.toString()
|
|
225
225
|
)
|
|
226
226
|
).getUserAccount();
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
PostOnlyParams,
|
|
8
8
|
SlotSubscriber,
|
|
9
9
|
SignedMsgOrderParams,
|
|
10
|
-
|
|
10
|
+
FastlaneOrderSubscriber,
|
|
11
11
|
UserAccount,
|
|
12
12
|
UserStatsMap,
|
|
13
13
|
} from '@drift-labs/sdk';
|
|
@@ -19,14 +19,14 @@ export class JitterShotgun extends BaseJitter {
|
|
|
19
19
|
jitProxyClient,
|
|
20
20
|
driftClient,
|
|
21
21
|
userStatsMap,
|
|
22
|
-
|
|
22
|
+
fastlaneOrderSubscriber,
|
|
23
23
|
slotSubscriber,
|
|
24
24
|
}: {
|
|
25
25
|
driftClient: DriftClient;
|
|
26
26
|
auctionSubscriber: AuctionSubscriber;
|
|
27
27
|
jitProxyClient: JitProxyClient;
|
|
28
28
|
userStatsMap?: UserStatsMap;
|
|
29
|
-
|
|
29
|
+
fastlaneOrderSubscriber?: FastlaneOrderSubscriber;
|
|
30
30
|
slotSubscriber?: SlotSubscriber;
|
|
31
31
|
}) {
|
|
32
32
|
super({
|
|
@@ -34,7 +34,7 @@ export class JitterShotgun extends BaseJitter {
|
|
|
34
34
|
jitProxyClient,
|
|
35
35
|
driftClient,
|
|
36
36
|
userStatsMap,
|
|
37
|
-
|
|
37
|
+
fastlaneOrderSubscriber,
|
|
38
38
|
slotSubscriber,
|
|
39
39
|
});
|
|
40
40
|
}
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
PostOnlyParams,
|
|
15
15
|
PRICE_PRECISION,
|
|
16
16
|
SignedMsgOrderParams,
|
|
17
|
-
|
|
17
|
+
FastlaneOrderSubscriber,
|
|
18
18
|
SlotSubscriber,
|
|
19
19
|
UserAccount,
|
|
20
20
|
UserStatsMap,
|
|
@@ -43,21 +43,21 @@ export class JitterSniper extends BaseJitter {
|
|
|
43
43
|
jitProxyClient,
|
|
44
44
|
driftClient,
|
|
45
45
|
userStatsMap,
|
|
46
|
-
|
|
46
|
+
fastlaneOrderSubscriber,
|
|
47
47
|
}: {
|
|
48
48
|
driftClient: DriftClient;
|
|
49
49
|
slotSubscriber: SlotSubscriber;
|
|
50
50
|
auctionSubscriber: AuctionSubscriber;
|
|
51
51
|
jitProxyClient: JitProxyClient;
|
|
52
52
|
userStatsMap?: UserStatsMap;
|
|
53
|
-
|
|
53
|
+
fastlaneOrderSubscriber?: FastlaneOrderSubscriber;
|
|
54
54
|
}) {
|
|
55
55
|
super({
|
|
56
56
|
auctionSubscriber,
|
|
57
57
|
jitProxyClient,
|
|
58
58
|
driftClient,
|
|
59
59
|
userStatsMap,
|
|
60
|
-
|
|
60
|
+
fastlaneOrderSubscriber,
|
|
61
61
|
slotSubscriber,
|
|
62
62
|
});
|
|
63
63
|
this.slotSubscriber = slotSubscriber;
|