torchsdk 10.2.6 → 10.4.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/dist/constants.d.ts +5 -6
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +49 -52
- package/dist/constants.js.map +1 -1
- package/dist/ephemeral.d.ts +0 -25
- package/dist/ephemeral.d.ts.map +1 -1
- package/dist/ephemeral.js +10 -17
- package/dist/ephemeral.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -6
- package/dist/index.js.map +1 -1
- package/dist/program.d.ts +0 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +48 -119
- package/dist/program.js.map +1 -1
- package/dist/quotes.d.ts +0 -15
- package/dist/quotes.d.ts.map +1 -1
- package/dist/quotes.js +21 -35
- package/dist/quotes.js.map +1 -1
- package/dist/said.d.ts.map +1 -1
- package/dist/said.js +0 -3
- package/dist/said.js.map +1 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +9 -7
- package/dist/tokens.js.map +1 -1
- package/dist/torch_market.json +210 -2597
- package/dist/transactions.d.ts +2 -18
- package/dist/transactions.d.ts.map +1 -1
- package/dist/transactions.js +54 -39
- package/dist/transactions.js.map +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/readme.md +1 -0
- package/dist/gateway.d.ts +0 -20
- package/dist/gateway.d.ts.map +0 -1
- package/dist/gateway.js +0 -50
- package/dist/gateway.js.map +0 -1
package/dist/program.js
CHANGED
|
@@ -3,142 +3,87 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getRaydiumMigrationAccounts = exports.getRaydiumObservationPda = exports.getRaydiumVaultPda = exports.getRaydiumLpMintPda = exports.getRaydiumPoolStatePda = exports.getRaydiumAuthorityPda = exports.orderTokensForRaydium = exports.calculateBondingProgress = exports.calculatePrice = exports.calculateSolOut = exports.calculateTokensOut = exports.getProgram = exports.getTreasuryLockTokenAccount = exports.getShortConfigPda = exports.getShortPositionPda = exports.getTreasuryLockPda = exports.getVaultWalletLinkPda = exports.getTorchVaultPda = exports.getCollateralVaultPda = exports.getLoanPositionPda = exports.getStarRecordPda = exports.getUserStatsPda = exports.getProtocolTreasuryPda = exports.getTokenTreasuryPda = exports.
|
|
6
|
+
exports.getRaydiumMigrationAccounts = exports.getRaydiumObservationPda = exports.getRaydiumVaultPda = exports.getRaydiumLpMintPda = exports.getRaydiumPoolStatePda = exports.getRaydiumAuthorityPda = exports.orderTokensForRaydium = exports.calculateBondingProgress = exports.calculatePrice = exports.calculateSolOut = exports.calculateTokensOut = exports.getProgram = exports.getTreasuryLockTokenAccount = exports.getShortConfigPda = exports.getShortPositionPda = exports.getTreasuryLockPda = exports.getVaultWalletLinkPda = exports.getTorchVaultPda = exports.getCollateralVaultPda = exports.getLoanPositionPda = exports.getStarRecordPda = exports.getUserStatsPda = exports.getProtocolTreasuryPda = exports.getTokenTreasuryPda = exports.getUserPositionPda = exports.getTreasuryTokenAccount = exports.getBondingCurvePda = exports.getGlobalConfigPda = exports.decodeString = exports.PROGRAM_ID = void 0;
|
|
7
7
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
8
8
|
const web3_js_1 = require("@solana/web3.js");
|
|
9
9
|
const constants_1 = require("./constants");
|
|
10
10
|
Object.defineProperty(exports, "PROGRAM_ID", { enumerable: true, get: function () { return constants_1.PROGRAM_ID; } });
|
|
11
11
|
const spl_token_1 = require("@solana/spl-token");
|
|
12
12
|
const torch_market_json_1 = __importDefault(require("./torch_market.json"));
|
|
13
|
-
//
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
// treasury SOL rate decays linearly from 17.5% at bonding start to 2.5% at completion
|
|
14
|
+
const TREASURY_SOL_MAX_BPS = 1750;
|
|
15
|
+
const TREASURY_SOL_MIN_BPS = 250;
|
|
16
|
+
// creator SOL share grows from 0.2% → 1% during bonding (carved from treasury rate)
|
|
17
|
+
const CREATOR_SOL_MIN_BPS = 20;
|
|
18
|
+
const CREATOR_SOL_MAX_BPS = 100;
|
|
19
|
+
const decodeString = (bytes) => Buffer.from(bytes).toString('utf8').replace(/\0/g, '');
|
|
17
20
|
exports.decodeString = decodeString;
|
|
18
|
-
|
|
19
|
-
const getGlobalConfigPda = () => {
|
|
20
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.GLOBAL_CONFIG_SEED)], constants_1.PROGRAM_ID);
|
|
21
|
-
};
|
|
21
|
+
const getGlobalConfigPda = () => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.GLOBAL_CONFIG_SEED)], constants_1.PROGRAM_ID);
|
|
22
22
|
exports.getGlobalConfigPda = getGlobalConfigPda;
|
|
23
|
-
const getBondingCurvePda = (mint) =>
|
|
24
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.BONDING_CURVE_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
25
|
-
};
|
|
23
|
+
const getBondingCurvePda = (mint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.BONDING_CURVE_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
26
24
|
exports.getBondingCurvePda = getBondingCurvePda;
|
|
27
|
-
|
|
28
|
-
const getTreasuryTokenAccount = (mint, treasury) => {
|
|
29
|
-
return (0, spl_token_1.getAssociatedTokenAddressSync)(mint, treasury, true, // allowOwnerOffCurve (PDA)
|
|
30
|
-
constants_1.TOKEN_2022_PROGRAM_ID);
|
|
31
|
-
};
|
|
25
|
+
const getTreasuryTokenAccount = (mint, treasury) => (0, spl_token_1.getAssociatedTokenAddressSync)(mint, treasury, true, constants_1.TOKEN_2022_PROGRAM_ID);
|
|
32
26
|
exports.getTreasuryTokenAccount = getTreasuryTokenAccount;
|
|
33
|
-
const getUserPositionPda = (bondingCurve, user) =>
|
|
34
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.USER_POSITION_SEED), bondingCurve.toBuffer(), user.toBuffer()], constants_1.PROGRAM_ID);
|
|
35
|
-
};
|
|
27
|
+
const getUserPositionPda = (bondingCurve, user) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.USER_POSITION_SEED), bondingCurve.toBuffer(), user.toBuffer()], constants_1.PROGRAM_ID);
|
|
36
28
|
exports.getUserPositionPda = getUserPositionPda;
|
|
37
|
-
const
|
|
38
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.VOTE_SEED), bondingCurve.toBuffer(), voter.toBuffer()], constants_1.PROGRAM_ID);
|
|
39
|
-
};
|
|
40
|
-
exports.getVoteRecordPda = getVoteRecordPda;
|
|
41
|
-
const getTokenTreasuryPda = (mint) => {
|
|
42
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.TREASURY_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
43
|
-
};
|
|
29
|
+
const getTokenTreasuryPda = (mint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.TREASURY_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
44
30
|
exports.getTokenTreasuryPda = getTokenTreasuryPda;
|
|
45
|
-
|
|
46
|
-
const getProtocolTreasuryPda = () => {
|
|
47
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.PROTOCOL_TREASURY_SEED)], constants_1.PROGRAM_ID);
|
|
48
|
-
};
|
|
31
|
+
const getProtocolTreasuryPda = () => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.PROTOCOL_TREASURY_SEED)], constants_1.PROGRAM_ID);
|
|
49
32
|
exports.getProtocolTreasuryPda = getProtocolTreasuryPda;
|
|
50
|
-
|
|
51
|
-
const getUserStatsPda = (user) => {
|
|
52
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.USER_STATS_SEED), user.toBuffer()], constants_1.PROGRAM_ID);
|
|
53
|
-
};
|
|
33
|
+
const getUserStatsPda = (user) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.USER_STATS_SEED), user.toBuffer()], constants_1.PROGRAM_ID);
|
|
54
34
|
exports.getUserStatsPda = getUserStatsPda;
|
|
55
|
-
|
|
56
|
-
const getStarRecordPda = (user, mint) => {
|
|
57
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.STAR_RECORD_SEED), user.toBuffer(), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
58
|
-
};
|
|
35
|
+
const getStarRecordPda = (user, mint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.STAR_RECORD_SEED), user.toBuffer(), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
59
36
|
exports.getStarRecordPda = getStarRecordPda;
|
|
60
|
-
|
|
61
|
-
const getLoanPositionPda = (mint, borrower) => {
|
|
62
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.LOAN_SEED), mint.toBuffer(), borrower.toBuffer()], constants_1.PROGRAM_ID);
|
|
63
|
-
};
|
|
37
|
+
const getLoanPositionPda = (mint, borrower) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.LOAN_SEED), mint.toBuffer(), borrower.toBuffer()], constants_1.PROGRAM_ID);
|
|
64
38
|
exports.getLoanPositionPda = getLoanPositionPda;
|
|
65
|
-
|
|
66
|
-
const getCollateralVaultPda = (mint) => {
|
|
67
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.COLLATERAL_VAULT_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
68
|
-
};
|
|
39
|
+
const getCollateralVaultPda = (mint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.COLLATERAL_VAULT_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
69
40
|
exports.getCollateralVaultPda = getCollateralVaultPda;
|
|
70
|
-
|
|
71
|
-
const getTorchVaultPda = (creator) => {
|
|
72
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.TORCH_VAULT_SEED), creator.toBuffer()], constants_1.PROGRAM_ID);
|
|
73
|
-
};
|
|
41
|
+
const getTorchVaultPda = (creator) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.TORCH_VAULT_SEED), creator.toBuffer()], constants_1.PROGRAM_ID);
|
|
74
42
|
exports.getTorchVaultPda = getTorchVaultPda;
|
|
75
|
-
|
|
76
|
-
const getVaultWalletLinkPda = (wallet) => {
|
|
77
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.VAULT_WALLET_LINK_SEED), wallet.toBuffer()], constants_1.PROGRAM_ID);
|
|
78
|
-
};
|
|
43
|
+
const getVaultWalletLinkPda = (wallet) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.VAULT_WALLET_LINK_SEED), wallet.toBuffer()], constants_1.PROGRAM_ID);
|
|
79
44
|
exports.getVaultWalletLinkPda = getVaultWalletLinkPda;
|
|
80
|
-
|
|
81
|
-
const getTreasuryLockPda = (mint) => {
|
|
82
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.TREASURY_LOCK_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
83
|
-
};
|
|
45
|
+
const getTreasuryLockPda = (mint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.TREASURY_LOCK_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
84
46
|
exports.getTreasuryLockPda = getTreasuryLockPda;
|
|
85
|
-
|
|
86
|
-
const getShortPositionPda = (mint, shorter) => {
|
|
87
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.SHORT_SEED), mint.toBuffer(), shorter.toBuffer()], constants_1.PROGRAM_ID);
|
|
88
|
-
};
|
|
47
|
+
const getShortPositionPda = (mint, shorter) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.SHORT_SEED), mint.toBuffer(), shorter.toBuffer()], constants_1.PROGRAM_ID);
|
|
89
48
|
exports.getShortPositionPda = getShortPositionPda;
|
|
90
|
-
|
|
91
|
-
const getShortConfigPda = (mint) => {
|
|
92
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.SHORT_CONFIG_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
93
|
-
};
|
|
49
|
+
const getShortConfigPda = (mint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.SHORT_CONFIG_SEED), mint.toBuffer()], constants_1.PROGRAM_ID);
|
|
94
50
|
exports.getShortConfigPda = getShortConfigPda;
|
|
95
|
-
// V27: Treasury Lock's Token-2022 ATA
|
|
96
51
|
const getTreasuryLockTokenAccount = (mint, treasuryLock) => {
|
|
97
52
|
return (0, spl_token_1.getAssociatedTokenAddressSync)(mint, treasuryLock, true, // allowOwnerOffCurve (PDA)
|
|
98
53
|
constants_1.TOKEN_2022_PROGRAM_ID);
|
|
99
54
|
};
|
|
100
55
|
exports.getTreasuryLockTokenAccount = getTreasuryLockTokenAccount;
|
|
101
|
-
|
|
102
|
-
const getProgram = (provider) => {
|
|
103
|
-
return new anchor_1.Program(torch_market_json_1.default, provider);
|
|
104
|
-
};
|
|
56
|
+
const getProgram = (provider) => new anchor_1.Program(torch_market_json_1.default, provider);
|
|
105
57
|
exports.getProgram = getProgram;
|
|
106
|
-
//
|
|
107
|
-
const TREASURY_SOL_MAX_BPS = 1750; // 17.5% at start
|
|
108
|
-
const TREASURY_SOL_MIN_BPS = 250; // 2.5% at completion
|
|
109
|
-
// [V34] Creator SOL share: 0.2% → 1% during bonding (carved from treasury rate)
|
|
110
|
-
const CREATOR_SOL_MIN_BPS = 20; // 0.2% at start
|
|
111
|
-
const CREATOR_SOL_MAX_BPS = 100; // 1% at completion
|
|
112
|
-
// Calculate tokens out for a given SOL amount (V2.3: dynamic treasury rate, V34: creator share)
|
|
58
|
+
// tokens out for a given SOL amount
|
|
113
59
|
const calculateTokensOut = (solAmount, virtualSolReserves, virtualTokenReserves, realSolReserves = BigInt(0), // V2.3: needed for dynamic rate calculation
|
|
114
60
|
protocolFeeBps = 50, // [V4.0] 0.5% protocol fee (90% protocol treasury, 10% dev)
|
|
115
61
|
treasuryFeeBps = 0, // [V10] 0% token treasury fee (removed — treasury funded by dynamic SOL rate + transfer fees)
|
|
116
62
|
bondingTarget = BigInt('200000000000')) => {
|
|
117
|
-
//
|
|
63
|
+
// calculate protocol fee (1%)
|
|
118
64
|
const protocolFee = (solAmount * BigInt(protocolFeeBps)) / BigInt(10000);
|
|
119
|
-
//
|
|
65
|
+
// calculate treasury fee (1%)
|
|
120
66
|
const treasuryFee = (solAmount * BigInt(treasuryFeeBps)) / BigInt(10000);
|
|
121
67
|
const solAfterFees = solAmount - protocolFee - treasuryFee;
|
|
122
|
-
//
|
|
68
|
+
// flat 20% → 5% treasury rate across all tiers
|
|
123
69
|
const resolvedTarget = bondingTarget === BigInt(0) ? BigInt('200000000000') : bondingTarget;
|
|
124
|
-
//
|
|
70
|
+
// dynamic treasury rate - decays from 20% to 5% as bonding progresses
|
|
125
71
|
const rateRange = BigInt(TREASURY_SOL_MAX_BPS - TREASURY_SOL_MIN_BPS);
|
|
126
72
|
const decay = (realSolReserves * rateRange) / resolvedTarget;
|
|
127
73
|
const treasuryRateBps = Math.max(TREASURY_SOL_MAX_BPS - Number(decay), TREASURY_SOL_MIN_BPS);
|
|
128
|
-
//
|
|
74
|
+
// creator rate - grows from 0.2% to 1% (inverse of treasury decay)
|
|
129
75
|
const creatorRange = BigInt(CREATOR_SOL_MAX_BPS - CREATOR_SOL_MIN_BPS);
|
|
130
76
|
const creatorGrowth = (realSolReserves * creatorRange) / resolvedTarget;
|
|
131
77
|
const creatorRateBps = Math.min(CREATOR_SOL_MIN_BPS + Number(creatorGrowth), CREATOR_SOL_MAX_BPS);
|
|
132
|
-
//
|
|
78
|
+
// split remaining SOL: total rate → creator + treasury + curve
|
|
133
79
|
const totalSplit = (solAfterFees * BigInt(treasuryRateBps)) / BigInt(10000);
|
|
134
80
|
const solToCreator = (solAfterFees * BigInt(creatorRateBps)) / BigInt(10000);
|
|
135
81
|
const solToTreasurySplit = totalSplit - solToCreator;
|
|
136
82
|
const solToCurve = solAfterFees - totalSplit;
|
|
137
|
-
//
|
|
83
|
+
// total to treasury = flat fee + dynamic split (minus creator)
|
|
138
84
|
const solToTreasury = treasuryFee + solToTreasurySplit;
|
|
139
|
-
//
|
|
85
|
+
// constant product: tokens out for the SOL that enters the curve
|
|
140
86
|
const tokensOut = (virtualTokenReserves * solToCurve) / (virtualSolReserves + solToCurve);
|
|
141
|
-
// [V36] 100% of tokens go to buyer (vote vault removed)
|
|
142
87
|
const tokensToUser = tokensOut;
|
|
143
88
|
return {
|
|
144
89
|
tokensOut,
|
|
@@ -153,32 +98,32 @@ bondingTarget = BigInt('200000000000')) => {
|
|
|
153
98
|
};
|
|
154
99
|
};
|
|
155
100
|
exports.calculateTokensOut = calculateTokensOut;
|
|
156
|
-
//
|
|
101
|
+
// calculate SOL out for a given token amount (no sell fee)
|
|
157
102
|
const calculateSolOut = (tokenAmount, virtualSolReserves, virtualTokenReserves) => {
|
|
158
|
-
//
|
|
103
|
+
// calculate SOL using inverse formula
|
|
159
104
|
const solOut = (virtualSolReserves * tokenAmount) / (virtualTokenReserves + tokenAmount);
|
|
160
|
-
//
|
|
105
|
+
// no fees on sells - user gets full amount
|
|
161
106
|
return { solOut, solToUser: solOut };
|
|
162
107
|
};
|
|
163
108
|
exports.calculateSolOut = calculateSolOut;
|
|
164
|
-
//
|
|
109
|
+
// calculate current token price in SOL
|
|
165
110
|
const calculatePrice = (virtualSolReserves, virtualTokenReserves) => {
|
|
166
|
-
//
|
|
111
|
+
// price = virtualSol / virtualTokens
|
|
167
112
|
return Number(virtualSolReserves) / Number(virtualTokenReserves);
|
|
168
113
|
};
|
|
169
114
|
exports.calculatePrice = calculatePrice;
|
|
170
|
-
// Calculate bonding progress percentage
|
|
171
115
|
const calculateBondingProgress = (realSolReserves) => {
|
|
172
116
|
const target = BigInt('200000000000'); // 200 SOL in lamports
|
|
173
|
-
if (realSolReserves >= target)
|
|
117
|
+
if (realSolReserves >= target) {
|
|
174
118
|
return 100;
|
|
119
|
+
}
|
|
175
120
|
return (Number(realSolReserves) / Number(target)) * 100;
|
|
176
121
|
};
|
|
177
122
|
exports.calculateBondingProgress = calculateBondingProgress;
|
|
178
123
|
// ============================================================================
|
|
179
|
-
// RAYDIUM CPMM PDA DERIVATION
|
|
124
|
+
// RAYDIUM CPMM PDA DERIVATION
|
|
180
125
|
// ============================================================================
|
|
181
|
-
//
|
|
126
|
+
// order tokens for Raydium (token_0 < token_1 by pubkey bytes)
|
|
182
127
|
const orderTokensForRaydium = (tokenA, tokenB) => {
|
|
183
128
|
const aBytes = tokenA.toBuffer();
|
|
184
129
|
const bBytes = tokenB.toBuffer();
|
|
@@ -190,36 +135,20 @@ const orderTokensForRaydium = (tokenA, tokenB) => {
|
|
|
190
135
|
return { token0: tokenB, token1: tokenA, isToken0First: false };
|
|
191
136
|
}
|
|
192
137
|
}
|
|
193
|
-
//
|
|
138
|
+
// equal - shouldn't happen
|
|
194
139
|
return { token0: tokenA, token1: tokenB, isToken0First: true };
|
|
195
140
|
};
|
|
196
141
|
exports.orderTokensForRaydium = orderTokensForRaydium;
|
|
197
|
-
|
|
198
|
-
const getRaydiumAuthorityPda = () => {
|
|
199
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('vault_and_lp_mint_auth_seed')], (0, constants_1.getRaydiumCpmmProgram)());
|
|
200
|
-
};
|
|
142
|
+
const getRaydiumAuthorityPda = () => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('vault_and_lp_mint_auth_seed')], (0, constants_1.getRaydiumCpmmProgram)());
|
|
201
143
|
exports.getRaydiumAuthorityPda = getRaydiumAuthorityPda;
|
|
202
|
-
|
|
203
|
-
const getRaydiumPoolStatePda = (ammConfig, token0Mint, token1Mint) => {
|
|
204
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('pool'), ammConfig.toBuffer(), token0Mint.toBuffer(), token1Mint.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
205
|
-
};
|
|
144
|
+
const getRaydiumPoolStatePda = (ammConfig, token0Mint, token1Mint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('pool'), ammConfig.toBuffer(), token0Mint.toBuffer(), token1Mint.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
206
145
|
exports.getRaydiumPoolStatePda = getRaydiumPoolStatePda;
|
|
207
|
-
|
|
208
|
-
const getRaydiumLpMintPda = (poolState) => {
|
|
209
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('pool_lp_mint'), poolState.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
210
|
-
};
|
|
146
|
+
const getRaydiumLpMintPda = (poolState) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('pool_lp_mint'), poolState.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
211
147
|
exports.getRaydiumLpMintPda = getRaydiumLpMintPda;
|
|
212
|
-
|
|
213
|
-
const getRaydiumVaultPda = (poolState, tokenMint) => {
|
|
214
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('pool_vault'), poolState.toBuffer(), tokenMint.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
215
|
-
};
|
|
148
|
+
const getRaydiumVaultPda = (poolState, tokenMint) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('pool_vault'), poolState.toBuffer(), tokenMint.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
216
149
|
exports.getRaydiumVaultPda = getRaydiumVaultPda;
|
|
217
|
-
|
|
218
|
-
const getRaydiumObservationPda = (poolState) => {
|
|
219
|
-
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('observation'), poolState.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
220
|
-
};
|
|
150
|
+
const getRaydiumObservationPda = (poolState) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('observation'), poolState.toBuffer()], (0, constants_1.getRaydiumCpmmProgram)());
|
|
221
151
|
exports.getRaydiumObservationPda = getRaydiumObservationPda;
|
|
222
|
-
// Get all Raydium accounts needed for migration
|
|
223
152
|
const getRaydiumMigrationAccounts = (tokenMint) => {
|
|
224
153
|
const { token0, token1, isToken0First } = (0, exports.orderTokensForRaydium)(constants_1.WSOL_MINT, tokenMint);
|
|
225
154
|
const isWsolToken0 = isToken0First;
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA+D;AAC/D,6CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
package/dist/quotes.d.ts
CHANGED
|
@@ -6,22 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Connection } from '@solana/web3.js';
|
|
8
8
|
import { BuyQuoteResult, SellQuoteResult, BorrowQuoteResult } from './types';
|
|
9
|
-
/**
|
|
10
|
-
* Get a buy quote: how many tokens for a given SOL amount.
|
|
11
|
-
*
|
|
12
|
-
* Works for both bonding curve and migrated (Raydium DEX) tokens.
|
|
13
|
-
*/
|
|
14
9
|
export declare const getBuyQuote: (connection: Connection, mintStr: string, amountSolLamports: number) => Promise<BuyQuoteResult>;
|
|
15
|
-
/**
|
|
16
|
-
* Get a sell quote: how much SOL for a given token amount.
|
|
17
|
-
*
|
|
18
|
-
* Works for both bonding curve and migrated (Raydium DEX) tokens.
|
|
19
|
-
*/
|
|
20
10
|
export declare const getSellQuote: (connection: Connection, mintStr: string, amountTokens: number) => Promise<SellQuoteResult>;
|
|
21
|
-
/**
|
|
22
|
-
* Get a borrow quote: maximum borrowable SOL for a given collateral amount on a migrated token.
|
|
23
|
-
*
|
|
24
|
-
* @param collateralAmount - Collateral in token base units (with 6 decimals)
|
|
25
|
-
*/
|
|
26
11
|
export declare const getBorrowQuote: (connection: Connection, mintStr: string, collateralAmount: number) => Promise<BorrowQuoteResult>;
|
|
27
12
|
//# sourceMappingURL=quotes.d.ts.map
|
package/dist/quotes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAA;AASvD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAuC5E,eAAO,MAAM,WAAW,GACtB,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,mBAAmB,MAAM,KACxB,OAAO,CAAC,cAAc,CAgExB,CAAA;AAID,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,cAAc,MAAM,KACnB,OAAO,CAAC,eAAe,CA+CzB,CAAA;AAID,eAAO,MAAM,cAAc,GACzB,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,kBAAkB,MAAM,KACvB,OAAO,CAAC,iBAAiB,CA8B3B,CAAA"}
|
package/dist/quotes.js
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBorrowQuote = exports.getSellQuote = exports.getBuyQuote = void 0;
|
|
2
4
|
/**
|
|
3
5
|
* Quote calculations
|
|
4
6
|
*
|
|
5
7
|
* Get expected output for buy/sell operations.
|
|
6
8
|
* Works for both bonding curve tokens and migrated (Raydium DEX) tokens.
|
|
7
9
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.getBorrowQuote = exports.getSellQuote = exports.getBuyQuote = void 0;
|
|
10
10
|
const web3_js_1 = require("@solana/web3.js");
|
|
11
11
|
const program_1 = require("./program");
|
|
12
12
|
const constants_1 = require("./constants");
|
|
13
13
|
const tokens_1 = require("./tokens");
|
|
14
|
-
//
|
|
14
|
+
// raydium CPMM trade fee: 0.25% (25 bps) — standard for Raydium CPMM pools
|
|
15
15
|
const RAYDIUM_FEE_BPS = 25;
|
|
16
|
-
|
|
17
|
-
* Fetch Raydium pool reserves for a migrated token.
|
|
18
|
-
*/
|
|
16
|
+
// fetch Raydium pool reserves for a migrated token.
|
|
19
17
|
const fetchPoolReserves = async (connection, mint) => {
|
|
20
18
|
const raydium = (0, program_1.getRaydiumMigrationAccounts)(mint);
|
|
21
19
|
const [vault0Info, vault1Info] = await Promise.all([
|
|
@@ -31,21 +29,15 @@ const fetchPoolReserves = async (connection, mint) => {
|
|
|
31
29
|
return { solReserves: vault1Amount, tokenReserves: vault0Amount };
|
|
32
30
|
}
|
|
33
31
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
*
|
|
37
|
-
* effective_input = input * (10000 - fee_bps) / 10000
|
|
38
|
-
* output = effective_input * reserve_out / (reserve_in + effective_input)
|
|
39
|
-
*/
|
|
32
|
+
// CPMM swap calculation: constant product with fee.
|
|
33
|
+
// effective_input = input * (10000 - fee_bps) / 10000
|
|
34
|
+
// output = effective_input * reserve_out / (reserve_in + effective_input)
|
|
40
35
|
const cpmmSwap = (amountIn, reserveIn, reserveOut, feeBps = RAYDIUM_FEE_BPS) => {
|
|
41
36
|
const effectiveInput = (amountIn * BigInt(10000 - feeBps)) / BigInt(10000);
|
|
42
37
|
return (effectiveInput * reserveOut) / (reserveIn + effectiveInput);
|
|
43
38
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*
|
|
47
|
-
* Works for both bonding curve and migrated (Raydium DEX) tokens.
|
|
48
|
-
*/
|
|
39
|
+
// get a buy quote: how many tokens for a given SOL amount.
|
|
40
|
+
// works for both bonding curve and migrated (Raydium DEX) tokens.
|
|
49
41
|
const getBuyQuote = async (connection, mintStr, amountSolLamports) => {
|
|
50
42
|
const mint = new web3_js_1.PublicKey(mintStr);
|
|
51
43
|
const tokenData = await (0, tokens_1.fetchTokenRaw)(connection, mint);
|
|
@@ -53,16 +45,16 @@ const getBuyQuote = async (connection, mintStr, amountSolLamports) => {
|
|
|
53
45
|
throw new Error(`Token not found: ${mintStr}`);
|
|
54
46
|
}
|
|
55
47
|
const { bondingCurve } = tokenData;
|
|
56
|
-
//
|
|
48
|
+
// migrated token — quote from Raydium DEX pool
|
|
57
49
|
if (bondingCurve.bonding_complete) {
|
|
58
50
|
const { solReserves, tokenReserves } = await fetchPoolReserves(connection, mint);
|
|
59
51
|
const amountSol = BigInt(amountSolLamports);
|
|
60
52
|
const tokensOut = cpmmSwap(amountSol, solReserves, tokenReserves);
|
|
61
|
-
//
|
|
53
|
+
// price = sol per token (in lamports per base unit)
|
|
62
54
|
const priceBefore = Number(solReserves) / Number(tokenReserves);
|
|
63
55
|
const priceAfter = Number(solReserves + amountSol) / Number(tokenReserves - tokensOut);
|
|
64
56
|
const priceImpact = ((priceAfter - priceBefore) / priceBefore) * 100;
|
|
65
|
-
//
|
|
57
|
+
// price in human-readable: SOL per display token (with 6 decimals)
|
|
66
58
|
const pricePerTokenSol = (priceBefore * constants_1.TOKEN_MULTIPLIER) / constants_1.LAMPORTS_PER_SOL;
|
|
67
59
|
const minOutput = (tokensOut * BigInt(99)) / BigInt(100);
|
|
68
60
|
return {
|
|
@@ -76,7 +68,7 @@ const getBuyQuote = async (connection, mintStr, amountSolLamports) => {
|
|
|
76
68
|
source: 'dex',
|
|
77
69
|
};
|
|
78
70
|
}
|
|
79
|
-
//
|
|
71
|
+
// bonding curve token — use bonding math
|
|
80
72
|
const virtualSol = BigInt(bondingCurve.virtual_sol_reserves.toString());
|
|
81
73
|
const virtualTokens = BigInt(bondingCurve.virtual_token_reserves.toString());
|
|
82
74
|
const realSol = BigInt(bondingCurve.real_sol_reserves.toString());
|
|
@@ -99,11 +91,8 @@ const getBuyQuote = async (connection, mintStr, amountSolLamports) => {
|
|
|
99
91
|
};
|
|
100
92
|
};
|
|
101
93
|
exports.getBuyQuote = getBuyQuote;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
*
|
|
105
|
-
* Works for both bonding curve and migrated (Raydium DEX) tokens.
|
|
106
|
-
*/
|
|
94
|
+
// get a sell quote: how much SOL for a given token amount.
|
|
95
|
+
// works for both bonding curve and migrated (Raydium DEX) tokens.
|
|
107
96
|
const getSellQuote = async (connection, mintStr, amountTokens) => {
|
|
108
97
|
const mint = new web3_js_1.PublicKey(mintStr);
|
|
109
98
|
const tokenData = await (0, tokens_1.fetchTokenRaw)(connection, mint);
|
|
@@ -111,7 +100,7 @@ const getSellQuote = async (connection, mintStr, amountTokens) => {
|
|
|
111
100
|
throw new Error(`Token not found: ${mintStr}`);
|
|
112
101
|
}
|
|
113
102
|
const { bondingCurve } = tokenData;
|
|
114
|
-
//
|
|
103
|
+
// migrated token — quote from Raydium DEX pool
|
|
115
104
|
if (bondingCurve.bonding_complete) {
|
|
116
105
|
const { solReserves, tokenReserves } = await fetchPoolReserves(connection, mint);
|
|
117
106
|
const tokenAmount = BigInt(amountTokens);
|
|
@@ -131,7 +120,7 @@ const getSellQuote = async (connection, mintStr, amountTokens) => {
|
|
|
131
120
|
source: 'dex',
|
|
132
121
|
};
|
|
133
122
|
}
|
|
134
|
-
//
|
|
123
|
+
// bonding curve token — use bonding math
|
|
135
124
|
const virtualSol = BigInt(bondingCurve.virtual_sol_reserves.toString());
|
|
136
125
|
const virtualTokens = BigInt(bondingCurve.virtual_token_reserves.toString());
|
|
137
126
|
const tokenAmount = BigInt(amountTokens);
|
|
@@ -151,11 +140,8 @@ const getSellQuote = async (connection, mintStr, amountTokens) => {
|
|
|
151
140
|
};
|
|
152
141
|
};
|
|
153
142
|
exports.getSellQuote = getSellQuote;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
*
|
|
157
|
-
* @param collateralAmount - Collateral in token base units (with 6 decimals)
|
|
158
|
-
*/
|
|
143
|
+
// get a borrow quote: maximum borrowable SOL for a given collateral amount on a migrated token.
|
|
144
|
+
// collateralAmount in token base units (with 6 decimals).
|
|
159
145
|
const getBorrowQuote = async (connection, mintStr, collateralAmount) => {
|
|
160
146
|
const TRANSFER_FEE_BPS = 7;
|
|
161
147
|
const [lending, detail] = await Promise.all([
|
|
@@ -169,13 +155,13 @@ const getBorrowQuote = async (connection, mintStr, collateralAmount) => {
|
|
|
169
155
|
const ltvMaxSol = collateralValueSol * (lending.max_ltv_bps / 10000);
|
|
170
156
|
// 2. Pool available
|
|
171
157
|
const treasurySol = detail.treasury_sol_balance * constants_1.LAMPORTS_PER_SOL;
|
|
172
|
-
const maxLendableSol = treasurySol * lending.utilization_cap_bps / 10000;
|
|
158
|
+
const maxLendableSol = (treasurySol * lending.utilization_cap_bps) / 10000;
|
|
173
159
|
const totalLent = lending.total_sol_lent ?? 0;
|
|
174
160
|
const poolAvailableSol = Math.max(0, maxLendableSol - totalLent);
|
|
175
161
|
// 3. Per-user cap (accounts for transfer fee reducing net collateral)
|
|
176
162
|
const netCollateral = collateralAmount * (1 - TRANSFER_FEE_BPS / 10000);
|
|
177
163
|
const borrowMultiplier = lending.borrow_share_multiplier || 5;
|
|
178
|
-
const perUserCapSol = maxLendableSol * netCollateral * borrowMultiplier / Number(constants_1.TOTAL_SUPPLY);
|
|
164
|
+
const perUserCapSol = (maxLendableSol * netCollateral * borrowMultiplier) / Number(constants_1.TOTAL_SUPPLY);
|
|
179
165
|
const maxBorrowSol = Math.max(0, Math.min(ltvMaxSol, poolAvailableSol, perUserCapSol));
|
|
180
166
|
return {
|
|
181
167
|
max_borrow_sol: Math.floor(maxBorrowSol),
|
package/dist/quotes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"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"}
|
package/dist/said.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"said.d.ts","sourceRoot":"","sources":["../src/said.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAQzD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAgBzE,CAAA;AAMD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,UAAU,EACtB,WAAW,MAAM,EACjB,QAAQ,MAAM,KACb,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"said.d.ts","sourceRoot":"","sources":["../src/said.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAQzD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAgBzE,CAAA;AAMD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,UAAU,EACtB,WAAW,MAAM,EACjB,QAAQ,MAAM,KACb,OAAO,CAAC,aAAa,CA8CvB,CAAA"}
|
package/dist/said.js
CHANGED
|
@@ -75,14 +75,11 @@ const confirmTransaction = async (connection, signature, wallet) => {
|
|
|
75
75
|
const isCreateToken = logs.some((log) => log.includes('Instruction: CreateToken') || log.includes('create_token'));
|
|
76
76
|
const isBuy = logs.some((log) => log.includes('Instruction: Buy') || log.includes('Program log: Buy'));
|
|
77
77
|
const isSell = logs.some((log) => log.includes('Instruction: Sell') || log.includes('Program log: Sell'));
|
|
78
|
-
const isVote = logs.some((log) => log.includes('Instruction: Vote') || log.includes('Program log: Vote'));
|
|
79
78
|
let event_type = 'unknown';
|
|
80
79
|
if (isCreateToken)
|
|
81
80
|
event_type = 'token_launch';
|
|
82
81
|
else if (isBuy || isSell)
|
|
83
82
|
event_type = 'trade_complete';
|
|
84
|
-
else if (isVote)
|
|
85
|
-
event_type = 'governance_vote';
|
|
86
83
|
return { confirmed: true, event_type };
|
|
87
84
|
};
|
|
88
85
|
exports.confirmTransaction = confirmTransaction;
|
package/dist/said.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"said.js","sourceRoot":"","sources":["../src/said.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"said.js","sourceRoot":"","sources":["../src/said.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAMvD,OAAO,EACL,YAAY,EACZ,QAAQ,EAgBT,MAAM,WAAW,CAAA;AAYlB,OAAO,EAEL,WAAW,EAEX,eAAe,EACf,eAAe,EAEf,aAAa,EAEb,cAAc,EAEd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAEjB,sBAAsB,EACtB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAqMhB,QAAA,MAAM,aAAa,GACjB,YAAY,UAAU,EACtB,MAAM,SAAS,KACd,OAAO,CAAC;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAwB1E,CAAA;AAMD;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,YAAY,UAAU,EACtB,SAAQ,eAAoB,KAC3B,OAAO,CAAC,eAAe,CAWzB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,UAAU,EACtB,SAAS,MAAM,KACd,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAUpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAU,YAAY,UAAU,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,WAAW,CA6F3F,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,QAAO,MAAW,KACjB,OAAO,CAAC,aAAa,CA6DvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,QAAO,MAAW,EAClB,OAAO;IAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,KAC/D,OAAO,CAAC,cAAc,CA2JxB,CAAA;AA+BD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,UAAU,EACtB,SAAS,MAAM,KACd,OAAO,CAAC,WAAW,CAkFrB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,WAAW,MAAM,KAChB,OAAO,CAAC,gBAAgB,CA6F1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,UAAU,EACtB,SAAS,MAAM,EACf,WAAW,MAAM,KAChB,OAAO,CAAC,iBAAiB,CA6F3B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,UAAU,EACtB,SAAS,MAAM,KACd,OAAO,CAAC,sBAAsB,CAiHhC,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,YAAY,UAAU,EACtB,YAAY,MAAM,KACjB,OAAO,CAAC,SAAS,GAAG,IAAI,CAuB1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,UAAU,EACtB,WAAW,MAAM,KAChB,OAAO,CAAC,SAAS,GAAG,IAAI,CA2B1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,UAAU,EACtB,WAAW,MAAM,KAChB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAoBpC,CAAA;AAGD,OAAO,EAAE,aAAa,EAAE,CAAA"}
|