@sonarwatch/portfolio-plugins 0.12.37 → 0.12.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1847 -1839
- package/README.md +3 -3
- package/package.json +1 -1
- package/src/plugins/balancer/helpers/pools.js +21 -21
- package/src/plugins/drift/constants.d.ts +1 -0
- package/src/plugins/drift/constants.js +2 -1
- package/src/plugins/drift/constants.js.map +1 -1
- package/src/plugins/drift/depositsFetcher.js +63 -1
- package/src/plugins/drift/depositsFetcher.js.map +1 -1
- package/src/plugins/drift/filters.d.ts +1 -0
- package/src/plugins/drift/filters.js +4 -1
- package/src/plugins/drift/filters.js.map +1 -1
- package/src/plugins/drift/index.js +2 -1
- package/src/plugins/drift/index.js.map +1 -1
- package/src/plugins/drift/perpHelpers/amm.d.ts +74 -0
- package/src/plugins/drift/perpHelpers/amm.js +567 -0
- package/src/plugins/drift/perpHelpers/amm.js.map +1 -0
- package/src/plugins/drift/perpHelpers/assert.d.ts +1 -0
- package/src/plugins/drift/perpHelpers/assert.js +10 -0
- package/src/plugins/drift/perpHelpers/assert.js.map +1 -0
- package/src/plugins/drift/perpHelpers/constants.d.ts +27 -0
- package/src/plugins/drift/perpHelpers/constants.js +35 -0
- package/src/plugins/drift/perpHelpers/constants.js.map +1 -0
- package/src/plugins/drift/perpHelpers/convert.d.ts +0 -0
- package/src/plugins/drift/perpHelpers/convert.js +2 -0
- package/src/plugins/drift/perpHelpers/convert.js.map +1 -0
- package/src/plugins/drift/perpHelpers/getOraclePrice.d.ts +4 -0
- package/src/plugins/drift/perpHelpers/getOraclePrice.js +61 -0
- package/src/plugins/drift/perpHelpers/getOraclePrice.js.map +1 -0
- package/src/plugins/drift/perpHelpers/getPerpMarket.d.ts +4 -0
- package/src/plugins/drift/perpHelpers/getPerpMarket.js +33 -0
- package/src/plugins/drift/perpHelpers/getPerpMarket.js.map +1 -0
- package/src/plugins/drift/perpHelpers/margin.d.ts +10 -0
- package/src/plugins/drift/perpHelpers/margin.js +82 -0
- package/src/plugins/drift/perpHelpers/margin.js.map +1 -0
- package/src/plugins/drift/perpHelpers/math.d.ts +4 -0
- package/src/plugins/drift/perpHelpers/math.js +29 -0
- package/src/plugins/drift/perpHelpers/math.js.map +1 -0
- package/src/plugins/drift/perpHelpers/oracle.d.ts +6 -0
- package/src/plugins/drift/perpHelpers/oracle.js +54 -0
- package/src/plugins/drift/perpHelpers/oracle.js.map +1 -0
- package/src/plugins/drift/perpHelpers/orders.d.ts +2 -0
- package/src/plugins/drift/perpHelpers/orders.js +9 -0
- package/src/plugins/drift/perpHelpers/orders.js.map +1 -0
- package/src/plugins/drift/perpHelpers/position.d.ts +44 -0
- package/src/plugins/drift/perpHelpers/position.js +184 -0
- package/src/plugins/drift/perpHelpers/position.js.map +1 -0
- package/src/plugins/drift/perpHelpers/prelaunchOracle.d.ts +3 -0
- package/src/plugins/drift/perpHelpers/prelaunchOracle.js +20 -0
- package/src/plugins/drift/perpHelpers/prelaunchOracle.js.map +1 -0
- package/src/plugins/drift/perpHelpers/pyth.d.ts +5 -0
- package/src/plugins/drift/perpHelpers/pyth.js +42 -0
- package/src/plugins/drift/perpHelpers/pyth.js.map +1 -0
- package/src/plugins/drift/perpHelpers/repeg.d.ts +14 -0
- package/src/plugins/drift/perpHelpers/repeg.js +162 -0
- package/src/plugins/drift/perpHelpers/repeg.js.map +1 -0
- package/src/plugins/drift/perpHelpers/switchboard.d.ts +3 -0
- package/src/plugins/drift/perpHelpers/switchboard.js +31 -0
- package/src/plugins/drift/perpHelpers/switchboard.js.map +1 -0
- package/src/plugins/drift/perpHelpers/types.d.ts +28 -0
- package/src/plugins/drift/perpHelpers/types.js +19 -0
- package/src/plugins/drift/perpHelpers/types.js.map +1 -0
- package/src/plugins/drift/prepMarketsJob.d.ts +3 -0
- package/src/plugins/drift/prepMarketsJob.js +38 -0
- package/src/plugins/drift/prepMarketsJob.js.map +1 -0
- package/src/plugins/drift/struct.d.ts +82 -76
- package/src/plugins/drift/struct.js +79 -74
- package/src/plugins/drift/struct.js.map +1 -1
- package/src/plugins/drift/types.d.ts +1 -0
- package/src/plugins/jupiter/exchange/perpetualFetcher.js +3 -6
- package/src/plugins/jupiter/exchange/perpetualFetcher.js.map +1 -1
- package/src/plugins/jupiter/exchange/valueAverageFetcher.js.map +1 -1
- package/src/plugins/jupiter/helpers.d.ts +2 -2
- package/src/plugins/jupiter/helpers.js.map +1 -1
- package/src/plugins/sushiswap/helpers.js +24 -24
- package/src/plugins/uniswap-v2/helpers.js +22 -22
- package/src/plugins/zeta/airdropFetcher.js +14 -14
- package/src/utils/sei/constants.js +8 -8
- package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
package/README.md
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
# @sonarwatch/portfolio-plugins
|
2
|
-
|
3
|
-
This library is @sonarwatch/portfolio-plugins
|
1
|
+
# @sonarwatch/portfolio-plugins
|
2
|
+
|
3
|
+
This library is @sonarwatch/portfolio-plugins
|
package/package.json
CHANGED
@@ -36,27 +36,27 @@ exports.getBalancerPoolsV2 = void 0;
|
|
36
36
|
const graphql_request_1 = __importStar(require("graphql-request"));
|
37
37
|
function getBalancerPoolsV2(url) {
|
38
38
|
return __awaiter(this, void 0, void 0, function* () {
|
39
|
-
const query = (0, graphql_request_1.gql) `
|
40
|
-
query pools {
|
41
|
-
pools(
|
42
|
-
first: 1000
|
43
|
-
orderBy: totalLiquidity
|
44
|
-
orderDirection: desc
|
45
|
-
where: { totalLiquidity_gt: "500" }
|
46
|
-
) {
|
47
|
-
id
|
48
|
-
address
|
49
|
-
symbol
|
50
|
-
totalLiquidity
|
51
|
-
totalShares
|
52
|
-
tokens {
|
53
|
-
balance
|
54
|
-
decimals
|
55
|
-
symbol
|
56
|
-
address
|
57
|
-
}
|
58
|
-
}
|
59
|
-
}
|
39
|
+
const query = (0, graphql_request_1.gql) `
|
40
|
+
query pools {
|
41
|
+
pools(
|
42
|
+
first: 1000
|
43
|
+
orderBy: totalLiquidity
|
44
|
+
orderDirection: desc
|
45
|
+
where: { totalLiquidity_gt: "500" }
|
46
|
+
) {
|
47
|
+
id
|
48
|
+
address
|
49
|
+
symbol
|
50
|
+
totalLiquidity
|
51
|
+
totalShares
|
52
|
+
tokens {
|
53
|
+
balance
|
54
|
+
decimals
|
55
|
+
symbol
|
56
|
+
address
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
60
|
`;
|
61
61
|
const res = yield (0, graphql_request_1.default)(url, query);
|
62
62
|
const pools = res.pools;
|
@@ -8,6 +8,7 @@ export declare const platform: Platform;
|
|
8
8
|
export declare const prefixSpotMarkets = "drift-spotMarkets";
|
9
9
|
export declare const driftProgram: PublicKey;
|
10
10
|
export declare const preMarketPriceKey = "premarketPrice";
|
11
|
+
export declare const perpMarketsIndexesKey = "perp-markets-indexes";
|
11
12
|
export declare const airdropUrl = "https://airdrop.drift.trade/eligibility/";
|
12
13
|
export declare const distributorPid = "E7HtfkEMhmn9uwL7EFNydcXBWy5WCYN1vFmKKjipEH1x";
|
13
14
|
export declare const driftDecimals = 6;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.driftMint = exports.driftDecimals = exports.distributorPid = exports.airdropUrl = exports.preMarketPriceKey = exports.driftProgram = exports.prefixSpotMarkets = exports.platform = exports.platformWebsite = exports.platformImage = exports.platformName = exports.platformId = void 0;
|
3
|
+
exports.driftMint = exports.driftDecimals = exports.distributorPid = exports.airdropUrl = exports.perpMarketsIndexesKey = exports.preMarketPriceKey = exports.driftProgram = exports.prefixSpotMarkets = exports.platform = exports.platformWebsite = exports.platformImage = exports.platformName = exports.platformId = void 0;
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
5
5
|
exports.platformId = 'drift';
|
6
6
|
exports.platformName = 'Drift';
|
@@ -16,6 +16,7 @@ exports.platform = {
|
|
16
16
|
exports.prefixSpotMarkets = `${exports.platformId}-spotMarkets`;
|
17
17
|
exports.driftProgram = new web3_js_1.PublicKey('dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH');
|
18
18
|
exports.preMarketPriceKey = 'premarketPrice';
|
19
|
+
exports.perpMarketsIndexesKey = 'perp-markets-indexes';
|
19
20
|
exports.airdropUrl = 'https://airdrop.drift.trade/eligibility/';
|
20
21
|
exports.distributorPid = 'E7HtfkEMhmn9uwL7EFNydcXBWy5WCYN1vFmKKjipEH1x';
|
21
22
|
exports.driftDecimals = 6;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,OAAO,CAAC;AACrB,QAAA,YAAY,GAAG,OAAO,CAAC;AACvB,QAAA,aAAa,GAAG,6CAA6C,CAAC;AAC9D,QAAA,eAAe,GAAG,0BAA0B,CAAC;AAC7C,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,oBAAY;IAClB,KAAK,EAAE,qBAAa;IACpB,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,uBAAe;CACzB,CAAC;AACW,QAAA,iBAAiB,GAAG,GAAG,kBAAU,cAAc,CAAC;AAEhD,QAAA,YAAY,GAAG,IAAI,mBAAS,CACvC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,OAAO,CAAC;AACrB,QAAA,YAAY,GAAG,OAAO,CAAC;AACvB,QAAA,aAAa,GAAG,6CAA6C,CAAC;AAC9D,QAAA,eAAe,GAAG,0BAA0B,CAAC;AAC7C,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,oBAAY;IAClB,KAAK,EAAE,qBAAa;IACpB,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,uBAAe;CACzB,CAAC;AACW,QAAA,iBAAiB,GAAG,GAAG,kBAAU,cAAc,CAAC;AAEhD,QAAA,YAAY,GAAG,IAAI,mBAAS,CACvC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AACrC,QAAA,qBAAqB,GAAG,sBAAsB,CAAC;AAE/C,QAAA,UAAU,GAAG,0CAA0C,CAAC;AACxD,QAAA,cAAc,GAAG,8CAA8C,CAAC;AAChE,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,SAAS,GAAG,8CAA8C,CAAC"}
|
@@ -21,6 +21,11 @@ const helpers_1 = require("./helpers");
|
|
21
21
|
const solana_1 = require("../../utils/solana");
|
22
22
|
const clients_1 = require("../../utils/clients");
|
23
23
|
const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
|
24
|
+
const position_1 = require("./perpHelpers/position");
|
25
|
+
const constants_2 = require("./perpHelpers/constants");
|
26
|
+
const types_1 = require("./perpHelpers/types");
|
27
|
+
const getOraclePrice_1 = require("./perpHelpers/getOraclePrice");
|
28
|
+
const getPerpMarket_1 = require("./perpHelpers/getPerpMarket");
|
24
29
|
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
25
30
|
const client = (0, clients_1.getClientSolana)();
|
26
31
|
const spotMarketsItems = yield cache.getAllItems({
|
@@ -82,6 +87,14 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
82
87
|
} while (parsedAccount[parsedAccount.length]);
|
83
88
|
if (!userAccounts)
|
84
89
|
return elements;
|
90
|
+
const perpMarketIndexesArr = yield cache.getItem(constants_1.perpMarketsIndexesKey, {
|
91
|
+
prefix: constants_1.platformId,
|
92
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
93
|
+
});
|
94
|
+
const perpMarketAddressByIndex = new Map();
|
95
|
+
perpMarketIndexesArr === null || perpMarketIndexesArr === void 0 ? void 0 : perpMarketIndexesArr.forEach(([index, address]) => {
|
96
|
+
perpMarketAddressByIndex.set(index, address);
|
97
|
+
});
|
85
98
|
// One user can have multiple sub-account
|
86
99
|
for (const userAccount of userAccounts) {
|
87
100
|
if (!userAccount)
|
@@ -92,6 +105,46 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
92
105
|
const suppliedYields = [];
|
93
106
|
const rewardAssets = [];
|
94
107
|
const marketIndexRef = 0;
|
108
|
+
const unsettledAssets = [];
|
109
|
+
for (const perpPosition of userAccount.perpPositions) {
|
110
|
+
if (perpPosition.baseAssetAmount.isZero())
|
111
|
+
continue;
|
112
|
+
const perpMarketAddress = perpMarketAddressByIndex.get(perpPosition.marketIndex);
|
113
|
+
if (!perpMarketAddress)
|
114
|
+
continue;
|
115
|
+
const market = yield (0, getPerpMarket_1.getPerpMarket)(perpMarketAddress, client);
|
116
|
+
if (!market)
|
117
|
+
continue;
|
118
|
+
const oraclePriceData = yield (0, getOraclePrice_1.getOraclePrice)(market.amm.oracle.toString(), market.amm.oracleSource, client);
|
119
|
+
const pnl = new bignumber_js_1.default((0, position_1.calculatePositionPNL)(market, perpPosition, oraclePriceData).toString())
|
120
|
+
.div(constants_2.PRICE_PRECISION_BIG_NUMBER)
|
121
|
+
.toNumber();
|
122
|
+
const side = (0, position_1.positionCurrentDirection)(perpPosition) === types_1.PositionDirection.LONG
|
123
|
+
? portfolio_core_1.LeverageSide.long
|
124
|
+
: portfolio_core_1.LeverageSide.short;
|
125
|
+
// console.log('market:', market.pubkey);
|
126
|
+
// // console.log('entryPrice', calculateEntryPrice(perpPosition));
|
127
|
+
// console.log('perpPosition:', perpPosition.baseAssetAmount.toString());
|
128
|
+
// console.log('pnl:', pnl.toString());
|
129
|
+
// console.log('baseAssetValue:', baseAssetValue.toString());
|
130
|
+
// console.log(
|
131
|
+
// 'quoteEntryAmount:',
|
132
|
+
// perpPosition.quoteEntryAmount.toString()
|
133
|
+
// );
|
134
|
+
// console.log('-----');
|
135
|
+
const asset = {
|
136
|
+
type: portfolio_core_1.PortfolioAssetType.generic,
|
137
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
138
|
+
value: pnl,
|
139
|
+
data: {
|
140
|
+
name: (0, solana_1.u8ArrayToString)(market.name),
|
141
|
+
},
|
142
|
+
attributes: {
|
143
|
+
tags: [side],
|
144
|
+
},
|
145
|
+
};
|
146
|
+
unsettledAssets.push(asset);
|
147
|
+
}
|
95
148
|
// Each account has up to 8 SpotPositions
|
96
149
|
for (const spotPosition of userAccount.spotPositions) {
|
97
150
|
if (spotPosition.scaledBalance.isZero())
|
@@ -141,7 +194,12 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
141
194
|
}
|
142
195
|
if (suppliedAssets.length === 0 && borrowedAssets.length === 0)
|
143
196
|
continue;
|
144
|
-
const { borrowedValue, suppliedValue, value, healthRatio, rewardValue } = (0, portfolio_core_1.getElementLendingValues)({
|
197
|
+
const { borrowedValue, suppliedValue, value, healthRatio, rewardValue, unsettledValue, } = (0, portfolio_core_1.getElementLendingValues)({
|
198
|
+
suppliedAssets,
|
199
|
+
borrowedAssets,
|
200
|
+
rewardAssets,
|
201
|
+
unsettledAssets,
|
202
|
+
});
|
145
203
|
elements.push({
|
146
204
|
type: portfolio_core_1.PortfolioElementType.borrowlend,
|
147
205
|
networkId: portfolio_core_1.NetworkId.solana,
|
@@ -158,6 +216,10 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
158
216
|
rewardAssets,
|
159
217
|
rewardValue,
|
160
218
|
healthRatio,
|
219
|
+
unsettled: {
|
220
|
+
assets: unsettledAssets,
|
221
|
+
value: unsettledValue,
|
222
|
+
},
|
161
223
|
value,
|
162
224
|
},
|
163
225
|
name: (0, solana_1.u8ArrayToString)(userAccount.name),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"depositsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/depositsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+
|
1
|
+
{"version":3,"file":"depositsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/depositsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAaoC;AACpC,gEAAqC;AACrC,6CAA4C;AAG5C,2CAKqB;AACrB,qCAKkB;AAClB,uCAMmB;AAEnB,+CAI4B;AAC5B,iDAAsD;AACtD,qGAA6E;AAC7E,qDAGgC;AAChC,uDAAqE;AACrE,+CAAwD;AACxD,iEAA8D;AAC9D,+DAA4D;AAE5D,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,WAAW,CAAqB;QACnE,MAAM,EAAE,6BAAiB;QACzB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,iBAAiB,GAAoC,IAAI,GAAG,EAAE,CAAC;IACrE,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,mCAAmC,GAAgB,EAAE,CAAC;IAC5D,KAAK,MAAM,cAAc,IAAI,gBAAgB,EAAE,CAAC;QAC9C,mCAAmC,CAAC,cAAc,CAAC,WAAW,CAAC;YAC7D,IAAA,mDAAyC,EACvC,wBAAY,EACZ,IAAI,mBAAS,CAAC,KAAK,CAAC,EACpB,cAAc,CAAC,WAAW,CAC3B,CAAC;QACJ,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAClE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,cAAc,CAC7C,WAAW,EACX,0BAAS,CAAC,MAAM,CACjB,CAAC;IACF,MAAM,cAAc,GAA4B,IAAI,GAAG,EAAE,CAAC;IAC1D,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7E,MAAM,iBAAiB,GAAG,MAAM,IAAA,sCAA6B,EAC3D,MAAM,EACN,iCAAwB,EACxB,mCAAmC,CACpC,CAAC;IAEF,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;;YACvC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO;YACxD,MAAM,IAAI,GAAG,MAAA,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,MAAM,CAAC,IAAI,CACT,IAAA,gCAAsB,EACpB,IAAI,EACJ,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,EACjE,0BAAS,CAAC,MAAM,EAChB,UAAU,CACX,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,0BAAS,CAAC,MAAM;gBAC3B,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAV,sBAAU;gBACV,IAAI,EAAE,qCAAoB,CAAC,QAAQ;gBACnC,KAAK,EAAE,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI,EAAE;oBACJ,MAAM;iBACP;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,MAAM,YAAY,GAA0C,EAAE,CAAC;IAC/D,IAAI,aAAa,CAAC;IAClB,GAAG,CAAC;QACF,MAAM,cAAc,GAAG,IAAA,mCAAyB,EAC9C,wBAAY,EACZ,IAAI,mBAAS,CAAC,KAAK,CAAC,EACpB,EAAE,EACF,EAAE,GAAG,EAAE,CACR,CAAC;QACF,aAAa,GAAG,MAAM,IAAA,sCAA6B,EACjD,MAAM,EACN,0BAAiB,EACjB,cAAc,CACf,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACpC,EAAE,IAAI,EAAE,CAAC;IACX,CAAC,QAAQ,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;IAE9C,IAAI,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,oBAAoB,GAAG,MAAM,KAAK,CAAC,OAAO,CAC9C,iCAAqB,EACrB;QACE,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CACF,CAAC;IACF,MAAM,wBAAwB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAChE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;QACjD,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAc,EAAE,CAAC;QACrC,MAAM,cAAc,GAAqB,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAc,EAAE,CAAC;QACrC,MAAM,YAAY,GAAqB,EAAE,CAAC;QAE1C,MAAM,cAAc,GAAG,CAAC,CAAC;QAEzB,MAAM,eAAe,GAA4B,EAAE,CAAC;QACpD,KAAK,MAAM,YAAY,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YACrD,IAAI,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE;gBAAE,SAAS;YACpD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,GAAG,CACpD,YAAY,CAAC,WAAW,CACzB,CAAC;YACF,IAAI,CAAC,iBAAiB;gBAAE,SAAS;YAEjC,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAa,EAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,MAAM,eAAe,GAAG,MAAM,IAAA,+BAAc,EAC1C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAC5B,MAAM,CAAC,GAAG,CAAC,YAAY,EACvB,MAAM,CACP,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,sBAAS,CACvB,IAAA,+BAAoB,EAAC,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CACvE;iBACE,GAAG,CAAC,sCAA0B,CAAC;iBAC/B,QAAQ,EAAE,CAAC;YAEd,MAAM,IAAI,GACR,IAAA,mCAAwB,EAAC,YAAY,CAAC,KAAK,yBAAiB,CAAC,IAAI;gBAC/D,CAAC,CAAC,6BAAY,CAAC,IAAI;gBACnB,CAAC,CAAC,6BAAY,CAAC,KAAK,CAAC;YAEzB,yCAAyC;YACzC,mEAAmE;YACnE,yEAAyE;YACzE,uCAAuC;YACvC,6DAA6D;YAC7D,eAAe;YACf,yBAAyB;YACzB,6CAA6C;YAC7C,KAAK;YACL,wBAAwB;YACxB,MAAM,KAAK,GAA0B;gBACnC,IAAI,EAAE,mCAAkB,CAAC,OAAO;gBAChC,SAAS,EAAE,0BAAS,CAAC,MAAM;gBAC3B,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC;iBACnC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,CAAC,IAAI,CAAC;iBACb;aACF,CAAC;YACF,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,YAAY,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YACrD,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE;gBAAE,SAAS;YAClD,MAAM,YAAY,GAChB,cAAc,KAAK,SAAS;gBAC5B,YAAY,CAAC,WAAW,KAAK,cAAc,CAAC;YAE9C,MAAM,aAAa,GACjB,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,CAAC,CAAC;YACvD,IACE,IAAA,iCAAuB,EAAC,YAAY,CAAC;gBACrC,CAAC,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,EACjC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,IAAI;gBAAE,SAAS;YAEjD,IAAI,WAAW,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YACnC,IACE,UAAU,CAAC,WAAW,KAAK,CAAC;gBAC5B,YAAY,CAAC,WAAW,KAAK,wBAAe,CAAC,OAAO,EACpD,CAAC;gBACD,WAAW,GAAG,IAAA,wBAAc,EAC1B,YAAY,CAAC,aAAa,EAC1B,UAAU,EACV,YAAY,CAAC,WAAW,CACzB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAA,8BAAoB,EAChC,IAAA,wBAAc,EACZ,YAAY,CAAC,aAAa,EAC1B,UAAU,EACV,YAAY,CAAC,WAAW,CACzB,EACD,YAAY,CAAC,WAAW,CACzB,CAAC;YACJ,CAAC;YAED,IAAI,YAAY,CAAC,WAAW,KAAK,wBAAe,CAAC,OAAO,EAAE,CAAC;gBACzD,cAAc,CAAC,IAAI,CACjB,IAAA,gCAAsB,EACpB,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAC1B,WAAW,CAAC,GAAG,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,EACrD,0BAAS,CAAC,MAAM,EAChB,UAAU,CACX,CACF,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC;oBAClB;wBACE,GAAG,EAAE,UAAU,CAAC,UAAU;wBAC1B,GAAG,EAAE,IAAA,yBAAQ,EAAC,UAAU,CAAC,UAAU,CAAC;qBACrC;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,YAAY,CAAC,WAAW,KAAK,wBAAe,CAAC,MAAM,EAAE,CAAC;gBAC/D,cAAc,CAAC,IAAI,CACjB,IAAA,gCAAsB,EACpB,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAC1B,WAAW;qBACR,GAAG,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC;qBAC9B,GAAG,EAAE;qBACL,QAAQ,EAAE,EACb,0BAAS,CAAC,MAAM,EAChB,UAAU,CACX,CACF,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC;oBAClB;wBACE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS;wBAC1B,GAAG,EAAE,CAAC,IAAA,yBAAQ,EAAC,UAAU,CAAC,SAAS,CAAC;qBACrC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEzE,MAAM,EACJ,aAAa,EACb,aAAa,EACb,KAAK,EACL,WAAW,EACX,WAAW,EACX,cAAc,GACf,GAAG,IAAA,wCAAuB,EAAC;YAC1B,cAAc;YACd,cAAc;YACd,YAAY;YACZ,eAAe;SAChB,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,qCAAoB,CAAC,UAAU;YACrC,SAAS,EAAE,0BAAS,CAAC,MAAM;YAC3B,UAAU,EAAV,sBAAU;YACV,KAAK,EAAE,SAAS;YAChB,KAAK;YACL,IAAI,EAAE;gBACJ,cAAc;gBACd,aAAa;gBACb,cAAc;gBACd,cAAc;gBACd,aAAa;gBACb,cAAc;gBACd,YAAY;gBACZ,WAAW;gBACX,WAAW;gBACX,SAAS,EAAE;oBACT,MAAM,EAAE,eAAe;oBACvB,KAAK,EAAE,cAAc;iBACtB;gBACD,KAAK;aACN;YACD,IAAI,EAAE,IAAA,wBAAe,EAAC,WAAW,CAAC,IAAI,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
@@ -1,3 +1,4 @@
|
|
1
1
|
import { GetProgramAccountsFilter } from '@solana/web3.js';
|
2
2
|
export declare const accountsFilter: (owner: string) => GetProgramAccountsFilter[];
|
3
3
|
export declare const marketFilter: GetProgramAccountsFilter[];
|
4
|
+
export declare const perpMarketsFilters: GetProgramAccountsFilter[];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.marketFilter = exports.accountsFilter = void 0;
|
3
|
+
exports.perpMarketsFilters = exports.marketFilter = exports.accountsFilter = void 0;
|
4
4
|
const struct_1 = require("./struct");
|
5
5
|
const accountsFilter = (owner) => [
|
6
6
|
{
|
@@ -20,4 +20,7 @@ exports.accountsFilter = accountsFilter;
|
|
20
20
|
exports.marketFilter = [
|
21
21
|
{ dataSize: struct_1.spotMarketStruct.byteSize },
|
22
22
|
];
|
23
|
+
exports.perpMarketsFilters = [
|
24
|
+
{ dataSize: struct_1.perpMarketStruct.byteSize },
|
25
|
+
];
|
23
26
|
//# sourceMappingURL=filters.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/filters.ts"],"names":[],"mappings":";;;AACA,
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/filters.ts"],"names":[],"mappings":";;;AACA,qCAA8D;AAEvD,MAAM,cAAc,GAAG,CAAC,KAAa,EAA8B,EAAE,CAAC;IAC3E;QACE,MAAM,EAAE;YACN,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,aAAa;SACrB;KACF;IACD;QACE,MAAM,EAAE;YACN,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,KAAK;SACb;KACF;CACF,CAAC;AAbW,QAAA,cAAc,kBAazB;AAEW,QAAA,YAAY,GAA+B;IACtD,EAAE,QAAQ,EAAE,yBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC;AAEW,QAAA,kBAAkB,GAA+B;IAC5D,EAAE,QAAQ,EAAE,yBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC"}
|
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.airdropFetcher = exports.fetchers = exports.jobs = exports.platforms = void 0;
|
7
7
|
const constants_1 = require("./constants");
|
8
8
|
const spotMarketsJob_1 = __importDefault(require("./spotMarketsJob"));
|
9
|
+
const prepMarketsJob_1 = __importDefault(require("./prepMarketsJob"));
|
9
10
|
const depositsFetcher_1 = __importDefault(require("./depositsFetcher"));
|
10
11
|
const premarketJob_1 = __importDefault(require("./premarketJob"));
|
11
12
|
const airdropFetcher_1 = __importDefault(require("./airdropFetcher"));
|
12
13
|
exports.platforms = [constants_1.platform];
|
13
|
-
exports.jobs = [spotMarketsJob_1.default, premarketJob_1.default];
|
14
|
+
exports.jobs = [spotMarketsJob_1.default, premarketJob_1.default, prepMarketsJob_1.default];
|
14
15
|
exports.fetchers = [depositsFetcher_1.default, airdropFetcher_1.default];
|
15
16
|
var helpersAirdrop_1 = require("./helpersAirdrop");
|
16
17
|
Object.defineProperty(exports, "airdropFetcher", { enumerable: true, get: function () { return helpersAirdrop_1.airdropFetcher; } });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,sEAA8C;AAC9C,wEAAgD;AAChD,kEAA0C;AAC1C,sEAA8C;AAEjC,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,wBAAc,EAAE,sBAAY,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,sEAA8C;AAC9C,sEAA8C;AAC9C,wEAAgD;AAChD,kEAA0C;AAC1C,sEAA8C;AAEjC,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,wBAAc,EAAE,sBAAY,EAAE,wBAAc,CAAC,CAAC;AAC7D,QAAA,QAAQ,GAAc,CAAC,yBAAe,EAAE,wBAAc,CAAC,CAAC;AACrE,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import BN from 'bn.js';
|
2
|
+
import { AMM, PerpMarket } from '../struct';
|
3
|
+
import { AssetType, OraclePriceData, PositionDirection, SwapDirection } from './types';
|
4
|
+
export declare function calculateUpdatedAMMSpreadReserves(amm: AMM, direction: PositionDirection, oraclePriceData: OraclePriceData): {
|
5
|
+
baseAssetReserve: BN;
|
6
|
+
quoteAssetReserve: BN;
|
7
|
+
sqrtK: BN;
|
8
|
+
newPeg: BN;
|
9
|
+
};
|
10
|
+
export declare function calculateUpdatedAMM(amm: AMM, oraclePriceData: OraclePriceData): AMM;
|
11
|
+
export declare function calculateOptimalPegAndBudget(amm: AMM, oraclePriceData: OraclePriceData): [BN, BN, BN, boolean];
|
12
|
+
export declare function calculateSpreadReserves(amm: AMM, oraclePriceData: OraclePriceData, now?: BN): {
|
13
|
+
baseAssetReserve: BN;
|
14
|
+
quoteAssetReserve: BN;
|
15
|
+
}[];
|
16
|
+
/**
|
17
|
+
* Helper function calculating constant product curve output. Agnostic to whether input asset is quote or base
|
18
|
+
*
|
19
|
+
* @param inputAssetReserve
|
20
|
+
* @param swapAmount
|
21
|
+
* @param swapDirection
|
22
|
+
* @param invariant
|
23
|
+
* @returns newInputAssetReserve and newOutputAssetReserve after swap. : Precision AMM_RESERVE_PRECISION
|
24
|
+
*/
|
25
|
+
export declare function calculateSwapOutput(inputAssetReserve: BN, swapAmount: BN, swapDirection: SwapDirection, invariant: BN): [BN, BN];
|
26
|
+
/**
|
27
|
+
* Translate long/shorting quote/base asset into amm operation
|
28
|
+
*
|
29
|
+
* @param inputAssetType
|
30
|
+
* @param positionDirection
|
31
|
+
*/
|
32
|
+
export declare function getSwapDirection(inputAssetType: AssetType, positionDirection: PositionDirection): SwapDirection;
|
33
|
+
/**
|
34
|
+
* Helper function calculating terminal price of amm
|
35
|
+
*
|
36
|
+
* @param market
|
37
|
+
* @returns cost : Precision PRICE_PRECISION
|
38
|
+
*/
|
39
|
+
export declare function calculateTerminalPrice(market: PerpMarket): BN;
|
40
|
+
export declare function calculateMaxBaseAssetAmountToTrade(amm: AMM, limit_price: BN, direction: PositionDirection, oraclePriceData: OraclePriceData, now?: BN): [BN, PositionDirection];
|
41
|
+
export declare function calculateQuoteAssetAmountSwapped(quoteAssetReserves: BN, pegMultiplier: BN, swapDirection: SwapDirection): BN;
|
42
|
+
export declare function calculateMaxBaseAssetAmountFillable(amm: AMM, orderDirection: PositionDirection): BN;
|
43
|
+
export declare function calculateAmmReservesAfterSwap(amm: Pick<AMM, 'pegMultiplier' | 'quoteAssetReserve' | 'sqrtK' | 'baseAssetReserve'>, inputAssetType: AssetType, swapAmount: BN, swapDirection: SwapDirection): [BN, BN];
|
44
|
+
export declare function calculateSpreadBN(baseSpread: number, lastOracleReservePriceSpreadPct: BN, lastOracleConfPct: BN, maxSpread: number, quoteAssetReserve: BN, terminalQuoteAssetReserve: BN, pegMultiplier: BN, baseAssetAmountWithAmm: BN, reservePrice: BN, totalFeeMinusDistributions: BN, netRevenueSinceLastFunding: BN, baseAssetReserve: BN, minBaseAssetReserve: BN, maxBaseAssetReserve: BN, markStd: BN, oracleStd: BN, longIntensity: BN, shortIntensity: BN, volume24H: BN, returnTerms?: boolean): number[] | {
|
45
|
+
longVolSpread: number;
|
46
|
+
shortVolSpread: number;
|
47
|
+
longSpreadwPS: number;
|
48
|
+
shortSpreadwPS: number;
|
49
|
+
maxTargetSpread: number;
|
50
|
+
inventorySpreadScale: number;
|
51
|
+
longSpreadwInvScale: number;
|
52
|
+
shortSpreadwInvScale: number;
|
53
|
+
effectiveLeverage: number;
|
54
|
+
effectiveLeverageCapped: number;
|
55
|
+
longSpreadwEL: number;
|
56
|
+
shortSpreadwEL: number;
|
57
|
+
revenueRetreatAmount: number;
|
58
|
+
halfRevenueRetreatAmount: number;
|
59
|
+
longSpreadwRevRetreat: number;
|
60
|
+
shortSpreadwRevRetreat: number;
|
61
|
+
longSpreadwOffsetShrink: number;
|
62
|
+
shortSpreadwOffsetShrink: number;
|
63
|
+
totalSpread: number;
|
64
|
+
longSpread: number;
|
65
|
+
shortSpread: number;
|
66
|
+
};
|
67
|
+
export declare function calculateSpread(amm: AMM, oraclePriceData: OraclePriceData, now?: BN, reservePrice?: BN): [number, number];
|
68
|
+
export declare function calculateVolSpreadBN(lastOracleConfPct: BN, reservePrice: BN, markStd: BN, oracleStd: BN, longIntensity: BN, shortIntensity: BN, volume24H: BN): [BN, BN];
|
69
|
+
export declare function calculatePrice(baseAssetReserves: BN, quoteAssetReserves: BN, pegMultiplier: BN): BN;
|
70
|
+
export declare function calculateEffectiveLeverage(baseSpread: number, quoteAssetReserve: BN, terminalQuoteAssetReserve: BN, pegMultiplier: BN, netBaseAssetAmount: BN, reservePrice: BN, totalFeeMinusDistributions: BN): number;
|
71
|
+
export declare function calculateInventoryScale(baseAssetAmountWithAmm: BN, baseAssetReserve: BN, minBaseAssetReserve: BN, maxBaseAssetReserve: BN, directionalSpread: number, maxSpread: number): number;
|
72
|
+
export declare function calculateInventoryLiquidityRatio(baseAssetAmountWithAmm: BN, baseAssetReserve: BN, minBaseAssetReserve: BN, maxBaseAssetReserve: BN): BN;
|
73
|
+
export declare function calculateMarketOpenBidAsk(baseAssetReserve: BN, minBaseAssetReserve: BN, maxBaseAssetReserve: BN, stepSize?: BN): [BN, BN];
|
74
|
+
export declare function calculateReferencePriceOffset(reservePrice: BN, last24hAvgFundingRate: BN, liquidityFraction: BN, oracleTwapFast: BN, markTwapFast: BN, oracleTwapSlow: BN, markTwapSlow: BN, maxOffsetPct: number): BN;
|