forked from muxprotocol/solana-trading-bot
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathutils.js
More file actions
26 lines (26 loc) · 1.26 KB
/
Copy pathutils.js
File metadata and controls
26 lines (26 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.computeSolOutForTokens = exports.decodeBondingCurve = exports.BONDING_CURVE_STRUCT = void 0;
const borsh_1 = require("@coral-xyz/borsh"); // или используй обычный Buffer.read
// Структура данных Bonding Curve на Pump.fun
exports.BONDING_CURVE_STRUCT = (0, borsh_1.struct)([
(0, borsh_1.u64)('virtualTokenReserves'),
(0, borsh_1.u64)('virtualSolReserves'),
(0, borsh_1.u64)('realTokenReserves'),
(0, borsh_1.u64)('realSolReserves'),
(0, borsh_1.u64)('tokenTotalSupply'),
(0, borsh_1.bool)('complete'),
]);
function decodeBondingCurve(data) {
// Пропускаем первые 8 байт (дискриминатор Anchor)
return exports.BONDING_CURVE_STRUCT.decode(data.slice(8));
}
exports.decodeBondingCurve = decodeBondingCurve;
function computeSolOutForTokens(curve, tokensIn) {
// Упрощенная формула цены x * y = k
// Цена = (Virtual SOL Reserves / Virtual Token Reserves) * tokensIn
const solOut = (BigInt(curve.virtualSolReserves) * tokensIn) / BigInt(curve.virtualTokenReserves);
return solOut;
}
exports.computeSolOutForTokens = computeSolOutForTokens;
//# sourceMappingURL=utils.js.map