@drift-labs/sdk 0.1.29-master.0 → 0.1.30-master.0

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.
Files changed (68) hide show
  1. package/lib/accounts/bulkAccountLoader.d.ts +1 -0
  2. package/lib/accounts/bulkAccountLoader.js +33 -13
  3. package/lib/clearingHouse.d.ts +4 -1
  4. package/lib/clearingHouse.js +49 -0
  5. package/lib/constants/markets.js +11 -0
  6. package/lib/idl/clearing_house.json +63 -2
  7. package/lib/index.d.ts +1 -0
  8. package/lib/index.js +1 -0
  9. package/lib/math/amm.d.ts +0 -20
  10. package/lib/math/amm.js +1 -151
  11. package/lib/math/repeg.d.ts +32 -0
  12. package/lib/math/repeg.js +178 -0
  13. package/lib/oracles/pythClient.js +1 -1
  14. package/lib/orderParams.d.ts +1 -1
  15. package/lib/orderParams.js +2 -2
  16. package/lib/tx/retryTxSender.d.ts +5 -2
  17. package/lib/tx/retryTxSender.js +14 -1
  18. package/package.json +1 -1
  19. package/src/accounts/bulkAccountLoader.ts +40 -15
  20. package/src/clearingHouse.ts +71 -0
  21. package/src/constants/markets.ts +11 -0
  22. package/src/idl/clearing_house.json +63 -2
  23. package/src/index.ts +1 -0
  24. package/src/math/amm.ts +1 -212
  25. package/src/math/repeg.ts +253 -0
  26. package/src/oracles/pythClient.ts +1 -1
  27. package/src/orderParams.ts +3 -2
  28. package/src/tx/retryTxSender.ts +19 -1
  29. package/src/accounts/bulkUserSubscription.js +0 -56
  30. package/src/accounts/bulkUserSubscription.js.map +0 -1
  31. package/src/accounts/pollingUserAccountSubscriber.js +0 -139
  32. package/src/accounts/pollingUserAccountSubscriber.js.map +0 -1
  33. package/src/accounts/types.js +0 -11
  34. package/src/accounts/types.js.map +0 -1
  35. package/src/accounts/webSocketUserAccountSubscriber.js +0 -78
  36. package/src/accounts/webSocketUserAccountSubscriber.js.map +0 -1
  37. package/src/addresses.js +0 -59
  38. package/src/addresses.js.map +0 -1
  39. package/src/admin.js +0 -443
  40. package/src/admin.js.map +0 -1
  41. package/src/clearingHouseUser.js +0 -581
  42. package/src/clearingHouseUser.js.map +0 -1
  43. package/src/config.js +0 -37
  44. package/src/config.js.map +0 -1
  45. package/src/factory/clearingHouse.js +0 -65
  46. package/src/factory/clearingHouse.js.map +0 -1
  47. package/src/factory/clearingHouseUser.js +0 -35
  48. package/src/factory/clearingHouseUser.js.map +0 -1
  49. package/src/factory/oracleClient.js +0 -17
  50. package/src/factory/oracleClient.js.map +0 -1
  51. package/src/index.js +0 -56
  52. package/src/index.js.map +0 -1
  53. package/src/math/amm.js +0 -285
  54. package/src/math/amm.js.map +0 -1
  55. package/src/mockUSDCFaucet.js +0 -143
  56. package/src/mockUSDCFaucet.js.map +0 -1
  57. package/src/oracles/pythClient.js +0 -39
  58. package/src/oracles/pythClient.js.map +0 -1
  59. package/src/orderParams.js +0 -109
  60. package/src/orderParams.js.map +0 -1
  61. package/src/orders.js +0 -172
  62. package/src/orders.js.map +0 -1
  63. package/src/tx/retryTxSender.js +0 -137
  64. package/src/tx/retryTxSender.js.map +0 -1
  65. package/src/types.js +0 -61
  66. package/src/types.js.map +0 -1
  67. package/src/wallet.js +0 -23
  68. package/src/wallet.js.map +0 -1
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertPythPrice = exports.PythClient = void 0;
4
- const client_1 = require("@pythnetwork/client");
5
- const anchor_1 = require("@project-serum/anchor");
6
- const numericConstants_1 = require("../constants/numericConstants");
7
- class PythClient {
8
- constructor(connection) {
9
- this.connection = connection;
10
- }
11
- async getPriceData(pricePublicKey) {
12
- const account = await this.connection.getAccountInfo(pricePublicKey);
13
- return (0, client_1.parsePriceData)(account.data);
14
- }
15
- async getOraclePriceData(pricePublicKey) {
16
- const accountInfo = await this.connection.getAccountInfo(pricePublicKey);
17
- return this.getOraclePriceDataFromBuffer(accountInfo.data);
18
- }
19
- async getOraclePriceDataFromBuffer(buffer) {
20
- const priceData = (0, client_1.parsePriceData)(buffer);
21
- return {
22
- price: convertPythPrice(priceData.price, priceData.exponent),
23
- slot: new anchor_1.BN(priceData.lastSlot.toString()),
24
- confidence: convertPythPrice(priceData.confidence, priceData.exponent),
25
- twap: convertPythPrice(priceData.twap.value, priceData.exponent),
26
- twapConfidence: convertPythPrice(priceData.twac.value, priceData.exponent),
27
- };
28
- }
29
- }
30
- exports.PythClient = PythClient;
31
- function convertPythPrice(price, exponent) {
32
- exponent = Math.abs(exponent);
33
- const pythPrecision = numericConstants_1.TEN.pow(new anchor_1.BN(exponent).abs());
34
- return new anchor_1.BN(price * Math.pow(10, exponent))
35
- .mul(numericConstants_1.MARK_PRICE_PRECISION)
36
- .div(pythPrecision);
37
- }
38
- exports.convertPythPrice = convertPythPrice;
39
- //# sourceMappingURL=pythClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pythClient.js","sourceRoot":"","sources":["pythClient.ts"],"names":[],"mappings":";;;AAAA,gDAAgE;AAGhE,kDAA2C;AAC3C,oEAA0E;AAE1E,MAAa,UAAU;IAGtB,YAAmB,UAAsB;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,cAAyB;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACrE,OAAO,IAAA,uBAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC9B,cAAyB;QAEzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,4BAA4B,CACxC,MAAc;QAEd,MAAM,SAAS,GAAG,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;QACzC,OAAO;YACN,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC5D,IAAI,EAAE,IAAI,WAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3C,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC;YACtE,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;YAChE,cAAc,EAAE,gBAAgB,CAC/B,SAAS,CAAC,IAAI,CAAC,KAAK,EACpB,SAAS,CAAC,QAAQ,CAClB;SACD,CAAC;IACH,CAAC;CACD;AAlCD,gCAkCC;AAED,SAAgB,gBAAgB,CAAC,KAAa,EAAE,QAAgB;IAC/D,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,sBAAG,CAAC,GAAG,CAAC,IAAI,WAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,OAAO,IAAI,WAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;SAC3C,GAAG,CAAC,uCAAoB,CAAC;SACzB,GAAG,CAAC,aAAa,CAAC,CAAC;AACtB,CAAC;AAND,4CAMC"}
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMarketOrderParams = exports.getTriggerLimitOrderParams = exports.getTriggerMarketOrderParams = exports.getLimitOrderParams = void 0;
4
- const types_1 = require("./types");
5
- const numericConstants_1 = require("./constants/numericConstants");
6
- function getLimitOrderParams(marketIndex, direction, baseAssetAmount, price, reduceOnly, discountToken = false, referrer = false, userOrderId = 0, postOnly = false, oraclePriceOffset = numericConstants_1.ZERO) {
7
- return {
8
- orderType: types_1.OrderType.LIMIT,
9
- userOrderId,
10
- marketIndex,
11
- direction,
12
- quoteAssetAmount: numericConstants_1.ZERO,
13
- baseAssetAmount,
14
- price,
15
- reduceOnly,
16
- postOnly,
17
- immediateOrCancel: false,
18
- positionLimit: numericConstants_1.ZERO,
19
- padding0: true,
20
- padding1: numericConstants_1.ZERO,
21
- optionalAccounts: {
22
- discountToken,
23
- referrer,
24
- },
25
- triggerCondition: types_1.OrderTriggerCondition.ABOVE,
26
- triggerPrice: numericConstants_1.ZERO,
27
- oraclePriceOffset,
28
- };
29
- }
30
- exports.getLimitOrderParams = getLimitOrderParams;
31
- function getTriggerMarketOrderParams(marketIndex, direction, baseAssetAmount, triggerPrice, triggerCondition, reduceOnly, discountToken = false, referrer = false, userOrderId = 0) {
32
- return {
33
- orderType: types_1.OrderType.TRIGGER_MARKET,
34
- userOrderId,
35
- marketIndex,
36
- direction,
37
- quoteAssetAmount: numericConstants_1.ZERO,
38
- baseAssetAmount,
39
- price: numericConstants_1.ZERO,
40
- reduceOnly,
41
- postOnly: false,
42
- immediateOrCancel: false,
43
- positionLimit: numericConstants_1.ZERO,
44
- padding0: true,
45
- padding1: numericConstants_1.ZERO,
46
- optionalAccounts: {
47
- discountToken,
48
- referrer,
49
- },
50
- triggerCondition,
51
- triggerPrice,
52
- oraclePriceOffset: numericConstants_1.ZERO,
53
- };
54
- }
55
- exports.getTriggerMarketOrderParams = getTriggerMarketOrderParams;
56
- function getTriggerLimitOrderParams(marketIndex, direction, baseAssetAmount, price, triggerPrice, triggerCondition, reduceOnly, discountToken = false, referrer = false, userOrderId = 0) {
57
- return {
58
- orderType: types_1.OrderType.TRIGGER_LIMIT,
59
- userOrderId,
60
- marketIndex,
61
- direction,
62
- quoteAssetAmount: numericConstants_1.ZERO,
63
- baseAssetAmount,
64
- price,
65
- reduceOnly,
66
- postOnly: false,
67
- immediateOrCancel: false,
68
- positionLimit: numericConstants_1.ZERO,
69
- padding0: true,
70
- padding1: numericConstants_1.ZERO,
71
- optionalAccounts: {
72
- discountToken,
73
- referrer,
74
- },
75
- triggerCondition,
76
- triggerPrice,
77
- oraclePriceOffset: numericConstants_1.ZERO,
78
- };
79
- }
80
- exports.getTriggerLimitOrderParams = getTriggerLimitOrderParams;
81
- function getMarketOrderParams(marketIndex, direction, quoteAssetAmount, baseAssetAmount, reduceOnly, price = numericConstants_1.ZERO, discountToken = false, referrer = false) {
82
- if (baseAssetAmount.eq(numericConstants_1.ZERO) && quoteAssetAmount.eq(numericConstants_1.ZERO)) {
83
- throw Error('baseAssetAmount or quoteAssetAmount must be zero');
84
- }
85
- return {
86
- orderType: types_1.OrderType.MARKET,
87
- userOrderId: 0,
88
- marketIndex,
89
- direction,
90
- quoteAssetAmount,
91
- baseAssetAmount,
92
- price,
93
- reduceOnly,
94
- postOnly: false,
95
- immediateOrCancel: false,
96
- positionLimit: numericConstants_1.ZERO,
97
- padding0: true,
98
- padding1: numericConstants_1.ZERO,
99
- optionalAccounts: {
100
- discountToken,
101
- referrer,
102
- },
103
- triggerCondition: types_1.OrderTriggerCondition.ABOVE,
104
- triggerPrice: numericConstants_1.ZERO,
105
- oraclePriceOffset: numericConstants_1.ZERO,
106
- };
107
- }
108
- exports.getMarketOrderParams = getMarketOrderParams;
109
- //# sourceMappingURL=orderParams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orderParams.js","sourceRoot":"","sources":["orderParams.ts"],"names":[],"mappings":"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"}
package/src/orders.js DELETED
@@ -1,172 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateBaseAssetAmountUserCanExecute = exports.calculateAmountToTradeForTriggerLimit = exports.calculateAmountToTradeForLimit = exports.calculateBaseAssetAmountMarketCanExecute = exports.calculateNewStateAfterOrder = void 0;
4
- const types_1 = require("./types");
5
- const _1 = require(".");
6
- const market_1 = require("./math/market");
7
- const numericConstants_1 = require("./constants/numericConstants");
8
- const amm_1 = require("./math/amm");
9
- const position_1 = require("./math/position");
10
- function calculateNewStateAfterOrder(userAccount, userPosition, market, order) {
11
- if ((0, types_1.isVariant)(order.status, 'init')) {
12
- return null;
13
- }
14
- const baseAssetAmountToTrade = calculateBaseAssetAmountMarketCanExecute(market, order);
15
- if (baseAssetAmountToTrade.lt(market.amm.minimumBaseAssetTradeSize)) {
16
- return null;
17
- }
18
- const userAccountAfter = Object.assign({}, userAccount);
19
- const userPositionAfter = Object.assign({}, userPosition);
20
- const currentPositionDirection = (0, position_1.positionCurrentDirection)(userPosition);
21
- const increasePosition = userPosition.baseAssetAmount.eq(numericConstants_1.ZERO) ||
22
- isSameDirection(order.direction, currentPositionDirection);
23
- if (increasePosition) {
24
- const marketAfter = (0, market_1.calculateNewMarketAfterTrade)(baseAssetAmountToTrade, order.direction, market);
25
- const { quoteAssetAmountSwapped, baseAssetAmountSwapped } = calculateAmountSwapped(market, marketAfter);
26
- userPositionAfter.baseAssetAmount = userPositionAfter.baseAssetAmount.add(baseAssetAmountSwapped);
27
- userPositionAfter.quoteAssetAmount = userPositionAfter.quoteAssetAmount.add(quoteAssetAmountSwapped);
28
- return [userAccountAfter, userPositionAfter, marketAfter];
29
- }
30
- else {
31
- const reversePosition = baseAssetAmountToTrade.gt(userPosition.baseAssetAmount.abs());
32
- if (reversePosition) {
33
- const intermediateMarket = (0, market_1.calculateNewMarketAfterTrade)(userPosition.baseAssetAmount, (0, position_1.findDirectionToClose)(userPosition), market);
34
- const { quoteAssetAmountSwapped: baseAssetValue } = calculateAmountSwapped(market, intermediateMarket);
35
- let pnl;
36
- if ((0, types_1.isVariant)(currentPositionDirection, 'long')) {
37
- pnl = baseAssetValue.sub(userPosition.quoteAssetAmount);
38
- }
39
- else {
40
- pnl = userPosition.quoteAssetAmount.sub(baseAssetValue);
41
- }
42
- userAccountAfter.collateral = userAccountAfter.collateral.add(pnl);
43
- const baseAssetAmountLeft = baseAssetAmountToTrade.sub(userPosition.baseAssetAmount.abs());
44
- const marketAfter = (0, market_1.calculateNewMarketAfterTrade)(baseAssetAmountLeft, order.direction, intermediateMarket);
45
- const { quoteAssetAmountSwapped, baseAssetAmountSwapped } = calculateAmountSwapped(intermediateMarket, marketAfter);
46
- userPositionAfter.quoteAssetAmount = quoteAssetAmountSwapped;
47
- userPositionAfter.baseAssetAmount = baseAssetAmountSwapped;
48
- return [userAccountAfter, userPositionAfter, marketAfter];
49
- }
50
- else {
51
- const marketAfter = (0, market_1.calculateNewMarketAfterTrade)(baseAssetAmountToTrade, order.direction, market);
52
- const { quoteAssetAmountSwapped: baseAssetValue, baseAssetAmountSwapped, } = calculateAmountSwapped(market, marketAfter);
53
- const costBasisRealized = userPosition.quoteAssetAmount
54
- .mul(baseAssetAmountSwapped.abs())
55
- .div(userPosition.baseAssetAmount.abs());
56
- let pnl;
57
- if ((0, types_1.isVariant)(currentPositionDirection, 'long')) {
58
- pnl = baseAssetValue.sub(costBasisRealized);
59
- }
60
- else {
61
- pnl = costBasisRealized.sub(baseAssetValue);
62
- }
63
- userAccountAfter.collateral = userAccountAfter.collateral.add(pnl);
64
- userPositionAfter.baseAssetAmount = userPositionAfter.baseAssetAmount.add(baseAssetAmountSwapped);
65
- userPositionAfter.quoteAssetAmount =
66
- userPositionAfter.quoteAssetAmount.sub(costBasisRealized);
67
- return [userAccountAfter, userPositionAfter, marketAfter];
68
- }
69
- }
70
- }
71
- exports.calculateNewStateAfterOrder = calculateNewStateAfterOrder;
72
- function calculateAmountSwapped(marketBefore, marketAfter) {
73
- return {
74
- quoteAssetAmountSwapped: marketBefore.amm.quoteAssetReserve
75
- .sub(marketAfter.amm.quoteAssetReserve)
76
- .abs()
77
- .mul(marketBefore.amm.pegMultiplier)
78
- .div(numericConstants_1.PEG_PRECISION)
79
- .div(numericConstants_1.AMM_TO_QUOTE_PRECISION_RATIO),
80
- baseAssetAmountSwapped: marketBefore.amm.baseAssetReserve.sub(marketAfter.amm.baseAssetReserve),
81
- };
82
- }
83
- function calculateBaseAssetAmountMarketCanExecute(market, order, oraclePriceData) {
84
- if ((0, types_1.isVariant)(order.orderType, 'limit')) {
85
- return calculateAmountToTradeForLimit(market, order, oraclePriceData);
86
- }
87
- else if ((0, types_1.isVariant)(order.orderType, 'triggerLimit')) {
88
- return calculateAmountToTradeForTriggerLimit(market, order);
89
- }
90
- else if ((0, types_1.isVariant)(order.orderType, 'market')) {
91
- // should never be a market order queued
92
- return numericConstants_1.ZERO;
93
- }
94
- else {
95
- return calculateAmountToTradeForTriggerMarket(market, order);
96
- }
97
- }
98
- exports.calculateBaseAssetAmountMarketCanExecute = calculateBaseAssetAmountMarketCanExecute;
99
- function calculateAmountToTradeForLimit(market, order, oraclePriceData) {
100
- let limitPrice = order.price;
101
- if (!order.oraclePriceOffset.eq(numericConstants_1.ZERO)) {
102
- if (!oraclePriceData) {
103
- throw Error('Cant calculate limit price for oracle offset oracle without OraclePriceData');
104
- }
105
- limitPrice = oraclePriceData.price.add(order.oraclePriceOffset);
106
- }
107
- const [maxAmountToTrade, direction] = (0, amm_1.calculateMaxBaseAssetAmountToTrade)(market.amm, limitPrice);
108
- // Check that directions are the same
109
- const sameDirection = isSameDirection(direction, order.direction);
110
- if (!sameDirection) {
111
- return numericConstants_1.ZERO;
112
- }
113
- return maxAmountToTrade.gt(order.baseAssetAmount)
114
- ? order.baseAssetAmount
115
- : maxAmountToTrade;
116
- }
117
- exports.calculateAmountToTradeForLimit = calculateAmountToTradeForLimit;
118
- function calculateAmountToTradeForTriggerLimit(market, order) {
119
- if (order.baseAssetAmountFilled.eq(numericConstants_1.ZERO)) {
120
- const baseAssetAmount = calculateAmountToTradeForTriggerMarket(market, order);
121
- if (baseAssetAmount.eq(numericConstants_1.ZERO)) {
122
- return numericConstants_1.ZERO;
123
- }
124
- }
125
- return calculateAmountToTradeForLimit(market, order);
126
- }
127
- exports.calculateAmountToTradeForTriggerLimit = calculateAmountToTradeForTriggerLimit;
128
- function isSameDirection(firstDirection, secondDirection) {
129
- return (((0, types_1.isVariant)(firstDirection, 'long') && (0, types_1.isVariant)(secondDirection, 'long')) ||
130
- ((0, types_1.isVariant)(firstDirection, 'short') && (0, types_1.isVariant)(secondDirection, 'short')));
131
- }
132
- function calculateAmountToTradeForTriggerMarket(market, order) {
133
- return isTriggerConditionSatisfied(market, order)
134
- ? order.baseAssetAmount
135
- : numericConstants_1.ZERO;
136
- }
137
- function isTriggerConditionSatisfied(market, order) {
138
- const markPrice = (0, market_1.calculateMarkPrice)(market);
139
- if ((0, types_1.isVariant)(order.triggerCondition, 'above')) {
140
- return markPrice.gt(order.triggerPrice);
141
- }
142
- else {
143
- return markPrice.lt(order.triggerPrice);
144
- }
145
- }
146
- function calculateBaseAssetAmountUserCanExecute(market, order, user) {
147
- const maxLeverage = user.getMaxLeverage(order.marketIndex, 'Initial');
148
- const freeCollateral = user.getFreeCollateral();
149
- let quoteAssetAmount;
150
- if ((0, _1.isOrderRiskIncreasingInSameDirection)(user, order)) {
151
- quoteAssetAmount = freeCollateral.mul(maxLeverage).div(_1.TEN_THOUSAND);
152
- }
153
- else {
154
- const position = user.getUserPosition(order.marketIndex) ||
155
- user.getEmptyPosition(order.marketIndex);
156
- const positionValue = (0, _1.calculateBaseAssetValue)(market, position);
157
- quoteAssetAmount = freeCollateral
158
- .mul(maxLeverage)
159
- .div(_1.TEN_THOUSAND)
160
- .add(positionValue.mul(numericConstants_1.TWO));
161
- }
162
- if (quoteAssetAmount.lte(numericConstants_1.ZERO)) {
163
- return numericConstants_1.ZERO;
164
- }
165
- const baseAssetReservesBefore = market.amm.baseAssetReserve;
166
- const [_, baseAssetReservesAfter] = (0, _1.calculateAmmReservesAfterSwap)(market.amm, 'quote', quoteAssetAmount, (0, types_1.isVariant)(order.direction, 'long')
167
- ? types_1.SwapDirection.ADD
168
- : types_1.SwapDirection.REMOVE);
169
- return baseAssetReservesBefore.sub(baseAssetReservesAfter).abs();
170
- }
171
- exports.calculateBaseAssetAmountUserCanExecute = calculateBaseAssetAmountUserCanExecute;
172
- //# sourceMappingURL=orders.js.map
package/src/orders.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"orders.js","sourceRoot":"","sources":["orders.ts"],"names":[],"mappings":"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"}
@@ -1,137 +0,0 @@
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.RetryTxSender = void 0;
7
- const assert_1 = __importDefault(require("assert"));
8
- const bs58_1 = __importDefault(require("bs58"));
9
- const DEFAULT_TIMEOUT = 35000;
10
- const DEFAULT_RETRY = 8000;
11
- class RetryTxSender {
12
- constructor(provider, timeout, retrySleep) {
13
- this.provider = provider;
14
- this.timeout = timeout !== null && timeout !== void 0 ? timeout : DEFAULT_TIMEOUT;
15
- this.retrySleep = retrySleep !== null && retrySleep !== void 0 ? retrySleep : DEFAULT_RETRY;
16
- }
17
- async send(tx, additionalSigners, opts) {
18
- if (additionalSigners === undefined) {
19
- additionalSigners = [];
20
- }
21
- if (opts === undefined) {
22
- opts = this.provider.opts;
23
- }
24
- await this.prepareTx(tx, additionalSigners, opts);
25
- const rawTransaction = tx.serialize();
26
- const startTime = this.getTimestamp();
27
- const txid = await this.provider.connection.sendRawTransaction(rawTransaction, opts);
28
- let done = false;
29
- const resolveReference = {
30
- resolve: undefined,
31
- };
32
- const stopWaiting = () => {
33
- done = true;
34
- if (resolveReference.resolve) {
35
- resolveReference.resolve();
36
- }
37
- };
38
- (async () => {
39
- while (!done && this.getTimestamp() - startTime < this.timeout) {
40
- await this.sleep(resolveReference);
41
- if (!done) {
42
- this.provider.connection
43
- .sendRawTransaction(rawTransaction, opts)
44
- .catch((e) => {
45
- console.error(e);
46
- stopWaiting();
47
- });
48
- }
49
- }
50
- })();
51
- try {
52
- await this.confirmTransaction(txid, opts.commitment);
53
- }
54
- catch (e) {
55
- console.error(e);
56
- throw e;
57
- }
58
- finally {
59
- stopWaiting();
60
- }
61
- return txid;
62
- }
63
- async prepareTx(tx, additionalSigners, opts) {
64
- tx.feePayer = this.provider.wallet.publicKey;
65
- tx.recentBlockhash = (await this.provider.connection.getRecentBlockhash(opts.preflightCommitment)).blockhash;
66
- await this.provider.wallet.signTransaction(tx);
67
- additionalSigners
68
- .filter((s) => s !== undefined)
69
- .forEach((kp) => {
70
- tx.partialSign(kp);
71
- });
72
- return tx;
73
- }
74
- async confirmTransaction(signature, commitment) {
75
- let decodedSignature;
76
- try {
77
- decodedSignature = bs58_1.default.decode(signature);
78
- }
79
- catch (err) {
80
- throw new Error('signature must be base58 encoded: ' + signature);
81
- }
82
- (0, assert_1.default)(decodedSignature.length === 64, 'signature has invalid length');
83
- const start = Date.now();
84
- const subscriptionCommitment = commitment || this.provider.opts.commitment;
85
- let subscriptionId;
86
- let response = null;
87
- const confirmPromise = new Promise((resolve, reject) => {
88
- try {
89
- subscriptionId = this.provider.connection.onSignature(signature, (result, context) => {
90
- subscriptionId = undefined;
91
- response = {
92
- context,
93
- value: result,
94
- };
95
- resolve(null);
96
- }, subscriptionCommitment);
97
- }
98
- catch (err) {
99
- reject(err);
100
- }
101
- });
102
- try {
103
- await this.promiseTimeout(confirmPromise, this.timeout);
104
- }
105
- finally {
106
- if (subscriptionId) {
107
- this.provider.connection.removeSignatureListener(subscriptionId);
108
- }
109
- }
110
- if (response === null) {
111
- const duration = (Date.now() - start) / 1000;
112
- throw new Error(`Transaction was not confirmed in ${duration.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${signature} using the Solana Explorer or CLI tools.`);
113
- }
114
- return response;
115
- }
116
- getTimestamp() {
117
- return new Date().getTime();
118
- }
119
- async sleep(reference) {
120
- return new Promise((resolve) => {
121
- reference.resolve = resolve;
122
- setTimeout(resolve, this.retrySleep);
123
- });
124
- }
125
- promiseTimeout(promise, timeoutMs) {
126
- let timeoutId;
127
- const timeoutPromise = new Promise((resolve) => {
128
- timeoutId = setTimeout(() => resolve(null), timeoutMs);
129
- });
130
- return Promise.race([promise, timeoutPromise]).then((result) => {
131
- clearTimeout(timeoutId);
132
- return result;
133
- });
134
- }
135
- }
136
- exports.RetryTxSender = RetryTxSender;
137
- //# sourceMappingURL=retryTxSender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retryTxSender.js","sourceRoot":"","sources":["retryTxSender.ts"],"names":[],"mappings":"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"}
package/src/types.js DELETED
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TradeSide = exports.isVariant = exports.OrderTriggerCondition = exports.OrderAction = exports.OrderDiscountTier = exports.OrderStatus = exports.OrderType = exports.OracleSource = exports.PositionDirection = exports.SwapDirection = void 0;
4
- // # Utility Types / Enums / Constants
5
- class SwapDirection {
6
- }
7
- exports.SwapDirection = SwapDirection;
8
- SwapDirection.ADD = { add: {} };
9
- SwapDirection.REMOVE = { remove: {} };
10
- class PositionDirection {
11
- }
12
- exports.PositionDirection = PositionDirection;
13
- PositionDirection.LONG = { long: {} };
14
- PositionDirection.SHORT = { short: {} };
15
- class OracleSource {
16
- }
17
- exports.OracleSource = OracleSource;
18
- OracleSource.PYTH = { pyth: {} };
19
- OracleSource.SWITCHBOARD = { switchboard: {} };
20
- class OrderType {
21
- }
22
- exports.OrderType = OrderType;
23
- OrderType.LIMIT = { limit: {} };
24
- OrderType.TRIGGER_MARKET = { triggerMarket: {} };
25
- OrderType.TRIGGER_LIMIT = { triggerLimit: {} };
26
- OrderType.MARKET = { market: {} };
27
- class OrderStatus {
28
- }
29
- exports.OrderStatus = OrderStatus;
30
- OrderStatus.INIT = { init: {} };
31
- OrderStatus.OPEN = { open: {} };
32
- class OrderDiscountTier {
33
- }
34
- exports.OrderDiscountTier = OrderDiscountTier;
35
- OrderDiscountTier.NONE = { none: {} };
36
- OrderDiscountTier.FIRST = { first: {} };
37
- OrderDiscountTier.SECOND = { second: {} };
38
- OrderDiscountTier.THIRD = { third: {} };
39
- OrderDiscountTier.FOURTH = { fourth: {} };
40
- class OrderAction {
41
- }
42
- exports.OrderAction = OrderAction;
43
- OrderAction.PLACE = { place: {} };
44
- OrderAction.CANCEL = { cancel: {} };
45
- OrderAction.FILL = { fill: {} };
46
- class OrderTriggerCondition {
47
- }
48
- exports.OrderTriggerCondition = OrderTriggerCondition;
49
- OrderTriggerCondition.ABOVE = { above: {} };
50
- OrderTriggerCondition.BELOW = { below: {} };
51
- function isVariant(object, type) {
52
- return object.hasOwnProperty(type);
53
- }
54
- exports.isVariant = isVariant;
55
- var TradeSide;
56
- (function (TradeSide) {
57
- TradeSide[TradeSide["None"] = 0] = "None";
58
- TradeSide[TradeSide["Buy"] = 1] = "Buy";
59
- TradeSide[TradeSide["Sell"] = 2] = "Sell";
60
- })(TradeSide = exports.TradeSide || (exports.TradeSide = {}));
61
- //# sourceMappingURL=types.js.map
package/src/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAGA,sCAAsC;AACtC,MAAa,aAAa;;AAA1B,sCAGC;AAFgB,iBAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAClB,oBAAM,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAGzC,MAAa,iBAAiB;;AAA9B,8CAGC;AAFgB,sBAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACpB,uBAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAGvC,MAAa,YAAY;;AAAzB,oCAGC;AAFgB,iBAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACpB,wBAAW,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAGnD,MAAa,SAAS;;AAAtB,8BAKC;AAJgB,eAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACtB,wBAAc,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AACvC,uBAAa,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AACrC,gBAAM,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAGzC,MAAa,WAAW;;AAAxB,kCAGC;AAFgB,gBAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACpB,gBAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAGrC,MAAa,iBAAiB;;AAA9B,8CAMC;AALgB,sBAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACpB,uBAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACtB,wBAAM,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,uBAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACtB,wBAAM,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAGzC,MAAa,WAAW;;AAAxB,kCAIC;AAHgB,iBAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACtB,kBAAM,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,gBAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAGrC,MAAa,qBAAqB;;AAAlC,sDAGC;AAFgB,2BAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACtB,2BAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAGvC,SAAgB,SAAS,CAAC,MAAe,EAAE,IAAY;IACtD,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAFD,8BAEC;AAED,IAAY,SAIX;AAJD,WAAY,SAAS;IACpB,yCAAQ,CAAA;IACR,uCAAO,CAAA;IACP,yCAAQ,CAAA;AACT,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB"}
package/src/wallet.js DELETED
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Wallet = void 0;
4
- class Wallet {
5
- constructor(payer) {
6
- this.payer = payer;
7
- }
8
- async signTransaction(tx) {
9
- tx.partialSign(this.payer);
10
- return tx;
11
- }
12
- async signAllTransactions(txs) {
13
- return txs.map((t) => {
14
- t.partialSign(this.payer);
15
- return t;
16
- });
17
- }
18
- get publicKey() {
19
- return this.payer.publicKey;
20
- }
21
- }
22
- exports.Wallet = Wallet;
23
- //# sourceMappingURL=wallet.js.map
package/src/wallet.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["wallet.ts"],"names":[],"mappings":";;;AAGA,MAAa,MAAM;IAClB,YAAqB,KAAc;QAAd,UAAK,GAAL,KAAK,CAAS;IAAG,CAAC;IAEvC,KAAK,CAAC,eAAe,CAAC,EAAe;QACpC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAkB;QAC3C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC7B,CAAC;CACD;AAlBD,wBAkBC"}