@hawksightco/hawk-sdk 1.1.66 → 1.1.68
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/src/classes/JupiterSwap.d.ts +4 -2
- package/dist/src/classes/JupiterSwap.d.ts.map +1 -1
- package/dist/src/classes/JupiterSwap.js +2 -1
- package/dist/src/ixGenerator/IyfMainIxGenerator.d.ts +3 -2
- package/dist/src/ixGenerator/IyfMainIxGenerator.d.ts.map +1 -1
- package/dist/src/ixGenerator/IyfMainIxGenerator.js +34 -18
- package/package.json +1 -1
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import * as web3 from "@solana/web3.js";
|
|
2
2
|
import { SimpleIxGenerator } from "./SimpleIxGenerator";
|
|
3
|
+
import BN from "bn.js";
|
|
3
4
|
import { JupiterRouteIxReturn } from '../ixGenerator/IyfMainIxGenerator';
|
|
4
5
|
type JupiterIxToHawksight = {
|
|
5
6
|
connection: web3.Connection;
|
|
6
7
|
swapInstruction: web3.TransactionInstruction;
|
|
7
8
|
slippageBpsOverride?: number;
|
|
8
|
-
slippageOutPct
|
|
9
|
+
slippageOutPct?: number;
|
|
9
10
|
platformFeeBpsOverride?: number;
|
|
11
|
+
quotedOutAmount_override?: BN;
|
|
10
12
|
};
|
|
11
13
|
export declare class JupiterSwap {
|
|
12
14
|
private ix;
|
|
13
15
|
constructor(ix: SimpleIxGenerator);
|
|
14
|
-
jupiterIxToHawksight({ connection, swapInstruction, slippageOutPct, slippageBpsOverride, platformFeeBpsOverride }: JupiterIxToHawksight): Promise<JupiterRouteIxReturn>;
|
|
16
|
+
jupiterIxToHawksight({ connection, swapInstruction, quotedOutAmount_override, slippageOutPct, slippageBpsOverride, platformFeeBpsOverride }: JupiterIxToHawksight): Promise<JupiterRouteIxReturn>;
|
|
15
17
|
}
|
|
16
18
|
export {};
|
|
17
19
|
//# sourceMappingURL=JupiterSwap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JupiterSwap.d.ts","sourceRoot":"","sources":["../../../src/classes/JupiterSwap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"JupiterSwap.d.ts","sourceRoot":"","sources":["../../../src/classes/JupiterSwap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;IAC5B,eAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,EAAE,CAAC;CAE/B,CAAC;AAEF,qBAAa,WAAW;IAGpB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,iBAAiB;IAGzB,oBAAoB,CAAC,EAAC,UAAU,EAAE,eAAe,EAAE,wBAAwB,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,EAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAkBtM"}
|
|
@@ -15,7 +15,7 @@ class JupiterSwap {
|
|
|
15
15
|
this.ix = ix;
|
|
16
16
|
}
|
|
17
17
|
jupiterIxToHawksight(_a) {
|
|
18
|
-
return __awaiter(this, arguments, void 0, function* ({ connection, swapInstruction, slippageOutPct, slippageBpsOverride, platformFeeBpsOverride }) {
|
|
18
|
+
return __awaiter(this, arguments, void 0, function* ({ connection, swapInstruction, quotedOutAmount_override, slippageOutPct, slippageBpsOverride, platformFeeBpsOverride }) {
|
|
19
19
|
return yield this.ix.iyfMain.jupiterRouteIx({
|
|
20
20
|
connection,
|
|
21
21
|
userPda: swapInstruction.keys[1].pubkey,
|
|
@@ -26,6 +26,7 @@ class JupiterSwap {
|
|
|
26
26
|
eventAuthority: swapInstruction.keys[7].pubkey,
|
|
27
27
|
remainingAccounts: swapInstruction.keys.slice(9),
|
|
28
28
|
data: swapInstruction.data,
|
|
29
|
+
quotedOutAmount_override,
|
|
29
30
|
slippageOutPct,
|
|
30
31
|
slippageBps: slippageBpsOverride,
|
|
31
32
|
platformFeeBps: platformFeeBpsOverride,
|
|
@@ -17,7 +17,8 @@ type JupiterRouteIx = {
|
|
|
17
17
|
eventAuthority: web3.PublicKey;
|
|
18
18
|
remainingAccounts: web3.AccountMeta[];
|
|
19
19
|
data: Buffer;
|
|
20
|
-
slippageOutPct
|
|
20
|
+
slippageOutPct?: number;
|
|
21
|
+
quotedOutAmount_override?: BN;
|
|
21
22
|
slippageBps?: number;
|
|
22
23
|
platformFeeBps?: number;
|
|
23
24
|
};
|
|
@@ -88,7 +89,7 @@ export declare class IyfMainIxGenerator {
|
|
|
88
89
|
* @param params
|
|
89
90
|
*/
|
|
90
91
|
iyfExtensionExecute(connection: web3.Connection, { userWallet, iyfExtensionIx, }: IyfExtensionExecute): Promise<web3.TransactionInstruction>;
|
|
91
|
-
jupiterRouteIx({ connection, userWallet, userPda, sourceTokenAccount, destinationTokenAccount, destinationMint, platformFeeAccount, eventAuthority, remainingAccounts, data, slippageOutPct, slippageBps, platformFeeBps, }: JupiterRouteIx): Promise<JupiterRouteIxReturn>;
|
|
92
|
+
jupiterRouteIx({ connection, userWallet, userPda, sourceTokenAccount, destinationTokenAccount, destinationMint, platformFeeAccount, eventAuthority, remainingAccounts, data, slippageOutPct, quotedOutAmount_override, slippageBps, platformFeeBps, }: JupiterRouteIx): Promise<JupiterRouteIxReturn>;
|
|
92
93
|
/**
|
|
93
94
|
* Deposit multiple user pda token to passthrough token accounts
|
|
94
95
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IyfMainIxGenerator.d.ts","sourceRoot":"","sources":["../../../src/ixGenerator/IyfMainIxGenerator.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAA6C,sBAAsB,EAAc,uBAAuB,EAA+C,MAAM,cAAc,CAAC;AAKnL,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;IAC3B,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC;CAC7C,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;IACzB,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC;IACnC,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC;IACxC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;IAChC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC;IACnC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;IAC/B,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"IyfMainIxGenerator.d.ts","sourceRoot":"","sources":["../../../src/ixGenerator/IyfMainIxGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,7 +133,7 @@ class IyfMainIxGenerator {
|
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
135
|
jupiterRouteIx(_a) {
|
|
136
|
-
return __awaiter(this, arguments, void 0, function* ({ connection, userWallet, userPda, sourceTokenAccount, destinationTokenAccount, destinationMint, platformFeeAccount, eventAuthority, remainingAccounts, data, slippageOutPct, slippageBps, platformFeeBps, }) {
|
|
136
|
+
return __awaiter(this, arguments, void 0, function* ({ connection, userWallet, userPda, sourceTokenAccount, destinationTokenAccount, destinationMint, platformFeeAccount, eventAuthority, remainingAccounts, data, slippageOutPct, quotedOutAmount_override, slippageBps, platformFeeBps, }) {
|
|
137
137
|
var _b;
|
|
138
138
|
// Initialize anchor
|
|
139
139
|
anchor_1.Anchor.initialize(connection);
|
|
@@ -210,6 +210,16 @@ class IyfMainIxGenerator {
|
|
|
210
210
|
.remainingAccounts(remainingAccounts)
|
|
211
211
|
.instruction();
|
|
212
212
|
});
|
|
213
|
+
// If quotedOutAmountOverride is set, then skip the simulation
|
|
214
|
+
if (quotedOutAmount_override) {
|
|
215
|
+
const ix = yield jupiterRouteIx(quotedOutAmount_override);
|
|
216
|
+
return {
|
|
217
|
+
swapIx: ix,
|
|
218
|
+
createAtaIx,
|
|
219
|
+
closeAtaIx,
|
|
220
|
+
ataExists,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
213
223
|
// Create simulation ix (to figure out result value of destination token)
|
|
214
224
|
const ixSimulate = yield jupiterRouteIx(quotedOutAmount_sim);
|
|
215
225
|
const instructions = [createAtaIx, ixSimulate]
|
|
@@ -219,25 +229,31 @@ class IyfMainIxGenerator {
|
|
|
219
229
|
const token = (0, functions_1.parseTokenAccountData)(info.data);
|
|
220
230
|
previousAmount = token.amount;
|
|
221
231
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
connection,
|
|
225
|
-
instructions,
|
|
226
|
-
payerKey: addresses_1.HS_AUTHORITY,
|
|
227
|
-
alts: [],
|
|
228
|
-
signers: [],
|
|
229
|
-
addresses: [destinationTokenAccount.toString()],
|
|
230
|
-
});
|
|
231
|
-
let token2;
|
|
232
|
-
try {
|
|
233
|
-
token2 = (0, functions_1.parseTokenAccountData)(Buffer.from((_b = simulation.accounts[0]) === null || _b === void 0 ? void 0 : _b.data[0], 'base64'));
|
|
232
|
+
if (slippageOutPct === undefined) {
|
|
233
|
+
throw new Error(`slippageOutPct parameter is not set`);
|
|
234
234
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
// Simulate the transaction to get expected out token
|
|
236
|
+
let tokenAmount = previousAmount;
|
|
237
|
+
if (slippageOutPct < 10000) {
|
|
238
|
+
const simulation = yield (0, functions_1.simulateTransaction)({
|
|
239
|
+
connection,
|
|
240
|
+
instructions,
|
|
241
|
+
payerKey: addresses_1.HS_AUTHORITY,
|
|
242
|
+
alts: [],
|
|
243
|
+
signers: [],
|
|
244
|
+
addresses: [destinationTokenAccount.toString()],
|
|
245
|
+
});
|
|
246
|
+
try {
|
|
247
|
+
const token = (0, functions_1.parseTokenAccountData)(Buffer.from((_b = simulation.accounts[0]) === null || _b === void 0 ? void 0 : _b.data[0], 'base64'));
|
|
248
|
+
tokenAmount = token.amount;
|
|
249
|
+
}
|
|
250
|
+
catch (_c) {
|
|
251
|
+
console.log(simulation.logs);
|
|
252
|
+
throw Error('Transaction simulation failed. See logs above.');
|
|
253
|
+
}
|
|
238
254
|
}
|
|
239
|
-
// console.log(`
|
|
240
|
-
const delta =
|
|
255
|
+
// console.log(`tokenAmount: ${tokenAmount}`);
|
|
256
|
+
const delta = tokenAmount.sub(previousAmount);
|
|
241
257
|
const quotedOutAmount = delta.mul(new bn_js_1.default(10000)
|
|
242
258
|
.sub(new bn_js_1.default(slippageOutPct))).div(new bn_js_1.default(10000));
|
|
243
259
|
// console.log(`Out amount: ${delta.toNumber()}`);
|