import { Keypair, PublicKey } from "@solana/web3.js"
import { wrap } from "@faremeter/fetch"
import { createPaymentHandler as createSolanaHandler } from "@faremeter/payment-solana/exact"
import { createPaymentHandler as createEVMHandler } from "@faremeter/payment-evm/exact"
import { createLocalWallet as createSolanaWallet } from "@faremeter/wallet-solana"
import { createLocalWallet as createEVMWallet } from "@faremeter/wallet-evm"
import { lookupKnownSPLToken } from "@faremeter/info/solana"
const keypair = Keypair.fromSecretKey(new Uint8Array(keypairBytes))
const solanaWallet = await createSolanaWallet("devnet", keypair)
const evmWallet = await createEVMWallet({ id: 84532, name: "Base Sepolia" }, privateKey)
const splTokenInfo = lookupKnownSPLToken("devnet", "USDC")
if (!splTokenInfo) throw new Error("Unknown SPL token")
const solanaMint = new PublicKey(splTokenInfo.address)
const fetchWithPayment = wrap(fetch, {
handlers: [
createSolanaHandler(solanaWallet, solanaMint),
createEVMHandler(evmWallet),
],
})