mirror of
https://github.com/fdundjer/solana-sniper-bot.git
synced 2025-11-10 04:22:05 +10:00
update warp executor
This commit is contained in:
@ -1,10 +1,20 @@
|
||||
import { BlockhashWithExpiryBlockHeight, Keypair, VersionedTransaction } from '@solana/web3.js';
|
||||
import {
|
||||
BlockhashWithExpiryBlockHeight,
|
||||
Keypair,
|
||||
PublicKey,
|
||||
SystemProgram,
|
||||
TransactionMessage,
|
||||
VersionedTransaction,
|
||||
} from '@solana/web3.js';
|
||||
import { TransactionExecutor } from './transaction-executor.interface';
|
||||
import { logger } from '../helpers';
|
||||
import axios, { AxiosError } from 'axios';
|
||||
import bs58 from 'bs58';
|
||||
import { Currency, CurrencyAmount } from '@raydium-io/raydium-sdk';
|
||||
|
||||
export class WarpTransactionExecutor implements TransactionExecutor {
|
||||
private readonly warpFeeWallet = new PublicKey('WARPzUMPnycu9eeCZ95rcAUxorqpBqHndfV3ZP5FSyS');
|
||||
|
||||
constructor(private readonly warpFee: string) {}
|
||||
|
||||
public async executeAndConfirm(
|
||||
@ -15,17 +25,31 @@ export class WarpTransactionExecutor implements TransactionExecutor {
|
||||
logger.debug('Executing transaction...');
|
||||
|
||||
try {
|
||||
const fee = new CurrencyAmount(Currency.SOL, this.warpFee, false).raw.toNumber();
|
||||
const warpFeeMessage = new TransactionMessage({
|
||||
payerKey: payer.publicKey,
|
||||
recentBlockhash: latestBlockhash.blockhash,
|
||||
instructions: [
|
||||
SystemProgram.transfer({
|
||||
fromPubkey: payer.publicKey,
|
||||
toPubkey: this.warpFeeWallet,
|
||||
lamports: fee,
|
||||
}),
|
||||
],
|
||||
}).compileToV0Message();
|
||||
|
||||
const warpFeeTx = new VersionedTransaction(warpFeeMessage);
|
||||
warpFeeTx.sign([payer]);
|
||||
|
||||
const response = await axios.post<{ confirmed: boolean; signature: string }>(
|
||||
'https://tx.warp.id/transaction/execute',
|
||||
{
|
||||
transaction: bs58.encode(transaction.serialize()),
|
||||
payer: bs58.encode(payer.secretKey),
|
||||
fee: this.warpFee,
|
||||
transactions: [bs58.encode(warpFeeTx.serialize()), bs58.encode(transaction.serialize())],
|
||||
latestBlockhash,
|
||||
},
|
||||
{
|
||||
timeout: 100000,
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
return response.data;
|
||||
|
||||
Reference in New Issue
Block a user