@render-foundation/utils 0.0.158 → 0.0.159

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.
@@ -15,6 +15,110 @@ const logger_1 = require("../logger");
15
15
  const jupClient = (connection, funder) => {
16
16
  const maxRetries = 5;
17
17
  return {
18
+ createTradeInstructionsLite(f, log = logger_1.consoleLogger) {
19
+ var _a;
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const r = {
22
+ swapMode: 'ExactOut',
23
+ inputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
24
+ outputMint: 'rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof',
25
+ amount: `${f.renderAmount}`,
26
+ slippageBps: `${(_a = f.slippage) !== null && _a !== void 0 ? _a : 50}`,
27
+ };
28
+ if (f.maxAccounts) {
29
+ r['maxAccounts'] = `${f.maxAccounts}`;
30
+ }
31
+ const params = new URLSearchParams(r);
32
+ const fetchQuote = (retry = 0) => __awaiter(this, void 0, void 0, function* () {
33
+ if (retry == maxRetries) {
34
+ throw new Error(`hard failed fetching jup quote after ${maxRetries}`);
35
+ }
36
+ const res = yield fetch(`https://lite-api.jup.ag/swap/v1/quote?${params.toString()}`);
37
+ if (res.status != 200) {
38
+ log.warn(`failed fetching jup quote on try ${retry}. code: ${res.status} body: ${yield res.text()}`);
39
+ return yield fetchQuote(retry + 1);
40
+ }
41
+ return yield res.json();
42
+ });
43
+ const quoteResponse = yield fetchQuote();
44
+ log.debug(`renderAmt ${f.renderAmount} quote USDC: ${quoteResponse.inAmount}`);
45
+ const fetchInstructions = (retry = 0) => __awaiter(this, void 0, void 0, function* () {
46
+ if (retry == maxRetries) {
47
+ throw new Error(`hard failed fetching jup instructions after ${maxRetries}`);
48
+ }
49
+ const res = yield fetch('https://lite-api.jup.ag/swap/v1/swap-instructions', {
50
+ method: 'POST',
51
+ headers: {
52
+ 'Content-Type': 'application/json',
53
+ },
54
+ body: JSON.stringify({
55
+ // quoteResponse from /quote api
56
+ quoteResponse,
57
+ userPublicKey: funder.publicKey.toBase58(),
58
+ dynamicComputeUnitLimit: true,
59
+ // custom priority fee - Jup will calculate
60
+ prioritizationFeeLamports: 'auto', // or custom lamports: 1000
61
+ // feeAccount is optional. Use if you want to charge a fee. feeBps must have been passed in /quote API.
62
+ // feeAccount: "fee_account_public_key"
63
+ }),
64
+ });
65
+ if (res.status != 200) {
66
+ log.warn(`failed fetching jup swap instructions on try ${retry}. code: ${res.status} body: ${yield res.text()}`);
67
+ return yield fetchInstructions(retry + 1);
68
+ }
69
+ return yield res.json();
70
+ });
71
+ const instructions = yield fetchInstructions();
72
+ if (instructions.error) {
73
+ throw new Error('Failed to get swap instructions: ' + instructions.error);
74
+ }
75
+ const { tokenLedgerInstruction, // If you are using `useTokenLedger = true`.
76
+ computeBudgetInstructions, // The necessary instructions to setup the compute budget.
77
+ setupInstructions, // Setup missing ATA for the users.
78
+ swapInstruction: swapInstructionPayload, // The actual swap instruction.
79
+ cleanupInstruction, // Unwrap the SOL if `wrapAndUnwrapSol = true`.
80
+ addressLookupTableAddresses, // The lookup table addresses that you can use if you are using versioned transaction.
81
+ } = instructions;
82
+ const deserializeInstruction = (instruction) => {
83
+ return new web3_js_1.TransactionInstruction({
84
+ programId: new web3_js_1.PublicKey(instruction.programId),
85
+ keys: instruction.accounts.map((key) => ({
86
+ pubkey: new web3_js_1.PublicKey(key.pubkey),
87
+ isSigner: key.isSigner,
88
+ isWritable: key.isWritable,
89
+ })),
90
+ data: Buffer.from(instruction.data, 'base64'),
91
+ });
92
+ };
93
+ const getAddressLookupTableAccounts = (keys) => __awaiter(this, void 0, void 0, function* () {
94
+ const addressLookupTableAccountInfos = yield connection.getMultipleAccountsInfo(keys.map((key) => new web3_js_1.PublicKey(key)));
95
+ return addressLookupTableAccountInfos.reduce((acc, accountInfo, index) => {
96
+ const addressLookupTableAddress = keys[index];
97
+ if (accountInfo) {
98
+ const addressLookupTableAccount = new web3_js_1.AddressLookupTableAccount({
99
+ key: new web3_js_1.PublicKey(addressLookupTableAddress),
100
+ state: web3_js_1.AddressLookupTableAccount.deserialize(accountInfo.data),
101
+ });
102
+ acc.push(addressLookupTableAccount);
103
+ }
104
+ return acc;
105
+ }, new Array());
106
+ });
107
+ const addressLookupTableAccounts = [];
108
+ addressLookupTableAccounts.push(...(yield getAddressLookupTableAccounts(addressLookupTableAddresses)));
109
+ return {
110
+ instructions: [
111
+ // uncomment if needed:
112
+ ...setupInstructions.map(deserializeInstruction),
113
+ ...computeBudgetInstructions.map(deserializeInstruction),
114
+ deserializeInstruction(swapInstructionPayload),
115
+ // uncomment if needed: deserializeInstruction(cleanupInstruction),
116
+ ],
117
+ addressLookupTableAccounts,
118
+ quoteAmount: Number(quoteResponse.inAmount),
119
+ };
120
+ });
121
+ },
18
122
  createTradeInstructions(f, log = logger_1.consoleLogger) {
19
123
  var _a;
20
124
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/client/trade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/client/trade.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,107 @@ import { consoleLogger } from '../logger';
3
3
  export const jupClient = (connection, funder) => {
4
4
  const maxRetries = 5;
5
5
  return {
6
+ async createTradeInstructionsLite(f, log = consoleLogger) {
7
+ const r = {
8
+ swapMode: 'ExactOut',
9
+ inputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
10
+ outputMint: 'rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof',
11
+ amount: `${f.renderAmount}`,
12
+ slippageBps: `${f.slippage ?? 50}`,
13
+ };
14
+ if (f.maxAccounts) {
15
+ r['maxAccounts'] = `${f.maxAccounts}`;
16
+ }
17
+ const params = new URLSearchParams(r);
18
+ const fetchQuote = async (retry = 0) => {
19
+ if (retry == maxRetries) {
20
+ throw new Error(`hard failed fetching jup quote after ${maxRetries}`);
21
+ }
22
+ const res = await fetch(`https://lite-api.jup.ag/swap/v1/quote?${params.toString()}`);
23
+ if (res.status != 200) {
24
+ log.warn(`failed fetching jup quote on try ${retry}. code: ${res.status} body: ${await res.text()}`);
25
+ return await fetchQuote(retry + 1);
26
+ }
27
+ return await res.json();
28
+ };
29
+ const quoteResponse = await fetchQuote();
30
+ log.debug(`renderAmt ${f.renderAmount} quote USDC: ${quoteResponse.inAmount}`);
31
+ const fetchInstructions = async (retry = 0) => {
32
+ if (retry == maxRetries) {
33
+ throw new Error(`hard failed fetching jup instructions after ${maxRetries}`);
34
+ }
35
+ const res = await fetch('https://lite-api.jup.ag/swap/v1/swap-instructions', {
36
+ method: 'POST',
37
+ headers: {
38
+ 'Content-Type': 'application/json',
39
+ },
40
+ body: JSON.stringify({
41
+ // quoteResponse from /quote api
42
+ quoteResponse,
43
+ userPublicKey: funder.publicKey.toBase58(),
44
+ dynamicComputeUnitLimit: true,
45
+ // custom priority fee - Jup will calculate
46
+ prioritizationFeeLamports: 'auto', // or custom lamports: 1000
47
+ // feeAccount is optional. Use if you want to charge a fee. feeBps must have been passed in /quote API.
48
+ // feeAccount: "fee_account_public_key"
49
+ }),
50
+ });
51
+ if (res.status != 200) {
52
+ log.warn(`failed fetching jup swap instructions on try ${retry}. code: ${res.status} body: ${await res.text()}`);
53
+ return await fetchInstructions(retry + 1);
54
+ }
55
+ return await res.json();
56
+ };
57
+ const instructions = await fetchInstructions();
58
+ if (instructions.error) {
59
+ throw new Error('Failed to get swap instructions: ' + instructions.error);
60
+ }
61
+ const { tokenLedgerInstruction, // If you are using `useTokenLedger = true`.
62
+ computeBudgetInstructions, // The necessary instructions to setup the compute budget.
63
+ setupInstructions, // Setup missing ATA for the users.
64
+ swapInstruction: swapInstructionPayload, // The actual swap instruction.
65
+ cleanupInstruction, // Unwrap the SOL if `wrapAndUnwrapSol = true`.
66
+ addressLookupTableAddresses, // The lookup table addresses that you can use if you are using versioned transaction.
67
+ } = instructions;
68
+ const deserializeInstruction = (instruction) => {
69
+ return new TransactionInstruction({
70
+ programId: new PublicKey(instruction.programId),
71
+ keys: instruction.accounts.map((key) => ({
72
+ pubkey: new PublicKey(key.pubkey),
73
+ isSigner: key.isSigner,
74
+ isWritable: key.isWritable,
75
+ })),
76
+ data: Buffer.from(instruction.data, 'base64'),
77
+ });
78
+ };
79
+ const getAddressLookupTableAccounts = async (keys) => {
80
+ const addressLookupTableAccountInfos = await connection.getMultipleAccountsInfo(keys.map((key) => new PublicKey(key)));
81
+ return addressLookupTableAccountInfos.reduce((acc, accountInfo, index) => {
82
+ const addressLookupTableAddress = keys[index];
83
+ if (accountInfo) {
84
+ const addressLookupTableAccount = new AddressLookupTableAccount({
85
+ key: new PublicKey(addressLookupTableAddress),
86
+ state: AddressLookupTableAccount.deserialize(accountInfo.data),
87
+ });
88
+ acc.push(addressLookupTableAccount);
89
+ }
90
+ return acc;
91
+ }, new Array());
92
+ };
93
+ const addressLookupTableAccounts = [];
94
+ addressLookupTableAccounts.push(...(await getAddressLookupTableAccounts(addressLookupTableAddresses)));
95
+ return {
96
+ instructions: [
97
+ // uncomment if needed:
98
+ ...setupInstructions.map(deserializeInstruction),
99
+ ...computeBudgetInstructions.map(deserializeInstruction),
100
+ deserializeInstruction(swapInstructionPayload),
101
+ // uncomment if needed: deserializeInstruction(cleanupInstruction),
102
+ ],
103
+ addressLookupTableAccounts,
104
+ quoteAmount: Number(quoteResponse.inAmount),
105
+ };
106
+ },
6
107
  async createTradeInstructions(f, log = consoleLogger) {
7
108
  const r = {
8
109
  swapMode: 'ExactOut',
@@ -1 +1 @@
1
- {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../../src/client/trade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../../src/client/trade.ts"],"names":[],"mappings":"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"}