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==Выполнить команду
Для локальной разработки. Не используйте в интернете!