@zebec-network/exchange-card-sdk
Version:
An sdk for purchasing silver card in zebec
36 lines (35 loc) • 1.27 kB
JavaScript
import { parseQuai } from "quais";
import { DEFAULT_QUAI_GAS_LIMIT } from "../constants";
import { ZebecCardAPIService } from "../helpers/apiHelpers";
export class QuaiService {
signer;
apiService;
constructor(signer, sdkOptions) {
this.signer = signer;
this.apiService = new ZebecCardAPIService(sdkOptions?.sandbox || false);
}
/**
* Fetches the Bitcoin vault address.
*
* @returns {Promise<{ address: string }>} A promise that resolves to the vault address.
*/
async fetchVault(symbol) {
const data = await this.apiService.fetchVault(symbol);
return data;
}
async transferQuai(params) {
const parsedAmount = parseQuai(params.amount.toString());
const vault = await this.fetchVault("QUAI");
const recipientAddress = vault.address;
const request = {
...params.overrides,
gasLimit: params.overrides?.gasLimit ?? DEFAULT_QUAI_GAS_LIMIT,
// gasPrice: params.overrides?.gasPrice ?? DEFAULT_QUAI_GAS_PRICE,
from: this.signer.address,
to: recipientAddress,
value: parsedAmount,
};
const hash = await this.signer.signAndSendTransaction(request);
return hash;
}
}