genius-intents 0.20.2 → 0.21.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/CHANGELOG.md +54 -0
- package/dist/direct-pools/pool-info/pool-info-orchestrator.service.d.ts.map +1 -1
- package/dist/direct-pools/pool-info/pool-info-orchestrator.service.js +0 -2
- package/dist/direct-pools/pool-info/pool-info-orchestrator.service.js.map +1 -1
- package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.d.ts +6 -1
- package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.d.ts.map +1 -1
- package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.js +28 -2
- package/dist/direct-pools/pump-fun/pool-info/pump-fun-pool-info.service.js.map +1 -1
- package/dist/direct-pools/pump-fun/pool-info/pump-pool-info.types.d.ts +5 -0
- package/dist/direct-pools/pump-fun/pool-info/pump-pool-info.types.d.ts.map +1 -1
- package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.d.ts +5 -1
- package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.d.ts.map +1 -1
- package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.js +32 -2
- package/dist/direct-pools/pump-fun/pool-info/pump-swap-amm-pool-info.service.js.map +1 -1
- package/dist/direct-pools/pump-fun/txn-builder/pump-fun.service.d.ts.map +1 -1
- package/dist/direct-pools/pump-fun/txn-builder/pump-fun.service.js +25 -17
- package/dist/direct-pools/pump-fun/txn-builder/pump-fun.service.js.map +1 -1
- package/dist/direct-pools/pump-fun/txn-builder/pump-fun.types.d.ts +6 -0
- package/dist/direct-pools/pump-fun/txn-builder/pump-fun.types.d.ts.map +1 -1
- package/dist/direct-pools/pump-fun/txn-builder/pump-swap-amm.service.d.ts.map +1 -1
- package/dist/direct-pools/pump-fun/txn-builder/pump-swap-amm.service.js +47 -35
- package/dist/direct-pools/pump-fun/txn-builder/pump-swap-amm.service.js.map +1 -1
- package/dist/lib/dex/pair-discovery/pair-discovery.service.d.ts +4 -0
- package/dist/lib/dex/pair-discovery/pair-discovery.service.d.ts.map +1 -1
- package/dist/lib/dex/pair-discovery/pair-discovery.service.js +103 -27
- package/dist/lib/dex/pair-discovery/pair-discovery.service.js.map +1 -1
- package/dist/lib/dex/pair-discovery/pair-discovery.types.d.ts +26 -0
- package/dist/lib/dex/pair-discovery/pair-discovery.types.d.ts.map +1 -1
- package/dist/lib/transfer-taxes/erc20-taxes.types.d.ts +30 -0
- package/dist/lib/transfer-taxes/erc20-taxes.types.d.ts.map +1 -0
- package/dist/lib/transfer-taxes/erc20-taxes.types.js +3 -0
- package/dist/lib/transfer-taxes/erc20-taxes.types.js.map +1 -0
- package/dist/lib/transfer-taxes/erc20-tokenIn-taxes.d.ts +3 -0
- package/dist/lib/transfer-taxes/erc20-tokenIn-taxes.d.ts.map +1 -0
- package/dist/lib/transfer-taxes/erc20-tokenIn-taxes.js +166 -0
- package/dist/lib/transfer-taxes/erc20-tokenIn-taxes.js.map +1 -0
- package/dist/token-launches/pump-fun/pump-fun-launch.service.d.ts.map +1 -1
- package/dist/token-launches/pump-fun/pump-fun-launch.service.js +9 -6
- package/dist/token-launches/pump-fun/pump-fun-launch.service.js.map +1 -1
- package/dist/token-launches/pump-fun/pump-fun-launch.types.d.ts +1 -0
- package/dist/token-launches/pump-fun/pump-fun-launch.types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.determineTokenInTransferTax = determineTokenInTransferTax;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const constants_1 = require("../../utils/constants");
|
|
6
|
+
const is_native_1 = require("../../utils/is-native");
|
|
7
|
+
const wrapped_native_1 = require("../../utils/wrapped-native");
|
|
8
|
+
/* ----------------- constants & helpers ----------------- */
|
|
9
|
+
const TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
|
|
10
|
+
const SWAP_TOPIC = '0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822';
|
|
11
|
+
const KNOWN_SINKS = new Set([
|
|
12
|
+
constants_1.ZERO_ADDRESS.toLowerCase(),
|
|
13
|
+
'0x000000000000000000000000000000000000dead',
|
|
14
|
+
]);
|
|
15
|
+
function toChecksum(addr) {
|
|
16
|
+
return ethers_1.ethers.getAddress(addr);
|
|
17
|
+
}
|
|
18
|
+
function toBps(n, d) {
|
|
19
|
+
if (d <= 0n)
|
|
20
|
+
return 0;
|
|
21
|
+
return Number((n * 10000n) / d);
|
|
22
|
+
}
|
|
23
|
+
function parseTokenTransfersFor(receipt, token) {
|
|
24
|
+
const tokenLc = token.toLowerCase();
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const log of receipt.logs) {
|
|
27
|
+
if (!log || !log.topics?.length)
|
|
28
|
+
continue;
|
|
29
|
+
if (log.address.toLowerCase() !== tokenLc)
|
|
30
|
+
continue;
|
|
31
|
+
if (!log?.topics[0])
|
|
32
|
+
continue;
|
|
33
|
+
if (log.topics[0].toLowerCase() !== TRANSFER_TOPIC)
|
|
34
|
+
continue;
|
|
35
|
+
if (log.topics.length < 3)
|
|
36
|
+
continue;
|
|
37
|
+
if (!log.topics[1])
|
|
38
|
+
continue;
|
|
39
|
+
if (!log.topics[2])
|
|
40
|
+
continue;
|
|
41
|
+
const from = `0x${log.topics[1].slice(26)}`.toLowerCase();
|
|
42
|
+
const to = `0x${log.topics[2].slice(26)}`.toLowerCase();
|
|
43
|
+
const value = BigInt(log.data);
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
const index = log.index ?? log.logIndex ?? 0;
|
|
46
|
+
out.push({ from, to, value, index });
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
const pairAbi = [
|
|
51
|
+
'function token0() view returns (address)',
|
|
52
|
+
'function token1() view returns (address)',
|
|
53
|
+
'event Swap(address indexed sender,uint256 amount0In,uint256 amount1In,uint256 amount0Out,uint256 amount1Out,address indexed to)',
|
|
54
|
+
];
|
|
55
|
+
/**
|
|
56
|
+
* Find and decode the Swap for this pair in this receipt.
|
|
57
|
+
* Returns the log index and decoded amounts.
|
|
58
|
+
*/
|
|
59
|
+
function hasSwapEvent(receipt, pair) {
|
|
60
|
+
const iface = new ethers_1.ethers.Interface(pairAbi);
|
|
61
|
+
for (const log of receipt.logs) {
|
|
62
|
+
if (log.address.toLowerCase() !== pair.toLowerCase())
|
|
63
|
+
continue;
|
|
64
|
+
if (!log?.topics[0])
|
|
65
|
+
continue;
|
|
66
|
+
if (log.topics[0].toLowerCase() !== SWAP_TOPIC)
|
|
67
|
+
continue;
|
|
68
|
+
const parsed = iface.parseLog({ topics: log.topics, data: log.data });
|
|
69
|
+
if (!parsed)
|
|
70
|
+
continue;
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Sell tax (tokenIn): fee burned/redirected when user sells tokenIn tokens
|
|
77
|
+
* taxBps = feeToSinks / (userSentToPair + feeToSinks)
|
|
78
|
+
*/
|
|
79
|
+
function computeSellTaxBpsFromTx(tokenOutTransfers, pair, tokenOutAddr, userEoa) {
|
|
80
|
+
const pairLc = pair.toLowerCase();
|
|
81
|
+
const tokenLc = tokenOutAddr.toLowerCase();
|
|
82
|
+
const userEoaLc = userEoa.toLowerCase();
|
|
83
|
+
// console.log(`\n=== SELL TAX DEBUG ===`);
|
|
84
|
+
// console.log(`Token: ${tokenOutAddr}`);
|
|
85
|
+
// console.log(`Pair: ${pair}`);
|
|
86
|
+
// console.log(`UserEOA: ${userEoa}`);
|
|
87
|
+
// console.log(`SwapIndex: ${swapIndex}`);
|
|
88
|
+
// console.log(`Total transfers: ${tokenOutTransfers.length}`);
|
|
89
|
+
let userSentToPair = 0n;
|
|
90
|
+
let feeToSinks = 0n;
|
|
91
|
+
// Look for transfers from user (both before and after swap)
|
|
92
|
+
for (const t of tokenOutTransfers) {
|
|
93
|
+
if (t.from !== userEoaLc)
|
|
94
|
+
continue; // only transfers from the user
|
|
95
|
+
const isPairReceiving = t.to === pairLc;
|
|
96
|
+
const isSink = KNOWN_SINKS.has(t.to) || t.to === tokenLc;
|
|
97
|
+
// console.log(
|
|
98
|
+
// `User transfer: from=${t.from} to=${t.to} value=${t.value} index=${t.index} isPair=${isPairReceiving} isSink=${isSink}`,
|
|
99
|
+
// );
|
|
100
|
+
if (isPairReceiving) {
|
|
101
|
+
userSentToPair += t.value;
|
|
102
|
+
}
|
|
103
|
+
else if (isSink) {
|
|
104
|
+
feeToSinks += t.value;
|
|
105
|
+
}
|
|
106
|
+
// Ignore other transfers from user (might be approvals, etc.)
|
|
107
|
+
}
|
|
108
|
+
// console.log(`UserSentToPair: ${userSentToPair}`);
|
|
109
|
+
// console.log(`FeeToSinks: ${feeToSinks}`);
|
|
110
|
+
const totalUserSent = userSentToPair + feeToSinks;
|
|
111
|
+
// console.log(`TotalUserSent: ${totalUserSent}`);
|
|
112
|
+
if (totalUserSent === 0n)
|
|
113
|
+
return 0;
|
|
114
|
+
// Tax rate = fee / (amount to pair + fee)
|
|
115
|
+
const taxBps = toBps(feeToSinks, totalUserSent);
|
|
116
|
+
// console.log(`Sell Tax BPS: ${taxBps}`);
|
|
117
|
+
return taxBps;
|
|
118
|
+
}
|
|
119
|
+
/* ----------------- public entry ----------------- */
|
|
120
|
+
async function determineTokenInTransferTax(params) {
|
|
121
|
+
const { tokenIn, tokenOut, network, client, sellTxHash, pairAddress, sellTxEoa } = params;
|
|
122
|
+
const tokenInIsNative = (0, is_native_1.isNative)(tokenIn);
|
|
123
|
+
const tokenOutIsNative = (0, is_native_1.isNative)(tokenOut);
|
|
124
|
+
const wNative = wrapped_native_1.wrappedNativeTokens[network];
|
|
125
|
+
try {
|
|
126
|
+
// If tokenIn is native, no sell tax applies - return 0 immediately
|
|
127
|
+
if (tokenInIsNative) {
|
|
128
|
+
if (!wNative)
|
|
129
|
+
throw new Error(`No wrapped native token configured for network ${network}`);
|
|
130
|
+
return {
|
|
131
|
+
address: wNative,
|
|
132
|
+
sellTaxBps: 0,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if (!pairAddress) {
|
|
136
|
+
throw new Error('pairAddress is required for EVM transfer-tax detection');
|
|
137
|
+
}
|
|
138
|
+
if (tokenInIsNative && tokenOutIsNative)
|
|
139
|
+
throw new Error('Both tokenIn and tokenOut cannot be native tokens');
|
|
140
|
+
const pair = toChecksum(pairAddress);
|
|
141
|
+
// Only calculate sell tax for tokenIn since that's what we care about
|
|
142
|
+
let tokenInSellTax = 0;
|
|
143
|
+
const receipt = await client.getTransactionReceipt(sellTxHash);
|
|
144
|
+
if (!receipt)
|
|
145
|
+
throw new Error(`Sell transaction ${sellTxHash} not found`);
|
|
146
|
+
const swap = hasSwapEvent(receipt, pair);
|
|
147
|
+
if (swap) {
|
|
148
|
+
// For sell tax we measure fee on tokenIn (the token being sold)
|
|
149
|
+
const tokenInForTax = toChecksum(tokenIn);
|
|
150
|
+
const transfersIn = parseTokenTransfersFor(receipt, tokenInForTax);
|
|
151
|
+
tokenInSellTax = computeSellTaxBpsFromTx(transfersIn, pair.toLowerCase(), tokenInForTax, sellTxEoa);
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
address: toChecksum(tokenIn),
|
|
155
|
+
sellTaxBps: tokenInSellTax,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.log(`Error determining transfer tax for tokenIn ${tokenIn} on network ${network}:`, error);
|
|
160
|
+
return {
|
|
161
|
+
address: toChecksum(tokenIn),
|
|
162
|
+
sellTaxBps: 0,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=erc20-tokenIn-taxes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc20-tokenIn-taxes.js","sourceRoot":"","sources":["../../../src/lib/transfer-taxes/erc20-tokenIn-taxes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pump-fun-launch.service.d.ts","sourceRoot":"","sources":["../../../src/token-launches/pump-fun/pump-fun-launch.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAET,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,SAAS,YAAgE;IAEzF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,UAAU,EAAE,UAAU;IAK5B,uBAAuB,CAC3B,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"pump-fun-launch.service.d.ts","sourceRoot":"","sources":["../../../src/token-launches/pump-fun/pump-fun-launch.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAET,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,SAAS,YAAgE;IAEzF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,UAAU,EAAE,UAAU;IAK5B,uBAAuB,CAC3B,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAwBpB,wBAAwB;YAcxB,wBAAwB;IAiCtC,OAAO,CAAC,qBAAqB;CAsB9B"}
|
|
@@ -17,19 +17,21 @@ class PumpFunLaunchService {
|
|
|
17
17
|
const { name, symbol, uri, creator, mint, user, initialBuyAmount, initialBuySolAmount } = params;
|
|
18
18
|
this._validateLaunchParams(params);
|
|
19
19
|
const global = await this._onlineSdk.fetchGlobal();
|
|
20
|
-
const instructions = await this._buildLaunchInstructions(global, name, symbol, uri, creator, mint, user, initialBuyAmount, initialBuySolAmount);
|
|
20
|
+
const instructions = await this._buildLaunchInstructions(global, name, symbol, uri, creator, mint, user, initialBuyAmount, initialBuySolAmount, params.mayhemMode || false);
|
|
21
21
|
return [await (0, transaction_builder_util_1.buildTransaction)(instructions, user, blockHash)];
|
|
22
22
|
}
|
|
23
|
-
async _buildCreateInstructions(name, symbol, uri, creator, mint, user) {
|
|
24
|
-
return [
|
|
23
|
+
async _buildCreateInstructions(name, symbol, uri, creator, mint, user, mayhemMode = false) {
|
|
24
|
+
return [
|
|
25
|
+
await this._sdk.createV2Instruction({ mint, name, symbol, uri, creator, user, mayhemMode }),
|
|
26
|
+
];
|
|
25
27
|
}
|
|
26
|
-
async _buildLaunchInstructions(global, name, symbol, uri, creator, mint, user, initialBuyAmount, initialBuySolAmount) {
|
|
28
|
+
async _buildLaunchInstructions(global, name, symbol, uri, creator, mint, user, initialBuyAmount, initialBuySolAmount, mayhemMode = false) {
|
|
27
29
|
if (!initialBuyAmount || !initialBuySolAmount) {
|
|
28
|
-
return this._buildCreateInstructions(name, symbol, uri, creator, mint, user);
|
|
30
|
+
return this._buildCreateInstructions(name, symbol, uri, creator, mint, user, mayhemMode);
|
|
29
31
|
}
|
|
30
32
|
const amount = new bn_js_1.default(initialBuyAmount);
|
|
31
33
|
const solAmount = new bn_js_1.default(initialBuySolAmount);
|
|
32
|
-
return this._sdk.
|
|
34
|
+
return this._sdk.createV2AndBuyInstructions({
|
|
33
35
|
global,
|
|
34
36
|
mint,
|
|
35
37
|
name,
|
|
@@ -39,6 +41,7 @@ class PumpFunLaunchService {
|
|
|
39
41
|
user,
|
|
40
42
|
amount,
|
|
41
43
|
solAmount,
|
|
44
|
+
mayhemMode,
|
|
42
45
|
});
|
|
43
46
|
}
|
|
44
47
|
_validateLaunchParams(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pump-fun-launch.service.js","sourceRoot":"","sources":["../../../src/token-launches/pump-fun/pump-fun-launch.service.ts"],"names":[],"mappings":";;;;;;AAAA,6CAKyB;AACzB,iDAA8E;AAC9E,kDAAuB;AAEvB,mFAAwE;AAExE,MAAa,oBAAoB;IAM/B,YAAY,UAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,mBAAQ,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAa,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,MAA0B,EAC1B,SAAiB;QAEjB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GACrF,MAAM,CAAC;QAET,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAEnD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACtD,MAAM,EACN,IAAI,EACJ,MAAM,EACN,GAAG,EACH,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,gBAAgB,EAChB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"pump-fun-launch.service.js","sourceRoot":"","sources":["../../../src/token-launches/pump-fun/pump-fun-launch.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pump-fun-launch.types.d.ts","sourceRoot":"","sources":["../../../src/token-launches/pump-fun/pump-fun-launch.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pump-fun-launch.types.d.ts","sourceRoot":"","sources":["../../../src/token-launches/pump-fun/pump-fun-launch.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genius-intents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "A unified SDK for interacting with intents-based protocols across multiple blockchains including Solana, Ethereum, and Sui",
|
|
5
5
|
"license": "GNU",
|
|
6
6
|
"author": "Samuel Videau <samuel@videau.io>, AltLoot <@altloot>, Satyam Kumar <skdbsp123@gmail.com>",
|
|
@@ -225,8 +225,8 @@
|
|
|
225
225
|
"@meteora-ag/dynamic-bonding-curve-sdk": "^1.4.4",
|
|
226
226
|
"@mysten/sui": "^1.37.6",
|
|
227
227
|
"@orca-so/whirlpools-sdk": "^0.16.0",
|
|
228
|
-
"@pump-fun/pump-sdk": "^1.
|
|
229
|
-
"@pump-fun/pump-swap-sdk": "^1.
|
|
228
|
+
"@pump-fun/pump-sdk": "^1.20.0",
|
|
229
|
+
"@pump-fun/pump-swap-sdk": "^1.10.0",
|
|
230
230
|
"@raydium-io/raydium-sdk-v2": "^0.2.30-alpha",
|
|
231
231
|
"@solana/spl-token": "^0.4.13",
|
|
232
232
|
"@solana/web3.js": "^1.98.0",
|