import { Router as FibrousRouter } from "fibrous-router-sdk";
import { parseUnits } from "ethers";
const fibrous = new FibrousRouter();
const chainId = fibrous.supportedChains.find(chain => chain.chain_name == "hyperevm")?.chain_id;
if (!chainId) {
    throw new Error("Chain not supported");
}
// Build route options
const tokens = await fibrous.supportedTokens(chainId);
// Get input token from tokens map
const inputToken = tokens.get("hype");
if (!inputToken) {
    throw new Error("Input token not found");
}
// Get output token by address (for unverified tokens)
const outputToken = await fibrous.getToken(
    "0xb8ce59fc3717ada4c02eadf9682a9e934f625ebb",
    chainId,
);
if (!outputToken) {
    throw new Error("Output token not found");
}
const tokenInAddress = inputToken.address;
const tokenOutAddress = outputToken.address;
const tokenInDecimals = Number(inputToken.decimals);
const inputAmount = BigInt(parseUnits("1", tokenInDecimals)); // 1 Hype
const route = await fibrous.getBestRoute(
  inputAmount,
  tokenInAddress,
  tokenOutAddress,
  "hyperevm", // chainName will be deprecated in the future, use chainId instead
  {
      reverse: false,
  },
  chainId,
);
// returns route type (src/types/route.ts)