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 +21 -0
- package/dist/constants.d.ts +49 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +126 -0
- package/dist/constants.js.map +1 -0
- package/dist/gateway.d.ts +17 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +40 -0
- package/dist/gateway.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/program.d.ts +182 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +208 -0
- package/dist/program.js.map +1 -0
- package/dist/quotes.d.ts +16 -0
- package/dist/quotes.d.ts.map +1 -0
- package/dist/quotes.js +78 -0
- package/dist/quotes.js.map +1 -0
- package/dist/said.d.ts +27 -0
- package/dist/said.d.ts.map +1 -0
- package/dist/said.js +89 -0
- package/dist/said.js.map +1 -0
- package/dist/tokens.d.ts +44 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +537 -0
- package/dist/tokens.js.map +1 -0
- package/dist/torch_market.json +3172 -0
- package/dist/transactions.d.ts +93 -0
- package/dist/transactions.d.ts.map +1 -0
- package/dist/transactions.js +550 -0
- package/dist/transactions.js.map +1 -0
- package/dist/types.d.ts +194 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +34 -0
- package/readme.md +142 -0
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"}
|
package/dist/gateway.js
ADDED
|
@@ -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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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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"}
|