UNPKG

@debridge-finance/desdk

Version:

Send, track and claim arbitrary cross-chain messages over the deBridge protocol programmatically

42 lines 1.53 kB
import { getDeBridgeGate, getSignatureStorage, } from "./context"; export class Claim { constructor(args, ctx) { this.ctx = ctx; Object.assign(this, args); } // TODO reasonable to introduce per-chain caching here async getRequiredSignaturesCount() { const contract = getDeBridgeGate(this.ctx); const excessConfirmations = await getDeBridgeGate(this.ctx).excessConfirmations(); return Number(excessConfirmations); } async isSigned() { const signatures = await this.getSignatures(); const minRequiredSignatures = await this.getRequiredSignaturesCount(); return signatures.length >= minRequiredSignatures; } async isExecuted() { return this.isClaimed(); } async isClaimed() { const contract = getDeBridgeGate(this.ctx); return contract.isSubmissionUsed(this.submissionId); } async getSignatures() { const storage = getSignatureStorage(this.ctx); return storage.getSignatures(this.submissionId); } async getEncodedArgs() { const signatures = await this.getSignatures(); return [ this.debridgeId.toString(), this.amount.toString(), this.chainIdFrom.toString(), this.receiver.toString(), this.nonce.toString(), "0x" + signatures.map((s) => s.replace(/^0x/, "")).join(""), this.autoParams ? this.autoParams.encode() : "0x", ]; } } //# sourceMappingURL=claim.js.map