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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/lib/accounts/bulkAccountLoader.js +8 -3
  2. package/lib/accounts/pollingOracleSubscriber.d.ts +26 -0
  3. package/lib/accounts/pollingOracleSubscriber.js +79 -0
  4. package/lib/accounts/types.d.ts +14 -1
  5. package/lib/clearingHouse.d.ts +6 -4
  6. package/lib/clearingHouse.js +56 -7
  7. package/lib/constants/markets.d.ts +2 -2
  8. package/lib/constants/markets.js +50 -28
  9. package/lib/idl/clearing_house.json +60 -1
  10. package/lib/index.d.ts +1 -0
  11. package/lib/index.js +1 -0
  12. package/lib/math/market.d.ts +2 -0
  13. package/lib/math/market.js +6 -1
  14. package/lib/orderParams.d.ts +1 -1
  15. package/lib/orderParams.js +2 -2
  16. package/lib/orders.d.ts +3 -2
  17. package/lib/orders.js +11 -4
  18. package/lib/types.d.ts +3 -0
  19. package/lib/types.js +1 -0
  20. package/package.json +1 -1
  21. package/src/accounts/bulkAccountLoader.ts +10 -4
  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 +52 -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 +60 -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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"}
@@ -6,8 +6,8 @@ export type MarketConfig = {
6
6
  symbol: string;
7
7
  baseAssetSymbol: string;
8
8
  marketIndex: BN;
9
- devnetPythOracle: string;
10
- mainnetPythOracle: string;
9
+ devnetPublicKey: string;
10
+ mainnetPublicKey: string;
11
11
  launchTs: number;
12
12
  oracleSource: OracleSource;
13
13
  };
@@ -19,8 +19,8 @@ export const Markets: MarketConfig[] = [
19
19
  symbol: 'SOL-PERP',
20
20
  baseAssetSymbol: 'SOL',
21
21
  marketIndex: new BN(0),
22
- devnetPythOracle: 'J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix',
23
- mainnetPythOracle: 'H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG',
22
+ devnetPublicKey: 'J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix',
23
+ mainnetPublicKey: 'H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG',
24
24
  launchTs: 1635209696886,
25
25
  oracleSource: OracleSource.PYTH,
26
26
  },
@@ -30,8 +30,8 @@ export const Markets: MarketConfig[] = [
30
30
  symbol: 'BTC-PERP',
31
31
  baseAssetSymbol: 'BTC',
32
32
  marketIndex: new BN(1),
33
- devnetPythOracle: 'HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J',
34
- mainnetPythOracle: 'GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU',
33
+ devnetPublicKey: 'HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J',
34
+ mainnetPublicKey: 'GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU',
35
35
  launchTs: 1637691088868,
36
36
  oracleSource: OracleSource.PYTH,
37
37
  },
@@ -41,8 +41,8 @@ export const Markets: MarketConfig[] = [
41
41
  symbol: 'ETH-PERP',
42
42
  baseAssetSymbol: 'ETH',
43
43
  marketIndex: new BN(2),
44
- devnetPythOracle: 'EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw',
45
- mainnetPythOracle: 'JBu1AL4obBcCMqKBBxhpWCNUt136ijcuMZLFvTP7iWdB',
44
+ devnetPublicKey: 'EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw',
45
+ mainnetPublicKey: 'JBu1AL4obBcCMqKBBxhpWCNUt136ijcuMZLFvTP7iWdB',
46
46
  launchTs: 1637691133472,
47
47
  oracleSource: OracleSource.PYTH,
48
48
  },
@@ -52,8 +52,8 @@ export const Markets: MarketConfig[] = [
52
52
  symbol: 'LUNA-PERP',
53
53
  baseAssetSymbol: 'LUNA',
54
54
  marketIndex: new BN(3),
55
- devnetPythOracle: '8PugCXTAHLM9kfLSQWe2njE5pzAgUdpPk3Nx5zSm7BD3',
56
- mainnetPythOracle: '5bmWuR1dgP4avtGYMNKLuxumZTVKGgoN2BCMXWDNL9nY',
55
+ devnetPublicKey: '8PugCXTAHLM9kfLSQWe2njE5pzAgUdpPk3Nx5zSm7BD3',
56
+ mainnetPublicKey: '5bmWuR1dgP4avtGYMNKLuxumZTVKGgoN2BCMXWDNL9nY',
57
57
  launchTs: 1638821738525,
58
58
  oracleSource: OracleSource.PYTH,
59
59
  },
@@ -62,8 +62,8 @@ export const Markets: MarketConfig[] = [
62
62
  category: ['L1', 'Infra'],
63
63
  baseAssetSymbol: 'AVAX',
64
64
  marketIndex: new BN(4),
65
- devnetPythOracle: 'FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz',
66
- mainnetPythOracle: 'Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU',
65
+ devnetPublicKey: 'FVb5h1VmHPfVb1RfqZckchq18GxRv4iKt8T4eVTQAqdz',
66
+ mainnetPublicKey: 'Ax9ujW5B9oqcv59N8m6f1BpTBq2rGeGaBcpKjC5UYsXU',
67
67
  launchTs: 1639092501080,
68
68
  oracleSource: OracleSource.PYTH,
69
69
  },
@@ -73,8 +73,8 @@ export const Markets: MarketConfig[] = [
73
73
  category: ['L1', 'Exchange'],
74
74
  baseAssetSymbol: 'BNB',
75
75
  marketIndex: new BN(5),
76
- devnetPythOracle: 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b',
77
- mainnetPythOracle: '4CkQJBxhU8EZ2UjhigbtdaPbpTe6mqf811fipYBFbSYN',
76
+ devnetPublicKey: 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b',
77
+ mainnetPublicKey: '4CkQJBxhU8EZ2UjhigbtdaPbpTe6mqf811fipYBFbSYN',
78
78
  launchTs: 1639523193012,
79
79
  oracleSource: OracleSource.PYTH,
80
80
  },
@@ -84,8 +84,8 @@ export const Markets: MarketConfig[] = [
84
84
  symbol: 'MATIC-PERP',
85
85
  baseAssetSymbol: 'MATIC',
86
86
  marketIndex: new BN(6),
87
- devnetPythOracle: 'FBirwuDFuRAu4iSGc7RGxN5koHB7EJM1wbCmyPuQoGur',
88
- mainnetPythOracle: '7KVswB9vkCgeM3SHP7aGDijvdRAHK8P5wi9JXViCrtYh',
87
+ devnetPublicKey: 'FBirwuDFuRAu4iSGc7RGxN5koHB7EJM1wbCmyPuQoGur',
88
+ mainnetPublicKey: '7KVswB9vkCgeM3SHP7aGDijvdRAHK8P5wi9JXViCrtYh',
89
89
  launchTs: 1641488603564,
90
90
  oracleSource: OracleSource.PYTH,
91
91
  },
@@ -95,8 +95,8 @@ export const Markets: MarketConfig[] = [
95
95
  symbol: 'ATOM-PERP',
96
96
  baseAssetSymbol: 'ATOM',
97
97
  marketIndex: new BN(7),
98
- devnetPythOracle: '7YAze8qFUMkBnyLVdKT4TFUUFui99EwS5gfRArMcrvFk',
99
- mainnetPythOracle: 'CrCpTerNqtZvqLcKqz1k13oVeXV9WkMD2zA9hBKXrsbN',
98
+ devnetPublicKey: '7YAze8qFUMkBnyLVdKT4TFUUFui99EwS5gfRArMcrvFk',
99
+ mainnetPublicKey: 'CrCpTerNqtZvqLcKqz1k13oVeXV9WkMD2zA9hBKXrsbN',
100
100
  launchTs: 1641920238195,
101
101
  oracleSource: OracleSource.PYTH,
102
102
  },
@@ -105,8 +105,8 @@ export const Markets: MarketConfig[] = [
105
105
  symbol: 'DOT-PERP',
106
106
  baseAssetSymbol: 'DOT',
107
107
  marketIndex: new BN(8),
108
- devnetPythOracle: '4dqq5VBpN4EwYb7wyywjjfknvMKu7m78j9mKZRXTj462',
109
- mainnetPythOracle: 'EcV1X1gY2yb4KXxjVQtTHTbioum2gvmPnFk4zYAt7zne',
108
+ devnetPublicKey: '4dqq5VBpN4EwYb7wyywjjfknvMKu7m78j9mKZRXTj462',
109
+ mainnetPublicKey: 'EcV1X1gY2yb4KXxjVQtTHTbioum2gvmPnFk4zYAt7zne',
110
110
  launchTs: 1642629253786,
111
111
  oracleSource: OracleSource.PYTH,
112
112
  },
@@ -116,8 +116,8 @@ export const Markets: MarketConfig[] = [
116
116
  symbol: 'ADA-PERP',
117
117
  baseAssetSymbol: 'ADA',
118
118
  marketIndex: new BN(9),
119
- devnetPythOracle: '8oGTURNmSQkrBS1AQ5NjB2p8qY34UVmMA9ojrw8vnHus',
120
- mainnetPythOracle: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
119
+ devnetPublicKey: '8oGTURNmSQkrBS1AQ5NjB2p8qY34UVmMA9ojrw8vnHus',
120
+ mainnetPublicKey: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
121
121
  launchTs: 1643084413000,
122
122
  oracleSource: OracleSource.PYTH,
123
123
  },
@@ -127,8 +127,8 @@ export const Markets: MarketConfig[] = [
127
127
  symbol: 'ALGO-PERP',
128
128
  baseAssetSymbol: 'ALGO',
129
129
  marketIndex: new BN(10),
130
- devnetPythOracle: 'c1A946dY5NHuVda77C8XXtXytyR3wK1SCP3eA9VRfC3',
131
- mainnetPythOracle: 'HqFyq1wh1xKvL7KDqqT7NJeSPdAqsDqnmBisUC2XdXAX',
130
+ devnetPublicKey: 'c1A946dY5NHuVda77C8XXtXytyR3wK1SCP3eA9VRfC3',
131
+ mainnetPublicKey: 'HqFyq1wh1xKvL7KDqqT7NJeSPdAqsDqnmBisUC2XdXAX',
132
132
  launchTs: 1643686767000,
133
133
  oracleSource: OracleSource.PYTH,
134
134
  },
@@ -138,8 +138,8 @@ export const Markets: MarketConfig[] = [
138
138
  symbol: 'FTT-PERP',
139
139
  baseAssetSymbol: 'FTT',
140
140
  marketIndex: new BN(11),
141
- devnetPythOracle: '6vivTRs5ZPeeXbjo7dfburfaYDWoXjBtdtuYgQRuGfu',
142
- mainnetPythOracle: '8JPJJkmDScpcNmBRKGZuPuG2GYAveQgP3t5gFuMymwvF',
141
+ devnetPublicKey: '6vivTRs5ZPeeXbjo7dfburfaYDWoXjBtdtuYgQRuGfu',
142
+ mainnetPublicKey: '8JPJJkmDScpcNmBRKGZuPuG2GYAveQgP3t5gFuMymwvF',
143
143
  launchTs: 1644382122000,
144
144
  oracleSource: OracleSource.PYTH,
145
145
  },
@@ -149,8 +149,8 @@ export const Markets: MarketConfig[] = [
149
149
  symbol: 'LTC-PERP',
150
150
  baseAssetSymbol: 'LTC',
151
151
  marketIndex: new BN(12),
152
- devnetPythOracle: 'BLArYBCUYhdWiY8PCUTpvFE21iaJq85dvxLk9bYMobcU',
153
- mainnetPythOracle: '8RMnV1eD55iqUFJLMguPkYBkq8DCtx81XcmAja93LvRR',
152
+ devnetPublicKey: 'BLArYBCUYhdWiY8PCUTpvFE21iaJq85dvxLk9bYMobcU',
153
+ mainnetPublicKey: '8RMnV1eD55iqUFJLMguPkYBkq8DCtx81XcmAja93LvRR',
154
154
  launchTs: 1645027429000,
155
155
  oracleSource: OracleSource.PYTH,
156
156
  },
@@ -160,11 +160,33 @@ export const Markets: MarketConfig[] = [
160
160
  symbol: 'XRP-PERP',
161
161
  baseAssetSymbol: 'XRP',
162
162
  marketIndex: new BN(13),
163
- devnetPythOracle: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
164
- mainnetPythOracle: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
163
+ devnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
164
+ mainnetPublicKey: 'WMW5xc3HypXwTnPesyUT49uLsyHwNURsWAEk39onKuk',
165
165
  launchTs: 1647543166000,
166
166
  oracleSource: OracleSource.SWITCHBOARD,
167
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
+ },
168
190
  // {
169
191
  // symbol: 'mSOL-PERP',
170
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
  }
@@ -4185,6 +4234,16 @@
4185
4234
  "code": 6058,
4186
4235
  "name": "CantCancelPostOnlyOrder",
4187
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"
4188
4247
  }
4189
4248
  ]
4190
4249
  }