zksync-easy-onramp
Version:
SDK package for ZKsync easy on ramp
55 lines (47 loc) • 1.58 kB
text/typescript
import { config, } from "@sdk/config";
import type { FetchQuoteParams, } from "@sdk/types/sdk";
import type { ConfigResponse, QuotesResponse, } from "@sdk/types/server";
export async function fetchQuotes(params: FetchQuoteParams,): Promise<QuotesResponse> {
const apiUrl = config.get().apiUrl;
const url = new URL(`${apiUrl}/quotes`,);
const urlParams = new URLSearchParams();
urlParams.append("to", params.toAddress as string,);
urlParams.append("chainId", params.chainId.toString(),);
urlParams.append("token", params.toToken,);
urlParams.append("routeType", "buy",);
const services = config.get().services;
if (services.length > 0) {
urlParams.append("services", services.join(",",),);
}
if (params.fiatCurrency) {
urlParams.append("fiatCurrency", params.fiatCurrency,);
}
if (params.fiatAmount) {
urlParams.append("fiatAmount", params.fiatAmount.toString(),);
}
if (config.get().dev) {
urlParams.append("dev", "true",);
}
const results = await fetch(`${url}?${urlParams.toString()}`,)
.then((response,) => response.json(),)
.then((data,) => {
return data;
},)
.catch((error,) => {
throw error;
},);
return results as QuotesResponse;
}
export async function fetchConfig(): Promise<ConfigResponse> {
const apiUrl = config.get().apiUrl;
const url = new URL(`${apiUrl}/config`,);
const results = await fetch(url,)
.then((response,) => response.json(),)
.then((data,) => {
return data;
},)
.catch((error,) => {
throw error;
},);
return results;
}