@drift-labs/sdk 0.2.0-master.24 → 0.2.0-master.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/lib/accounts/pollingClearingHouseAccountSubscriber.d.ts +13 -13
  2. package/lib/accounts/pollingClearingHouseAccountSubscriber.js +27 -27
  3. package/lib/accounts/types.d.ts +8 -9
  4. package/lib/accounts/webSocketClearingHouseAccountSubscriber.d.ts +14 -14
  5. package/lib/accounts/webSocketClearingHouseAccountSubscriber.js +35 -34
  6. package/lib/addresses/pda.d.ts +8 -6
  7. package/lib/addresses/pda.js +35 -27
  8. package/lib/admin.d.ts +9 -6
  9. package/lib/admin.js +90 -54
  10. package/lib/clearingHouse.d.ts +71 -42
  11. package/lib/clearingHouse.js +765 -282
  12. package/lib/clearingHouseConfig.d.ts +2 -2
  13. package/lib/clearingHouseUser.d.ts +19 -17
  14. package/lib/clearingHouseUser.js +145 -123
  15. package/lib/config.d.ts +7 -7
  16. package/lib/config.js +21 -21
  17. package/lib/constants/numericConstants.d.ts +12 -12
  18. package/lib/constants/numericConstants.js +13 -13
  19. package/lib/constants/{markets.d.ts → perpMarkets.d.ts} +5 -5
  20. package/{src/constants/markets.js → lib/constants/perpMarkets.js} +4 -4
  21. package/lib/constants/{banks.d.ts → spotMarkets.d.ts} +6 -6
  22. package/lib/constants/{banks.js → spotMarkets.js} +16 -16
  23. package/lib/events/eventSubscriber.d.ts +4 -2
  24. package/lib/events/eventSubscriber.js +16 -9
  25. package/lib/events/fetchLogs.d.ts +10 -1
  26. package/lib/events/fetchLogs.js +27 -7
  27. package/lib/events/pollingLogProvider.d.ts +2 -1
  28. package/lib/events/pollingLogProvider.js +6 -2
  29. package/lib/events/types.d.ts +4 -2
  30. package/lib/events/types.js +2 -0
  31. package/lib/examples/makeTradeExample.js +18 -6
  32. package/lib/idl/clearing_house.json +1128 -347
  33. package/lib/index.d.ts +6 -3
  34. package/lib/index.js +6 -3
  35. package/lib/math/amm.d.ts +5 -3
  36. package/lib/math/amm.js +42 -4
  37. package/lib/math/funding.d.ts +6 -6
  38. package/lib/math/funding.js +2 -1
  39. package/lib/math/margin.d.ts +4 -4
  40. package/lib/math/margin.js +18 -11
  41. package/lib/math/market.d.ts +10 -9
  42. package/lib/math/market.js +29 -6
  43. package/lib/math/oracles.d.ts +2 -1
  44. package/lib/math/oracles.js +11 -1
  45. package/lib/math/orders.d.ts +5 -5
  46. package/lib/math/position.d.ts +13 -13
  47. package/lib/math/position.js +19 -19
  48. package/lib/math/spotBalance.d.ts +19 -0
  49. package/lib/math/spotBalance.js +176 -0
  50. package/lib/math/spotMarket.d.ts +4 -0
  51. package/lib/math/spotMarket.js +8 -0
  52. package/lib/math/spotPosition.d.ts +2 -0
  53. package/lib/math/spotPosition.js +8 -0
  54. package/lib/math/state.js +2 -2
  55. package/lib/math/trade.d.ts +4 -4
  56. package/lib/orderParams.d.ts +4 -4
  57. package/lib/orderParams.js +12 -4
  58. package/lib/serum/serumSubscriber.d.ts +23 -0
  59. package/lib/serum/serumSubscriber.js +41 -0
  60. package/lib/serum/types.d.ts +11 -0
  61. package/lib/serum/types.js +2 -0
  62. package/lib/tx/retryTxSender.d.ts +1 -1
  63. package/lib/tx/retryTxSender.js +4 -2
  64. package/lib/tx/types.d.ts +1 -1
  65. package/lib/types.d.ts +148 -39
  66. package/lib/types.js +37 -9
  67. package/my-script/.env +7 -0
  68. package/my-script/getUserStats.ts +106 -0
  69. package/my-script/multiConnections.ts +119 -0
  70. package/my-script/test-regex.ts +11 -0
  71. package/my-script/utils.ts +52 -0
  72. package/package.json +1 -1
  73. package/src/accounts/bulkAccountLoader.js +249 -0
  74. package/src/accounts/bulkUserStatsSubscription.js +75 -0
  75. package/src/accounts/bulkUserSubscription.js +75 -0
  76. package/src/accounts/fetch.js +92 -0
  77. package/src/accounts/pollingClearingHouseAccountSubscriber.js +465 -0
  78. package/src/accounts/pollingClearingHouseAccountSubscriber.ts +38 -38
  79. package/src/accounts/pollingOracleSubscriber.js +156 -0
  80. package/src/accounts/pollingTokenAccountSubscriber.js +141 -0
  81. package/src/accounts/pollingUserAccountSubscriber.js +208 -0
  82. package/src/accounts/pollingUserStatsAccountSubscriber.js +208 -0
  83. package/src/accounts/types.js +28 -0
  84. package/src/accounts/types.ts +11 -9
  85. package/src/accounts/utils.js +7 -0
  86. package/src/accounts/webSocketAccountSubscriber.js +138 -0
  87. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +433 -0
  88. package/src/accounts/webSocketClearingHouseAccountSubscriber.ts +59 -52
  89. package/src/accounts/webSocketUserAccountSubscriber.js +113 -0
  90. package/src/accounts/webSocketUserStatsAccountSubsriber.js +113 -0
  91. package/src/addresses/pda.js +186 -0
  92. package/src/addresses/pda.ts +56 -42
  93. package/src/admin.js +1284 -0
  94. package/src/admin.ts +149 -75
  95. package/src/assert/assert.js +1 -1
  96. package/src/clearingHouse.js +3433 -0
  97. package/src/clearingHouse.ts +1097 -380
  98. package/src/clearingHouseConfig.js +2 -0
  99. package/src/clearingHouseConfig.ts +2 -2
  100. package/src/clearingHouseUser.js +874 -0
  101. package/src/clearingHouseUser.ts +237 -172
  102. package/src/clearingHouseUserConfig.js +2 -0
  103. package/src/clearingHouseUserStats.js +115 -0
  104. package/src/clearingHouseUserStatsConfig.js +2 -0
  105. package/src/config.js +80 -0
  106. package/src/config.ts +30 -30
  107. package/src/constants/numericConstants.js +18 -11
  108. package/src/constants/numericConstants.ts +17 -15
  109. package/{lib/constants/markets.js → src/constants/perpMarkets.js} +11 -11
  110. package/src/constants/{markets.ts → perpMarkets.ts} +5 -5
  111. package/src/constants/spotMarkets.js +51 -0
  112. package/src/constants/{banks.ts → spotMarkets.ts} +19 -19
  113. package/src/events/eventList.js +66 -23
  114. package/src/events/eventSubscriber.js +202 -0
  115. package/src/events/eventSubscriber.ts +20 -12
  116. package/src/events/fetchLogs.js +117 -0
  117. package/src/events/fetchLogs.ts +35 -8
  118. package/src/events/pollingLogProvider.js +113 -0
  119. package/src/events/pollingLogProvider.ts +10 -2
  120. package/src/events/sort.js +41 -0
  121. package/src/events/txEventCache.js +22 -19
  122. package/src/events/types.js +25 -0
  123. package/src/events/types.ts +7 -1
  124. package/src/events/webSocketLogProvider.js +76 -0
  125. package/src/examples/makeTradeExample.ts +27 -6
  126. package/src/factory/bigNum.js +183 -180
  127. package/src/factory/oracleClient.js +9 -9
  128. package/src/idl/clearing_house.json +1128 -347
  129. package/src/index.js +75 -0
  130. package/src/index.ts +6 -3
  131. package/src/math/amm.js +422 -0
  132. package/src/math/amm.ts +73 -5
  133. package/src/math/auction.js +10 -10
  134. package/src/math/conversion.js +4 -3
  135. package/src/math/funding.js +223 -175
  136. package/src/math/funding.ts +7 -7
  137. package/src/math/insurance.js +27 -0
  138. package/src/math/margin.js +77 -0
  139. package/src/math/margin.ts +34 -23
  140. package/src/math/market.js +105 -0
  141. package/src/math/market.ts +71 -19
  142. package/src/math/oracles.js +40 -10
  143. package/src/math/oracles.ts +18 -1
  144. package/src/math/orders.js +153 -0
  145. package/src/math/orders.ts +5 -5
  146. package/src/math/position.js +172 -0
  147. package/src/math/position.ts +31 -31
  148. package/src/math/repeg.js +40 -40
  149. package/src/math/spotBalance.js +176 -0
  150. package/src/math/spotBalance.ts +290 -0
  151. package/src/math/spotMarket.js +8 -0
  152. package/src/math/spotMarket.ts +9 -0
  153. package/src/math/spotPosition.js +8 -0
  154. package/src/math/spotPosition.ts +6 -0
  155. package/src/math/state.ts +2 -2
  156. package/src/math/trade.js +81 -74
  157. package/src/math/trade.ts +4 -4
  158. package/src/math/utils.js +8 -7
  159. package/src/oracles/oracleClientCache.js +10 -9
  160. package/src/oracles/pythClient.js +52 -17
  161. package/src/oracles/quoteAssetOracleClient.js +44 -13
  162. package/src/oracles/switchboardClient.js +69 -37
  163. package/src/oracles/types.js +1 -1
  164. package/src/orderParams.js +14 -6
  165. package/src/orderParams.ts +16 -8
  166. package/src/serum/serumSubscriber.js +102 -0
  167. package/src/serum/serumSubscriber.ts +80 -0
  168. package/src/serum/types.js +2 -0
  169. package/src/serum/types.ts +13 -0
  170. package/src/slot/SlotSubscriber.js +67 -20
  171. package/src/token/index.js +4 -4
  172. package/src/tokenFaucet.js +288 -154
  173. package/src/tx/retryTxSender.js +280 -0
  174. package/src/tx/retryTxSender.ts +5 -2
  175. package/src/tx/types.js +1 -1
  176. package/src/tx/types.ts +2 -1
  177. package/src/tx/utils.js +7 -6
  178. package/src/types.js +216 -0
  179. package/src/types.ts +131 -39
  180. package/src/userName.js +5 -5
  181. package/src/util/computeUnits.js +46 -11
  182. package/src/util/promiseTimeout.js +5 -5
  183. package/src/util/tps.js +46 -12
  184. package/src/wallet.js +55 -18
  185. package/lib/math/bankBalance.d.ts +0 -15
  186. package/lib/math/bankBalance.js +0 -150
  187. package/src/addresses/marketAddresses.js +0 -26
  188. package/src/constants/banks.js +0 -42
  189. package/src/examples/makeTradeExample.js +0 -80
  190. package/src/math/bankBalance.ts +0 -258
  191. package/src/math/state.js +0 -15
  192. package/src/math/utils.js.map +0 -1
  193. package/src/util/getTokenAddress.js +0 -9
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ exports.__esModule = true;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ exports.__esModule = true;
39
+ exports.ClearingHouseUserStats = void 0;
40
+ var web3_js_1 = require("@solana/web3.js");
41
+ var pollingUserStatsAccountSubscriber_1 = require("./accounts/pollingUserStatsAccountSubscriber");
42
+ var webSocketUserStatsAccountSubsriber_1 = require("./accounts/webSocketUserStatsAccountSubsriber");
43
+ var pda_1 = require("./addresses/pda");
44
+ var ClearingHouseUserStats = /** @class */ (function () {
45
+ function ClearingHouseUserStats(config) {
46
+ var _a;
47
+ this.clearingHouse = config.clearingHouse;
48
+ this.userStatsAccountPublicKey = config.userStatsAccountPublicKey;
49
+ if (((_a = config.accountSubscription) === null || _a === void 0 ? void 0 : _a.type) === 'polling') {
50
+ this.accountSubscriber = new pollingUserStatsAccountSubscriber_1.PollingUserStatsAccountSubscriber(config.clearingHouse.program, config.userStatsAccountPublicKey, config.accountSubscription.accountLoader);
51
+ }
52
+ else {
53
+ this.accountSubscriber = new webSocketUserStatsAccountSubsriber_1.WebSocketUserStatsAccountSubscriber(config.clearingHouse.program, config.userStatsAccountPublicKey);
54
+ }
55
+ }
56
+ ClearingHouseUserStats.prototype.subscribe = function () {
57
+ return __awaiter(this, void 0, void 0, function () {
58
+ var _a;
59
+ return __generator(this, function (_b) {
60
+ switch (_b.label) {
61
+ case 0:
62
+ _a = this;
63
+ return [4 /*yield*/, this.accountSubscriber.subscribe()];
64
+ case 1:
65
+ _a.isSubscribed = _b.sent();
66
+ return [2 /*return*/, this.isSubscribed];
67
+ }
68
+ });
69
+ });
70
+ };
71
+ ClearingHouseUserStats.prototype.fetchAccounts = function () {
72
+ return __awaiter(this, void 0, void 0, function () {
73
+ return __generator(this, function (_a) {
74
+ switch (_a.label) {
75
+ case 0: return [4 /*yield*/, this.accountSubscriber.fetch()];
76
+ case 1:
77
+ _a.sent();
78
+ return [2 /*return*/];
79
+ }
80
+ });
81
+ });
82
+ };
83
+ ClearingHouseUserStats.prototype.unsubscribe = function () {
84
+ return __awaiter(this, void 0, void 0, function () {
85
+ return __generator(this, function (_a) {
86
+ switch (_a.label) {
87
+ case 0: return [4 /*yield*/, this.accountSubscriber.unsubscribe()];
88
+ case 1:
89
+ _a.sent();
90
+ this.isSubscribed = false;
91
+ return [2 /*return*/];
92
+ }
93
+ });
94
+ });
95
+ };
96
+ ClearingHouseUserStats.prototype.getAccountAndSlot = function () {
97
+ return this.accountSubscriber.getUserStatsAccountAndSlot();
98
+ };
99
+ ClearingHouseUserStats.prototype.getAccount = function () {
100
+ return this.accountSubscriber.getUserStatsAccountAndSlot().data;
101
+ };
102
+ ClearingHouseUserStats.prototype.getReferrerInfo = function () {
103
+ if (this.getAccount().referrer.equals(web3_js_1.PublicKey["default"])) {
104
+ return undefined;
105
+ }
106
+ else {
107
+ return {
108
+ referrer: (0, pda_1.getUserAccountPublicKeySync)(this.clearingHouse.program.programId, this.getAccount().referrer, 0),
109
+ referrerStats: (0, pda_1.getUserStatsAccountPublicKey)(this.clearingHouse.program.programId, this.getAccount().referrer)
110
+ };
111
+ }
112
+ };
113
+ return ClearingHouseUserStats;
114
+ }());
115
+ exports.ClearingHouseUserStats = ClearingHouseUserStats;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ exports.__esModule = true;
package/src/config.js ADDED
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ exports.__esModule = true;
14
+ exports.getMarketsAndOraclesForSubscription = exports.initialize = exports.getConfig = exports.configs = void 0;
15
+ var perpMarkets_1 = require("./constants/perpMarkets");
16
+ var spotMarkets_1 = require("./constants/spotMarkets");
17
+ exports.configs = {
18
+ devnet: {
19
+ ENV: 'devnet',
20
+ PYTH_ORACLE_MAPPING_ADDRESS: 'BmA9Z6FjioHJPpjT39QazZyhDRUdZy2ezwx4GiDdE2u2',
21
+ CLEARING_HOUSE_PROGRAM_ID: '3v1iEjbSSLSSYyt1pmx4UB5rqJGurmz71RibXF7X6UF3',
22
+ USDC_MINT_ADDRESS: '8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2',
23
+ PERP_MARKETS: perpMarkets_1.DevnetPerpMarkets,
24
+ SPOT_MARKETS: spotMarkets_1.DevnetSpotMarkets
25
+ },
26
+ 'mainnet-beta': {
27
+ ENV: 'mainnet-beta',
28
+ PYTH_ORACLE_MAPPING_ADDRESS: 'AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J',
29
+ CLEARING_HOUSE_PROGRAM_ID: 'dammHkt7jmytvbS3nHTxQNEcP59aE57nxwV21YdqEDN',
30
+ USDC_MINT_ADDRESS: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
31
+ PERP_MARKETS: perpMarkets_1.MainnetMarkets,
32
+ SPOT_MARKETS: spotMarkets_1.MainnetSpotMarkets
33
+ }
34
+ };
35
+ var currentConfig = exports.configs.devnet;
36
+ var getConfig = function () { return currentConfig; };
37
+ exports.getConfig = getConfig;
38
+ /**
39
+ * Allows customization of the SDK's environment and endpoints. You can pass individual settings to override the settings with your own presets.
40
+ *
41
+ * Defaults to master environment if you don't use this function.
42
+ * @param props
43
+ * @returns
44
+ */
45
+ var initialize = function (props) {
46
+ var _a, _b;
47
+ //@ts-ignore
48
+ if (props.env === 'master')
49
+ return __assign(__assign({}, exports.configs['devnet']), ((_a = props.overrideEnv) !== null && _a !== void 0 ? _a : {}));
50
+ currentConfig = __assign(__assign({}, exports.configs[props.env]), ((_b = props.overrideEnv) !== null && _b !== void 0 ? _b : {}));
51
+ return currentConfig;
52
+ };
53
+ exports.initialize = initialize;
54
+ function getMarketsAndOraclesForSubscription(env) {
55
+ var perpMarketIndexes = [];
56
+ var spotMarketIndexes = [];
57
+ var oracleInfos = new Map();
58
+ for (var _i = 0, _a = perpMarkets_1.PerpMarkets[env]; _i < _a.length; _i++) {
59
+ var market = _a[_i];
60
+ perpMarketIndexes.push(market.marketIndex);
61
+ oracleInfos.set(market.oracle.toString(), {
62
+ publicKey: market.oracle,
63
+ source: market.oracleSource
64
+ });
65
+ }
66
+ for (var _b = 0, _c = spotMarkets_1.SpotMarkets[env]; _b < _c.length; _b++) {
67
+ var spotMarket = _c[_b];
68
+ spotMarketIndexes.push(spotMarket.marketIndex);
69
+ oracleInfos.set(spotMarket.oracle.toString(), {
70
+ publicKey: spotMarket.oracle,
71
+ source: spotMarket.oracleSource
72
+ });
73
+ }
74
+ return {
75
+ perpMarketIndexes: perpMarketIndexes,
76
+ spotMarketIndexes: spotMarketIndexes,
77
+ oracleInfos: Array.from(oracleInfos.values())
78
+ };
79
+ }
80
+ exports.getMarketsAndOraclesForSubscription = getMarketsAndOraclesForSubscription;
package/src/config.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import {
2
- DevnetMarkets,
2
+ DevnetPerpMarkets,
3
3
  MainnetMarkets,
4
- MarketConfig,
5
- Markets,
6
- } from './constants/markets';
4
+ PerpMarketConfig,
5
+ PerpMarkets,
6
+ } from './constants/perpMarkets';
7
7
  import {
8
- BankConfig,
9
- Banks,
10
- DevnetBanks,
11
- MainnetBanks,
12
- } from './constants/banks';
8
+ SpotMarketConfig,
9
+ SpotMarkets,
10
+ DevnetSpotMarkets,
11
+ MainnetSpotMarkets,
12
+ } from './constants/spotMarkets';
13
13
  import { BN } from '@project-serum/anchor';
14
14
  import { OracleInfo } from './oracles/types';
15
15
 
@@ -18,8 +18,8 @@ type DriftConfig = {
18
18
  PYTH_ORACLE_MAPPING_ADDRESS: string;
19
19
  CLEARING_HOUSE_PROGRAM_ID: string;
20
20
  USDC_MINT_ADDRESS: string;
21
- MARKETS: MarketConfig[];
22
- BANKS: BankConfig[];
21
+ PERP_MARKETS: PerpMarketConfig[];
22
+ SPOT_MARKETS: SpotMarketConfig[];
23
23
  };
24
24
 
25
25
  export type DriftEnv = 'devnet' | 'mainnet-beta';
@@ -28,18 +28,18 @@ export const configs: { [key in DriftEnv]: DriftConfig } = {
28
28
  devnet: {
29
29
  ENV: 'devnet',
30
30
  PYTH_ORACLE_MAPPING_ADDRESS: 'BmA9Z6FjioHJPpjT39QazZyhDRUdZy2ezwx4GiDdE2u2',
31
- CLEARING_HOUSE_PROGRAM_ID: 'HbUKwqFPjz9r7ZtT416AU8aaecDQMKKiDCTS3AdXnS6c',
31
+ CLEARING_HOUSE_PROGRAM_ID: '3v1iEjbSSLSSYyt1pmx4UB5rqJGurmz71RibXF7X6UF3',
32
32
  USDC_MINT_ADDRESS: '8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2',
33
- MARKETS: DevnetMarkets,
34
- BANKS: DevnetBanks,
33
+ PERP_MARKETS: DevnetPerpMarkets,
34
+ SPOT_MARKETS: DevnetSpotMarkets,
35
35
  },
36
36
  'mainnet-beta': {
37
37
  ENV: 'mainnet-beta',
38
38
  PYTH_ORACLE_MAPPING_ADDRESS: 'AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J',
39
39
  CLEARING_HOUSE_PROGRAM_ID: 'dammHkt7jmytvbS3nHTxQNEcP59aE57nxwV21YdqEDN',
40
40
  USDC_MINT_ADDRESS: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
41
- MARKETS: MainnetMarkets,
42
- BANKS: MainnetBanks,
41
+ PERP_MARKETS: MainnetMarkets,
42
+ SPOT_MARKETS: MainnetSpotMarkets,
43
43
  },
44
44
  };
45
45
 
@@ -67,34 +67,34 @@ export const initialize = (props: {
67
67
  return currentConfig;
68
68
  };
69
69
 
70
- export function getMarketsBanksAndOraclesForSubscription(env: DriftEnv): {
71
- marketIndexes: BN[];
72
- bankIndexes: BN[];
70
+ export function getMarketsAndOraclesForSubscription(env: DriftEnv): {
71
+ perpMarketIndexes: BN[];
72
+ spotMarketIndexes: BN[];
73
73
  oracleInfos: OracleInfo[];
74
74
  } {
75
- const marketIndexes = [];
76
- const bankIndexes = [];
75
+ const perpMarketIndexes = [];
76
+ const spotMarketIndexes = [];
77
77
  const oracleInfos = new Map<string, OracleInfo>();
78
78
 
79
- for (const market of Markets[env]) {
80
- marketIndexes.push(market.marketIndex);
79
+ for (const market of PerpMarkets[env]) {
80
+ perpMarketIndexes.push(market.marketIndex);
81
81
  oracleInfos.set(market.oracle.toString(), {
82
82
  publicKey: market.oracle,
83
83
  source: market.oracleSource,
84
84
  });
85
85
  }
86
86
 
87
- for (const bank of Banks[env]) {
88
- bankIndexes.push(bank.bankIndex);
89
- oracleInfos.set(bank.oracle.toString(), {
90
- publicKey: bank.oracle,
91
- source: bank.oracleSource,
87
+ for (const spotMarket of SpotMarkets[env]) {
88
+ spotMarketIndexes.push(spotMarket.marketIndex);
89
+ oracleInfos.set(spotMarket.oracle.toString(), {
90
+ publicKey: spotMarket.oracle,
91
+ source: spotMarket.oracleSource,
92
92
  });
93
93
  }
94
94
 
95
95
  return {
96
- marketIndexes,
97
- bankIndexes,
96
+ perpMarketIndexes: perpMarketIndexes,
97
+ spotMarketIndexes: spotMarketIndexes,
98
98
  oracleInfos: Array.from(oracleInfos.values()),
99
99
  };
100
100
  }
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QUOTE_ASSET_BANK_INDEX = exports.ONE_YEAR = exports.BID_ASK_SPREAD_PRECISION = exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_PAYMENT_PRECISION = exports.MARK_PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.BANK_BALANCE_PRECISION = exports.BANK_BALANCE_PRECISION_EXP = exports.BANK_WEIGHT_PRECISION = exports.BANK_RATE_PRECISION = exports.BANK_UTILIZATION_PRECISION = exports.BANK_CUMULATIVE_INTEREST_PRECISION = exports.BANK_INTEREST_PRECISION = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.MARK_PRICE_PRECISION_EXP = exports.FUNDING_PAYMENT_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.TWO = exports.ONE = exports.ZERO = void 0;
4
- const __1 = require("../");
2
+ exports.__esModule = true;
3
+ exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.BID_ASK_SPREAD_PRECISION = exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_PAYMENT_PRECISION = exports.MARK_PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.SPOT_MARKET_IMF_PRECISION = exports.SPOT_MARKET_IMF_PRECISION_EXP = exports.SPOT_MARKET_BALANCE_PRECISION = exports.SPOT_MARKET_BALANCE_PRECISION_EXP = exports.SPOT_MARKET_WEIGHT_PRECISION = exports.SPOT_MARKET_RATE_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = exports.SPOT_MARKET_INTEREST_PRECISION = exports.SPOT_MARKET_INTEREST_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.MARK_PRICE_PRECISION_EXP = exports.FUNDING_PAYMENT_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.TWO = exports.ONE = exports.ZERO = void 0;
4
+ var web3_js_1 = require("@solana/web3.js");
5
+ var __1 = require("../");
5
6
  exports.ZERO = new __1.BN(0);
6
7
  exports.ONE = new __1.BN(1);
7
8
  exports.TWO = new __1.BN(2);
@@ -16,13 +17,17 @@ exports.MARK_PRICE_PRECISION_EXP = new __1.BN(10);
16
17
  exports.FUNDING_RATE_PRECISION_EXP = exports.MARK_PRICE_PRECISION_EXP.mul(exports.FUNDING_PAYMENT_PRECISION_EXP);
17
18
  exports.PEG_PRECISION_EXP = new __1.BN(3);
18
19
  exports.AMM_RESERVE_PRECISION_EXP = new __1.BN(13);
19
- exports.BANK_INTEREST_PRECISION = new __1.BN(1000000);
20
- exports.BANK_CUMULATIVE_INTEREST_PRECISION = new __1.BN(10000000000);
21
- exports.BANK_UTILIZATION_PRECISION = new __1.BN(1000000);
22
- exports.BANK_RATE_PRECISION = new __1.BN(1000000);
23
- exports.BANK_WEIGHT_PRECISION = new __1.BN(100);
24
- exports.BANK_BALANCE_PRECISION_EXP = new __1.BN(6);
25
- exports.BANK_BALANCE_PRECISION = new __1.BN(10).pow(exports.BANK_BALANCE_PRECISION_EXP);
20
+ exports.SPOT_MARKET_INTEREST_PRECISION_EXP = new __1.BN(6);
21
+ exports.SPOT_MARKET_INTEREST_PRECISION = new __1.BN(10).pow(exports.SPOT_MARKET_INTEREST_PRECISION_EXP);
22
+ exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = new __1.BN(10);
23
+ exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = new __1.BN(10).pow(exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP);
24
+ exports.SPOT_MARKET_UTILIZATION_PRECISION = new __1.BN(1000000);
25
+ exports.SPOT_MARKET_RATE_PRECISION = new __1.BN(1000000);
26
+ exports.SPOT_MARKET_WEIGHT_PRECISION = new __1.BN(10000);
27
+ exports.SPOT_MARKET_BALANCE_PRECISION_EXP = new __1.BN(6);
28
+ exports.SPOT_MARKET_BALANCE_PRECISION = new __1.BN(10).pow(exports.SPOT_MARKET_BALANCE_PRECISION_EXP);
29
+ exports.SPOT_MARKET_IMF_PRECISION_EXP = new __1.BN(6);
30
+ exports.SPOT_MARKET_IMF_PRECISION = new __1.BN(10).pow(exports.SPOT_MARKET_IMF_PRECISION_EXP);
26
31
  exports.LIQUIDATION_FEE_PRECISION = new __1.BN(1000000);
27
32
  exports.QUOTE_PRECISION = new __1.BN(10).pow(exports.QUOTE_PRECISION_EXP);
28
33
  exports.MARK_PRICE_PRECISION = new __1.BN(10).pow(exports.MARK_PRICE_PRECISION_EXP);
@@ -38,4 +43,6 @@ exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.m
38
43
  exports.MARGIN_PRECISION = exports.TEN_THOUSAND;
39
44
  exports.BID_ASK_SPREAD_PRECISION = new __1.BN(1000000);
40
45
  exports.ONE_YEAR = new __1.BN(31536000);
41
- exports.QUOTE_ASSET_BANK_INDEX = new __1.BN(0);
46
+ exports.QUOTE_SPOT_MARKET_INDEX = new __1.BN(0);
47
+ exports.LAMPORTS_PRECISION = new __1.BN(web3_js_1.LAMPORTS_PER_SOL);
48
+ exports.LAMPORTS_EXP = new __1.BN(Math.log10(web3_js_1.LAMPORTS_PER_SOL));
@@ -20,26 +20,28 @@ export const FUNDING_RATE_PRECISION_EXP = MARK_PRICE_PRECISION_EXP.mul(
20
20
  export const PEG_PRECISION_EXP = new BN(3);
21
21
  export const AMM_RESERVE_PRECISION_EXP = new BN(13);
22
22
 
23
- export const BANK_INTEREST_PRECISION_EXP = new BN(6);
24
- export const BANK_INTEREST_PRECISION = new BN(10).pow(
25
- BANK_INTEREST_PRECISION_EXP
23
+ export const SPOT_MARKET_INTEREST_PRECISION_EXP = new BN(6);
24
+ export const SPOT_MARKET_INTEREST_PRECISION = new BN(10).pow(
25
+ SPOT_MARKET_INTEREST_PRECISION_EXP
26
26
  );
27
27
 
28
- export const BANK_CUMULATIVE_INTEREST_PRECISION_EXP = new BN(10);
29
- export const BANK_CUMULATIVE_INTEREST_PRECISION = new BN(10).pow(
30
- BANK_CUMULATIVE_INTEREST_PRECISION_EXP
28
+ export const SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = new BN(10);
29
+ export const SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = new BN(10).pow(
30
+ SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP
31
31
  );
32
32
 
33
- export const BANK_UTILIZATION_PRECISION = new BN(1000000);
34
- export const BANK_RATE_PRECISION = new BN(1000000);
35
- export const BANK_WEIGHT_PRECISION = new BN(100);
36
- export const BANK_BALANCE_PRECISION_EXP = new BN(6);
37
- export const BANK_BALANCE_PRECISION = new BN(10).pow(
38
- BANK_BALANCE_PRECISION_EXP
33
+ export const SPOT_MARKET_UTILIZATION_PRECISION = new BN(1000000);
34
+ export const SPOT_MARKET_RATE_PRECISION = new BN(1000000);
35
+ export const SPOT_MARKET_WEIGHT_PRECISION = new BN(10000);
36
+ export const SPOT_MARKET_BALANCE_PRECISION_EXP = new BN(6);
37
+ export const SPOT_MARKET_BALANCE_PRECISION = new BN(10).pow(
38
+ SPOT_MARKET_BALANCE_PRECISION_EXP
39
39
  );
40
- export const BANK_IMF_PRECISION_EXP = new BN(6);
40
+ export const SPOT_MARKET_IMF_PRECISION_EXP = new BN(6);
41
41
 
42
- export const BANK_IMF_PRECISION = new BN(10).pow(BANK_IMF_PRECISION_EXP);
42
+ export const SPOT_MARKET_IMF_PRECISION = new BN(10).pow(
43
+ SPOT_MARKET_IMF_PRECISION_EXP
44
+ );
43
45
  export const LIQUIDATION_FEE_PRECISION = new BN(1000000);
44
46
 
45
47
  export const QUOTE_PRECISION = new BN(10).pow(QUOTE_PRECISION_EXP);
@@ -66,7 +68,7 @@ export const BID_ASK_SPREAD_PRECISION = new BN(1000000);
66
68
 
67
69
  export const ONE_YEAR = new BN(31536000);
68
70
 
69
- export const QUOTE_ASSET_BANK_INDEX = new BN(0);
71
+ export const QUOTE_SPOT_MARKET_INDEX = new BN(0);
70
72
 
71
73
  export const LAMPORTS_PRECISION = new BN(LAMPORTS_PER_SOL);
72
74
  export const LAMPORTS_EXP = new BN(Math.log10(LAMPORTS_PER_SOL));
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Markets = exports.MainnetMarkets = exports.DevnetMarkets = void 0;
4
- const __1 = require("../");
5
- const web3_js_1 = require("@solana/web3.js");
6
- exports.DevnetMarkets = [
2
+ exports.__esModule = true;
3
+ exports.PerpMarkets = exports.MainnetMarkets = exports.DevnetPerpMarkets = void 0;
4
+ var __1 = require("../");
5
+ var web3_js_1 = require("@solana/web3.js");
6
+ exports.DevnetPerpMarkets = [
7
7
  {
8
8
  fullName: 'Solana',
9
9
  category: ['L1', 'Infra'],
@@ -12,7 +12,7 @@ exports.DevnetMarkets = [
12
12
  marketIndex: new __1.BN(0),
13
13
  oracle: new web3_js_1.PublicKey('J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix'),
14
14
  launchTs: 1655751353000,
15
- oracleSource: __1.OracleSource.PYTH,
15
+ oracleSource: __1.OracleSource.PYTH
16
16
  },
17
17
  {
18
18
  fullName: 'Bitcoin',
@@ -22,7 +22,7 @@ exports.DevnetMarkets = [
22
22
  marketIndex: new __1.BN(1),
23
23
  oracle: new web3_js_1.PublicKey('HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J'),
24
24
  launchTs: 1655751353000,
25
- oracleSource: __1.OracleSource.PYTH,
25
+ oracleSource: __1.OracleSource.PYTH
26
26
  },
27
27
  {
28
28
  fullName: 'Ethereum',
@@ -32,11 +32,11 @@ exports.DevnetMarkets = [
32
32
  marketIndex: new __1.BN(2),
33
33
  oracle: new web3_js_1.PublicKey('EdVCmQ9FSPcVe5YySXDPCRmc8aDQLKJ9xvYBMZPie1Vw'),
34
34
  launchTs: 1637691133472,
35
- oracleSource: __1.OracleSource.PYTH,
35
+ oracleSource: __1.OracleSource.PYTH
36
36
  },
37
37
  ];
38
38
  exports.MainnetMarkets = [];
39
- exports.Markets = {
40
- devnet: exports.DevnetMarkets,
41
- 'mainnet-beta': [],
39
+ exports.PerpMarkets = {
40
+ devnet: exports.DevnetPerpMarkets,
41
+ 'mainnet-beta': []
42
42
  };
@@ -2,7 +2,7 @@ import { BN, OracleSource } from '../';
2
2
  import { DriftEnv } from '../';
3
3
  import { PublicKey } from '@solana/web3.js';
4
4
 
5
- export type MarketConfig = {
5
+ export type PerpMarketConfig = {
6
6
  fullName?: string;
7
7
  category?: string[];
8
8
  symbol: string;
@@ -13,7 +13,7 @@ export type MarketConfig = {
13
13
  oracleSource: OracleSource;
14
14
  };
15
15
 
16
- export const DevnetMarkets: MarketConfig[] = [
16
+ export const DevnetPerpMarkets: PerpMarketConfig[] = [
17
17
  {
18
18
  fullName: 'Solana',
19
19
  category: ['L1', 'Infra'],
@@ -46,9 +46,9 @@ export const DevnetMarkets: MarketConfig[] = [
46
46
  },
47
47
  ];
48
48
 
49
- export const MainnetMarkets: MarketConfig[] = [];
49
+ export const MainnetMarkets: PerpMarketConfig[] = [];
50
50
 
51
- export const Markets: { [key in DriftEnv]: MarketConfig[] } = {
52
- devnet: DevnetMarkets,
51
+ export const PerpMarkets: { [key in DriftEnv]: PerpMarketConfig[] } = {
52
+ devnet: DevnetPerpMarkets,
53
53
  'mainnet-beta': [],
54
54
  };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.SpotMarkets = exports.MainnetSpotMarkets = exports.DevnetSpotMarkets = exports.WRAPPED_SOL_MINT = void 0;
4
+ var web3_js_1 = require("@solana/web3.js");
5
+ var __1 = require("../");
6
+ var numericConstants_1 = require("./numericConstants");
7
+ exports.WRAPPED_SOL_MINT = new web3_js_1.PublicKey('So11111111111111111111111111111111111111112');
8
+ exports.DevnetSpotMarkets = [
9
+ {
10
+ symbol: 'USDC',
11
+ marketIndex: new __1.BN(0),
12
+ oracle: web3_js_1.PublicKey["default"],
13
+ oracleSource: __1.OracleSource.QUOTE_ASSET,
14
+ mint: new web3_js_1.PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
15
+ precision: numericConstants_1.SPOT_MARKET_BALANCE_PRECISION,
16
+ precisionExp: numericConstants_1.SPOT_MARKET_BALANCE_PRECISION_EXP
17
+ },
18
+ {
19
+ symbol: 'SOL',
20
+ marketIndex: new __1.BN(1),
21
+ oracle: new web3_js_1.PublicKey('J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix'),
22
+ oracleSource: __1.OracleSource.PYTH,
23
+ mint: new web3_js_1.PublicKey(exports.WRAPPED_SOL_MINT),
24
+ precision: numericConstants_1.LAMPORTS_PRECISION,
25
+ precisionExp: numericConstants_1.LAMPORTS_EXP
26
+ },
27
+ {
28
+ symbol: 'BTC',
29
+ marketIndex: new __1.BN(2),
30
+ oracle: new web3_js_1.PublicKey('HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J'),
31
+ oracleSource: __1.OracleSource.PYTH,
32
+ mint: new web3_js_1.PublicKey('3BZPwbcqB5kKScF3TEXxwNfx5ipV13kbRVDvfVp5c6fv'),
33
+ precision: numericConstants_1.SPOT_MARKET_BALANCE_PRECISION,
34
+ precisionExp: numericConstants_1.SPOT_MARKET_BALANCE_PRECISION_EXP
35
+ },
36
+ ];
37
+ exports.MainnetSpotMarkets = [
38
+ {
39
+ symbol: 'USDC',
40
+ marketIndex: new __1.BN(0),
41
+ oracle: web3_js_1.PublicKey["default"],
42
+ oracleSource: __1.OracleSource.QUOTE_ASSET,
43
+ mint: new web3_js_1.PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
44
+ precision: numericConstants_1.SPOT_MARKET_BALANCE_PRECISION,
45
+ precisionExp: numericConstants_1.SPOT_MARKET_BALANCE_PRECISION_EXP
46
+ },
47
+ ];
48
+ exports.SpotMarkets = {
49
+ devnet: exports.DevnetSpotMarkets,
50
+ 'mainnet-beta': exports.MainnetSpotMarkets
51
+ };
@@ -1,15 +1,15 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  import { BN, DriftEnv, OracleSource } from '../';
3
3
  import {
4
- BANK_BALANCE_PRECISION,
5
- BANK_BALANCE_PRECISION_EXP,
4
+ SPOT_MARKET_BALANCE_PRECISION,
5
+ SPOT_MARKET_BALANCE_PRECISION_EXP,
6
6
  LAMPORTS_EXP,
7
7
  LAMPORTS_PRECISION,
8
8
  } from './numericConstants';
9
9
 
10
- export type BankConfig = {
10
+ export type SpotMarketConfig = {
11
11
  symbol: string;
12
- bankIndex: BN;
12
+ marketIndex: BN;
13
13
  oracle: PublicKey;
14
14
  mint: PublicKey;
15
15
  oracleSource: OracleSource;
@@ -21,19 +21,19 @@ export const WRAPPED_SOL_MINT = new PublicKey(
21
21
  'So11111111111111111111111111111111111111112'
22
22
  );
23
23
 
24
- export const DevnetBanks: BankConfig[] = [
24
+ export const DevnetSpotMarkets: SpotMarketConfig[] = [
25
25
  {
26
26
  symbol: 'USDC',
27
- bankIndex: new BN(0),
27
+ marketIndex: new BN(0),
28
28
  oracle: PublicKey.default,
29
29
  oracleSource: OracleSource.QUOTE_ASSET,
30
30
  mint: new PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
31
- precision: BANK_BALANCE_PRECISION,
32
- precisionExp: BANK_BALANCE_PRECISION_EXP,
31
+ precision: SPOT_MARKET_BALANCE_PRECISION,
32
+ precisionExp: SPOT_MARKET_BALANCE_PRECISION_EXP,
33
33
  },
34
34
  {
35
35
  symbol: 'SOL',
36
- bankIndex: new BN(1),
36
+ marketIndex: new BN(1),
37
37
  oracle: new PublicKey('J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix'),
38
38
  oracleSource: OracleSource.PYTH,
39
39
  mint: new PublicKey(WRAPPED_SOL_MINT),
@@ -42,28 +42,28 @@ export const DevnetBanks: BankConfig[] = [
42
42
  },
43
43
  {
44
44
  symbol: 'BTC',
45
- bankIndex: new BN(2),
45
+ marketIndex: new BN(2),
46
46
  oracle: new PublicKey('HovQMDrbAgAYPCmHVSrezcSmkMtXSSUsLDFANExrZh2J'),
47
47
  oracleSource: OracleSource.PYTH,
48
48
  mint: new PublicKey('3BZPwbcqB5kKScF3TEXxwNfx5ipV13kbRVDvfVp5c6fv'),
49
- precision: BANK_BALANCE_PRECISION,
50
- precisionExp: BANK_BALANCE_PRECISION_EXP,
49
+ precision: SPOT_MARKET_BALANCE_PRECISION,
50
+ precisionExp: SPOT_MARKET_BALANCE_PRECISION_EXP,
51
51
  },
52
52
  ];
53
53
 
54
- export const MainnetBanks: BankConfig[] = [
54
+ export const MainnetSpotMarkets: SpotMarketConfig[] = [
55
55
  {
56
56
  symbol: 'USDC',
57
- bankIndex: new BN(0),
57
+ marketIndex: new BN(0),
58
58
  oracle: PublicKey.default,
59
59
  oracleSource: OracleSource.QUOTE_ASSET,
60
60
  mint: new PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
61
- precision: BANK_BALANCE_PRECISION,
62
- precisionExp: BANK_BALANCE_PRECISION_EXP,
61
+ precision: SPOT_MARKET_BALANCE_PRECISION,
62
+ precisionExp: SPOT_MARKET_BALANCE_PRECISION_EXP,
63
63
  },
64
64
  ];
65
65
 
66
- export const Banks: { [key in DriftEnv]: BankConfig[] } = {
67
- devnet: DevnetBanks,
68
- 'mainnet-beta': MainnetBanks,
66
+ export const SpotMarkets: { [key in DriftEnv]: SpotMarketConfig[] } = {
67
+ devnet: DevnetSpotMarkets,
68
+ 'mainnet-beta': MainnetSpotMarkets,
69
69
  };