UNPKG

@zebec-network/exchange-card-sdk

Version:
36 lines (35 loc) 1.27 kB
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; } }