PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/sdk-coin-cosmos/dist/src/lib
Просмотр файла: utils.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Utils = void 0;
const abstract_cosmos_1 = require("@bitgo/abstract-cosmos");
const sdk_core_1 = require("@bitgo/sdk-core");
const bignumber_js_1 = __importDefault(require("bignumber.js"));
/**
* Cosmos utilities implementation using the shared Cosmos SDK
*/
class Utils extends abstract_cosmos_1.CosmosUtils {
constructor(network) {
super();
this._network = network;
}
/** @inheritdoc */
isValidAddress(address) {
return this.isValidCosmosLikeAddressWithMemoId(address, new RegExp(`^${this._network.addressPrefix}1['qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$`));
}
/** @inheritdoc */
isValidValidatorAddress(address) {
return this.isValidBech32AddressMatchingRegex(address, new RegExp(`^${this._network.validatorPrefix}1['qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$`));
}
/** @inheritdoc */
isValidContractAddress(address) {
return this.isValidBech32AddressMatchingRegex(address, new RegExp(`^${this._network.addressPrefix}1['qpzry9x8gf2tvdw0s3jn54khce6mua7l]+$`));
}
/** @inheritdoc */
validateAmount(amount) {
if (!amount?.denom) {
throw new sdk_core_1.InvalidTransactionError('Invalid amount: missing denom');
}
if (!this._network.validDenoms.includes(amount.denom)) {
throw new sdk_core_1.InvalidTransactionError(`Invalid amount: denom '${amount.denom}' is not a valid denomination`);
}
if (!amount?.amount) {
throw new sdk_core_1.InvalidTransactionError('Invalid amount: missing amount');
}
const amountBN = new bignumber_js_1.default(amount.amount);
if (!amountBN.isFinite() || !amountBN.isInteger() || amountBN.isLessThanOrEqualTo(0)) {
throw new sdk_core_1.InvalidTransactionError(`Invalid amount: '${amount.amount}' is not a valid positive integer`);
}
}
}
exports.Utils = Utils;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDREQUFxRDtBQUdyRCw4Q0FBMEQ7QUFDMUQsZ0VBQXFDO0FBRXJDOztHQUVHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsNkJBQVc7SUFHcEMsWUFBWSxPQUFzQjtRQUNoQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQzVDLE9BQU8sRUFDUCxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSwyQ0FBMkMsQ0FBQyxDQUN2RixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1QkFBdUIsQ0FBQyxPQUFlO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUMzQyxPQUFPLEVBQ1AsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsMkNBQTJDLENBQUMsQ0FDekYsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsc0JBQXNCLENBQUMsT0FBZTtRQUNwQyxPQUFPLElBQUksQ0FBQyxpQ0FBaUMsQ0FDM0MsT0FBTyxFQUNQLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLHdDQUF3QyxDQUFDLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxNQUFZO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDBCQUEwQixNQUFNLENBQUMsS0FBSywrQkFBK0IsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckYsTUFBTSxJQUFJLGtDQUF1QixDQUFDLG9CQUFvQixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsQ0FBQyxDQUFDO1FBQzFHLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFqREQsc0JBaURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29zbW9zVXRpbHMgfSBmcm9tICdAYml0Z28vYWJzdHJhY3QtY29zbW9zJztcbmltcG9ydCB7IENvc21vc05ldHdvcmsgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBDb2luIH0gZnJvbSAnQGNvc21qcy9zdGFyZ2F0ZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbi8qKlxuICogQ29zbW9zIHV0aWxpdGllcyBpbXBsZW1lbnRhdGlvbiB1c2luZyB0aGUgc2hhcmVkIENvc21vcyBTREtcbiAqL1xuZXhwb3J0IGNsYXNzIFV0aWxzIGV4dGVuZHMgQ29zbW9zVXRpbHMge1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZXR3b3JrOiBDb3Ntb3NOZXR3b3JrO1xuXG4gIGNvbnN0cnVjdG9yKG5ldHdvcms6IENvc21vc05ldHdvcmspIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX25ldHdvcmsgPSBuZXR3b3JrO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRDb3Ntb3NMaWtlQWRkcmVzc1dpdGhNZW1vSWQoXG4gICAgICBhZGRyZXNzLFxuICAgICAgbmV3IFJlZ0V4cChgXiR7dGhpcy5fbmV0d29yay5hZGRyZXNzUHJlZml4fTFbJ3FwenJ5OXg4Z2YydHZkdzBzM2puNTRraGNlNm11YTdsXXszOH0kYClcbiAgICApO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRWYWxpZGF0b3JBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRCZWNoMzJBZGRyZXNzTWF0Y2hpbmdSZWdleChcbiAgICAgIGFkZHJlc3MsXG4gICAgICBuZXcgUmVnRXhwKGBeJHt0aGlzLl9uZXR3b3JrLnZhbGlkYXRvclByZWZpeH0xWydxcHpyeTl4OGdmMnR2ZHcwczNqbjU0a2hjZTZtdWE3bF17Mzh9JGApXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQ29udHJhY3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRCZWNoMzJBZGRyZXNzTWF0Y2hpbmdSZWdleChcbiAgICAgIGFkZHJlc3MsXG4gICAgICBuZXcgUmVnRXhwKGBeJHt0aGlzLl9uZXR3b3JrLmFkZHJlc3NQcmVmaXh9MVsncXB6cnk5eDhnZjJ0dmR3MHMzam41NGtoY2U2bXVhN2xdKyRgKVxuICAgICk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBbW91bnQoYW1vdW50OiBDb2luKTogdm9pZCB7XG4gICAgaWYgKCFhbW91bnQ/LmRlbm9tKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYW1vdW50OiBtaXNzaW5nIGRlbm9tJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fbmV0d29yay52YWxpZERlbm9tcy5pbmNsdWRlcyhhbW91bnQuZGVub20pKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgYW1vdW50OiBkZW5vbSAnJHthbW91bnQuZGVub219JyBpcyBub3QgYSB2YWxpZCBkZW5vbWluYXRpb25gKTtcbiAgICB9XG4gICAgaWYgKCFhbW91bnQ/LmFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFtb3VudDogbWlzc2luZyBhbW91bnQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbW91bnRCTiA9IG5ldyBCaWdOdW1iZXIoYW1vdW50LmFtb3VudCk7XG4gICAgaWYgKCFhbW91bnRCTi5pc0Zpbml0ZSgpIHx8ICFhbW91bnRCTi5pc0ludGVnZXIoKSB8fCBhbW91bnRCTi5pc0xlc3NUaGFuT3JFcXVhbFRvKDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgYW1vdW50OiAnJHthbW91bnQuYW1vdW50fScgaXMgbm90IGEgdmFsaWQgcG9zaXRpdmUgaW50ZWdlcmApO1xuICAgIH1cbiAgfVxufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!