@drift-labs/sdk 0.1.18-orders.1 → 0.1.18
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/README.md +2 -1
- package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts +4 -7
- package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts.map +1 -0
- package/lib/accounts/defaultClearingHouseAccountSubscriber.js +1 -26
- package/lib/accounts/defaultUserAccountSubscriber.d.ts +2 -3
- package/lib/accounts/defaultUserAccountSubscriber.d.ts.map +1 -0
- package/lib/accounts/defaultUserAccountSubscriber.js +4 -13
- package/lib/accounts/types.d.ts +6 -32
- package/lib/accounts/types.d.ts.map +1 -0
- package/lib/accounts/webSocketAccountSubscriber.d.ts +1 -0
- package/lib/accounts/webSocketAccountSubscriber.d.ts.map +1 -0
- package/lib/addresses.d.ts +1 -4
- package/lib/addresses.d.ts.map +1 -0
- package/lib/addresses.js +1 -28
- package/lib/admin.d.ts +6 -10
- package/lib/admin.d.ts.map +1 -0
- package/lib/admin.js +44 -50
- package/lib/assert/assert.d.ts +1 -0
- package/lib/assert/assert.d.ts.map +1 -0
- package/lib/clearingHouse.d.ts +3 -22
- package/lib/clearingHouse.d.ts.map +1 -0
- package/lib/clearingHouse.js +7 -238
- package/lib/clearingHouseUser.d.ts +17 -10
- package/lib/clearingHouseUser.d.ts.map +1 -0
- package/lib/clearingHouseUser.js +84 -98
- package/lib/config.d.ts +1 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +1 -1
- package/lib/constants/markets.d.ts +1 -0
- package/lib/constants/markets.d.ts.map +1 -0
- package/lib/constants/markets.js +16 -0
- package/lib/constants/numericConstants.d.ts +1 -0
- package/lib/constants/numericConstants.d.ts.map +1 -0
- package/lib/examples/makeTradeExample.d.ts +1 -0
- package/lib/examples/makeTradeExample.d.ts.map +1 -0
- package/lib/idl/clearing_house.json +233 -911
- package/lib/index.d.ts +1 -4
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +0 -4
- package/lib/math/amm.d.ts +1 -1
- package/lib/math/amm.d.ts.map +1 -0
- package/lib/math/amm.js +8 -31
- package/lib/math/conversion.d.ts +1 -0
- package/lib/math/conversion.d.ts.map +1 -0
- package/lib/math/funding.d.ts +1 -0
- package/lib/math/funding.d.ts.map +1 -0
- package/lib/math/funding.js +4 -1
- package/lib/math/insuranceFund.d.ts +1 -0
- package/lib/math/insuranceFund.d.ts.map +1 -0
- package/lib/math/market.d.ts +2 -2
- package/lib/math/market.d.ts.map +1 -0
- package/lib/math/market.js +1 -11
- package/lib/math/position.d.ts +2 -4
- package/lib/math/position.d.ts.map +1 -0
- package/lib/math/position.js +4 -18
- package/lib/math/trade.d.ts +1 -0
- package/lib/math/trade.d.ts.map +1 -0
- package/lib/math/utils.d.ts +1 -0
- package/lib/math/utils.d.ts.map +1 -0
- package/lib/mockUSDCFaucet.d.ts +1 -0
- package/lib/mockUSDCFaucet.d.ts.map +1 -0
- package/lib/pythClient.d.ts +1 -0
- package/lib/pythClient.d.ts.map +1 -0
- package/lib/tx/defaultTxSender.d.ts +1 -0
- package/lib/tx/defaultTxSender.d.ts.map +1 -0
- package/lib/tx/types.d.ts +1 -0
- package/lib/tx/types.d.ts.map +1 -0
- package/lib/tx/utils.d.ts +1 -0
- package/lib/tx/utils.d.ts.map +1 -0
- package/lib/types.d.ts +8 -140
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +1 -36
- package/lib/util/computeUnits.d.ts +1 -0
- package/lib/util/computeUnits.d.ts.map +1 -0
- package/lib/util/tps.d.ts +1 -0
- package/lib/util/tps.d.ts.map +1 -0
- package/lib/wallet.d.ts +1 -0
- package/lib/wallet.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/accounts/defaultClearingHouseAccountSubscriber.ts +5 -52
- package/src/accounts/defaultUserAccountSubscriber.ts +6 -31
- package/src/accounts/types.ts +5 -42
- package/src/addresses.ts +0 -35
- package/src/admin.ts +52 -86
- package/src/clearingHouse.ts +7 -340
- package/src/clearingHouseUser.ts +102 -154
- package/src/config.ts +1 -1
- package/src/constants/markets.ts +16 -0
- package/src/idl/clearing_house.json +233 -911
- package/src/index.ts +0 -4
- package/src/math/amm.ts +14 -47
- package/src/math/funding.ts +5 -1
- package/src/math/market.ts +2 -28
- package/src/math/position.ts +3 -23
- package/src/types.ts +7 -124
- package/tsconfig.json +1 -0
- package/lib/accounts/defaultHistoryAccountSubscriber.d.ts +0 -28
- package/lib/accounts/defaultHistoryAccountSubscriber.js +0 -110
- package/lib/math/orders.d.ts +0 -3
- package/lib/math/orders.js +0 -30
- package/lib/orderParams.d.ts +0 -7
- package/lib/orderParams.js +0 -88
- package/lib/orders.d.ts +0 -5
- package/lib/orders.js +0 -136
- package/src/accounts/defaultHistoryAccountSubscriber.ts +0 -176
- package/src/math/orders.ts +0 -39
- package/src/orderParams.ts +0 -128
- package/src/orders.ts +0 -230
package/README.md
CHANGED
|
@@ -84,7 +84,7 @@ convertToNumber(new BN(10500), new BN(1000)); // = 10.5
|
|
|
84
84
|
### Setting up an account and making a trade
|
|
85
85
|
|
|
86
86
|
```typescript
|
|
87
|
-
import { BN, Provider
|
|
87
|
+
import { BN, Provider } from '@project-serum/anchor';
|
|
88
88
|
import { Token, TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
|
89
89
|
import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
|
90
90
|
import {
|
|
@@ -98,6 +98,7 @@ import {
|
|
|
98
98
|
calculateTradeSlippage,
|
|
99
99
|
MARK_PRICE_PRECISION,
|
|
100
100
|
QUOTE_PRECISION,
|
|
101
|
+
Wallet
|
|
101
102
|
} from '@drift-labs/sdk';
|
|
102
103
|
|
|
103
104
|
export const getTokenAddress = (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { ClearingHouseAccountSubscriber, ClearingHouseAccountEvents, ClearingHouseAccountTypes } from './types';
|
|
3
3
|
import { AccountSubscriber } from './types';
|
|
4
|
-
import {
|
|
4
|
+
import { DepositHistoryAccount, ExtendedCurveHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, LiquidationHistoryAccount, MarketsAccount, StateAccount, TradeHistoryAccount } from '../types';
|
|
5
5
|
import { Program } from '@project-serum/anchor';
|
|
6
6
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
7
7
|
import { EventEmitter } from 'events';
|
|
@@ -15,10 +15,8 @@ export declare class DefaultClearingHouseAccountSubscriber implements ClearingHo
|
|
|
15
15
|
depositHistoryAccountSubscriber?: AccountSubscriber<DepositHistoryAccount>;
|
|
16
16
|
fundingPaymentHistoryAccountSubscriber?: AccountSubscriber<FundingPaymentHistoryAccount>;
|
|
17
17
|
fundingRateHistoryAccountSubscriber?: AccountSubscriber<FundingRateHistoryAccount>;
|
|
18
|
-
curveHistoryAccountSubscriber?: AccountSubscriber<
|
|
18
|
+
curveHistoryAccountSubscriber?: AccountSubscriber<ExtendedCurveHistoryAccount>;
|
|
19
19
|
liquidationHistoryAccountSubscriber?: AccountSubscriber<LiquidationHistoryAccount>;
|
|
20
|
-
orderStateAccountSubscriber?: AccountSubscriber<OrderStateAccount>;
|
|
21
|
-
orderHistoryAccountSubscriber?: AccountSubscriber<OrderHistoryAccount>;
|
|
22
20
|
optionalExtraSubscriptions: ClearingHouseAccountTypes[];
|
|
23
21
|
private isSubscribing;
|
|
24
22
|
private subscriptionPromise;
|
|
@@ -35,8 +33,7 @@ export declare class DefaultClearingHouseAccountSubscriber implements ClearingHo
|
|
|
35
33
|
getDepositHistoryAccount(): DepositHistoryAccount;
|
|
36
34
|
getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
|
|
37
35
|
getFundingRateHistoryAccount(): FundingRateHistoryAccount;
|
|
38
|
-
getCurveHistoryAccount():
|
|
36
|
+
getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
|
|
39
37
|
getLiquidationHistoryAccount(): LiquidationHistoryAccount;
|
|
40
|
-
getOrderHistoryAccount(): OrderHistoryAccount;
|
|
41
|
-
getOrderStateAccount(): OrderStateAccount;
|
|
42
38
|
}
|
|
39
|
+
//# sourceMappingURL=defaultClearingHouseAccountSubscriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultClearingHouseAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/defaultClearingHouseAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAChE,OAAO,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,qBAAa,qCACZ,YAAW,8BAA8B;IAEzC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACzD,wBAAwB,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC7D,6BAA6B,CAAC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACvE,+BAA+B,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC3E,sCAAsC,CAAC,EAAE,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IACzF,mCAAmC,CAAC,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IACnF,6BAA6B,CAAC,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;IAC/E,mCAAmC,CAAC,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAEnF,0BAA0B,EAAE,yBAAyB,EAAE,CAAM;IAE7D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,mBAAmB,CAAmB;IAC9C,OAAO,CAAC,2BAA2B,CAAyB;gBAEzC,OAAO,EAAE,OAAO;IAMtB,SAAS,CACrB,qBAAqB,CAAC,EAAE,yBAAyB,EAAE,GACjD,OAAO,CAAC,OAAO,CAAC;IAiJN,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCzC,kBAAkB,IAAI,IAAI;IAQ1B,0BAA0B,CACzB,oBAAoB,EAAE,yBAAyB,GAC7C,IAAI;IAcA,eAAe,IAAI,YAAY;IAK/B,iBAAiB,IAAI,cAAc;IAKnC,sBAAsB,IAAI,mBAAmB;IAM7C,wBAAwB,IAAI,qBAAqB;IAMjD,+BAA+B,IAAI,4BAA4B;IAM/D,4BAA4B,IAAI,yBAAyB;IAMzD,sBAAsB,IAAI,2BAA2B;IAMrD,4BAA4B,IAAI,yBAAyB;CAKhE"}
|
|
@@ -47,12 +47,6 @@ class DefaultClearingHouseAccountSubscriber {
|
|
|
47
47
|
this.eventEmitter.emit('marketsAccountUpdate', data);
|
|
48
48
|
this.eventEmitter.emit('update');
|
|
49
49
|
});
|
|
50
|
-
this.orderStateAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('orderState', this.program, state.orderState);
|
|
51
|
-
yield this.orderStateAccountSubscriber.subscribe((data) => {
|
|
52
|
-
this.eventEmitter.emit('orderStateAccountUpdate', data);
|
|
53
|
-
this.eventEmitter.emit('update');
|
|
54
|
-
});
|
|
55
|
-
const orderState = this.orderStateAccountSubscriber.data;
|
|
56
50
|
// create subscribers for other state accounts
|
|
57
51
|
this.tradeHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('tradeHistory', this.program, state.tradeHistory);
|
|
58
52
|
this.depositHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('depositHistory', this.program, state.depositHistory);
|
|
@@ -60,8 +54,7 @@ class DefaultClearingHouseAccountSubscriber {
|
|
|
60
54
|
new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('fundingPaymentHistory', this.program, state.fundingPaymentHistory);
|
|
61
55
|
this.fundingRateHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('fundingRateHistory', this.program, state.fundingRateHistory);
|
|
62
56
|
this.liquidationHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('liquidationHistory', this.program, state.liquidationHistory);
|
|
63
|
-
this.curveHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('
|
|
64
|
-
this.orderHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('orderHistory', this.program, orderState.orderHistory);
|
|
57
|
+
this.curveHistoryAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('extendedCurveHistory', this.program, state.extendedCurveHistory);
|
|
65
58
|
const extraSusbcribersToUse = [];
|
|
66
59
|
if (optionalSubscriptions === null || optionalSubscriptions === void 0 ? void 0 : optionalSubscriptions.includes('tradeHistoryAccount'))
|
|
67
60
|
extraSusbcribersToUse.push({
|
|
@@ -93,11 +86,6 @@ class DefaultClearingHouseAccountSubscriber {
|
|
|
93
86
|
subscriber: this.curveHistoryAccountSubscriber,
|
|
94
87
|
eventType: 'curveHistoryAccountUpdate',
|
|
95
88
|
});
|
|
96
|
-
if (optionalSubscriptions === null || optionalSubscriptions === void 0 ? void 0 : optionalSubscriptions.includes('orderHistoryAccount'))
|
|
97
|
-
extraSusbcribersToUse.push({
|
|
98
|
-
subscriber: this.orderHistoryAccountSubscriber,
|
|
99
|
-
eventType: 'orderHistoryAccountUpdate',
|
|
100
|
-
});
|
|
101
89
|
this.optionalExtraSubscriptions = optionalSubscriptions !== null && optionalSubscriptions !== void 0 ? optionalSubscriptions : [];
|
|
102
90
|
// await all subcriptions in parallel to boost performance
|
|
103
91
|
//// the state account subscription above can't happen in here, because some of these susbcriptions are dependent on clearing house state being available
|
|
@@ -136,7 +124,6 @@ class DefaultClearingHouseAccountSubscriber {
|
|
|
136
124
|
}
|
|
137
125
|
yield this.stateAccountSubscriber.unsubscribe();
|
|
138
126
|
yield this.marketsAccountSubscriber.unsubscribe();
|
|
139
|
-
yield this.orderStateAccountSubscriber.unsubscribe();
|
|
140
127
|
if (this.optionalExtraSubscriptions.includes('tradeHistoryAccount')) {
|
|
141
128
|
yield this.tradeHistoryAccountSubscriber.unsubscribe();
|
|
142
129
|
}
|
|
@@ -155,9 +142,6 @@ class DefaultClearingHouseAccountSubscriber {
|
|
|
155
142
|
if (this.optionalExtraSubscriptions.includes('liquidationHistoryAccount')) {
|
|
156
143
|
yield this.liquidationHistoryAccountSubscriber.unsubscribe();
|
|
157
144
|
}
|
|
158
|
-
if (this.optionalExtraSubscriptions.includes('orderHistoryAccount')) {
|
|
159
|
-
yield this.orderHistoryAccountSubscriber.unsubscribe();
|
|
160
|
-
}
|
|
161
145
|
this.isSubscribed = false;
|
|
162
146
|
});
|
|
163
147
|
}
|
|
@@ -212,14 +196,5 @@ class DefaultClearingHouseAccountSubscriber {
|
|
|
212
196
|
this.assertOptionalIsSubscribed('liquidationHistoryAccount');
|
|
213
197
|
return this.liquidationHistoryAccountSubscriber.data;
|
|
214
198
|
}
|
|
215
|
-
getOrderHistoryAccount() {
|
|
216
|
-
this.assertIsSubscribed();
|
|
217
|
-
this.assertOptionalIsSubscribed('orderHistoryAccount');
|
|
218
|
-
return this.orderHistoryAccountSubscriber.data;
|
|
219
|
-
}
|
|
220
|
-
getOrderStateAccount() {
|
|
221
|
-
this.assertIsSubscribed();
|
|
222
|
-
return this.orderStateAccountSubscriber.data;
|
|
223
|
-
}
|
|
224
199
|
}
|
|
225
200
|
exports.DefaultClearingHouseAccountSubscriber = DefaultClearingHouseAccountSubscriber;
|
|
@@ -4,7 +4,7 @@ import { Program } from '@project-serum/anchor';
|
|
|
4
4
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
5
|
import { EventEmitter } from 'events';
|
|
6
6
|
import { PublicKey } from '@solana/web3.js';
|
|
7
|
-
import { UserAccount,
|
|
7
|
+
import { UserAccount, UserPositionsAccount } from '../types';
|
|
8
8
|
export declare class DefaultUserAccountSubscriber implements UserAccountSubscriber {
|
|
9
9
|
isSubscribed: boolean;
|
|
10
10
|
program: Program;
|
|
@@ -12,7 +12,6 @@ export declare class DefaultUserAccountSubscriber implements UserAccountSubscrib
|
|
|
12
12
|
authority: PublicKey;
|
|
13
13
|
userDataAccountSubscriber: AccountSubscriber<UserAccount>;
|
|
14
14
|
userPositionsAccountSubscriber: AccountSubscriber<UserPositionsAccount>;
|
|
15
|
-
userOrdersAccountSubscriber: AccountSubscriber<UserOrdersAccount>;
|
|
16
15
|
constructor(program: Program, authority: PublicKey);
|
|
17
16
|
subscribe(): Promise<boolean>;
|
|
18
17
|
fetch(): Promise<void>;
|
|
@@ -20,5 +19,5 @@ export declare class DefaultUserAccountSubscriber implements UserAccountSubscrib
|
|
|
20
19
|
assertIsSubscribed(): void;
|
|
21
20
|
getUserAccount(): UserAccount;
|
|
22
21
|
getUserPositionsAccount(): UserPositionsAccount;
|
|
23
|
-
getUserOrdersAccount(): UserOrdersAccount;
|
|
24
22
|
}
|
|
23
|
+
//# sourceMappingURL=defaultUserAccountSubscriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/defaultUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7D,qBAAa,4BAA6B,YAAW,qBAAqB;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,SAAS,EAAE,SAAS,CAAC;IAErB,yBAAyB,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1D,8BAA8B,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gBAErD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAOnD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAsC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAalC,kBAAkB,IAAI,IAAI;IAQnB,cAAc,IAAI,WAAW;IAK7B,uBAAuB,IAAI,oBAAoB;CAItD"}
|
|
@@ -38,12 +38,6 @@ class DefaultUserAccountSubscriber {
|
|
|
38
38
|
this.eventEmitter.emit('userPositionsData', data);
|
|
39
39
|
this.eventEmitter.emit('update');
|
|
40
40
|
});
|
|
41
|
-
const userOrdersPublicKey = yield addresses_1.getUserOrdersAccountPublicKey(this.program.programId, this.authority);
|
|
42
|
-
this.userOrdersAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('userOrders', this.program, userOrdersPublicKey);
|
|
43
|
-
yield this.userOrdersAccountSubscriber.subscribe((data) => {
|
|
44
|
-
this.eventEmitter.emit('userOrdersData', data);
|
|
45
|
-
this.eventEmitter.emit('update');
|
|
46
|
-
});
|
|
47
41
|
this.eventEmitter.emit('update');
|
|
48
42
|
this.isSubscribed = true;
|
|
49
43
|
return true;
|
|
@@ -54,7 +48,6 @@ class DefaultUserAccountSubscriber {
|
|
|
54
48
|
yield Promise.all([
|
|
55
49
|
this.userDataAccountSubscriber.fetch(),
|
|
56
50
|
this.userPositionsAccountSubscriber.fetch(),
|
|
57
|
-
this.userOrdersAccountSubscriber.fetch(),
|
|
58
51
|
]);
|
|
59
52
|
});
|
|
60
53
|
}
|
|
@@ -63,9 +56,10 @@ class DefaultUserAccountSubscriber {
|
|
|
63
56
|
if (!this.isSubscribed) {
|
|
64
57
|
return;
|
|
65
58
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
yield Promise.all([
|
|
60
|
+
this.userDataAccountSubscriber.unsubscribe(),
|
|
61
|
+
this.userPositionsAccountSubscriber.unsubscribe(),
|
|
62
|
+
]);
|
|
69
63
|
this.isSubscribed = false;
|
|
70
64
|
});
|
|
71
65
|
}
|
|
@@ -82,8 +76,5 @@ class DefaultUserAccountSubscriber {
|
|
|
82
76
|
this.assertIsSubscribed();
|
|
83
77
|
return this.userPositionsAccountSubscriber.data;
|
|
84
78
|
}
|
|
85
|
-
getUserOrdersAccount() {
|
|
86
|
-
return this.userOrdersAccountSubscriber.data;
|
|
87
|
-
}
|
|
88
79
|
}
|
|
89
80
|
exports.DefaultUserAccountSubscriber = DefaultUserAccountSubscriber;
|
package/lib/accounts/types.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { DepositHistoryAccount, ExtendedCurveHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, LiquidationHistoryAccount, MarketsAccount, StateAccount, TradeHistoryAccount, UserAccount, UserPositionsAccount } from '../types';
|
|
3
3
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
export interface AccountSubscriber<T> {
|
|
6
6
|
data?: T;
|
|
7
7
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
8
8
|
fetch(): Promise<void>;
|
|
9
|
-
unsubscribe(): void
|
|
9
|
+
unsubscribe(): Promise<void>;
|
|
10
10
|
}
|
|
11
11
|
export declare class NotSubscribedError extends Error {
|
|
12
12
|
name: string;
|
|
@@ -19,12 +19,10 @@ export interface ClearingHouseAccountEvents {
|
|
|
19
19
|
tradeHistoryAccountUpdate: (payload: TradeHistoryAccount) => void;
|
|
20
20
|
liquidationHistoryAccountUpdate: (payload: LiquidationHistoryAccount) => void;
|
|
21
21
|
depositHistoryAccountUpdate: (payload: DepositHistoryAccount) => void;
|
|
22
|
-
curveHistoryAccountUpdate: (payload:
|
|
23
|
-
orderHistoryAccountUpdate: (payload: OrderHistoryAccount) => void;
|
|
24
|
-
orderStateAccountUpdate: (payload: OrderStateAccount) => void;
|
|
22
|
+
curveHistoryAccountUpdate: (payload: ExtendedCurveHistoryAccount) => void;
|
|
25
23
|
update: void;
|
|
26
24
|
}
|
|
27
|
-
export declare type ClearingHouseAccountTypes = 'tradeHistoryAccount' | 'depositHistoryAccount' | 'fundingPaymentHistoryAccount' | 'fundingRateHistoryAccount' | 'curveHistoryAccount' | 'liquidationHistoryAccount'
|
|
25
|
+
export declare type ClearingHouseAccountTypes = 'tradeHistoryAccount' | 'depositHistoryAccount' | 'fundingPaymentHistoryAccount' | 'fundingRateHistoryAccount' | 'curveHistoryAccount' | 'liquidationHistoryAccount';
|
|
28
26
|
export interface ClearingHouseAccountSubscriber {
|
|
29
27
|
eventEmitter: StrictEventEmitter<EventEmitter, ClearingHouseAccountEvents>;
|
|
30
28
|
isSubscribed: boolean;
|
|
@@ -38,36 +36,12 @@ export interface ClearingHouseAccountSubscriber {
|
|
|
38
36
|
getDepositHistoryAccount(): DepositHistoryAccount;
|
|
39
37
|
getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
|
|
40
38
|
getFundingRateHistoryAccount(): FundingRateHistoryAccount;
|
|
41
|
-
getCurveHistoryAccount():
|
|
42
|
-
getLiquidationHistoryAccount(): LiquidationHistoryAccount;
|
|
43
|
-
getOrderStateAccount(): OrderStateAccount;
|
|
44
|
-
getOrderHistoryAccount(): OrderHistoryAccount;
|
|
45
|
-
}
|
|
46
|
-
export interface HistoryAccountEvents {
|
|
47
|
-
fundingPaymentHistoryAccountUpdate: (payload: FundingPaymentHistoryAccount) => void;
|
|
48
|
-
fundingRateHistoryAccountUpdate: (payload: FundingRateHistoryAccount) => void;
|
|
49
|
-
tradeHistoryAccountUpdate: (payload: TradeHistoryAccount) => void;
|
|
50
|
-
liquidationHistoryAccountUpdate: (payload: LiquidationHistoryAccount) => void;
|
|
51
|
-
depositHistoryAccountUpdate: (payload: DepositHistoryAccount) => void;
|
|
52
|
-
curveHistoryAccountUpdate: (payload: CurveHistoryAccount) => void;
|
|
53
|
-
update: void;
|
|
54
|
-
}
|
|
55
|
-
export interface HistoryAccountSubscriber {
|
|
56
|
-
eventEmitter: StrictEventEmitter<EventEmitter, HistoryAccountEvents>;
|
|
57
|
-
isSubscribed: boolean;
|
|
58
|
-
subscribe(): Promise<boolean>;
|
|
59
|
-
unsubscribe(): Promise<void>;
|
|
60
|
-
getTradeHistoryAccount(): TradeHistoryAccount;
|
|
61
|
-
getDepositHistoryAccount(): DepositHistoryAccount;
|
|
62
|
-
getFundingPaymentHistoryAccount(): FundingPaymentHistoryAccount;
|
|
63
|
-
getFundingRateHistoryAccount(): FundingRateHistoryAccount;
|
|
64
|
-
getCurveHistoryAccount(): CurveHistoryAccount;
|
|
39
|
+
getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
|
|
65
40
|
getLiquidationHistoryAccount(): LiquidationHistoryAccount;
|
|
66
41
|
}
|
|
67
42
|
export interface UserAccountEvents {
|
|
68
43
|
userAccountData: (payload: UserAccount) => void;
|
|
69
44
|
userPositionsData: (payload: UserPositionsAccount) => void;
|
|
70
|
-
userOrdersData: (payload: UserOrdersAccount) => void;
|
|
71
45
|
update: void;
|
|
72
46
|
}
|
|
73
47
|
export interface UserAccountSubscriber {
|
|
@@ -78,5 +52,5 @@ export interface UserAccountSubscriber {
|
|
|
78
52
|
unsubscribe(): Promise<void>;
|
|
79
53
|
getUserAccount(): UserAccount;
|
|
80
54
|
getUserPositionsAccount(): UserPositionsAccount;
|
|
81
|
-
getUserOrdersAccount(): UserOrdersAccount;
|
|
82
55
|
}
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/accounts/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webSocketAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/webSocketAccountSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,0BAA0B,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;gBAG3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,SAAS;IAOtB,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
|
package/lib/addresses.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
export declare function getClearingHouseStateAccountPublicKeyAndNonce(programId: PublicKey): Promise<[PublicKey, number]>;
|
|
3
|
-
export declare function getOrderStateAccountPublicKey(programId: PublicKey): Promise<PublicKey>;
|
|
4
|
-
export declare function getOrderStateAccountPublicKeyAndNonce(programId: PublicKey): Promise<[PublicKey, number]>;
|
|
5
3
|
export declare function getClearingHouseStateAccountPublicKey(programId: PublicKey): Promise<PublicKey>;
|
|
6
4
|
export declare function getUserAccountPublicKeyAndNonce(programId: PublicKey, authority: PublicKey): Promise<[PublicKey, number]>;
|
|
7
5
|
export declare function getUserAccountPublicKey(programId: PublicKey, authority: PublicKey): Promise<PublicKey>;
|
|
8
|
-
|
|
9
|
-
export declare function getUserOrdersAccountPublicKey(programId: PublicKey, authority: PublicKey): Promise<PublicKey>;
|
|
6
|
+
//# sourceMappingURL=addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../src/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAsB,6CAA6C,CAClE,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAK9B;AAED,wBAAsB,qCAAqC,CAC1D,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,SAAS,CAAC,CAEpB;AAED,wBAAsB,+BAA+B,CACpD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAK9B;AAED,wBAAsB,uBAAuB,CAC5C,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,SAAS,CAAC,CAEpB"}
|
package/lib/addresses.js
CHANGED
|
@@ -28,7 +28,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.
|
|
31
|
+
exports.getUserAccountPublicKey = exports.getUserAccountPublicKeyAndNonce = exports.getClearingHouseStateAccountPublicKey = exports.getClearingHouseStateAccountPublicKeyAndNonce = void 0;
|
|
32
32
|
const anchor = __importStar(require("@project-serum/anchor"));
|
|
33
33
|
function getClearingHouseStateAccountPublicKeyAndNonce(programId) {
|
|
34
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -36,18 +36,6 @@ function getClearingHouseStateAccountPublicKeyAndNonce(programId) {
|
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
exports.getClearingHouseStateAccountPublicKeyAndNonce = getClearingHouseStateAccountPublicKeyAndNonce;
|
|
39
|
-
function getOrderStateAccountPublicKey(programId) {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
return (yield getOrderStateAccountPublicKeyAndNonce(programId))[0];
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
exports.getOrderStateAccountPublicKey = getOrderStateAccountPublicKey;
|
|
45
|
-
function getOrderStateAccountPublicKeyAndNonce(programId) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
return anchor.web3.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('order_state'))], programId);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
exports.getOrderStateAccountPublicKeyAndNonce = getOrderStateAccountPublicKeyAndNonce;
|
|
51
39
|
function getClearingHouseStateAccountPublicKey(programId) {
|
|
52
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
41
|
return (yield getClearingHouseStateAccountPublicKeyAndNonce(programId))[0];
|
|
@@ -66,18 +54,3 @@ function getUserAccountPublicKey(programId, authority) {
|
|
|
66
54
|
});
|
|
67
55
|
}
|
|
68
56
|
exports.getUserAccountPublicKey = getUserAccountPublicKey;
|
|
69
|
-
function getUserOrdersAccountPublicKeyAndNonce(programId, authority) {
|
|
70
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
return anchor.web3.PublicKey.findProgramAddress([
|
|
72
|
-
Buffer.from(anchor.utils.bytes.utf8.encode('user_orders')),
|
|
73
|
-
authority.toBuffer(),
|
|
74
|
-
], programId);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
exports.getUserOrdersAccountPublicKeyAndNonce = getUserOrdersAccountPublicKeyAndNonce;
|
|
78
|
-
function getUserOrdersAccountPublicKey(programId, authority) {
|
|
79
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
return (yield getUserOrdersAccountPublicKeyAndNonce(programId, authority))[0];
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
exports.getUserOrdersAccountPublicKey = getUserOrdersAccountPublicKey;
|
package/lib/admin.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
/// <reference types="bn.js" />
|
|
2
2
|
import { ConfirmOptions, Connection, PublicKey, TransactionSignature } from '@solana/web3.js';
|
|
3
|
-
import { FeeStructure, IWallet, OracleGuardRails, OracleSource
|
|
3
|
+
import { FeeStructure, IWallet, OracleGuardRails, OracleSource } from './types';
|
|
4
4
|
import { BN } from '@project-serum/anchor';
|
|
5
5
|
import { ClearingHouse } from './clearingHouse';
|
|
6
6
|
export declare class Admin extends ClearingHouse {
|
|
7
7
|
static from(connection: Connection, wallet: IWallet, clearingHouseProgramId: PublicKey, opts?: ConfirmOptions): Admin;
|
|
8
|
-
initialize(usdcMint: PublicKey, adminControlsPrices: boolean): Promise<[
|
|
9
|
-
TransactionSignature,
|
|
10
|
-
TransactionSignature,
|
|
11
|
-
TransactionSignature
|
|
12
|
-
]>;
|
|
13
|
-
initializeOrderState(): Promise<TransactionSignature>;
|
|
8
|
+
initialize(usdcMint: PublicKey, adminControlsPrices: boolean): Promise<[TransactionSignature, TransactionSignature]>;
|
|
14
9
|
initializeMarket(marketIndex: BN, priceOracle: PublicKey, baseAssetReserve: BN, quoteAssetReserve: BN, periodicity: BN, pegMultiplier?: BN): Promise<TransactionSignature>;
|
|
15
10
|
moveAmmPrice(baseAssetReserve: BN, quoteAssetReserve: BN, marketIndex: BN): Promise<TransactionSignature>;
|
|
16
11
|
updateK(sqrtK: BN, marketIndex: BN): Promise<TransactionSignature>;
|
|
12
|
+
updateCurveHistory(): Promise<TransactionSignature>;
|
|
17
13
|
moveAmmToPrice(marketIndex: BN, targetPrice: BN): Promise<TransactionSignature>;
|
|
18
14
|
repegAmmCurve(newPeg: BN, marketIndex: BN): Promise<TransactionSignature>;
|
|
15
|
+
updateAmmOracleTwap(marketIndex: BN): Promise<TransactionSignature>;
|
|
19
16
|
withdrawFromInsuranceVault(amount: BN, recipient: PublicKey): Promise<TransactionSignature>;
|
|
20
17
|
withdrawFees(marketIndex: BN, amount: BN, recipient: PublicKey): Promise<TransactionSignature>;
|
|
21
18
|
withdrawFromInsuranceVaultToMarket(marketIndex: BN, amount: BN): Promise<TransactionSignature>;
|
|
@@ -26,12 +23,10 @@ export declare class Admin extends ClearingHouse {
|
|
|
26
23
|
updateFullLiquidationPenaltyPercentage(numerator: BN, denominator: BN): Promise<TransactionSignature>;
|
|
27
24
|
updatePartialLiquidationShareDenominator(denominator: BN): Promise<TransactionSignature>;
|
|
28
25
|
updateFullLiquidationShareDenominator(denominator: BN): Promise<TransactionSignature>;
|
|
29
|
-
updateOrderFillerRewardStructure(orderFillerRewardStructure: OrderFillerRewardStructure): Promise<TransactionSignature>;
|
|
30
26
|
updateFee(fees: FeeStructure): Promise<TransactionSignature>;
|
|
31
27
|
updateOracleGuardRails(oracleGuardRails: OracleGuardRails): Promise<TransactionSignature>;
|
|
32
28
|
updateMarketOracle(marketIndex: BN, oracle: PublicKey, oracleSource: OracleSource): Promise<TransactionSignature>;
|
|
33
|
-
|
|
34
|
-
updateMarketMinimumBaseAssetTradeSize(marketIndex: BN, minimumTradeSize: BN): Promise<TransactionSignature>;
|
|
29
|
+
updateMarketMinimumTradeSize(marketIndex: BN, minimumTradeSize: BN): Promise<TransactionSignature>;
|
|
35
30
|
updateWhitelistMint(whitelistMint?: PublicKey): Promise<TransactionSignature>;
|
|
36
31
|
updateDiscountMint(discountMint: PublicKey): Promise<TransactionSignature>;
|
|
37
32
|
updateMaxDeposit(maxDeposit: BN): Promise<TransactionSignature>;
|
|
@@ -39,3 +34,4 @@ export declare class Admin extends ClearingHouse {
|
|
|
39
34
|
updateExchangePaused(exchangePaused: boolean): Promise<TransactionSignature>;
|
|
40
35
|
disableAdminControlsPrices(): Promise<TransactionSignature>;
|
|
41
36
|
}
|
|
37
|
+
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/lib/admin.js
CHANGED
|
@@ -108,7 +108,7 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
108
108
|
yield this.program.account.tradeHistory.createInstruction(tradeHistory),
|
|
109
109
|
yield this.program.account.liquidationHistory.createInstruction(liquidationHistory),
|
|
110
110
|
yield this.program.account.depositHistory.createInstruction(depositHistory),
|
|
111
|
-
yield this.program.account.
|
|
111
|
+
yield this.program.account.extendedCurveHistory.createInstruction(curveHistory),
|
|
112
112
|
],
|
|
113
113
|
});
|
|
114
114
|
const initializeHistoryTxSig = yield this.txSender.send(initializeHistoryTx, [
|
|
@@ -119,29 +119,7 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
119
119
|
fundingRateHistory,
|
|
120
120
|
curveHistory,
|
|
121
121
|
], this.opts);
|
|
122
|
-
|
|
123
|
-
return [initializeTxSig, initializeHistoryTxSig, initializeOrderStateTxSig];
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
initializeOrderState() {
|
|
127
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
-
const orderHistory = anchor.web3.Keypair.generate();
|
|
129
|
-
const [orderStatePublicKey, orderStateNonce] = yield addresses_1.getOrderStateAccountPublicKeyAndNonce(this.program.programId);
|
|
130
|
-
const clearingHouseStatePublicKey = yield addresses_1.getClearingHouseStateAccountPublicKey(this.program.programId);
|
|
131
|
-
const initializeOrderStateTx = yield this.program.transaction.initializeOrderState(orderStateNonce, {
|
|
132
|
-
accounts: {
|
|
133
|
-
admin: this.wallet.publicKey,
|
|
134
|
-
state: clearingHouseStatePublicKey,
|
|
135
|
-
orderHistory: orderHistory.publicKey,
|
|
136
|
-
orderState: orderStatePublicKey,
|
|
137
|
-
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
138
|
-
systemProgram: anchor.web3.SystemProgram.programId,
|
|
139
|
-
},
|
|
140
|
-
instructions: [
|
|
141
|
-
yield this.program.account.orderHistory.createInstruction(orderHistory),
|
|
142
|
-
],
|
|
143
|
-
});
|
|
144
|
-
return yield this.txSender.send(initializeOrderStateTx, [orderHistory], this.opts);
|
|
122
|
+
return [initializeTxSig, initializeHistoryTxSig];
|
|
145
123
|
});
|
|
146
124
|
}
|
|
147
125
|
initializeMarket(marketIndex, priceOracle, baseAssetReserve, quoteAssetReserve, periodicity, pegMultiplier = numericConstants_1.PEG_PRECISION) {
|
|
@@ -175,13 +153,35 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
175
153
|
updateK(sqrtK, marketIndex) {
|
|
176
154
|
return __awaiter(this, void 0, void 0, function* () {
|
|
177
155
|
const state = this.getStateAccount();
|
|
156
|
+
const markets = this.getMarketsAccount();
|
|
157
|
+
const marketData = markets.markets[marketIndex.toNumber()];
|
|
158
|
+
const ammData = marketData.amm;
|
|
178
159
|
return yield this.program.rpc.updateK(sqrtK, marketIndex, {
|
|
179
160
|
accounts: {
|
|
180
161
|
state: yield this.getStatePublicKey(),
|
|
181
162
|
admin: this.wallet.publicKey,
|
|
182
163
|
markets: state.markets,
|
|
164
|
+
curveHistory: state.extendedCurveHistory,
|
|
165
|
+
oracle: ammData.oracle,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
updateCurveHistory() {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
const extendedCurveHistory = anchor.web3.Keypair.generate();
|
|
173
|
+
const state = this.getStateAccount();
|
|
174
|
+
return yield this.program.rpc.updateCurveHistory({
|
|
175
|
+
accounts: {
|
|
176
|
+
state: yield this.getStatePublicKey(),
|
|
177
|
+
admin: this.wallet.publicKey,
|
|
183
178
|
curveHistory: state.curveHistory,
|
|
179
|
+
extendedCurveHistory: extendedCurveHistory.publicKey,
|
|
184
180
|
},
|
|
181
|
+
instructions: [
|
|
182
|
+
yield this.program.account.extendedCurveHistory.createInstruction(extendedCurveHistory),
|
|
183
|
+
],
|
|
184
|
+
signers: [extendedCurveHistory],
|
|
185
185
|
});
|
|
186
186
|
});
|
|
187
187
|
}
|
|
@@ -212,7 +212,24 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
212
212
|
admin: this.wallet.publicKey,
|
|
213
213
|
oracle: ammData.oracle,
|
|
214
214
|
markets: state.markets,
|
|
215
|
-
curveHistory: state.
|
|
215
|
+
curveHistory: state.extendedCurveHistory,
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
updateAmmOracleTwap(marketIndex) {
|
|
221
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
222
|
+
const state = this.getStateAccount();
|
|
223
|
+
const markets = this.getMarketsAccount();
|
|
224
|
+
const marketData = markets.markets[marketIndex.toNumber()];
|
|
225
|
+
const ammData = marketData.amm;
|
|
226
|
+
return yield this.program.rpc.updateAmmOracleTwap(marketIndex, {
|
|
227
|
+
accounts: {
|
|
228
|
+
state: yield this.getStatePublicKey(),
|
|
229
|
+
admin: this.wallet.publicKey,
|
|
230
|
+
oracle: ammData.oracle,
|
|
231
|
+
markets: state.markets,
|
|
232
|
+
curveHistory: state.extendedCurveHistory,
|
|
216
233
|
},
|
|
217
234
|
});
|
|
218
235
|
});
|
|
@@ -334,17 +351,6 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
334
351
|
});
|
|
335
352
|
});
|
|
336
353
|
}
|
|
337
|
-
updateOrderFillerRewardStructure(orderFillerRewardStructure) {
|
|
338
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
339
|
-
return yield this.program.rpc.updateOrderFillerRewardStructure(orderFillerRewardStructure, {
|
|
340
|
-
accounts: {
|
|
341
|
-
admin: this.wallet.publicKey,
|
|
342
|
-
state: yield this.getStatePublicKey(),
|
|
343
|
-
orderState: yield this.getOrderStatePublicKey(),
|
|
344
|
-
},
|
|
345
|
-
});
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
354
|
updateFee(fees) {
|
|
349
355
|
return __awaiter(this, void 0, void 0, function* () {
|
|
350
356
|
return yield this.program.rpc.updateFee(fees, {
|
|
@@ -377,22 +383,10 @@ class Admin extends clearingHouse_1.ClearingHouse {
|
|
|
377
383
|
});
|
|
378
384
|
});
|
|
379
385
|
}
|
|
380
|
-
|
|
381
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
382
|
-
const state = this.getStateAccount();
|
|
383
|
-
return yield this.program.rpc.updateMarketMinimumQuoteAssetTradeSize(marketIndex, minimumTradeSize, {
|
|
384
|
-
accounts: {
|
|
385
|
-
admin: this.wallet.publicKey,
|
|
386
|
-
state: yield this.getStatePublicKey(),
|
|
387
|
-
markets: state.markets,
|
|
388
|
-
},
|
|
389
|
-
});
|
|
390
|
-
});
|
|
391
|
-
}
|
|
392
|
-
updateMarketMinimumBaseAssetTradeSize(marketIndex, minimumTradeSize) {
|
|
386
|
+
updateMarketMinimumTradeSize(marketIndex, minimumTradeSize) {
|
|
393
387
|
return __awaiter(this, void 0, void 0, function* () {
|
|
394
388
|
const state = this.getStateAccount();
|
|
395
|
-
return yield this.program.rpc.
|
|
389
|
+
return yield this.program.rpc.updateMarketMinimumTradeSize(marketIndex, minimumTradeSize, {
|
|
396
390
|
accounts: {
|
|
397
391
|
admin: this.wallet.publicKey,
|
|
398
392
|
state: yield this.getStatePublicKey(),
|
package/lib/assert/assert.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/assert/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAI/D"}
|
package/lib/clearingHouse.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="bn.js" />
|
|
3
3
|
import { BN, Program, Provider } from '@project-serum/anchor';
|
|
4
|
-
import { MarketsAccount, StateAccount,
|
|
4
|
+
import { MarketsAccount, StateAccount, DepositHistoryAccount, FundingPaymentHistoryAccount, FundingRateHistoryAccount, IWallet, LiquidationHistoryAccount, PositionDirection, TradeHistoryAccount, UserAccount, Market, ExtendedCurveHistoryAccount } from './types';
|
|
5
5
|
import { Connection, PublicKey, TransactionSignature, Keypair, ConfirmOptions, TransactionInstruction } from '@solana/web3.js';
|
|
6
6
|
import { MockUSDCFaucet } from './mockUSDCFaucet';
|
|
7
7
|
import { EventEmitter } from 'events';
|
|
@@ -56,11 +56,7 @@ export declare class ClearingHouse {
|
|
|
56
56
|
getTradeHistoryAccount(): TradeHistoryAccount;
|
|
57
57
|
getLiquidationHistoryAccount(): LiquidationHistoryAccount;
|
|
58
58
|
getDepositHistoryAccount(): DepositHistoryAccount;
|
|
59
|
-
getCurveHistoryAccount():
|
|
60
|
-
getOrderHistoryAccount(): OrderHistoryAccount;
|
|
61
|
-
orderStatePublicKey?: PublicKey;
|
|
62
|
-
getOrderStatePublicKey(): Promise<PublicKey>;
|
|
63
|
-
getOrderStateAccount(): OrderStateAccount;
|
|
59
|
+
getCurveHistoryAccount(): ExtendedCurveHistoryAccount;
|
|
64
60
|
/**
|
|
65
61
|
* Update the wallet to use for clearing house transactions and linked user account
|
|
66
62
|
* @param newWallet
|
|
@@ -73,10 +69,8 @@ export declare class ClearingHouse {
|
|
|
73
69
|
getInitializeUserInstructions(): Promise<[
|
|
74
70
|
Keypair,
|
|
75
71
|
PublicKey,
|
|
76
|
-
TransactionInstruction,
|
|
77
72
|
TransactionInstruction
|
|
78
73
|
]>;
|
|
79
|
-
getInitializeUserOrdersInstruction(userAccountPublicKey?: PublicKey): Promise<TransactionInstruction>;
|
|
80
74
|
userAccountPublicKey?: PublicKey;
|
|
81
75
|
/**
|
|
82
76
|
* Get the address for the Clearing House User's account. NOT the user's wallet address.
|
|
@@ -85,12 +79,6 @@ export declare class ClearingHouse {
|
|
|
85
79
|
getUserAccountPublicKey(): Promise<PublicKey>;
|
|
86
80
|
userAccount?: UserAccount;
|
|
87
81
|
getUserAccount(): Promise<UserAccount>;
|
|
88
|
-
userOrdersAccountPublicKey?: PublicKey;
|
|
89
|
-
/**
|
|
90
|
-
* Get the address for the Clearing House User Order's account. NOT the user's wallet address.
|
|
91
|
-
* @returns
|
|
92
|
-
*/
|
|
93
|
-
getUserOrdersAccountPublicKey(): Promise<PublicKey>;
|
|
94
82
|
depositCollateral(amount: BN, collateralAccountPublicKey: PublicKey, userPositionsAccountPublicKey?: PublicKey): Promise<TransactionSignature>;
|
|
95
83
|
getDepositCollateralInstruction(amount: BN, collateralAccountPublicKey: PublicKey, userPositionsAccountPublicKey?: PublicKey): Promise<TransactionInstruction>;
|
|
96
84
|
/**
|
|
@@ -106,14 +94,6 @@ export declare class ClearingHouse {
|
|
|
106
94
|
getWithdrawCollateralIx(amount: BN, collateralAccountPublicKey: PublicKey): Promise<TransactionInstruction>;
|
|
107
95
|
openPosition(direction: PositionDirection, amount: BN, marketIndex: BN, limitPrice?: BN, discountToken?: PublicKey, referrer?: PublicKey): Promise<TransactionSignature>;
|
|
108
96
|
getOpenPositionIx(direction: PositionDirection, amount: BN, marketIndex: BN, limitPrice?: BN, discountToken?: PublicKey, referrer?: PublicKey): Promise<TransactionInstruction>;
|
|
109
|
-
placeOrder(orderParams: OrderParams, discountToken?: PublicKey, referrer?: PublicKey): Promise<TransactionSignature>;
|
|
110
|
-
getPlaceOrderIx(orderParams: OrderParams, discountToken?: PublicKey, referrer?: PublicKey): Promise<TransactionInstruction>;
|
|
111
|
-
cancelOrder(orderId: BN): Promise<TransactionSignature>;
|
|
112
|
-
getCancelOrderIx(orderId: BN): Promise<TransactionInstruction>;
|
|
113
|
-
fillOrder(userAccountPublicKey: PublicKey, userOrdersAccountPublicKey: PublicKey, order: Order): Promise<TransactionSignature>;
|
|
114
|
-
getFillOrderIx(userAccountPublicKey: PublicKey, userOrdersAccountPublicKey: PublicKey, order: Order): Promise<TransactionInstruction>;
|
|
115
|
-
placeAndFillOrder(orderParams: OrderParams, discountToken?: PublicKey, referrer?: PublicKey): Promise<TransactionSignature>;
|
|
116
|
-
getPlaceAndFillOrderIx(orderParams: OrderParams, discountToken?: PublicKey, referrer?: PublicKey): Promise<TransactionInstruction>;
|
|
117
97
|
/**
|
|
118
98
|
* Close an entire position. If you want to reduce a position, use the {@link openPosition} method in the opposite direction of the current position.
|
|
119
99
|
* @param marketIndex
|
|
@@ -131,3 +111,4 @@ export declare class ClearingHouse {
|
|
|
131
111
|
getSettleFundingPaymentIx(userAccount: PublicKey, userPositionsAccount: PublicKey): Promise<TransactionInstruction>;
|
|
132
112
|
triggerEvent(eventName: keyof ClearingHouseAccountEvents, data?: any): void;
|
|
133
113
|
}
|
|
114
|
+
//# sourceMappingURL=clearingHouse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearingHouse.d.ts","sourceRoot":"","sources":["../src/clearingHouse.ts"],"names":[],"mappings":"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"}
|