forgex-cli 1.0.59 → 1.0.62
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 +375 -368
- package/dist/bin/forgex.d.ts +5 -5
- package/dist/bin/forgex.js +14 -14
- package/dist/bin/forgex.js.map +1 -1
- package/dist/src/adapters/codex-adapter.d.ts +90 -90
- package/dist/src/adapters/codex-adapter.d.ts.map +1 -1
- package/dist/src/adapters/codex-adapter.js +76 -76
- package/dist/src/adapters/codex-adapter.js.map +1 -1
- package/dist/src/adapters/connection.d.ts +6 -6
- package/dist/src/adapters/connection.js +8 -8
- package/dist/src/adapters/connection.js.map +1 -1
- package/dist/src/adapters/ipfs.d.ts +3 -3
- package/dist/src/adapters/ipfs.js +3 -3
- package/dist/src/adapters/jito-adapter.d.ts +85 -85
- package/dist/src/adapters/jito-adapter.d.ts.map +1 -1
- package/dist/src/adapters/jito-adapter.js +111 -111
- package/dist/src/adapters/jito-adapter.js.map +1 -1
- package/dist/src/adapters/rpc-adapter.d.ts +53 -53
- package/dist/src/adapters/rpc-adapter.d.ts.map +1 -1
- package/dist/src/adapters/rpc-adapter.js +69 -69
- package/dist/src/adapters/rpc-adapter.js.map +1 -1
- package/dist/src/adapters/sdk-adapter.d.ts +21 -21
- package/dist/src/adapters/sdk-adapter.d.ts.map +1 -1
- package/dist/src/adapters/sdk-adapter.js +79 -79
- package/dist/src/adapters/sdk-adapter.js.map +1 -1
- package/dist/src/commands/config/index.d.ts +1 -1
- package/dist/src/commands/config/index.js +15 -15
- package/dist/src/commands/config/index.js.map +1 -1
- package/dist/src/commands/query/index.d.ts +2 -2
- package/dist/src/commands/query/index.js +82 -82
- package/dist/src/commands/query/index.js.map +1 -1
- package/dist/src/commands/token/index.d.ts +8 -8
- package/dist/src/commands/token/index.js +73 -73
- package/dist/src/commands/token/index.js.map +1 -1
- package/dist/src/commands/tools/index.d.ts +9 -9
- package/dist/src/commands/tools/index.js +137 -137
- package/dist/src/commands/tools/index.js.map +1 -1
- package/dist/src/commands/trade/index.d.ts +2 -2
- package/dist/src/commands/trade/index.d.ts.map +1 -1
- package/dist/src/commands/trade/index.js +120 -82
- package/dist/src/commands/trade/index.js.map +1 -1
- package/dist/src/commands/transfer/index.d.ts +8 -8
- package/dist/src/commands/transfer/index.js +106 -106
- package/dist/src/commands/transfer/index.js.map +1 -1
- package/dist/src/commands/wallet/index.d.ts +1 -1
- package/dist/src/commands/wallet/index.js +175 -175
- package/dist/src/commands/wallet/index.js.map +1 -1
- package/dist/src/config.d.ts +26 -26
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +28 -28
- package/dist/src/config.js.map +1 -1
- package/dist/src/const/index.js +1 -1
- package/dist/src/const/index.js.map +1 -1
- package/dist/src/data-source.d.ts +81 -81
- package/dist/src/data-source.d.ts.map +1 -1
- package/dist/src/data-source.js +149 -149
- package/dist/src/data-source.js.map +1 -1
- package/dist/src/data-store/index.d.ts +22 -22
- package/dist/src/data-store/index.d.ts.map +1 -1
- package/dist/src/data-store/index.js +46 -46
- package/dist/src/data-store/index.js.map +1 -1
- package/dist/src/data-store/types.d.ts +3 -3
- package/dist/src/data-store/types.js +3 -3
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.js +10 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/output.d.ts +18 -18
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +34 -34
- package/dist/src/output.js.map +1 -1
- package/dist/src/shims/store.d.ts +3 -2
- package/dist/src/shims/store.d.ts.map +1 -1
- package/dist/src/shims/store.js +6 -5
- package/dist/src/shims/store.js.map +1 -1
- package/dist/src/sol-sdk/batch/create.d.ts +4 -1
- package/dist/src/sol-sdk/batch/create.d.ts.map +1 -1
- package/dist/src/sol-sdk/batch/create.js +44 -44
- package/dist/src/sol-sdk/batch/create.js.map +1 -1
- package/dist/src/sol-sdk/batch/index.js +135 -135
- package/dist/src/sol-sdk/batch/index.js.map +1 -1
- package/dist/src/sol-sdk/calc.d.ts +63 -63
- package/dist/src/sol-sdk/calc.d.ts.map +1 -1
- package/dist/src/sol-sdk/calc.js +120 -120
- package/dist/src/sol-sdk/calc.js.map +1 -1
- package/dist/src/sol-sdk/jito/index.js +12 -12
- package/dist/src/sol-sdk/jito/index.js.map +1 -1
- package/dist/src/sol-sdk/launchlab/instructions/create.js +10 -10
- package/dist/src/sol-sdk/launchlab/instructions/create.js.map +1 -1
- package/dist/src/sol-sdk/meteora/index.d.ts +5 -5
- package/dist/src/sol-sdk/meteora/index.js +11 -11
- package/dist/src/sol-sdk/meteora/index.js.map +1 -1
- package/dist/src/sol-sdk/meteora/instructions/buy.js +8 -8
- package/dist/src/sol-sdk/meteora/instructions/buy.js.map +1 -1
- package/dist/src/sol-sdk/meteora/instructions/sell.js +6 -6
- package/dist/src/sol-sdk/meteora/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/pump/index.js +3 -3
- package/dist/src/sol-sdk/pump/index.js.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/buy.d.ts +12 -12
- package/dist/src/sol-sdk/pump/instructions/buy.d.ts.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/buy.js +26 -26
- package/dist/src/sol-sdk/pump/instructions/buy.js.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/createAndBuy.d.ts +13 -13
- package/dist/src/sol-sdk/pump/instructions/createAndBuy.js +17 -17
- package/dist/src/sol-sdk/pump/instructions/createAndBuy.js.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/sell.d.ts +2 -2
- package/dist/src/sol-sdk/pump/instructions/sell.d.ts.map +1 -1
- package/dist/src/sol-sdk/pump/instructions/sell.js +7 -7
- package/dist/src/sol-sdk/pump/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/index.d.ts +4 -4
- package/dist/src/sol-sdk/pumpswap/index.js +5 -5
- package/dist/src/sol-sdk/pumpswap/index.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/instructions/buy.d.ts +8 -8
- package/dist/src/sol-sdk/pumpswap/instructions/buy.js +19 -19
- package/dist/src/sol-sdk/pumpswap/instructions/buy.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/instructions/migrate.js +2 -2
- package/dist/src/sol-sdk/pumpswap/instructions/migrate.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/instructions/sell.js +4 -4
- package/dist/src/sol-sdk/pumpswap/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/pumpswap/rpc/index.js +1 -1
- package/dist/src/sol-sdk/pumpswap/rpc/index.js.map +1 -1
- package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js +3 -3
- package/dist/src/sol-sdk/raydium/instructions/cpmmSell.js.map +1 -1
- package/dist/src/sol-sdk/raydium/instructions/sell.d.ts +40 -8520
- package/dist/src/sol-sdk/raydium/instructions/sell.d.ts.map +1 -1
- package/dist/src/sol-sdk/raydium/instructions/sell.js +6 -6
- package/dist/src/sol-sdk/raydium/instructions/sell.js.map +1 -1
- package/dist/src/sol-sdk/raydium/rpc/index.d.ts +4 -4
- package/dist/src/sol-sdk/rpc/index.d.ts +14 -14
- package/dist/src/sol-sdk/rpc/index.d.ts.map +1 -1
- package/dist/src/sol-sdk/rpc/index.js +17 -17
- package/dist/src/sol-sdk/rpc/index.js.map +1 -1
- package/dist/src/sol-sdk/transfer/index.js +5 -5
- package/dist/src/sol-sdk/transfer/index.js.map +1 -1
- package/dist/src/sol-sdk/turnover/index.d.ts +3 -3
- package/dist/src/sol-sdk/turnover/index.js +56 -56
- package/dist/src/sol-sdk/turnover/index.js.map +1 -1
- package/dist/src/telemetry.d.ts +8 -8
- package/dist/src/telemetry.d.ts.map +1 -1
- package/dist/src/telemetry.js +25 -25
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/tx-tracker/detail-adapter.d.ts +53 -53
- package/dist/src/tx-tracker/detail-adapter.d.ts.map +1 -1
- package/dist/src/tx-tracker/detail-adapter.js +68 -68
- package/dist/src/tx-tracker/detail-adapter.js.map +1 -1
- package/dist/src/tx-tracker/index.d.ts +67 -67
- package/dist/src/tx-tracker/index.d.ts.map +1 -1
- package/dist/src/tx-tracker/index.js +103 -103
- package/dist/src/tx-tracker/index.js.map +1 -1
- package/dist/src/types/index.d.ts +10 -10
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/websocket.js +1 -1
- package/dist/src/types/websocket.js.map +1 -1
- package/dist/src/utils/index.js +20 -20
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/wallet-store.d.ts +51 -51
- package/dist/src/wallet-store.d.ts.map +1 -1
- package/dist/src/wallet-store.js +104 -104
- package/dist/src/wallet-store.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/forgex.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* ForgeX CLI
|
|
3
|
+
* ForgeX CLI Entry Point
|
|
4
4
|
*
|
|
5
|
-
* Solana
|
|
5
|
+
* Solana on-chain market-making system CLI tool
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* 1.
|
|
9
|
-
* 2.
|
|
7
|
+
* Startup flow:
|
|
8
|
+
* 1. Detect if wallet store uses legacy format (plaintext private keys); if so, auto-migrate to encrypted format
|
|
9
|
+
* 2. Build command tree and parse CLI arguments
|
|
10
10
|
*/
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=forgex.d.ts.map
|
package/dist/bin/forgex.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* ForgeX CLI
|
|
3
|
+
* ForgeX CLI Entry Point
|
|
4
4
|
*
|
|
5
|
-
* Solana
|
|
5
|
+
* Solana on-chain market-making system CLI tool
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* 1.
|
|
9
|
-
* 2.
|
|
7
|
+
* Startup flow:
|
|
8
|
+
* 1. Detect if wallet store uses legacy format (plaintext private keys); if so, auto-migrate to encrypted format
|
|
9
|
+
* 2. Build command tree and parse CLI arguments
|
|
10
10
|
*/
|
|
11
11
|
import { createProgram } from '../src/index.js';
|
|
12
12
|
import { migrateToEncryptedStore, setMasterPassword } from '../src/wallet-store.js';
|
|
13
13
|
import { trackCommand, shutdownTelemetry } from '../src/telemetry.js';
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Extract global --password argument from argv (before the subcommand name).
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Not registered as a Commander global option because wallet import-group / export-group
|
|
18
|
+
* already have a --password subcommand option; registering it on program would conflict.
|
|
19
19
|
*/
|
|
20
20
|
function extractGlobalPassword(argv) {
|
|
21
21
|
const cleaned = [...argv];
|
|
22
22
|
for (let i = 2; i < cleaned.length; i++) {
|
|
23
|
-
//
|
|
23
|
+
// Non-dash argument means we've reached the subcommand name; stop searching
|
|
24
24
|
if (!cleaned[i].startsWith('-'))
|
|
25
25
|
break;
|
|
26
26
|
if (cleaned[i].startsWith('--password=')) {
|
|
@@ -33,21 +33,21 @@ function extractGlobalPassword(argv) {
|
|
|
33
33
|
cleaned.splice(i, 2);
|
|
34
34
|
return { password: pw, cleanedArgv: cleaned };
|
|
35
35
|
}
|
|
36
|
-
//
|
|
36
|
+
// Skip other --key value global arguments (e.g. --format json)
|
|
37
37
|
if (cleaned[i].startsWith('--') && !cleaned[i].includes('='))
|
|
38
38
|
i++;
|
|
39
39
|
}
|
|
40
40
|
return { password: null, cleanedArgv: cleaned };
|
|
41
41
|
}
|
|
42
42
|
async function main() {
|
|
43
|
-
//
|
|
43
|
+
// Extract global --password (highest priority: --password > FORGEX_PASSWORD env > interactive prompt)
|
|
44
44
|
const { password, cleanedArgv } = extractGlobalPassword(process.argv);
|
|
45
45
|
if (password)
|
|
46
46
|
setMasterPassword(password);
|
|
47
|
-
//
|
|
47
|
+
// Detect and migrate legacy wallet store (plaintext private keys -> AES encryption)
|
|
48
48
|
await migrateToEncryptedStore();
|
|
49
49
|
const program = createProgram();
|
|
50
|
-
//
|
|
50
|
+
// Telemetry: track command execution (extract subcommand name)
|
|
51
51
|
const args = cleanedArgv.slice(2).filter(a => !a.startsWith('-'));
|
|
52
52
|
const command = args.join(' ') || 'help';
|
|
53
53
|
trackCommand(command);
|
|
@@ -55,7 +55,7 @@ async function main() {
|
|
|
55
55
|
}
|
|
56
56
|
main()
|
|
57
57
|
.catch((err) => {
|
|
58
|
-
console.error('
|
|
58
|
+
console.error('Startup failed:', err.message || err);
|
|
59
59
|
process.exit(1);
|
|
60
60
|
})
|
|
61
61
|
.finally(() => {
|
package/dist/bin/forgex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgex.js","sourceRoot":"","sources":["../../bin/forgex.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEtE;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,IAAc;IAI3C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,
|
|
1
|
+
{"version":3,"file":"forgex.js","sourceRoot":"","sources":["../../bin/forgex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,139 +1,139 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ForgeX CLI Codex API
|
|
2
|
+
* ForgeX CLI Codex API Data Source Adapter
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Fetches token info, prices, candlestick and other market data via Codex GraphQL API,
|
|
5
|
+
* replacing the previous dependency on forgex.online/api.
|
|
6
6
|
*
|
|
7
|
-
* Codex API
|
|
8
|
-
* GraphQL
|
|
7
|
+
* Codex API docs: https://docs.codex.io
|
|
8
|
+
* GraphQL endpoint: https://graph.codex.io/graphql
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* Design reference: ARCH-DESIGN-v2.md Section 2.3
|
|
11
11
|
*/
|
|
12
|
-
/** Solana
|
|
12
|
+
/** Solana networkId in Codex */
|
|
13
13
|
declare const SOLANA_NETWORK_ID = 1399811149;
|
|
14
|
-
/** SOL
|
|
14
|
+
/** Wrapped SOL address (Codex doesn't support native token queries, use Wrapped SOL) */
|
|
15
15
|
declare const WRAPPED_SOL_MINT = "So11111111111111111111111111111111111111112";
|
|
16
|
-
/** Codex API
|
|
16
|
+
/** Codex API configuration */
|
|
17
17
|
export interface CodexConfig {
|
|
18
18
|
/** Codex API Key */
|
|
19
19
|
apiKey: string;
|
|
20
|
-
/** GraphQL
|
|
20
|
+
/** GraphQL endpoint (default https://graph.codex.io/graphql) */
|
|
21
21
|
baseUrl?: string;
|
|
22
|
-
/**
|
|
22
|
+
/** Max retry count */
|
|
23
23
|
maxRetries?: number;
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
25
|
+
/** Token info (aligned with ARCH-DESIGN-v2.md TokenInfoFile) */
|
|
26
26
|
export interface CodexTokenInfo {
|
|
27
|
-
/**
|
|
27
|
+
/** Contract address */
|
|
28
28
|
address: string;
|
|
29
|
-
/**
|
|
29
|
+
/** Token symbol */
|
|
30
30
|
symbol: string;
|
|
31
|
-
/**
|
|
31
|
+
/** Token name */
|
|
32
32
|
name: string;
|
|
33
|
-
/**
|
|
33
|
+
/** Decimals */
|
|
34
34
|
decimals: number;
|
|
35
|
-
/**
|
|
35
|
+
/** Total supply */
|
|
36
36
|
totalSupply: string;
|
|
37
|
-
/**
|
|
37
|
+
/** Icon URL */
|
|
38
38
|
imageUrl: string | null;
|
|
39
|
-
/**
|
|
39
|
+
/** Creation time (Unix timestamp seconds) */
|
|
40
40
|
createdAt: number | null;
|
|
41
|
-
/**
|
|
41
|
+
/** Network ID */
|
|
42
42
|
networkId: number;
|
|
43
43
|
}
|
|
44
|
-
/**
|
|
44
|
+
/** Token price */
|
|
45
45
|
export interface CodexTokenPrice {
|
|
46
|
-
/**
|
|
46
|
+
/** Contract address */
|
|
47
47
|
address: string;
|
|
48
|
-
/**
|
|
48
|
+
/** Network ID */
|
|
49
49
|
networkId: number;
|
|
50
|
-
/** USD
|
|
50
|
+
/** USD price */
|
|
51
51
|
priceUsd: number;
|
|
52
|
-
/**
|
|
52
|
+
/** Timestamp */
|
|
53
53
|
timestamp: number | null;
|
|
54
54
|
}
|
|
55
|
-
/**
|
|
55
|
+
/** Token detailed market data (from filterTokens) */
|
|
56
56
|
export interface CodexTokenMarketData {
|
|
57
|
-
/**
|
|
57
|
+
/** Contract address */
|
|
58
58
|
address: string;
|
|
59
|
-
/**
|
|
59
|
+
/** Token symbol */
|
|
60
60
|
symbol: string;
|
|
61
|
-
/**
|
|
61
|
+
/** Token name */
|
|
62
62
|
name: string;
|
|
63
|
-
/**
|
|
63
|
+
/** Decimals */
|
|
64
64
|
decimals: number;
|
|
65
|
-
/** USD
|
|
65
|
+
/** USD price */
|
|
66
66
|
priceUsd: number;
|
|
67
|
-
/** 24h
|
|
67
|
+
/** 24h volume (USD) */
|
|
68
68
|
volume24h: number;
|
|
69
|
-
/** 24h
|
|
69
|
+
/** 24h price change percentage */
|
|
70
70
|
priceChange24h: number;
|
|
71
|
-
/**
|
|
71
|
+
/** Liquidity (USD) */
|
|
72
72
|
liquidity: number;
|
|
73
|
-
/**
|
|
73
|
+
/** Fully diluted market cap */
|
|
74
74
|
marketCap: number;
|
|
75
|
-
/**
|
|
75
|
+
/** Holder count */
|
|
76
76
|
holders: number;
|
|
77
|
-
/** 24h
|
|
77
|
+
/** 24h buy count */
|
|
78
78
|
buyCount24h: number;
|
|
79
|
-
/** 24h
|
|
79
|
+
/** 24h sell count */
|
|
80
80
|
sellCount24h: number;
|
|
81
|
-
/** 24h
|
|
81
|
+
/** 24h total transaction count */
|
|
82
82
|
txnCount24h: number;
|
|
83
|
-
/**
|
|
83
|
+
/** Top pair address */
|
|
84
84
|
topPairAddress: string | null;
|
|
85
|
-
/**
|
|
85
|
+
/** Creation time (Unix timestamp seconds) */
|
|
86
86
|
createdAt: number | null;
|
|
87
87
|
}
|
|
88
|
-
/**
|
|
88
|
+
/** Candlestick bar (OHLCV) */
|
|
89
89
|
export interface CodexBar {
|
|
90
|
-
/**
|
|
90
|
+
/** Timestamp (Unix seconds) */
|
|
91
91
|
t: number;
|
|
92
|
-
/**
|
|
92
|
+
/** Open price (USD) */
|
|
93
93
|
o: number;
|
|
94
|
-
/**
|
|
94
|
+
/** High price (USD) */
|
|
95
95
|
h: number;
|
|
96
|
-
/**
|
|
96
|
+
/** Low price (USD) */
|
|
97
97
|
l: number;
|
|
98
|
-
/**
|
|
98
|
+
/** Close price (USD) */
|
|
99
99
|
c: number;
|
|
100
|
-
/**
|
|
100
|
+
/** Volume */
|
|
101
101
|
v: number;
|
|
102
102
|
}
|
|
103
|
-
/**
|
|
103
|
+
/** Pair/pool info */
|
|
104
104
|
export interface CodexPairInfo {
|
|
105
|
-
/**
|
|
105
|
+
/** Pair address */
|
|
106
106
|
pairAddress: string;
|
|
107
|
-
/**
|
|
107
|
+
/** Exchange/DEX name */
|
|
108
108
|
exchangeName: string;
|
|
109
|
-
/**
|
|
109
|
+
/** Liquidity (USD) */
|
|
110
110
|
liquidity: number;
|
|
111
|
-
/** token0
|
|
111
|
+
/** token0 address */
|
|
112
112
|
token0Address: string;
|
|
113
|
-
/** token1
|
|
113
|
+
/** token1 address */
|
|
114
114
|
token1Address: string;
|
|
115
|
-
/**
|
|
115
|
+
/** Price (USD) */
|
|
116
116
|
priceUsd: number;
|
|
117
|
-
/** 24h
|
|
117
|
+
/** 24h volume */
|
|
118
118
|
volume24h: number;
|
|
119
|
-
/** 24h
|
|
119
|
+
/** 24h transaction count */
|
|
120
120
|
txnCount24h: number;
|
|
121
|
-
/**
|
|
121
|
+
/** Creation time */
|
|
122
122
|
createdAt: number | null;
|
|
123
123
|
}
|
|
124
|
-
/**
|
|
124
|
+
/** Candlestick query params */
|
|
125
125
|
export interface GetBarsParams {
|
|
126
|
-
/**
|
|
126
|
+
/** Token contract address */
|
|
127
127
|
tokenAddress: string;
|
|
128
|
-
/**
|
|
128
|
+
/** Pair address (optional, uses top pair if not provided) */
|
|
129
129
|
pairAddress?: string;
|
|
130
|
-
/**
|
|
130
|
+
/** Time resolution */
|
|
131
131
|
resolution: '1' | '5' | '15' | '30' | '60' | '240' | '720' | '1D';
|
|
132
|
-
/**
|
|
132
|
+
/** Start time (Unix seconds) */
|
|
133
133
|
from: number;
|
|
134
|
-
/**
|
|
134
|
+
/** End time (Unix seconds) */
|
|
135
135
|
to: number;
|
|
136
|
-
/**
|
|
136
|
+
/** Number of bars to look back */
|
|
137
137
|
countback?: number;
|
|
138
138
|
}
|
|
139
139
|
export declare class CodexAdapter {
|
|
@@ -143,65 +143,65 @@ export declare class CodexAdapter {
|
|
|
143
143
|
private tokenInfoCache;
|
|
144
144
|
constructor(config?: Partial<CodexConfig>);
|
|
145
145
|
/**
|
|
146
|
-
*
|
|
146
|
+
* GraphQL request executor with exponential backoff retry
|
|
147
147
|
*/
|
|
148
148
|
private executeQuery;
|
|
149
|
-
/**
|
|
149
|
+
/** Check if error is retryable */
|
|
150
150
|
private isRetryableError;
|
|
151
|
-
/**
|
|
151
|
+
/** Get cached value (returns data if not expired, null otherwise) */
|
|
152
152
|
private getCached;
|
|
153
|
-
/**
|
|
153
|
+
/** Set cache */
|
|
154
154
|
private setCache;
|
|
155
|
-
/**
|
|
155
|
+
/** Clear all caches */
|
|
156
156
|
clearCache(): void;
|
|
157
157
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
158
|
+
* Get detailed token market data (using filterTokens)
|
|
159
|
+
* Includes price, liquidity, market cap, holders, volume, etc.
|
|
160
160
|
*/
|
|
161
161
|
getTokenMarketData(ca: string): Promise<CodexTokenMarketData>;
|
|
162
162
|
/**
|
|
163
|
-
*
|
|
163
|
+
* Get basic token info (compact version, extracted from filterTokens)
|
|
164
164
|
*/
|
|
165
165
|
getTokenInfo(ca: string): Promise<CodexTokenInfo>;
|
|
166
166
|
/**
|
|
167
|
-
*
|
|
167
|
+
* Get real-time price (USD) for a single token
|
|
168
168
|
*/
|
|
169
169
|
getTokenPrice(ca: string): Promise<CodexTokenPrice>;
|
|
170
170
|
/**
|
|
171
|
-
*
|
|
172
|
-
* Codex
|
|
171
|
+
* Batch get token prices
|
|
172
|
+
* Codex limits max 25 inputs per request
|
|
173
173
|
*/
|
|
174
174
|
getTokenPrices(addresses: string[]): Promise<CodexTokenPrice[]>;
|
|
175
175
|
/**
|
|
176
|
-
*
|
|
177
|
-
*
|
|
176
|
+
* Get SOL price (USD)
|
|
177
|
+
* Uses Wrapped SOL address for query
|
|
178
178
|
*/
|
|
179
179
|
getSolPrice(): Promise<number>;
|
|
180
180
|
/**
|
|
181
|
-
*
|
|
181
|
+
* Get candlestick (OHLCV) data
|
|
182
182
|
*
|
|
183
|
-
* getBars
|
|
183
|
+
* getBars symbol format: tokenAddress:pairAddress (uses default pair if no pairAddress)
|
|
184
184
|
*/
|
|
185
185
|
getBars(params: GetBarsParams): Promise<CodexBar[]>;
|
|
186
186
|
/**
|
|
187
|
-
*
|
|
187
|
+
* Find trading pairs for a token (sorted by liquidity descending)
|
|
188
188
|
*/
|
|
189
189
|
getPairsForToken(ca: string, limit?: number): Promise<CodexPairInfo[]>;
|
|
190
190
|
/**
|
|
191
|
-
*
|
|
191
|
+
* Get top (highest liquidity) trading pair for a token
|
|
192
192
|
*/
|
|
193
193
|
getTopPair(ca: string): Promise<CodexPairInfo | null>;
|
|
194
194
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
195
|
+
* Get token price (SOL and USD)
|
|
196
|
+
* Fetches both USD and SOL prices simultaneously
|
|
197
197
|
*/
|
|
198
198
|
getTokenPriceInSolAndUsd(ca: string): Promise<{
|
|
199
199
|
priceSol: number;
|
|
200
200
|
priceUsd: number;
|
|
201
201
|
}>;
|
|
202
202
|
/**
|
|
203
|
-
*
|
|
204
|
-
*
|
|
203
|
+
* Get pool info (aligned with ARCH-DESIGN-v2.md PoolInfoFile format)
|
|
204
|
+
* Combines Codex price and pair data
|
|
205
205
|
*/
|
|
206
206
|
getPoolInfo(ca: string): Promise<{
|
|
207
207
|
ca: string;
|
|
@@ -216,7 +216,7 @@ export declare class CodexAdapter {
|
|
|
216
216
|
updatedAt: number;
|
|
217
217
|
}>;
|
|
218
218
|
/**
|
|
219
|
-
*
|
|
219
|
+
* Verify Codex API Key and connection availability
|
|
220
220
|
*/
|
|
221
221
|
healthCheck(): Promise<{
|
|
222
222
|
healthy: boolean;
|
|
@@ -226,12 +226,12 @@ export declare class CodexAdapter {
|
|
|
226
226
|
}>;
|
|
227
227
|
}
|
|
228
228
|
/**
|
|
229
|
-
*
|
|
230
|
-
*
|
|
229
|
+
* Get CodexAdapter singleton
|
|
230
|
+
* Creates instance from config Codex API Key on first call
|
|
231
231
|
*/
|
|
232
232
|
export declare function getCodexAdapter(): CodexAdapter;
|
|
233
233
|
/**
|
|
234
|
-
*
|
|
234
|
+
* Reset singleton (re-initialize after config changes)
|
|
235
235
|
*/
|
|
236
236
|
export declare function resetCodexAdapter(): void;
|
|
237
237
|
export { SOLANA_NETWORK_ID, WRAPPED_SOL_MINT };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,
|
|
1
|
+
{"version":3,"file":"codex-adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex-adapter.ts"],"names":[],"mappings":"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"}
|