UNPKG

@okxweb3/coin-stellar

Version:

@ok/coin-stellar is a Stellar SDK for building Web3 wallets and applications. It supports Stellar and PI blockchains, enabling private key management, address generation, transaction signing, trustline creation, and asset transfers

90 lines 3.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Claimant = void 0; const xdr_1 = __importDefault(require("./xdr")); const keypair_1 = require("./keypair"); const strkey_1 = require("./strkey"); class Claimant { constructor(destination, predicate) { if (destination && !strkey_1.StrKey.isValidEd25519PublicKey(destination)) { throw new Error('Destination is invalid'); } this._destination = destination; if (!predicate) { this._predicate = xdr_1.default.ClaimPredicate.claimPredicateUnconditional(); } else if (predicate instanceof xdr_1.default.ClaimPredicate) { this._predicate = predicate; } else { throw new Error('Predicate should be an xdr.ClaimPredicate'); } } static predicateUnconditional() { return xdr_1.default.ClaimPredicate.claimPredicateUnconditional(); } static predicateAnd(left, right) { if (!(left instanceof xdr_1.default.ClaimPredicate)) { throw new Error('left Predicate should be an xdr.ClaimPredicate'); } if (!(right instanceof xdr_1.default.ClaimPredicate)) { throw new Error('right Predicate should be an xdr.ClaimPredicate'); } return xdr_1.default.ClaimPredicate.claimPredicateAnd([left, right]); } static predicateOr(left, right) { if (!(left instanceof xdr_1.default.ClaimPredicate)) { throw new Error('left Predicate should be an xdr.ClaimPredicate'); } if (!(right instanceof xdr_1.default.ClaimPredicate)) { throw new Error('right Predicate should be an xdr.ClaimPredicate'); } return xdr_1.default.ClaimPredicate.claimPredicateOr([left, right]); } static predicateNot(predicate) { if (!(predicate instanceof xdr_1.default.ClaimPredicate)) { throw new Error('right Predicate should be an xdr.ClaimPredicate'); } return xdr_1.default.ClaimPredicate.claimPredicateNot(predicate); } static predicateBeforeAbsoluteTime(absBefore) { return xdr_1.default.ClaimPredicate.claimPredicateBeforeAbsoluteTime(xdr_1.default.Int64.fromString(absBefore)); } static predicateBeforeRelativeTime(seconds) { return xdr_1.default.ClaimPredicate.claimPredicateBeforeRelativeTime(xdr_1.default.Int64.fromString(seconds)); } static fromXDR(claimantXdr) { let value; switch (claimantXdr.switch()) { case xdr_1.default.ClaimantType.claimantTypeV0(): value = claimantXdr.v0(); return new this(strkey_1.StrKey.encodeEd25519PublicKey(value.destination().ed25519()), value.predicate()); default: throw new Error(`Invalid claimant type: ${claimantXdr.switch().name}`); } } toXDRObject() { const claimant = new xdr_1.default.ClaimantV0({ destination: keypair_1.Keypair.fromPublicKey(this._destination).xdrAccountId(), predicate: this._predicate }); return xdr_1.default.Claimant.claimantTypeV0(claimant); } get destination() { return this._destination; } set destination(value) { throw new Error('Claimant is immutable'); } get predicate() { return this._predicate; } set predicate(value) { throw new Error('Claimant is immutable'); } } exports.Claimant = Claimant; //# sourceMappingURL=claimant.js.map