{
  "version": 3,
  "sources": ["../../src/AbstractData.ts", "../../src/Data.ts"],
  "sourcesContent": ["import type { Hex } from '@xylabs/sdk-js'\n\nexport interface DataInstance {\n  base58: string\n  bytes: ArrayBufferLike\n  hex: Hex\n  keccak256: ArrayBufferLike\n}\n\nexport abstract class AbstractData implements DataInstance {\n  static is(value: unknown): value is AbstractData {\n    return value instanceof this\n  }\n\n  get length() {\n    return this.bytes.byteLength\n  }\n\n  abstract get base58(): string\n\n  abstract get bytes(): ArrayBufferLike\n\n  abstract get hex(): Hex\n\n  abstract get keccak256(): ArrayBufferLike\n}\n", "import { base16, base58 } from '@scure/base'\nimport type { Hex } from '@xylabs/sdk-js'\nimport {\n  assertEx, toArrayBuffer, toUint8Array,\n} from '@xylabs/sdk-js'\nimport { keccak256 } from 'ethers'\n\nimport { AbstractData } from './AbstractData.ts'\n\nfunction checkLength(bytes: ArrayBufferLike, length: number) {\n  assertEx(bytes.byteLength === length, () => `Length Mismatch: ${bytes.byteLength} !== ${length} => ${base16.encode(new Uint8Array(bytes))}`)\n}\n\nexport class Data extends AbstractData {\n  private _bytes?: ArrayBufferLike\n  private _length: number\n\n  constructor(length: number, bytes?: ArrayBufferLike, base?: number) {\n    super()\n    this._bytes = toUint8Array(bytes, length, base)?.buffer\n    this._length = length\n  }\n\n  static from(data: ArrayBuffer | undefined) {\n    return data ? new Data(data.byteLength, data) : undefined\n  }\n\n  get base58() {\n    checkLength(this.bytes, this._length)\n    return base58.encode(new Uint8Array(this.bytes))\n  }\n\n  get bytes() {\n    return assertEx(this._bytes, () => 'Data uninitialized')\n  }\n\n  get hex() {\n    checkLength(this.bytes, this._length)\n    return base16.encode(new Uint8Array(this.bytes)).toLowerCase() as Hex\n  }\n\n  get keccak256() {\n    checkLength(this.bytes, this._length)\n    return toArrayBuffer(keccak256(new Uint8Array(this.bytes)))\n  }\n}\n"],
  "mappings": ";AASO,IAAe,eAAf,MAAoD;AAAA,EACzD,OAAO,GAAG,OAAuC;AAC/C,WAAO,iBAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,MAAM;AAAA,EACpB;AASF;;;ACzBA,SAAS,QAAQ,cAAc;AAE/B;AAAA,EACE;AAAA,EAAU;AAAA,EAAe;AAAA,OACpB;AACP,SAAS,iBAAiB;AAI1B,SAAS,YAAY,OAAwB,QAAgB;AAC3D,WAAS,MAAM,eAAe,QAAQ,MAAM,oBAAoB,MAAM,UAAU,QAAQ,MAAM,OAAO,OAAO,OAAO,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;AAC7I;AAEO,IAAM,OAAN,MAAM,cAAa,aAAa;AAAA,EAC7B;AAAA,EACA;AAAA,EAER,YAAY,QAAgB,OAAyB,MAAe;AAClE,UAAM;AACN,SAAK,SAAS,aAAa,OAAO,QAAQ,IAAI,GAAG;AACjD,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,OAAO,KAAK,MAA+B;AACzC,WAAO,OAAO,IAAI,MAAK,KAAK,YAAY,IAAI,IAAI;AAAA,EAClD;AAAA,EAEA,IAAI,SAAS;AACX,gBAAY,KAAK,OAAO,KAAK,OAAO;AACpC,WAAO,OAAO,OAAO,IAAI,WAAW,KAAK,KAAK,CAAC;AAAA,EACjD;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,SAAS,KAAK,QAAQ,MAAM,oBAAoB;AAAA,EACzD;AAAA,EAEA,IAAI,MAAM;AACR,gBAAY,KAAK,OAAO,KAAK,OAAO;AACpC,WAAO,OAAO,OAAO,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE,YAAY;AAAA,EAC/D;AAAA,EAEA,IAAI,YAAY;AACd,gBAAY,KAAK,OAAO,KAAK,OAAO;AACpC,WAAO,cAAc,UAAU,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC;AAAA,EAC5D;AACF;",
  "names": []
}
