UNPKG

wowok

Version:

Wowok Blockchain TypeScript API

1 lines 1.5 kB
import{ulebDecode}from'./uleb.js';export class BcsReader{['dataView'];['bytePosition']=0x0;constructor(a){this['dataView']=new DataView(a['buffer'],a['byteOffset'],a['byteLength']);}['shift'](a){return this['bytePosition']+=a,this;}['read8'](){const a=this['dataView']['getUint8'](this['bytePosition']);return this['shift'](0x1),a;}['read16'](){const a=this['dataView']['getUint16'](this['bytePosition'],!![]);return this['shift'](0x2),a;}['read32'](){const a=this['dataView']['getUint32'](this['bytePosition'],!![]);return this['shift'](0x4),a;}['read64'](){const a=this['read32'](),b=this['read32'](),c=b['toString'](0x10)+a['toString'](0x10)['padStart'](0x8,'0');return BigInt('0x'+c)['toString'](0xa);}['read128'](){const a=BigInt(this['read64']()),b=BigInt(this['read64']()),c=b['toString'](0x10)+a['toString'](0x10)['padStart'](0x10,'0');return BigInt('0x'+c)['toString'](0xa);}['read256'](){const a=BigInt(this['read128']()),b=BigInt(this['read128']()),c=b['toString'](0x10)+a['toString'](0x10)['padStart'](0x20,'0');return BigInt('0x'+c)['toString'](0xa);}['readBytes'](a){const b=this['bytePosition']+this['dataView']['byteOffset'],c=new Uint8Array(this['dataView']['buffer'],b,a);return this['shift'](a),c;}['readULEB'](){const a=this['bytePosition']+this['dataView']['byteOffset'],b=new Uint8Array(this['dataView']['buffer'],a),{value:c,length:d}=ulebDecode(b);return this['shift'](d),c;}['readVec'](a){const b=this['readULEB'](),c=[];for(let d=0x0;d<b;d++){c['push'](a(this,d,b));}return c;}}