flash-sdk 1.0.134 → 2.0.1

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.
@@ -5,6 +5,7 @@ import { CustodyAccount } from "./CustodyAccount";
5
5
  import { OraclePrice } from "./OraclePrice";
6
6
  import { PoolConfig } from "./PoolConfig";
7
7
  import { PoolAccount } from "./PoolAccount";
8
+ import { MarketAccount } from "./MarketAccount";
8
9
  export interface LpStats {
9
10
  lpTokenSupply: BN;
10
11
  decimals: number;
@@ -37,23 +38,16 @@ export interface CustodyStats {
37
38
  minCapacityAmountUi: string;
38
39
  maxCapacityAmountUi: string;
39
40
  }
40
- export interface PoolStats {
41
- totalFees: BN;
42
- totalVolume: BN;
43
- currentLongPositionsUsd: BN;
44
- currentShortPositionsUsd: BN;
45
- }
46
41
  export declare class PoolDataClient {
47
42
  poolConfig: PoolConfig;
48
43
  pool: PoolAccount;
49
44
  lpTokenInfo: Mint;
50
45
  custodies: CustodyAccount[];
46
+ markets: MarketAccount[];
51
47
  constructor(poolConfig: PoolConfig, pool: PoolAccount, lpTokenInfo: Mint, custodies: CustodyAccount[]);
52
48
  loadCustodies(custodies: CustodyAccount[]): void;
53
49
  loadPoolData(pool: PoolAccount): void;
54
50
  loadLpData(lpTokenInfo: Mint): void;
55
- getOiLongUI(): BN;
56
- getOiShortUI(): BN;
57
51
  getLpStats(pricesMap: Map<string, {
58
52
  price: OraclePrice;
59
53
  emaPrice: OraclePrice;
@@ -62,5 +56,4 @@ export declare class PoolDataClient {
62
56
  price: OraclePrice;
63
57
  emaPrice: OraclePrice;
64
58
  }>): CustodyStats[];
65
- getPoolStats(): PoolStats;
66
59
  }
@@ -24,20 +24,6 @@ var PoolDataClient = (function () {
24
24
  PoolDataClient.prototype.loadLpData = function (lpTokenInfo) {
25
25
  this.lpTokenInfo = lpTokenInfo;
26
26
  };
27
- PoolDataClient.prototype.getOiLongUI = function () {
28
- var totalAmount = new anchor_1.BN('0');
29
- this.custodies.forEach(function (i) {
30
- totalAmount = totalAmount.add(i.tradeStats.oiLong);
31
- });
32
- return totalAmount;
33
- };
34
- PoolDataClient.prototype.getOiShortUI = function () {
35
- var totalAmount = new anchor_1.BN('0');
36
- this.custodies.forEach(function (i) {
37
- totalAmount = totalAmount.add(i.tradeStats.oiShort);
38
- });
39
- return totalAmount;
40
- };
41
27
  PoolDataClient.prototype.getLpStats = function (pricesMap) {
42
28
  var stableCoinAmountBni = new bignumber_js_1.default(0);
43
29
  var totalPoolValueUsdBnUi = new bignumber_js_1.default(0);
@@ -78,7 +64,7 @@ var PoolDataClient = (function () {
78
64
  };
79
65
  PoolDataClient.prototype.getCustodyStats = function (pricesMap) {
80
66
  var totalPoolValueUsd = this.getLpStats(pricesMap).totalPoolValueUsd;
81
- var totalPoolValueUsdUi = totalPoolValueUsd.isZero() ? '0' : (0, utils_1.nativeToUiDecimals)(totalPoolValueUsd, constants_1.PRICE_DECIMALS, constants_1.PRICE_DECIMALS);
67
+ var totalPoolValueUsdUi = totalPoolValueUsd.isZero() ? '0' : (0, utils_1.nativeToUiDecimals)(totalPoolValueUsd, constants_1.USD_DECIMALS, constants_1.USD_DECIMALS);
82
68
  var custodyDetails = [];
83
69
  var _loop_2 = function (i) {
84
70
  var custodyConfig = this_2.poolConfig.custodies[i];
@@ -140,34 +126,6 @@ var PoolDataClient = (function () {
140
126
  }
141
127
  return custodyDetails;
142
128
  };
143
- PoolDataClient.prototype.getPoolStats = function () {
144
- var totalFees = new anchor_1.BN(0);
145
- var totalVolume = new anchor_1.BN(0);
146
- var currentLongPositionsUsd = new anchor_1.BN(0);
147
- var currentShortPositionsUsd = new anchor_1.BN(0);
148
- var _loop_3 = function (custody) {
149
- var custodyData = this_3.custodies.find(function (t) { return t.mint.toBase58() === custody.mintKey.toBase58(); });
150
- if (custodyData) {
151
- var custodyFeeTotal = Object.values(custodyData.collectedFees).reduce(function (a, b) { return a.add(b); }, new anchor_1.BN(0));
152
- totalFees = totalFees.add(custodyFeeTotal);
153
- var custodyVolume = Object.values(custodyData.volumeStats).reduce(function (a, b) { return a.add(b); }, new anchor_1.BN(0));
154
- totalVolume = totalVolume.add(custodyVolume);
155
- currentLongPositionsUsd = currentLongPositionsUsd.add(custodyData.tradeStats.oiLong);
156
- currentShortPositionsUsd = currentShortPositionsUsd.add(custodyData.tradeStats.oiShort);
157
- }
158
- };
159
- var this_3 = this;
160
- for (var _i = 0, _a = this.poolConfig.custodies; _i < _a.length; _i++) {
161
- var custody = _a[_i];
162
- _loop_3(custody);
163
- }
164
- return {
165
- totalFees: totalFees,
166
- totalVolume: totalVolume,
167
- currentLongPositionsUsd: currentLongPositionsUsd,
168
- currentShortPositionsUsd: currentShortPositionsUsd
169
- };
170
- };
171
129
  return PoolDataClient;
172
130
  }());
173
131
  exports.PoolDataClient = PoolDataClient;
@@ -1,27 +1,29 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { BN } from "@coral-xyz/anchor";
3
3
  import { PublicKey } from "@solana/web3.js";
4
- import { Position, Side } from "./types";
4
+ import { ContractOraclePrice, Position } from "./types";
5
5
  export declare class PositionAccount implements Position {
6
6
  publicKey: PublicKey;
7
7
  owner: PublicKey;
8
+ market: PublicKey;
8
9
  delegate: PublicKey;
9
- pool: PublicKey;
10
- custody: PublicKey;
11
- collateralCustody: PublicKey;
12
10
  openTime: BN;
13
11
  updateTime: BN;
14
- side: Side;
15
- price: BN;
12
+ entryPrice: ContractOraclePrice;
16
13
  sizeUsd: BN;
17
- borrowSizeUsd: BN;
18
- collateralUsd: BN;
19
- unsettledAmount: BN;
20
- unrealizedLossUsd: BN;
21
- cumulativeInterestSnapshot: BN;
14
+ sizeAmount: BN;
22
15
  lockedAmount: BN;
16
+ lockedUsd: BN;
23
17
  collateralAmount: BN;
24
- sizeAmount: BN;
18
+ collateralUsd: BN;
19
+ unsettledAmount: BN;
20
+ unsettledFeesUsd: BN;
21
+ cumulativeLockFeeSnapshot: BN;
22
+ takeProfitPrice: ContractOraclePrice;
23
+ stopLossPrice: ContractOraclePrice;
24
+ sizeDecimals: number;
25
+ lockedDecimals: number;
26
+ collateralDecimals: number;
25
27
  bump: number;
26
28
  constructor(publicKey: PublicKey, parseData: Position);
27
29
  static from(publicKey: PublicKey, parseData: Position): PositionAccount;
@@ -0,0 +1,20 @@
1
+ /// <reference types="bn.js" />
2
+ import { BN } from "@coral-xyz/anchor";
3
+ import { Trading, VoltageStats } from "./types";
4
+ import { PublicKey } from "@solana/web3.js";
5
+ export declare class TradingAccount implements Trading {
6
+ publicKey: PublicKey;
7
+ nftMint: PublicKey;
8
+ owner: PublicKey;
9
+ delegate: PublicKey;
10
+ isInitialized: boolean;
11
+ level: number;
12
+ bump: number;
13
+ voltagePoints: BN;
14
+ stats: VoltageStats;
15
+ snapshot: VoltageStats;
16
+ padding: BN[];
17
+ constructor(publicKey: PublicKey, parseData: Trading);
18
+ static from(publicKey: PublicKey, parseData: Trading): TradingAccount;
19
+ updatePoolData(parseData: Trading): void;
20
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TradingAccount = void 0;
4
+ var TradingAccount = (function () {
5
+ function TradingAccount(publicKey, parseData) {
6
+ this.publicKey = publicKey;
7
+ Object.assign(this, parseData);
8
+ }
9
+ TradingAccount.from = function (publicKey, parseData) {
10
+ return new TradingAccount(publicKey, parseData);
11
+ };
12
+ TradingAccount.prototype.updatePoolData = function (parseData) {
13
+ Object.assign(this, parseData);
14
+ };
15
+ return TradingAccount;
16
+ }());
17
+ exports.TradingAccount = TradingAccount;
@@ -49,14 +49,27 @@ exports.pythPriceServiceConnection = new price_service_client_1.PriceServiceConn
49
49
  priceFeedRequestConfig: {},
50
50
  });
51
51
  var getPythnetOraclePrices = function (program, poolConfig, backupOracleSecretKey) { return __awaiter(void 0, void 0, void 0, function () {
52
- var pythPriceIds, currentPrices, backupOracleAccount, caches_1, permissionlessPythCache, message, signature, preInstruction;
52
+ var custodyMintKeys, pythPriceIds, _loop_1, _i, custodyMintKeys_1, custodyMintKey, currentPrices, backupOracleAccount, caches_1, permissionlessPythCache, message, signature, preInstruction;
53
53
  return __generator(this, function (_a) {
54
54
  switch (_a.label) {
55
55
  case 0:
56
- pythPriceIds = poolConfig.tokens.map(function (f) { return f.pythPriceId; });
56
+ custodyMintKeys = poolConfig.custodies.map(function (f) { return f.mintKey; });
57
+ pythPriceIds = [];
58
+ _loop_1 = function (custodyMintKey) {
59
+ var t = poolConfig.tokens.find(function (f) { return f.mintKey.equals(custodyMintKey); });
60
+ if (t) {
61
+ pythPriceIds.push(t.pythPriceId);
62
+ }
63
+ };
64
+ for (_i = 0, custodyMintKeys_1 = custodyMintKeys; _i < custodyMintKeys_1.length; _i++) {
65
+ custodyMintKey = custodyMintKeys_1[_i];
66
+ _loop_1(custodyMintKey);
67
+ }
57
68
  return [4, exports.pythPriceServiceConnection.getLatestPriceFeeds(pythPriceIds)];
58
69
  case 1:
59
70
  currentPrices = _a.sent();
71
+ if (!currentPrices)
72
+ return [2];
60
73
  backupOracleAccount = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(backupOracleSecretKey));
61
74
  if (pythPriceIds.length === currentPrices.length) {
62
75
  caches_1 = currentPrices.map(function (price) {
@@ -66,7 +79,7 @@ var getPythnetOraclePrices = function (program, poolConfig, backupOracleSecretKe
66
79
  price: new bn_js_1.default(uncheckedPrice.price),
67
80
  expo: uncheckedPrice.expo,
68
81
  conf: new bn_js_1.default(uncheckedPrice.conf),
69
- ema: new bn_js_1.default(uncheckedEmaPrice.price),
82
+ emaPrice: new bn_js_1.default(uncheckedEmaPrice.price),
70
83
  publishTime: new bn_js_1.default(uncheckedPrice.publishTime)
71
84
  };
72
85
  });
@@ -1,9 +1,8 @@
1
1
  /// <reference types="bn.js" />
2
- import { Cluster } from '@solana/web3.js';
2
+ import { Cluster, PublicKey } from '@solana/web3.js';
3
3
  export declare const DEFAULT_CLUSTER: Cluster;
4
4
  export declare const DEFAULT_POOL: string;
5
5
  export declare const PERCENTAGE_DECIMALS = 4;
6
- export declare const PRICE_DECIMALS = 6;
7
6
  export declare const USD_DECIMALS = 6;
8
7
  export declare const BPS_DECIMALS = 4;
9
8
  export declare const BPS_POWER: number;
@@ -12,3 +11,4 @@ export declare const RATE_DECIMALS = 9;
12
11
  export declare const RATE_POWER: number;
13
12
  export declare const BN_ZERO: import("bn.js");
14
13
  export declare const BN_ONE: import("bn.js");
14
+ export declare const METAPLEX_PROGRAM_ID: PublicKey;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BN_ONE = exports.BN_ZERO = exports.RATE_POWER = exports.RATE_DECIMALS = exports.LP_DECIMALS = exports.BPS_POWER = exports.BPS_DECIMALS = exports.USD_DECIMALS = exports.PRICE_DECIMALS = exports.PERCENTAGE_DECIMALS = exports.DEFAULT_POOL = exports.DEFAULT_CLUSTER = void 0;
3
+ exports.METAPLEX_PROGRAM_ID = exports.BN_ONE = exports.BN_ZERO = exports.RATE_POWER = exports.RATE_DECIMALS = exports.LP_DECIMALS = exports.BPS_POWER = exports.BPS_DECIMALS = exports.USD_DECIMALS = exports.PERCENTAGE_DECIMALS = exports.DEFAULT_POOL = exports.DEFAULT_CLUSTER = void 0;
4
+ var web3_js_1 = require("@solana/web3.js");
4
5
  var bn_js_1 = require("bn.js");
5
6
  exports.DEFAULT_CLUSTER = 'devnet';
6
7
  exports.DEFAULT_POOL = 'pool1';
7
8
  exports.PERCENTAGE_DECIMALS = 4;
8
- exports.PRICE_DECIMALS = 6;
9
9
  exports.USD_DECIMALS = 6;
10
10
  exports.BPS_DECIMALS = 4;
11
11
  exports.BPS_POWER = Math.pow(10, (exports.BPS_DECIMALS));
@@ -14,3 +14,4 @@ exports.RATE_DECIMALS = 9;
14
14
  exports.RATE_POWER = Math.pow(10, (exports.RATE_DECIMALS));
15
15
  exports.BN_ZERO = new bn_js_1.BN(0);
16
16
  exports.BN_ONE = new bn_js_1.BN(1);
17
+ exports.METAPLEX_PROGRAM_ID = new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");