@drift-labs/sdk 0.1.25-master.0 → 0.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/lib/accounts/pollingOracleSubscriber.d.ts +26 -0
  2. package/lib/accounts/pollingOracleSubscriber.js +79 -0
  3. package/lib/accounts/types.d.ts +14 -1
  4. package/lib/clearingHouse.d.ts +6 -4
  5. package/lib/clearingHouse.js +56 -7
  6. package/lib/constants/markets.d.ts +4 -2
  7. package/lib/constants/markets.js +76 -28
  8. package/lib/idl/clearing_house.json +65 -1
  9. package/lib/index.d.ts +1 -0
  10. package/lib/index.js +1 -0
  11. package/lib/math/market.d.ts +2 -0
  12. package/lib/math/market.js +6 -1
  13. package/lib/orderParams.d.ts +1 -1
  14. package/lib/orderParams.js +2 -2
  15. package/lib/orders.d.ts +3 -2
  16. package/lib/orders.js +11 -4
  17. package/lib/types.d.ts +3 -0
  18. package/lib/types.js +1 -0
  19. package/package.json +1 -1
  20. package/src/accounts/bulkAccountLoader.js +180 -0
  21. package/src/accounts/bulkAccountLoader.js.map +1 -0
  22. package/src/accounts/bulkUserSubscription.js +56 -0
  23. package/src/accounts/bulkUserSubscription.js.map +1 -0
  24. package/src/accounts/pollingClearingHouseAccountSubscriber.js +210 -0
  25. package/src/accounts/pollingClearingHouseAccountSubscriber.js.map +1 -0
  26. package/src/accounts/pollingOracleSubscriber.js +65 -0
  27. package/src/accounts/pollingOracleSubscriber.js.map +1 -0
  28. package/src/accounts/pollingOracleSubscriber.ts +103 -0
  29. package/src/accounts/pollingTokenAccountSubscriber.js +65 -0
  30. package/src/accounts/pollingTokenAccountSubscriber.js.map +1 -0
  31. package/src/accounts/pollingUserAccountSubscriber.js +139 -0
  32. package/src/accounts/pollingUserAccountSubscriber.js.map +1 -0
  33. package/src/accounts/types.js +1 -0
  34. package/src/accounts/types.js.map +1 -0
  35. package/src/accounts/types.ts +22 -1
  36. package/src/accounts/utils.js +1 -0
  37. package/src/accounts/utils.js.map +1 -0
  38. package/src/accounts/webSocketAccountSubscriber.js +15 -27
  39. package/src/accounts/webSocketAccountSubscriber.js.map +1 -0
  40. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +212 -0
  41. package/src/accounts/webSocketClearingHouseAccountSubscriber.js.map +1 -0
  42. package/src/accounts/webSocketUserAccountSubscriber.js +78 -0
  43. package/src/accounts/webSocketUserAccountSubscriber.js.map +1 -0
  44. package/src/addresses.js +20 -44
  45. package/src/addresses.js.map +1 -0
  46. package/src/admin.js +443 -0
  47. package/src/admin.js.map +1 -0
  48. package/src/assert/assert.js +10 -0
  49. package/src/assert/assert.js.map +1 -0
  50. package/src/clearingHouse.ts +85 -7
  51. package/src/clearingHouseUser.js +581 -0
  52. package/src/clearingHouseUser.js.map +1 -0
  53. package/src/config.js +37 -0
  54. package/src/config.js.map +1 -0
  55. package/src/constants/markets.js +167 -0
  56. package/src/constants/markets.js.map +1 -0
  57. package/src/constants/markets.ts +80 -30
  58. package/src/constants/numericConstants.js +22 -0
  59. package/src/constants/numericConstants.js.map +1 -0
  60. package/src/factory/clearingHouse.js +65 -0
  61. package/src/factory/clearingHouse.js.map +1 -0
  62. package/src/factory/clearingHouseUser.js +35 -0
  63. package/src/factory/clearingHouseUser.js.map +1 -0
  64. package/src/factory/oracleClient.js +17 -0
  65. package/src/factory/oracleClient.js.map +1 -0
  66. package/src/idl/clearing_house.json +65 -1
  67. package/src/index.js +56 -0
  68. package/src/index.js.map +1 -0
  69. package/src/index.ts +1 -0
  70. package/src/math/amm.js +285 -0
  71. package/src/math/amm.js.map +1 -0
  72. package/src/math/conversion.js +16 -0
  73. package/src/math/conversion.js.map +1 -0
  74. package/src/math/funding.js +223 -0
  75. package/src/math/funding.js.map +1 -0
  76. package/src/math/insuranceFund.js +23 -0
  77. package/src/math/insuranceFund.js.map +1 -0
  78. package/src/math/market.js +30 -0
  79. package/src/math/market.js.map +1 -0
  80. package/src/math/market.ts +9 -0
  81. package/src/math/orders.js +73 -0
  82. package/src/math/orders.js.map +1 -0
  83. package/src/math/position.js +121 -0
  84. package/src/math/position.js.map +1 -0
  85. package/src/math/trade.js +182 -0
  86. package/src/math/trade.js.map +1 -0
  87. package/src/math/utils.js +27 -0
  88. package/src/math/utils.js.map +1 -0
  89. package/src/mockUSDCFaucet.js +88 -116
  90. package/src/mockUSDCFaucet.js.map +1 -0
  91. package/src/oracles/pythClient.js +39 -0
  92. package/src/oracles/pythClient.js.map +1 -0
  93. package/src/oracles/switchboardClient.js +60 -0
  94. package/src/oracles/switchboardClient.js.map +1 -0
  95. package/src/oracles/types.js +3 -0
  96. package/src/oracles/types.js.map +1 -0
  97. package/src/orderParams.js +109 -0
  98. package/src/orderParams.js.map +1 -0
  99. package/src/orderParams.ts +3 -2
  100. package/src/orders.js +172 -0
  101. package/src/orders.js.map +1 -0
  102. package/src/orders.ts +17 -4
  103. package/src/token/index.js +39 -0
  104. package/src/token/index.js.map +1 -0
  105. package/src/tx/defaultTxSender.js +13 -0
  106. package/src/tx/defaultTxSender.js.map +1 -0
  107. package/src/tx/retryTxSender.js +137 -0
  108. package/src/tx/retryTxSender.js.map +1 -0
  109. package/src/tx/types.js +3 -0
  110. package/src/tx/types.js.map +1 -0
  111. package/src/tx/utils.js +9 -0
  112. package/src/tx/utils.js.map +1 -0
  113. package/src/types.js +1 -0
  114. package/src/types.js.map +1 -0
  115. package/src/types.ts +1 -0
  116. package/src/util/computeUnits.js +17 -0
  117. package/src/util/computeUnits.js.map +1 -0
  118. package/src/util/tps.js +17 -0
  119. package/src/util/tps.js.map +1 -0
  120. package/src/wallet.js +23 -0
  121. package/src/wallet.js.map +1 -0
@@ -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":"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"}
@@ -1,142 +1,192 @@
1
1
  import { BN, OracleSource } from '../';
2
2
 
3
3
  export type MarketConfig = {
4
+ fullName?: string;
5
+ category?: string[];
4
6
  symbol: string;
5
7
  baseAssetSymbol: string;
6
8
  marketIndex: BN;
7
- devnetPythOracle: string;
8
- mainnetPythOracle: string;
9
+ devnetPublicKey: string;
10
+ mainnetPublicKey: string;
9
11
  launchTs: number;
10
12
  oracleSource: OracleSource;
11
13
  };
12
14
 
13
15
  export const Markets: MarketConfig[] = [
14
16
  {
17
+ fullName: 'Solana',
18
+ category: ['L1', 'Infra'],
15
19
  symbol: 'SOL-PERP',
16
20
  baseAssetSymbol: 'SOL',
17
21
  marketIndex: new BN(0),
18
- devnetPythOracle: 'J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix',
19
- mainnetPythOracle: 'H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG',
22
+ devnetPublicKey: 'J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix',
23
+ mainnetPublicKey: 'H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG',
20
24
  launchTs: 1635209696886,
21
25
  oracleSource: OracleSource.PYTH,
22
26
  },
23
27
  {
28
+ fullName: 'Bitcoin',
29
+ category: ['L1', 'Payment'],
24
30
  symbol: 'BTC-PERP',
25
31
  baseAssetSymbol: 'BTC',
26
32
  marketIndex: new BN(1),
27
- devnetPythOracle: 'HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J',
28
- mainnetPythOracle: 'GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU',
33
+ devnetPublicKey: 'HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J',
34
+ mainnetPublicKey: 'GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU',
29
35
  launchTs: 1637691088868,
30
36
  oracleSource: OracleSource.PYTH,
31
37
  },
32
38
  {
39
+ fullName: 'Ethereum',
40
+ category: ['L1', 'Infra'],
33
41
  symbol: 'ETH-PERP',
34
42
  baseAssetSymbol: 'ETH',
35
43
  marketIndex: new BN(2),
36
- devnetPythOracle: 'EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw',
37
- mainnetPythOracle: 'JBu1AL4obBcCMqKBBxhpWCNUt136ijcuMZLFvTP7iWdB',
44
+ devnetPublicKey: 'EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw',
45
+ mainnetPublicKey: 'JBu1AL4obBcCMqKBBxhpWCNUt136ijcuMZLFvTP7iWdB',
38
46
  launchTs: 1637691133472,
39
47
  oracleSource: OracleSource.PYTH,
40
48
  },
41
49
  {
50
+ fullName: 'Terra',
51
+ category: ['L1', 'Infra'],
42
52
  symbol: 'LUNA-PERP',
43
53
  baseAssetSymbol: 'LUNA',
44
54
  marketIndex: new BN(3),
45
- devnetPythOracle: '8PugCXTAHLM9kfLSQWe2njE5pzAgUdpPk3Nx5zSm7BD3',
46
- mainnetPythOracle: '5bmWuR1dgP4avtGYMNKLuxumZTVKGgoN2BCMXWDNL9nY',
55
+ devnetPublicKey: '8PugCXTAHLM9kfLSQWe2njE5pzAgUdpPk3Nx5zSm7BD3',
56
+ mainnetPublicKey: '5bmWuR1dgP4avtGYMNKLuxumZTVKGgoN2BCMXWDNL9nY',
47
57
  launchTs: 1638821738525,
48
58
  oracleSource: OracleSource.PYTH,
49
59
  },
50
60
  {
51
61
  symbol: 'AVAX-PERP',
62
+ category: ['L1', 'Infra'],
52
63
  baseAssetSymbol: 'AVAX',
53
64
  marketIndex: new BN(4),
54
- devnetPythOracle: 'FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz',
55
- mainnetPythOracle: 'Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU',
65
+ devnetPublicKey: 'FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz',
66
+ mainnetPublicKey: 'Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU',
56
67
  launchTs: 1639092501080,
57
68
  oracleSource: OracleSource.PYTH,
58
69
  },
59
70
  {
71
+ fullName: 'Binance Coin',
60
72
  symbol: 'BNB-PERP',
73
+ category: ['L1', 'Exchange'],
61
74
  baseAssetSymbol: 'BNB',
62
75
  marketIndex: new BN(5),
63
- devnetPythOracle: 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b',
64
- mainnetPythOracle: '4CkQJBxhU8EZ2UjhigbtdaPbpTe6mqf811fipYBFbSYN',
76
+ devnetPublicKey: 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b',
77
+ mainnetPublicKey: '4CkQJBxhU8EZ2UjhigbtdaPbpTe6mqf811fipYBFbSYN',
65
78
  launchTs: 1639523193012,
66
79
  oracleSource: OracleSource.PYTH,
67
80
  },
68
81
  {
82
+ fullName: 'Polygon',
83
+ category: ['L1', 'Infra'],
69
84
  symbol: 'MATIC-PERP',
70
85
  baseAssetSymbol: 'MATIC',
71
86
  marketIndex: new BN(6),
72
- devnetPythOracle: 'FBirwuDFuRAu4iSGc7RGxN5koHB7EJM1wbCmyPuQoGur',
73
- mainnetPythOracle: '7KVswB9vkCgeM3SHP7aGDijvdRAHK8P5wi9JXViCrtYh',
87
+ devnetPublicKey: 'FBirwuDFuRAu4iSGc7RGxN5koHB7EJM1wbCmyPuQoGur',
88
+ mainnetPublicKey: '7KVswB9vkCgeM3SHP7aGDijvdRAHK8P5wi9JXViCrtYh',
74
89
  launchTs: 1641488603564,
75
90
  oracleSource: OracleSource.PYTH,
76
91
  },
77
92
  {
93
+ fullName: 'Cosmos',
94
+ category: ['L1', 'Infra'],
78
95
  symbol: 'ATOM-PERP',
79
96
  baseAssetSymbol: 'ATOM',
80
97
  marketIndex: new BN(7),
81
- devnetPythOracle: '7YAze8qFUMkBnyLVdKT4TFUUFui99EwS5gfRArMcrvFk',
82
- mainnetPythOracle: 'CrCpTerNqtZvqLcKqz1k13oVeXV9WkMD2zA9hBKXrsbN',
98
+ devnetPublicKey: '7YAze8qFUMkBnyLVdKT4TFUUFui99EwS5gfRArMcrvFk',
99
+ mainnetPublicKey: 'CrCpTerNqtZvqLcKqz1k13oVeXV9WkMD2zA9hBKXrsbN',
83
100
  launchTs: 1641920238195,
84
101
  oracleSource: OracleSource.PYTH,
85
102
  },
86
103
  {
104
+ fullName: 'Polkadot',
87
105
  symbol: 'DOT-PERP',
88
106
  baseAssetSymbol: 'DOT',
89
107
  marketIndex: new BN(8),
90
- devnetPythOracle: '4dqq5VBpN4EwYb7wyywjjfknvMKu7m78j9mKZRXTj462',
91
- mainnetPythOracle: 'EcV1X1gY2yb4KXxjVQtTHTbioum2gvmPnFk4zYAt7zne',
108
+ devnetPublicKey: '4dqq5VBpN4EwYb7wyywjjfknvMKu7m78j9mKZRXTj462',
109
+ mainnetPublicKey: 'EcV1X1gY2yb4KXxjVQtTHTbioum2gvmPnFk4zYAt7zne',
92
110
  launchTs: 1642629253786,
93
111
  oracleSource: OracleSource.PYTH,
94
112
  },
95
113
  {
114
+ fullName: 'Cardano',
115
+ category: ['L1', 'Infra'],
96
116
  symbol: 'ADA-PERP',
97
117
  baseAssetSymbol: 'ADA',
98
118
  marketIndex: new BN(9),
99
- devnetPythOracle: '8oGTURNmSQkrBS1AQ5NjB2p8qY34UVmMA9ojrw8vnHus',
100
- mainnetPythOracle: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
119
+ devnetPublicKey: '8oGTURNmSQkrBS1AQ5NjB2p8qY34UVmMA9ojrw8vnHus',
120
+ mainnetPublicKey: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
101
121
  launchTs: 1643084413000,
102
122
  oracleSource: OracleSource.PYTH,
103
123
  },
104
124
  {
125
+ fullName: 'Algorand',
126
+ category: ['L1', 'Infra'],
105
127
  symbol: 'ALGO-PERP',
106
128
  baseAssetSymbol: 'ALGO',
107
129
  marketIndex: new BN(10),
108
- devnetPythOracle: 'c1A946dY5NHuVda77C8XXtXytyR3wK1SCP3eA9VRfC3',
109
- mainnetPythOracle: 'HqFyq1wh1xKvL7KDqqT7NJeSPdAqsDqnmBisUC2XdXAX',
130
+ devnetPublicKey: 'c1A946dY5NHuVda77C8XXtXytyR3wK1SCP3eA9VRfC3',
131
+ mainnetPublicKey: 'HqFyq1wh1xKvL7KDqqT7NJeSPdAqsDqnmBisUC2XdXAX',
110
132
  launchTs: 1643686767000,
111
133
  oracleSource: OracleSource.PYTH,
112
134
  },
113
135
  {
136
+ fullName: 'FTX Coin',
137
+ category: ['L1', 'Exchange'],
114
138
  symbol: 'FTT-PERP',
115
139
  baseAssetSymbol: 'FTT',
116
140
  marketIndex: new BN(11),
117
- devnetPythOracle: '6vivTRs5ZPeeXbjo7dfburfaYDWoXjBtdtuYgQRuGfu',
118
- mainnetPythOracle: '8JPJJkmDScpcNmBRKGZuPuG2GYAveQgP3t5gFuMymwvF',
141
+ devnetPublicKey: '6vivTRs5ZPeeXbjo7dfburfaYDWoXjBtdtuYgQRuGfu',
142
+ mainnetPublicKey: '8JPJJkmDScpcNmBRKGZuPuG2GYAveQgP3t5gFuMymwvF',
119
143
  launchTs: 1644382122000,
120
144
  oracleSource: OracleSource.PYTH,
121
145
  },
122
146
  {
147
+ fullName: 'Litecoin',
148
+ category: ['L1', 'Payments'],
123
149
  symbol: 'LTC-PERP',
124
150
  baseAssetSymbol: 'LTC',
125
151
  marketIndex: new BN(12),
126
- devnetPythOracle: 'BLArYBCUYhdWiY8PCUTpvFE21iaJq85dvxLk9bYMobcU',
127
- mainnetPythOracle: '8RMnV1eD55iqUFJLMguPkYBkq8DCtx81XcmAja93LvRR',
152
+ devnetPublicKey: 'BLArYBCUYhdWiY8PCUTpvFE21iaJq85dvxLk9bYMobcU',
153
+ mainnetPublicKey: '8RMnV1eD55iqUFJLMguPkYBkq8DCtx81XcmAja93LvRR',
128
154
  launchTs: 1645027429000,
129
155
  oracleSource: OracleSource.PYTH,
130
156
  },
131
157
  {
158
+ fullName: 'Ripple',
159
+ category: ['L1', 'Payments'],
132
160
  symbol: 'XRP-PERP',
133
161
  baseAssetSymbol: 'XRP',
134
162
  marketIndex: new BN(13),
135
- devnetPythOracle: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
136
- mainnetPythOracle: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
163
+ devnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
164
+ mainnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
137
165
  launchTs: 1647543166000,
138
166
  oracleSource: OracleSource.SWITCHBOARD,
139
167
  },
168
+ {
169
+ fullName: 'ApeCoin',
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,
178
+ },
179
+ {
180
+ fullName: 'DogeCoin',
181
+ category: ['Meme', 'NFT'],
182
+ symbol: 'DOGE-PERP',
183
+ baseAssetSymbol: 'DOGE',
184
+ marketIndex: new BN(15),
185
+ devnetPublicKey: '4L6YhY8VvUgmqG5MvJkUJATtzB2rFqdrJwQCmFLv4Jzy',
186
+ mainnetPublicKey: 'FsSM3s38PX9K7Dn6eGzuE29S2Dsk1Sss1baytTQdCaQj',
187
+ launchTs: 1648607439000,
188
+ oracleSource: OracleSource.PYTH,
189
+ },
140
190
  // {
141
191
  // symbol: 'mSOL-PERP',
142
192
  // baseAssetSymbol: 'mSOL',
@@ -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"}
@@ -677,6 +677,52 @@
677
677
  }
678
678
  ]
679
679
  },
680
+ {
681
+ "name": "expireOrders",
682
+ "accounts": [
683
+ {
684
+ "name": "state",
685
+ "isMut": false,
686
+ "isSigner": false
687
+ },
688
+ {
689
+ "name": "orderState",
690
+ "isMut": false,
691
+ "isSigner": false
692
+ },
693
+ {
694
+ "name": "authority",
695
+ "isMut": false,
696
+ "isSigner": true
697
+ },
698
+ {
699
+ "name": "filler",
700
+ "isMut": true,
701
+ "isSigner": false
702
+ },
703
+ {
704
+ "name": "user",
705
+ "isMut": true,
706
+ "isSigner": false
707
+ },
708
+ {
709
+ "name": "userPositions",
710
+ "isMut": true,
711
+ "isSigner": false
712
+ },
713
+ {
714
+ "name": "userOrders",
715
+ "isMut": true,
716
+ "isSigner": false
717
+ },
718
+ {
719
+ "name": "orderHistory",
720
+ "isMut": true,
721
+ "isSigner": false
722
+ }
723
+ ],
724
+ "args": []
725
+ },
680
726
  {
681
727
  "name": "fillOrder",
682
728
  "accounts": [
@@ -2616,7 +2662,7 @@
2616
2662
  },
2617
2663
  {
2618
2664
  "name": "oraclePriceOffset",
2619
- "type": "u128"
2665
+ "type": "i128"
2620
2666
  },
2621
2667
  {
2622
2668
  "name": "padding0",
@@ -3800,6 +3846,9 @@
3800
3846
  },
3801
3847
  {
3802
3848
  "name": "Fill"
3849
+ },
3850
+ {
3851
+ "name": "Expire"
3803
3852
  }
3804
3853
  ]
3805
3854
  }
@@ -4180,6 +4229,21 @@
4180
4229
  "code": 6057,
4181
4230
  "name": "InvalidMarginRatio",
4182
4231
  "msg": "Invalid Margin Ratio"
4232
+ },
4233
+ {
4234
+ "code": 6058,
4235
+ "name": "CantCancelPostOnlyOrder",
4236
+ "msg": "Cant Cancel Post Only Order"
4237
+ },
4238
+ {
4239
+ "code": 6059,
4240
+ "name": "InvalidOracleOffset",
4241
+ "msg": "InvalidOracleOffset"
4242
+ },
4243
+ {
4244
+ "code": 6060,
4245
+ "name": "CantExpireOrders",
4246
+ "msg": "CantExpireOrders"
4183
4247
  }
4184
4248
  ]
4185
4249
  }