@zeroexcore/trader 1.1.4 → 3.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/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/dca/cancel.d.ts +3 -0
- package/dist/commands/dca/cancel.d.ts.map +1 -0
- package/dist/commands/dca/cancel.js +44 -0
- package/dist/commands/dca/cancel.js.map +1 -0
- package/dist/commands/dca/create.d.ts +3 -0
- package/dist/commands/dca/create.d.ts.map +1 -0
- package/dist/commands/dca/create.js +88 -0
- package/dist/commands/dca/create.js.map +1 -0
- package/dist/commands/dca/index.d.ts +3 -0
- package/dist/commands/dca/index.d.ts.map +1 -0
- package/dist/commands/dca/index.js +10 -0
- package/dist/commands/dca/index.js.map +1 -0
- package/dist/commands/dca/list.d.ts +3 -0
- package/dist/commands/dca/list.d.ts.map +1 -0
- package/dist/commands/dca/list.js +48 -0
- package/dist/commands/dca/list.js.map +1 -0
- package/dist/commands/limit/cancel.d.ts +3 -0
- package/dist/commands/limit/cancel.d.ts.map +1 -0
- package/dist/commands/limit/cancel.js +45 -0
- package/dist/commands/limit/cancel.js.map +1 -0
- package/dist/commands/limit/create.d.ts +3 -0
- package/dist/commands/limit/create.d.ts.map +1 -0
- package/dist/commands/limit/create.js +68 -0
- package/dist/commands/limit/create.js.map +1 -0
- package/dist/commands/limit/index.d.ts +3 -0
- package/dist/commands/limit/index.d.ts.map +1 -0
- package/dist/commands/limit/index.js +10 -0
- package/dist/commands/limit/index.js.map +1 -0
- package/dist/commands/limit/list.d.ts +3 -0
- package/dist/commands/limit/list.d.ts.map +1 -0
- package/dist/commands/limit/list.js +40 -0
- package/dist/commands/limit/list.js.map +1 -0
- package/dist/commands/perps/close.d.ts +3 -0
- package/dist/commands/perps/close.d.ts.map +1 -0
- package/dist/commands/perps/close.js +48 -0
- package/dist/commands/perps/close.js.map +1 -0
- package/dist/commands/perps/decrease.d.ts +3 -0
- package/dist/commands/perps/decrease.d.ts.map +1 -0
- package/dist/commands/perps/decrease.js +55 -0
- package/dist/commands/perps/decrease.js.map +1 -0
- package/dist/commands/perps/increase.d.ts +3 -0
- package/dist/commands/perps/increase.d.ts.map +1 -0
- package/dist/commands/perps/increase.js +60 -0
- package/dist/commands/perps/increase.js.map +1 -0
- package/dist/commands/perps/index.d.ts.map +1 -1
- package/dist/commands/perps/index.js +8 -0
- package/dist/commands/perps/index.js.map +1 -1
- package/dist/commands/perps/open.d.ts +3 -0
- package/dist/commands/perps/open.d.ts.map +1 -0
- package/dist/commands/perps/open.js +60 -0
- package/dist/commands/perps/open.js.map +1 -0
- package/dist/commands/perps/pool.d.ts.map +1 -1
- package/dist/commands/perps/pool.js +37 -29
- package/dist/commands/perps/pool.js.map +1 -1
- package/dist/commands/perps/positions.d.ts.map +1 -1
- package/dist/commands/perps/positions.js +56 -61
- package/dist/commands/perps/positions.js.map +1 -1
- package/dist/commands/perps/show.d.ts.map +1 -1
- package/dist/commands/perps/show.js +45 -25
- package/dist/commands/perps/show.js.map +1 -1
- package/dist/commands/portfolio.d.ts.map +1 -1
- package/dist/commands/portfolio.js +65 -18
- package/dist/commands/portfolio.js.map +1 -1
- package/dist/commands/predict/buy.d.ts.map +1 -1
- package/dist/commands/predict/buy.js +3 -0
- package/dist/commands/predict/buy.js.map +1 -1
- package/dist/commands/predict/sell.d.ts.map +1 -1
- package/dist/commands/predict/sell.js +3 -0
- package/dist/commands/predict/sell.js.map +1 -1
- package/dist/commands/tokens/quote.d.ts.map +1 -1
- package/dist/commands/tokens/quote.js +4 -1
- package/dist/commands/tokens/quote.js.map +1 -1
- package/dist/commands/tokens/swap.d.ts.map +1 -1
- package/dist/commands/tokens/swap.js +6 -3
- package/dist/commands/tokens/swap.js.map +1 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/utils/amounts.d.ts +0 -16
- package/dist/utils/amounts.d.ts.map +1 -1
- package/dist/utils/amounts.js +4 -36
- package/dist/utils/amounts.js.map +1 -1
- package/dist/utils/helius.d.ts +3 -23
- package/dist/utils/helius.d.ts.map +1 -1
- package/dist/utils/helius.js +0 -123
- package/dist/utils/helius.js.map +1 -1
- package/dist/utils/jupiter.d.ts +4 -8
- package/dist/utils/jupiter.d.ts.map +1 -1
- package/dist/utils/jupiter.js +1 -7
- package/dist/utils/jupiter.js.map +1 -1
- package/dist/utils/nft.d.ts +3 -37
- package/dist/utils/nft.d.ts.map +1 -1
- package/dist/utils/nft.js +0 -71
- package/dist/utils/nft.js.map +1 -1
- package/dist/utils/perps/index.d.ts +51 -10
- package/dist/utils/perps/index.d.ts.map +1 -1
- package/dist/utils/perps/index.js +249 -34
- package/dist/utils/perps/index.js.map +1 -1
- package/dist/utils/perps-api.d.ts +110 -0
- package/dist/utils/perps-api.d.ts.map +1 -0
- package/dist/utils/perps-api.js +260 -0
- package/dist/utils/perps-api.js.map +1 -0
- package/dist/utils/positions.d.ts +3 -77
- package/dist/utils/positions.d.ts.map +1 -1
- package/dist/utils/positions.js +3 -330
- package/dist/utils/positions.js.map +1 -1
- package/dist/utils/prediction.d.ts +6 -28
- package/dist/utils/prediction.d.ts.map +1 -1
- package/dist/utils/prediction.js +0 -37
- package/dist/utils/prediction.js.map +1 -1
- package/dist/utils/recurring.d.ts +79 -0
- package/dist/utils/recurring.d.ts.map +1 -0
- package/dist/utils/recurring.js +73 -0
- package/dist/utils/recurring.js.map +1 -0
- package/dist/utils/token-book.d.ts.map +1 -1
- package/dist/utils/token-book.js +10 -1
- package/dist/utils/token-book.js.map +1 -1
- package/dist/utils/token-info.d.ts +2 -1
- package/dist/utils/token-info.d.ts.map +1 -1
- package/dist/utils/token-info.js +5 -2
- package/dist/utils/token-info.js.map +1 -1
- package/dist/utils/trigger.d.ts +88 -0
- package/dist/utils/trigger.d.ts.map +1 -0
- package/dist/utils/trigger.js +114 -0
- package/dist/utils/trigger.js.map +1 -0
- package/dist/utils/wallet.d.ts +0 -9
- package/dist/utils/wallet.d.ts.map +1 -1
- package/dist/utils/wallet.js +14 -4
- package/dist/utils/wallet.js.map +1 -1
- package/package.json +8 -2
- package/dist/utils/perps/doves-idl.d.ts +0 -380
- package/dist/utils/perps/doves-idl.d.ts.map +0 -1
- package/dist/utils/perps/doves-idl.js +0 -379
- package/dist/utils/perps/doves-idl.js.map +0 -1
- package/dist/utils/perps/jupiter-perpetuals-idl.d.ts +0 -7243
- package/dist/utils/perps/jupiter-perpetuals-idl.d.ts.map +0 -1
- package/dist/utils/perps/jupiter-perpetuals-idl.js +0 -7242
- package/dist/utils/perps/jupiter-perpetuals-idl.js.map +0 -1
package/dist/utils/helius.js
CHANGED
|
@@ -127,127 +127,4 @@ export async function getPortfolio(address) {
|
|
|
127
127
|
tokens: tokenBalances,
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
|
-
/**
|
|
131
|
-
* Get transaction history for PnL calculation
|
|
132
|
-
*/
|
|
133
|
-
export async function getTransactionHistory(address, mint) {
|
|
134
|
-
const heliusApiKey = requireHeliusKey();
|
|
135
|
-
const url = apis.heliusTransactions(address, heliusApiKey);
|
|
136
|
-
const response = await fetch(url);
|
|
137
|
-
const transactions = await response.json();
|
|
138
|
-
// Filter by mint if provided
|
|
139
|
-
if (mint) {
|
|
140
|
-
return transactions.filter((tx) => {
|
|
141
|
-
return tx.tokenTransfers?.some((t) => t.mint === mint);
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
return transactions;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Calculate PnL for a specific token
|
|
148
|
-
*/
|
|
149
|
-
export async function calculatePnL(address, mint) {
|
|
150
|
-
const heliusApiKey = requireHeliusKey();
|
|
151
|
-
const url = apis.heliusTransactions(address, heliusApiKey);
|
|
152
|
-
const response = await fetch(url);
|
|
153
|
-
const transactions = await response.json();
|
|
154
|
-
let totalBought = 0;
|
|
155
|
-
let totalCostBasis = 0;
|
|
156
|
-
let totalSold = 0;
|
|
157
|
-
let totalRevenue = 0;
|
|
158
|
-
// Special handling for native SOL
|
|
159
|
-
const isNativeSOL = mint === tokens.SOL;
|
|
160
|
-
for (const tx of transactions) {
|
|
161
|
-
if (isNativeSOL) {
|
|
162
|
-
// Process native SOL transfers
|
|
163
|
-
for (const transfer of tx.nativeTransfers || []) {
|
|
164
|
-
const amount = transfer.amount / 1e9; // Convert lamports to SOL
|
|
165
|
-
// Get SOL price at the time of the transaction
|
|
166
|
-
let priceAtTime = 0;
|
|
167
|
-
try {
|
|
168
|
-
// In production, you'd fetch historical price. For now, use current price as estimate
|
|
169
|
-
const solPriceUrl = apis.heliusRpc(heliusApiKey);
|
|
170
|
-
const priceResponse = await fetch(solPriceUrl, {
|
|
171
|
-
method: 'POST',
|
|
172
|
-
headers: { 'Content-Type': 'application/json' },
|
|
173
|
-
body: JSON.stringify({
|
|
174
|
-
jsonrpc: '2.0',
|
|
175
|
-
id: 'price',
|
|
176
|
-
method: 'getAsset',
|
|
177
|
-
params: { id: mint },
|
|
178
|
-
}),
|
|
179
|
-
});
|
|
180
|
-
const priceData = await priceResponse.json();
|
|
181
|
-
priceAtTime = priceData.result?.token_info?.price_info?.price_per_token || 0;
|
|
182
|
-
}
|
|
183
|
-
catch (e) {
|
|
184
|
-
priceAtTime = 0;
|
|
185
|
-
}
|
|
186
|
-
const usdValue = amount * priceAtTime;
|
|
187
|
-
if (transfer.fromUserAccount === address) {
|
|
188
|
-
// Outgoing (sell/spend)
|
|
189
|
-
totalSold += amount;
|
|
190
|
-
totalRevenue += usdValue;
|
|
191
|
-
}
|
|
192
|
-
else if (transfer.toUserAccount === address) {
|
|
193
|
-
// Incoming (buy/receive)
|
|
194
|
-
totalBought += amount;
|
|
195
|
-
totalCostBasis += usdValue;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
// Process SPL token transfers
|
|
201
|
-
for (const transfer of tx.tokenTransfers || []) {
|
|
202
|
-
if (transfer.mint !== mint)
|
|
203
|
-
continue;
|
|
204
|
-
const amount = transfer.tokenAmount;
|
|
205
|
-
const usdValue = transfer.tokenAmount * (transfer.pricePerToken || 0);
|
|
206
|
-
if (transfer.fromUserAccount === address) {
|
|
207
|
-
// Sell
|
|
208
|
-
totalSold += amount;
|
|
209
|
-
totalRevenue += usdValue;
|
|
210
|
-
}
|
|
211
|
-
else if (transfer.toUserAccount === address) {
|
|
212
|
-
// Buy
|
|
213
|
-
totalBought += amount;
|
|
214
|
-
totalCostBasis += usdValue;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
// Current holdings
|
|
220
|
-
const portfolio = await getPortfolio(address);
|
|
221
|
-
const currentHolding = portfolio.tokens.find(t => t.mint === mint);
|
|
222
|
-
const currentValue = currentHolding?.valueUsd || 0;
|
|
223
|
-
const currentPrice = currentHolding?.pricePerToken || 0;
|
|
224
|
-
// Realized PnL (from sells)
|
|
225
|
-
const realizedPnL = totalBought > 0
|
|
226
|
-
? totalRevenue - (totalCostBasis * (totalSold / totalBought))
|
|
227
|
-
: 0;
|
|
228
|
-
// Unrealized PnL (current holdings)
|
|
229
|
-
const remainingCostBasis = totalBought > 0
|
|
230
|
-
? totalCostBasis - (totalCostBasis * (totalSold / totalBought))
|
|
231
|
-
: 0;
|
|
232
|
-
const unrealizedPnL = currentValue - remainingCostBasis;
|
|
233
|
-
// Calculate average purchase price
|
|
234
|
-
const avgPurchasePrice = totalBought > 0 ? totalCostBasis / totalBought : 0;
|
|
235
|
-
const priceChange = avgPurchasePrice > 0
|
|
236
|
-
? ((currentPrice - avgPurchasePrice) / avgPurchasePrice) * 100
|
|
237
|
-
: 0;
|
|
238
|
-
return {
|
|
239
|
-
mint,
|
|
240
|
-
totalBought,
|
|
241
|
-
totalSold,
|
|
242
|
-
currentHolding: currentHolding?.balance || 0,
|
|
243
|
-
costBasis: totalCostBasis,
|
|
244
|
-
avgPurchasePrice,
|
|
245
|
-
currentPrice,
|
|
246
|
-
priceChange,
|
|
247
|
-
currentValue,
|
|
248
|
-
realizedPnL,
|
|
249
|
-
unrealizedPnL,
|
|
250
|
-
totalPnL: realizedPnL + unrealizedPnL,
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
130
|
//# sourceMappingURL=helius.js.map
|
package/dist/utils/helius.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helius.js","sourceRoot":"","sources":["../../src/utils/helius.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helius.js","sourceRoot":"","sources":["../../src/utils/helius.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/jupiter.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Connection, Keypair } from '@solana/web3.js';
|
|
2
|
-
|
|
2
|
+
interface SwapParams {
|
|
3
3
|
inputMint: string;
|
|
4
4
|
outputMint: string;
|
|
5
|
-
amount:
|
|
5
|
+
amount: string;
|
|
6
6
|
slippageBps?: number;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface SwapQuote {
|
|
9
9
|
inputMint: string;
|
|
10
10
|
outputMint: string;
|
|
11
11
|
inAmount: string;
|
|
@@ -34,9 +34,5 @@ export declare function searchToken(query: string): Promise<any[]>;
|
|
|
34
34
|
* Browse top tokens by organic score via Jupiter Token API V2
|
|
35
35
|
*/
|
|
36
36
|
export declare function browseTokens(limit?: number): Promise<any[]>;
|
|
37
|
-
export
|
|
38
|
-
SOL: string;
|
|
39
|
-
USDC: string;
|
|
40
|
-
USDT: string;
|
|
41
|
-
};
|
|
37
|
+
export {};
|
|
42
38
|
//# sourceMappingURL=jupiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jupiter.d.ts","sourceRoot":"","sources":["../../src/utils/jupiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAwB,MAAM,iBAAiB,CAAC;AAG5E,
|
|
1
|
+
{"version":3,"file":"jupiter.d.ts","sourceRoot":"","sources":["../../src/utils/jupiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAwB,MAAM,iBAAiB,CAAC;AAG5E,UAAU,UAAU;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAkC9F;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC,CAyCjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAQ7D"}
|
package/dist/utils/jupiter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VersionedTransaction } from '@solana/web3.js';
|
|
2
|
-
import { apis,
|
|
2
|
+
import { apis, requireJupiterKey } from '../config.js';
|
|
3
3
|
/**
|
|
4
4
|
* Get swap order from Jupiter Ultra API v1
|
|
5
5
|
*/
|
|
@@ -97,10 +97,4 @@ export async function browseTokens(limit = 15) {
|
|
|
97
97
|
throw new Error(`Token browse failed: ${response.status}`);
|
|
98
98
|
return (await response.json());
|
|
99
99
|
}
|
|
100
|
-
// Common token mints for quick reference
|
|
101
|
-
export const COMMON_TOKENS = {
|
|
102
|
-
SOL: tokens.SOL,
|
|
103
|
-
USDC: tokens.USDC,
|
|
104
|
-
USDT: tokens.USDT,
|
|
105
|
-
};
|
|
106
100
|
//# sourceMappingURL=jupiter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jupiter.js","sourceRoot":"","sources":["../../src/utils/jupiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"jupiter.js","sourceRoot":"","sources":["../../src/utils/jupiter.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/nft.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Big from 'big.js';
|
|
2
|
-
|
|
2
|
+
interface NFTListing {
|
|
3
3
|
mint: string;
|
|
4
4
|
name: string;
|
|
5
5
|
image: string;
|
|
@@ -8,30 +8,13 @@ export interface NFTListing {
|
|
|
8
8
|
collection: string;
|
|
9
9
|
attributes?: Record<string, string>;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
interface CollectionStats {
|
|
12
12
|
symbol: string;
|
|
13
13
|
name: string;
|
|
14
14
|
floorPrice: Big;
|
|
15
15
|
listedCount: number;
|
|
16
16
|
volumeAll: Big;
|
|
17
17
|
}
|
|
18
|
-
export interface CryptCard {
|
|
19
|
-
mint: string;
|
|
20
|
-
name: string;
|
|
21
|
-
image: string;
|
|
22
|
-
insuredValue: number;
|
|
23
|
-
grade?: string;
|
|
24
|
-
gradeNum?: number;
|
|
25
|
-
year?: string;
|
|
26
|
-
category: string;
|
|
27
|
-
rarity?: string;
|
|
28
|
-
}
|
|
29
|
-
export interface GachaStock {
|
|
30
|
-
common: number;
|
|
31
|
-
uncommon: number;
|
|
32
|
-
rare: number;
|
|
33
|
-
epic: number;
|
|
34
|
-
}
|
|
35
18
|
/**
|
|
36
19
|
* Get collection stats including floor price
|
|
37
20
|
*/
|
|
@@ -52,24 +35,7 @@ export declare function searchCollections(query: string): Promise<CollectionStat
|
|
|
52
35
|
* Get NFTs owned by a wallet
|
|
53
36
|
*/
|
|
54
37
|
export declare function getWalletNFTs(walletAddress: string): Promise<any[]>;
|
|
55
|
-
/**
|
|
56
|
-
* Get gacha machine stock
|
|
57
|
-
*/
|
|
58
|
-
export declare function getGachaStock(): Promise<Record<string, GachaStock>>;
|
|
59
|
-
/**
|
|
60
|
-
* Get cards available in gacha by rarity
|
|
61
|
-
*/
|
|
62
|
-
export declare function getGachaCards(packType?: 'pokemon_50' | 'pokemon_250' | 'pokemon_1000', rarity?: 'common' | 'uncommon' | 'rare' | 'epic'): Promise<CryptCard[]>;
|
|
63
|
-
/**
|
|
64
|
-
* Get Pokemon listings from Collector Crypt on Magic Eden
|
|
65
|
-
*/
|
|
66
|
-
export declare function getCryptListings(limit?: number): Promise<NFTListing[]>;
|
|
67
|
-
/**
|
|
68
|
-
* Get gacha machine status
|
|
69
|
-
*/
|
|
70
|
-
export declare function getGachaStatus(): Promise<{
|
|
71
|
-
machineStatus: string;
|
|
72
|
-
}>;
|
|
73
38
|
export declare function formatSol(amount: Big): string;
|
|
74
39
|
export declare function solToUsd(sol: Big, solPrice?: number): Big;
|
|
40
|
+
export {};
|
|
75
41
|
//# sourceMappingURL=nft.d.ts.map
|
package/dist/utils/nft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nft.d.ts","sourceRoot":"","sources":["../../src/utils/nft.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"nft.d.ts","sourceRoot":"","sources":["../../src/utils/nft.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAC;AAQzB,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,GAAG,CAAC;CAChB;AAID;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAajF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAmBnF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAclF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAcjF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAMzE;AAID,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAE7C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,SAAK,GAAG,GAAG,CAErD"}
|
package/dist/utils/nft.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import Big from 'big.js';
|
|
2
2
|
// Magic Eden API
|
|
3
3
|
const ME_API = 'https://api-mainnet.magiceden.dev/v2';
|
|
4
|
-
// Collector Crypt Gacha API
|
|
5
|
-
const CC_GACHA_API = 'https://gacha.collectorcrypt.com/api';
|
|
6
4
|
// Lamports to SOL
|
|
7
5
|
const LAMPORTS = new Big(1_000_000_000);
|
|
8
6
|
// ============ Magic Eden ============
|
|
@@ -89,75 +87,6 @@ export async function getWalletNFTs(walletAddress) {
|
|
|
89
87
|
}
|
|
90
88
|
return response.json();
|
|
91
89
|
}
|
|
92
|
-
// ============ Collector Crypt ============
|
|
93
|
-
/**
|
|
94
|
-
* Get gacha machine stock
|
|
95
|
-
*/
|
|
96
|
-
export async function getGachaStock() {
|
|
97
|
-
const response = await fetch(`${CC_GACHA_API}/stock`);
|
|
98
|
-
if (!response.ok) {
|
|
99
|
-
throw new Error('Failed to fetch gacha stock');
|
|
100
|
-
}
|
|
101
|
-
return response.json();
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Get cards available in gacha by rarity
|
|
105
|
-
*/
|
|
106
|
-
export async function getGachaCards(packType = 'pokemon_50', rarity) {
|
|
107
|
-
let url = `${CC_GACHA_API}/getNfts?code=${packType}`;
|
|
108
|
-
if (rarity) {
|
|
109
|
-
url += `&rarity=${rarity}`;
|
|
110
|
-
}
|
|
111
|
-
const response = await fetch(url);
|
|
112
|
-
if (!response.ok) {
|
|
113
|
-
throw new Error('Failed to fetch gacha cards');
|
|
114
|
-
}
|
|
115
|
-
const data = await response.json();
|
|
116
|
-
return (data.nfts || []).map((item) => {
|
|
117
|
-
const attrs = item.content?.metadata?.attributes || [];
|
|
118
|
-
const getAttr = (key) => attrs.find((a) => a.trait_type === key)?.value;
|
|
119
|
-
return {
|
|
120
|
-
mint: item.id,
|
|
121
|
-
name: item.content?.metadata?.name || 'Unknown',
|
|
122
|
-
image: item.content?.links?.image || '',
|
|
123
|
-
insuredValue: parseInt(getAttr('Insured Value') || '0'),
|
|
124
|
-
grade: getAttr('The Grade'),
|
|
125
|
-
gradeNum: parseInt(getAttr('GradeNum') || '0'),
|
|
126
|
-
year: getAttr('Year'),
|
|
127
|
-
category: getAttr('Category') || 'Pokemon',
|
|
128
|
-
rarity: rarity,
|
|
129
|
-
};
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Get Pokemon listings from Collector Crypt on Magic Eden
|
|
134
|
-
*/
|
|
135
|
-
export async function getCryptListings(limit = 50) {
|
|
136
|
-
const listings = await getListings('collector_crypt', limit);
|
|
137
|
-
// Filter to Pokemon only and enrich with card data
|
|
138
|
-
return listings.filter(l => {
|
|
139
|
-
const category = l.attributes?.['Category'];
|
|
140
|
-
return category === 'Pokemon';
|
|
141
|
-
}).map(l => ({
|
|
142
|
-
...l,
|
|
143
|
-
attributes: {
|
|
144
|
-
...l.attributes,
|
|
145
|
-
insuredValue: l.attributes?.['Insured Value'] || '',
|
|
146
|
-
grade: l.attributes?.['The Grade'] || '',
|
|
147
|
-
year: l.attributes?.['Year'] || '',
|
|
148
|
-
},
|
|
149
|
-
}));
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Get gacha machine status
|
|
153
|
-
*/
|
|
154
|
-
export async function getGachaStatus() {
|
|
155
|
-
const response = await fetch(`${CC_GACHA_API}/status`);
|
|
156
|
-
if (!response.ok) {
|
|
157
|
-
throw new Error('Failed to fetch gacha status');
|
|
158
|
-
}
|
|
159
|
-
return response.json();
|
|
160
|
-
}
|
|
161
90
|
// ============ Helpers ============
|
|
162
91
|
export function formatSol(amount) {
|
|
163
92
|
return `${amount.toFixed(2)} SOL`;
|
package/dist/utils/nft.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nft.js","sourceRoot":"","sources":["../../src/utils/nft.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAC;AAEzB,iBAAiB;AACjB,MAAM,MAAM,GAAG,sCAAsC,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"nft.js","sourceRoot":"","sources":["../../src/utils/nft.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BN from "bn.js";
|
|
2
|
+
import { Connection, PublicKey, VersionedTransaction } from "@solana/web3.js";
|
|
2
3
|
import Big from "big.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
declare const PROGRAM_ID: PublicKey;
|
|
5
|
+
declare const POOL: PublicKey;
|
|
6
|
+
declare const CUSTODY: {
|
|
6
7
|
readonly SOL: PublicKey;
|
|
7
8
|
readonly ETH: PublicKey;
|
|
8
9
|
readonly BTC: PublicKey;
|
|
9
10
|
readonly USDC: PublicKey;
|
|
10
11
|
readonly USDT: PublicKey;
|
|
11
12
|
};
|
|
13
|
+
declare const MARKET_MINTS: Record<string, PublicKey>;
|
|
14
|
+
export type Side = "long" | "short";
|
|
12
15
|
export type PerpsPosition = {
|
|
13
16
|
publicKey: string;
|
|
14
17
|
owner: string;
|
|
15
|
-
side:
|
|
18
|
+
side: Side;
|
|
16
19
|
custody: string;
|
|
20
|
+
custodyPubkey: string;
|
|
21
|
+
collateralCustodyPubkey: string;
|
|
17
22
|
sizeUsd: Big;
|
|
18
23
|
collateralUsd: Big;
|
|
19
24
|
entryPrice: Big;
|
|
@@ -24,6 +29,10 @@ export type PerpsPosition = {
|
|
|
24
29
|
export type CustodyInfo = {
|
|
25
30
|
name: string;
|
|
26
31
|
pubkey: PublicKey;
|
|
32
|
+
mint: PublicKey;
|
|
33
|
+
tokenAccount: PublicKey;
|
|
34
|
+
dovesPriceAccount: PublicKey;
|
|
35
|
+
pythnetPriceAccount: PublicKey;
|
|
27
36
|
maxLeverage: number;
|
|
28
37
|
openFeeBps: number;
|
|
29
38
|
closeFeeBps: number;
|
|
@@ -34,12 +43,44 @@ export type PoolStats = {
|
|
|
34
43
|
aumUsd: Big;
|
|
35
44
|
name: string;
|
|
36
45
|
};
|
|
46
|
+
export type IncreasePositionRequest = {
|
|
47
|
+
owner: PublicKey;
|
|
48
|
+
market: keyof typeof CUSTODY;
|
|
49
|
+
side: Side;
|
|
50
|
+
collateralToken: string;
|
|
51
|
+
collateralAmount: BN;
|
|
52
|
+
sizeUsdDelta: BN;
|
|
53
|
+
priceSlippage: BN;
|
|
54
|
+
jupiterMinimumOut?: BN;
|
|
55
|
+
};
|
|
56
|
+
export type DecreasePositionRequest = {
|
|
57
|
+
owner: PublicKey;
|
|
58
|
+
positionPubkey: PublicKey;
|
|
59
|
+
desiredToken: string;
|
|
60
|
+
sizeUsdDelta?: BN;
|
|
61
|
+
collateralUsdDelta?: BN;
|
|
62
|
+
priceSlippage: BN;
|
|
63
|
+
jupiterMinimumOut?: BN;
|
|
64
|
+
entirePosition?: boolean;
|
|
65
|
+
};
|
|
66
|
+
export declare function derivePositionPda(wallet: PublicKey, custody: PublicKey, collateralCustody: PublicKey, side: Side): PublicKey;
|
|
67
|
+
/** Resolve market + side to custody and collateral custody */
|
|
68
|
+
export declare function resolveCustodies(market: string, side: Side): {
|
|
69
|
+
custody: PublicKey;
|
|
70
|
+
collateralCustody: PublicKey;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Build a createIncreasePositionMarketRequest transaction.
|
|
74
|
+
* Opens a new position or increases an existing one.
|
|
75
|
+
*/
|
|
76
|
+
export declare function buildIncreasePositionTx(connection: Connection, req: IncreasePositionRequest): Promise<VersionedTransaction>;
|
|
77
|
+
/**
|
|
78
|
+
* Build a createDecreasePositionMarketRequest transaction.
|
|
79
|
+
* Decreases or closes an existing position.
|
|
80
|
+
*/
|
|
81
|
+
export declare function buildDecreasePositionTx(connection: Connection, req: DecreasePositionRequest): Promise<VersionedTransaction>;
|
|
37
82
|
export declare function getPoolStats(connection: Connection): Promise<PoolStats>;
|
|
38
|
-
export declare function getCustodyInfo(connection: Connection, market: keyof typeof CUSTODY): Promise<CustodyInfo>;
|
|
39
83
|
export declare function getAllCustodyInfo(connection: Connection): Promise<CustodyInfo[]>;
|
|
40
84
|
export declare function getOpenPositions(connection: Connection, walletPubkey: PublicKey | string): Promise<PerpsPosition[]>;
|
|
41
|
-
export
|
|
42
|
-
pnl: Big;
|
|
43
|
-
pnlPercent: number;
|
|
44
|
-
};
|
|
85
|
+
export { CUSTODY, POOL, PROGRAM_ID, MARKET_MINTS };
|
|
45
86
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/perps/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/perps/index.ts"],"names":[],"mappings":"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"}
|