UNPKG

wowok

Version:

Wowok Blockchain TypeScript API

1 lines 559 B
export function ulebEncode(a){let b=BigInt(a);const c=[];let d=0x0;if(b===0x0n)return[0x0];while(b>0x0){c[d]=Number(b&0x7fn),b>>=0x7n,b>0x0n&&(c[d]|=0x80),d+=0x1;}return c;}export function ulebDecode(a){let b=0x0n,c=0x0n,d=0x0;while(!![]){if(d>=a['length'])throw new Error('ULEB\x20decode\x20error:\x20buffer\x20overflow');const e=a[d];d+=0x1,b+=BigInt(e&0x7f)<<c;if((e&0x80)===0x0)break;c+=0x7n;}if(b>BigInt(Number['MAX_SAFE_INTEGER']))throw new Error('ULEB\x20decode\x20error:\x20value\x20exceeds\x20MAX_SAFE_INTEGER');return{'value':Number(b),'length':d};}