PHP WebShell

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

Просмотр файла: Hbar.cjs

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
var _bignumber = _interopRequireDefault(require("bignumber.js"));
var _long = require("./long.cjs");
var _HbarUnit = _interopRequireDefault(require("./HbarUnit.cjs"));
var _long2 = _interopRequireDefault(require("long"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*-
 * ‌
 * Hedera JavaScript SDK
 * ​
 * Copyright (C) 2020 - 2022 Hedera Hashgraph, LLC
 * ​
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ‍
 */

/**
 * @typedef {import("./long.js").LongObject} LongObject
 */

class Hbar {
  /**
   * @param {number | string | Long | LongObject | BigNumber} amount
   * @param {HbarUnit=} unit
   */
  constructor(amount, unit = _HbarUnit.default.Hbar) {
    if (unit === _HbarUnit.default.Tinybar) {
      this._valueInTinybar = (0, _long.valueToLong)(amount);
    } else {
      /** @type {BigNumber} */
      let bigAmount;
      if (_long2.default.isLong(amount)) {
        bigAmount = new _bignumber.default(amount.toString(10));
      } else if (_bignumber.default.isBigNumber(amount) || typeof amount === "string" || typeof amount === "number") {
        bigAmount = new _bignumber.default(amount);
      } else {
        bigAmount = new _bignumber.default(0);
      }

      /**
       * @type {BigNumber}
       */
      this._valueInTinybar = bigAmount.multipliedBy(unit._tinybar);
    }
    if (!this._valueInTinybar.isInteger()) {
      throw new Error("Hbar in tinybars contains decimals");
    }
  }

  /**
   * @param {number | Long | BigNumber} amount
   * @param {HbarUnit} unit
   * @returns {Hbar}
   */
  static from(amount, unit) {
    return new Hbar(amount, unit);
  }

  /**
   * @param {number | Long | string | BigNumber} amount
   * @returns {Hbar}
   */
  static fromTinybars(amount) {
    if (typeof amount === "string") {
      return this.fromString(amount, _HbarUnit.default.Tinybar);
    }
    return new Hbar(amount, _HbarUnit.default.Tinybar);
  }

  /**
   * @param {string} str
   * @param {HbarUnit=} unit
   * @returns {Hbar}
   */
  static fromString(str, unit = _HbarUnit.default.Hbar) {
    const pattern = /^((?:\+|-)?\d+(?:\.\d+)?)(?: (tℏ|μℏ|mℏ|ℏ|kℏ|Mℏ|Gℏ))?$/;
    if (pattern.test(str)) {
      let [amount, symbol] = str.split(" ");
      if (symbol != null) {
        unit = _HbarUnit.default.fromString(symbol);
      }
      return new Hbar(new _bignumber.default(amount), unit);
    } else {
      throw new Error("invalid argument provided");
    }
  }

  /**
   * @param {HbarUnit} unit
   * @returns {BigNumber}
   */
  to(unit) {
    return this._valueInTinybar.dividedBy(unit._tinybar);
  }

  /**
   * @returns {BigNumber}
   */
  toBigNumber() {
    return this.to(_HbarUnit.default.Hbar);
  }

  /**
   * @returns {Long}
   */
  toTinybars() {
    return _long2.default.fromValue(this._valueInTinybar.toFixed());
  }

  /**
   * @returns {Hbar}
   */
  negated() {
    return Hbar.fromTinybars(this._valueInTinybar.negated());
  }

  /**
   * @returns {boolean}
   */
  isNegative() {
    return this._valueInTinybar.isNegative();
  }

  /**
   * @param {HbarUnit=} unit
   * @returns {string}
   */
  toString(unit) {
    if (unit != null) {
      return `${this._valueInTinybar.dividedBy(unit._tinybar).toString()} ${unit._symbol}`;
    }
    if (this._valueInTinybar.isLessThan(10000) && this._valueInTinybar.isGreaterThan(-10000)) {
      return `${this._valueInTinybar.toFixed()} ${_HbarUnit.default.Tinybar._symbol}`;
    }
    return `${this.to(_HbarUnit.default.Hbar).toString()} ${_HbarUnit.default.Hbar._symbol}`;
  }
}
exports.default = Hbar;

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


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