@hawksightco/hawk-sdk 1.1.56 → 1.1.58

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.
@@ -177,6 +177,15 @@ export declare class Transactions {
177
177
  * @returns A ResponseWithStatus containing either TransactionMetadataResponse.
178
178
  */
179
179
  orcaDeposit({ connection, params }: TxgenParams<OrcaDeposit>): Promise<TransactionMetadataResponse>;
180
+ /**
181
+ * Creates orca instruction that deposits to a position
182
+ *
183
+ * @param connection The Solana web3 connection object for blockchain interactions.
184
+ * @param payer The public key of the payer for transaction fees.
185
+ * @param params Parameters required
186
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse.
187
+ */
188
+ orcaDepositPda({ connection, params }: TxgenParams<OrcaDeposit>): Promise<TransactionMetadataResponse>;
180
189
  /**
181
190
  * Creates orca instruction that withdraws from a position
182
191
  *
@@ -186,6 +195,15 @@ export declare class Transactions {
186
195
  * @returns A ResponseWithStatus containing either TransactionMetadataResponse.
187
196
  */
188
197
  orcaWithdraw({ connection, params }: TxgenParams<OrcaWithdraw>): Promise<TransactionMetadataResponse>;
198
+ /**
199
+ * Creates orca instruction that withdraws from a position
200
+ *
201
+ * @param connection The Solana web3 connection object for blockchain interactions.
202
+ * @param payer The public key of the payer for transaction fees.
203
+ * @param params Parameters required
204
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse.
205
+ */
206
+ orcaWithdrawPda({ connection, params }: TxgenParams<OrcaWithdraw>): Promise<TransactionMetadataResponse>;
189
207
  /**
190
208
  * Creates orca instruction that claims fees and rewards
191
209
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Transactions.d.ts","sourceRoot":"","sources":["../../../src/classes/Transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transactions.d.ts","sourceRoot":"","sources":["../../../src/classes/Transactions.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ const Logging_1 = require("./Logging");
52
52
  const TransactionBatchExecute2_1 = require("./TransactionBatchExecute2");
53
53
  const CreateTxMetadata_1 = require("./CreateTxMetadata");
54
54
  const SimpleIxGenerator_1 = require("./SimpleIxGenerator");
55
+ const spl_token_1 = require("@solana/spl-token");
55
56
  class Transactions {
56
57
  /**
57
58
  * Prohibit creating instance other than getInstance
@@ -1157,6 +1158,7 @@ class Transactions {
1157
1158
  },
1158
1159
  ]
1159
1160
  });
1161
+ // @ts-ignore
1160
1162
  const extensionIx = yield anchor_1.Anchor.instance().iyfExtension.methods
1161
1163
  .orcaDeposit()
1162
1164
  .accounts({
@@ -1225,6 +1227,157 @@ class Transactions {
1225
1227
  });
1226
1228
  });
1227
1229
  }
1230
+ /**
1231
+ * Creates orca instruction that deposits to a position
1232
+ *
1233
+ * @param connection The Solana web3 connection object for blockchain interactions.
1234
+ * @param payer The public key of the payer for transaction fees.
1235
+ * @param params Parameters required
1236
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse.
1237
+ */
1238
+ orcaDepositPda(_a) {
1239
+ return __awaiter(this, arguments, void 0, function* ({ connection, params }) {
1240
+ const farm = addresses_1.USDC_FARM;
1241
+ const userPda = (0, functions_1.generateUserPda)(params.userWallet, farm);
1242
+ let position;
1243
+ let positionMint;
1244
+ let positionData;
1245
+ if (params.mintOrPosition.position !== undefined) {
1246
+ position = params.mintOrPosition.position;
1247
+ positionData = yield anchor_1.Anchor.instance().orcaProgram.account.position.fetch(position);
1248
+ positionMint = positionData.positionMint;
1249
+ }
1250
+ else if (params.mintOrPosition.positionMint !== undefined) {
1251
+ positionMint = params.mintOrPosition.positionMint;
1252
+ position = (0, functions_1.generateOrcaPositionPDA)(positionMint);
1253
+ }
1254
+ else {
1255
+ throw new Error('Position mint or orca position needs to be provided.');
1256
+ }
1257
+ const positionTokenAccount = (0, functions_1.generateAta)(userPda, positionMint);
1258
+ if (params.newPosition) {
1259
+ positionData = {
1260
+ positionMint,
1261
+ whirlpool: params.newPosition.whirlpool,
1262
+ tickLowerIndex: params.newPosition.tickLowerIndex,
1263
+ tickUpperIndex: params.newPosition.tickUpperIndex,
1264
+ };
1265
+ }
1266
+ else {
1267
+ positionData = yield anchor_1.Anchor.instance().orcaProgram.account.position.fetch(position);
1268
+ }
1269
+ if (positionData === null) {
1270
+ throw new Error(`Position: ${position} does not exist or already closed. Position mint: ${positionMint}`);
1271
+ }
1272
+ const whirlpool = positionData.whirlpool;
1273
+ const whirlpoolData = yield anchor_1.Anchor.instance().orcaProgram.account.whirlpool.fetch(whirlpool);
1274
+ const mintA = whirlpoolData.tokenMintA;
1275
+ const mintB = whirlpoolData.tokenMintB;
1276
+ const tokenSeeds = [
1277
+ { owner: params.userWallet, mint: mintA },
1278
+ { owner: params.userWallet, mint: mintB },
1279
+ ];
1280
+ const resultMap = yield (0, functions_1.tokenAccountExists)(connection, tokenSeeds);
1281
+ resultMap.map((result, index) => {
1282
+ const tokenKey = result.tokenKey;
1283
+ const token = tokenSeeds[index];
1284
+ if (!result.exists && `${token.mint}` !== 'So11111111111111111111111111111111111111112') {
1285
+ throw new Error(`Token: ${tokenKey} owned by ${token.owner} does not exist. Mint: ${token.mint}`);
1286
+ }
1287
+ });
1288
+ const tokenOwnerAccountA = (0, functions_1.generateAta)(userPda, mintA);
1289
+ const tokenOwnerAccountB = (0, functions_1.generateAta)(userPda, mintB);
1290
+ const { publicKey: tickArrayLower } = (0, orca_1.getTickArrayFromTickIndex)(positionData.tickLowerIndex, whirlpoolData.tickSpacing, whirlpool, addresses_1.ORCA_WHIRLPOOL_PROGRAM);
1291
+ const { publicKey: tickArrayUpper } = (0, orca_1.getTickArrayFromTickIndex)(positionData.tickUpperIndex, whirlpoolData.tickSpacing, whirlpool, addresses_1.ORCA_WHIRLPOOL_PROGRAM);
1292
+ const ownerFeeA = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintA);
1293
+ const ownerFeeB = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintB);
1294
+ // Step 1: Init wSOL token account for user wallet (if X or Y token is wSOL)
1295
+ const wrapSolIx = (0, functions_1.wrapSolIfMintIsWsol)(params.userWallet, params.userWallet, [
1296
+ { mint: mintA, amount: params.totalXAmount },
1297
+ { mint: mintB, amount: params.totalYAmount },
1298
+ ]);
1299
+ // const depositIx = await depositMultipleToken({
1300
+ // payer: params.userWallet,
1301
+ // deposit: [
1302
+ // {
1303
+ // mint: mintA,
1304
+ // amount: params.totalXAmount,
1305
+ // },
1306
+ // {
1307
+ // mint: mintB,
1308
+ // amount: params.totalYAmount,
1309
+ // },
1310
+ // ]
1311
+ // });
1312
+ // @ts-ignore
1313
+ const extensionIx = yield anchor_1.Anchor.instance().iyfExtension.methods
1314
+ .orcaDeposit()
1315
+ .accounts({
1316
+ farm,
1317
+ userPda,
1318
+ authority: params.userWallet,
1319
+ iyfProgram: addresses_1.IYF_MAIN,
1320
+ positionMint,
1321
+ whirlpool,
1322
+ position,
1323
+ positionTokenAccount,
1324
+ tokenOwnerAccountA,
1325
+ tokenOwnerAccountB,
1326
+ tokenVaultA: whirlpoolData.tokenVaultA,
1327
+ tokenVaultB: whirlpoolData.tokenVaultB,
1328
+ tickArrayLower,
1329
+ tickArrayUpper,
1330
+ ownerFeeA,
1331
+ ownerFeeB,
1332
+ orcaWhirlpoolProgram: addresses_1.ORCA_WHIRLPOOL_PROGRAM,
1333
+ tokenProgram: addresses_1.TOKEN_PROGRAM_ID,
1334
+ associatedTokenProgram: addresses_1.ASSOCIATED_TOKEN_PROGRAM,
1335
+ })
1336
+ .instruction();
1337
+ const orcaIx = yield anchor_1.Anchor.instance().iyfMain.methods
1338
+ .iyfExtensionExecute(extensionIx.data)
1339
+ .accounts({
1340
+ farm,
1341
+ userPda,
1342
+ authority: params.userWallet,
1343
+ iyfProgram: addresses_1.IYF_MAIN,
1344
+ iyfExtensionProgram: addresses_1.IYF_EXTENSION,
1345
+ })
1346
+ .remainingAccounts([
1347
+ extensionIx.keys[4],
1348
+ extensionIx.keys[5],
1349
+ extensionIx.keys[6],
1350
+ extensionIx.keys[7],
1351
+ extensionIx.keys[8],
1352
+ extensionIx.keys[9],
1353
+ extensionIx.keys[10],
1354
+ extensionIx.keys[11],
1355
+ extensionIx.keys[12],
1356
+ extensionIx.keys[13],
1357
+ extensionIx.keys[14],
1358
+ extensionIx.keys[15],
1359
+ extensionIx.keys[16],
1360
+ extensionIx.keys[17],
1361
+ extensionIx.keys[18],
1362
+ ])
1363
+ .instruction();
1364
+ // const clearRemainingTokensIxs = await withdrawMultipleToken({
1365
+ // payer: params.userWallet,
1366
+ // withdraw: [
1367
+ // { mint: mintA },
1368
+ // { mint: mintB },
1369
+ // ],
1370
+ // });
1371
+ orcaIx.keys[2].isSigner = true; // authority must be signer.
1372
+ const mainInstructions = [...wrapSolIx, orcaIx];
1373
+ return (0, functions_1.createTransactionMeta)({
1374
+ payer: params.userWallet,
1375
+ description: `Deposit to Orca Position via PDA: ${position}`,
1376
+ addressLookupTableAddresses: addresses_1.GLOBAL_ALT,
1377
+ mainInstructions,
1378
+ });
1379
+ });
1380
+ }
1228
1381
  /**
1229
1382
  * Creates orca instruction that withdraws from a position
1230
1383
  *
@@ -1255,6 +1408,7 @@ class Transactions {
1255
1408
  const { publicKey: tickArrayUpper } = (0, orca_1.getTickArrayFromTickIndex)(positionData.tickUpperIndex, whirlpoolData.tickSpacing, whirlpool, addresses_1.ORCA_WHIRLPOOL_PROGRAM);
1256
1409
  const ownerFeeA = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintA);
1257
1410
  const ownerFeeB = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintB);
1411
+ // @ts-ignore
1258
1412
  const extensionIx = yield anchor_1.Anchor.instance().iyfExtension.methods
1259
1413
  .orcaWithdraw(liquidityAmount)
1260
1414
  .accounts({
@@ -1323,6 +1477,105 @@ class Transactions {
1323
1477
  });
1324
1478
  });
1325
1479
  }
1480
+ /**
1481
+ * Creates orca instruction that withdraws from a position
1482
+ *
1483
+ * @param connection The Solana web3 connection object for blockchain interactions.
1484
+ * @param payer The public key of the payer for transaction fees.
1485
+ * @param params Parameters required
1486
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse.
1487
+ */
1488
+ orcaWithdrawPda(_a) {
1489
+ return __awaiter(this, arguments, void 0, function* ({ connection, params }) {
1490
+ const farm = addresses_1.USDC_FARM;
1491
+ const userPda = (0, functions_1.generateUserPda)(params.userWallet, farm);
1492
+ const positionData = yield anchor_1.Anchor.instance().orcaProgram.account.position.fetch(params.position);
1493
+ if (positionData === null) {
1494
+ throw new Error(`Position: ${params.position} does not exist or already closed.`);
1495
+ }
1496
+ const liquidityAmount = positionData.liquidity
1497
+ .mul(new bn_js_1.default(Math.round(params.percentage * 100)))
1498
+ .div(new bn_js_1.default(10000));
1499
+ const positionTokenAccount = (0, functions_1.generateAta)(userPda, positionData.positionMint);
1500
+ const whirlpool = positionData.whirlpool;
1501
+ const whirlpoolData = yield anchor_1.Anchor.instance().orcaProgram.account.whirlpool.fetch(whirlpool);
1502
+ const mintA = whirlpoolData.tokenMintA;
1503
+ const mintB = whirlpoolData.tokenMintB;
1504
+ const tokenOwnerAccountA = (0, functions_1.generateAta)(userPda, mintA);
1505
+ const tokenOwnerAccountB = (0, functions_1.generateAta)(userPda, mintB);
1506
+ const { publicKey: tickArrayLower } = (0, orca_1.getTickArrayFromTickIndex)(positionData.tickLowerIndex, whirlpoolData.tickSpacing, whirlpool, addresses_1.ORCA_WHIRLPOOL_PROGRAM);
1507
+ const { publicKey: tickArrayUpper } = (0, orca_1.getTickArrayFromTickIndex)(positionData.tickUpperIndex, whirlpoolData.tickSpacing, whirlpool, addresses_1.ORCA_WHIRLPOOL_PROGRAM);
1508
+ const ownerFeeA = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintA);
1509
+ const ownerFeeB = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintB);
1510
+ // @ts-ignore
1511
+ const extensionIx = yield anchor_1.Anchor.instance().iyfExtension.methods
1512
+ .orcaWithdraw(liquidityAmount)
1513
+ .accounts({
1514
+ farm,
1515
+ userPda,
1516
+ authority: params.userWallet,
1517
+ iyfProgram: addresses_1.IYF_MAIN,
1518
+ positionMint: positionData.positionMint,
1519
+ whirlpool,
1520
+ position: params.position,
1521
+ positionTokenAccount,
1522
+ tokenOwnerAccountA,
1523
+ tokenOwnerAccountB,
1524
+ tokenVaultA: whirlpoolData.tokenVaultA,
1525
+ tokenVaultB: whirlpoolData.tokenVaultB,
1526
+ tickArrayLower,
1527
+ tickArrayUpper,
1528
+ ownerFeeA,
1529
+ ownerFeeB,
1530
+ orcaWhirlpoolProgram: addresses_1.ORCA_WHIRLPOOL_PROGRAM,
1531
+ tokenProgram: addresses_1.TOKEN_PROGRAM_ID,
1532
+ associatedTokenProgram: addresses_1.ASSOCIATED_TOKEN_PROGRAM,
1533
+ })
1534
+ .instruction();
1535
+ const orcaIx = yield anchor_1.Anchor.instance().iyfMain.methods
1536
+ .iyfExtensionExecute(extensionIx.data)
1537
+ .accounts({
1538
+ farm,
1539
+ userPda,
1540
+ authority: params.userWallet,
1541
+ iyfProgram: addresses_1.IYF_MAIN,
1542
+ iyfExtensionProgram: addresses_1.IYF_EXTENSION,
1543
+ })
1544
+ .remainingAccounts([
1545
+ extensionIx.keys[4],
1546
+ extensionIx.keys[5],
1547
+ extensionIx.keys[6],
1548
+ extensionIx.keys[7],
1549
+ extensionIx.keys[8],
1550
+ extensionIx.keys[9],
1551
+ extensionIx.keys[10],
1552
+ extensionIx.keys[11],
1553
+ extensionIx.keys[12],
1554
+ extensionIx.keys[13],
1555
+ extensionIx.keys[14],
1556
+ extensionIx.keys[15],
1557
+ extensionIx.keys[16],
1558
+ extensionIx.keys[17],
1559
+ extensionIx.keys[18],
1560
+ ])
1561
+ .instruction();
1562
+ // const withdrawFromPda = await withdrawMultipleToken({
1563
+ // payer: params.userWallet,
1564
+ // withdraw: [
1565
+ // { mint: mintA },
1566
+ // { mint: mintB },
1567
+ // ],
1568
+ // });
1569
+ orcaIx.keys[2].isSigner = true; // authority must be signer.
1570
+ const mainInstructions = [orcaIx];
1571
+ return (0, functions_1.createTransactionMeta)({
1572
+ payer: params.userWallet,
1573
+ description: `Withdraw deposits from Orca Position to Pda: ${params.position}`,
1574
+ addressLookupTableAddresses: addresses_1.GLOBAL_ALT,
1575
+ mainInstructions,
1576
+ });
1577
+ });
1578
+ }
1326
1579
  /**
1327
1580
  * Creates orca instruction that claims fees and rewards
1328
1581
  *
@@ -1350,18 +1603,32 @@ class Transactions {
1350
1603
  const { publicKey: tickArrayUpper } = (0, orca_1.getTickArrayFromTickIndex)(positionData.tickUpperIndex, whirlpoolData.tickSpacing, whirlpool, addresses_1.ORCA_WHIRLPOOL_PROGRAM);
1351
1604
  const ownerFeeA = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintA);
1352
1605
  const ownerFeeB = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, mintB);
1606
+ const rewardMints = [];
1353
1607
  const remainingAccounts = [];
1354
1608
  for (const rewardInfo of whirlpoolData.rewardInfos) {
1355
1609
  if (rewardInfo.mint.toString() !== web3.SystemProgram.programId.toString()) {
1356
1610
  const rewardOwnerAccount = (0, functions_1.generateAta)(userPda, rewardInfo.mint);
1357
1611
  const rewardVault = rewardInfo.vault;
1358
1612
  const rewardFee = (0, functions_1.generateAta)(addresses_1.SITE_FEE_OWNER, rewardInfo.mint);
1613
+ rewardMints.push(rewardInfo.mint);
1359
1614
  remainingAccounts.push({ pubkey: rewardOwnerAccount, isSigner: false, isWritable: true });
1360
1615
  remainingAccounts.push({ pubkey: rewardVault, isSigner: false, isWritable: true });
1361
1616
  remainingAccounts.push({ pubkey: rewardFee, isSigner: false, isWritable: true });
1362
1617
  }
1363
1618
  }
1619
+ const result = yield (0, functions_1.tokenAccountExists)(connection, rewardMints.map(mint => {
1620
+ return { owner: userPda, mint, isSta: false };
1621
+ }));
1622
+ const initRewardATA = result.map(result => {
1623
+ if (!result.exists) {
1624
+ return (0, spl_token_1.createAssociatedTokenAccountInstruction)(params.userWallet, result.tokenKey, userPda, result.mint, addresses_1.TOKEN_PROGRAM_ID, addresses_1.ASSOCIATED_TOKEN_PROGRAM);
1625
+ }
1626
+ else {
1627
+ return null;
1628
+ }
1629
+ }).filter(result => result !== null);
1364
1630
  whirlpoolData.rewardInfos[0].mint;
1631
+ // @ts-ignore
1365
1632
  const extensionIx = yield anchor_1.Anchor.instance().iyfExtension.methods
1366
1633
  .orcaClaimRewards()
1367
1634
  .accounts({
@@ -1408,7 +1675,7 @@ class Transactions {
1408
1675
  ],
1409
1676
  });
1410
1677
  orcaIx.keys[2].isSigner = true; // authority must be signer.
1411
- const mainInstructions = [orcaIx, withdrawFromPda];
1678
+ const mainInstructions = [...initRewardATA, orcaIx, withdrawFromPda];
1412
1679
  return (0, functions_1.createTransactionMeta)({
1413
1680
  payer: params.userWallet,
1414
1681
  description: `Claim rewards from Orca Position: ${params.position}`,
@@ -165,6 +165,15 @@ export declare class TxGenerator {
165
165
  * @returns A ResponseWithStatus containing either TransactionMetadataResponse or TransactionMetadata.
166
166
  */
167
167
  orcaDeposit(connection: web3.Connection, payer: string, params: OrcaDeposit): Promise<ResponseWithStatus<TransactionMetadata>>;
168
+ /**
169
+ * Creates orca instruction that deposits to a position
170
+ *
171
+ * @param connection The Solana web3 connection object for blockchain interactions.
172
+ * @param payer The public key of the payer for transaction fees.
173
+ * @param params Parameters required
174
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse or TransactionMetadata.
175
+ */
176
+ orcaDepositPda(connection: web3.Connection, payer: string, params: OrcaDeposit): Promise<ResponseWithStatus<TransactionMetadata>>;
168
177
  /**
169
178
  * Creates orca instruction that withdraws from a position
170
179
  *
@@ -174,6 +183,15 @@ export declare class TxGenerator {
174
183
  * @returns A ResponseWithStatus containing either TransactionMetadataResponse or TransactionMetadata.
175
184
  */
176
185
  orcaWithdraw(connection: web3.Connection, payer: string, params: OrcaWithdraw): Promise<ResponseWithStatus<TransactionMetadata>>;
186
+ /**
187
+ * Creates orca instruction that withdraws from a position
188
+ *
189
+ * @param connection The Solana web3 connection object for blockchain interactions.
190
+ * @param payer The public key of the payer for transaction fees.
191
+ * @param params Parameters required
192
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse or TransactionMetadata.
193
+ */
194
+ orcaWithdrawPda(connection: web3.Connection, payer: string, params: OrcaWithdraw): Promise<ResponseWithStatus<TransactionMetadata>>;
177
195
  /**
178
196
  * Creates orca instruction that claims fees and rewards
179
197
  *
@@ -1 +1 @@
1
- {"version":3,"file":"TxGenerator.d.ts","sourceRoot":"","sources":["../../../src/classes/TxGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxGenerator.d.ts","sourceRoot":"","sources":["../../../src/classes/TxGenerator.ts"],"names":[],"mappings":"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"}
@@ -640,6 +640,46 @@ class TxGenerator {
640
640
  }
641
641
  });
642
642
  }
643
+ /**
644
+ * Creates orca instruction that deposits to a position
645
+ *
646
+ * @param connection The Solana web3 connection object for blockchain interactions.
647
+ * @param payer The public key of the payer for transaction fees.
648
+ * @param params Parameters required
649
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse or TransactionMetadata.
650
+ */
651
+ orcaDepositPda(connection, payer, params) {
652
+ return __awaiter(this, void 0, void 0, function* () {
653
+ // Initialize anchor
654
+ anchor_1.Anchor.initialize(connection);
655
+ try {
656
+ const result = yield Transactions_1.txgen.orcaDepositPda({
657
+ connection,
658
+ params: {
659
+ userWallet: params.userWallet,
660
+ mintOrPosition: params.mintOrPosition,
661
+ totalXAmount: params.totalXAmount,
662
+ totalYAmount: params.totalYAmount,
663
+ newPosition: params.newPosition,
664
+ }
665
+ });
666
+ return {
667
+ status: 200,
668
+ data: yield (0, functions_1.createTxMetadata)(this.generalUtility, connection, payer, result),
669
+ };
670
+ }
671
+ catch (e) {
672
+ return {
673
+ status: 400,
674
+ data: {
675
+ code: "custom",
676
+ message: e,
677
+ path: [],
678
+ },
679
+ };
680
+ }
681
+ });
682
+ }
643
683
  /**
644
684
  * Creates orca instruction that withdraws from a position
645
685
  *
@@ -678,6 +718,44 @@ class TxGenerator {
678
718
  }
679
719
  });
680
720
  }
721
+ /**
722
+ * Creates orca instruction that withdraws from a position
723
+ *
724
+ * @param connection The Solana web3 connection object for blockchain interactions.
725
+ * @param payer The public key of the payer for transaction fees.
726
+ * @param params Parameters required
727
+ * @returns A ResponseWithStatus containing either TransactionMetadataResponse or TransactionMetadata.
728
+ */
729
+ orcaWithdrawPda(connection, payer, params) {
730
+ return __awaiter(this, void 0, void 0, function* () {
731
+ // Initialize anchor
732
+ anchor_1.Anchor.initialize(connection);
733
+ try {
734
+ const result = yield Transactions_1.txgen.orcaWithdrawPda({
735
+ connection,
736
+ params: {
737
+ userWallet: params.userWallet,
738
+ position: params.position,
739
+ percentage: params.percentage,
740
+ }
741
+ });
742
+ return {
743
+ status: 200,
744
+ data: yield (0, functions_1.createTxMetadata)(this.generalUtility, connection, payer, result),
745
+ };
746
+ }
747
+ catch (e) {
748
+ return {
749
+ status: 400,
750
+ data: {
751
+ code: "custom",
752
+ message: e,
753
+ path: [],
754
+ },
755
+ };
756
+ }
757
+ });
758
+ }
681
759
  /**
682
760
  * Creates orca instruction that claims fees and rewards
683
761
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hawksightco/hawk-sdk",
3
- "version": "1.1.56",
3
+ "version": "1.1.58",
4
4
  "description": "Hawksight v2 SDK",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": "https://github.com/ghabxph/hawk-api-client.git",