@drift-labs/sdk-browser 2.129.0-beta.0 → 2.129.0-beta.2
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/README.md +1 -0
- package/VERSION +1 -1
- package/lib/browser/idl/drift.json +1 -1
- package/lib/browser/math/amm.js +1 -28
- package/lib/node/idl/drift.json +1 -1
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +1 -28
- package/package.json +1 -1
- package/src/idl/drift.json +1 -1
- package/src/math/amm.ts +1 -35
- package/tsconfig.browser.json +4 -1
- package/tsconfig.json +4 -1
package/README.md
CHANGED
|
@@ -272,3 +272,4 @@ Drift Protocol v2 is licensed under [Apache 2.0](./LICENSE).
|
|
|
272
272
|
Unless you explicitly state otherwise, any contribution intentionally submitted
|
|
273
273
|
for inclusion in Drift SDK by you, as defined in the Apache-2.0 license, shall be
|
|
274
274
|
licensed as above, without any additional terms or conditions.
|
|
275
|
+
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.129.0-beta.
|
|
1
|
+
2.129.0-beta.2
|
package/lib/browser/math/amm.js
CHANGED
|
@@ -529,34 +529,7 @@ function calculateSpreadReserves(amm, oraclePriceData, now, isPrediction = false
|
|
|
529
529
|
const liquidityFractionSigned = liquidityFraction.mul((0, __1.sigNum)(amm.baseAssetAmountWithAmm.add(amm.baseAssetAmountWithUnsettledLp)));
|
|
530
530
|
referencePriceOffset = calculateReferencePriceOffset(reservePrice, amm.last24HAvgFundingRate, liquidityFractionSigned, amm.historicalOracleData.lastOraclePriceTwap5Min, amm.lastMarkPriceTwap5Min, amm.historicalOracleData.lastOraclePriceTwap, amm.lastMarkPriceTwap, maxOffset).toNumber();
|
|
531
531
|
}
|
|
532
|
-
|
|
533
|
-
const signChanged = referencePriceOffset === 0 ||
|
|
534
|
-
Math.sign(referencePriceOffset) !== Math.sign(amm.referencePriceOffset);
|
|
535
|
-
const hasOffset = Math.abs(amm.referencePriceOffset) > 1;
|
|
536
|
-
if (signChanged && hasOffset) {
|
|
537
|
-
if (oraclePriceData.slot !== amm.lastUpdateSlot) {
|
|
538
|
-
const rawDecay = Math.trunc((Math.abs(amm.referencePriceOffset) *
|
|
539
|
-
12 *
|
|
540
|
-
(oraclePriceData.slot.toNumber() - amm.lastUpdateSlot.toNumber())) /
|
|
541
|
-
100);
|
|
542
|
-
const maxOffset = Math.abs(amm.referencePriceOffset);
|
|
543
|
-
const decayMagnitude = Math.min(Math.max(rawDecay, 10), maxOffset);
|
|
544
|
-
const decay = Math.sign(amm.referencePriceOffset) * decayMagnitude;
|
|
545
|
-
if (amm.referencePriceOffset > 0) {
|
|
546
|
-
referencePriceOffset = amm.referencePriceOffset - decay;
|
|
547
|
-
longSpread += decay;
|
|
548
|
-
shortSpread += referencePriceOffset;
|
|
549
|
-
}
|
|
550
|
-
else {
|
|
551
|
-
referencePriceOffset = amm.referencePriceOffset + decay;
|
|
552
|
-
shortSpread += decay;
|
|
553
|
-
longSpread += Math.abs(referencePriceOffset);
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
else {
|
|
558
|
-
amm.referencePriceOffset = referencePriceOffset;
|
|
559
|
-
}
|
|
532
|
+
const [longSpread, shortSpread] = calculateSpread(amm, oraclePriceData, now, reservePrice);
|
|
560
533
|
const askReserves = calculateSpreadReserve(longSpread + referencePriceOffset, types_1.PositionDirection.LONG, amm);
|
|
561
534
|
const bidReserves = calculateSpreadReserve(-shortSpread + referencePriceOffset, types_1.PositionDirection.SHORT, amm);
|
|
562
535
|
return [bidReserves, askReserves];
|
package/lib/node/idl/drift.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amm.d.ts","sourceRoot":"","sources":["../../../src/math/amm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"amm.d.ts","sourceRoot":"","sources":["../../../src/math/amm.ts"],"names":[],"mappings":"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"}
|
package/lib/node/math/amm.js
CHANGED
|
@@ -529,34 +529,7 @@ function calculateSpreadReserves(amm, oraclePriceData, now, isPrediction = false
|
|
|
529
529
|
const liquidityFractionSigned = liquidityFraction.mul((0, __1.sigNum)(amm.baseAssetAmountWithAmm.add(amm.baseAssetAmountWithUnsettledLp)));
|
|
530
530
|
referencePriceOffset = calculateReferencePriceOffset(reservePrice, amm.last24HAvgFundingRate, liquidityFractionSigned, amm.historicalOracleData.lastOraclePriceTwap5Min, amm.lastMarkPriceTwap5Min, amm.historicalOracleData.lastOraclePriceTwap, amm.lastMarkPriceTwap, maxOffset).toNumber();
|
|
531
531
|
}
|
|
532
|
-
|
|
533
|
-
const signChanged = referencePriceOffset === 0 ||
|
|
534
|
-
Math.sign(referencePriceOffset) !== Math.sign(amm.referencePriceOffset);
|
|
535
|
-
const hasOffset = Math.abs(amm.referencePriceOffset) > 1;
|
|
536
|
-
if (signChanged && hasOffset) {
|
|
537
|
-
if (oraclePriceData.slot !== amm.lastUpdateSlot) {
|
|
538
|
-
const rawDecay = Math.trunc((Math.abs(amm.referencePriceOffset) *
|
|
539
|
-
12 *
|
|
540
|
-
(oraclePriceData.slot.toNumber() - amm.lastUpdateSlot.toNumber())) /
|
|
541
|
-
100);
|
|
542
|
-
const maxOffset = Math.abs(amm.referencePriceOffset);
|
|
543
|
-
const decayMagnitude = Math.min(Math.max(rawDecay, 10), maxOffset);
|
|
544
|
-
const decay = Math.sign(amm.referencePriceOffset) * decayMagnitude;
|
|
545
|
-
if (amm.referencePriceOffset > 0) {
|
|
546
|
-
referencePriceOffset = amm.referencePriceOffset - decay;
|
|
547
|
-
longSpread += decay;
|
|
548
|
-
shortSpread += referencePriceOffset;
|
|
549
|
-
}
|
|
550
|
-
else {
|
|
551
|
-
referencePriceOffset = amm.referencePriceOffset + decay;
|
|
552
|
-
shortSpread += decay;
|
|
553
|
-
longSpread += Math.abs(referencePriceOffset);
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
else {
|
|
558
|
-
amm.referencePriceOffset = referencePriceOffset;
|
|
559
|
-
}
|
|
532
|
+
const [longSpread, shortSpread] = calculateSpread(amm, oraclePriceData, now, reservePrice);
|
|
560
533
|
const askReserves = calculateSpreadReserve(longSpread + referencePriceOffset, types_1.PositionDirection.LONG, amm);
|
|
561
534
|
const bidReserves = calculateSpreadReserve(-shortSpread + referencePriceOffset, types_1.PositionDirection.SHORT, amm);
|
|
562
535
|
return [bidReserves, askReserves];
|
package/package.json
CHANGED
package/src/idl/drift.json
CHANGED
package/src/math/amm.ts
CHANGED
|
@@ -1028,47 +1028,13 @@ export function calculateSpreadReserves(
|
|
|
1028
1028
|
).toNumber();
|
|
1029
1029
|
}
|
|
1030
1030
|
|
|
1031
|
-
|
|
1031
|
+
const [longSpread, shortSpread] = calculateSpread(
|
|
1032
1032
|
amm,
|
|
1033
1033
|
oraclePriceData,
|
|
1034
1034
|
now,
|
|
1035
1035
|
reservePrice
|
|
1036
1036
|
);
|
|
1037
1037
|
|
|
1038
|
-
const signChanged =
|
|
1039
|
-
referencePriceOffset === 0 ||
|
|
1040
|
-
Math.sign(referencePriceOffset) !== Math.sign(amm.referencePriceOffset);
|
|
1041
|
-
|
|
1042
|
-
const hasOffset = Math.abs(amm.referencePriceOffset) > 1;
|
|
1043
|
-
|
|
1044
|
-
if (signChanged && hasOffset) {
|
|
1045
|
-
if (oraclePriceData.slot !== amm.lastUpdateSlot) {
|
|
1046
|
-
const rawDecay = Math.trunc(
|
|
1047
|
-
(Math.abs(amm.referencePriceOffset) *
|
|
1048
|
-
12 *
|
|
1049
|
-
(oraclePriceData.slot.toNumber() - amm.lastUpdateSlot.toNumber())) /
|
|
1050
|
-
100
|
|
1051
|
-
);
|
|
1052
|
-
|
|
1053
|
-
const maxOffset = Math.abs(amm.referencePriceOffset);
|
|
1054
|
-
const decayMagnitude = Math.min(Math.max(rawDecay, 10), maxOffset);
|
|
1055
|
-
|
|
1056
|
-
const decay = Math.sign(amm.referencePriceOffset) * decayMagnitude;
|
|
1057
|
-
|
|
1058
|
-
if (amm.referencePriceOffset > 0) {
|
|
1059
|
-
referencePriceOffset = amm.referencePriceOffset - decay;
|
|
1060
|
-
longSpread += decay;
|
|
1061
|
-
shortSpread += referencePriceOffset;
|
|
1062
|
-
} else {
|
|
1063
|
-
referencePriceOffset = amm.referencePriceOffset + decay;
|
|
1064
|
-
shortSpread += decay;
|
|
1065
|
-
longSpread += Math.abs(referencePriceOffset);
|
|
1066
|
-
}
|
|
1067
|
-
}
|
|
1068
|
-
} else {
|
|
1069
|
-
amm.referencePriceOffset = referencePriceOffset;
|
|
1070
|
-
}
|
|
1071
|
-
|
|
1072
1038
|
const askReserves = calculateSpreadReserve(
|
|
1073
1039
|
longSpread + referencePriceOffset,
|
|
1074
1040
|
PositionDirection.LONG,
|
package/tsconfig.browser.json
CHANGED
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
"declaration": true,
|
|
7
7
|
"outDir": "./lib/browser",
|
|
8
8
|
"resolveJsonModule": true,
|
|
9
|
-
"skipLibCheck": true
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"paths": {
|
|
11
|
+
"@solana/web3.js": ["./node_modules/@solana/web3.js/lib/index.d.ts"]
|
|
12
|
+
}
|
|
10
13
|
},
|
|
11
14
|
"include": ["src"],
|
|
12
15
|
"exclude": ["node_modules", "tests"]
|
package/tsconfig.json
CHANGED
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
"outDir": "./lib/node",
|
|
8
8
|
"resolveJsonModule": true,
|
|
9
9
|
"skipLibCheck": true,
|
|
10
|
-
"declarationMap":
|
|
10
|
+
"declarationMap": true,
|
|
11
|
+
"paths": {
|
|
12
|
+
"@solana/web3.js": ["./node_modules/@solana/web3.js/lib/index.d.ts"]
|
|
13
|
+
}
|
|
11
14
|
},
|
|
12
15
|
"include": ["src"],
|
|
13
16
|
"exclude": ["node_modules", "tests"]
|