torchsdk 1.0.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Torch Market
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,49 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ export declare const PROGRAM_ID: PublicKey;
3
+ export declare const RAYDIUM_CPMM_PROGRAM: PublicKey;
4
+ export declare const WSOL_MINT: PublicKey;
5
+ export declare const RAYDIUM_AMM_CONFIG: PublicKey;
6
+ export declare const RAYDIUM_CREATE_POOL_FEE: PublicKey;
7
+ export declare const MEMO_PROGRAM_ID: PublicKey;
8
+ export declare const TOKEN_2022_PROGRAM_ID: PublicKey;
9
+ export declare const GLOBAL_CONFIG_SEED = "global_config";
10
+ export declare const BONDING_CURVE_SEED = "bonding_curve";
11
+ export declare const TREASURY_SEED = "treasury";
12
+ export declare const USER_POSITION_SEED = "user_position";
13
+ export declare const VOTE_SEED = "vote";
14
+ export declare const PLATFORM_TREASURY_SEED = "platform_treasury";
15
+ export declare const PROTOCOL_TREASURY_SEED = "protocol_treasury_v11";
16
+ export declare const USER_STATS_SEED = "user_stats";
17
+ export declare const STAR_RECORD_SEED = "star_record";
18
+ export declare const LOAN_SEED = "loan";
19
+ export declare const COLLATERAL_VAULT_SEED = "collateral_vault";
20
+ export declare const TOTAL_SUPPLY: bigint;
21
+ export declare const MAX_WALLET_TOKENS: bigint;
22
+ export declare const BURN_RATE_BPS = 1000;
23
+ export declare const TREASURY_SOL_BPS = 2000;
24
+ export declare const TREASURY_FEE_BPS = 100;
25
+ export declare const SELL_FEE_BPS = 0;
26
+ export declare const BONDING_TARGET_LAMPORTS: bigint;
27
+ export declare const TOKEN_DECIMALS = 6;
28
+ export declare const INITIAL_VIRTUAL_SOL: bigint;
29
+ export declare const INITIAL_VIRTUAL_TOKENS: bigint;
30
+ export declare const PROTOCOL_FEE_BPS = 100;
31
+ export declare const MIN_SOL_AMOUNT: bigint;
32
+ export declare const VOTING_DURATION_SLOTS: bigint;
33
+ export declare const INACTIVITY_PERIOD_SLOTS: bigint;
34
+ export declare const EPOCH_DURATION_SECONDS: number;
35
+ export declare const MIN_RECLAIM_THRESHOLD: bigint;
36
+ export declare const STAR_THRESHOLD = 2000;
37
+ export declare const STAR_COST_LAMPORTS: bigint;
38
+ export declare const PROTOCOL_TREASURY_RESERVE_FLOOR: bigint;
39
+ export declare const MIN_EPOCH_VOLUME_ELIGIBILITY: bigint;
40
+ export declare const REVIVAL_THRESHOLD: bigint;
41
+ export declare const BLACKLISTED_MINTS: string[];
42
+ export declare const LAMPORTS_PER_SOL = 1000000000;
43
+ export declare const TOKEN_MULTIPLIER: number;
44
+ export declare const formatSol: (lamports: bigint | number) => string;
45
+ export declare const formatTokens: (amount: bigint | number) => string;
46
+ export declare const formatPercent: (value: number) => string;
47
+ export declare const shortenAddress: (address: string, chars?: number) => string;
48
+ export declare const formatSlotAge: (slot: bigint, currentSlot: bigint) => string;
49
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,eAAO,MAAM,UAAU,WAAgE,CAAA;AAIvF,eAAO,MAAM,oBAAoB,WAAgE,CAAA;AAGjG,eAAO,MAAM,SAAS,WAA+D,CAAA;AAIrF,eAAO,MAAM,kBAAkB,WAAgE,CAAA;AAI/F,eAAO,MAAM,uBAAuB,WAAgE,CAAA;AAGpG,eAAO,MAAM,eAAe,WAA+D,CAAA;AAG3F,eAAO,MAAM,qBAAqB,WAA+D,CAAA;AAGjG,eAAO,MAAM,kBAAkB,kBAAkB,CAAA;AACjD,eAAO,MAAM,kBAAkB,kBAAkB,CAAA;AAEjD,eAAO,MAAM,aAAa,aAAa,CAAA;AACvC,eAAO,MAAM,kBAAkB,kBAAkB,CAAA;AACjD,eAAO,MAAM,SAAS,SAAS,CAAA;AAC/B,eAAO,MAAM,sBAAsB,sBAAsB,CAAA;AACzD,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAC7D,eAAO,MAAM,eAAe,eAAe,CAAA;AAC3C,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAC7C,eAAO,MAAM,SAAS,SAAS,CAAA;AAC/B,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AAGvD,eAAO,MAAM,YAAY,QAA6B,CAAA;AACtD,eAAO,MAAM,iBAAiB,QAA2B,CAAA;AAGzD,eAAO,MAAM,aAAa,OAAO,CAAA;AACjC,eAAO,MAAM,gBAAgB,OAAO,CAAA;AACpC,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,eAAO,MAAM,YAAY,IAAI,CAAA;AAC7B,eAAO,MAAM,uBAAuB,QAAyB,CAAA;AAC7D,eAAO,MAAM,cAAc,IAAI,CAAA;AAC/B,eAAO,MAAM,mBAAmB,QAAwB,CAAA;AACxD,eAAO,MAAM,sBAAsB,QAA4B,CAAA;AAC/D,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,eAAO,MAAM,cAAc,QAAoB,CAAA;AAC/C,eAAO,MAAM,qBAAqB,QAAmB,CAAA;AAIrD,eAAO,MAAM,uBAAuB,QAA0C,CAAA;AAC9E,eAAO,MAAM,sBAAsB,QAAmB,CAAA;AACtD,eAAO,MAAM,qBAAqB,QAAqB,CAAA;AAGvD,eAAO,MAAM,cAAc,OAAO,CAAA;AAClC,eAAO,MAAM,kBAAkB,QAAqB,CAAA;AAGpD,eAAO,MAAM,+BAA+B,QAA0B,CAAA;AACtE,eAAO,MAAM,4BAA4B,QAAwB,CAAA;AAGjE,eAAO,MAAM,iBAAiB,QAAsB,CAAA;AAGpD,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAWrC,CAAA;AAGD,eAAO,MAAM,gBAAgB,aAAgB,CAAA;AAC7C,eAAO,MAAM,gBAAgB,QAA+B,CAAA;AAE5D,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,GAAG,MAAM,KAAG,MAMrD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,GAAG,MAAM,KAAG,MAYtD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAAwC,CAAA;AAEtF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,cAAS,KAAG,MACH,CAAA;AAKzD,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,aAAa,MAAM,KAAG,MAcjE,CAAA"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatSlotAge = exports.shortenAddress = exports.formatPercent = exports.formatTokens = exports.formatSol = exports.TOKEN_MULTIPLIER = exports.LAMPORTS_PER_SOL = exports.BLACKLISTED_MINTS = exports.REVIVAL_THRESHOLD = exports.MIN_EPOCH_VOLUME_ELIGIBILITY = exports.PROTOCOL_TREASURY_RESERVE_FLOOR = exports.STAR_COST_LAMPORTS = exports.STAR_THRESHOLD = exports.MIN_RECLAIM_THRESHOLD = exports.EPOCH_DURATION_SECONDS = exports.INACTIVITY_PERIOD_SLOTS = exports.VOTING_DURATION_SLOTS = exports.MIN_SOL_AMOUNT = exports.PROTOCOL_FEE_BPS = exports.INITIAL_VIRTUAL_TOKENS = exports.INITIAL_VIRTUAL_SOL = exports.TOKEN_DECIMALS = exports.BONDING_TARGET_LAMPORTS = exports.SELL_FEE_BPS = exports.TREASURY_FEE_BPS = exports.TREASURY_SOL_BPS = exports.BURN_RATE_BPS = exports.MAX_WALLET_TOKENS = exports.TOTAL_SUPPLY = exports.COLLATERAL_VAULT_SEED = exports.LOAN_SEED = exports.STAR_RECORD_SEED = exports.USER_STATS_SEED = exports.PROTOCOL_TREASURY_SEED = exports.PLATFORM_TREASURY_SEED = exports.VOTE_SEED = exports.USER_POSITION_SEED = exports.TREASURY_SEED = exports.BONDING_CURVE_SEED = exports.GLOBAL_CONFIG_SEED = exports.TOKEN_2022_PROGRAM_ID = exports.MEMO_PROGRAM_ID = exports.RAYDIUM_CREATE_POOL_FEE = exports.RAYDIUM_AMM_CONFIG = exports.WSOL_MINT = exports.RAYDIUM_CPMM_PROGRAM = exports.PROGRAM_ID = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ // Program ID - Mainnet/Devnet (deployed program)
6
+ exports.PROGRAM_ID = new web3_js_1.PublicKey('8hbUkonssSEEtkqzwM7ZcZrD9evacM92TcWSooVF4BeT');
7
+ // Raydium CPMM Program
8
+ // Note: Same address on mainnet and devnet - Raydium deploys to same program ID
9
+ exports.RAYDIUM_CPMM_PROGRAM = new web3_js_1.PublicKey('CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C');
10
+ // WSOL Mint (same on all networks)
11
+ exports.WSOL_MINT = new web3_js_1.PublicKey('So11111111111111111111111111111111111111112');
12
+ // Raydium AMM Config (0.25% fee tier - standard)
13
+ // Note: This config PDA exists on both mainnet and devnet
14
+ exports.RAYDIUM_AMM_CONFIG = new web3_js_1.PublicKey('D4FPEruKEHrG5TenZ2mpDGEfu1iUvTiqBxvpU8HLBvC2');
15
+ // Raydium pool creation fee receiver
16
+ // Note: Same address on mainnet and devnet
17
+ exports.RAYDIUM_CREATE_POOL_FEE = new web3_js_1.PublicKey('DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8');
18
+ // SPL Memo Program
19
+ exports.MEMO_PROGRAM_ID = new web3_js_1.PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr');
20
+ // Token-2022 Program (for Token Extensions)
21
+ exports.TOKEN_2022_PROGRAM_ID = new web3_js_1.PublicKey('TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb');
22
+ // PDA Seeds (must match the Rust program)
23
+ exports.GLOBAL_CONFIG_SEED = 'global_config';
24
+ exports.BONDING_CURVE_SEED = 'bonding_curve';
25
+ // [V13] BURN_VAULT_SEED removed - treasury's ATA now holds vote vault tokens
26
+ exports.TREASURY_SEED = 'treasury';
27
+ exports.USER_POSITION_SEED = 'user_position';
28
+ exports.VOTE_SEED = 'vote';
29
+ exports.PLATFORM_TREASURY_SEED = 'platform_treasury';
30
+ exports.PROTOCOL_TREASURY_SEED = 'protocol_treasury_v11'; // V11: Protocol fee treasury
31
+ exports.USER_STATS_SEED = 'user_stats';
32
+ exports.STAR_RECORD_SEED = 'star_record';
33
+ exports.LOAN_SEED = 'loan';
34
+ exports.COLLATERAL_VAULT_SEED = 'collateral_vault';
35
+ // Token constants (must match the Rust program)
36
+ exports.TOTAL_SUPPLY = BigInt('1000000000000000'); // 1B with 6 decimals
37
+ exports.MAX_WALLET_TOKENS = BigInt('20000000000000'); // 2% of supply
38
+ // [V2.2] 10% to community treasury, 90% to buyer
39
+ // Community votes on whether to burn or return these tokens on migration
40
+ exports.BURN_RATE_BPS = 1000; // 10% to community treasury
41
+ exports.TREASURY_SOL_BPS = 2000; // 20% of buy SOL (after fees) to treasury
42
+ exports.TREASURY_FEE_BPS = 100; // 1% flat treasury fee on buys
43
+ exports.SELL_FEE_BPS = 0; // No sell fee
44
+ exports.BONDING_TARGET_LAMPORTS = BigInt('200000000000'); // 200 SOL
45
+ exports.TOKEN_DECIMALS = 6;
46
+ exports.INITIAL_VIRTUAL_SOL = BigInt('30000000000'); // 30 SOL
47
+ exports.INITIAL_VIRTUAL_TOKENS = BigInt('107300000000000'); // Scaled for 1B supply
48
+ exports.PROTOCOL_FEE_BPS = 100; // 1% (V11)
49
+ exports.MIN_SOL_AMOUNT = BigInt('1000000'); // 0.001 SOL
50
+ exports.VOTING_DURATION_SLOTS = BigInt('216000'); // ~24 hours
51
+ // V4: Failed token reclaim and platform rewards
52
+ // V12: Reduced from 60 days to 7 days (1 epoch)
53
+ exports.INACTIVITY_PERIOD_SLOTS = BigInt((7 * 24 * 60 * 60 * 1000) / 400); // ~7 days in slots
54
+ exports.EPOCH_DURATION_SECONDS = 7 * 24 * 60 * 60; // 7 days
55
+ exports.MIN_RECLAIM_THRESHOLD = BigInt('10000000'); // 0.01 SOL
56
+ // V10: Star Token
57
+ exports.STAR_THRESHOLD = 2000; // Stars needed for creator auto-payout
58
+ exports.STAR_COST_LAMPORTS = BigInt('50000000'); // 0.05 SOL per star
59
+ // V11: Protocol Treasury
60
+ exports.PROTOCOL_TREASURY_RESERVE_FLOOR = BigInt('1500000000000'); // 1500 SOL
61
+ exports.MIN_EPOCH_VOLUME_ELIGIBILITY = BigInt('10000000000'); // 10 SOL
62
+ // V12: Token Revival
63
+ exports.REVIVAL_THRESHOLD = exports.INITIAL_VIRTUAL_SOL; // 30 SOL
64
+ // Blacklisted tokens (legacy test tokens, etc.)
65
+ exports.BLACKLISTED_MINTS = [
66
+ '6JkGdXSKzUHTNwR5w7jce4WxjczUGpqheBJsP1if5htm', // Legacy SPL test token (pre-prod-beta)
67
+ 'Nu5xbqZvZd4JerG2aNyxQfUiHBnM59w7CHzyVx5Vztm', // Legacy SPL devnet test token
68
+ '8wzap6FUtL4ko6LnnELt8ZoM6ksy6jPJ9veFkwGB56tm', // Legacy SPL devnet test token
69
+ 'HgFGagsCFmBKRFM3U4zCpy3r8XU7RFS58UChup9xCytm', // Legacy SPL devnet test token
70
+ 'CLJk4YLy8pBu7mRFm1hfaeFJJ6WQQR7RHmkptPSLCXtm', // Pre-V13 devnet test token
71
+ '61ryb1WAq2vqEcdeStvTMRvYdcgzvZYFjBtKzSzXv7tm', // Pre-V13 devnet test token
72
+ '9F8SXt7VP8b6Vb6RzE8dTdBEwKuKeCizhxEY6QQX1qtm', // Pre-V13 mainnet test token
73
+ 'GQKidAtE2RmEpMq7ciPShniHZ9fh8NSAaXp59M89X3tm', // Pre-V13 mainnet test token
74
+ '7b7WHQdXQN4bR8eC47jaH9De6JYC4cze1BWJJcxU1Mtm', // Pre-V13 mainnet test token
75
+ 'FjERW8DSNB81GYWhrXwdfS3s74xTF8T5gjcKYSa1v7tm', // Duplicate test token (keep Second Torch only)
76
+ ];
77
+ // Formatting helpers
78
+ exports.LAMPORTS_PER_SOL = 1000000000;
79
+ exports.TOKEN_MULTIPLIER = Math.pow(10, exports.TOKEN_DECIMALS);
80
+ const formatSol = (lamports) => {
81
+ const value = Number(lamports) / exports.LAMPORTS_PER_SOL;
82
+ return value.toLocaleString(undefined, {
83
+ minimumFractionDigits: 2,
84
+ maximumFractionDigits: 4,
85
+ });
86
+ };
87
+ exports.formatSol = formatSol;
88
+ const formatTokens = (amount) => {
89
+ const value = Number(amount) / exports.TOKEN_MULTIPLIER;
90
+ if (value >= 1000000000) {
91
+ return (value / 1000000000).toFixed(2) + 'B';
92
+ }
93
+ if (value >= 1000000) {
94
+ return (value / 1000000).toFixed(2) + 'M';
95
+ }
96
+ if (value >= 1000) {
97
+ return (value / 1000).toFixed(2) + 'K';
98
+ }
99
+ return value.toFixed(2);
100
+ };
101
+ exports.formatTokens = formatTokens;
102
+ const formatPercent = (value) => (value * 100).toFixed(2) + '%';
103
+ exports.formatPercent = formatPercent;
104
+ const shortenAddress = (address, chars = 4) => `${address.slice(0, chars)}...${address.slice(-chars)}`;
105
+ exports.shortenAddress = shortenAddress;
106
+ // Estimate time from slot difference (Solana ~400ms per slot)
107
+ const MS_PER_SLOT = 400;
108
+ const formatSlotAge = (slot, currentSlot) => {
109
+ const slotDiff = currentSlot - slot;
110
+ if (slotDiff <= BigInt(0))
111
+ return 'Just now';
112
+ const msAgo = Number(slotDiff) * MS_PER_SLOT;
113
+ const seconds = Math.floor(msAgo / 1000);
114
+ const minutes = Math.floor(seconds / 60);
115
+ const hours = Math.floor(minutes / 60);
116
+ const days = Math.floor(hours / 24);
117
+ if (days > 0)
118
+ return `${days}d ago`;
119
+ if (hours > 0)
120
+ return `${hours}h ago`;
121
+ if (minutes > 0)
122
+ return `${minutes}m ago`;
123
+ return 'Just now';
124
+ };
125
+ exports.formatSlotAge = formatSlotAge;
126
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Gateway URL utilities for Irys content
3
+ * Use uploader.irys.xyz as fallback when gateway.irys.xyz has issues
4
+ */
5
+ /**
6
+ * Convert an Irys gateway URL to uploader URL (fallback)
7
+ */
8
+ export declare const irysToUploader: (url: string) => string;
9
+ /**
10
+ * Check if URL is from Irys gateway
11
+ */
12
+ export declare const isIrysUrl: (url: string) => boolean;
13
+ /**
14
+ * Fetch with automatic fallback from gateway.irys.xyz to uploader.irys.xyz
15
+ */
16
+ export declare const fetchWithFallback: (url: string, options?: RequestInit) => Promise<Response>;
17
+ //# sourceMappingURL=gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAAkD,CAAA;AAE/F;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,OAMvC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAU,KAAK,MAAM,EAAE,UAAU,WAAW,KAAG,OAAO,CAAC,QAAQ,CAS5F,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * Gateway URL utilities for Irys content
4
+ * Use uploader.irys.xyz as fallback when gateway.irys.xyz has issues
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.fetchWithFallback = exports.isIrysUrl = exports.irysToUploader = void 0;
8
+ const IRYS_GATEWAY = 'gateway.irys.xyz';
9
+ const IRYS_UPLOADER = 'uploader.irys.xyz';
10
+ /**
11
+ * Convert an Irys gateway URL to uploader URL (fallback)
12
+ */
13
+ const irysToUploader = (url) => url.replace(IRYS_GATEWAY, IRYS_UPLOADER);
14
+ exports.irysToUploader = irysToUploader;
15
+ /**
16
+ * Check if URL is from Irys gateway
17
+ */
18
+ const isIrysUrl = (url) => {
19
+ try {
20
+ return new URL(url).hostname === IRYS_GATEWAY;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ };
26
+ exports.isIrysUrl = isIrysUrl;
27
+ /**
28
+ * Fetch with automatic fallback from gateway.irys.xyz to uploader.irys.xyz
29
+ */
30
+ const fetchWithFallback = async (url, options) => {
31
+ // If it's an Irys gateway URL, use uploader directly (gateway has SSL issues)
32
+ if ((0, exports.isIrysUrl)(url)) {
33
+ const uploaderUrl = (0, exports.irysToUploader)(url);
34
+ return fetch(uploaderUrl, options);
35
+ }
36
+ // For non-Irys URLs, fetch normally
37
+ return fetch(url, options);
38
+ };
39
+ exports.fetchWithFallback = fetchWithFallback;
40
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,MAAM,YAAY,GAAG,kBAAkB,CAAA;AACvC,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAEzC;;GAEG;AACI,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;AAAlF,QAAA,cAAc,kBAAoE;AAE/F;;GAEG;AACI,MAAM,SAAS,GAAG,CAAC,GAAW,EAAW,EAAE;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AANY,QAAA,SAAS,aAMrB;AAED;;GAEG;AACI,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,OAAqB,EAAqB,EAAE;IAC/F,8EAA8E;IAC9E,IAAI,IAAA,iBAAS,EAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAA;QACvC,OAAO,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,oCAAoC;IACpC,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AAC5B,CAAC,CAAA;AATY,QAAA,iBAAiB,qBAS7B"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @torch-market/sdk
3
+ *
4
+ * AI agent toolkit for Solana fair-launch tokens.
5
+ *
6
+ * Usage:
7
+ * import { getTokens, buildBuyTransaction } from "@torch-market/sdk";
8
+ * const connection = new Connection("https://api.mainnet-beta.solana.com");
9
+ * const tokens = await getTokens(connection);
10
+ * const tx = await buildBuyTransaction(connection, { mint, buyer, amount_sol: 100_000_000 });
11
+ */
12
+ export { getTokens, getToken, getHolders, getMessages, getLendingInfo, getLoanPosition, } from './tokens';
13
+ export { getBuyQuote, getSellQuote } from './quotes';
14
+ export { buildBuyTransaction, buildSellTransaction, buildCreateTokenTransaction, buildVoteTransaction, buildStarTransaction, buildMessageTransaction, buildBorrowTransaction, buildRepayTransaction, buildLiquidateTransaction, } from './transactions';
15
+ export { verifySaid, confirmTransaction } from './said';
16
+ export type { TokenStatus, TokenSummary, TokenDetail, TokenSortOption, TokenStatusFilter, TokenListParams, TokenListResult, Holder, HoldersResult, BuyQuoteResult, SellQuoteResult, BuyParams, SellParams, CreateTokenParams, VoteParams, StarParams, MessageParams, TransactionResult, CreateTokenResult, BorrowParams, RepayParams, LiquidateParams, LendingInfo, LoanPositionInfo, TokenMessage, MessagesResult, SaidVerification, ConfirmResult, } from './types';
17
+ export { PROGRAM_ID, LAMPORTS_PER_SOL, TOKEN_MULTIPLIER, TOTAL_SUPPLY } from './constants';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGpD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAGvD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,MAAM,EACN,aAAa,EACb,cAAc,EACd,eAAe,EACf,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * @torch-market/sdk
4
+ *
5
+ * AI agent toolkit for Solana fair-launch tokens.
6
+ *
7
+ * Usage:
8
+ * import { getTokens, buildBuyTransaction } from "@torch-market/sdk";
9
+ * const connection = new Connection("https://api.mainnet-beta.solana.com");
10
+ * const tokens = await getTokens(connection);
11
+ * const tx = await buildBuyTransaction(connection, { mint, buyer, amount_sol: 100_000_000 });
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.TOTAL_SUPPLY = exports.TOKEN_MULTIPLIER = exports.LAMPORTS_PER_SOL = exports.PROGRAM_ID = exports.confirmTransaction = exports.verifySaid = exports.buildLiquidateTransaction = exports.buildRepayTransaction = exports.buildBorrowTransaction = exports.buildMessageTransaction = exports.buildStarTransaction = exports.buildVoteTransaction = exports.buildCreateTokenTransaction = exports.buildSellTransaction = exports.buildBuyTransaction = exports.getSellQuote = exports.getBuyQuote = exports.getLoanPosition = exports.getLendingInfo = exports.getMessages = exports.getHolders = exports.getToken = exports.getTokens = void 0;
15
+ // Token data
16
+ var tokens_1 = require("./tokens");
17
+ Object.defineProperty(exports, "getTokens", { enumerable: true, get: function () { return tokens_1.getTokens; } });
18
+ Object.defineProperty(exports, "getToken", { enumerable: true, get: function () { return tokens_1.getToken; } });
19
+ Object.defineProperty(exports, "getHolders", { enumerable: true, get: function () { return tokens_1.getHolders; } });
20
+ Object.defineProperty(exports, "getMessages", { enumerable: true, get: function () { return tokens_1.getMessages; } });
21
+ Object.defineProperty(exports, "getLendingInfo", { enumerable: true, get: function () { return tokens_1.getLendingInfo; } });
22
+ Object.defineProperty(exports, "getLoanPosition", { enumerable: true, get: function () { return tokens_1.getLoanPosition; } });
23
+ // Quotes
24
+ var quotes_1 = require("./quotes");
25
+ Object.defineProperty(exports, "getBuyQuote", { enumerable: true, get: function () { return quotes_1.getBuyQuote; } });
26
+ Object.defineProperty(exports, "getSellQuote", { enumerable: true, get: function () { return quotes_1.getSellQuote; } });
27
+ // Transaction builders
28
+ var transactions_1 = require("./transactions");
29
+ Object.defineProperty(exports, "buildBuyTransaction", { enumerable: true, get: function () { return transactions_1.buildBuyTransaction; } });
30
+ Object.defineProperty(exports, "buildSellTransaction", { enumerable: true, get: function () { return transactions_1.buildSellTransaction; } });
31
+ Object.defineProperty(exports, "buildCreateTokenTransaction", { enumerable: true, get: function () { return transactions_1.buildCreateTokenTransaction; } });
32
+ Object.defineProperty(exports, "buildVoteTransaction", { enumerable: true, get: function () { return transactions_1.buildVoteTransaction; } });
33
+ Object.defineProperty(exports, "buildStarTransaction", { enumerable: true, get: function () { return transactions_1.buildStarTransaction; } });
34
+ Object.defineProperty(exports, "buildMessageTransaction", { enumerable: true, get: function () { return transactions_1.buildMessageTransaction; } });
35
+ Object.defineProperty(exports, "buildBorrowTransaction", { enumerable: true, get: function () { return transactions_1.buildBorrowTransaction; } });
36
+ Object.defineProperty(exports, "buildRepayTransaction", { enumerable: true, get: function () { return transactions_1.buildRepayTransaction; } });
37
+ Object.defineProperty(exports, "buildLiquidateTransaction", { enumerable: true, get: function () { return transactions_1.buildLiquidateTransaction; } });
38
+ // SAID Protocol
39
+ var said_1 = require("./said");
40
+ Object.defineProperty(exports, "verifySaid", { enumerable: true, get: function () { return said_1.verifySaid; } });
41
+ Object.defineProperty(exports, "confirmTransaction", { enumerable: true, get: function () { return said_1.confirmTransaction; } });
42
+ // Constants (for advanced usage)
43
+ var constants_1 = require("./constants");
44
+ Object.defineProperty(exports, "PROGRAM_ID", { enumerable: true, get: function () { return constants_1.PROGRAM_ID; } });
45
+ Object.defineProperty(exports, "LAMPORTS_PER_SOL", { enumerable: true, get: function () { return constants_1.LAMPORTS_PER_SOL; } });
46
+ Object.defineProperty(exports, "TOKEN_MULTIPLIER", { enumerable: true, get: function () { return constants_1.TOKEN_MULTIPLIER; } });
47
+ Object.defineProperty(exports, "TOTAL_SUPPLY", { enumerable: true, get: function () { return constants_1.TOTAL_SUPPLY; } });
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,aAAa;AACb,mCAOiB;AANf,mGAAA,SAAS,OAAA;AACT,kGAAA,QAAQ,OAAA;AACR,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AAGjB,SAAS;AACT,mCAAoD;AAA3C,qGAAA,WAAW,OAAA;AAAE,sGAAA,YAAY,OAAA;AAElC,uBAAuB;AACvB,+CAUuB;AATrB,mHAAA,mBAAmB,OAAA;AACnB,oHAAA,oBAAoB,OAAA;AACpB,2HAAA,2BAA2B,OAAA;AAC3B,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AACpB,uHAAA,uBAAuB,OAAA;AACvB,sHAAA,sBAAsB,OAAA;AACtB,qHAAA,qBAAqB,OAAA;AACrB,yHAAA,yBAAyB,OAAA;AAG3B,gBAAgB;AAChB,+BAAuD;AAA9C,kGAAA,UAAU,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAkCvC,iCAAiC;AACjC,yCAA0F;AAAjF,uGAAA,UAAU,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,yGAAA,YAAY,OAAA"}
@@ -0,0 +1,182 @@
1
+ import { Program, AnchorProvider, BN } from '@coral-xyz/anchor';
2
+ import { PublicKey } from '@solana/web3.js';
3
+ import { PROGRAM_ID } from './constants';
4
+ export { PROGRAM_ID };
5
+ export interface BondingCurve {
6
+ mint: PublicKey;
7
+ creator: PublicKey;
8
+ virtual_sol_reserves: BN;
9
+ virtual_token_reserves: BN;
10
+ real_sol_reserves: BN;
11
+ real_token_reserves: BN;
12
+ vote_vault_balance: BN;
13
+ permanently_burned_tokens: BN;
14
+ bonding_complete: boolean;
15
+ bonding_complete_slot: BN;
16
+ votes_return: BN;
17
+ votes_burn: BN;
18
+ total_voters: BN;
19
+ vote_finalized: boolean;
20
+ vote_result_return: boolean;
21
+ migrated: boolean;
22
+ is_token_2022: boolean;
23
+ last_activity_slot: BN;
24
+ reclaimed: boolean;
25
+ name: number[];
26
+ symbol: number[];
27
+ uri: number[];
28
+ bump: number;
29
+ treasury_bump: number;
30
+ migration_announced_slot: BN;
31
+ pending_token_destination: PublicKey;
32
+ pending_sol_destination: PublicKey;
33
+ }
34
+ export interface GlobalConfig {
35
+ authority: PublicKey;
36
+ treasury: PublicKey;
37
+ dev_wallet: PublicKey;
38
+ platform_treasury: PublicKey;
39
+ protocol_fee_bps: number;
40
+ paused: boolean;
41
+ total_tokens_launched: BN;
42
+ total_volume_sol: BN;
43
+ bump: number;
44
+ }
45
+ export interface UserPosition {
46
+ user: PublicKey;
47
+ bonding_curve: PublicKey;
48
+ total_purchased: BN;
49
+ tokens_received: BN;
50
+ tokens_burned: BN;
51
+ total_sol_spent: BN;
52
+ has_voted: boolean;
53
+ vote_return: boolean;
54
+ bump: number;
55
+ }
56
+ export interface Treasury {
57
+ bonding_curve: PublicKey;
58
+ mint: PublicKey;
59
+ sol_balance: BN;
60
+ total_bought_back: BN;
61
+ total_burned_from_buyback: BN;
62
+ tokens_held: BN;
63
+ last_buyback_slot: BN;
64
+ buyback_count: BN;
65
+ harvested_fees: BN;
66
+ baseline_sol_reserves: BN;
67
+ baseline_token_reserves: BN;
68
+ ratio_threshold_bps: number;
69
+ reserve_ratio_bps: number;
70
+ buyback_percent_bps: number;
71
+ min_buyback_interval_slots: BN;
72
+ baseline_initialized: boolean;
73
+ total_stars: BN;
74
+ star_sol_balance: BN;
75
+ creator_paid_out: boolean;
76
+ bump: number;
77
+ }
78
+ export interface PlatformTreasury {
79
+ authority: PublicKey;
80
+ total_reclaimed: BN;
81
+ current_balance: BN;
82
+ total_distributed: BN;
83
+ current_epoch: BN;
84
+ last_epoch_ts: BN;
85
+ total_volume_current_epoch: BN;
86
+ total_volume_previous_epoch: BN;
87
+ previous_epoch_rewards: BN;
88
+ tokens_reclaimed_count: BN;
89
+ bump: number;
90
+ }
91
+ export interface ProtocolTreasury {
92
+ authority: PublicKey;
93
+ current_balance: BN;
94
+ reserve_floor: BN;
95
+ total_fees_received: BN;
96
+ total_distributed: BN;
97
+ current_epoch: BN;
98
+ last_epoch_ts: BN;
99
+ total_volume_current_epoch: BN;
100
+ total_volume_previous_epoch: BN;
101
+ distributable_amount: BN;
102
+ bump: number;
103
+ }
104
+ export interface UserStats {
105
+ user: PublicKey;
106
+ total_volume: BN;
107
+ volume_current_epoch: BN;
108
+ volume_previous_epoch: BN;
109
+ last_volume_epoch: BN;
110
+ last_epoch_claimed: BN;
111
+ total_rewards_claimed: BN;
112
+ bump: number;
113
+ }
114
+ export interface StarRecord {
115
+ user: PublicKey;
116
+ mint: PublicKey;
117
+ starred_at_slot: BN;
118
+ bump: number;
119
+ }
120
+ export interface LoanPosition {
121
+ user: PublicKey;
122
+ mint: PublicKey;
123
+ collateral_amount: BN;
124
+ borrowed_amount: BN;
125
+ accrued_interest: BN;
126
+ last_update_slot: BN;
127
+ bump: number;
128
+ }
129
+ export declare const decodeString: (bytes: number[]) => string;
130
+ export declare const getGlobalConfigPda: () => [PublicKey, number];
131
+ export declare const getBondingCurvePda: (mint: PublicKey) => [PublicKey, number];
132
+ export declare const getTreasuryTokenAccount: (mint: PublicKey, treasury: PublicKey) => PublicKey;
133
+ export declare const getUserPositionPda: (bondingCurve: PublicKey, user: PublicKey) => [PublicKey, number];
134
+ export declare const getVoteRecordPda: (bondingCurve: PublicKey, voter: PublicKey) => [PublicKey, number];
135
+ export declare const getTokenTreasuryPda: (mint: PublicKey) => [PublicKey, number];
136
+ export declare const getPlatformTreasuryPda: () => [PublicKey, number];
137
+ export declare const getProtocolTreasuryPda: () => [PublicKey, number];
138
+ export declare const getUserStatsPda: (user: PublicKey) => [PublicKey, number];
139
+ export declare const getStarRecordPda: (user: PublicKey, mint: PublicKey) => [PublicKey, number];
140
+ export declare const getLoanPositionPda: (mint: PublicKey, borrower: PublicKey) => [PublicKey, number];
141
+ export declare const getCollateralVaultPda: (mint: PublicKey) => [PublicKey, number];
142
+ export declare const getProgram: (provider: AnchorProvider) => Program;
143
+ export declare const calculateTokensOut: (solAmount: bigint, virtualSolReserves: bigint, virtualTokenReserves: bigint, realSolReserves?: bigint, // V2.3: needed for dynamic rate calculation
144
+ protocolFeeBps?: number, // 1% protocol fee (75% protocol treasury, 25% dev)
145
+ treasuryFeeBps?: number) => {
146
+ tokensOut: bigint;
147
+ tokensToUser: bigint;
148
+ tokensToCommunity: bigint;
149
+ protocolFee: bigint;
150
+ treasuryFee: bigint;
151
+ solToCurve: bigint;
152
+ solToTreasury: bigint;
153
+ treasuryRateBps: number;
154
+ };
155
+ export declare const calculateSolOut: (tokenAmount: bigint, virtualSolReserves: bigint, virtualTokenReserves: bigint) => {
156
+ solOut: bigint;
157
+ solToUser: bigint;
158
+ };
159
+ export declare const calculatePrice: (virtualSolReserves: bigint, virtualTokenReserves: bigint) => number;
160
+ export declare const calculateBondingProgress: (realSolReserves: bigint) => number;
161
+ export declare const orderTokensForRaydium: (tokenA: PublicKey, tokenB: PublicKey) => {
162
+ token0: PublicKey;
163
+ token1: PublicKey;
164
+ isToken0First: boolean;
165
+ };
166
+ export declare const getRaydiumAuthorityPda: () => [PublicKey, number];
167
+ export declare const getRaydiumPoolStatePda: (ammConfig: PublicKey, token0Mint: PublicKey, token1Mint: PublicKey) => [PublicKey, number];
168
+ export declare const getRaydiumLpMintPda: (poolState: PublicKey) => [PublicKey, number];
169
+ export declare const getRaydiumVaultPda: (poolState: PublicKey, tokenMint: PublicKey) => [PublicKey, number];
170
+ export declare const getRaydiumObservationPda: (poolState: PublicKey) => [PublicKey, number];
171
+ export declare const getRaydiumMigrationAccounts: (tokenMint: PublicKey) => {
172
+ token0: PublicKey;
173
+ token1: PublicKey;
174
+ isWsolToken0: boolean;
175
+ raydiumAuthority: PublicKey;
176
+ poolState: PublicKey;
177
+ lpMint: PublicKey;
178
+ token0Vault: PublicKey;
179
+ token1Vault: PublicKey;
180
+ observationState: PublicKey;
181
+ };
182
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}