import { useSVMTransactionSimulation } from '@dynamic-labs/sdk-react-core';
import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { Transaction, SystemProgram, PublicKey } from '@solana/web3.js';
const MyComponent = () => {
const { primaryWallet } = useDynamicContext();
const { simulateSVMTransaction, isLoading, error } = useSVMTransactionSimulation();
const handleSimulate = async () => {
if (!primaryWallet) return;
// Create a Solana transaction
const solTransaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: new PublicKey(primaryWallet.address),
toPubkey: new PublicKey('recipient-address'),
lamports: 1000000000, // 1 SOL
})
);
try {
const result = await simulateSVMTransaction({
transaction: solTransaction, // Pass Transaction object directly
type: 'SignTransaction',
});
console.log('Simulation result:', result);
console.log('Asset transfers:', result.assetTransfers);
console.log('Security validation:', result.blockaidValidation);
} catch (err) {
console.error('Simulation failed:', err);
}
};
return (
<button onClick={handleSimulate} disabled={isLoading}>
{isLoading ? 'Simulating...' : 'Simulate Transaction'}
</button>
);
};