Skip to content

Complete Simple Bridge example

import { SimpleBridgeRevertedError, createSilentSwapClient } from '@silentswap/sdk';
import type { WalletClient } from 'viem';
 
declare const walletClient: WalletClient;
const client = createSilentSwapClient({ walletClient });
 
export async function startSimpleBridge(): Promise<() => void> {
  const quote = await client.quote({
    privacy: false,
    inputAddress: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
    sourceChainId: 8453,
    sourceAsset: 'USDC',
    amount: 25_000_000n,
    outputs: [
      {
        address: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
        chainId: 1,
        dest: {
          kind: 'evm',
          chainId: 1,
          assetId: '0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
          assetSymbol: 'USDC',
          assetDecimals: 6,
        },
      },
    ],
  });
 
  try {
    const order = await client.placeOrder(quote);
    return client.trackOrderViaWebSocket(
      order.reference,
      (state) => console.log(state.status),
      console.error,
    );
  } catch (error) {
    if (error instanceof SimpleBridgeRevertedError) {
      throw new Error(`Simple Bridge reverted: ${error.txHash}`, { cause: error });
    }
    throw error;
  }
}