@drift-labs/sdk 0.1.24 → 0.1.27
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 +1 -0
- package/lib/accounts/bulkAccountLoader.js +16 -2
- package/lib/accounts/pollingClearingHouseAccountSubscriber.js +3 -3
- package/lib/accounts/pollingOracleSubscriber.d.ts +26 -0
- package/lib/accounts/pollingOracleSubscriber.js +79 -0
- package/lib/accounts/pollingTokenAccountSubscriber.js +2 -2
- package/lib/accounts/pollingUserAccountSubscriber.js +4 -4
- package/lib/accounts/types.d.ts +14 -1
- package/lib/accounts/webSocketAccountSubscriber.js +2 -2
- package/lib/accounts/webSocketClearingHouseAccountSubscriber.js +1 -1
- package/lib/accounts/webSocketUserAccountSubscriber.js +2 -2
- package/lib/addresses.js +5 -1
- package/lib/admin.d.ts +1 -1
- package/lib/admin.js +15 -10
- package/lib/clearingHouse.d.ts +4 -4
- package/lib/clearingHouse.js +56 -25
- package/lib/clearingHouseUser.js +18 -18
- package/lib/constants/markets.d.ts +8 -6
- package/lib/constants/markets.js +85 -26
- package/lib/constants/numericConstants.d.ts +1 -0
- package/lib/constants/numericConstants.js +2 -1
- package/lib/examples/makeTradeExample.js +6 -6
- package/lib/factory/oracleClient.d.ts +5 -0
- package/lib/factory/oracleClient.js +16 -0
- package/lib/idl/clearing_house.json +22 -2
- package/lib/idl/switchboard_v2.json +4663 -0
- package/lib/index.d.ts +5 -1
- package/lib/index.js +10 -2
- package/lib/math/amm.js +12 -12
- package/lib/math/conversion.js +1 -1
- package/lib/math/funding.d.ts +6 -6
- package/lib/math/funding.js +5 -17
- package/lib/math/market.d.ts +2 -0
- package/lib/math/market.js +8 -3
- package/lib/math/orders.js +9 -9
- package/lib/math/position.js +1 -1
- package/lib/math/trade.js +18 -18
- 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 +3 -3
- package/lib/orders.d.ts +3 -2
- package/lib/orders.js +29 -22
- package/lib/tx/retryTxSender.js +1 -1
- package/lib/types.d.ts +1 -0
- package/package.json +2 -1
- package/src/accounts/bulkAccountLoader.js +180 -0
- package/src/accounts/bulkAccountLoader.js.map +1 -0
- package/src/accounts/bulkAccountLoader.ts +19 -0
- package/src/accounts/bulkUserSubscription.js +56 -0
- package/src/accounts/bulkUserSubscription.js.map +1 -0
- package/src/accounts/pollingClearingHouseAccountSubscriber.js +210 -0
- package/src/accounts/pollingClearingHouseAccountSubscriber.js.map +1 -0
- package/src/accounts/pollingOracleSubscriber.js +65 -0
- package/src/accounts/pollingOracleSubscriber.js.map +1 -0
- package/src/accounts/pollingOracleSubscriber.ts +103 -0
- package/src/accounts/pollingTokenAccountSubscriber.js +65 -0
- package/src/accounts/pollingTokenAccountSubscriber.js.map +1 -0
- package/src/accounts/pollingUserAccountSubscriber.js +139 -0
- package/src/accounts/pollingUserAccountSubscriber.js.map +1 -0
- package/src/accounts/types.js +1 -0
- package/src/accounts/types.js.map +1 -0
- package/src/accounts/types.ts +22 -1
- package/src/accounts/utils.js +1 -0
- package/src/accounts/utils.js.map +1 -0
- package/src/accounts/webSocketAccountSubscriber.js +15 -27
- package/src/accounts/webSocketAccountSubscriber.js.map +1 -0
- package/src/accounts/webSocketClearingHouseAccountSubscriber.js +212 -0
- package/src/accounts/webSocketClearingHouseAccountSubscriber.js.map +1 -0
- package/src/accounts/webSocketUserAccountSubscriber.js +78 -0
- package/src/accounts/webSocketUserAccountSubscriber.js.map +1 -0
- package/src/addresses.js +20 -44
- package/src/addresses.js.map +1 -0
- package/src/admin.js +443 -0
- package/src/admin.js.map +1 -0
- package/src/admin.ts +2 -0
- package/src/assert/assert.js +10 -0
- package/src/assert/assert.js.map +1 -0
- package/src/clearingHouse.js +769 -0
- package/src/clearingHouse.js.map +1 -0
- package/src/clearingHouse.ts +47 -7
- package/src/clearingHouseUser.js +581 -0
- package/src/clearingHouseUser.js.map +1 -0
- package/src/config.js +37 -0
- package/src/config.js.map +1 -0
- package/src/constants/markets.js +167 -0
- package/src/constants/markets.js.map +1 -0
- package/src/constants/markets.ts +93 -31
- package/src/constants/numericConstants.js +22 -0
- package/src/constants/numericConstants.js.map +1 -0
- package/src/constants/numericConstants.ts +1 -0
- package/src/factory/clearingHouse.js +65 -0
- package/src/factory/clearingHouse.js.map +1 -0
- package/src/factory/clearingHouseUser.js +35 -0
- package/src/factory/clearingHouseUser.js.map +1 -0
- package/src/factory/oracleClient.js +17 -0
- package/src/factory/oracleClient.js.map +1 -0
- package/src/factory/oracleClient.ts +22 -0
- package/src/idl/clearing_house.json +22 -2
- package/src/idl/switchboard_v2.json +4663 -0
- package/src/index.js +56 -0
- package/src/index.js.map +1 -0
- package/src/index.ts +5 -1
- package/src/math/amm.js +285 -0
- package/src/math/amm.js.map +1 -0
- package/src/math/conversion.js +16 -0
- package/src/math/conversion.js.map +1 -0
- package/src/math/funding.js +223 -0
- package/src/math/funding.js.map +1 -0
- package/src/math/funding.ts +9 -25
- package/src/math/insuranceFund.js +23 -0
- package/src/math/insuranceFund.js.map +1 -0
- package/src/math/market.js +30 -0
- package/src/math/market.js.map +1 -0
- package/src/math/market.ts +9 -0
- package/src/math/orders.js +73 -0
- package/src/math/orders.js.map +1 -0
- package/src/math/position.js +121 -0
- package/src/math/position.js.map +1 -0
- package/src/math/trade.js +182 -0
- package/src/math/trade.js.map +1 -0
- package/src/math/utils.js +27 -0
- package/src/math/utils.js.map +1 -0
- package/src/mockUSDCFaucet.js +88 -116
- package/src/mockUSDCFaucet.js.map +1 -0
- package/src/oracles/pythClient.js +39 -0
- package/src/oracles/pythClient.js.map +1 -0
- package/src/oracles/pythClient.ts +49 -0
- package/src/oracles/switchboardClient.js +60 -0
- package/src/oracles/switchboardClient.js.map +1 -0
- package/src/oracles/switchboardClient.ts +87 -0
- package/src/oracles/types.js +3 -0
- package/src/oracles/types.js.map +1 -0
- package/src/oracles/types.ts +15 -0
- package/src/orderParams.js +109 -0
- package/src/orderParams.js.map +1 -0
- package/src/orderParams.ts +5 -3
- package/src/orders.js +172 -0
- package/src/orders.js.map +1 -0
- package/src/orders.ts +17 -4
- package/src/token/index.js +39 -0
- package/src/token/index.js.map +1 -0
- package/src/tx/defaultTxSender.js +13 -0
- package/src/tx/defaultTxSender.js.map +1 -0
- package/src/tx/retryTxSender.js +137 -0
- package/src/tx/retryTxSender.js.map +1 -0
- package/src/tx/types.js +3 -0
- package/src/tx/types.js.map +1 -0
- package/src/tx/utils.js +9 -0
- package/src/tx/utils.js.map +1 -0
- package/src/types.js +1 -0
- package/src/types.js.map +1 -0
- package/src/types.ts +1 -0
- package/src/util/computeUnits.js +17 -0
- package/src/util/computeUnits.js.map +1 -0
- package/src/util/tps.js +17 -0
- package/src/util/tps.js.map +1 -0
- package/src/wallet.js +23 -0
- package/src/wallet.js.map +1 -0
- package/lib/pythClient.d.ts +0 -7
- package/lib/pythClient.js +0 -25
- package/src/pythClient.ts +0 -15
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Markets = void 0;
|
|
4
|
+
const __1 = require("../");
|
|
5
|
+
exports.Markets = [
|
|
6
|
+
{
|
|
7
|
+
fullName: 'Solana',
|
|
8
|
+
category: ['L1', 'Infra'],
|
|
9
|
+
symbol: 'SOL-PERP',
|
|
10
|
+
baseAssetSymbol: 'SOL',
|
|
11
|
+
marketIndex: new __1.BN(0),
|
|
12
|
+
devnetPublicKey: 'J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix',
|
|
13
|
+
mainnetPublicKey: 'H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG',
|
|
14
|
+
launchTs: 1635209696886,
|
|
15
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
fullName: 'Bitcoin',
|
|
19
|
+
category: ['L1', 'Payment'],
|
|
20
|
+
symbol: 'BTC-PERP',
|
|
21
|
+
baseAssetSymbol: 'BTC',
|
|
22
|
+
marketIndex: new __1.BN(1),
|
|
23
|
+
devnetPublicKey: 'HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J',
|
|
24
|
+
mainnetPublicKey: 'GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU',
|
|
25
|
+
launchTs: 1637691088868,
|
|
26
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
fullName: 'Ethereum',
|
|
30
|
+
category: ['L1', 'Infra'],
|
|
31
|
+
symbol: 'ETH-PERP',
|
|
32
|
+
baseAssetSymbol: 'ETH',
|
|
33
|
+
marketIndex: new __1.BN(2),
|
|
34
|
+
devnetPublicKey: 'EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw',
|
|
35
|
+
mainnetPublicKey: 'JBu1AL4obBcCMqKBBxhpWCNUt136ijcuMZLFvTP7iWdB',
|
|
36
|
+
launchTs: 1637691133472,
|
|
37
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
fullName: 'Terra',
|
|
41
|
+
category: ['L1', 'Infra'],
|
|
42
|
+
symbol: 'LUNA-PERP',
|
|
43
|
+
baseAssetSymbol: 'LUNA',
|
|
44
|
+
marketIndex: new __1.BN(3),
|
|
45
|
+
devnetPublicKey: '8PugCXTAHLM9kfLSQWe2njE5pzAgUdpPk3Nx5zSm7BD3',
|
|
46
|
+
mainnetPublicKey: '5bmWuR1dgP4avtGYMNKLuxumZTVKGgoN2BCMXWDNL9nY',
|
|
47
|
+
launchTs: 1638821738525,
|
|
48
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
symbol: 'AVAX-PERP',
|
|
52
|
+
category: ['L1', 'Infra'],
|
|
53
|
+
baseAssetSymbol: 'AVAX',
|
|
54
|
+
marketIndex: new __1.BN(4),
|
|
55
|
+
devnetPublicKey: 'FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz',
|
|
56
|
+
mainnetPublicKey: 'Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU',
|
|
57
|
+
launchTs: 1639092501080,
|
|
58
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
fullName: 'Binance Coin',
|
|
62
|
+
symbol: 'BNB-PERP',
|
|
63
|
+
category: ['L1', 'Exchange'],
|
|
64
|
+
baseAssetSymbol: 'BNB',
|
|
65
|
+
marketIndex: new __1.BN(5),
|
|
66
|
+
devnetPublicKey: 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b',
|
|
67
|
+
mainnetPublicKey: '4CkQJBxhU8EZ2UjhigbtdaPbpTe6mqf811fipYBFbSYN',
|
|
68
|
+
launchTs: 1639523193012,
|
|
69
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
fullName: 'Polygon',
|
|
73
|
+
category: ['L1', 'Infra'],
|
|
74
|
+
symbol: 'MATIC-PERP',
|
|
75
|
+
baseAssetSymbol: 'MATIC',
|
|
76
|
+
marketIndex: new __1.BN(6),
|
|
77
|
+
devnetPublicKey: 'FBirwuDFuRAu4iSGc7RGxN5koHB7EJM1wbCmyPuQoGur',
|
|
78
|
+
mainnetPublicKey: '7KVswB9vkCgeM3SHP7aGDijvdRAHK8P5wi9JXViCrtYh',
|
|
79
|
+
launchTs: 1641488603564,
|
|
80
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
fullName: 'Cosmos',
|
|
84
|
+
category: ['L1', 'Infra'],
|
|
85
|
+
symbol: 'ATOM-PERP',
|
|
86
|
+
baseAssetSymbol: 'ATOM',
|
|
87
|
+
marketIndex: new __1.BN(7),
|
|
88
|
+
devnetPublicKey: '7YAze8qFUMkBnyLVdKT4TFUUFui99EwS5gfRArMcrvFk',
|
|
89
|
+
mainnetPublicKey: 'CrCpTerNqtZvqLcKqz1k13oVeXV9WkMD2zA9hBKXrsbN',
|
|
90
|
+
launchTs: 1641920238195,
|
|
91
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
fullName: 'Polkadot',
|
|
95
|
+
symbol: 'DOT-PERP',
|
|
96
|
+
baseAssetSymbol: 'DOT',
|
|
97
|
+
marketIndex: new __1.BN(8),
|
|
98
|
+
devnetPublicKey: '4dqq5VBpN4EwYb7wyywjjfknvMKu7m78j9mKZRXTj462',
|
|
99
|
+
mainnetPublicKey: 'EcV1X1gY2yb4KXxjVQtTHTbioum2gvmPnFk4zYAt7zne',
|
|
100
|
+
launchTs: 1642629253786,
|
|
101
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
fullName: 'Cardano',
|
|
105
|
+
category: ['L1', 'Infra'],
|
|
106
|
+
symbol: 'ADA-PERP',
|
|
107
|
+
baseAssetSymbol: 'ADA',
|
|
108
|
+
marketIndex: new __1.BN(9),
|
|
109
|
+
devnetPublicKey: '8oGTURNmSQkrBS1AQ5NjB2p8qY34UVmMA9ojrw8vnHus',
|
|
110
|
+
mainnetPublicKey: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
|
|
111
|
+
launchTs: 1643084413000,
|
|
112
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
fullName: 'Algorand',
|
|
116
|
+
category: ['L1', 'Infra'],
|
|
117
|
+
symbol: 'ALGO-PERP',
|
|
118
|
+
baseAssetSymbol: 'ALGO',
|
|
119
|
+
marketIndex: new __1.BN(10),
|
|
120
|
+
devnetPublicKey: 'c1A946dY5NHuVda77C8XXtXytyR3wK1SCP3eA9VRfC3',
|
|
121
|
+
mainnetPublicKey: 'HqFyq1wh1xKvL7KDqqT7NJeSPdAqsDqnmBisUC2XdXAX',
|
|
122
|
+
launchTs: 1643686767000,
|
|
123
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
fullName: 'FTX Coin',
|
|
127
|
+
category: ['L1', 'Exchange'],
|
|
128
|
+
symbol: 'FTT-PERP',
|
|
129
|
+
baseAssetSymbol: 'FTT',
|
|
130
|
+
marketIndex: new __1.BN(11),
|
|
131
|
+
devnetPublicKey: '6vivTRs5ZPeeXbjo7dfburfaYDWoXjBtdtuYgQRuGfu',
|
|
132
|
+
mainnetPublicKey: '8JPJJkmDScpcNmBRKGZuPuG2GYAveQgP3t5gFuMymwvF',
|
|
133
|
+
launchTs: 1644382122000,
|
|
134
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
fullName: 'Litecoin',
|
|
138
|
+
category: ['L1', 'Payments'],
|
|
139
|
+
symbol: 'LTC-PERP',
|
|
140
|
+
baseAssetSymbol: 'LTC',
|
|
141
|
+
marketIndex: new __1.BN(12),
|
|
142
|
+
devnetPublicKey: 'BLArYBCUYhdWiY8PCUTpvFE21iaJq85dvxLk9bYMobcU',
|
|
143
|
+
mainnetPublicKey: '8RMnV1eD55iqUFJLMguPkYBkq8DCtx81XcmAja93LvRR',
|
|
144
|
+
launchTs: 1645027429000,
|
|
145
|
+
oracleSource: __1.OracleSource.PYTH,
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
fullName: 'Ripple',
|
|
149
|
+
category: ['L1', 'Payments'],
|
|
150
|
+
symbol: 'XRP-PERP',
|
|
151
|
+
baseAssetSymbol: 'XRP',
|
|
152
|
+
marketIndex: new __1.BN(13),
|
|
153
|
+
devnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
|
|
154
|
+
mainnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
|
|
155
|
+
launchTs: 1647543166000,
|
|
156
|
+
oracleSource: __1.OracleSource.SWITCHBOARD,
|
|
157
|
+
},
|
|
158
|
+
// {
|
|
159
|
+
// symbol: 'mSOL-PERP',
|
|
160
|
+
// baseAssetSymbol: 'mSOL',
|
|
161
|
+
// marketIndex: new BN(11), //todo
|
|
162
|
+
// devnetPythOracle: '9a6RNx3tCu1TSs6TBSfV2XRXEPEZXQ6WB7jRojZRvyeZ',
|
|
163
|
+
// mainnetPythOracle: 'E4v1BBgoso9s64TQvmyownAVJbhbEPGyzA3qn4n46qj9',
|
|
164
|
+
// launchTs: 1643346125000,
|
|
165
|
+
// },
|
|
166
|
+
];
|
|
167
|
+
//# sourceMappingURL=markets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markets.js","sourceRoot":"","sources":["markets.ts"],"names":[],"mappings":";;;AAAA,2BAAuC;AAc1B,QAAA,OAAO,GAAmB;IACtC;QACC,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;QAC3B,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,MAAM,EAAE,WAAW;QACnB,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;QAC5B,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,MAAM,EAAE,YAAY;QACpB,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,MAAM,EAAE,WAAW;QACnB,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,CAAC,CAAC;QACtB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,MAAM,EAAE,WAAW;QACnB,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,IAAI,MAAE,CAAC,EAAE,CAAC;QACvB,eAAe,EAAE,6CAA6C;QAC9D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;QAC5B,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,EAAE,CAAC;QACvB,eAAe,EAAE,6CAA6C;QAC9D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;QAC5B,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,EAAE,CAAC;QACvB,eAAe,EAAE,8CAA8C;QAC/D,gBAAgB,EAAE,8CAA8C;QAChE,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,IAAI;KAC/B;IACD;QACC,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;QAC5B,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,IAAI,MAAE,CAAC,EAAE,CAAC;QACvB,eAAe,EAAE,6CAA6C;QAC9D,gBAAgB,EAAE,6CAA6C;QAC/D,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,gBAAY,CAAC,WAAW;KACtC;IACD,IAAI;IACJ,wBAAwB;IACxB,4BAA4B;IAC5B,mCAAmC;IACnC,qEAAqE;IACrE,sEAAsE;IACtE,4BAA4B;IAC5B,KAAK;CACL,CAAC"}
|
package/src/constants/markets.ts
CHANGED
|
@@ -1,118 +1,180 @@
|
|
|
1
|
-
import { BN } from '../';
|
|
1
|
+
import { BN, OracleSource } from '../';
|
|
2
2
|
|
|
3
|
-
type
|
|
3
|
+
export type MarketConfig = {
|
|
4
|
+
fullName?: string;
|
|
5
|
+
category?: string[];
|
|
4
6
|
symbol: string;
|
|
5
7
|
baseAssetSymbol: string;
|
|
6
8
|
marketIndex: BN;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
devnetPublicKey: string;
|
|
10
|
+
mainnetPublicKey: string;
|
|
9
11
|
launchTs: number;
|
|
12
|
+
oracleSource: OracleSource;
|
|
10
13
|
};
|
|
11
14
|
|
|
12
|
-
export const Markets:
|
|
15
|
+
export const Markets: MarketConfig[] = [
|
|
13
16
|
{
|
|
17
|
+
fullName: 'Solana',
|
|
18
|
+
category: ['L1', 'Infra'],
|
|
14
19
|
symbol: 'SOL-PERP',
|
|
15
20
|
baseAssetSymbol: 'SOL',
|
|
16
21
|
marketIndex: new BN(0),
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
devnetPublicKey: 'J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix',
|
|
23
|
+
mainnetPublicKey: 'H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG',
|
|
19
24
|
launchTs: 1635209696886,
|
|
25
|
+
oracleSource: OracleSource.PYTH,
|
|
20
26
|
},
|
|
21
27
|
{
|
|
28
|
+
fullName: 'Bitcoin',
|
|
29
|
+
category: ['L1', 'Payment'],
|
|
22
30
|
symbol: 'BTC-PERP',
|
|
23
31
|
baseAssetSymbol: 'BTC',
|
|
24
32
|
marketIndex: new BN(1),
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
devnetPublicKey: 'HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J',
|
|
34
|
+
mainnetPublicKey: 'GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU',
|
|
27
35
|
launchTs: 1637691088868,
|
|
36
|
+
oracleSource: OracleSource.PYTH,
|
|
28
37
|
},
|
|
29
38
|
{
|
|
39
|
+
fullName: 'Ethereum',
|
|
40
|
+
category: ['L1', 'Infra'],
|
|
30
41
|
symbol: 'ETH-PERP',
|
|
31
42
|
baseAssetSymbol: 'ETH',
|
|
32
43
|
marketIndex: new BN(2),
|
|
33
|
-
|
|
34
|
-
|
|
44
|
+
devnetPublicKey: 'EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw',
|
|
45
|
+
mainnetPublicKey: 'JBu1AL4obBcCMqKBBxhpWCNUt136ijcuMZLFvTP7iWdB',
|
|
35
46
|
launchTs: 1637691133472,
|
|
47
|
+
oracleSource: OracleSource.PYTH,
|
|
36
48
|
},
|
|
37
49
|
{
|
|
50
|
+
fullName: 'Terra',
|
|
51
|
+
category: ['L1', 'Infra'],
|
|
38
52
|
symbol: 'LUNA-PERP',
|
|
39
53
|
baseAssetSymbol: 'LUNA',
|
|
40
54
|
marketIndex: new BN(3),
|
|
41
|
-
|
|
42
|
-
|
|
55
|
+
devnetPublicKey: '8PugCXTAHLM9kfLSQWe2njE5pzAgUdpPk3Nx5zSm7BD3',
|
|
56
|
+
mainnetPublicKey: '5bmWuR1dgP4avtGYMNKLuxumZTVKGgoN2BCMXWDNL9nY',
|
|
43
57
|
launchTs: 1638821738525,
|
|
58
|
+
oracleSource: OracleSource.PYTH,
|
|
44
59
|
},
|
|
45
60
|
{
|
|
46
61
|
symbol: 'AVAX-PERP',
|
|
62
|
+
category: ['L1', 'Infra'],
|
|
47
63
|
baseAssetSymbol: 'AVAX',
|
|
48
64
|
marketIndex: new BN(4),
|
|
49
|
-
|
|
50
|
-
|
|
65
|
+
devnetPublicKey: 'FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz',
|
|
66
|
+
mainnetPublicKey: 'Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU',
|
|
51
67
|
launchTs: 1639092501080,
|
|
68
|
+
oracleSource: OracleSource.PYTH,
|
|
52
69
|
},
|
|
53
70
|
{
|
|
71
|
+
fullName: 'Binance Coin',
|
|
54
72
|
symbol: 'BNB-PERP',
|
|
73
|
+
category: ['L1', 'Exchange'],
|
|
55
74
|
baseAssetSymbol: 'BNB',
|
|
56
75
|
marketIndex: new BN(5),
|
|
57
|
-
|
|
58
|
-
|
|
76
|
+
devnetPublicKey: 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b',
|
|
77
|
+
mainnetPublicKey: '4CkQJBxhU8EZ2UjhigbtdaPbpTe6mqf811fipYBFbSYN',
|
|
59
78
|
launchTs: 1639523193012,
|
|
79
|
+
oracleSource: OracleSource.PYTH,
|
|
60
80
|
},
|
|
61
81
|
{
|
|
82
|
+
fullName: 'Polygon',
|
|
83
|
+
category: ['L1', 'Infra'],
|
|
62
84
|
symbol: 'MATIC-PERP',
|
|
63
85
|
baseAssetSymbol: 'MATIC',
|
|
64
86
|
marketIndex: new BN(6),
|
|
65
|
-
|
|
66
|
-
|
|
87
|
+
devnetPublicKey: 'FBirwuDFuRAu4iSGc7RGxN5koHB7EJM1wbCmyPuQoGur',
|
|
88
|
+
mainnetPublicKey: '7KVswB9vkCgeM3SHP7aGDijvdRAHK8P5wi9JXViCrtYh',
|
|
67
89
|
launchTs: 1641488603564,
|
|
90
|
+
oracleSource: OracleSource.PYTH,
|
|
68
91
|
},
|
|
69
92
|
{
|
|
93
|
+
fullName: 'Cosmos',
|
|
94
|
+
category: ['L1', 'Infra'],
|
|
70
95
|
symbol: 'ATOM-PERP',
|
|
71
96
|
baseAssetSymbol: 'ATOM',
|
|
72
97
|
marketIndex: new BN(7),
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
devnetPublicKey: '7YAze8qFUMkBnyLVdKT4TFUUFui99EwS5gfRArMcrvFk',
|
|
99
|
+
mainnetPublicKey: 'CrCpTerNqtZvqLcKqz1k13oVeXV9WkMD2zA9hBKXrsbN',
|
|
75
100
|
launchTs: 1641920238195,
|
|
101
|
+
oracleSource: OracleSource.PYTH,
|
|
76
102
|
},
|
|
77
103
|
{
|
|
104
|
+
fullName: 'Polkadot',
|
|
78
105
|
symbol: 'DOT-PERP',
|
|
79
106
|
baseAssetSymbol: 'DOT',
|
|
80
107
|
marketIndex: new BN(8),
|
|
81
|
-
|
|
82
|
-
|
|
108
|
+
devnetPublicKey: '4dqq5VBpN4EwYb7wyywjjfknvMKu7m78j9mKZRXTj462',
|
|
109
|
+
mainnetPublicKey: 'EcV1X1gY2yb4KXxjVQtTHTbioum2gvmPnFk4zYAt7zne',
|
|
83
110
|
launchTs: 1642629253786,
|
|
111
|
+
oracleSource: OracleSource.PYTH,
|
|
84
112
|
},
|
|
85
113
|
{
|
|
114
|
+
fullName: 'Cardano',
|
|
115
|
+
category: ['L1', 'Infra'],
|
|
86
116
|
symbol: 'ADA-PERP',
|
|
87
117
|
baseAssetSymbol: 'ADA',
|
|
88
118
|
marketIndex: new BN(9),
|
|
89
|
-
|
|
90
|
-
|
|
119
|
+
devnetPublicKey: '8oGTURNmSQkrBS1AQ5NjB2p8qY34UVmMA9ojrw8vnHus',
|
|
120
|
+
mainnetPublicKey: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
|
|
91
121
|
launchTs: 1643084413000,
|
|
122
|
+
oracleSource: OracleSource.PYTH,
|
|
92
123
|
},
|
|
93
124
|
{
|
|
125
|
+
fullName: 'Algorand',
|
|
126
|
+
category: ['L1', 'Infra'],
|
|
94
127
|
symbol: 'ALGO-PERP',
|
|
95
128
|
baseAssetSymbol: 'ALGO',
|
|
96
129
|
marketIndex: new BN(10),
|
|
97
|
-
|
|
98
|
-
|
|
130
|
+
devnetPublicKey: 'c1A946dY5NHuVda77C8XXtXytyR3wK1SCP3eA9VRfC3',
|
|
131
|
+
mainnetPublicKey: 'HqFyq1wh1xKvL7KDqqT7NJeSPdAqsDqnmBisUC2XdXAX',
|
|
99
132
|
launchTs: 1643686767000,
|
|
133
|
+
oracleSource: OracleSource.PYTH,
|
|
100
134
|
},
|
|
101
135
|
{
|
|
136
|
+
fullName: 'FTX Coin',
|
|
137
|
+
category: ['L1', 'Exchange'],
|
|
102
138
|
symbol: 'FTT-PERP',
|
|
103
139
|
baseAssetSymbol: 'FTT',
|
|
104
140
|
marketIndex: new BN(11),
|
|
105
|
-
|
|
106
|
-
|
|
141
|
+
devnetPublicKey: '6vivTRs5ZPeeXbjo7dfburfaYDWoXjBtdtuYgQRuGfu',
|
|
142
|
+
mainnetPublicKey: '8JPJJkmDScpcNmBRKGZuPuG2GYAveQgP3t5gFuMymwvF',
|
|
107
143
|
launchTs: 1644382122000,
|
|
144
|
+
oracleSource: OracleSource.PYTH,
|
|
108
145
|
},
|
|
109
146
|
{
|
|
147
|
+
fullName: 'Litecoin',
|
|
148
|
+
category: ['L1', 'Payments'],
|
|
110
149
|
symbol: 'LTC-PERP',
|
|
111
150
|
baseAssetSymbol: 'LTC',
|
|
112
151
|
marketIndex: new BN(12),
|
|
113
|
-
|
|
114
|
-
|
|
152
|
+
devnetPublicKey: 'BLArYBCUYhdWiY8PCUTpvFE21iaJq85dvxLk9bYMobcU',
|
|
153
|
+
mainnetPublicKey: '8RMnV1eD55iqUFJLMguPkYBkq8DCtx81XcmAja93LvRR',
|
|
115
154
|
launchTs: 1645027429000,
|
|
155
|
+
oracleSource: OracleSource.PYTH,
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
fullName: 'Ripple',
|
|
159
|
+
category: ['L1', 'Payments'],
|
|
160
|
+
symbol: 'XRP-PERP',
|
|
161
|
+
baseAssetSymbol: 'XRP',
|
|
162
|
+
marketIndex: new BN(13),
|
|
163
|
+
devnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
|
|
164
|
+
mainnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
|
|
165
|
+
launchTs: 1647543166000,
|
|
166
|
+
oracleSource: OracleSource.SWITCHBOARD,
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
fullName: 'Ape',
|
|
170
|
+
category: ['NFT'],
|
|
171
|
+
symbol: 'APE-PERP',
|
|
172
|
+
baseAssetSymbol: 'APE',
|
|
173
|
+
marketIndex: new BN(14),
|
|
174
|
+
devnetPublicKey: 'AwH6kBrJbkL9JTeqRd7Q59EdWh6UjPtoqoA5M4x4K2fA',
|
|
175
|
+
mainnetPublicKey: '74zeQpprjNtEghGiC3VEPsR9y4kR2GTd4Rq9YVk9tnjz',
|
|
176
|
+
launchTs: 1648475932000,
|
|
177
|
+
oracleSource: OracleSource.SWITCHBOARD,
|
|
116
178
|
},
|
|
117
179
|
// {
|
|
118
180
|
// symbol: 'mSOL-PERP',
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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
|
+
const __1 = require("../");
|
|
5
|
+
exports.ZERO = new __1.BN(0);
|
|
6
|
+
exports.ONE = new __1.BN(1);
|
|
7
|
+
exports.TWO = new __1.BN(2);
|
|
8
|
+
exports.TEN = new __1.BN(10);
|
|
9
|
+
exports.TEN_THOUSAND = new __1.BN(10000);
|
|
10
|
+
exports.BN_MAX = new __1.BN(Number.MAX_SAFE_INTEGER);
|
|
11
|
+
exports.MAX_LEVERAGE = new __1.BN(5);
|
|
12
|
+
exports.QUOTE_PRECISION = new __1.BN(10 ** 6);
|
|
13
|
+
exports.MARK_PRICE_PRECISION = new __1.BN(10 ** 10);
|
|
14
|
+
exports.FUNDING_PAYMENT_PRECISION = new __1.BN(10000);
|
|
15
|
+
exports.PEG_PRECISION = new __1.BN(1000);
|
|
16
|
+
exports.AMM_RESERVE_PRECISION = new __1.BN(10 ** 13);
|
|
17
|
+
exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION;
|
|
18
|
+
exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.div(exports.QUOTE_PRECISION); // 10^7
|
|
19
|
+
exports.PRICE_TO_QUOTE_PRECISION = exports.MARK_PRICE_PRECISION.div(exports.QUOTE_PRECISION);
|
|
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;
|
|
22
|
+
//# sourceMappingURL=numericConstants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numericConstants.js","sourceRoot":"","sources":["numericConstants.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAEZ,QAAA,IAAI,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AACjB,QAAA,GAAG,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AAChB,QAAA,GAAG,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AAChB,QAAA,GAAG,GAAG,IAAI,MAAE,CAAC,EAAE,CAAC,CAAC;AACjB,QAAA,YAAY,GAAG,IAAI,MAAE,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,MAAM,GAAG,IAAI,MAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEzC,QAAA,YAAY,GAAG,IAAI,MAAE,CAAC,CAAC,CAAC,CAAC;AAEzB,QAAA,eAAe,GAAG,IAAI,MAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClC,QAAA,oBAAoB,GAAG,IAAI,MAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,QAAA,yBAAyB,GAAG,IAAI,MAAE,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAA,aAAa,GAAG,IAAI,MAAE,CAAC,IAAI,CAAC,CAAC;AAE7B,QAAA,qBAAqB,GAAG,IAAI,MAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,QAAA,cAAc,GAAG,6BAAqB,CAAC;AACvC,QAAA,4BAA4B,GACxC,6BAAqB,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAC,CAAC,OAAO;AACvC,QAAA,wBAAwB,GACpC,4BAAoB,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAC;AAC9B,QAAA,sCAAsC,GAClD,6BAAqB,CAAC,GAAG,CAAC,qBAAa,CAAC,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAC,CAAC,QAAQ;AAC3D,QAAA,gBAAgB,GAAG,oBAAY,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
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.getAdmin = exports.getClearingHouse = exports.getPollingClearingHouseConfig = exports.getWebSocketClearingHouseConfig = void 0;
|
|
7
|
+
const anchor_1 = require("@project-serum/anchor");
|
|
8
|
+
const clearingHouse_1 = require("../clearingHouse");
|
|
9
|
+
const clearing_house_json_1 = __importDefault(require("../idl/clearing_house.json"));
|
|
10
|
+
const webSocketClearingHouseAccountSubscriber_1 = require("../accounts/webSocketClearingHouseAccountSubscriber");
|
|
11
|
+
const defaultTxSender_1 = require("../tx/defaultTxSender");
|
|
12
|
+
const pollingClearingHouseAccountSubscriber_1 = require("../accounts/pollingClearingHouseAccountSubscriber");
|
|
13
|
+
const admin_1 = require("../admin");
|
|
14
|
+
function getWebSocketClearingHouseConfig(connection, wallet, programID, opts = anchor_1.Provider.defaultOptions(), txSender) {
|
|
15
|
+
return {
|
|
16
|
+
type: 'websocket',
|
|
17
|
+
connection,
|
|
18
|
+
wallet,
|
|
19
|
+
programID,
|
|
20
|
+
opts,
|
|
21
|
+
txSender,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.getWebSocketClearingHouseConfig = getWebSocketClearingHouseConfig;
|
|
25
|
+
function getPollingClearingHouseConfig(connection, wallet, programID, accountLoader, opts = anchor_1.Provider.defaultOptions(), txSender) {
|
|
26
|
+
return {
|
|
27
|
+
type: 'polling',
|
|
28
|
+
connection,
|
|
29
|
+
wallet,
|
|
30
|
+
programID,
|
|
31
|
+
accountLoader,
|
|
32
|
+
opts,
|
|
33
|
+
txSender,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.getPollingClearingHouseConfig = getPollingClearingHouseConfig;
|
|
37
|
+
function getClearingHouse(config) {
|
|
38
|
+
const provider = new anchor_1.Provider(config.connection, config.wallet, config.opts);
|
|
39
|
+
const program = new anchor_1.Program(clearing_house_json_1.default, config.programID, provider);
|
|
40
|
+
let accountSubscriber;
|
|
41
|
+
if (config.type === 'websocket') {
|
|
42
|
+
accountSubscriber = new webSocketClearingHouseAccountSubscriber_1.WebSocketClearingHouseAccountSubscriber(program);
|
|
43
|
+
}
|
|
44
|
+
else if (config.type === 'polling') {
|
|
45
|
+
accountSubscriber = new pollingClearingHouseAccountSubscriber_1.PollingClearingHouseAccountSubscriber(program, config.accountLoader);
|
|
46
|
+
}
|
|
47
|
+
const txSender = config.txSender || new defaultTxSender_1.DefaultTxSender(provider);
|
|
48
|
+
return new clearingHouse_1.ClearingHouse(config.connection, config.wallet, program, accountSubscriber, txSender, config.opts);
|
|
49
|
+
}
|
|
50
|
+
exports.getClearingHouse = getClearingHouse;
|
|
51
|
+
function getAdmin(config) {
|
|
52
|
+
const provider = new anchor_1.Provider(config.connection, config.wallet, config.opts);
|
|
53
|
+
const program = new anchor_1.Program(clearing_house_json_1.default, config.programID, provider);
|
|
54
|
+
let accountSubscriber;
|
|
55
|
+
if (config.type === 'websocket') {
|
|
56
|
+
accountSubscriber = new webSocketClearingHouseAccountSubscriber_1.WebSocketClearingHouseAccountSubscriber(program);
|
|
57
|
+
}
|
|
58
|
+
else if (config.type === 'polling') {
|
|
59
|
+
accountSubscriber = new pollingClearingHouseAccountSubscriber_1.PollingClearingHouseAccountSubscriber(program, config.accountLoader);
|
|
60
|
+
}
|
|
61
|
+
const txSender = config.txSender || new defaultTxSender_1.DefaultTxSender(provider);
|
|
62
|
+
return new admin_1.Admin(config.connection, config.wallet, program, accountSubscriber, txSender, config.opts);
|
|
63
|
+
}
|
|
64
|
+
exports.getAdmin = getAdmin;
|
|
65
|
+
//# sourceMappingURL=clearingHouse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearingHouse.js","sourceRoot":"","sources":["clearingHouse.ts"],"names":[],"mappings":";;;;;;AAIA,kDAA+D;AAC/D,oDAAiD;AACjD,qFAA0D;AAC1D,iHAA8G;AAC9G,2DAAwD;AAExD,6GAA0G;AAC1G,oCAAiC;AAuBjC,SAAgB,+BAA+B,CAC9C,UAAsB,EACtB,MAAe,EACf,SAAoB,EACpB,OAAuB,iBAAQ,CAAC,cAAc,EAAE,EAChD,QAAmB;IAEnB,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,UAAU;QACV,MAAM;QACN,SAAS;QACT,IAAI;QACJ,QAAQ;KACR,CAAC;AACH,CAAC;AAfD,0EAeC;AAED,SAAgB,6BAA6B,CAC5C,UAAsB,EACtB,MAAe,EACf,SAAoB,EACpB,aAAgC,EAChC,OAAuB,iBAAQ,CAAC,cAAc,EAAE,EAChD,QAAmB;IAEnB,OAAO;QACN,IAAI,EAAE,SAAS;QACf,UAAU;QACV,MAAM;QACN,SAAS;QACT,aAAa;QACb,IAAI;QACJ,QAAQ;KACR,CAAC;AACH,CAAC;AAjBD,sEAiBC;AAED,SAAgB,gBAAgB,CAAC,MAA2B;IAC3D,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,gBAAO,CAC1B,6BAAuB,EACvB,MAAM,CAAC,SAAS,EAChB,QAAQ,CACR,CAAC;IACF,IAAI,iBAAiD,CAAC;IACtD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;QAChC,iBAAiB,GAAG,IAAI,iFAAuC,CAAC,OAAO,CAAC,CAAC;KACzE;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;QACrC,iBAAiB,GAAG,IAAI,6EAAqC,CAC5D,OAAO,EACN,MAA4C,CAAC,aAAa,CAC3D,CAAC;KACF;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,iCAAe,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,IAAI,6BAAa,CACvB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,EACb,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,MAAM,CAAC,IAAI,CACX,CAAC;AACH,CAAC;AA1BD,4CA0BC;AAED,SAAgB,QAAQ,CAAC,MAA2B;IACnD,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,gBAAO,CAC1B,6BAAuB,EACvB,MAAM,CAAC,SAAS,EAChB,QAAQ,CACR,CAAC;IACF,IAAI,iBAAiD,CAAC;IACtD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;QAChC,iBAAiB,GAAG,IAAI,iFAAuC,CAAC,OAAO,CAAC,CAAC;KACzE;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;QACrC,iBAAiB,GAAG,IAAI,6EAAqC,CAC5D,OAAO,EACN,MAA4C,CAAC,aAAa,CAC3D,CAAC;KACF;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,iCAAe,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,IAAI,aAAK,CACf,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,EACb,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,MAAM,CAAC,IAAI,CACX,CAAC;AACH,CAAC;AA1BD,4BA0BC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getClearingHouseUser = exports.getPollingClearingHouseUserConfig = exports.getWebSocketClearingHouseUserConfig = void 0;
|
|
4
|
+
const clearingHouseUser_1 = require("../clearingHouseUser");
|
|
5
|
+
const webSocketUserAccountSubscriber_1 = require("../accounts/webSocketUserAccountSubscriber");
|
|
6
|
+
const pollingUserAccountSubscriber_1 = require("../accounts/pollingUserAccountSubscriber");
|
|
7
|
+
function getWebSocketClearingHouseUserConfig(clearingHouse, authority) {
|
|
8
|
+
return {
|
|
9
|
+
type: 'websocket',
|
|
10
|
+
clearingHouse,
|
|
11
|
+
authority,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.getWebSocketClearingHouseUserConfig = getWebSocketClearingHouseUserConfig;
|
|
15
|
+
function getPollingClearingHouseUserConfig(clearingHouse, authority, accountLoader) {
|
|
16
|
+
return {
|
|
17
|
+
type: 'polling',
|
|
18
|
+
clearingHouse,
|
|
19
|
+
authority,
|
|
20
|
+
accountLoader,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
exports.getPollingClearingHouseUserConfig = getPollingClearingHouseUserConfig;
|
|
24
|
+
function getClearingHouseUser(config) {
|
|
25
|
+
let accountSubscriber;
|
|
26
|
+
if (config.type === 'websocket') {
|
|
27
|
+
accountSubscriber = new webSocketUserAccountSubscriber_1.WebSocketUserAccountSubscriber(config.clearingHouse.program, config.authority);
|
|
28
|
+
}
|
|
29
|
+
else if (config.type === 'polling') {
|
|
30
|
+
accountSubscriber = new pollingUserAccountSubscriber_1.PollingUserAccountSubscriber(config.clearingHouse.program, config.authority, config.accountLoader);
|
|
31
|
+
}
|
|
32
|
+
return new clearingHouseUser_1.ClearingHouseUser(config.clearingHouse, config.authority, accountSubscriber);
|
|
33
|
+
}
|
|
34
|
+
exports.getClearingHouseUser = getClearingHouseUser;
|
|
35
|
+
//# sourceMappingURL=clearingHouseUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clearingHouseUser.js","sourceRoot":"","sources":["clearingHouseUser.ts"],"names":[],"mappings":";;;AAGA,4DAAyD;AAEzD,+FAA4F;AAC5F,2FAAwF;AAoBxF,SAAgB,mCAAmC,CAClD,aAA4B,EAC5B,SAAoB;IAEpB,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,aAAa;QACb,SAAS;KACT,CAAC;AACH,CAAC;AATD,kFASC;AAED,SAAgB,iCAAiC,CAChD,aAA4B,EAC5B,SAAoB,EACpB,aAAgC;IAEhC,OAAO;QACN,IAAI,EAAE,SAAS;QACf,aAAa;QACb,SAAS;QACT,aAAa;KACb,CAAC;AACH,CAAC;AAXD,8EAWC;AAED,SAAgB,oBAAoB,CACnC,MAA+B;IAE/B,IAAI,iBAAwC,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;QAChC,iBAAiB,GAAG,IAAI,+DAA8B,CACrD,MAAM,CAAC,aAAa,CAAC,OAAO,EAC5B,MAAM,CAAC,SAAS,CAChB,CAAC;KACF;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;QACrC,iBAAiB,GAAG,IAAI,2DAA4B,CACnD,MAAM,CAAC,aAAa,CAAC,OAAO,EAC5B,MAAM,CAAC,SAAS,EACf,MAAyC,CAAC,aAAa,CACxD,CAAC;KACF;IAED,OAAO,IAAI,qCAAiB,CAC3B,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,SAAS,EAChB,iBAAiB,CACjB,CAAC;AACH,CAAC;AAtBD,oDAsBC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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;
|
|
17
|
+
//# sourceMappingURL=oracleClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oracleClient.js","sourceRoot":"","sources":["oracleClient.ts"],"names":[],"mappings":";;;AAAA,oCAAmD;AAInD,sDAAmD;AACnD,oEAAiE;AAEjE,SAAgB,eAAe,CAC9B,YAA0B,EAC1B,UAAsB,EACtB,GAAa;IAEb,IAAI,IAAA,iBAAS,EAAC,YAAY,EAAE,MAAM,CAAC,EAAE;QACpC,OAAO,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,IAAI,IAAA,iBAAS,EAAC,YAAY,EAAE,aAAa,CAAC,EAAE;QAC3C,OAAO,IAAI,qCAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC9C;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;AAC1D,CAAC;AAdD,0CAcC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { isVariant, OracleSource } from '../types';
|
|
2
|
+
import { Connection } from '@solana/web3.js';
|
|
3
|
+
import { DriftEnv } from '../config';
|
|
4
|
+
import { OracleClient } from '../oracles/types';
|
|
5
|
+
import { PythClient } from '../oracles/pythClient';
|
|
6
|
+
import { SwitchboardClient } from '../oracles/switchboardClient';
|
|
7
|
+
|
|
8
|
+
export function getOracleClient(
|
|
9
|
+
oracleSource: OracleSource,
|
|
10
|
+
connection: Connection,
|
|
11
|
+
env: DriftEnv
|
|
12
|
+
): OracleClient {
|
|
13
|
+
if (isVariant(oracleSource, 'pyth')) {
|
|
14
|
+
return new PythClient(connection);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (isVariant(oracleSource, 'switchboard')) {
|
|
18
|
+
return new SwitchboardClient(connection, env);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
throw new Error(`Unknown oracle source ${oracleSource}`);
|
|
22
|
+
}
|
|
@@ -212,6 +212,12 @@
|
|
|
212
212
|
"name": "ammPegMultiplier",
|
|
213
213
|
"type": "u128"
|
|
214
214
|
},
|
|
215
|
+
{
|
|
216
|
+
"name": "oracleSource",
|
|
217
|
+
"type": {
|
|
218
|
+
"defined": "OracleSource"
|
|
219
|
+
}
|
|
220
|
+
},
|
|
215
221
|
{
|
|
216
222
|
"name": "marginRatioInitial",
|
|
217
223
|
"type": "u32"
|
|
@@ -2610,7 +2616,7 @@
|
|
|
2610
2616
|
},
|
|
2611
2617
|
{
|
|
2612
2618
|
"name": "oraclePriceOffset",
|
|
2613
|
-
"type": "
|
|
2619
|
+
"type": "i128"
|
|
2614
2620
|
},
|
|
2615
2621
|
{
|
|
2616
2622
|
"name": "padding0",
|
|
@@ -3255,12 +3261,16 @@
|
|
|
3255
3261
|
"name": "fillerReward",
|
|
3256
3262
|
"type": "u128"
|
|
3257
3263
|
},
|
|
3264
|
+
{
|
|
3265
|
+
"name": "quoteAssetAmountSurplus",
|
|
3266
|
+
"type": "u128"
|
|
3267
|
+
},
|
|
3258
3268
|
{
|
|
3259
3269
|
"name": "padding",
|
|
3260
3270
|
"type": {
|
|
3261
3271
|
"array": [
|
|
3262
3272
|
"u64",
|
|
3263
|
-
|
|
3273
|
+
8
|
|
3264
3274
|
]
|
|
3265
3275
|
}
|
|
3266
3276
|
}
|
|
@@ -4170,6 +4180,16 @@
|
|
|
4170
4180
|
"code": 6057,
|
|
4171
4181
|
"name": "InvalidMarginRatio",
|
|
4172
4182
|
"msg": "Invalid Margin Ratio"
|
|
4183
|
+
},
|
|
4184
|
+
{
|
|
4185
|
+
"code": 6058,
|
|
4186
|
+
"name": "CantCancelPostOnlyOrder",
|
|
4187
|
+
"msg": "Cant Cancel Post Only Order"
|
|
4188
|
+
},
|
|
4189
|
+
{
|
|
4190
|
+
"code": 6059,
|
|
4191
|
+
"name": "InvalidOracleOffset",
|
|
4192
|
+
"msg": "InvalidOracleOffset"
|
|
4173
4193
|
}
|
|
4174
4194
|
]
|
|
4175
4195
|
}
|