diff --git a/nextjs/src/app/client/JupiterClient.js b/nextjs/src/app/client/JupiterClient.js index 6a79095..d1aca7c 100644 --- a/nextjs/src/app/client/JupiterClient.js +++ b/nextjs/src/app/client/JupiterClient.js @@ -2,7 +2,7 @@ import { Connection, Keypair, VersionedTransaction } from '@solana/web3.js'; // import { TokenInfo } from "@solana/spl-token-registry" import fetch from 'cross-fetch'; // import { Wallet } from '@project-serum/anchor'; -// import bs58 from 'bs58'; +import base58 from "bs58"; import dotenv from 'dotenv'; @@ -100,7 +100,7 @@ async function priceSwap(buyTkId, sellTkId, amount) { //pass in platformFeeBps as a parameter in the quote. - const quoteUrl =`https://quote-api.jup.ag/v6/quote?inputMint=${sellTokenInfo.address}&outputMint=${buyTokenInfo.address}&amount=${swapItem.buyQty * 10 ^ buyTokenInfo.decimals}&slippageBps=50`; + const quoteUrl =`https://quote-api.jup.ag/v6/quote?inputMint=${sellTokenInfo.address}&outputMint=${buyTokenInfo.address}&amount=${swapItem.buyQty * 10 ^ buyTokenInfo.decimals}&slippageBps=50&asLegacyTransaction=true`; const quoteResponseRaw = await (await fetch(quoteUrl)).json(); console.log({ quoteResponseRaw }); @@ -139,7 +139,7 @@ async function priceSwap(buyTkId, sellTkId, amount) { return transaction; })); - console.dir(transactions, { depth: null }); + console.dir('created transactions: ',transactions, { depth: null }); return transactions; // // sign the transaction // transaction.sign([wallet.payer]); @@ -160,16 +160,25 @@ async function priceSwap(buyTkId, sellTkId, amount) { // console.log(`https://solscan.io/tx/${signature}`); } -async function confirmTransactions(transactions, signature){ +async function confirmTransactions(signedTransactions){ console.log('confirming transactions') - console.log(transactions) - console.log(signature) + console.log(signedTransactions) const connection = new Connection(RPC, 'confirmed'); const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(); - await Promise.all(transactions.map(async (transaction) => { - await connection.confirmTransaction({signature, blockhash, lastValidBlockHeight}); - })); + signedTransactions.forEach(async (transaction) => { + const signature = base58.encode(transaction.signatures[0]); + console.log("signature: ",signature); + const confirmation = await connection.confirmTransaction({signature, blockhash, lastValidBlockHeight}); + console.log("confirmation: ",confirmation); + }); + + // await Promise.all(signedTransactions.map(async (transaction) => { + // const signature = base58.encode(transaction.signatures[0]); + // console.log("signature: ",signature); + // const confirmation = await connection.confirmTransaction({signature, blockhash, lastValidBlockHeight}); + // console.log("confirmation: ",confirmation); + // })); } async function confirmTransaction(signature,connection){ diff --git a/nextjs/src/app/client/LightClient.js b/nextjs/src/app/client/LightClient.js index 378b436..e46a689 100644 --- a/nextjs/src/app/client/LightClient.js +++ b/nextjs/src/app/client/LightClient.js @@ -12,7 +12,7 @@ let rpcUrl = process.env.NEXT_PUBLIC_MAINNET_RPC; const provider = await light.Provider.init({ wallet: solanaWallet, relayer: testRelayer, - confirmConfig + confirmConfig }); const user = await light.User.init({ provider }); diff --git a/nextjs/src/app/transact/page.js b/nextjs/src/app/transact/page.js index 89f6867..d6b8025 100644 --- a/nextjs/src/app/transact/page.js +++ b/nextjs/src/app/transact/page.js @@ -200,23 +200,29 @@ export default function Swap() { console.log('swap items:', swapItems) console.log('public key:', publicKey.toString()) const transactions = await createSwapTransactions(swapItems, publicKey.toString()); - console.log('transactions', transactions); - // const signedTransactions = await signAllTransactions(transactions); + console.log('transactions : ', transactions); + + const signedTransactions = await signAllTransactions(transactions); + + console.log('signed transactions : ', signedTransactions); const { context: { slot: minContextSlot }, value: { blockhash, lastValidBlockHeight }, } = await connection.getLatestBlockhashAndContext(); + //execute the transactions + // const signature = await sendTransaction(transactions[0], connection, { minContextSlot }); + // console.log('signature found , ', signature); + // let confirmation = await connection.confirmTransaction({ blockhash, lastValidBlockHeight, signature }); + // console.log("confirmation when through -------> ",confirmation) + + const signatures = signedTransactions.map(t => base58.encode(t.signatures[0])); + console.log('signatures : ', signatures); + + const confirmation = await confirmTransactions(signedTransactions); - const signature = await sendTransaction(transactions[0], connection, { minContextSlot }); - console.log(signature) - let confirmation = await connection.confirmTransaction({ blockhash, lastValidBlockHeight, signature }); - - console.log(confirmation) - // const signatures = signedTransactions.map(t => t.signatures); - // console.log('signatures', signatures); - // await confirmTransactions(transactions, base58.encode(signedTransactions[0].signatures[0])); + console.log('confirmation : ', confirmation); //signature // await confirmTransaction(base58.encode(signature),connection); @@ -227,14 +233,14 @@ export default function Swap() { const updateBuyAmountForRow = async (rowId) => { const row = rows.find(r => r.id === rowId); if (!row || !row.fromToken || !row.toToken || !row.sellAmount) { - console.log("Incomplete input for price update"); + // console.log("Incomplete input for price update"); return; } await new Promise(resolve => setTimeout(resolve, 2000)); try { - console.log('Updating buy amount for row', rowId); + // console.log('Updating buy amount for row', rowId); let priceData = await priceSwap(row.toToken, row.fromToken, row.sellAmount); setRows(currentRows => @@ -562,7 +568,7 @@ export default function Swap() { className="bg-gray-50 py-2 px-8 text-lg border border-gray-300 hover:bg-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-500 block p-2.5" onClick={() => submitTransaction()} > - Transact + Transact {jupPriceData.buyTkId != null && (