@drift-labs/sdk 2.146.0-beta.10 → 2.146.0-beta.11
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/accounts/grpcMultiUserAccountSubscriber.js +8 -1
- package/lib/browser/constants/numericConstants.d.ts +2 -0
- package/lib/browser/constants/numericConstants.js +5 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +8 -1
- package/lib/node/constants/numericConstants.d.ts +2 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +5 -1
- package/package.json +1 -1
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +8 -1
- package/src/constants/numericConstants.ts +5 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.146.0-beta.
|
|
1
|
+
2.146.0-beta.11
|
|
@@ -76,7 +76,10 @@ class grpcMultiUserAccountSubscriber {
|
|
|
76
76
|
this.listeners.set(key, new Set());
|
|
77
77
|
this.keyToPk.set(key, userAccountPublicKey);
|
|
78
78
|
this.pendingAddKeys.add(key);
|
|
79
|
-
this.
|
|
79
|
+
if (this.isMultiSubscribed) {
|
|
80
|
+
// only schedule flush if already subscribed to the multi-subscriber
|
|
81
|
+
this.scheduleFlush();
|
|
82
|
+
}
|
|
80
83
|
}
|
|
81
84
|
};
|
|
82
85
|
const perUser = {
|
|
@@ -110,6 +113,10 @@ class grpcMultiUserAccountSubscriber {
|
|
|
110
113
|
this.updateData(account, 0);
|
|
111
114
|
},
|
|
112
115
|
updateData(userAccount, slot) {
|
|
116
|
+
const existingData = parent.userData.get(key);
|
|
117
|
+
if (existingData && existingData.slot > slot) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
113
120
|
parent.userData.set(key, { data: userAccount, slot });
|
|
114
121
|
perUserEmitter.emit('userAccountUpdate', userAccount);
|
|
115
122
|
perUserEmitter.emit('update');
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_RATE_BUFFER_PRECISION = exports.FUNDING_RATE_PRECISION = exports.PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.SPOT_MARKET_IMF_PRECISION = exports.SPOT_MARKET_IMF_PRECISION_EXP = exports.SPOT_MARKET_BALANCE_PRECISION = exports.SPOT_MARKET_BALANCE_PRECISION_EXP = exports.SPOT_MARKET_WEIGHT_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION_EXP = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = exports.SPOT_MARKET_RATE_PRECISION = exports.SPOT_MARKET_RATE_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.PRICE_PRECISION_EXP = exports.FUNDING_RATE_BUFFER_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.CONCENTRATION_PRECISION = exports.PERCENTAGE_PRECISION = exports.PERCENTAGE_PRECISION_EXP = exports.MAX_LEVERAGE_ORDER_SIZE = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.NINE = exports.EIGHT = exports.SEVEN = exports.SIX = exports.FIVE = exports.FOUR = exports.THREE = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
4
|
-
exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.MAX_PREDICTION_PRICE = exports.FUEL_START_TS = exports.FUEL_WINDOW = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.GOV_SPOT_MARKET_INDEX = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = void 0;
|
|
4
|
+
exports.MIN_I64 = exports.MAX_I64 = exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.MAX_PREDICTION_PRICE = exports.FUEL_START_TS = exports.FUEL_WINDOW = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.GOV_SPOT_MARKET_INDEX = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = void 0;
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
6
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
7
|
+
const bigNum_1 = require("../factory/bigNum");
|
|
7
8
|
exports.ZERO = new anchor_1.BN(0);
|
|
8
9
|
exports.ONE = new anchor_1.BN(1);
|
|
9
10
|
exports.TWO = new anchor_1.BN(2);
|
|
@@ -75,3 +76,6 @@ exports.FUEL_WINDOW = new anchor_1.BN(60 * 60 * 24 * 28); // 28 days
|
|
|
75
76
|
exports.FUEL_START_TS = new anchor_1.BN(1723147200); // unix timestamp
|
|
76
77
|
exports.MAX_PREDICTION_PRICE = exports.PRICE_PRECISION;
|
|
77
78
|
exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99;
|
|
79
|
+
// integer constants
|
|
80
|
+
exports.MAX_I64 = bigNum_1.BigNum.fromPrint('9223372036854775807').val;
|
|
81
|
+
exports.MIN_I64 = bigNum_1.BigNum.fromPrint('-9223372036854775808').val;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcMultiUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcMultiUserAccountSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,WAAW,EAEX,SAAS,EAET,qBAAqB,EACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAW,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,8BAA8B;IAC1C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,eAAe,CAA0C;IAEjE,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAA4C;IAC1E,OAAO,CAAC,WAAW,CAAc;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,mBAAmB,CAgBzB;gBAGD,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,SAAS,EACrB,eAAe,CAAC,EAAE,0BAA0B,CAAC,WAAW,CAAC;IAQ7C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA0ChC,OAAO,CAAC,oBAAoB,EAAE,SAAS,GAAG,qBAAqB;
|
|
1
|
+
{"version":3,"file":"grpcMultiUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcMultiUserAccountSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,WAAW,EAEX,SAAS,EAET,qBAAqB,EACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAW,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,qBAAa,8BAA8B;IAC1C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,eAAe,CAA0C;IAEjE,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,SAAS,CAGb;IACJ,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAgC;IACtD,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAA4C;IAC1E,OAAO,CAAC,WAAW,CAAc;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,mBAAmB,CAgBzB;gBAGD,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,SAAS,EACrB,eAAe,CAAC,EAAE,0BAA0B,CAAC,WAAW,CAAC;IAQ7C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA0ChC,OAAO,CAAC,oBAAoB,EAAE,SAAS,GAAG,qBAAqB;IAqGtE,OAAO,CAAC,aAAa;YAOP,YAAY;CAmE1B"}
|
|
@@ -76,7 +76,10 @@ class grpcMultiUserAccountSubscriber {
|
|
|
76
76
|
this.listeners.set(key, new Set());
|
|
77
77
|
this.keyToPk.set(key, userAccountPublicKey);
|
|
78
78
|
this.pendingAddKeys.add(key);
|
|
79
|
-
this.
|
|
79
|
+
if (this.isMultiSubscribed) {
|
|
80
|
+
// only schedule flush if already subscribed to the multi-subscriber
|
|
81
|
+
this.scheduleFlush();
|
|
82
|
+
}
|
|
80
83
|
}
|
|
81
84
|
};
|
|
82
85
|
const perUser = {
|
|
@@ -110,6 +113,10 @@ class grpcMultiUserAccountSubscriber {
|
|
|
110
113
|
this.updateData(account, 0);
|
|
111
114
|
},
|
|
112
115
|
updateData(userAccount, slot) {
|
|
116
|
+
const existingData = parent.userData.get(key);
|
|
117
|
+
if (existingData && existingData.slot > slot) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
113
120
|
parent.userData.set(key, { data: userAccount, slot });
|
|
114
121
|
perUserEmitter.emit('userAccountUpdate', userAccount);
|
|
115
122
|
perUserEmitter.emit('update');
|
|
@@ -71,4 +71,6 @@ export declare const FUEL_WINDOW: BN;
|
|
|
71
71
|
export declare const FUEL_START_TS: BN;
|
|
72
72
|
export declare const MAX_PREDICTION_PRICE: BN;
|
|
73
73
|
export declare const GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99;
|
|
74
|
+
export declare const MAX_I64: BN;
|
|
75
|
+
export declare const MIN_I64: BN;
|
|
74
76
|
//# sourceMappingURL=numericConstants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numericConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/numericConstants.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"numericConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/numericConstants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_RATE_BUFFER_PRECISION = exports.FUNDING_RATE_PRECISION = exports.PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.SPOT_MARKET_IMF_PRECISION = exports.SPOT_MARKET_IMF_PRECISION_EXP = exports.SPOT_MARKET_BALANCE_PRECISION = exports.SPOT_MARKET_BALANCE_PRECISION_EXP = exports.SPOT_MARKET_WEIGHT_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION_EXP = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = exports.SPOT_MARKET_RATE_PRECISION = exports.SPOT_MARKET_RATE_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.PRICE_PRECISION_EXP = exports.FUNDING_RATE_BUFFER_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.CONCENTRATION_PRECISION = exports.PERCENTAGE_PRECISION = exports.PERCENTAGE_PRECISION_EXP = exports.MAX_LEVERAGE_ORDER_SIZE = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.NINE = exports.EIGHT = exports.SEVEN = exports.SIX = exports.FIVE = exports.FOUR = exports.THREE = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
4
|
-
exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.MAX_PREDICTION_PRICE = exports.FUEL_START_TS = exports.FUEL_WINDOW = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.GOV_SPOT_MARKET_INDEX = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = void 0;
|
|
4
|
+
exports.MIN_I64 = exports.MAX_I64 = exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.MAX_PREDICTION_PRICE = exports.FUEL_START_TS = exports.FUEL_WINDOW = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.GOV_SPOT_MARKET_INDEX = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = void 0;
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
6
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
7
|
+
const bigNum_1 = require("../factory/bigNum");
|
|
7
8
|
exports.ZERO = new anchor_1.BN(0);
|
|
8
9
|
exports.ONE = new anchor_1.BN(1);
|
|
9
10
|
exports.TWO = new anchor_1.BN(2);
|
|
@@ -75,3 +76,6 @@ exports.FUEL_WINDOW = new anchor_1.BN(60 * 60 * 24 * 28); // 28 days
|
|
|
75
76
|
exports.FUEL_START_TS = new anchor_1.BN(1723147200); // unix timestamp
|
|
76
77
|
exports.MAX_PREDICTION_PRICE = exports.PRICE_PRECISION;
|
|
77
78
|
exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99;
|
|
79
|
+
// integer constants
|
|
80
|
+
exports.MAX_I64 = bigNum_1.BigNum.fromPrint('9223372036854775807').val;
|
|
81
|
+
exports.MIN_I64 = bigNum_1.BigNum.fromPrint('-9223372036854775808').val;
|
package/package.json
CHANGED
|
@@ -119,7 +119,10 @@ export class grpcMultiUserAccountSubscriber {
|
|
|
119
119
|
this.listeners.set(key, new Set());
|
|
120
120
|
this.keyToPk.set(key, userAccountPublicKey);
|
|
121
121
|
this.pendingAddKeys.add(key);
|
|
122
|
-
this.
|
|
122
|
+
if (this.isMultiSubscribed) {
|
|
123
|
+
// only schedule flush if already subscribed to the multi-subscriber
|
|
124
|
+
this.scheduleFlush();
|
|
125
|
+
}
|
|
123
126
|
}
|
|
124
127
|
};
|
|
125
128
|
|
|
@@ -161,6 +164,10 @@ export class grpcMultiUserAccountSubscriber {
|
|
|
161
164
|
},
|
|
162
165
|
|
|
163
166
|
updateData(userAccount: UserAccount, slot: number): void {
|
|
167
|
+
const existingData = parent.userData.get(key);
|
|
168
|
+
if (existingData && existingData.slot > slot) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
164
171
|
parent.userData.set(key, { data: userAccount, slot });
|
|
165
172
|
perUserEmitter.emit('userAccountUpdate', userAccount);
|
|
166
173
|
perUserEmitter.emit('update');
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LAMPORTS_PER_SOL } from '@solana/web3.js';
|
|
2
2
|
import { BN } from '@coral-xyz/anchor';
|
|
3
|
+
import { BigNum } from '../factory/bigNum';
|
|
3
4
|
|
|
4
5
|
export const ZERO = new BN(0);
|
|
5
6
|
export const ONE = new BN(1);
|
|
@@ -116,3 +117,7 @@ export const FUEL_START_TS = new BN(1723147200); // unix timestamp
|
|
|
116
117
|
export const MAX_PREDICTION_PRICE = PRICE_PRECISION;
|
|
117
118
|
|
|
118
119
|
export const GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99;
|
|
120
|
+
|
|
121
|
+
// integer constants
|
|
122
|
+
export const MAX_I64 = BigNum.fromPrint('9223372036854775807').val;
|
|
123
|
+
export const MIN_I64 = BigNum.fromPrint('-9223372036854775808').val;
|