UNPKG

@wormhole-foundation/sdk-connect

Version:

The core package for the Connect SDK, used in conjunction with 1 or more of the chain packages

39 lines 1.73 kB
import axios from "axios"; import { retry } from "./tasks.js"; // Note: mostly ripped off from https://github.com/circlefin/cctp-sample-app/blob/master/src/services/attestationService.ts export const CIRCLE_RETRY_INTERVAL = 2000; export var CircleAttestationStatus; (function (CircleAttestationStatus) { CircleAttestationStatus["complete"] = "complete"; CircleAttestationStatus["pending_confirmations"] = "pending_confirmations"; })(CircleAttestationStatus || (CircleAttestationStatus = {})); const mapCircleAttestation = (attestationResponse) => ({ message: attestationResponse.attestation, status: attestationResponse.status, }); export async function getCircleAttestation(circleApi, msgHash) { const url = `${circleApi}/${msgHash}`; try { const response = await axios.get(url); const attestation = mapCircleAttestation(response?.data); return attestation.message === "PENDING" ? null : attestation.message; } catch (error) { if (!error) return null; if (typeof error === "object") { // A 404 error means the VAA is not yet available // since its not available yet, we return null signaling it can be tried again if (axios.isAxiosError(error) && error.response?.status === 404) return null; if ("status" in error && error.status === 404) return null; } throw error; } } export async function getCircleAttestationWithRetry(circleApi, msgHash, timeout) { const task = () => getCircleAttestation(circleApi, msgHash); return retry(task, CIRCLE_RETRY_INTERVAL, timeout, "Circle:GetAttestation"); } //# sourceMappingURL=circle-api.js.map