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,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logger — zero dependencies, tagged console output.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* import { log } from "./helpers/logger";
|
|
6
|
+
* log.info("connected"); // [info] connected
|
|
7
|
+
* log.debug("payload", x); // only prints when DEBUG=1 or OUTSMART_DEBUG=1
|
|
8
|
+
*/
|
|
9
|
+
export declare const log: {
|
|
10
|
+
info(msg: string): void;
|
|
11
|
+
warn(msg: string): void;
|
|
12
|
+
error(msg: string): void;
|
|
13
|
+
debug(msg: string): void;
|
|
14
|
+
success(msg: string): void;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Backward-compatible alias — existing code imports `{ logger }` and calls
|
|
18
|
+
* `logger.info(...)`. This keeps those call-sites working without changes.
|
|
19
|
+
*/
|
|
20
|
+
export declare const logger: {
|
|
21
|
+
info(msg: string): void;
|
|
22
|
+
warn(msg: string): void;
|
|
23
|
+
error(msg: string): void;
|
|
24
|
+
debug(msg: string): void;
|
|
25
|
+
success(msg: string): void;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/helpers/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,eAAO,MAAM,GAAG;cACJ,MAAM,GAAG,IAAI;cAGb,MAAM,GAAG,IAAI;eAGZ,MAAM,GAAG,IAAI;eAGb,MAAM,GAAG,IAAI;iBAKX,MAAM,GAAG,IAAI;CAG3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM;cAvBP,MAAM,GAAG,IAAI;cAGb,MAAM,GAAG,IAAI;eAGZ,MAAM,GAAG,IAAI;eAGb,MAAM,GAAG,IAAI;iBAKX,MAAM,GAAG,IAAI;CASH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Structured logger — zero dependencies, tagged console output.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* import { log } from "./helpers/logger";
|
|
7
|
+
* log.info("connected"); // [info] connected
|
|
8
|
+
* log.debug("payload", x); // only prints when DEBUG=1 or OUTSMART_DEBUG=1
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.logger = exports.log = void 0;
|
|
12
|
+
function isDebugEnabled() {
|
|
13
|
+
return process.env.DEBUG === "1" || process.env.OUTSMART_DEBUG === "1";
|
|
14
|
+
}
|
|
15
|
+
exports.log = {
|
|
16
|
+
info(msg) {
|
|
17
|
+
console.log(`[info] ${msg}`);
|
|
18
|
+
},
|
|
19
|
+
warn(msg) {
|
|
20
|
+
console.error(`[warn] ${msg}`);
|
|
21
|
+
},
|
|
22
|
+
error(msg) {
|
|
23
|
+
console.error(`[error] ${msg}`);
|
|
24
|
+
},
|
|
25
|
+
debug(msg) {
|
|
26
|
+
if (isDebugEnabled()) {
|
|
27
|
+
console.log(`[debug] ${msg}`);
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
success(msg) {
|
|
31
|
+
console.log(`[ok] ${msg}`);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Backward-compatible alias — existing code imports `{ logger }` and calls
|
|
36
|
+
* `logger.info(...)`. This keeps those call-sites working without changes.
|
|
37
|
+
*/
|
|
38
|
+
exports.logger = exports.log;
|
|
39
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/helpers/logger.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;AACzE,CAAC;AAEY,QAAA,GAAG,GAAG;IACjB,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,GAAW;QACf,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,GAAW;QACf,IAAI,cAAc,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAW;QACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAEF;;;GAGG;AACU,QAAA,MAAM,GAAG,WAAG,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token-2022 Detection Utility
|
|
3
|
+
*
|
|
4
|
+
* Detects whether a mint uses the standard SPL Token program or Token-2022.
|
|
5
|
+
* Used by multiple DEX adapters (futarchy-amm, futarchy-launchpad, dflow, etc.)
|
|
6
|
+
* to correctly derive ATAs and build instructions.
|
|
7
|
+
*
|
|
8
|
+
* Source: 100x-algo-bots/trading-modules/futarchy-amm/utils.ts
|
|
9
|
+
*/
|
|
10
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
11
|
+
/**
|
|
12
|
+
* Get the token program for a given mint (supports both SPL Token and Token-2022).
|
|
13
|
+
*
|
|
14
|
+
* Reads the on-chain account to check its owner program. If the mint account
|
|
15
|
+
* is owned by Token-2022, returns TOKEN_2022_PROGRAM_ID; otherwise returns
|
|
16
|
+
* TOKEN_PROGRAM_ID.
|
|
17
|
+
*
|
|
18
|
+
* @param connection - Solana RPC connection
|
|
19
|
+
* @param mint - Mint public key
|
|
20
|
+
* @returns TOKEN_PROGRAM_ID or TOKEN_2022_PROGRAM_ID
|
|
21
|
+
* @throws Error if the mint account is not found on-chain
|
|
22
|
+
*/
|
|
23
|
+
export declare function getTokenProgram(connection: Connection, mint: PublicKey): Promise<PublicKey>;
|
|
24
|
+
/**
|
|
25
|
+
* Check if a mint uses Token-2022.
|
|
26
|
+
*
|
|
27
|
+
* @param connection - Solana RPC connection
|
|
28
|
+
* @param mint - Mint public key
|
|
29
|
+
* @returns true if the mint uses Token-2022, false otherwise
|
|
30
|
+
*/
|
|
31
|
+
export declare function isToken2022(connection: Connection, mint: PublicKey): Promise<boolean>;
|
|
32
|
+
//# sourceMappingURL=token-2022.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-2022.d.ts","sourceRoot":"","sources":["../../src/helpers/token-2022.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGxD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,CAAC,CASpB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Token-2022 Detection Utility
|
|
4
|
+
*
|
|
5
|
+
* Detects whether a mint uses the standard SPL Token program or Token-2022.
|
|
6
|
+
* Used by multiple DEX adapters (futarchy-amm, futarchy-launchpad, dflow, etc.)
|
|
7
|
+
* to correctly derive ATAs and build instructions.
|
|
8
|
+
*
|
|
9
|
+
* Source: 100x-algo-bots/trading-modules/futarchy-amm/utils.ts
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getTokenProgram = getTokenProgram;
|
|
13
|
+
exports.isToken2022 = isToken2022;
|
|
14
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
15
|
+
/**
|
|
16
|
+
* Get the token program for a given mint (supports both SPL Token and Token-2022).
|
|
17
|
+
*
|
|
18
|
+
* Reads the on-chain account to check its owner program. If the mint account
|
|
19
|
+
* is owned by Token-2022, returns TOKEN_2022_PROGRAM_ID; otherwise returns
|
|
20
|
+
* TOKEN_PROGRAM_ID.
|
|
21
|
+
*
|
|
22
|
+
* @param connection - Solana RPC connection
|
|
23
|
+
* @param mint - Mint public key
|
|
24
|
+
* @returns TOKEN_PROGRAM_ID or TOKEN_2022_PROGRAM_ID
|
|
25
|
+
* @throws Error if the mint account is not found on-chain
|
|
26
|
+
*/
|
|
27
|
+
async function getTokenProgram(connection, mint) {
|
|
28
|
+
const mintInfo = await connection.getAccountInfo(mint);
|
|
29
|
+
if (!mintInfo) {
|
|
30
|
+
throw new Error(`Mint account not found: ${mint.toBase58()}`);
|
|
31
|
+
}
|
|
32
|
+
if (mintInfo.owner.equals(spl_token_1.TOKEN_2022_PROGRAM_ID)) {
|
|
33
|
+
return spl_token_1.TOKEN_2022_PROGRAM_ID;
|
|
34
|
+
}
|
|
35
|
+
return spl_token_1.TOKEN_PROGRAM_ID;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if a mint uses Token-2022.
|
|
39
|
+
*
|
|
40
|
+
* @param connection - Solana RPC connection
|
|
41
|
+
* @param mint - Mint public key
|
|
42
|
+
* @returns true if the mint uses Token-2022, false otherwise
|
|
43
|
+
*/
|
|
44
|
+
async function isToken2022(connection, mint) {
|
|
45
|
+
const program = await getTokenProgram(connection, mint);
|
|
46
|
+
return program.equals(spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=token-2022.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-2022.js","sourceRoot":"","sources":["../../src/helpers/token-2022.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAiBH,0CAYC;AASD,kCAMC;AAzCD,iDAA4E;AAE5E;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,IAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAqB,CAAC,EAAE,CAAC;QACjD,OAAO,iCAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,4BAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,IAAe;IAEf,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,MAAM,CAAC,iCAAqB,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwrap_sol.d.ts","sourceRoot":"","sources":["../../src/helpers/unwrap_sol.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAuD/C"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unwrapSol = unwrapSol;
|
|
4
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
5
|
+
const config_1 = require("./config");
|
|
6
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
7
|
+
const jito_tips_tx_executor_1 = require("../transactions/jito_tips_tx_executor");
|
|
8
|
+
async function unwrapSol() {
|
|
9
|
+
const wallet = (0, config_1.getWallet)();
|
|
10
|
+
const connection = (0, config_1.getConnection)();
|
|
11
|
+
// wSol ATA
|
|
12
|
+
const wSolAta = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)(connection, wallet, spl_token_1.NATIVE_MINT, wallet.publicKey);
|
|
13
|
+
// close wSol account instruction
|
|
14
|
+
const transaction = new web3_js_1.Transaction();
|
|
15
|
+
transaction.add((0, spl_token_1.createCloseAccountInstruction)(wSolAta.address, wallet.publicKey, wallet.publicKey));
|
|
16
|
+
let latestBlockhash = await connection.getLatestBlockhash();
|
|
17
|
+
const messageV0 = new web3_js_1.TransactionMessage({
|
|
18
|
+
payerKey: wallet.publicKey,
|
|
19
|
+
recentBlockhash: latestBlockhash.blockhash,
|
|
20
|
+
instructions: [
|
|
21
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 70000 }),
|
|
22
|
+
...transaction.instructions,
|
|
23
|
+
],
|
|
24
|
+
}).compileToV0Message();
|
|
25
|
+
const tx = new web3_js_1.VersionedTransaction(messageV0);
|
|
26
|
+
tx.sign([wallet]);
|
|
27
|
+
let attempts = 0;
|
|
28
|
+
const maxAttempts = 3;
|
|
29
|
+
while (attempts < maxAttempts) {
|
|
30
|
+
attempts++;
|
|
31
|
+
try {
|
|
32
|
+
const res = await (0, jito_tips_tx_executor_1.jito_executeAndConfirm)(tx, wallet, latestBlockhash, config_1.jito_fee);
|
|
33
|
+
const signature = res.signature;
|
|
34
|
+
if (signature) {
|
|
35
|
+
console.log(`Transaction successful: ${signature}`);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log("jito fee transaction failed");
|
|
40
|
+
console.log(`Retry attempt ${attempts}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
console.log(e);
|
|
45
|
+
}
|
|
46
|
+
latestBlockhash = await connection.getLatestBlockhash();
|
|
47
|
+
}
|
|
48
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
49
|
+
const new_sol_balance = await connection.getBalance(wallet.publicKey);
|
|
50
|
+
console.log(`new sol balance: ${new_sol_balance / web3_js_1.LAMPORTS_PER_SOL}`);
|
|
51
|
+
}
|
|
52
|
+
// CLI entry point -- only runs when executed directly
|
|
53
|
+
if (require.main === module) {
|
|
54
|
+
const { program } = require("commander");
|
|
55
|
+
const { logger } = require("./logger");
|
|
56
|
+
program
|
|
57
|
+
.option("-h, --help", "display help for command")
|
|
58
|
+
.action(async (options) => {
|
|
59
|
+
if (options.help) {
|
|
60
|
+
logger.info("ts-node src/helpers/unwrap_sol.ts");
|
|
61
|
+
process.exit(0);
|
|
62
|
+
}
|
|
63
|
+
await unwrapSol();
|
|
64
|
+
});
|
|
65
|
+
program.parse();
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=unwrap_sol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwrap_sol.js","sourceRoot":"","sources":["../../src/helpers/unwrap_sol.ts"],"names":[],"mappings":"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"}
|