@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.
- package/dist/src/classes/Transactions.d.ts +18 -0
- package/dist/src/classes/Transactions.d.ts.map +1 -1
- package/dist/src/classes/Transactions.js +268 -1
- package/dist/src/classes/TxGenerator.d.ts +18 -0
- package/dist/src/classes/TxGenerator.d.ts.map +1 -1
- package/dist/src/classes/TxGenerator.js +78 -0
- package/package.json +1 -1
|
@@ -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":"AACA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAgBxC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,eAAe,EACf,+BAA+B,EAC/B,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,QAAQ,EAGR,WAAW,EACX,6BAA6B,EAC7B,2BAA2B,EAC3B,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AA+BlB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
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
|
*
|