UNPKG

@xlink-network/xlink-sdk

Version:
1 lines 3.17 kB
{"version":3,"sources":["../src/utils/hexHelpers.ts"],"sourcesContent":["import { XLinkSDKErrorBase } from \"./errors\"\n\n/**\n * https://github.com/wevm/viem/blob/d2f93e726df1ab1ff86098d68a4406f6fae315b8/src/utils/encoding/toBytes.ts#L150-L175\n */\nexport function decodeHex(hex: string): Uint8Array {\n let hexString = hex.startsWith(\"0x\") ? hex.slice(2) : hex\n if (hexString.length % 2) hexString = `0${hexString}`\n\n const length = hexString.length / 2\n const bytes = new Uint8Array(length)\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++))\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++))\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new XLinkSDKErrorBase(\n `Invalid byte sequence (\"${hexString[j - 2]}${\n hexString[j - 1]\n }\" in \"${hexString}\").`,\n )\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight\n }\n return bytes\n}\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n} as const\nfunction charCodeToBase16(char: number): undefined | number {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10)\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10)\n return undefined\n}\n\n/**\n * https://github.com/wevm/viem/blob/d2f93e726df1ab1ff86098d68a4406f6fae315b8/src/utils/encoding/toHex.ts#L131-L143\n */\nexport function encodeHex(value: Uint8Array): string {\n let string = \"\"\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]]\n }\n return string\n}\nconst hexes = Array.from({ length: 256 }, (_v, i) =>\n i.toString(16).padStart(2, \"0\"),\n)\n\nexport function encodeZeroPrefixedHex(value: Uint8Array): string {\n return `0x${encodeHex(value)}`\n}\n"],"mappings":";;;;;AAKO,SAAS,UAAU,KAAyB;AACjD,MAAI,YAAY,IAAI,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI;AACtD,MAAI,UAAU,SAAS,EAAG,aAAY,IAAI,SAAS;AAEnD,QAAM,SAAS,UAAU,SAAS;AAClC,QAAM,QAAQ,IAAI,WAAW,MAAM;AACnC,WAAS,QAAQ,GAAG,IAAI,GAAG,QAAQ,QAAQ,SAAS;AAClD,UAAM,aAAa,iBAAiB,UAAU,WAAW,GAAG,CAAC;AAC7D,UAAM,cAAc,iBAAiB,UAAU,WAAW,GAAG,CAAC;AAC9D,QAAI,eAAe,UAAa,gBAAgB,QAAW;AACzD,YAAM,IAAI;AAAA,QACR,2BAA2B,UAAU,IAAI,CAAC,CAAC,GACzC,UAAU,IAAI,CAAC,CACjB,SAAS,SAAS;AAAA,MACpB;AAAA,IACF;AACA,UAAM,KAAK,IAAI,aAAa,KAAK;AAAA,EACnC;AACA,SAAO;AACT;AACA,IAAM,cAAc;AAAA,EAClB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AACA,SAAS,iBAAiB,MAAkC;AAC1D,MAAI,QAAQ,YAAY,QAAQ,QAAQ,YAAY;AAClD,WAAO,OAAO,YAAY;AAC5B,MAAI,QAAQ,YAAY,KAAK,QAAQ,YAAY;AAC/C,WAAO,QAAQ,YAAY,IAAI;AACjC,MAAI,QAAQ,YAAY,KAAK,QAAQ,YAAY;AAC/C,WAAO,QAAQ,YAAY,IAAI;AACjC,SAAO;AACT;AAKO,SAAS,UAAU,OAA2B;AACnD,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAU,MAAM,MAAM,CAAC,CAAC;AAAA,EAC1B;AACA,SAAO;AACT;AACA,IAAM,QAAQ,MAAM;AAAA,EAAK,EAAE,QAAQ,IAAI;AAAA,EAAG,CAAC,IAAI,MAC7C,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAChC;AAEO,SAAS,sBAAsB,OAA2B;AAC/D,SAAO,KAAK,UAAU,KAAK,CAAC;AAC9B;","names":[]}