"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// import AlgorandConfig from "./algorand";
const ethereum_1 = __importDefault(require("./ethereum"));
const near_1 = __importDefault(require("./near"));
const solana_1 = __importDefault(require("./solana"));
function getCurrency(currency, wallet, providerUrl) {
    switch (currency) {
        case "ethereum":
            return new ethereum_1.default({ name: "ethereum", ticker: "ETH", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://main-light.eth.linkpool.io/", wallet });
        case "matic":
            return new ethereum_1.default({ name: "matic", ticker: "MATIC", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://polygon-rpc.com", wallet });
        case "arbitrum":
            return new ethereum_1.default({ name: "arbitrum", ticker: "ETH", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://arb1.arbitrum.io/rpc", wallet });
        case "bnb":
            return new ethereum_1.default({ name: "bnb", ticker: "BNB", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://bsc-dataseed.binance.org", wallet });
        case "avalanche":
            return new ethereum_1.default({ name: "avalanche", ticker: "AVAX", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://api.avax.network/ext/bc/C/rpc", wallet });
        case "boba-eth":
            return new ethereum_1.default({ name: "boba-eth", ticker: "ETH", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://mainnet.boba.network/", minConfirm: 1, wallet });
        case "solana":
            return new solana_1.default({ name: "solana", ticker: "SOL", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://api.mainnet-beta.solana.com/", wallet });
        // case "algorand":
        //     return new AlgorandConfig({ name: "algorand", ticker: "ALGO", providerUrl: providerUrl ?? "https://api.mainnet-beta.solana.com/", wallet })
        case "near":
            return new near_1.default({ name: "near", ticker: "NEAR", providerUrl: providerUrl !== null && providerUrl !== void 0 ? providerUrl : "https://rpc.mainnet.near.org", wallet });
        default:
            throw new Error(`Unknown/Unsupported currency ${currency}`);
    }
}
exports.default = getCurrency;
//# sourceMappingURL=index.js.map