{"version":3,"file":"rlp.cjs","sources":["../../../../../src/mods/rlp/rlp.ts"],"sourcesContent":["import { Cursor } from \"@hazae41/cursor\"\nimport { RlpList, RlpList55, RlpListUint16, RlpListUint24, RlpListUint32, RlpListUint8 } from \"./types/list.js\"\nimport { RlpString, RlpString1, RlpString55, RlpStringUint16, RlpStringUint24, RlpStringUint32, RlpStringUint8 } from \"./types/string.js\"\n\nexport type RlpType =\n  | RlpString\n  | RlpList\n\nexport type BytesOrBytesArray =\n  | Uint8Array\n  | BytesOrBytesArray[]\n\nexport function fromOrThrow(value: BytesOrBytesArray): RlpType {\n  if (Array.isArray(value))\n    return RlpList.fromOrThrow(value.map(fromOrThrow))\n  return RlpString.fromOrThrow(value)\n}\n\nexport function readOrThrow(cursor: Cursor) {\n  const first = cursor.getUint8OrThrow()\n\n  if (first < 0x80)\n    return RlpString1.readOrThrow(cursor)\n  if (first < 184)\n    return RlpString55.readOrThrow(cursor)\n  if (first === 184)\n    return RlpStringUint8.readOrThrow(cursor)\n  if (first === 185)\n    return RlpStringUint16.readOrThrow(cursor)\n  if (first === 186)\n    return RlpStringUint24.readOrThrow(cursor)\n  if (first === 187)\n    return RlpStringUint32.readOrThrow(cursor)\n  if (first < 192)\n    throw new Error(`String too long`)\n  if (first < 248)\n    return RlpList55.readOrThrow(cursor)\n  if (first === 248)\n    return RlpListUint8.readOrThrow(cursor)\n  if (first === 249)\n    return RlpListUint16.readOrThrow(cursor)\n  if (first === 250)\n    return RlpListUint24.readOrThrow(cursor)\n  if (first === 251)\n    return RlpListUint32.readOrThrow(cursor)\n  if (first < 256)\n    throw new Error(`List too long`)\n  throw new Error(`Unknown RLP type ${first}`)\n}"],"names":["RlpList","RlpString","RlpString1","RlpString55","RlpStringUint8","RlpStringUint16","RlpStringUint24","RlpStringUint32","RlpList55","RlpListUint8","RlpListUint16","RlpListUint24","RlpListUint32"],"mappings":";;;;;AAYM,SAAU,WAAW,CAAC,KAAwB,EAAA;AAClD,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,OAAOA,YAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACpD,IAAA,OAAOC,gBAAS,CAAC,WAAW,CAAC,KAAK,CAAC;AACrC;AAEM,SAAU,WAAW,CAAC,MAAc,EAAA;AACxC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE;IAEtC,IAAI,KAAK,GAAG,IAAI;AACd,QAAA,OAAOC,iBAAU,CAAC,WAAW,CAAC,MAAM,CAAC;IACvC,IAAI,KAAK,GAAG,GAAG;AACb,QAAA,OAAOC,kBAAW,CAAC,WAAW,CAAC,MAAM,CAAC;IACxC,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,qBAAc,CAAC,WAAW,CAAC,MAAM,CAAC;IAC3C,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,sBAAe,CAAC,WAAW,CAAC,MAAM,CAAC;IAC5C,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,sBAAe,CAAC,WAAW,CAAC,MAAM,CAAC;IAC5C,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,sBAAe,CAAC,WAAW,CAAC,MAAM,CAAC;IAC5C,IAAI,KAAK,GAAG,GAAG;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,eAAA,CAAiB,CAAC;IACpC,IAAI,KAAK,GAAG,GAAG;AACb,QAAA,OAAOC,cAAS,CAAC,WAAW,CAAC,MAAM,CAAC;IACtC,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,iBAAY,CAAC,WAAW,CAAC,MAAM,CAAC;IACzC,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,kBAAa,CAAC,WAAW,CAAC,MAAM,CAAC;IAC1C,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,kBAAa,CAAC,WAAW,CAAC,MAAM,CAAC;IAC1C,IAAI,KAAK,KAAK,GAAG;AACf,QAAA,OAAOC,kBAAa,CAAC,WAAW,CAAC,MAAM,CAAC;IAC1C,IAAI,KAAK,GAAG,GAAG;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,aAAA,CAAe,CAAC;AAClC,IAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAA,CAAE,CAAC;AAC9C;;;;;"}