@hashgraph/sdk
Version:
3 lines (2 loc) • 2.19 kB
JavaScript
import{constructor as t,fromString as r,validateChecksum as e,fromSolidityAddress as s,fromEvmAddress as o,toSolidityAddress as n,toEvmAddress as i,toStringWithChecksum as m,compare as u}from"../EntityIdHelper.js";import*as h from"@hashgraph/proto";import a from"long";import d from"../EvmAddress.js";import{isLongZeroAddress as l}from"../util.js";class c{constructor(r,e,s){const o=t(r,e,s);this.shard=o.shard,this.realm=o.realm,this.num=o.num,this._checksum=null}static getAddressBookFileIdFor(t=0,r=0){return new c({num:102,shard:t,realm:r})}static getFeeScheduleFileIdFor(t=0,r=0){return new c({num:111,shard:t,realm:r})}static getExchangeRatesFileIdFor(t=0,r=0){return new c({num:112,shard:t,realm:r})}static fromString(t){const e=r(t),s=new c(e);return s._checksum=e.checksum,s}static _fromProtobuf(t){return new c(null!=t.shardNum?a.fromString(t.shardNum.toString()):0,null!=t.realmNum?a.fromString(t.realmNum.toString()):0,null!=t.fileNum?a.fromString(t.fileNum.toString()):0)}get checksum(){return this._checksum}validate(t){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(t)}validateChecksum(t){e(this.shard,this.realm,this.num,this._checksum,t)}static fromBytes(t){return c._fromProtobuf(h.proto.FileID.decode(t))}static fromSolidityAddress(t){const[r,e,o]=s(t);return new c(r,e,o)}static fromEvmAddress(t,r,e){const s=d.fromString(e).toBytes();if(!l(s))throw new Error("FileId.fromEvmAddress does not support non-long-zero addresses");const[n,i,m]=o(t,r,e);return new c(n,i,m)}toSolidityAddress(){return n([this.shard,this.realm,this.num])}toEvmAddress(){return i(this.num)}_toProtobuf(){return{fileNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(t){return m(this.toString(),t)}toBytes(){return h.proto.FileID.encode(this._toProtobuf()).finish()}clone(){const t=new c(this);return t._checksum=this._checksum,t}compare(t){return u([this.shard,this.realm,this.num],[t.shard,t.realm,t.num])}}c.ADDRESS_BOOK=new c(102),c.FEE_SCHEDULE=new c(111),c.EXCHANGE_RATES=new c(112);export{c as default};
//# sourceMappingURL=FileId.js.map