@hashgraph/sdk
Version:
3 lines (2 loc) • 1.38 kB
JavaScript
import t from"long";import o from"../Hbar.js";import e from"../token/TokenId.js";import s from"./TokenBalanceMap.js";import n from"./TokenDecimalMap.js";import*as r from"@hashgraph/proto";class a{constructor(t){this.hbars=t.hbars,this.tokens=t.tokens,this.tokenDecimals=t.tokenDecimals,Object.freeze(this)}static fromBytes(t){return a._fromProtobuf(r.proto.CryptoGetAccountBalanceResponse.decode(t))}static _fromProtobuf(r){const i=new s,l=new n;if(null!=r.tokenBalances)for(const o of r.tokenBalances){const s=e._fromProtobuf(o.tokenId);l._set(s,null!=o.decimals?o.decimals:0),i._set(s,t.fromValue(o.balance))}return new a({hbars:o.fromTinybars(r.balance),tokens:i,tokenDecimals:l})}_toProtobuf(){const t=[];for(const[o,e]of null!=this.tokens?this.tokens:[])t.push({tokenId:o._toProtobuf(),balance:e,decimals:null!=this.tokenDecimals?this.tokenDecimals.get(o):null});return{balance:this.hbars.toTinybars(),tokenBalances:t}}toBytes(){return r.proto.CryptoGetAccountBalanceResponse.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){const t=[];for(const[o,e]of null!=this.tokens?this.tokens:[]){const s=null!=this.tokenDecimals?this.tokenDecimals.get(o):null;t.push({tokenId:o.toString(),balance:e.toString(),decimals:null!=s?s:0})}return{hbars:this.hbars.toString(),tokens:t}}}export{a as default};
//# sourceMappingURL=AccountBalance.js.map