UNPKG

@hashgraph/sdk

Version:
3 lines (2 loc) 1.43 kB
import r from"bignumber.js";import{valueToLong as i}from"./long.js";import t from"./HbarUnit.js";import n from"long";class e{constructor(e,a=t.Hbar){if(a===t.Tinybar)this._valueInTinybar=i(e);else{let i;i=n.isLong(e)?new r(e.toString(10)):r.isBigNumber(e)||"string"==typeof e||"number"==typeof e?new r(e):new r(0),this._valueInTinybar=i.multipliedBy(a._tinybar)}if(!this._valueInTinybar.isInteger())throw new Error("Hbar in tinybars contains decimals")}static from(r,i){return new e(r,i)}static fromTinybars(r){return"string"==typeof r?this.fromString(r,t.Tinybar):new e(r,t.Tinybar)}static fromString(i,n=t.Hbar){if(/^((?:\+|-)?\d+(?:\.\d+)?)(?: (tℏ|μℏ|mℏ|ℏ|kℏ|Mℏ|Gℏ))?$/.test(i)){let[a,s]=i.split(" ");return null!=s&&(n=t.fromString(s)),new e(new r(a),n)}throw new Error("invalid argument provided")}to(r){return this._valueInTinybar.dividedBy(r._tinybar)}toBigNumber(){return this.to(t.Hbar)}toTinybars(){return n.fromValue(this._valueInTinybar.toFixed())}negated(){return e.fromTinybars(this._valueInTinybar.negated())}isNegative(){return this._valueInTinybar.isNegative()}toString(r){return null!=r?`${this._valueInTinybar.dividedBy(r._tinybar).toString()} ${r._symbol}`:this._valueInTinybar.isLessThan(1e4)&&this._valueInTinybar.isGreaterThan(-1e4)?`${this._valueInTinybar.toFixed()} ${t.Tinybar._symbol}`:`${this.to(t.Hbar).toString()} ${t.Hbar._symbol}`}}export{e as default}; //# sourceMappingURL=Hbar.js.map