@hiero-ledger/sdk
Version:
77 lines (72 loc) • 2.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _bignumber = _interopRequireDefault(require("bignumber.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
// SPDX-License-Identifier: Apache-2.0
/**
* Represents a unit of HBAR currency measurement in the Hedera network.
* Defines the various denominations of HBAR (tinybar, microbar, millibar, hbar, kilobar, megabar, gigabar)
* and provides utilities for converting between these units. Each unit has a name, symbol, and conversion
* rate to tinybar (the smallest unit of HBAR).
*/
class HbarUnit {
/**
* @internal
* @param {string} name
* @param {string} symbol
* @param {BigNumber} tinybar
*/
constructor(name, symbol, tinybar) {
/**
* @internal
* @readonly
*/
this._name = name;
/**
* @internal
* @readonly
*/
this._symbol = symbol;
/**
* @internal
* @readonly
*/
this._tinybar = tinybar;
Object.freeze(this);
}
/**
* @param {string} unit
* @returns {HbarUnit}
*/
static fromString(unit) {
switch (unit) {
case HbarUnit.Hbar._symbol:
return HbarUnit.Hbar;
case HbarUnit.Tinybar._symbol:
return HbarUnit.Tinybar;
case HbarUnit.Microbar._symbol:
return HbarUnit.Microbar;
case HbarUnit.Millibar._symbol:
return HbarUnit.Millibar;
case HbarUnit.Kilobar._symbol:
return HbarUnit.Kilobar;
case HbarUnit.Megabar._symbol:
return HbarUnit.Megabar;
case HbarUnit.Gigabar._symbol:
return HbarUnit.Gigabar;
default:
throw new Error("Unknown unit.");
}
}
}
exports.default = HbarUnit;
HbarUnit.Tinybar = new HbarUnit("tinybar", "tℏ", new _bignumber.default(1));
HbarUnit.Microbar = new HbarUnit("microbar", "μℏ", new _bignumber.default(100));
HbarUnit.Millibar = new HbarUnit("millibar", "mℏ", new _bignumber.default(100000));
HbarUnit.Hbar = new HbarUnit("hbar", "ℏ", new _bignumber.default("100000000"));
HbarUnit.Kilobar = new HbarUnit("kilobar", "kℏ", new _bignumber.default(1000).multipliedBy(new _bignumber.default("100000000")));
HbarUnit.Megabar = new HbarUnit("megabar", "Mℏ", new _bignumber.default(1000000).multipliedBy(new _bignumber.default("100000000")));
HbarUnit.Gigabar = new HbarUnit("gigabar", "Gℏ", new _bignumber.default("1000000000").multipliedBy(new _bignumber.default("100000000")));