outsmart 2.0.0-alpha.0
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/LICENSE +21 -0
- package/README.md +568 -0
- package/dist/cli.d.ts +44 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1251 -0
- package/dist/cli.js.map +1 -0
- package/dist/dex/byreal-clmm.d.ts +16 -0
- package/dist/dex/byreal-clmm.d.ts.map +1 -0
- package/dist/dex/byreal-clmm.js +39 -0
- package/dist/dex/byreal-clmm.js.map +1 -0
- package/dist/dex/dflow.d.ts +27 -0
- package/dist/dex/dflow.d.ts.map +1 -0
- package/dist/dex/dflow.js +200 -0
- package/dist/dex/dflow.js.map +1 -0
- package/dist/dex/fusion-amm.d.ts +44 -0
- package/dist/dex/fusion-amm.d.ts.map +1 -0
- package/dist/dex/fusion-amm.js +546 -0
- package/dist/dex/fusion-amm.js.map +1 -0
- package/dist/dex/futarchy-amm.d.ts +32 -0
- package/dist/dex/futarchy-amm.d.ts.map +1 -0
- package/dist/dex/futarchy-amm.js +443 -0
- package/dist/dex/futarchy-amm.js.map +1 -0
- package/dist/dex/futarchy-idl.d.ts +2568 -0
- package/dist/dex/futarchy-idl.d.ts.map +1 -0
- package/dist/dex/futarchy-idl.js +2570 -0
- package/dist/dex/futarchy-idl.js.map +1 -0
- package/dist/dex/futarchy-launchpad.d.ts +68 -0
- package/dist/dex/futarchy-launchpad.d.ts.map +1 -0
- package/dist/dex/futarchy-launchpad.js +377 -0
- package/dist/dex/futarchy-launchpad.js.map +1 -0
- package/dist/dex/index.d.ts +88 -0
- package/dist/dex/index.d.ts.map +1 -0
- package/dist/dex/index.js +159 -0
- package/dist/dex/index.js.map +1 -0
- package/dist/dex/jupiter-ultra.d.ts +27 -0
- package/dist/dex/jupiter-ultra.d.ts.map +1 -0
- package/dist/dex/jupiter-ultra.js +369 -0
- package/dist/dex/jupiter-ultra.js.map +1 -0
- package/dist/dex/meteora-damm-v1.d.ts +36 -0
- package/dist/dex/meteora-damm-v1.d.ts.map +1 -0
- package/dist/dex/meteora-damm-v1.js +314 -0
- package/dist/dex/meteora-damm-v1.js.map +1 -0
- package/dist/dex/meteora-damm-v2.d.ts +103 -0
- package/dist/dex/meteora-damm-v2.d.ts.map +1 -0
- package/dist/dex/meteora-damm-v2.js +1146 -0
- package/dist/dex/meteora-damm-v2.js.map +1 -0
- package/dist/dex/meteora-dbc.d.ts +38 -0
- package/dist/dex/meteora-dbc.d.ts.map +1 -0
- package/dist/dex/meteora-dbc.js +374 -0
- package/dist/dex/meteora-dbc.js.map +1 -0
- package/dist/dex/meteora-dlmm.d.ts +79 -0
- package/dist/dex/meteora-dlmm.d.ts.map +1 -0
- package/dist/dex/meteora-dlmm.js +735 -0
- package/dist/dex/meteora-dlmm.js.map +1 -0
- package/dist/dex/orca.d.ts +31 -0
- package/dist/dex/orca.d.ts.map +1 -0
- package/dist/dex/orca.js +536 -0
- package/dist/dex/orca.js.map +1 -0
- package/dist/dex/pancakeswap-clmm.d.ts +16 -0
- package/dist/dex/pancakeswap-clmm.d.ts.map +1 -0
- package/dist/dex/pancakeswap-clmm.js +39 -0
- package/dist/dex/pancakeswap-clmm.js.map +1 -0
- package/dist/dex/pumpfun-amm.d.ts +46 -0
- package/dist/dex/pumpfun-amm.d.ts.map +1 -0
- package/dist/dex/pumpfun-amm.js +692 -0
- package/dist/dex/pumpfun-amm.js.map +1 -0
- package/dist/dex/pumpfun.d.ts +41 -0
- package/dist/dex/pumpfun.d.ts.map +1 -0
- package/dist/dex/pumpfun.js +555 -0
- package/dist/dex/pumpfun.js.map +1 -0
- package/dist/dex/raydium-amm-v4.d.ts +11 -0
- package/dist/dex/raydium-amm-v4.d.ts.map +1 -0
- package/dist/dex/raydium-amm-v4.js +649 -0
- package/dist/dex/raydium-amm-v4.js.map +1 -0
- package/dist/dex/raydium-clmm.d.ts +12 -0
- package/dist/dex/raydium-clmm.d.ts.map +1 -0
- package/dist/dex/raydium-clmm.js +675 -0
- package/dist/dex/raydium-clmm.js.map +1 -0
- package/dist/dex/raydium-cpmm.d.ts +10 -0
- package/dist/dex/raydium-cpmm.d.ts.map +1 -0
- package/dist/dex/raydium-cpmm.js +613 -0
- package/dist/dex/raydium-cpmm.js.map +1 -0
- package/dist/dex/raydium-launchlab.d.ts +12 -0
- package/dist/dex/raydium-launchlab.d.ts.map +1 -0
- package/dist/dex/raydium-launchlab.js +530 -0
- package/dist/dex/raydium-launchlab.js.map +1 -0
- package/dist/dex/shared/clmm-base.d.ts +58 -0
- package/dist/dex/shared/clmm-base.d.ts.map +1 -0
- package/dist/dex/shared/clmm-base.js +891 -0
- package/dist/dex/shared/clmm-base.js.map +1 -0
- package/dist/dex/types.d.ts +601 -0
- package/dist/dex/types.d.ts.map +1 -0
- package/dist/dex/types.js +137 -0
- package/dist/dex/types.js.map +1 -0
- package/dist/dexscreener/index.d.ts +2 -0
- package/dist/dexscreener/index.d.ts.map +1 -0
- package/dist/dexscreener/index.js +18 -0
- package/dist/dexscreener/index.js.map +1 -0
- package/dist/dexscreener/info.d.ts +22 -0
- package/dist/dexscreener/info.d.ts.map +1 -0
- package/dist/dexscreener/info.js +104 -0
- package/dist/dexscreener/info.js.map +1 -0
- package/dist/helpers/check_balance.d.ts +10 -0
- package/dist/helpers/check_balance.d.ts.map +1 -0
- package/dist/helpers/check_balance.js +34 -0
- package/dist/helpers/check_balance.js.map +1 -0
- package/dist/helpers/config.d.ts +51 -0
- package/dist/helpers/config.d.ts.map +1 -0
- package/dist/helpers/config.js +118 -0
- package/dist/helpers/config.js.map +1 -0
- package/dist/helpers/index.d.ts +8 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +29 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/logger.d.ts +27 -0
- package/dist/helpers/logger.d.ts.map +1 -0
- package/dist/helpers/logger.js +39 -0
- package/dist/helpers/logger.js.map +1 -0
- package/dist/helpers/token-2022.d.ts +32 -0
- package/dist/helpers/token-2022.d.ts.map +1 -0
- package/dist/helpers/token-2022.js +48 -0
- package/dist/helpers/token-2022.js.map +1 -0
- package/dist/helpers/unwrap_sol.d.ts +2 -0
- package/dist/helpers/unwrap_sol.d.ts.map +1 -0
- package/dist/helpers/unwrap_sol.js +67 -0
- package/dist/helpers/unwrap_sol.js.map +1 -0
- package/dist/helpers/util.d.ts +698 -0
- package/dist/helpers/util.d.ts.map +1 -0
- package/dist/helpers/util.js +181 -0
- package/dist/helpers/util.js.map +1 -0
- package/dist/helpers/utils.d.ts +10 -0
- package/dist/helpers/utils.d.ts.map +1 -0
- package/dist/helpers/utils.js +97 -0
- package/dist/helpers/utils.js.map +1 -0
- package/dist/helpers/wrap_sol.d.ts +3 -0
- package/dist/helpers/wrap_sol.d.ts.map +1 -0
- package/dist/helpers/wrap_sol.js +88 -0
- package/dist/helpers/wrap_sol.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/transactions/bloXroute_tips_tx_executor.d.ts +4 -0
- package/dist/transactions/bloXroute_tips_tx_executor.d.ts.map +1 -0
- package/dist/transactions/bloXroute_tips_tx_executor.js +70 -0
- package/dist/transactions/bloXroute_tips_tx_executor.js.map +1 -0
- package/dist/transactions/index.d.ts +6 -0
- package/dist/transactions/index.d.ts.map +1 -0
- package/dist/transactions/index.js +30 -0
- package/dist/transactions/index.js.map +1 -0
- package/dist/transactions/jito_tips_tx_executor.d.ts +15 -0
- package/dist/transactions/jito_tips_tx_executor.d.ts.map +1 -0
- package/dist/transactions/jito_tips_tx_executor.js +99 -0
- package/dist/transactions/jito_tips_tx_executor.js.map +1 -0
- package/dist/transactions/landing/index.d.ts +30 -0
- package/dist/transactions/landing/index.d.ts.map +1 -0
- package/dist/transactions/landing/index.js +60 -0
- package/dist/transactions/landing/index.js.map +1 -0
- package/dist/transactions/landing/nonce-manager.d.ts +116 -0
- package/dist/transactions/landing/nonce-manager.d.ts.map +1 -0
- package/dist/transactions/landing/nonce-manager.js +393 -0
- package/dist/transactions/landing/nonce-manager.js.map +1 -0
- package/dist/transactions/landing/orchestrator.d.ts +104 -0
- package/dist/transactions/landing/orchestrator.d.ts.map +1 -0
- package/dist/transactions/landing/orchestrator.js +329 -0
- package/dist/transactions/landing/orchestrator.js.map +1 -0
- package/dist/transactions/landing/providers/astralane.d.ts +12 -0
- package/dist/transactions/landing/providers/astralane.d.ts.map +1 -0
- package/dist/transactions/landing/providers/astralane.js +132 -0
- package/dist/transactions/landing/providers/astralane.js.map +1 -0
- package/dist/transactions/landing/providers/blockrazor.d.ts +11 -0
- package/dist/transactions/landing/providers/blockrazor.d.ts.map +1 -0
- package/dist/transactions/landing/providers/blockrazor.js +134 -0
- package/dist/transactions/landing/providers/blockrazor.js.map +1 -0
- package/dist/transactions/landing/providers/bloxroute.d.ts +12 -0
- package/dist/transactions/landing/providers/bloxroute.d.ts.map +1 -0
- package/dist/transactions/landing/providers/bloxroute.js +102 -0
- package/dist/transactions/landing/providers/bloxroute.js.map +1 -0
- package/dist/transactions/landing/providers/flashblock.d.ts +10 -0
- package/dist/transactions/landing/providers/flashblock.d.ts.map +1 -0
- package/dist/transactions/landing/providers/flashblock.js +102 -0
- package/dist/transactions/landing/providers/flashblock.js.map +1 -0
- package/dist/transactions/landing/providers/helius-sender.d.ts +11 -0
- package/dist/transactions/landing/providers/helius-sender.d.ts.map +1 -0
- package/dist/transactions/landing/providers/helius-sender.js +101 -0
- package/dist/transactions/landing/providers/helius-sender.js.map +1 -0
- package/dist/transactions/landing/providers/jito.d.ts +16 -0
- package/dist/transactions/landing/providers/jito.d.ts.map +1 -0
- package/dist/transactions/landing/providers/jito.js +110 -0
- package/dist/transactions/landing/providers/jito.js.map +1 -0
- package/dist/transactions/landing/providers/nextblock.d.ts +11 -0
- package/dist/transactions/landing/providers/nextblock.d.ts.map +1 -0
- package/dist/transactions/landing/providers/nextblock.js +109 -0
- package/dist/transactions/landing/providers/nextblock.js.map +1 -0
- package/dist/transactions/landing/providers/node1.d.ts +11 -0
- package/dist/transactions/landing/providers/node1.d.ts.map +1 -0
- package/dist/transactions/landing/providers/node1.js +101 -0
- package/dist/transactions/landing/providers/node1.js.map +1 -0
- package/dist/transactions/landing/providers/nozomi.d.ts +11 -0
- package/dist/transactions/landing/providers/nozomi.d.ts.map +1 -0
- package/dist/transactions/landing/providers/nozomi.js +124 -0
- package/dist/transactions/landing/providers/nozomi.js.map +1 -0
- package/dist/transactions/landing/providers/soyas.d.ts +16 -0
- package/dist/transactions/landing/providers/soyas.d.ts.map +1 -0
- package/dist/transactions/landing/providers/soyas.js +192 -0
- package/dist/transactions/landing/providers/soyas.js.map +1 -0
- package/dist/transactions/landing/providers/stellium.d.ts +11 -0
- package/dist/transactions/landing/providers/stellium.d.ts.map +1 -0
- package/dist/transactions/landing/providers/stellium.js +102 -0
- package/dist/transactions/landing/providers/stellium.js.map +1 -0
- package/dist/transactions/landing/providers/zero-slot.d.ts +10 -0
- package/dist/transactions/landing/providers/zero-slot.d.ts.map +1 -0
- package/dist/transactions/landing/providers/zero-slot.js +92 -0
- package/dist/transactions/landing/providers/zero-slot.js.map +1 -0
- package/dist/transactions/landing/tip-accounts.d.ts +22 -0
- package/dist/transactions/landing/tip-accounts.d.ts.map +1 -0
- package/dist/transactions/landing/tip-accounts.js +140 -0
- package/dist/transactions/landing/tip-accounts.js.map +1 -0
- package/dist/transactions/landing/types.d.ts +98 -0
- package/dist/transactions/landing/types.d.ts.map +1 -0
- package/dist/transactions/landing/types.js +30 -0
- package/dist/transactions/landing/types.js.map +1 -0
- package/dist/transactions/nozomi/tx-submission.d.ts +14 -0
- package/dist/transactions/nozomi/tx-submission.d.ts.map +1 -0
- package/dist/transactions/nozomi/tx-submission.js +107 -0
- package/dist/transactions/nozomi/tx-submission.js.map +1 -0
- package/dist/transactions/send-rpc.d.ts +54 -0
- package/dist/transactions/send-rpc.d.ts.map +1 -0
- package/dist/transactions/send-rpc.js +126 -0
- package/dist/transactions/send-rpc.js.map +1 -0
- package/dist/transactions/simple_tx_executor.d.ts +10 -0
- package/dist/transactions/simple_tx_executor.d.ts.map +1 -0
- package/dist/transactions/simple_tx_executor.js +33 -0
- package/dist/transactions/simple_tx_executor.js.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meteora-damm-v2.js","sourceRoot":"","sources":["../../src/dex/meteora-damm-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meteora DBC (Dynamic Bonding Curve) — IDexAdapter Implementation
|
|
3
|
+
*
|
|
4
|
+
* Wraps the @meteora-ag/dynamic-bonding-curve-sdk for buy/sell/snipe/findPool/getPrice.
|
|
5
|
+
*
|
|
6
|
+
* Source: 100x-algo-bots/trading-modules/meteora-dbc/
|
|
7
|
+
*
|
|
8
|
+
* Key behavior:
|
|
9
|
+
* - DBC SDK's swap2() returns a Transaction with setup instructions
|
|
10
|
+
* (SystemProgram, token program IXs) that need to be filtered out since
|
|
11
|
+
* the adapter handles WSOL wrapping/unwrapping explicitly.
|
|
12
|
+
* - For WSOL quotes: creates ATA, transfers SOL, syncNative, swaps, closes ATA
|
|
13
|
+
* - For non-SOL quotes: simpler ATA creation + swap
|
|
14
|
+
* - Token-2022 detection for base mints
|
|
15
|
+
*
|
|
16
|
+
* SDK pattern:
|
|
17
|
+
* const client = new DynamicBondingCurveClient(connection, 'confirmed');
|
|
18
|
+
* const poolState = await client.state.getPool(pool);
|
|
19
|
+
* const tx = await client.pool.swap2(swapParams);
|
|
20
|
+
*/
|
|
21
|
+
import { IDexAdapter, DexCapabilities, BuyParams, SellParams, SnipeParams, SwapResult, PoolInfo, PriceInfo, BuildSwapIxsResult } from "./types";
|
|
22
|
+
export declare class MeteoraDbcAdapter implements IDexAdapter {
|
|
23
|
+
readonly name = "meteora-dbc";
|
|
24
|
+
readonly protocol = "dbc";
|
|
25
|
+
readonly capabilities: DexCapabilities;
|
|
26
|
+
buy(params: BuyParams): Promise<SwapResult>;
|
|
27
|
+
sell(params: SellParams): Promise<SwapResult>;
|
|
28
|
+
snipe(params: SnipeParams): Promise<SwapResult>;
|
|
29
|
+
buildSwapIxs(params: BuyParams | SellParams): Promise<BuildSwapIxsResult>;
|
|
30
|
+
findPool(_baseMint: string, _quoteMint?: string): Promise<PoolInfo | null>;
|
|
31
|
+
getPrice(poolAddress: string): Promise<PriceInfo>;
|
|
32
|
+
/**
|
|
33
|
+
* Build buy instructions with WSOL wrapping if needed.
|
|
34
|
+
* Ported from source: meteora-dbc/buy.ts snipe_dbc_with_known_pool()
|
|
35
|
+
*/
|
|
36
|
+
private buildBuyIxs;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=meteora-dbc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meteora-dbc.d.ts","sourceRoot":"","sources":["../../src/dex/meteora-dbc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA+BH,OAAO,EACL,WAAW,EACX,eAAe,EAEf,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,kBAAkB,EAUnB,MAAM,SAAS,CAAC;AAwEjB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,SAAS;IAC1B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAMnC;IAIG,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAwD3C,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAqE7C,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA+D/C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwDzE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAQ1E,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAiCvD;;;OAGG;YACW,WAAW;CAwD1B"}
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Meteora DBC (Dynamic Bonding Curve) — IDexAdapter Implementation
|
|
4
|
+
*
|
|
5
|
+
* Wraps the @meteora-ag/dynamic-bonding-curve-sdk for buy/sell/snipe/findPool/getPrice.
|
|
6
|
+
*
|
|
7
|
+
* Source: 100x-algo-bots/trading-modules/meteora-dbc/
|
|
8
|
+
*
|
|
9
|
+
* Key behavior:
|
|
10
|
+
* - DBC SDK's swap2() returns a Transaction with setup instructions
|
|
11
|
+
* (SystemProgram, token program IXs) that need to be filtered out since
|
|
12
|
+
* the adapter handles WSOL wrapping/unwrapping explicitly.
|
|
13
|
+
* - For WSOL quotes: creates ATA, transfers SOL, syncNative, swaps, closes ATA
|
|
14
|
+
* - For non-SOL quotes: simpler ATA creation + swap
|
|
15
|
+
* - Token-2022 detection for base mints
|
|
16
|
+
*
|
|
17
|
+
* SDK pattern:
|
|
18
|
+
* const client = new DynamicBondingCurveClient(connection, 'confirmed');
|
|
19
|
+
* const poolState = await client.state.getPool(pool);
|
|
20
|
+
* const tx = await client.pool.swap2(swapParams);
|
|
21
|
+
*/
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.MeteoraDbcAdapter = void 0;
|
|
27
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
28
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
29
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
30
|
+
const dynamic_bonding_curve_sdk_1 = require("@meteora-ag/dynamic-bonding-curve-sdk");
|
|
31
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
32
|
+
const config_1 = require("../helpers/config");
|
|
33
|
+
const landing_1 = require("../transactions/landing");
|
|
34
|
+
const send_rpc_1 = require("../transactions/send-rpc");
|
|
35
|
+
const types_1 = require("./types");
|
|
36
|
+
const index_1 = require("./index");
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Constants
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
const SIX_DECIMAL_MINTS = new Set([
|
|
41
|
+
types_1.USDC_MINT,
|
|
42
|
+
types_1.USDT_MINT,
|
|
43
|
+
"USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",
|
|
44
|
+
]);
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Helpers
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
function quoteDecimals(quoteMintStr) {
|
|
49
|
+
return SIX_DECIMAL_MINTS.has(quoteMintStr) ? 6 : 9;
|
|
50
|
+
}
|
|
51
|
+
function amountToLamports(amount, quoteMintStr) {
|
|
52
|
+
const decimals = quoteDecimals(quoteMintStr);
|
|
53
|
+
return new bn_js_1.default(Math.floor(amount * Math.pow(10, decimals)));
|
|
54
|
+
}
|
|
55
|
+
/** Detect token program from on-chain account owner */
|
|
56
|
+
async function detectTokenProgram(mint) {
|
|
57
|
+
const connection = (0, config_1.getConnection)();
|
|
58
|
+
const accountInfo = await connection.getAccountInfo(mint);
|
|
59
|
+
if (!accountInfo) {
|
|
60
|
+
throw new Error(`Mint account not found: ${mint.toBase58()}`);
|
|
61
|
+
}
|
|
62
|
+
return accountInfo.owner.equals(spl_token_1.TOKEN_2022_PROGRAM_ID)
|
|
63
|
+
? spl_token_1.TOKEN_2022_PROGRAM_ID
|
|
64
|
+
: spl_token_1.TOKEN_PROGRAM_ID;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Filter out SystemProgram and Token Program instructions from DBC SDK tx.
|
|
68
|
+
* The SDK adds setup IXs that conflict with our explicit WSOL handling.
|
|
69
|
+
*/
|
|
70
|
+
function filterSdkSetupIxs(ixs) {
|
|
71
|
+
return ixs.filter((ix) => {
|
|
72
|
+
const pid = ix.programId.toBase58();
|
|
73
|
+
return (pid !== web3_js_1.SystemProgram.programId.toBase58() &&
|
|
74
|
+
pid !== spl_token_1.TOKEN_PROGRAM_ID.toBase58() &&
|
|
75
|
+
pid !== spl_token_1.TOKEN_2022_PROGRAM_ID.toBase58());
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/** Calculate price from sqrtPrice (from DBC pool state) */
|
|
79
|
+
function getPriceFromSqrtPrice(sqrtPrice, tokenADecimal, tokenBDecimal) {
|
|
80
|
+
const decimalSqrtPrice = new decimal_js_1.default(sqrtPrice.toString());
|
|
81
|
+
const price = decimalSqrtPrice
|
|
82
|
+
.mul(decimalSqrtPrice)
|
|
83
|
+
.mul(new decimal_js_1.default(10 ** (tokenADecimal - tokenBDecimal)))
|
|
84
|
+
.div(decimal_js_1.default.pow(2, 128));
|
|
85
|
+
return Number(price);
|
|
86
|
+
}
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
// Adapter
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
class MeteoraDbcAdapter {
|
|
91
|
+
name = "meteora-dbc";
|
|
92
|
+
protocol = "dbc";
|
|
93
|
+
capabilities = (0, types_1.defaultCapabilities)({
|
|
94
|
+
canBuy: true,
|
|
95
|
+
canSell: true,
|
|
96
|
+
canSnipe: true,
|
|
97
|
+
canFindPool: false,
|
|
98
|
+
canGetPrice: true,
|
|
99
|
+
});
|
|
100
|
+
// ----- Core: buy -----
|
|
101
|
+
async buy(params) {
|
|
102
|
+
const tokenMint = (0, types_1.requireTokenMint)(params, this.name);
|
|
103
|
+
const { amountSol, quoteMint: quoteMintParam, poolAddress, opts } = params;
|
|
104
|
+
const connection = (0, config_1.getConnection)();
|
|
105
|
+
const wallet = (0, config_1.getWallet)();
|
|
106
|
+
const quoteMintStr = quoteMintParam ?? types_1.WSOL_MINT;
|
|
107
|
+
if (!poolAddress) {
|
|
108
|
+
throw new types_1.PoolNotFoundError(this.name, tokenMint, quoteMintStr);
|
|
109
|
+
}
|
|
110
|
+
const poolPk = new web3_js_1.PublicKey(poolAddress);
|
|
111
|
+
const dbcClient = new dynamic_bonding_curve_sdk_1.DynamicBondingCurveClient(connection, "confirmed");
|
|
112
|
+
const amountIn = amountToLamports(amountSol, quoteMintStr);
|
|
113
|
+
const swap2Params = {
|
|
114
|
+
swapMode: dynamic_bonding_curve_sdk_1.SwapMode.ExactIn,
|
|
115
|
+
swapBaseForQuote: false,
|
|
116
|
+
amountIn,
|
|
117
|
+
minimumAmountOut: new bn_js_1.default(0),
|
|
118
|
+
owner: wallet.publicKey,
|
|
119
|
+
pool: poolPk,
|
|
120
|
+
referralTokenAccount: null,
|
|
121
|
+
payer: wallet.publicKey,
|
|
122
|
+
};
|
|
123
|
+
const tx = await dbcClient.pool.swap2(swap2Params);
|
|
124
|
+
const filteredIxs = filterSdkSetupIxs(tx.instructions);
|
|
125
|
+
// Build WSOL wrapping or direct swap instructions
|
|
126
|
+
const ixs = await this.buildBuyIxs(wallet.publicKey, new web3_js_1.PublicKey(tokenMint), new web3_js_1.PublicKey(quoteMintStr), amountIn, filteredIxs, opts?.computeUnitLimit ?? types_1.DEFAULT_COMPUTE_UNIT_LIMIT, opts?.priorityFeeMicroLamports ?? types_1.DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS);
|
|
127
|
+
const result = await (0, send_rpc_1.sendAndConfirmVtx)(connection, ixs, wallet, {
|
|
128
|
+
addressLookupTables: opts?.addressLookupTables,
|
|
129
|
+
});
|
|
130
|
+
return {
|
|
131
|
+
txSignature: result.txSignature,
|
|
132
|
+
confirmed: result.confirmed,
|
|
133
|
+
amountIn: amountSol,
|
|
134
|
+
amountInToken: quoteMintStr,
|
|
135
|
+
dex: this.name,
|
|
136
|
+
poolAddress,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
// ----- Core: sell -----
|
|
140
|
+
async sell(params) {
|
|
141
|
+
const tokenMint = (0, types_1.requireTokenMint)(params, this.name);
|
|
142
|
+
const { percentage, quoteMint: quoteMintParam, poolAddress, opts } = params;
|
|
143
|
+
const connection = (0, config_1.getConnection)();
|
|
144
|
+
const wallet = (0, config_1.getWallet)();
|
|
145
|
+
const quoteMintStr = quoteMintParam ?? types_1.WSOL_MINT;
|
|
146
|
+
if (!poolAddress) {
|
|
147
|
+
throw new types_1.PoolNotFoundError(this.name, tokenMint, quoteMintStr);
|
|
148
|
+
}
|
|
149
|
+
const poolPk = new web3_js_1.PublicKey(poolAddress);
|
|
150
|
+
const baseMintPk = new web3_js_1.PublicKey(tokenMint);
|
|
151
|
+
const dbcClient = new dynamic_bonding_curve_sdk_1.DynamicBondingCurveClient(connection, "confirmed");
|
|
152
|
+
// Get token balance
|
|
153
|
+
const baseTokenProgram = await detectTokenProgram(baseMintPk);
|
|
154
|
+
const ata = await (0, spl_token_1.getAssociatedTokenAddress)(baseMintPk, wallet.publicKey, false, baseTokenProgram);
|
|
155
|
+
const tokenAccount = await (0, spl_token_1.getAccount)(connection, ata, "confirmed", baseTokenProgram);
|
|
156
|
+
const sellAmount = new bn_js_1.default(Math.floor((Number(tokenAccount.amount) * percentage) / 100).toString());
|
|
157
|
+
if (sellAmount.isZero())
|
|
158
|
+
throw new Error(`No balance to sell for ${tokenMint}`);
|
|
159
|
+
const tx = await dbcClient.pool.swap2({
|
|
160
|
+
swapMode: dynamic_bonding_curve_sdk_1.SwapMode.ExactIn,
|
|
161
|
+
swapBaseForQuote: true,
|
|
162
|
+
amountIn: sellAmount,
|
|
163
|
+
minimumAmountOut: new bn_js_1.default(0),
|
|
164
|
+
owner: wallet.publicKey,
|
|
165
|
+
pool: poolPk,
|
|
166
|
+
referralTokenAccount: null,
|
|
167
|
+
payer: wallet.publicKey,
|
|
168
|
+
});
|
|
169
|
+
const filteredIxs = filterSdkSetupIxs(tx.instructions);
|
|
170
|
+
const computeLimit = opts?.computeUnitLimit ?? types_1.DEFAULT_COMPUTE_UNIT_LIMIT;
|
|
171
|
+
const priorityFee = opts?.priorityFeeMicroLamports ?? types_1.DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS;
|
|
172
|
+
const ixs = [
|
|
173
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: computeLimit }),
|
|
174
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: priorityFee }),
|
|
175
|
+
...filteredIxs,
|
|
176
|
+
];
|
|
177
|
+
const rpcResult = await (0, send_rpc_1.sendAndConfirmVtx)(connection, ixs, wallet, {
|
|
178
|
+
addressLookupTables: opts?.addressLookupTables,
|
|
179
|
+
});
|
|
180
|
+
// Convert raw amount to human-readable using actual token decimals
|
|
181
|
+
let tokenDecimals = 9;
|
|
182
|
+
try {
|
|
183
|
+
const mintData = await connection.getTokenSupply(baseMintPk);
|
|
184
|
+
tokenDecimals = mintData.value.decimals;
|
|
185
|
+
}
|
|
186
|
+
catch { /* fallback to 9 */ }
|
|
187
|
+
const humanAmount = Number(sellAmount.toString()) / Math.pow(10, tokenDecimals);
|
|
188
|
+
return {
|
|
189
|
+
txSignature: rpcResult.txSignature,
|
|
190
|
+
confirmed: rpcResult.confirmed,
|
|
191
|
+
amountIn: humanAmount,
|
|
192
|
+
amountInToken: tokenMint,
|
|
193
|
+
dex: this.name,
|
|
194
|
+
poolAddress,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
// ----- Snipe -----
|
|
198
|
+
async snipe(params) {
|
|
199
|
+
const { tokenMint, amountSol, poolAddress, quoteMint: quoteMintParam, tipSol, opts } = params;
|
|
200
|
+
const connection = (0, config_1.getConnection)();
|
|
201
|
+
const wallet = (0, config_1.getWallet)();
|
|
202
|
+
const quoteMintStr = quoteMintParam ?? types_1.WSOL_MINT;
|
|
203
|
+
const poolPk = new web3_js_1.PublicKey(poolAddress);
|
|
204
|
+
const baseMintPk = new web3_js_1.PublicKey(tokenMint);
|
|
205
|
+
const quoteMintPk = new web3_js_1.PublicKey(quoteMintStr);
|
|
206
|
+
const amountIn = amountToLamports(amountSol, quoteMintStr);
|
|
207
|
+
const dbcClient = new dynamic_bonding_curve_sdk_1.DynamicBondingCurveClient(connection, "confirmed");
|
|
208
|
+
const poolState = await dbcClient.state.getPool(poolPk);
|
|
209
|
+
if (!poolState)
|
|
210
|
+
throw new Error(`Pool not found: ${poolAddress}`);
|
|
211
|
+
const swap2Params = {
|
|
212
|
+
swapMode: dynamic_bonding_curve_sdk_1.SwapMode.ExactIn,
|
|
213
|
+
swapBaseForQuote: false,
|
|
214
|
+
amountIn,
|
|
215
|
+
minimumAmountOut: new bn_js_1.default(0), // unlimited slippage for snipe
|
|
216
|
+
owner: wallet.publicKey,
|
|
217
|
+
pool: poolPk,
|
|
218
|
+
referralTokenAccount: null,
|
|
219
|
+
payer: wallet.publicKey,
|
|
220
|
+
};
|
|
221
|
+
const tx = await dbcClient.pool.swap2(swap2Params);
|
|
222
|
+
const filteredIxs = filterSdkSetupIxs(tx.instructions);
|
|
223
|
+
const computeLimit = opts?.computeUnitLimit ?? types_1.DEFAULT_COMPUTE_UNIT_LIMIT;
|
|
224
|
+
const priorityFee = opts?.priorityFeeMicroLamports ?? 40_000_000;
|
|
225
|
+
// Build snipe IXs with WSOL wrapping
|
|
226
|
+
const ixs = await this.buildBuyIxs(wallet.publicKey, baseMintPk, quoteMintPk, amountIn, filteredIxs, computeLimit, priorityFee);
|
|
227
|
+
const blockhash = await connection.getLatestBlockhash();
|
|
228
|
+
const results = await (0, landing_1.landTransaction)(ixs, wallet, blockhash, {
|
|
229
|
+
dex: this.name,
|
|
230
|
+
operation: "snipe",
|
|
231
|
+
tipSol,
|
|
232
|
+
addressLookupTables: opts?.addressLookupTables,
|
|
233
|
+
});
|
|
234
|
+
const accepted = results.find((r) => r.accepted);
|
|
235
|
+
return {
|
|
236
|
+
txSignature: accepted?.signature ?? "",
|
|
237
|
+
confirmed: !!accepted?.accepted,
|
|
238
|
+
amountIn: amountSol,
|
|
239
|
+
amountInToken: quoteMintStr,
|
|
240
|
+
dex: this.name,
|
|
241
|
+
poolAddress,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
// ----- buildSwapIxs -----
|
|
245
|
+
async buildSwapIxs(params) {
|
|
246
|
+
const connection = (0, config_1.getConnection)();
|
|
247
|
+
const wallet = (0, config_1.getWallet)();
|
|
248
|
+
const dbcClient = new dynamic_bonding_curve_sdk_1.DynamicBondingCurveClient(connection, "confirmed");
|
|
249
|
+
if ("percentage" in params) {
|
|
250
|
+
// Sell
|
|
251
|
+
const p = params;
|
|
252
|
+
const tokenMint = (0, types_1.requireTokenMint)(p, this.name);
|
|
253
|
+
if (!p.poolAddress)
|
|
254
|
+
throw new Error("poolAddress required for DBC buildSwapIxs");
|
|
255
|
+
const poolPk = new web3_js_1.PublicKey(p.poolAddress);
|
|
256
|
+
const baseMintPk = new web3_js_1.PublicKey(tokenMint);
|
|
257
|
+
const baseTokenProgram = await detectTokenProgram(baseMintPk);
|
|
258
|
+
const ata = await (0, spl_token_1.getAssociatedTokenAddress)(baseMintPk, wallet.publicKey, false, baseTokenProgram);
|
|
259
|
+
const tokenAccount = await (0, spl_token_1.getAccount)(connection, ata, "confirmed", baseTokenProgram);
|
|
260
|
+
const sellAmount = new bn_js_1.default(Math.floor((Number(tokenAccount.amount) * p.percentage) / 100).toString());
|
|
261
|
+
const tx = await dbcClient.pool.swap2({
|
|
262
|
+
swapMode: dynamic_bonding_curve_sdk_1.SwapMode.ExactIn,
|
|
263
|
+
swapBaseForQuote: true,
|
|
264
|
+
amountIn: sellAmount,
|
|
265
|
+
minimumAmountOut: new bn_js_1.default(0),
|
|
266
|
+
owner: wallet.publicKey,
|
|
267
|
+
pool: poolPk,
|
|
268
|
+
referralTokenAccount: null,
|
|
269
|
+
payer: wallet.publicKey,
|
|
270
|
+
});
|
|
271
|
+
return { instructions: filterSdkSetupIxs(tx.instructions), signers: [] };
|
|
272
|
+
}
|
|
273
|
+
// Buy
|
|
274
|
+
const p = params;
|
|
275
|
+
if (!p.poolAddress)
|
|
276
|
+
throw new Error("poolAddress required for DBC buildSwapIxs");
|
|
277
|
+
const poolPk = new web3_js_1.PublicKey(p.poolAddress);
|
|
278
|
+
const quoteMintStr = p.quoteMint ?? types_1.WSOL_MINT;
|
|
279
|
+
const amountIn = amountToLamports(p.amountSol, quoteMintStr);
|
|
280
|
+
const tx = await dbcClient.pool.swap2({
|
|
281
|
+
swapMode: dynamic_bonding_curve_sdk_1.SwapMode.ExactIn,
|
|
282
|
+
swapBaseForQuote: false,
|
|
283
|
+
amountIn,
|
|
284
|
+
minimumAmountOut: new bn_js_1.default(0),
|
|
285
|
+
owner: wallet.publicKey,
|
|
286
|
+
pool: poolPk,
|
|
287
|
+
referralTokenAccount: null,
|
|
288
|
+
payer: wallet.publicKey,
|
|
289
|
+
});
|
|
290
|
+
return { instructions: filterSdkSetupIxs(tx.instructions), signers: [] };
|
|
291
|
+
}
|
|
292
|
+
// ----- findPool (DBC pools must be provided) -----
|
|
293
|
+
async findPool(_baseMint, _quoteMint) {
|
|
294
|
+
// DBC pool discovery requires iterating all pools on-chain.
|
|
295
|
+
// Callers should provide poolAddress directly (from gRPC stream, etc.).
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
// ----- getPrice -----
|
|
299
|
+
async getPrice(poolAddress) {
|
|
300
|
+
const connection = (0, config_1.getConnection)();
|
|
301
|
+
const poolPk = new web3_js_1.PublicKey(poolAddress);
|
|
302
|
+
const dbcClient = new dynamic_bonding_curve_sdk_1.DynamicBondingCurveClient(connection, "confirmed");
|
|
303
|
+
const poolState = await dbcClient.state.getPool(poolPk);
|
|
304
|
+
if (!poolState)
|
|
305
|
+
throw new Error(`Pool not found: ${poolAddress}`);
|
|
306
|
+
// Fetch pool config to get quoteMint (quoteMint lives on PoolConfig, not VirtualPool)
|
|
307
|
+
const poolConfigState = await dbcClient.state.getPoolConfig(poolState.config);
|
|
308
|
+
if (!poolConfigState)
|
|
309
|
+
throw new Error(`Pool config not found: ${poolState.config.toString()}`);
|
|
310
|
+
// Fetch actual mint decimals for accurate price calculation
|
|
311
|
+
const [baseMintBal, quoteMintBal] = await Promise.all([
|
|
312
|
+
connection.getTokenSupply(poolState.baseMint),
|
|
313
|
+
connection.getTokenSupply(poolConfigState.quoteMint),
|
|
314
|
+
]);
|
|
315
|
+
const tokenADecimal = baseMintBal.value.decimals;
|
|
316
|
+
const tokenBDecimal = quoteMintBal.value.decimals;
|
|
317
|
+
const price = getPriceFromSqrtPrice(poolState.sqrtPrice, tokenADecimal, tokenBDecimal);
|
|
318
|
+
return {
|
|
319
|
+
price,
|
|
320
|
+
baseMint: poolState.baseMint.toBase58(),
|
|
321
|
+
quoteMint: poolConfigState.quoteMint.toBase58(),
|
|
322
|
+
source: "on-chain",
|
|
323
|
+
poolAddress,
|
|
324
|
+
timestamp: Date.now(),
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
// ----- Internal helpers -----
|
|
328
|
+
/**
|
|
329
|
+
* Build buy instructions with WSOL wrapping if needed.
|
|
330
|
+
* Ported from source: meteora-dbc/buy.ts snipe_dbc_with_known_pool()
|
|
331
|
+
*/
|
|
332
|
+
async buildBuyIxs(payer, baseMint, quoteMint, amountIn, swapIxs, computeLimit, priorityFee) {
|
|
333
|
+
const baseTokenProgram = await detectTokenProgram(baseMint);
|
|
334
|
+
const quoteTokenProgram = quoteMint.toBase58() === types_1.WSOL_MINT ? spl_token_1.TOKEN_PROGRAM_ID : await detectTokenProgram(quoteMint);
|
|
335
|
+
const inputAta = await (0, spl_token_1.getAssociatedTokenAddress)(quoteMint, payer, false, quoteTokenProgram);
|
|
336
|
+
const outputAta = await (0, spl_token_1.getAssociatedTokenAddress)(baseMint, payer, false, baseTokenProgram);
|
|
337
|
+
const createInputAta = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(payer, inputAta, payer, quoteMint, quoteTokenProgram);
|
|
338
|
+
const createOutputAta = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(payer, outputAta, payer, baseMint, baseTokenProgram);
|
|
339
|
+
const isWsolQuote = quoteMint.toBase58() === types_1.WSOL_MINT;
|
|
340
|
+
if (isWsolQuote) {
|
|
341
|
+
const transferIx = web3_js_1.SystemProgram.transfer({
|
|
342
|
+
fromPubkey: payer,
|
|
343
|
+
toPubkey: inputAta,
|
|
344
|
+
lamports: amountIn.toNumber(),
|
|
345
|
+
});
|
|
346
|
+
const syncIx = (0, spl_token_1.createSyncNativeInstruction)(inputAta, spl_token_1.TOKEN_PROGRAM_ID);
|
|
347
|
+
const closeIx = (0, spl_token_1.createCloseAccountInstruction)(inputAta, payer, payer, [], spl_token_1.TOKEN_PROGRAM_ID);
|
|
348
|
+
return [
|
|
349
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: computeLimit }),
|
|
350
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: priorityFee }),
|
|
351
|
+
createInputAta,
|
|
352
|
+
createOutputAta,
|
|
353
|
+
transferIx,
|
|
354
|
+
syncIx,
|
|
355
|
+
...swapIxs,
|
|
356
|
+
closeIx,
|
|
357
|
+
];
|
|
358
|
+
}
|
|
359
|
+
// Non-WSOL quote: just create ATAs and swap
|
|
360
|
+
return [
|
|
361
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: computeLimit }),
|
|
362
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: priorityFee }),
|
|
363
|
+
createInputAta,
|
|
364
|
+
createOutputAta,
|
|
365
|
+
...swapIxs,
|
|
366
|
+
];
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
exports.MeteoraDbcAdapter = MeteoraDbcAdapter;
|
|
370
|
+
// ---------------------------------------------------------------------------
|
|
371
|
+
// Auto-register
|
|
372
|
+
// ---------------------------------------------------------------------------
|
|
373
|
+
(0, index_1.registerAdapter)(new MeteoraDbcAdapter());
|
|
374
|
+
//# sourceMappingURL=meteora-dbc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meteora-dbc.js","sourceRoot":"","sources":["../../src/dex/meteora-dbc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meteora DLMM (Dynamic Liquidity Market Maker) — IDexAdapter Implementation
|
|
3
|
+
*
|
|
4
|
+
* Wraps the @meteora-ag/dlmm SDK for buy/sell/snipe/findPool/getPrice
|
|
5
|
+
* plus LP operations: addLiquidity, removeLiquidity, claimFees, listPositions.
|
|
6
|
+
*
|
|
7
|
+
* Source: 100x-algo-bots/trading-modules/meteora-dlmm/
|
|
8
|
+
*
|
|
9
|
+
* IMPORTANT BUG FIX: Source code hardcodes `swapYtoX = true` which only works
|
|
10
|
+
* when the user is buying (spending Y/quote to get X/base). This adapter
|
|
11
|
+
* dynamically computes the swap direction based on which token is the quote.
|
|
12
|
+
*
|
|
13
|
+
* SDK patterns:
|
|
14
|
+
* // Swaps
|
|
15
|
+
* const dlmmPool = await DLMM.create(connection, poolAddress);
|
|
16
|
+
* const binArrays = await dlmmPool.getBinArrayForSwap(swapYtoX);
|
|
17
|
+
* const quote = await dlmmPool.swapQuote(amount, swapYtoX, slippage, binArrays);
|
|
18
|
+
* const swapTx = await dlmmPool.swap({ inToken, outToken, ... });
|
|
19
|
+
*
|
|
20
|
+
* // LP operations
|
|
21
|
+
* const createTx = await dlmmPool.initializePositionAndAddLiquidityByStrategy({...});
|
|
22
|
+
* const removeTxs = await dlmmPool.removeLiquidity({...});
|
|
23
|
+
* const claimTxs = await dlmmPool.claimSwapFee({...});
|
|
24
|
+
*/
|
|
25
|
+
import { IDexAdapter, DexCapabilities, BuyParams, SellParams, SnipeParams, SwapResult, PoolInfo, PriceInfo, BuildSwapIxsResult, AddLiquidityParams, RemoveLiquidityParams, TxResult, LpPositionInfo } from "./types";
|
|
26
|
+
export declare class MeteoraDlmmAdapter implements IDexAdapter {
|
|
27
|
+
readonly name = "meteora-dlmm";
|
|
28
|
+
readonly protocol = "dlmm";
|
|
29
|
+
readonly capabilities: DexCapabilities;
|
|
30
|
+
buy(params: BuyParams): Promise<SwapResult>;
|
|
31
|
+
sell(params: SellParams): Promise<SwapResult>;
|
|
32
|
+
snipe(params: SnipeParams): Promise<SwapResult>;
|
|
33
|
+
buildSwapIxs(params: BuyParams | SellParams): Promise<BuildSwapIxsResult>;
|
|
34
|
+
findPool(baseMint: string, quoteMint?: string): Promise<PoolInfo | null>;
|
|
35
|
+
getPrice(poolAddress: string): Promise<PriceInfo>;
|
|
36
|
+
/**
|
|
37
|
+
* Add liquidity to a Meteora DLMM pool.
|
|
38
|
+
*
|
|
39
|
+
* Three modes (determined by which amounts are provided):
|
|
40
|
+
*
|
|
41
|
+
* 1. One-sided SOL (amountSol > 0, no amountToken):
|
|
42
|
+
* Bins below active bin, filled with SOL. Most common use case.
|
|
43
|
+
*
|
|
44
|
+
* 2. One-sided token (amountToken > 0, no amountSol):
|
|
45
|
+
* Bins above active bin, filled with the non-SOL token.
|
|
46
|
+
* Useful for DCA-out strategies.
|
|
47
|
+
*
|
|
48
|
+
* 3. Balanced (both amountSol and amountToken > 0):
|
|
49
|
+
* Bins centered around active bin with both tokens.
|
|
50
|
+
*
|
|
51
|
+
* @returns TxResult with positionAddress for the created position.
|
|
52
|
+
*/
|
|
53
|
+
addLiquidity(params: AddLiquidityParams): Promise<TxResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Remove liquidity from a Meteora DLMM pool position.
|
|
56
|
+
*
|
|
57
|
+
* If positionAddress is provided, removes from that specific position.
|
|
58
|
+
* Otherwise, removes from the first position found in the pool.
|
|
59
|
+
*
|
|
60
|
+
* If percentage is 100, also claims fees and closes the position.
|
|
61
|
+
*/
|
|
62
|
+
removeLiquidity(params: RemoveLiquidityParams): Promise<TxResult>;
|
|
63
|
+
/**
|
|
64
|
+
* Claim accumulated swap fees from a DLMM LP position.
|
|
65
|
+
*
|
|
66
|
+
* If positionAddress is provided, claims from that specific position.
|
|
67
|
+
* Otherwise, claims from the first position found in the pool.
|
|
68
|
+
*/
|
|
69
|
+
claimFees(poolAddress: string, positionAddress?: string): Promise<TxResult>;
|
|
70
|
+
/**
|
|
71
|
+
* List user's LP positions in a DLMM pool.
|
|
72
|
+
*
|
|
73
|
+
* Returns position details including bin range, token amounts,
|
|
74
|
+
* unclaimed fees, and whether the position is in range.
|
|
75
|
+
*/
|
|
76
|
+
listPositions(poolAddress: string): Promise<LpPositionInfo[]>;
|
|
77
|
+
private resolvePool;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=meteora-dlmm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meteora-dlmm.d.ts","sourceRoot":"","sources":["../../src/dex/meteora-dlmm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAgBH,OAAO,EACL,WAAW,EACX,eAAe,EAEf,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,cAAc,EAWf,MAAM,SAAS,CAAC;AAwFjB,qBAAa,kBAAmB,YAAW,WAAW;IACpD,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,UAAU;IAC3B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAUnC;IAIG,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IA0D3C,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAyF7C,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAiE/C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkDzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAcxE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA0BvD;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+GjE;;;;;;;OAOG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6FvE;;;;;OAKG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6FjF;;;;;OAKG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAsDrD,WAAW;CAO1B"}
|