PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/sdk-coin-xrp/dist/src/lib

Просмотр файла: trustsetBuilder.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TrustSetBuilder = void 0;
const sdk_core_1 = require("@bitgo/sdk-core");
const bignumber_js_1 = __importDefault(require("bignumber.js"));
const iface_1 = require("./iface");
const transactionBuilder_1 = require("./transactionBuilder");
const utils_1 = __importDefault(require("./utils"));
class TrustSetBuilder extends transactionBuilder_1.TransactionBuilder {
    constructor(_coinConfig) {
        super(_coinConfig);
    }
    get transactionType() {
        return sdk_core_1.TransactionType.TrustLine;
    }
    get xrpTransactionType() {
        return iface_1.XrpTransactionType.TrustSet;
    }
    initBuilder(tx) {
        super.initBuilder(tx);
        const { amount } = tx.toJson();
        if (!amount) {
            throw new sdk_core_1.BuildTransactionError('Missing amount');
        }
        if (!utils_1.default.isIssuedCurrencyAmount(amount)) {
            throw new sdk_core_1.BuildTransactionError('Invalid Limit Amount');
        }
        // The amount is represented in decimal notation, so we need to multiply it by the decimal places
        const amountBigNum = (0, bignumber_js_1.default)(amount.value).shiftedBy(this._coinConfig.decimalPlaces);
        this.amount(amountBigNum.toFixed());
    }
    /**
     *  Set the amount to send
     * @param {string} amount - the amount sent
     * @returns {TransactionBuilder} This transaction builder
     */
    amount(amount) {
        if (typeof amount !== 'string') {
            throw new Error(`amount type ${typeof amount} must be a string`);
        }
        const amountBigNum = (0, bignumber_js_1.default)(amount);
        if (amountBigNum.lt(0)) {
            throw new Error(`amount ${amount} is not valid`);
        }
        const currency = utils_1.default.getXrpCurrencyFromTokenName(this._coinConfig.name);
        // Unlike most coins, XRP Token amounts are represented in decimal notation
        const value = amountBigNum.shiftedBy(-1 * this._coinConfig.decimalPlaces).toFixed();
        this._amount = {
            value: value,
            ...currency,
        };
        return this;
    }
    /** @inheritdoc */
    async buildImplementation() {
        if (!this._sender) {
            throw new sdk_core_1.BuildTransactionError('Sender must be set before building the transaction');
        }
        const trustSetFields = {
            TransactionType: this.xrpTransactionType,
            Account: this._sender,
            LimitAmount: this._amount,
        };
        this._specificFields = trustSetFields;
        return await super.buildImplementation();
    }
}
exports.TrustSetBuilder = TrustSetBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RzZXRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cnVzdHNldEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXlFO0FBRXpFLGdFQUFxQztBQUVyQyxtQ0FBNkM7QUFFN0MsNkRBQTBEO0FBQzFELG9EQUE0QjtBQUU1QixNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBR3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBYyxrQkFBa0I7UUFDOUIsT0FBTywwQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksZ0NBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQUssQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxpR0FBaUc7UUFDakcsTUFBTSxZQUFZLEdBQUcsSUFBQSxzQkFBUyxFQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsT0FBTyxNQUFNLG1CQUFtQixDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUEsc0JBQVMsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsTUFBTSxlQUFlLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsZUFBSyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsMkVBQTJFO1FBQzNFLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwRixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsS0FBSyxFQUFFLEtBQUs7WUFDWixHQUFHLFFBQVE7U0FDWixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBYTtZQUMvQixlQUFlLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUN4QyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQzFCLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUV0QyxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBckVELDBDQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBJc3N1ZWRDdXJyZW5jeUFtb3VudCwgVHJ1c3RTZXQgfSBmcm9tICd4cnBsJztcbmltcG9ydCB7IFhycFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFRydXN0U2V0QnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX2Ftb3VudDogSXNzdWVkQ3VycmVuY3lBbW91bnQ7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlRydXN0TGluZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgeHJwVHJhbnNhY3Rpb25UeXBlKCk6IFhycFRyYW5zYWN0aW9uVHlwZS5UcnVzdFNldCB7XG4gICAgcmV0dXJuIFhycFRyYW5zYWN0aW9uVHlwZS5UcnVzdFNldDtcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcblxuICAgIGNvbnN0IHsgYW1vdW50IH0gPSB0eC50b0pzb24oKTtcbiAgICBpZiAoIWFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBhbW91bnQnKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc0lzc3VlZEN1cnJlbmN5QW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgTGltaXQgQW1vdW50Jyk7XG4gICAgfVxuICAgIC8vIFRoZSBhbW91bnQgaXMgcmVwcmVzZW50ZWQgaW4gZGVjaW1hbCBub3RhdGlvbiwgc28gd2UgbmVlZCB0byBtdWx0aXBseSBpdCBieSB0aGUgZGVjaW1hbCBwbGFjZXNcbiAgICBjb25zdCBhbW91bnRCaWdOdW0gPSBCaWdOdW1iZXIoYW1vdW50LnZhbHVlKS5zaGlmdGVkQnkodGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzKTtcbiAgICB0aGlzLmFtb3VudChhbW91bnRCaWdOdW0udG9GaXhlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2V0IHRoZSBhbW91bnQgdG8gc2VuZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IC0gdGhlIGFtb3VudCBzZW50XG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBpZiAodHlwZW9mIGFtb3VudCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgYW1vdW50IHR5cGUgJHt0eXBlb2YgYW1vdW50fSBtdXN0IGJlIGEgc3RyaW5nYCk7XG4gICAgfVxuICAgIGNvbnN0IGFtb3VudEJpZ051bSA9IEJpZ051bWJlcihhbW91bnQpO1xuICAgIGlmIChhbW91bnRCaWdOdW0ubHQoMCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgYW1vdW50ICR7YW1vdW50fSBpcyBub3QgdmFsaWRgKTtcbiAgICB9XG4gICAgY29uc3QgY3VycmVuY3kgPSB1dGlscy5nZXRYcnBDdXJyZW5jeUZyb21Ub2tlbk5hbWUodGhpcy5fY29pbkNvbmZpZy5uYW1lKTtcbiAgICAvLyBVbmxpa2UgbW9zdCBjb2lucywgWFJQIFRva2VuIGFtb3VudHMgYXJlIHJlcHJlc2VudGVkIGluIGRlY2ltYWwgbm90YXRpb25cbiAgICBjb25zdCB2YWx1ZSA9IGFtb3VudEJpZ051bS5zaGlmdGVkQnkoLTEgKiB0aGlzLl9jb2luQ29uZmlnLmRlY2ltYWxQbGFjZXMpLnRvRml4ZWQoKTtcbiAgICB0aGlzLl9hbW91bnQgPSB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAuLi5jdXJyZW5jeSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBpZiAoIXRoaXMuX3NlbmRlcikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0cnVzdFNldEZpZWxkczogVHJ1c3RTZXQgPSB7XG4gICAgICBUcmFuc2FjdGlvblR5cGU6IHRoaXMueHJwVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgQWNjb3VudDogdGhpcy5fc2VuZGVyLFxuICAgICAgTGltaXRBbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICB9O1xuXG4gICAgdGhpcy5fc3BlY2lmaWNGaWVsZHMgPSB0cnVzdFNldEZpZWxkcztcblxuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cbn1cbiJdfQ==

Выполнить команду


Для локальной разработки. Не используйте в интернете!