@drift-labs/sdk-browser 2.119.0-beta.1 → 2.119.0-beta.3
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/browser/adminClient.d.ts +2 -0
- package/lib/browser/adminClient.js +18 -0
- package/lib/browser/dlob/orderBookLevels.d.ts +1 -7
- package/lib/browser/dlob/orderBookLevels.js +6 -3
- package/lib/browser/index.d.ts +1 -0
- package/lib/browser/index.js +1 -0
- package/lib/browser/indicative-quotes/indicativeQuotesSender.d.ts +31 -0
- package/lib/browser/indicative-quotes/indicativeQuotesSender.js +153 -0
- package/lib/node/adminClient.d.ts +2 -0
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +18 -0
- package/lib/node/dlob/orderBookLevels.d.ts +1 -7
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +6 -3
- package/lib/node/index.d.ts +1 -0
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +1 -0
- package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts +32 -0
- package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts.map +1 -0
- package/lib/node/indicative-quotes/indicativeQuotesSender.js +153 -0
- package/package.json +1 -1
- package/src/adminClient.ts +45 -0
- package/src/dlob/orderBookLevels.ts +14 -4
- package/src/index.ts +1 -0
- package/src/indicative-quotes/indicativeQuotesSender.ts +183 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.119.0-beta.
|
|
1
|
+
2.119.0-beta.3
|
|
@@ -193,6 +193,8 @@ export declare class AdminClient extends DriftClient {
|
|
|
193
193
|
getUpdateSpotMarketFuelIx(spotMarketIndex: number, fuelBoostDeposits?: number, fuelBoostBorrows?: number, fuelBoostTaker?: number, fuelBoostMaker?: number, fuelBoostInsurance?: number): Promise<TransactionInstruction>;
|
|
194
194
|
updatePerpMarketFuel(perpMarketIndex: number, fuelBoostTaker?: number, fuelBoostMaker?: number, fuelBoostPosition?: number): Promise<TransactionSignature>;
|
|
195
195
|
getUpdatePerpMarketFuelIx(perpMarketIndex: number, fuelBoostTaker?: number, fuelBoostMaker?: number, fuelBoostPosition?: number): Promise<TransactionInstruction>;
|
|
196
|
+
updatePerpMarketProtectedMakerParams(perpMarketIndex: number, protectedMakerLimitPriceDivisor?: number, protectedMakerDynamicDivisor?: number): Promise<TransactionSignature>;
|
|
197
|
+
getUpdatePerpMarketProtectedMakerParamsIx(perpMarketIndex: number, protectedMakerLimitPriceDivisor?: number, protectedMakerDynamicDivisor?: number): Promise<TransactionInstruction>;
|
|
196
198
|
initUserFuel(user: PublicKey, authority: PublicKey, fuelBonusDeposits?: number, fuelBonusBorrows?: number, fuelBonusTaker?: number, fuelBonusMaker?: number, fuelBonusInsurance?: number): Promise<TransactionSignature>;
|
|
197
199
|
getInitUserFuelIx(user: PublicKey, authority: PublicKey, fuelBonusDeposits?: number, fuelBonusBorrows?: number, fuelBonusTaker?: number, fuelBonusMaker?: number, fuelBonusInsurance?: number): Promise<TransactionInstruction>;
|
|
198
200
|
/**
|
|
@@ -1774,6 +1774,24 @@ class AdminClient extends driftClient_1.DriftClient {
|
|
|
1774
1774
|
},
|
|
1775
1775
|
});
|
|
1776
1776
|
}
|
|
1777
|
+
async updatePerpMarketProtectedMakerParams(perpMarketIndex, protectedMakerLimitPriceDivisor, protectedMakerDynamicDivisor) {
|
|
1778
|
+
const updatePerpMarketProtectedMakerParamsIx = await this.getUpdatePerpMarketProtectedMakerParamsIx(perpMarketIndex, protectedMakerLimitPriceDivisor || null, protectedMakerDynamicDivisor || null);
|
|
1779
|
+
const tx = await this.buildTransaction(updatePerpMarketProtectedMakerParamsIx);
|
|
1780
|
+
const { txSig } = await this.sendTransaction(tx, [], this.opts);
|
|
1781
|
+
return txSig;
|
|
1782
|
+
}
|
|
1783
|
+
async getUpdatePerpMarketProtectedMakerParamsIx(perpMarketIndex, protectedMakerLimitPriceDivisor, protectedMakerDynamicDivisor) {
|
|
1784
|
+
const perpMarketPublicKey = await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, perpMarketIndex);
|
|
1785
|
+
return await this.program.instruction.updatePerpMarketProtectedMakerParams(protectedMakerLimitPriceDivisor || null, protectedMakerDynamicDivisor || null, {
|
|
1786
|
+
accounts: {
|
|
1787
|
+
admin: this.isSubscribed
|
|
1788
|
+
? this.getStateAccount().admin
|
|
1789
|
+
: this.wallet.publicKey,
|
|
1790
|
+
state: await this.getStatePublicKey(),
|
|
1791
|
+
perpMarket: perpMarketPublicKey,
|
|
1792
|
+
},
|
|
1793
|
+
});
|
|
1794
|
+
}
|
|
1777
1795
|
async initUserFuel(user, authority, fuelBonusDeposits, fuelBonusBorrows, fuelBonusTaker, fuelBonusMaker, fuelBonusInsurance) {
|
|
1778
1796
|
const updatePerpMarketFuelIx = await this.getInitUserFuelIx(user, authority, fuelBonusDeposits, fuelBonusBorrows, fuelBonusTaker, fuelBonusMaker, fuelBonusInsurance);
|
|
1779
1797
|
const tx = await this.buildTransaction(updatePerpMarketFuelIx);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="bn.js" />
|
|
2
2
|
import { BN, DLOBNode, OraclePriceData, PerpMarketAccount } from '..';
|
|
3
3
|
import { PublicKey } from '@solana/web3.js';
|
|
4
|
-
type liquiditySource = 'serum' | 'vamm' | 'dlob' | 'phoenix' | 'openbook';
|
|
4
|
+
type liquiditySource = 'serum' | 'vamm' | 'dlob' | 'phoenix' | 'openbook' | 'indicative';
|
|
5
5
|
export type L2Level = {
|
|
6
6
|
price: BN;
|
|
7
7
|
size: BN;
|
|
@@ -30,12 +30,6 @@ export type L3OrderBook = {
|
|
|
30
30
|
slot?: number;
|
|
31
31
|
};
|
|
32
32
|
export declare const DEFAULT_TOP_OF_BOOK_QUOTE_AMOUNTS: BN[];
|
|
33
|
-
/**
|
|
34
|
-
* Get an {@link Generator<L2Level>} generator from a {@link Generator<DLOBNode>}
|
|
35
|
-
* @param dlobNodes e.g. {@link DLOB#getRestingLimitAsks} or {@link DLOB#getRestingLimitBids}
|
|
36
|
-
* @param oraclePriceData
|
|
37
|
-
* @param slot
|
|
38
|
-
*/
|
|
39
33
|
export declare function getL2GeneratorFromDLOBNodes(dlobNodes: Generator<DLOBNode>, oraclePriceData: OraclePriceData, slot: number): Generator<L2Level>;
|
|
40
34
|
export declare function mergeL2LevelGenerators(l2LevelGenerators: Generator<L2Level>[], compare: (a: L2Level, b: L2Level) => boolean): Generator<L2Level>;
|
|
41
35
|
export declare function createL2Levels(generator: Generator<L2Level>, depth: number): L2Level[];
|
|
@@ -15,15 +15,18 @@ exports.DEFAULT_TOP_OF_BOOK_QUOTE_AMOUNTS = [
|
|
|
15
15
|
* @param oraclePriceData
|
|
16
16
|
* @param slot
|
|
17
17
|
*/
|
|
18
|
+
const INDICATIVE_QUOTES_PUBKEY = 'inDNdu3ML4vG5LNExqcwuCQtLcCU8KfK5YM2qYV3JJz';
|
|
18
19
|
function* getL2GeneratorFromDLOBNodes(dlobNodes, oraclePriceData, slot) {
|
|
19
20
|
for (const dlobNode of dlobNodes) {
|
|
20
21
|
const size = dlobNode.order.baseAssetAmount.sub(dlobNode.order.baseAssetAmountFilled);
|
|
21
22
|
yield {
|
|
22
23
|
size,
|
|
23
24
|
price: dlobNode.getPrice(oraclePriceData, slot),
|
|
24
|
-
sources:
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
sources: dlobNode.userAccount == INDICATIVE_QUOTES_PUBKEY
|
|
26
|
+
? { indicative: size }
|
|
27
|
+
: {
|
|
28
|
+
dlob: size,
|
|
29
|
+
},
|
|
27
30
|
};
|
|
28
31
|
}
|
|
29
32
|
}
|
package/lib/browser/index.d.ts
CHANGED
|
@@ -128,4 +128,5 @@ export * from './util/TransactionConfirmationManager';
|
|
|
128
128
|
export * from './clock/clockSubscriber';
|
|
129
129
|
export * from './math/userStatus';
|
|
130
130
|
export * from './constants/txConstants';
|
|
131
|
+
export * from './indicative-quotes/indicativeQuotesSender';
|
|
131
132
|
export { BN, PublicKey, pyth };
|
package/lib/browser/index.js
CHANGED
|
@@ -151,3 +151,4 @@ __exportStar(require("./util/TransactionConfirmationManager"), exports);
|
|
|
151
151
|
__exportStar(require("./clock/clockSubscriber"), exports);
|
|
152
152
|
__exportStar(require("./math/userStatus"), exports);
|
|
153
153
|
__exportStar(require("./constants/txConstants"), exports);
|
|
154
|
+
__exportStar(require("./indicative-quotes/indicativeQuotesSender"), exports);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/// <reference types="bn.js" />
|
|
2
|
+
import { Keypair } from '@solana/web3.js';
|
|
3
|
+
import { BN } from '..';
|
|
4
|
+
type Quote = {
|
|
5
|
+
bidPrice: BN;
|
|
6
|
+
askPrice: BN;
|
|
7
|
+
bidBaseAssetAmount: BN;
|
|
8
|
+
askBaseAssetAmount: BN;
|
|
9
|
+
marketIndex: number;
|
|
10
|
+
isOracleOffset?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare class IndicativeQuotesSender {
|
|
13
|
+
private endpoint;
|
|
14
|
+
private keypair;
|
|
15
|
+
private heartbeatTimeout;
|
|
16
|
+
private sendQuotesInterval;
|
|
17
|
+
private readonly heartbeatIntervalMs;
|
|
18
|
+
private reconnectDelay;
|
|
19
|
+
private ws;
|
|
20
|
+
private driftClient;
|
|
21
|
+
private connected;
|
|
22
|
+
private quotes;
|
|
23
|
+
constructor(endpoint: string, keypair: Keypair);
|
|
24
|
+
generateChallengeResponse(nonce: string): string;
|
|
25
|
+
handleAuthMessage(message: any): void;
|
|
26
|
+
connect(): Promise<void>;
|
|
27
|
+
private startHeartbeatTimer;
|
|
28
|
+
setQuote(quote: Quote): void;
|
|
29
|
+
private reconnect;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IndicativeQuotesSender = void 0;
|
|
7
|
+
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
8
|
+
const tweetnacl_util_1 = require("tweetnacl-util");
|
|
9
|
+
const ws_1 = __importDefault(require("ws"));
|
|
10
|
+
const SEND_INTERVAL = 500;
|
|
11
|
+
class IndicativeQuotesSender {
|
|
12
|
+
constructor(endpoint, keypair) {
|
|
13
|
+
this.endpoint = endpoint;
|
|
14
|
+
this.keypair = keypair;
|
|
15
|
+
this.heartbeatTimeout = null;
|
|
16
|
+
this.sendQuotesInterval = null;
|
|
17
|
+
this.heartbeatIntervalMs = 60000;
|
|
18
|
+
this.reconnectDelay = 1000;
|
|
19
|
+
this.ws = null;
|
|
20
|
+
this.connected = false;
|
|
21
|
+
this.quotes = new Map();
|
|
22
|
+
}
|
|
23
|
+
generateChallengeResponse(nonce) {
|
|
24
|
+
const messageBytes = (0, tweetnacl_util_1.decodeUTF8)(nonce);
|
|
25
|
+
const signature = tweetnacl_1.default.sign.detached(messageBytes, this.keypair.secretKey);
|
|
26
|
+
const signatureBase64 = Buffer.from(signature).toString('base64');
|
|
27
|
+
return signatureBase64;
|
|
28
|
+
}
|
|
29
|
+
handleAuthMessage(message) {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
if (message['channel'] === 'auth' && message['nonce'] != null) {
|
|
32
|
+
const signatureBase64 = this.generateChallengeResponse(message['nonce']);
|
|
33
|
+
(_a = this.ws) === null || _a === void 0 ? void 0 : _a.send(JSON.stringify({
|
|
34
|
+
pubkey: this.keypair.publicKey.toBase58(),
|
|
35
|
+
signature: signatureBase64,
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
if (message['channel'] === 'auth' &&
|
|
39
|
+
((_b = message['message']) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'authenticated') {
|
|
40
|
+
this.connected = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async connect() {
|
|
44
|
+
const ws = new ws_1.default(this.endpoint + '?pubkey=' + this.keypair.publicKey.toBase58());
|
|
45
|
+
this.ws = ws;
|
|
46
|
+
ws.on('open', async () => {
|
|
47
|
+
console.log('Connected to the server');
|
|
48
|
+
this.reconnectDelay = 1000;
|
|
49
|
+
ws.on('message', async (data) => {
|
|
50
|
+
var _a;
|
|
51
|
+
let message;
|
|
52
|
+
try {
|
|
53
|
+
message = JSON.parse(data.toString());
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
console.warn('Failed to parse json message: ', data.toString());
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.startHeartbeatTimer();
|
|
60
|
+
if (message['channel'] === 'auth') {
|
|
61
|
+
this.handleAuthMessage(message);
|
|
62
|
+
}
|
|
63
|
+
if (message['channel'] === 'auth' &&
|
|
64
|
+
((_a = message['message']) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'authenticated') {
|
|
65
|
+
this.sendQuotesInterval = setInterval(() => {
|
|
66
|
+
var _a;
|
|
67
|
+
if (this.connected) {
|
|
68
|
+
for (const [marketIndex, quote] of this.quotes.entries()) {
|
|
69
|
+
const message = {
|
|
70
|
+
market_type: 'perp',
|
|
71
|
+
market_index: marketIndex,
|
|
72
|
+
bid_price: quote.bidPrice.toString(),
|
|
73
|
+
ask_price: quote.askPrice.toString(),
|
|
74
|
+
bid_size: quote.bidBaseAssetAmount.toString(),
|
|
75
|
+
ask_size: quote.askBaseAssetAmount.toString(),
|
|
76
|
+
is_oracle_offset: quote.isOracleOffset,
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
if (((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.OPEN) {
|
|
80
|
+
this.ws.send(JSON.stringify(message));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
console.error('Error sending quote:', err);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, SEND_INTERVAL);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
ws.on('close', () => {
|
|
92
|
+
console.log('Disconnected from the server');
|
|
93
|
+
this.reconnect();
|
|
94
|
+
});
|
|
95
|
+
ws.on('error', (error) => {
|
|
96
|
+
console.error('WebSocket error:', error);
|
|
97
|
+
this.reconnect();
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
ws.on('unexpected-response', async (request, response) => {
|
|
101
|
+
console.error('Unexpected response, reconnecting in 5s:', response.statusCode);
|
|
102
|
+
setTimeout(() => {
|
|
103
|
+
if (this.heartbeatTimeout)
|
|
104
|
+
clearTimeout(this.heartbeatTimeout);
|
|
105
|
+
if (this.sendQuotesInterval)
|
|
106
|
+
clearInterval(this.sendQuotesInterval);
|
|
107
|
+
this.reconnect();
|
|
108
|
+
}, 5000);
|
|
109
|
+
});
|
|
110
|
+
ws.on('error', async (request, response) => {
|
|
111
|
+
console.error('WS closed from error, reconnecting in 1s:', response);
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
if (this.heartbeatTimeout)
|
|
114
|
+
clearTimeout(this.heartbeatTimeout);
|
|
115
|
+
if (this.sendQuotesInterval)
|
|
116
|
+
clearInterval(this.sendQuotesInterval);
|
|
117
|
+
this.reconnect();
|
|
118
|
+
}, 1000);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
startHeartbeatTimer() {
|
|
122
|
+
if (this.heartbeatTimeout) {
|
|
123
|
+
clearTimeout(this.heartbeatTimeout);
|
|
124
|
+
}
|
|
125
|
+
this.heartbeatTimeout = setTimeout(() => {
|
|
126
|
+
console.warn('No heartbeat received within 30 seconds, reconnecting...');
|
|
127
|
+
this.reconnect();
|
|
128
|
+
}, this.heartbeatIntervalMs);
|
|
129
|
+
}
|
|
130
|
+
setQuote(quote) {
|
|
131
|
+
this.quotes.set(quote.marketIndex, quote);
|
|
132
|
+
}
|
|
133
|
+
reconnect() {
|
|
134
|
+
if (this.ws) {
|
|
135
|
+
this.ws.removeAllListeners();
|
|
136
|
+
this.ws.terminate();
|
|
137
|
+
}
|
|
138
|
+
if (this.heartbeatTimeout) {
|
|
139
|
+
clearTimeout(this.heartbeatTimeout);
|
|
140
|
+
this.heartbeatTimeout = null;
|
|
141
|
+
}
|
|
142
|
+
if (this.sendQuotesInterval) {
|
|
143
|
+
clearInterval(this.sendQuotesInterval);
|
|
144
|
+
this.sendQuotesInterval = null;
|
|
145
|
+
}
|
|
146
|
+
console.log(`Reconnecting to WebSocket in ${this.reconnectDelay / 1000} seconds...`);
|
|
147
|
+
setTimeout(() => {
|
|
148
|
+
this.connect();
|
|
149
|
+
this.reconnectDelay = Math.min(this.reconnectDelay * 2, 30000);
|
|
150
|
+
}, this.reconnectDelay);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.IndicativeQuotesSender = IndicativeQuotesSender;
|
|
@@ -193,6 +193,8 @@ export declare class AdminClient extends DriftClient {
|
|
|
193
193
|
getUpdateSpotMarketFuelIx(spotMarketIndex: number, fuelBoostDeposits?: number, fuelBoostBorrows?: number, fuelBoostTaker?: number, fuelBoostMaker?: number, fuelBoostInsurance?: number): Promise<TransactionInstruction>;
|
|
194
194
|
updatePerpMarketFuel(perpMarketIndex: number, fuelBoostTaker?: number, fuelBoostMaker?: number, fuelBoostPosition?: number): Promise<TransactionSignature>;
|
|
195
195
|
getUpdatePerpMarketFuelIx(perpMarketIndex: number, fuelBoostTaker?: number, fuelBoostMaker?: number, fuelBoostPosition?: number): Promise<TransactionInstruction>;
|
|
196
|
+
updatePerpMarketProtectedMakerParams(perpMarketIndex: number, protectedMakerLimitPriceDivisor?: number, protectedMakerDynamicDivisor?: number): Promise<TransactionSignature>;
|
|
197
|
+
getUpdatePerpMarketProtectedMakerParamsIx(perpMarketIndex: number, protectedMakerLimitPriceDivisor?: number, protectedMakerDynamicDivisor?: number): Promise<TransactionInstruction>;
|
|
196
198
|
initUserFuel(user: PublicKey, authority: PublicKey, fuelBonusDeposits?: number, fuelBonusBorrows?: number, fuelBonusTaker?: number, fuelBonusMaker?: number, fuelBonusInsurance?: number): Promise<TransactionSignature>;
|
|
197
199
|
getInitUserFuelIx(user: PublicKey, authority: PublicKey, fuelBonusDeposits?: number, fuelBonusBorrows?: number, fuelBonusTaker?: number, fuelBonusMaker?: number, fuelBonusInsurance?: number): Promise<TransactionInstruction>;
|
|
198
200
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adminClient.d.ts","sourceRoot":"","sources":["../../src/adminClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adminClient.d.ts","sourceRoot":"","sources":["../../src/adminClient.ts"],"names":[],"mappings":"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"}
|
package/lib/node/adminClient.js
CHANGED
|
@@ -1774,6 +1774,24 @@ class AdminClient extends driftClient_1.DriftClient {
|
|
|
1774
1774
|
},
|
|
1775
1775
|
});
|
|
1776
1776
|
}
|
|
1777
|
+
async updatePerpMarketProtectedMakerParams(perpMarketIndex, protectedMakerLimitPriceDivisor, protectedMakerDynamicDivisor) {
|
|
1778
|
+
const updatePerpMarketProtectedMakerParamsIx = await this.getUpdatePerpMarketProtectedMakerParamsIx(perpMarketIndex, protectedMakerLimitPriceDivisor || null, protectedMakerDynamicDivisor || null);
|
|
1779
|
+
const tx = await this.buildTransaction(updatePerpMarketProtectedMakerParamsIx);
|
|
1780
|
+
const { txSig } = await this.sendTransaction(tx, [], this.opts);
|
|
1781
|
+
return txSig;
|
|
1782
|
+
}
|
|
1783
|
+
async getUpdatePerpMarketProtectedMakerParamsIx(perpMarketIndex, protectedMakerLimitPriceDivisor, protectedMakerDynamicDivisor) {
|
|
1784
|
+
const perpMarketPublicKey = await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, perpMarketIndex);
|
|
1785
|
+
return await this.program.instruction.updatePerpMarketProtectedMakerParams(protectedMakerLimitPriceDivisor || null, protectedMakerDynamicDivisor || null, {
|
|
1786
|
+
accounts: {
|
|
1787
|
+
admin: this.isSubscribed
|
|
1788
|
+
? this.getStateAccount().admin
|
|
1789
|
+
: this.wallet.publicKey,
|
|
1790
|
+
state: await this.getStatePublicKey(),
|
|
1791
|
+
perpMarket: perpMarketPublicKey,
|
|
1792
|
+
},
|
|
1793
|
+
});
|
|
1794
|
+
}
|
|
1777
1795
|
async initUserFuel(user, authority, fuelBonusDeposits, fuelBonusBorrows, fuelBonusTaker, fuelBonusMaker, fuelBonusInsurance) {
|
|
1778
1796
|
const updatePerpMarketFuelIx = await this.getInitUserFuelIx(user, authority, fuelBonusDeposits, fuelBonusBorrows, fuelBonusTaker, fuelBonusMaker, fuelBonusInsurance);
|
|
1779
1797
|
const tx = await this.buildTransaction(updatePerpMarketFuelIx);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="bn.js" />
|
|
2
2
|
import { BN, DLOBNode, OraclePriceData, PerpMarketAccount } from '..';
|
|
3
3
|
import { PublicKey } from '@solana/web3.js';
|
|
4
|
-
type liquiditySource = 'serum' | 'vamm' | 'dlob' | 'phoenix' | 'openbook';
|
|
4
|
+
type liquiditySource = 'serum' | 'vamm' | 'dlob' | 'phoenix' | 'openbook' | 'indicative';
|
|
5
5
|
export type L2Level = {
|
|
6
6
|
price: BN;
|
|
7
7
|
size: BN;
|
|
@@ -30,12 +30,6 @@ export type L3OrderBook = {
|
|
|
30
30
|
slot?: number;
|
|
31
31
|
};
|
|
32
32
|
export declare const DEFAULT_TOP_OF_BOOK_QUOTE_AMOUNTS: BN[];
|
|
33
|
-
/**
|
|
34
|
-
* Get an {@link Generator<L2Level>} generator from a {@link Generator<DLOBNode>}
|
|
35
|
-
* @param dlobNodes e.g. {@link DLOB#getRestingLimitAsks} or {@link DLOB#getRestingLimitBids}
|
|
36
|
-
* @param oraclePriceData
|
|
37
|
-
* @param slot
|
|
38
|
-
*/
|
|
39
33
|
export declare function getL2GeneratorFromDLOBNodes(dlobNodes: Generator<DLOBNode>, oraclePriceData: OraclePriceData, slot: number): Generator<L2Level>;
|
|
40
34
|
export declare function mergeL2LevelGenerators(l2LevelGenerators: Generator<L2Level>[], compare: (a: L2Level, b: L2Level) => boolean): Generator<L2Level>;
|
|
41
35
|
export declare function createL2Levels(generator: Generator<L2Level>, depth: number): L2Level[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderBookLevels.d.ts","sourceRoot":"","sources":["../../../src/dlob/orderBookLevels.ts"],"names":[],"mappings":";AAAA,OAAO,EAEN,EAAE,EAMF,QAAQ,EAGR,eAAe,EACf,iBAAiB,EAOjB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"orderBookLevels.d.ts","sourceRoot":"","sources":["../../../src/dlob/orderBookLevels.ts"],"names":[],"mappings":";AAAA,OAAO,EAEN,EAAE,EAMF,QAAQ,EAGR,eAAe,EACf,iBAAiB,EAOjB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,KAAK,eAAe,GACjB,OAAO,GACP,MAAM,GACN,MAAM,GACN,SAAS,GACT,UAAU,GACV,YAAY,CAAC;AAEhB,MAAM,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,EAAE,EAAE,CAAC;IACT,OAAO,EAAE;SAAG,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,EAAE;KAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,EAAE,EAAE,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,iCAAiC,MAK7C,CAAC;AASF,wBAAiB,2BAA2B,CAC3C,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC9B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,MAAM,GACV,SAAS,CAAC,OAAO,CAAC,CAgBpB;AAED,wBAAiB,sBAAsB,CACtC,iBAAiB,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EACvC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,GAC1C,SAAS,CAAC,OAAO,CAAC,CA+BpB;AAED,wBAAgB,cAAc,CAC7B,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,EAC7B,KAAK,EAAE,MAAM,GACX,OAAO,EAAE,CAsBX;AAED,wBAAgB,kBAAkB,CAAC,EAClC,aAAa,EACb,eAAe,EACf,SAAS,EACT,GAAG,EACH,qBAAqB,GACrB,EAAE;IACF,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,EAAE,CAAC;IACT,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC;CAC7B,GAAG,oBAAoB,CAoNvB;AAED,wBAAgB,OAAO,CACtB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE,MAAM,GACX,WAAW,CAMb;AAiFD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,OAAO,EAAE,EACf,IAAI,EAAE,OAAO,EAAE,EACf,WAAW,EAAE,EAAE,EACf,cAAc,EAAE,EAAE,EAClB,YAAY,EAAE,EAAE,EAChB,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB;IAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAoJtC"}
|
|
@@ -15,15 +15,18 @@ exports.DEFAULT_TOP_OF_BOOK_QUOTE_AMOUNTS = [
|
|
|
15
15
|
* @param oraclePriceData
|
|
16
16
|
* @param slot
|
|
17
17
|
*/
|
|
18
|
+
const INDICATIVE_QUOTES_PUBKEY = 'inDNdu3ML4vG5LNExqcwuCQtLcCU8KfK5YM2qYV3JJz';
|
|
18
19
|
function* getL2GeneratorFromDLOBNodes(dlobNodes, oraclePriceData, slot) {
|
|
19
20
|
for (const dlobNode of dlobNodes) {
|
|
20
21
|
const size = dlobNode.order.baseAssetAmount.sub(dlobNode.order.baseAssetAmountFilled);
|
|
21
22
|
yield {
|
|
22
23
|
size,
|
|
23
24
|
price: dlobNode.getPrice(oraclePriceData, slot),
|
|
24
|
-
sources:
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
sources: dlobNode.userAccount == INDICATIVE_QUOTES_PUBKEY
|
|
26
|
+
? { indicative: size }
|
|
27
|
+
: {
|
|
28
|
+
dlob: size,
|
|
29
|
+
},
|
|
27
30
|
};
|
|
28
31
|
}
|
|
29
32
|
}
|
package/lib/node/index.d.ts
CHANGED
|
@@ -128,5 +128,6 @@ export * from './util/TransactionConfirmationManager';
|
|
|
128
128
|
export * from './clock/clockSubscriber';
|
|
129
129
|
export * from './math/userStatus';
|
|
130
130
|
export * from './constants/txConstants';
|
|
131
|
+
export * from './indicative-quotes/indicativeQuotesSender';
|
|
131
132
|
export { BN, PublicKey, pyth };
|
|
132
133
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/node/index.js
CHANGED
|
@@ -151,3 +151,4 @@ __exportStar(require("./util/TransactionConfirmationManager"), exports);
|
|
|
151
151
|
__exportStar(require("./clock/clockSubscriber"), exports);
|
|
152
152
|
__exportStar(require("./math/userStatus"), exports);
|
|
153
153
|
__exportStar(require("./constants/txConstants"), exports);
|
|
154
|
+
__exportStar(require("./indicative-quotes/indicativeQuotesSender"), exports);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference types="bn.js" />
|
|
2
|
+
import { Keypair } from '@solana/web3.js';
|
|
3
|
+
import { BN } from '..';
|
|
4
|
+
type Quote = {
|
|
5
|
+
bidPrice: BN;
|
|
6
|
+
askPrice: BN;
|
|
7
|
+
bidBaseAssetAmount: BN;
|
|
8
|
+
askBaseAssetAmount: BN;
|
|
9
|
+
marketIndex: number;
|
|
10
|
+
isOracleOffset?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare class IndicativeQuotesSender {
|
|
13
|
+
private endpoint;
|
|
14
|
+
private keypair;
|
|
15
|
+
private heartbeatTimeout;
|
|
16
|
+
private sendQuotesInterval;
|
|
17
|
+
private readonly heartbeatIntervalMs;
|
|
18
|
+
private reconnectDelay;
|
|
19
|
+
private ws;
|
|
20
|
+
private driftClient;
|
|
21
|
+
private connected;
|
|
22
|
+
private quotes;
|
|
23
|
+
constructor(endpoint: string, keypair: Keypair);
|
|
24
|
+
generateChallengeResponse(nonce: string): string;
|
|
25
|
+
handleAuthMessage(message: any): void;
|
|
26
|
+
connect(): Promise<void>;
|
|
27
|
+
private startHeartbeatTimer;
|
|
28
|
+
setQuote(quote: Quote): void;
|
|
29
|
+
private reconnect;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=indicativeQuotesSender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indicativeQuotesSender.d.ts","sourceRoot":"","sources":["../../../src/indicative-quotes/indicativeQuotesSender.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAe,MAAM,IAAI,CAAC;AAOrC,KAAK,KAAK,GAAG;IACZ,QAAQ,EAAE,EAAE,CAAC;IACb,QAAQ,EAAE,EAAE,CAAC;IACb,kBAAkB,EAAE,EAAE,CAAC;IACvB,kBAAkB,EAAE,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,qBAAa,sBAAsB;IAajC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IAbhB,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,kBAAkB,CAA+B;IAEzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,MAAM,CAAiC;gBAGtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO;IAGzB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOhD,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAmB/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqF9B,OAAO,CAAC,mBAAmB;IAU3B,QAAQ,CAAC,KAAK,EAAE,KAAK;IAIrB,OAAO,CAAC,SAAS;CAuBjB"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IndicativeQuotesSender = void 0;
|
|
7
|
+
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
8
|
+
const tweetnacl_util_1 = require("tweetnacl-util");
|
|
9
|
+
const ws_1 = __importDefault(require("ws"));
|
|
10
|
+
const SEND_INTERVAL = 500;
|
|
11
|
+
class IndicativeQuotesSender {
|
|
12
|
+
constructor(endpoint, keypair) {
|
|
13
|
+
this.endpoint = endpoint;
|
|
14
|
+
this.keypair = keypair;
|
|
15
|
+
this.heartbeatTimeout = null;
|
|
16
|
+
this.sendQuotesInterval = null;
|
|
17
|
+
this.heartbeatIntervalMs = 60000;
|
|
18
|
+
this.reconnectDelay = 1000;
|
|
19
|
+
this.ws = null;
|
|
20
|
+
this.connected = false;
|
|
21
|
+
this.quotes = new Map();
|
|
22
|
+
}
|
|
23
|
+
generateChallengeResponse(nonce) {
|
|
24
|
+
const messageBytes = (0, tweetnacl_util_1.decodeUTF8)(nonce);
|
|
25
|
+
const signature = tweetnacl_1.default.sign.detached(messageBytes, this.keypair.secretKey);
|
|
26
|
+
const signatureBase64 = Buffer.from(signature).toString('base64');
|
|
27
|
+
return signatureBase64;
|
|
28
|
+
}
|
|
29
|
+
handleAuthMessage(message) {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
if (message['channel'] === 'auth' && message['nonce'] != null) {
|
|
32
|
+
const signatureBase64 = this.generateChallengeResponse(message['nonce']);
|
|
33
|
+
(_a = this.ws) === null || _a === void 0 ? void 0 : _a.send(JSON.stringify({
|
|
34
|
+
pubkey: this.keypair.publicKey.toBase58(),
|
|
35
|
+
signature: signatureBase64,
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
if (message['channel'] === 'auth' &&
|
|
39
|
+
((_b = message['message']) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'authenticated') {
|
|
40
|
+
this.connected = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async connect() {
|
|
44
|
+
const ws = new ws_1.default(this.endpoint + '?pubkey=' + this.keypair.publicKey.toBase58());
|
|
45
|
+
this.ws = ws;
|
|
46
|
+
ws.on('open', async () => {
|
|
47
|
+
console.log('Connected to the server');
|
|
48
|
+
this.reconnectDelay = 1000;
|
|
49
|
+
ws.on('message', async (data) => {
|
|
50
|
+
var _a;
|
|
51
|
+
let message;
|
|
52
|
+
try {
|
|
53
|
+
message = JSON.parse(data.toString());
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
console.warn('Failed to parse json message: ', data.toString());
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.startHeartbeatTimer();
|
|
60
|
+
if (message['channel'] === 'auth') {
|
|
61
|
+
this.handleAuthMessage(message);
|
|
62
|
+
}
|
|
63
|
+
if (message['channel'] === 'auth' &&
|
|
64
|
+
((_a = message['message']) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'authenticated') {
|
|
65
|
+
this.sendQuotesInterval = setInterval(() => {
|
|
66
|
+
var _a;
|
|
67
|
+
if (this.connected) {
|
|
68
|
+
for (const [marketIndex, quote] of this.quotes.entries()) {
|
|
69
|
+
const message = {
|
|
70
|
+
market_type: 'perp',
|
|
71
|
+
market_index: marketIndex,
|
|
72
|
+
bid_price: quote.bidPrice.toString(),
|
|
73
|
+
ask_price: quote.askPrice.toString(),
|
|
74
|
+
bid_size: quote.bidBaseAssetAmount.toString(),
|
|
75
|
+
ask_size: quote.askBaseAssetAmount.toString(),
|
|
76
|
+
is_oracle_offset: quote.isOracleOffset,
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
if (((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === ws_1.default.OPEN) {
|
|
80
|
+
this.ws.send(JSON.stringify(message));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
console.error('Error sending quote:', err);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, SEND_INTERVAL);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
ws.on('close', () => {
|
|
92
|
+
console.log('Disconnected from the server');
|
|
93
|
+
this.reconnect();
|
|
94
|
+
});
|
|
95
|
+
ws.on('error', (error) => {
|
|
96
|
+
console.error('WebSocket error:', error);
|
|
97
|
+
this.reconnect();
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
ws.on('unexpected-response', async (request, response) => {
|
|
101
|
+
console.error('Unexpected response, reconnecting in 5s:', response.statusCode);
|
|
102
|
+
setTimeout(() => {
|
|
103
|
+
if (this.heartbeatTimeout)
|
|
104
|
+
clearTimeout(this.heartbeatTimeout);
|
|
105
|
+
if (this.sendQuotesInterval)
|
|
106
|
+
clearInterval(this.sendQuotesInterval);
|
|
107
|
+
this.reconnect();
|
|
108
|
+
}, 5000);
|
|
109
|
+
});
|
|
110
|
+
ws.on('error', async (request, response) => {
|
|
111
|
+
console.error('WS closed from error, reconnecting in 1s:', response);
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
if (this.heartbeatTimeout)
|
|
114
|
+
clearTimeout(this.heartbeatTimeout);
|
|
115
|
+
if (this.sendQuotesInterval)
|
|
116
|
+
clearInterval(this.sendQuotesInterval);
|
|
117
|
+
this.reconnect();
|
|
118
|
+
}, 1000);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
startHeartbeatTimer() {
|
|
122
|
+
if (this.heartbeatTimeout) {
|
|
123
|
+
clearTimeout(this.heartbeatTimeout);
|
|
124
|
+
}
|
|
125
|
+
this.heartbeatTimeout = setTimeout(() => {
|
|
126
|
+
console.warn('No heartbeat received within 30 seconds, reconnecting...');
|
|
127
|
+
this.reconnect();
|
|
128
|
+
}, this.heartbeatIntervalMs);
|
|
129
|
+
}
|
|
130
|
+
setQuote(quote) {
|
|
131
|
+
this.quotes.set(quote.marketIndex, quote);
|
|
132
|
+
}
|
|
133
|
+
reconnect() {
|
|
134
|
+
if (this.ws) {
|
|
135
|
+
this.ws.removeAllListeners();
|
|
136
|
+
this.ws.terminate();
|
|
137
|
+
}
|
|
138
|
+
if (this.heartbeatTimeout) {
|
|
139
|
+
clearTimeout(this.heartbeatTimeout);
|
|
140
|
+
this.heartbeatTimeout = null;
|
|
141
|
+
}
|
|
142
|
+
if (this.sendQuotesInterval) {
|
|
143
|
+
clearInterval(this.sendQuotesInterval);
|
|
144
|
+
this.sendQuotesInterval = null;
|
|
145
|
+
}
|
|
146
|
+
console.log(`Reconnecting to WebSocket in ${this.reconnectDelay / 1000} seconds...`);
|
|
147
|
+
setTimeout(() => {
|
|
148
|
+
this.connect();
|
|
149
|
+
this.reconnectDelay = Math.min(this.reconnectDelay * 2, 30000);
|
|
150
|
+
}, this.reconnectDelay);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.IndicativeQuotesSender = IndicativeQuotesSender;
|
package/package.json
CHANGED
package/src/adminClient.ts
CHANGED
|
@@ -3858,6 +3858,51 @@ export class AdminClient extends DriftClient {
|
|
|
3858
3858
|
);
|
|
3859
3859
|
}
|
|
3860
3860
|
|
|
3861
|
+
public async updatePerpMarketProtectedMakerParams(
|
|
3862
|
+
perpMarketIndex: number,
|
|
3863
|
+
protectedMakerLimitPriceDivisor?: number,
|
|
3864
|
+
protectedMakerDynamicDivisor?: number
|
|
3865
|
+
): Promise<TransactionSignature> {
|
|
3866
|
+
const updatePerpMarketProtectedMakerParamsIx =
|
|
3867
|
+
await this.getUpdatePerpMarketProtectedMakerParamsIx(
|
|
3868
|
+
perpMarketIndex,
|
|
3869
|
+
protectedMakerLimitPriceDivisor || null,
|
|
3870
|
+
protectedMakerDynamicDivisor || null
|
|
3871
|
+
);
|
|
3872
|
+
|
|
3873
|
+
const tx = await this.buildTransaction(
|
|
3874
|
+
updatePerpMarketProtectedMakerParamsIx
|
|
3875
|
+
);
|
|
3876
|
+
const { txSig } = await this.sendTransaction(tx, [], this.opts);
|
|
3877
|
+
|
|
3878
|
+
return txSig;
|
|
3879
|
+
}
|
|
3880
|
+
|
|
3881
|
+
public async getUpdatePerpMarketProtectedMakerParamsIx(
|
|
3882
|
+
perpMarketIndex: number,
|
|
3883
|
+
protectedMakerLimitPriceDivisor?: number,
|
|
3884
|
+
protectedMakerDynamicDivisor?: number
|
|
3885
|
+
): Promise<TransactionInstruction> {
|
|
3886
|
+
const perpMarketPublicKey = await getPerpMarketPublicKey(
|
|
3887
|
+
this.program.programId,
|
|
3888
|
+
perpMarketIndex
|
|
3889
|
+
);
|
|
3890
|
+
|
|
3891
|
+
return await this.program.instruction.updatePerpMarketProtectedMakerParams(
|
|
3892
|
+
protectedMakerLimitPriceDivisor || null,
|
|
3893
|
+
protectedMakerDynamicDivisor || null,
|
|
3894
|
+
{
|
|
3895
|
+
accounts: {
|
|
3896
|
+
admin: this.isSubscribed
|
|
3897
|
+
? this.getStateAccount().admin
|
|
3898
|
+
: this.wallet.publicKey,
|
|
3899
|
+
state: await this.getStatePublicKey(),
|
|
3900
|
+
perpMarket: perpMarketPublicKey,
|
|
3901
|
+
},
|
|
3902
|
+
}
|
|
3903
|
+
);
|
|
3904
|
+
}
|
|
3905
|
+
|
|
3861
3906
|
public async initUserFuel(
|
|
3862
3907
|
user: PublicKey,
|
|
3863
3908
|
authority: PublicKey,
|
|
@@ -21,7 +21,13 @@ import {
|
|
|
21
21
|
import { PublicKey } from '@solana/web3.js';
|
|
22
22
|
import { assert } from '../assert/assert';
|
|
23
23
|
|
|
24
|
-
type liquiditySource =
|
|
24
|
+
type liquiditySource =
|
|
25
|
+
| 'serum'
|
|
26
|
+
| 'vamm'
|
|
27
|
+
| 'dlob'
|
|
28
|
+
| 'phoenix'
|
|
29
|
+
| 'openbook'
|
|
30
|
+
| 'indicative';
|
|
25
31
|
|
|
26
32
|
export type L2Level = {
|
|
27
33
|
price: BN;
|
|
@@ -66,6 +72,7 @@ export const DEFAULT_TOP_OF_BOOK_QUOTE_AMOUNTS = [
|
|
|
66
72
|
* @param oraclePriceData
|
|
67
73
|
* @param slot
|
|
68
74
|
*/
|
|
75
|
+
const INDICATIVE_QUOTES_PUBKEY = 'inDNdu3ML4vG5LNExqcwuCQtLcCU8KfK5YM2qYV3JJz';
|
|
69
76
|
export function* getL2GeneratorFromDLOBNodes(
|
|
70
77
|
dlobNodes: Generator<DLOBNode>,
|
|
71
78
|
oraclePriceData: OraclePriceData,
|
|
@@ -78,9 +85,12 @@ export function* getL2GeneratorFromDLOBNodes(
|
|
|
78
85
|
yield {
|
|
79
86
|
size,
|
|
80
87
|
price: dlobNode.getPrice(oraclePriceData, slot),
|
|
81
|
-
sources:
|
|
82
|
-
|
|
83
|
-
|
|
88
|
+
sources:
|
|
89
|
+
dlobNode.userAccount == INDICATIVE_QUOTES_PUBKEY
|
|
90
|
+
? { indicative: size }
|
|
91
|
+
: {
|
|
92
|
+
dlob: size,
|
|
93
|
+
},
|
|
84
94
|
};
|
|
85
95
|
}
|
|
86
96
|
}
|
package/src/index.ts
CHANGED
|
@@ -129,5 +129,6 @@ export * from './util/TransactionConfirmationManager';
|
|
|
129
129
|
export * from './clock/clockSubscriber';
|
|
130
130
|
export * from './math/userStatus';
|
|
131
131
|
export * from './constants/txConstants';
|
|
132
|
+
export * from './indicative-quotes/indicativeQuotesSender';
|
|
132
133
|
|
|
133
134
|
export { BN, PublicKey, pyth };
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Keypair } from '@solana/web3.js';
|
|
2
|
+
import { BN, DriftClient } from '..';
|
|
3
|
+
import nacl from 'tweetnacl';
|
|
4
|
+
import { decodeUTF8 } from 'tweetnacl-util';
|
|
5
|
+
import WebSocket from 'ws';
|
|
6
|
+
|
|
7
|
+
const SEND_INTERVAL = 500;
|
|
8
|
+
|
|
9
|
+
type Quote = {
|
|
10
|
+
bidPrice: BN;
|
|
11
|
+
askPrice: BN;
|
|
12
|
+
bidBaseAssetAmount: BN;
|
|
13
|
+
askBaseAssetAmount: BN;
|
|
14
|
+
marketIndex: number;
|
|
15
|
+
isOracleOffset?: boolean;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export class IndicativeQuotesSender {
|
|
19
|
+
private heartbeatTimeout: NodeJS.Timeout | null = null;
|
|
20
|
+
private sendQuotesInterval: NodeJS.Timeout | null = null;
|
|
21
|
+
|
|
22
|
+
private readonly heartbeatIntervalMs = 60000;
|
|
23
|
+
private reconnectDelay = 1000;
|
|
24
|
+
private ws: WebSocket | null = null;
|
|
25
|
+
private driftClient: DriftClient;
|
|
26
|
+
private connected = false;
|
|
27
|
+
|
|
28
|
+
private quotes: Map<number, Quote> = new Map();
|
|
29
|
+
|
|
30
|
+
constructor(
|
|
31
|
+
private endpoint: string,
|
|
32
|
+
private keypair: Keypair
|
|
33
|
+
) {}
|
|
34
|
+
|
|
35
|
+
generateChallengeResponse(nonce: string): string {
|
|
36
|
+
const messageBytes = decodeUTF8(nonce);
|
|
37
|
+
const signature = nacl.sign.detached(messageBytes, this.keypair.secretKey);
|
|
38
|
+
const signatureBase64 = Buffer.from(signature).toString('base64');
|
|
39
|
+
return signatureBase64;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
handleAuthMessage(message: any): void {
|
|
43
|
+
if (message['channel'] === 'auth' && message['nonce'] != null) {
|
|
44
|
+
const signatureBase64 = this.generateChallengeResponse(message['nonce']);
|
|
45
|
+
this.ws?.send(
|
|
46
|
+
JSON.stringify({
|
|
47
|
+
pubkey: this.keypair.publicKey.toBase58(),
|
|
48
|
+
signature: signatureBase64,
|
|
49
|
+
})
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (
|
|
54
|
+
message['channel'] === 'auth' &&
|
|
55
|
+
message['message']?.toLowerCase() === 'authenticated'
|
|
56
|
+
) {
|
|
57
|
+
this.connected = true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async connect(): Promise<void> {
|
|
62
|
+
const ws = new WebSocket(
|
|
63
|
+
this.endpoint + '?pubkey=' + this.keypair.publicKey.toBase58()
|
|
64
|
+
);
|
|
65
|
+
this.ws = ws;
|
|
66
|
+
ws.on('open', async () => {
|
|
67
|
+
console.log('Connected to the server');
|
|
68
|
+
this.reconnectDelay = 1000;
|
|
69
|
+
|
|
70
|
+
ws.on('message', async (data: WebSocket.Data) => {
|
|
71
|
+
let message: string;
|
|
72
|
+
try {
|
|
73
|
+
message = JSON.parse(data.toString());
|
|
74
|
+
} catch (e) {
|
|
75
|
+
console.warn('Failed to parse json message: ', data.toString());
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
this.startHeartbeatTimer();
|
|
79
|
+
|
|
80
|
+
if (message['channel'] === 'auth') {
|
|
81
|
+
this.handleAuthMessage(message);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (
|
|
85
|
+
message['channel'] === 'auth' &&
|
|
86
|
+
message['message']?.toLowerCase() === 'authenticated'
|
|
87
|
+
) {
|
|
88
|
+
this.sendQuotesInterval = setInterval(() => {
|
|
89
|
+
if (this.connected) {
|
|
90
|
+
for (const [marketIndex, quote] of this.quotes.entries()) {
|
|
91
|
+
const message = {
|
|
92
|
+
market_type: 'perp',
|
|
93
|
+
market_index: marketIndex,
|
|
94
|
+
bid_price: quote.bidPrice.toString(),
|
|
95
|
+
ask_price: quote.askPrice.toString(),
|
|
96
|
+
bid_size: quote.bidBaseAssetAmount.toString(),
|
|
97
|
+
ask_size: quote.askBaseAssetAmount.toString(),
|
|
98
|
+
is_oracle_offset: quote.isOracleOffset,
|
|
99
|
+
};
|
|
100
|
+
try {
|
|
101
|
+
if (this.ws?.readyState === WebSocket.OPEN) {
|
|
102
|
+
this.ws.send(JSON.stringify(message));
|
|
103
|
+
}
|
|
104
|
+
} catch (err) {
|
|
105
|
+
console.error('Error sending quote:', err);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}, SEND_INTERVAL);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
ws.on('close', () => {
|
|
114
|
+
console.log('Disconnected from the server');
|
|
115
|
+
this.reconnect();
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
ws.on('error', (error: Error) => {
|
|
119
|
+
console.error('WebSocket error:', error);
|
|
120
|
+
this.reconnect();
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
ws.on('unexpected-response', async (request, response) => {
|
|
125
|
+
console.error(
|
|
126
|
+
'Unexpected response, reconnecting in 5s:',
|
|
127
|
+
response.statusCode
|
|
128
|
+
);
|
|
129
|
+
setTimeout(() => {
|
|
130
|
+
if (this.heartbeatTimeout) clearTimeout(this.heartbeatTimeout);
|
|
131
|
+
if (this.sendQuotesInterval) clearInterval(this.sendQuotesInterval);
|
|
132
|
+
this.reconnect();
|
|
133
|
+
}, 5000);
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
ws.on('error', async (request, response) => {
|
|
137
|
+
console.error('WS closed from error, reconnecting in 1s:', response);
|
|
138
|
+
setTimeout(() => {
|
|
139
|
+
if (this.heartbeatTimeout) clearTimeout(this.heartbeatTimeout);
|
|
140
|
+
if (this.sendQuotesInterval) clearInterval(this.sendQuotesInterval);
|
|
141
|
+
this.reconnect();
|
|
142
|
+
}, 1000);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private startHeartbeatTimer() {
|
|
147
|
+
if (this.heartbeatTimeout) {
|
|
148
|
+
clearTimeout(this.heartbeatTimeout);
|
|
149
|
+
}
|
|
150
|
+
this.heartbeatTimeout = setTimeout(() => {
|
|
151
|
+
console.warn('No heartbeat received within 30 seconds, reconnecting...');
|
|
152
|
+
this.reconnect();
|
|
153
|
+
}, this.heartbeatIntervalMs);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
setQuote(quote: Quote) {
|
|
157
|
+
this.quotes.set(quote.marketIndex, quote);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private reconnect() {
|
|
161
|
+
if (this.ws) {
|
|
162
|
+
this.ws.removeAllListeners();
|
|
163
|
+
this.ws.terminate();
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (this.heartbeatTimeout) {
|
|
167
|
+
clearTimeout(this.heartbeatTimeout);
|
|
168
|
+
this.heartbeatTimeout = null;
|
|
169
|
+
}
|
|
170
|
+
if (this.sendQuotesInterval) {
|
|
171
|
+
clearInterval(this.sendQuotesInterval);
|
|
172
|
+
this.sendQuotesInterval = null;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
console.log(
|
|
176
|
+
`Reconnecting to WebSocket in ${this.reconnectDelay / 1000} seconds...`
|
|
177
|
+
);
|
|
178
|
+
setTimeout(() => {
|
|
179
|
+
this.connect();
|
|
180
|
+
this.reconnectDelay = Math.min(this.reconnectDelay * 2, 30000);
|
|
181
|
+
}, this.reconnectDelay);
|
|
182
|
+
}
|
|
183
|
+
}
|