Skip to content

Commit

Permalink
fix test page
Browse files Browse the repository at this point in the history
  • Loading branch information
MohammadPCh committed Sep 22, 2024
1 parent 650687c commit a628cd2
Showing 1 changed file with 86 additions and 2 deletions.
88 changes: 86 additions & 2 deletions pages/test2.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
import { useState } from 'react';
import { useQueries } from '@tanstack/react-query';
import { useAccount } from 'wagmi';

import {
PublicKey,
LAMPORTS_PER_SOL,
Transaction,
SystemProgram,
} from '@solana/web3.js';
import BigNumber from 'bignumber.js';
import { useConnection, useWallet } from '@solana/wallet-adapter-react';
import FailedDonation, {
EDonationFailedType,
} from '@/components/modals/FailedDonation';
Expand All @@ -24,9 +31,86 @@ const YourApp = () => {
})),
});

console.log('subgraphValues', subgraphValues);

// Solana wallet hooks
const {
publicKey,
disconnect: solanaWalletDisconnect,

Check warning on line 39 in pages/test2.tsx

View workflow job for this annotation

GitHub Actions / build

'solanaWalletDisconnect' is assigned a value but never used. Allowed unused vars must match /^_/u
signMessage: solanaSignMessage,

Check warning on line 40 in pages/test2.tsx

View workflow job for this annotation

GitHub Actions / build

'solanaSignMessage' is assigned a value but never used. Allowed unused vars must match /^_/u
sendTransaction: solanaSendTransaction,
connecting: solanaIsConnecting,
connected: solanaIsConnected,
} = useWallet();

const { connection: solanaConnection } = useConnection();

const donateToSolana = async () => {
if (!publicKey) {
console.error('Wallet is not connected');
return;
}

console.log('Connection endpoint:', solanaConnection.rpcEndpoint);

const to = 'B6bfJUMPnpL2ddngPPe3M7QNpvrv7hiYYiGtg9iCJDMS';
const donationValue = 0.001;

console.log('publicKey', publicKey);
console.log('Public Key string:', publicKey.toString());

// Ensure the wallet has enough funds by requesting an airdrop if necessary
let balance = await solanaConnection.getBalance(publicKey);
console.log('Initial balance:', balance);
if (balance < LAMPORTS_PER_SOL) {
console.log('Airdropping 1 SOL for testing...');
const airdropSignature = await solanaConnection.requestAirdrop(
publicKey,
LAMPORTS_PER_SOL,
);
await solanaConnection.confirmTransaction(airdropSignature);
balance = await solanaConnection.getBalance(publicKey);
console.log('New balance:', balance);
}

const lamports = new BigNumber(donationValue)
.times(LAMPORTS_PER_SOL)
.toFixed();

const transaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: publicKey!,
toPubkey: new PublicKey(to),
lamports: BigInt(lamports),
}),
);

console.log('Transaction', transaction);

console.log(
'Fee Payer:',
transaction.feePayer ? transaction.feePayer.toBase58() : 'None',
);

transaction.feePayer = publicKey;

const simulationResult =
await solanaConnection.simulateTransaction(transaction);
console.log('Simulation Result:', simulationResult);

if (simulationResult.value.err) {
console.error('Simulation error:', simulationResult.value.err);
return;
}

const hash = await solanaSendTransaction(transaction, solanaConnection);

console.log('hash', hash);
};

return (
<div>
{/* <button onClick={donateToSolana}>DONATE ON SOLANA</button> */}
<button onClick={donateToSolana}>DONATE ON SOLANA</button>
<w3m-button />
<div>
<button
Expand Down

0 comments on commit a628cd2

Please sign in to comment.