import { Client } from '@miradorlabs/web-sdk';
const client = new Client('your-api-key');
async function executeSwap(params: SwapParams) {
const trace = client.trace({ name: 'TokenSwap' })
.addAttributes({
inputToken: params.inputToken,
outputToken: params.outputToken,
inputAmount: params.amount,
userAddress: params.userAddress
})
.addTags(['swap', 'dex', params.chain])
.addEvent('swap_initiated');
try {
// User signs transaction
trace.addEvent('user_signing');
const tx = await wallet.sendTransaction(swapTx);
trace.addEvent('transaction_sent', { txHash: tx.hash });
// Add transaction hint for correlation
trace.addTxHint(tx.hash, params.chain, 'Swap transaction');
// Wait for confirmation
const receipt = await tx.wait();
trace.addEvent('transaction_confirmed', {
blockNumber: receipt.blockNumber,
gasUsed: receipt.gasUsed.toString()
});
} catch (error) {
trace.addEvent('swap_failed', { error: error.message });
}
}