@drift-labs/sdk 0.1.23-master.4 → 0.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/accounts/bulkAccountLoader.d.ts +2 -0
- package/lib/accounts/bulkAccountLoader.js +24 -0
- package/lib/addresses.js +5 -1
- package/lib/admin.d.ts +2 -2
- package/lib/admin.js +11 -5
- package/lib/clearingHouse.js +7 -1
- package/lib/clearingHouseUser.d.ts +12 -17
- package/lib/clearingHouseUser.js +114 -217
- package/lib/constants/markets.d.ts +6 -4
- package/lib/constants/markets.js +48 -0
- package/lib/constants/numericConstants.d.ts +2 -2
- package/lib/constants/numericConstants.js +3 -3
- package/lib/factory/oracleClient.d.ts +5 -0
- package/lib/factory/oracleClient.js +16 -0
- package/lib/idl/clearing_house.json +58 -5
- package/lib/idl/switchboard_v2.json +4663 -0
- package/lib/index.d.ts +4 -1
- package/lib/index.js +9 -2
- package/lib/math/funding.d.ts +6 -6
- package/lib/math/funding.js +4 -16
- package/lib/math/orders.d.ts +1 -0
- package/lib/math/orders.js +19 -1
- package/lib/mockUSDCFaucet.js +5 -1
- package/lib/oracles/pythClient.d.ts +14 -0
- package/lib/oracles/pythClient.js +53 -0
- package/lib/oracles/switchboardClient.d.ts +13 -0
- package/lib/oracles/switchboardClient.js +76 -0
- package/lib/oracles/types.d.ts +15 -0
- package/lib/oracles/types.js +2 -0
- package/lib/orderParams.d.ts +1 -1
- package/lib/orderParams.js +2 -2
- package/lib/orders.js +1 -1
- package/lib/types.d.ts +5 -1
- package/package.json +2 -1
- package/src/accounts/bulkAccountLoader.ts +32 -0
- package/src/accounts/types.js +10 -0
- package/src/accounts/utils.js +7 -0
- package/src/accounts/webSocketAccountSubscriber.js +76 -0
- package/src/addresses.js +83 -0
- package/src/admin.ts +15 -4
- package/src/clearingHouse.ts +2 -0
- package/src/clearingHouseUser.ts +161 -330
- package/src/constants/markets.ts +54 -3
- package/src/constants/numericConstants.ts +2 -2
- package/src/factory/oracleClient.ts +22 -0
- package/src/idl/clearing_house.json +58 -5
- package/src/idl/switchboard_v2.json +4663 -0
- package/src/index.ts +4 -1
- package/src/math/funding.ts +9 -25
- package/src/math/orders.ts +28 -0
- package/src/mockUSDCFaucet.js +171 -0
- package/src/oracles/pythClient.ts +49 -0
- package/src/oracles/switchboardClient.ts +87 -0
- package/src/oracles/types.ts +15 -0
- package/src/orderParams.ts +3 -2
- package/src/orders.ts +1 -1
- package/src/types.js +60 -0
- package/src/types.ts +6 -1
- package/lib/pythClient.d.ts +0 -7
- package/lib/pythClient.js +0 -25
- package/src/pythClient.ts +0 -15
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_PAYMENT_PRECISION = exports.MARK_PRICE_PRECISION = exports.QUOTE_PRECISION = exports.
|
|
3
|
+
exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_PAYMENT_PRECISION = exports.MARK_PRICE_PRECISION = exports.QUOTE_PRECISION = exports.MAX_LEVERAGE = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.TWO = exports.ONE = exports.ZERO = void 0;
|
|
4
4
|
const __1 = require("../");
|
|
5
5
|
exports.ZERO = new __1.BN(0);
|
|
6
6
|
exports.ONE = new __1.BN(1);
|
|
7
7
|
exports.TWO = new __1.BN(2);
|
|
8
|
+
exports.TEN = new __1.BN(10);
|
|
8
9
|
exports.TEN_THOUSAND = new __1.BN(10000);
|
|
9
10
|
exports.BN_MAX = new __1.BN(Number.MAX_SAFE_INTEGER);
|
|
10
11
|
exports.MAX_LEVERAGE = new __1.BN(5);
|
|
11
|
-
exports.FULL_LIQUIDATION_RATIO = new __1.BN(500);
|
|
12
|
-
exports.PARTIAL_LIQUIDATION_RATIO = new __1.BN(625);
|
|
13
12
|
exports.QUOTE_PRECISION = new __1.BN(Math.pow(10, 6));
|
|
14
13
|
exports.MARK_PRICE_PRECISION = new __1.BN(Math.pow(10, 10));
|
|
15
14
|
exports.FUNDING_PAYMENT_PRECISION = new __1.BN(10000);
|
|
@@ -19,3 +18,4 @@ exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION;
|
|
|
19
18
|
exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.div(exports.QUOTE_PRECISION); // 10^7
|
|
20
19
|
exports.PRICE_TO_QUOTE_PRECISION = exports.MARK_PRICE_PRECISION.div(exports.QUOTE_PRECISION);
|
|
21
20
|
exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.mul(exports.PEG_PRECISION).div(exports.QUOTE_PRECISION); // 10^10
|
|
21
|
+
exports.MARGIN_PRECISION = exports.TEN_THOUSAND;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { OracleSource } from '../types';
|
|
2
|
+
import { Connection } from '@solana/web3.js';
|
|
3
|
+
import { DriftEnv } from '../config';
|
|
4
|
+
import { OracleClient } from '../oracles/types';
|
|
5
|
+
export declare function getOracleClient(oracleSource: OracleSource, connection: Connection, env: DriftEnv): OracleClient;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOracleClient = void 0;
|
|
4
|
+
const types_1 = require("../types");
|
|
5
|
+
const pythClient_1 = require("../oracles/pythClient");
|
|
6
|
+
const switchboardClient_1 = require("../oracles/switchboardClient");
|
|
7
|
+
function getOracleClient(oracleSource, connection, env) {
|
|
8
|
+
if ((0, types_1.isVariant)(oracleSource, 'pyth')) {
|
|
9
|
+
return new pythClient_1.PythClient(connection);
|
|
10
|
+
}
|
|
11
|
+
if ((0, types_1.isVariant)(oracleSource, 'switchboard')) {
|
|
12
|
+
return new switchboardClient_1.SwitchboardClient(connection, env);
|
|
13
|
+
}
|
|
14
|
+
throw new Error(`Unknown oracle source ${oracleSource}`);
|
|
15
|
+
}
|
|
16
|
+
exports.getOracleClient = getOracleClient;
|
|
@@ -211,6 +211,24 @@
|
|
|
211
211
|
{
|
|
212
212
|
"name": "ammPegMultiplier",
|
|
213
213
|
"type": "u128"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "oracleSource",
|
|
217
|
+
"type": {
|
|
218
|
+
"defined": "OracleSource"
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"name": "marginRatioInitial",
|
|
223
|
+
"type": "u32"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"name": "marginRatioPartial",
|
|
227
|
+
"type": "u32"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"name": "marginRatioMaintenance",
|
|
231
|
+
"type": "u32"
|
|
214
232
|
}
|
|
215
233
|
]
|
|
216
234
|
},
|
|
@@ -1526,22 +1544,31 @@
|
|
|
1526
1544
|
},
|
|
1527
1545
|
{
|
|
1528
1546
|
"name": "state",
|
|
1547
|
+
"isMut": false,
|
|
1548
|
+
"isSigner": false
|
|
1549
|
+
},
|
|
1550
|
+
{
|
|
1551
|
+
"name": "markets",
|
|
1529
1552
|
"isMut": true,
|
|
1530
1553
|
"isSigner": false
|
|
1531
1554
|
}
|
|
1532
1555
|
],
|
|
1533
1556
|
"args": [
|
|
1557
|
+
{
|
|
1558
|
+
"name": "marketIndex",
|
|
1559
|
+
"type": "u64"
|
|
1560
|
+
},
|
|
1534
1561
|
{
|
|
1535
1562
|
"name": "marginRatioInitial",
|
|
1536
|
-
"type": "
|
|
1563
|
+
"type": "u32"
|
|
1537
1564
|
},
|
|
1538
1565
|
{
|
|
1539
1566
|
"name": "marginRatioPartial",
|
|
1540
|
-
"type": "
|
|
1567
|
+
"type": "u32"
|
|
1541
1568
|
},
|
|
1542
1569
|
{
|
|
1543
1570
|
"name": "marginRatioMaintenance",
|
|
1544
|
-
"type": "
|
|
1571
|
+
"type": "u32"
|
|
1545
1572
|
}
|
|
1546
1573
|
]
|
|
1547
1574
|
},
|
|
@@ -3028,9 +3055,21 @@
|
|
|
3028
3055
|
"defined": "AMM"
|
|
3029
3056
|
}
|
|
3030
3057
|
},
|
|
3058
|
+
{
|
|
3059
|
+
"name": "marginRatioInitial",
|
|
3060
|
+
"type": "u32"
|
|
3061
|
+
},
|
|
3062
|
+
{
|
|
3063
|
+
"name": "marginRatioPartial",
|
|
3064
|
+
"type": "u32"
|
|
3065
|
+
},
|
|
3066
|
+
{
|
|
3067
|
+
"name": "marginRatioMaintenance",
|
|
3068
|
+
"type": "u32"
|
|
3069
|
+
},
|
|
3031
3070
|
{
|
|
3032
3071
|
"name": "padding0",
|
|
3033
|
-
"type": "
|
|
3072
|
+
"type": "u32"
|
|
3034
3073
|
},
|
|
3035
3074
|
{
|
|
3036
3075
|
"name": "padding1",
|
|
@@ -3222,12 +3261,16 @@
|
|
|
3222
3261
|
"name": "fillerReward",
|
|
3223
3262
|
"type": "u128"
|
|
3224
3263
|
},
|
|
3264
|
+
{
|
|
3265
|
+
"name": "quoteAssetAmountSurplus",
|
|
3266
|
+
"type": "u128"
|
|
3267
|
+
},
|
|
3225
3268
|
{
|
|
3226
3269
|
"name": "padding",
|
|
3227
3270
|
"type": {
|
|
3228
3271
|
"array": [
|
|
3229
3272
|
"u64",
|
|
3230
|
-
|
|
3273
|
+
8
|
|
3231
3274
|
]
|
|
3232
3275
|
}
|
|
3233
3276
|
}
|
|
@@ -4132,6 +4175,16 @@
|
|
|
4132
4175
|
"code": 6056,
|
|
4133
4176
|
"name": "NoPositionsLiquidatable",
|
|
4134
4177
|
"msg": "No positions liquidatable"
|
|
4178
|
+
},
|
|
4179
|
+
{
|
|
4180
|
+
"code": 6057,
|
|
4181
|
+
"name": "InvalidMarginRatio",
|
|
4182
|
+
"msg": "Invalid Margin Ratio"
|
|
4183
|
+
},
|
|
4184
|
+
{
|
|
4185
|
+
"code": 6058,
|
|
4186
|
+
"name": "CantCancelPostOnlyOrder",
|
|
4187
|
+
"msg": "Cant Cancel Post Only Order"
|
|
4135
4188
|
}
|
|
4136
4189
|
]
|
|
4137
4190
|
}
|