solidity-codecs 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/solidity-codecs.cjs.development.js +2 -2
- package/dist/solidity-codecs.cjs.development.js.map +2 -2
- package/dist/solidity-codecs.cjs.production.min.js +1 -1
- package/dist/solidity-codecs.cjs.production.min.js.map +2 -2
- package/dist/solidity-codecs.js +2 -2
- package/dist/solidity-codecs.js.map +2 -2
- package/dist/solidity-codecs.mjs +2 -2
- package/dist/solidity-codecs.mjs.map +2 -2
- package/package.json +1 -1
@@ -216,7 +216,7 @@ var getCodec = (nBytes) => {
|
|
216
216
|
result = result << 64n | bytes33.v.getBigUint64(idx);
|
217
217
|
bytes33.i = nextBlock;
|
218
218
|
return result;
|
219
|
-
}), "uint" + nBytes);
|
219
|
+
}), "uint" + nBytes * 8);
|
220
220
|
};
|
221
221
|
var [
|
222
222
|
uint8,
|
@@ -401,7 +401,7 @@ var getCodec2 = (nBytes) => {
|
|
401
401
|
bytes33.i += 32;
|
402
402
|
return result;
|
403
403
|
});
|
404
|
-
return createCodec(enc, dec, "int" + nBytes);
|
404
|
+
return createCodec(enc, dec, "int" + nBytes * 8);
|
405
405
|
};
|
406
406
|
var [
|
407
407
|
int8,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../src/index.ts", "../src/internal/createCodec.ts", "../src/internal/toInternalBytes.ts", "../src/internal/range32.ts", "../src/utils.ts", "../src/codecs/address.ts", "../src/codecs/Uint.ts", "../src/codecs/bool.ts", "../src/codecs/bytes.ts", "../src/codecs/str.ts", "../src/codecs/BytesX.ts", "../src/codecs/Int.ts", "../src/codecs/Fixed.ts", "../src/codecs/Tuple.ts", "../src/codecs/Struct.ts", "../src/codecs/Vector.ts"],
|
4
|
-
"sourcesContent": ["export * from \"./utils\"\nexport * from \"./types\"\nexport * from \"./codecs\"\n", "import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
-
"mappings": "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
|
4
|
+
"sourcesContent": ["export * from \"./utils\"\nexport * from \"./types\"\nexport * from \"./codecs\"\n", "import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes * 8,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes * 8)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,cAAc,CACzB,SACA,SACA,aACa;AACb;AAAC,EAAC,QAAgB,IAAI;AACrB,EAAC,QAAgB,IAAI;AACtB,QAAM,SAAS,CAAC,SAAS,OAAO;AAChC,SAAO,MAAM;AACb,SAAO,MAAM;AACb,SAAO,IAAI;AACX,SAAO;AACT;;;ACdA,mBAAwB;AAGxB,uCAAiC,WAAW;AAAA,EAI1C,YAAY,QAAqB;AAC/B,UAAM,MAAM;AAJd,6BAAY;AACZ;AAIE,SAAK,IAAI,IAAI,SAAS,MAAM;AAAA,EAC9B;AACF;AAEO,IAAM,kBAAkB,CAC7B,OAEC,CAAC,WACA,GACE,kBAAkB,qBACd,SACA,IAAI,mBACF,kBAAkB,aACd,OAAO,SACP,OAAO,WAAW,WAClB,0BAAQ,MAAM,EAAE,SAChB,MACN,CACN;;;AC3BG,IAAM,UAAU,MAAM,EAAE,EAC5B,KAAK,CAAC,EACN,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC;;;ACA1B,kBAA2B;AAEpB,IAAM,SAAS;AAEtB,IAAM,MAAM,CACV,OACA,WACM;AACN,MAAI,MAAM;AAAG,WAAO,IAAI;AACxB,SAAO,IAAI,MAAM;AACjB,SAAO;AACT;AAEO,IAAM,iBAAiB,CAC5B,SACA,WACe,IAAI,SAAU,CAAC,UAAU,QAAQ,OAAO,KAAK,CAAC,CAAgB;AAExE,IAAM,iBAAiB,CAC5B,SACA,WACe,IAAI,SAAU,CAAC,UAAU,OAAO,QAAQ,KAAK,CAAC,CAAgB;AAExE,IAAM,eAAe,CAC1B,OACA,QACA,WAEA,IACE,OACA,YACE,eAAe,MAAM,IAAI,MAAM,GAC/B,eAAe,MAAM,IAAI,MAAM,GAC/B,MAAM,CACR,CACF;;;ACrCF,oBAA+B;AAIxB,IAAM,UAAU,YACrB,CAAC,UAAkB;AACjB,QAAM,SAAS,IAAI,WAAW,EAAE;AAChC,SAAO,IAAI,2BAAQ,KAAK,GAAG,EAAE;AAC7B,SAAO;AACT,GACA,gBAAgB,CAAC,YAAU;AACzB,QAAM,gBAAgB,IAAI,WAAW,QAAM,QAAQ,QAAM,IAAI,IAAI,EAAE;AACnE,UAAM,KAAK;AACX,QAAM,cAAc,yBAAM,aAAa;AACvC,QAAM,eAAe,yBAAM,OAAO,YAAY,MAAM,CAAC,CAAC,CAAC;AAEvD,QAAM,SAAS,IAAI,MAAM,EAAE;AAC3B,SAAO,KAAK;AACZ,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,UAAM,OAAO,YAAY;AACzB,WAAO,KAAK,SAAS,aAAa,IAAI,EAAE,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI;AAAA,EAC3E;AAEA,SAAO,OAAO,KAAK,EAAE;AACvB,CAAC,GACD,SACF;;;ACvBA,IAAM,WAAW,CAAC,WAAkC;AAClD,QAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,SAAO,YACL,CAAC,UAAU;AACT,UAAM,SAAS,IAAI,WAAW,EAAE;AAChC,UAAM,KAAK,IAAI,SAAS,OAAO,MAAM;AAErC,UAAM,WAAW,KAAK,MAAM;AAC5B,aAAS,MAAM,IAAI,OAAO,UAAU,OAAO,GAAG;AAC5C,SAAG,aAAa,KAAK,KAAK;AAC1B,gBAAU;AAAA,IACZ;AAEA,WAAO;AAAA,EACT,GACA,gBAAgB,CAAC,YAAU;AACzB,QAAI,SAAS;AAEb,UAAM,YAAY,QAAM,IAAI;AAC5B,aAAS,MAAM,QAAM,IAAK,MAAK,MAAM,IAAI,MAAM,WAAW,OAAO;AAC/D,eAAU,UAAU,MAAO,QAAM,EAAE,aAAa,GAAG;AAErD,YAAM,IAAI;AACV,WAAO;AAAA,EACT,CAAC,GACD,SAAS,SAAS,CACpB;AACF;AAEO,IAAM;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IACE,QAAQ,IAAI,QAAQ;AACjB,IAAM,OAAO;;;AC9DpB,IAAM,OAAO,OAAO,OAAO,CAAC,GAAG,KAAK;AACpC,KAAK,IAAI;AAEF,IAAM,OAAuB,aAClC,MACA,CAAC,UAAoB,QAAQ,KAAK,IAClC,OACF;;;ACXA,oBAA2B;AAK3B,IAAM,WAAY,CAAC,QAAQ;AACzB,QAAM,OAAO,CAAC,KAAK,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG;AAC9C,QAAM,QAAQ,IAAI,SAAS;AAC3B,MAAI,QAAQ,GAAG;AACb;AAAC,IAAC,KAAa,KAAK,IAAI,WAAW,KAAK,KAAK,CAAC;AAAA,EAChD;AACA,SAAO,8BAAW,GAAG,IAAI;AAC3B;AACA,SAAS,IAAI;AAEb,IAAM,WAAgC,gBAAgB,CAAC,YAAU;AAC/D,MAAI,YAAY,OAAO,KAAK,GAAG,OAAK,CAAC;AACrC,QAAM,SAAS,IAAI,WAAW,QAAM,QAAQ,QAAM,GAAG,SAAS;AAC9D,UAAM,KAAK;AACX,QAAM,QAAQ,YAAY;AAC1B,MAAI,QAAQ;AAAG,YAAM,KAAK,KAAK;AAC/B,SAAO;AACT,CAAC;AACD,SAAS,IAAI;AAEN,IAAM,QAAQ,YAAY,UAAU,UAAU,OAAO;AAC5D,MAAM,IAAI;;;ACvBV,IAAM,cAAc,IAAI,YAAY;AACpC,IAAM,cAAc,IAAI,YAAY;AAEpC,IAAM,QAAO,OAAO,OAAO,CAAC,GAAG,KAAK;AACpC,MAAK,IAAI;AAEF,IAAM,MAAM,aACjB,OACA,YAAY,OAAO,KAAK,WAAW,GACnC,YAAY,OAAO,KAAK,WAAW,CACrC;;;ACVA,IAAM,YAAW,CAAC,WACf,CAAC,YAAU;AACV,MAAI,QAAM,WAAW,UAAU,WAAW;AAAI,WAAO;AACrD,QAAM,SAAS,IAAI,WAAW,EAAE;AAChC,SAAO,IAAI,QAAM,WAAW,SAAS,UAAQ,QAAM,MAAM,GAAG,MAAM,CAAC;AACnE,SAAO;AACT;AAEF,IAAM,YAAW,CAAC,WAChB,gBAAgB,CAAC,YAAU;AACzB,QAAM,SAAS,IAAI,WAAW,QAAM,QAAQ,QAAM,GAAG,MAAM;AAC3D,UAAM,KAAK;AACX,SAAO;AACT,CAAC;AAEI,IAAM;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IACE,QAAQ,IACV,CAAC,WACC,YAAY,UAAS,MAAM,GAAG,UAAS,MAAM,GAAG,UAAU,MAAM,CACpE;;;ACnDA,IAAM,cAAyE;AAAA,EAC7E,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,IAAM,cAAyE;AAAA,EAC7E,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,IAAM,eAGF;AAAA,EACF,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,IAAM,eAGF;AAAA,EACF,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,IAAM,YAAW,CAAC,WAAkC;AAClD,QAAM,MAAO,SAAS,IAAK;AAC3B,QAAM,MAAQ,SAAS,IAAK,IAAK;AACjC,QAAM,WAAW;AAAA,IACf,GAAG,MAAM,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,MAAc,CAAC,CAAC;AAAA,IAC7C,GAAG,MAAM,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,MAAc,OAAO,IAAI,MAAM,CAAC,CAAC;AAAA,EAChE;AACA,MAAI,SAAS;AAAG,aAAS,KAAK,CAAC,GAAG,IAAI,CAAC,MAAc,OAAO,IAAI,IAAI,CAAC,CAAC;AAEtE,QAAM,MAAO,CAAC,UAAU;AACtB,UAAM,SAAS,IAAI,WAAW,EAAE;AAChC,UAAM,KAAK,IAAI,SAAS,OAAO,MAAM;AAErC,QAAI,QAAQ,IAAI;AACd,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAAG,WAAG,YAAY,GAAG,CAAC,EAAE;AAAA,IAChE;AAEA,QAAI,MAAM;AACV,aAAS,IAAI,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK;AAC5C,YAAM,CAAC,SAAO,OAAO,OAAM,SAAS;AACpC,aAAO;AACP,SAAG,aAAa,UAAQ,KAAK,IAAG,KAAK,CAAU;AAC/C,gBAAU;AAAA,IACZ;AACA,UAAM,CAAC,SAAO,EAAE,MAAM,SAAS;AAC/B,WAAO;AACP,OAAG,YAAY,UAAQ,KAAK,GAAG,KAAK,CAAU;AAE9C,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,gBAAgB,CAAC,YAAU;AACrC,QAAI,MAAM,QAAM,IAAI,KAAK;AAEzB,UAAM,OAAO,SAAS,GAAG;AACzB,QAAI,SAAS,OAAO,QAAM,EAAE,YAAY,OAAO,GAAG,CAAC;AACnD,WAAO;AAEP,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,YAAM,CAAC,OAAM,SAAS,SAAS;AAC/B,eAAU,UAAU,QAAS,OAAO,QAAM,EAAE,aAAa,QAAO,GAAG,CAAC;AACpE,aAAO;AAAA,IACT;AAEA,YAAM,KAAK;AACX,WAAO;AAAA,EACT,CAAC;AAED,SAAO,YAAY,KAAK,KAAK,QAAQ,SAAS,CAAC;AACjD;AAEO,IAAM;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IACE,QAAQ,IAAI,SAAQ;AACjB,IAAM,MAAM;;;AC9GZ,IAAM,QAAQ,CACnB,WACA,aACG;AACH,QAAM,eAAe,UAAU;AAC/B,QAAM,aAAa,OAAO,OAAO,CAAC,GAAG,SAAS;AAC9C,aAAW,IACR,cAAa,OAAO,MACjB,WAAW,aAAa,MAAM,CAAC,IAC/B,UAAU,aAAa,MAAM,CAAC,KAClC,MACA;AACF,SAAO,aACL,YACA,CAAC,MAAM,EAAE,OACT,CAAC,UAAW,GAAE,OAAO,SAAS,EAChC;AACF;;;ACzBA,oBAA2B;AAK3B,IAAM,aAAa,IAId,aACkB;AACrB,QAAM,MAAO,CAAC,WAAW;AACvB,UAAM,SAAS,OAAO,IAAI,CAAC,OAAO,QAAQ,SAAS,KAAK,KAAK,CAAC;AAC9D,UAAM,cAAc,IAAI,MAAkB,SAAS,MAAM;AACzD,UAAM,WAAW,CAAC;AAClB,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAI,SAAS,GAAG,GAAG;AACjB,iBAAS,KAAK,CAAC;AACf,eAAO;AAAA,MACT,OAAO;AACL,oBAAY,KAAK,OAAO;AACxB,eAAO,OAAO,OAAO,GAAG,MAAM;AAAA,MAChC;AAAA,IACF;AAEA,aAAS,QAAQ,CAAC,QAAQ;AACxB,kBAAY,OAAO,KAAK,GAAG,GAAG;AAC9B,YAAM,OAAO,OAAO;AACpB,kBAAY,KAAK,IAAI;AACrB,aAAO,OAAO,KAAK,MAAM;AAAA,IAC3B,CAAC;AAED,WAAO,8BAAW,GAAG,WAAW;AAAA,EAClC;AAEA,MAAI,IAAI;AACR,SAAO;AACT;AAEA,IAAM,YAAY,IAIb,aAEF,CAAC,WACA,8BAAW,GAAG,OAAO,IAAI,CAAC,OAAO,QAAQ,SAAS,KAAK,KAAK,CAAC,CAAC;AAIlE,IAAM,YAAY,IAIb,aAEH,gBACE,CAAC,YAAU,SAAS,IAAI,CAAC,YAAY,QAAQ,OAAK,CAAC,CACrD;AACF,IAAM,aAAa,IAId,aACkB;AACrB,QAAM,MAAwB,gBAAgB,CAAC,YAAU;AACvD,UAAM,SAAS,IAAI,MAAM,SAAS,MAAM;AACxC,QAAI,QAAQ,QAAM;AAClB,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAI,SAAS,GAAG,GAAG;AACjB,cAAM,SAAS,OAAO,KAAK,GAAG,OAAK,CAAC;AACpC,cAAM,UAAU,QAAM;AACtB,gBAAM,IAAI,QAAQ;AAClB,eAAO,KAAK,SAAS,GAAG,OAAK;AAC7B,gBAAM,IAAI;AAAA,MACZ,OAAO;AACL,eAAO,KAAK,SAAS,GAAG,OAAK;AAAA,MAC/B;AAAA,IACF;AACA,WAAO;AAAA,EACT,CAAC;AACD,MAAI,IAAI;AACR,SAAO;AACT;AAEO,IAAM,QAAQ,IAIhB,WACgB;AACnB,QAAM,QAAQ,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;AACpC,QAAM,CAAC,KAAK,OAAO,QACd,CAAC,YAAY,UAAU,IACvB,CAAC,WAAW,SAAS;AAE1B,QAAM,MAAsB,YAC1B,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC,aAAa,OAAO,CAAC,GACzC,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC,EAAE,aAAa,OAAO,CAAC,GAC3C,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,GAAG,IACrC;AACA,MAAI,IAAI;AACR,SAAO;AACT;;;ACpGO,IAAM,SAAS,CAIpB,WACc;AACd,QAAM,OAAO,OAAO,KAAK,MAAM;AAC/B,SAAO,aACL,MAAM,GAAG,OAAO,OAAO,MAAM,CAAC,GAC9B,CAAC,UAAc,KAAK,IAAI,CAAC,MAAM,MAAM,EAAE,GACvC,CAAC,UACC,OAAO,YAAY,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CACpE;AACF;;;ACjBA,qBAA2B;AAK3B,IAAM,YAAY,CAAI,OAAmB,SAAqC;AAC5E,QAAM,SAAU,CAAC,UAAU;AACzB,UAAM,aAAa,QAAQ,OAAO,IAAI;AACtC,UAAM,aAAa,aAAa,MAAM,SAAS;AAC/C,QAAI;AACJ,QAAI,MAAM,GAAG;AACX,aAAO,IAAI,MAAkB,aAAa,CAAC;AAC3C,UAAI,SAAS,aAAa;AAC1B,eAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACnC,cAAM,UAAU,MAAM,MAAM,EAAE;AAC9B,aAAK,KAAK,KAAK,IAAI,OAAO,MAAM,CAAC;AACjC,kBAAU,QAAQ;AAClB,aAAK,IAAI,cAAc;AAAA,MACzB;AAAA,IACF,OAAO;AACL,aAAO,IAAI,MAAkB,UAAU;AACvC,eAAS,IAAI,GAAG,IAAI,YAAY;AAAK,aAAK,KAAK,MAAM,MAAM,EAAE;AAAA,IAC/D;AACA,QAAI;AAAY,WAAM,QAAQ,KAAK,IAAI,OAAO,MAAM,MAAM,CAAC,CAAC;AAC5D,WAAO,+BAAW,GAAG,IAAI;AAAA,EAC3B;AACA,SAAO,IAAI;AACX,SAAO;AACT;AAEA,IAAM,YAAY,CAAI,QAAoB,SAAqC;AAC7E,QAAM,UAAU,gBAAgB,CAAC,YAAU;AACzC,UAAM,YAAY,QAAS,IAAI,OAAQ,OAAO,KAAK,GAAG,OAAK,CAAC;AAC5D,UAAM,UAAU,IAAI,MAAM,SAAS;AAEnC,QAAI,OAAO,GAAG;AACZ,YAAM,OAAO,QAAM;AACnB,UAAI,UAAU;AACd,eAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAClC,gBAAM,IAAI;AACV,cAAM,SAAS,OAAO,KAAK,IAAI,OAAK,CAAC;AACrC,kBAAU,QAAM;AAChB,gBAAM,IAAI,OAAO;AACjB,gBAAQ,KAAK,OAAO,OAAK;AAAA,MAC3B;AAAA,IACF,OAAO;AACL,eAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAClC,gBAAQ,KAAK,OAAO,OAAK;AAAA,MAC3B;AAAA,IACF;AAEA,WAAO;AAAA,EACT,CAAC;AACD,UAAQ,IAAI;AACZ,SAAO;AACT;AAEO,IAAM,SAAS,CAAI,OAAiB,SAAmC;AAC5E,QAAM,QAAQ,YACZ,UAAU,MAAM,IAAI,IAAI,GACxB,UAAU,MAAM,IAAI,IAAI,GACxB,MAAM,IAAI,IAAI,QAAQ,OAAO,KAAK,OACpC;AACA,MAAI,QAAQ;AAAM,UAAM,IAAI;AAC5B,SAAO;AACT;",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
var D=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var z=(t,e,n)=>e in t?D(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var tt=(t,e)=>{for(var n in e)D(t,n,{get:e[n],enumerable:!0})},et=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Y(e))!Z.call(t,s)&&s!==n&&D(t,s,{get:()=>e[s],enumerable:!(r=X(e,s))||r.enumerable});return t};var nt=t=>et(D({},"__esModule",{value:!0}),t);var U=(t,e,n)=>(z(t,typeof e!="symbol"?e+"":e,n),n);var on={};tt(on,{Fixed:()=>Ye,Struct:()=>M,Tuple:()=>C,Vector:()=>P,address:()=>j,bool:()=>R,bytes:()=>A,bytes1:()=>Rt,bytes10:()=>Mt,bytes11:()=>Jt,bytes12:()=>Pt,bytes13:()=>Qt,bytes14:()=>Wt,bytes15:()=>Xt,bytes16:()=>Yt,bytes17:()=>Zt,bytes18:()=>zt,bytes19:()=>te,bytes2:()=>Vt,bytes20:()=>ee,bytes21:()=>ne,bytes22:()=>re,bytes23:()=>oe,bytes24:()=>ie,bytes25:()=>se,bytes26:()=>ce,bytes27:()=>ae,bytes28:()=>de,bytes29:()=>me,bytes3:()=>Ht,bytes30:()=>ue,bytes31:()=>fe,bytes32:()=>pe,bytes4:()=>Ft,bytes5:()=>Gt,bytes6:()=>Lt,bytes7:()=>_t,bytes8:()=>$t,bytes9:()=>qt,enhanceCodec:()=>l,enhanceDecoder:()=>K,enhanceEncoder:()=>v,int:()=>Xe,int104:()=>ve,int112:()=>Ke,int120:()=>je,int128:()=>Se,int136:()=>Ne,int144:()=>Re,int152:()=>Ve,int16:()=>De,int160:()=>He,int168:()=>Fe,int176:()=>Ge,int184:()=>Le,int192:()=>_e,int200:()=>$e,int208:()=>qe,int224:()=>Je,int226:()=>Me,int232:()=>Pe,int24:()=>Te,int240:()=>Qe,int248:()=>We,int256:()=>q,int32:()=>Ce,int40:()=>Ue,int48:()=>Ie,int56:()=>he,int64:()=>Oe,int72:()=>Ee,int8:()=>be,int80:()=>we,int88:()=>ke,int96:()=>Be,keccak:()=>I,str:()=>$,uint:()=>f,uint104:()=>yt,uint112:()=>gt,uint120:()=>xt,uint128:()=>At,uint136:()=>bt,uint144:()=>Dt,uint152:()=>Tt,uint16:()=>ot,uint160:()=>Ct,uint168:()=>Ut,uint176:()=>It,uint184:()=>ht,uint192:()=>Ot,uint200:()=>Et,uint208:()=>wt,uint224:()=>Bt,uint226:()=>kt,uint232:()=>vt,uint24:()=>it,uint240:()=>Kt,uint248:()=>jt,uint256:()=>S,uint32:()=>st,uint40:()=>ct,uint48:()=>at,uint56:()=>dt,uint64:()=>mt,uint72:()=>ut,uint8:()=>O,uint80:()=>ft,uint88:()=>pt,uint96:()=>lt});module.exports=nt(on);var d=(t,e,n)=>{t.s=n,e.s=n;let r=[t,e];return r.enc=t,r.dec=e,r.s=n,r};var k=require("@unstoppablejs/utils"),T=class extends Uint8Array{constructor(n){super(n);U(this,"i",0);U(this,"v");this.v=new DataView(n)}},m=t=>e=>t(e instanceof T?e:new T(e instanceof Uint8Array?e.buffer:typeof e=="string"?(0,k.fromHex)(e).buffer:e));var g=Array(32).fill(0).map((t,e)=>e+1);var B=require("@noble/hashes/sha3"),I=B.keccak_256,h=(t,e)=>(t.d&&(e.d=!0),e.s=t.s,e),v=(t,e)=>h(t,n=>t(e(n))),K=(t,e)=>h(t,n=>e(t(n))),l=(t,e,n)=>h(t,d(v(t[0],e),K(t[1],n),t.s));var x=require("@unstoppablejs/utils");var j=d(t=>{let e=new Uint8Array(32);return e.set((0,x.fromHex)(t),12),e},m(t=>{let e=new Uint8Array(t.buffer,t.i+12,20);t.i+=32;let n=(0,x.toHex)(e),r=(0,x.toHex)(I(n.slice(2))),s=new Array(41);s[0]="0x";for(let i=2;i<42;i++){let o=n[i];s.push(parseInt(r[i],16)>7?o.toUpperCase():o)}return s.join("")}),"address");var rt=t=>{let e=Math.ceil(t/8);return d(n=>{let r=new Uint8Array(32),s=new DataView(r.buffer),i=32-e*8;for(let o=24;o>=i;o-=8)s.setBigUint64(o,n),n>>=64n;return r},m(n=>{let r=0n,s=n.i+32;for(let i=n.i+(32-e*8);i<s;i+=8)r=r<<64n|n.v.getBigUint64(i);return n.i=s,r}),"uint"+t)},[O,ot,it,st,ct,at,dt,mt,ut,ft,pt,lt,yt,gt,xt,At,bt,Dt,Tt,Ct,Ut,It,ht,Ot,Et,wt,kt,Bt,vt,Kt,jt,S]=g.map(rt),f=S;var N=Object.assign([],O);N.s="bool";var R=l(N,t=>t?1n:0n,Boolean);var V=require("@unstoppablejs/utils");var H=t=>{let e=[f[0](BigInt(t.length)),t],n=t.length%32;return n>0&&e.push(new Uint8Array(32-n)),(0,V.mergeUint8)(...e)};H.d=!0;var F=m(t=>{let e=Number(f[1](t)),n=new Uint8Array(t.buffer,t.i,e);t.i+=e;let r=e%32;return r>0&&(t.i+=32-r),n});F.d=!0;var A=d(H,F,"bytes");A.d=!0;var G=new TextEncoder,L=new TextDecoder,_=Object.assign([],A);_.s="string";var $=l(_,G.encode.bind(G),L.decode.bind(L));var St=t=>e=>{if(e.length===t&&t===32)return e;let n=new Uint8Array(32);return n.set(e.length===t?e:e.slice(0,t)),n},Nt=t=>m(e=>{let n=new Uint8Array(e.buffer,e.i,t);return e.i+=32,n}),[Rt,Vt,Ht,Ft,Gt,Lt,_t,$t,qt,Mt,Jt,Pt,Qt,Wt,Xt,Yt,Zt,zt,te,ee,ne,re,oe,ie,se,ce,ae,de,me,ue,fe,pe]=g.map(t=>d(St(t),Nt(t),"bytes"+t));var le={"1":"getInt8","2":"getInt16","8":"getBigInt64"},ye={"1":"setInt8","2":"setInt16","8":"setBigInt64"},ge={"1":"getUint8","2":"getUint16","8":"getBigUint64"},xe={"1":"setUint8","2":"setUint16","8":"setBigUint64"},Ae=t=>{let e=t/8|0,n=t%8/2|0,r=[...Array(e).fill([8,64n,o=>o]),...Array(n).fill([2,16n,o=>Number(o&65535n)])];t%2&&r.push([1,8n,o=>Number(o&255n)]);let s=o=>{let c=new Uint8Array(32),a=new DataView(c.buffer);if(o<0n)for(let p=0;p<32-t;p+=8)a.setBigInt64(p,-1n);let u=32;for(let p=r.length-1;p>0;p--){let[w,Q,W]=r[p];u-=w,a[xe[w]](u,W(o)),o>>=Q}let[y,,b]=r[0];return u-=y,a[ye[y]](u,b(o)),c},i=m(o=>{let c=o.i+32-t,a=r[0][0],u=BigInt(o.v[le[a]](c));c+=a;for(let y=1;y<r.length;y++){let[b,p]=r[y];u=u<<p|BigInt(o.v[ge[b]](c)),c+=b}return o.i+=32,u});return d(s,i,"int"+t)},[be,De,Te,Ce,Ue,Ie,he,Oe,Ee,we,ke,Be,ve,Ke,je,Se,Ne,Re,Ve,He,Fe,Ge,Le,_e,$e,qe,Me,Je,Pe,Qe,We,q]=g.map(Ae),Xe=q;var Ye=(t,e)=>{let n=t.s,r=Object.assign([],t);return r.s=(n[0]==="u"?"ufixed"+n.slice(4):"fixed"+n.slice(3))+"x"+e,l(r,s=>s.value,s=>({value:s,decimals:e}))};var E=require("@unstoppablejs/utils");var Ze=(...t)=>{let e=n=>{let r=n.map((c,a)=>t[a](c)),s=new Array(t.length),i=[],o=0n;for(let c=0;c<t.length;c++)t[c].d?(i.push(c),o+=32n):(s[c]=r[c],o+=BigInt(r[c].length));return i.forEach(c=>{s[c]=f[0](o);let a=r[c];s.push(a),o+=BigInt(a.length)}),(0,E.mergeUint8)(...s)};return e.d=!0,e},ze=(...t)=>e=>(0,E.mergeUint8)(...e.map((n,r)=>t[r](n))),tn=(...t)=>m(e=>t.map(n=>n(e))),en=(...t)=>{let e=m(n=>{let r=new Array(t.length),s=n.i;for(let i=0;i<t.length;i++)if(t[i].d){let o=Number(f[1](n)),c=n.i;n.i=s+o,r[i]=t[i](n),n.i=c}else r[i]=t[i](n);return r});return e.d=!0,e},C=(...t)=>{let e=t.some(i=>i.d),[n,r]=e?[Ze,en]:[ze,tn],s=d(n(...t.map(([i])=>i)),r(...t.map(([,i])=>i)),`(${t.map(i=>i.s).join(",")})`);return s.d=e,s};var M=t=>{let e=Object.keys(t);return l(C(...Object.values(t)),n=>e.map(r=>n[r]),n=>Object.fromEntries(n.map((r,s)=>[e[s],r])))};var J=require("@unstoppablejs/utils");var nn=(t,e)=>{let n=r=>{let s=e==null?1:0,i=s?r.length:e,o;if(t.d){o=new Array(i*2);let c=i*32;for(let a=0;a<i;a++){let u=t(r[a]);o[a]=f.enc(BigInt(c)),c+=u.byteLength,o[a+i]=u}}else{o=new Array(i);for(let c=0;c<i;c++)o[c]=t(r[c])}return s&&o.unshift(f.enc(BigInt(r.length))),(0,J.mergeUint8)(...o)};return n.d=!0,n},rn=(t,e)=>{let n=m(r=>{let s=e>=0?e:Number(f[1](r)),i=new Array(s);if(t.d){let o=r.i,c=o;for(let a=0;a<s;a++){r.i=c;let u=Number(f.dec(r));c=r.i,r.i=o+u,i[a]=t(r)}}else for(let o=0;o<s;o++)i[o]=t(r);return i});return n.d=!0,n},P=(t,e)=>{let n=d(nn(t[0],e),rn(t[1],e),t.s+`[${e??""}]`);return e==null&&(n.d=!0),n};
|
1
|
+
var D=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var z=(t,e,n)=>e in t?D(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var tt=(t,e)=>{for(var n in e)D(t,n,{get:e[n],enumerable:!0})},et=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Y(e))!Z.call(t,s)&&s!==n&&D(t,s,{get:()=>e[s],enumerable:!(r=X(e,s))||r.enumerable});return t};var nt=t=>et(D({},"__esModule",{value:!0}),t);var U=(t,e,n)=>(z(t,typeof e!="symbol"?e+"":e,n),n);var on={};tt(on,{Fixed:()=>Ye,Struct:()=>M,Tuple:()=>C,Vector:()=>P,address:()=>j,bool:()=>R,bytes:()=>A,bytes1:()=>Rt,bytes10:()=>Mt,bytes11:()=>Jt,bytes12:()=>Pt,bytes13:()=>Qt,bytes14:()=>Wt,bytes15:()=>Xt,bytes16:()=>Yt,bytes17:()=>Zt,bytes18:()=>zt,bytes19:()=>te,bytes2:()=>Vt,bytes20:()=>ee,bytes21:()=>ne,bytes22:()=>re,bytes23:()=>oe,bytes24:()=>ie,bytes25:()=>se,bytes26:()=>ce,bytes27:()=>ae,bytes28:()=>de,bytes29:()=>me,bytes3:()=>Ht,bytes30:()=>ue,bytes31:()=>fe,bytes32:()=>pe,bytes4:()=>Ft,bytes5:()=>Gt,bytes6:()=>Lt,bytes7:()=>_t,bytes8:()=>$t,bytes9:()=>qt,enhanceCodec:()=>l,enhanceDecoder:()=>K,enhanceEncoder:()=>v,int:()=>Xe,int104:()=>ve,int112:()=>Ke,int120:()=>je,int128:()=>Se,int136:()=>Ne,int144:()=>Re,int152:()=>Ve,int16:()=>De,int160:()=>He,int168:()=>Fe,int176:()=>Ge,int184:()=>Le,int192:()=>_e,int200:()=>$e,int208:()=>qe,int224:()=>Je,int226:()=>Me,int232:()=>Pe,int24:()=>Te,int240:()=>Qe,int248:()=>We,int256:()=>q,int32:()=>Ce,int40:()=>Ue,int48:()=>Ie,int56:()=>he,int64:()=>Oe,int72:()=>Ee,int8:()=>be,int80:()=>we,int88:()=>ke,int96:()=>Be,keccak:()=>I,str:()=>$,uint:()=>f,uint104:()=>yt,uint112:()=>gt,uint120:()=>xt,uint128:()=>At,uint136:()=>bt,uint144:()=>Dt,uint152:()=>Tt,uint16:()=>ot,uint160:()=>Ct,uint168:()=>Ut,uint176:()=>It,uint184:()=>ht,uint192:()=>Ot,uint200:()=>Et,uint208:()=>wt,uint224:()=>Bt,uint226:()=>kt,uint232:()=>vt,uint24:()=>it,uint240:()=>Kt,uint248:()=>jt,uint256:()=>S,uint32:()=>st,uint40:()=>ct,uint48:()=>at,uint56:()=>dt,uint64:()=>mt,uint72:()=>ut,uint8:()=>O,uint80:()=>ft,uint88:()=>pt,uint96:()=>lt});module.exports=nt(on);var d=(t,e,n)=>{t.s=n,e.s=n;let r=[t,e];return r.enc=t,r.dec=e,r.s=n,r};var k=require("@unstoppablejs/utils"),T=class extends Uint8Array{constructor(n){super(n);U(this,"i",0);U(this,"v");this.v=new DataView(n)}},m=t=>e=>t(e instanceof T?e:new T(e instanceof Uint8Array?e.buffer:typeof e=="string"?(0,k.fromHex)(e).buffer:e));var g=Array(32).fill(0).map((t,e)=>e+1);var B=require("@noble/hashes/sha3"),I=B.keccak_256,h=(t,e)=>(t.d&&(e.d=!0),e.s=t.s,e),v=(t,e)=>h(t,n=>t(e(n))),K=(t,e)=>h(t,n=>e(t(n))),l=(t,e,n)=>h(t,d(v(t[0],e),K(t[1],n),t.s));var x=require("@unstoppablejs/utils");var j=d(t=>{let e=new Uint8Array(32);return e.set((0,x.fromHex)(t),12),e},m(t=>{let e=new Uint8Array(t.buffer,t.i+12,20);t.i+=32;let n=(0,x.toHex)(e),r=(0,x.toHex)(I(n.slice(2))),s=new Array(41);s[0]="0x";for(let i=2;i<42;i++){let o=n[i];s.push(parseInt(r[i],16)>7?o.toUpperCase():o)}return s.join("")}),"address");var rt=t=>{let e=Math.ceil(t/8);return d(n=>{let r=new Uint8Array(32),s=new DataView(r.buffer),i=32-e*8;for(let o=24;o>=i;o-=8)s.setBigUint64(o,n),n>>=64n;return r},m(n=>{let r=0n,s=n.i+32;for(let i=n.i+(32-e*8);i<s;i+=8)r=r<<64n|n.v.getBigUint64(i);return n.i=s,r}),"uint"+t*8)},[O,ot,it,st,ct,at,dt,mt,ut,ft,pt,lt,yt,gt,xt,At,bt,Dt,Tt,Ct,Ut,It,ht,Ot,Et,wt,kt,Bt,vt,Kt,jt,S]=g.map(rt),f=S;var N=Object.assign([],O);N.s="bool";var R=l(N,t=>t?1n:0n,Boolean);var V=require("@unstoppablejs/utils");var H=t=>{let e=[f[0](BigInt(t.length)),t],n=t.length%32;return n>0&&e.push(new Uint8Array(32-n)),(0,V.mergeUint8)(...e)};H.d=!0;var F=m(t=>{let e=Number(f[1](t)),n=new Uint8Array(t.buffer,t.i,e);t.i+=e;let r=e%32;return r>0&&(t.i+=32-r),n});F.d=!0;var A=d(H,F,"bytes");A.d=!0;var G=new TextEncoder,L=new TextDecoder,_=Object.assign([],A);_.s="string";var $=l(_,G.encode.bind(G),L.decode.bind(L));var St=t=>e=>{if(e.length===t&&t===32)return e;let n=new Uint8Array(32);return n.set(e.length===t?e:e.slice(0,t)),n},Nt=t=>m(e=>{let n=new Uint8Array(e.buffer,e.i,t);return e.i+=32,n}),[Rt,Vt,Ht,Ft,Gt,Lt,_t,$t,qt,Mt,Jt,Pt,Qt,Wt,Xt,Yt,Zt,zt,te,ee,ne,re,oe,ie,se,ce,ae,de,me,ue,fe,pe]=g.map(t=>d(St(t),Nt(t),"bytes"+t));var le={"1":"getInt8","2":"getInt16","8":"getBigInt64"},ye={"1":"setInt8","2":"setInt16","8":"setBigInt64"},ge={"1":"getUint8","2":"getUint16","8":"getBigUint64"},xe={"1":"setUint8","2":"setUint16","8":"setBigUint64"},Ae=t=>{let e=t/8|0,n=t%8/2|0,r=[...Array(e).fill([8,64n,o=>o]),...Array(n).fill([2,16n,o=>Number(o&65535n)])];t%2&&r.push([1,8n,o=>Number(o&255n)]);let s=o=>{let c=new Uint8Array(32),a=new DataView(c.buffer);if(o<0n)for(let p=0;p<32-t;p+=8)a.setBigInt64(p,-1n);let u=32;for(let p=r.length-1;p>0;p--){let[w,Q,W]=r[p];u-=w,a[xe[w]](u,W(o)),o>>=Q}let[y,,b]=r[0];return u-=y,a[ye[y]](u,b(o)),c},i=m(o=>{let c=o.i+32-t,a=r[0][0],u=BigInt(o.v[le[a]](c));c+=a;for(let y=1;y<r.length;y++){let[b,p]=r[y];u=u<<p|BigInt(o.v[ge[b]](c)),c+=b}return o.i+=32,u});return d(s,i,"int"+t*8)},[be,De,Te,Ce,Ue,Ie,he,Oe,Ee,we,ke,Be,ve,Ke,je,Se,Ne,Re,Ve,He,Fe,Ge,Le,_e,$e,qe,Me,Je,Pe,Qe,We,q]=g.map(Ae),Xe=q;var Ye=(t,e)=>{let n=t.s,r=Object.assign([],t);return r.s=(n[0]==="u"?"ufixed"+n.slice(4):"fixed"+n.slice(3))+"x"+e,l(r,s=>s.value,s=>({value:s,decimals:e}))};var E=require("@unstoppablejs/utils");var Ze=(...t)=>{let e=n=>{let r=n.map((c,a)=>t[a](c)),s=new Array(t.length),i=[],o=0n;for(let c=0;c<t.length;c++)t[c].d?(i.push(c),o+=32n):(s[c]=r[c],o+=BigInt(r[c].length));return i.forEach(c=>{s[c]=f[0](o);let a=r[c];s.push(a),o+=BigInt(a.length)}),(0,E.mergeUint8)(...s)};return e.d=!0,e},ze=(...t)=>e=>(0,E.mergeUint8)(...e.map((n,r)=>t[r](n))),tn=(...t)=>m(e=>t.map(n=>n(e))),en=(...t)=>{let e=m(n=>{let r=new Array(t.length),s=n.i;for(let i=0;i<t.length;i++)if(t[i].d){let o=Number(f[1](n)),c=n.i;n.i=s+o,r[i]=t[i](n),n.i=c}else r[i]=t[i](n);return r});return e.d=!0,e},C=(...t)=>{let e=t.some(i=>i.d),[n,r]=e?[Ze,en]:[ze,tn],s=d(n(...t.map(([i])=>i)),r(...t.map(([,i])=>i)),`(${t.map(i=>i.s).join(",")})`);return s.d=e,s};var M=t=>{let e=Object.keys(t);return l(C(...Object.values(t)),n=>e.map(r=>n[r]),n=>Object.fromEntries(n.map((r,s)=>[e[s],r])))};var J=require("@unstoppablejs/utils");var nn=(t,e)=>{let n=r=>{let s=e==null?1:0,i=s?r.length:e,o;if(t.d){o=new Array(i*2);let c=i*32;for(let a=0;a<i;a++){let u=t(r[a]);o[a]=f.enc(BigInt(c)),c+=u.byteLength,o[a+i]=u}}else{o=new Array(i);for(let c=0;c<i;c++)o[c]=t(r[c])}return s&&o.unshift(f.enc(BigInt(r.length))),(0,J.mergeUint8)(...o)};return n.d=!0,n},rn=(t,e)=>{let n=m(r=>{let s=e>=0?e:Number(f[1](r)),i=new Array(s);if(t.d){let o=r.i,c=o;for(let a=0;a<s;a++){r.i=c;let u=Number(f.dec(r));c=r.i,r.i=o+u,i[a]=t(r)}}else for(let o=0;o<s;o++)i[o]=t(r);return i});return n.d=!0,n},P=(t,e)=>{let n=d(nn(t[0],e),rn(t[1],e),t.s+`[${e??""}]`);return e==null&&(n.d=!0),n};
|
2
2
|
//# sourceMappingURL=solidity-codecs.cjs.production.min.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../src/index.ts", "../src/internal/createCodec.ts", "../src/internal/toInternalBytes.ts", "../src/internal/range32.ts", "../src/utils.ts", "../src/codecs/address.ts", "../src/codecs/Uint.ts", "../src/codecs/bool.ts", "../src/codecs/bytes.ts", "../src/codecs/str.ts", "../src/codecs/BytesX.ts", "../src/codecs/Int.ts", "../src/codecs/Fixed.ts", "../src/codecs/Tuple.ts", "../src/codecs/Struct.ts", "../src/codecs/Vector.ts"],
|
4
|
-
"sourcesContent": ["export * from \"./utils\"\nexport * from \"./types\"\nexport * from \"./codecs\"\n", "import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
-
"mappings": "4iBAAA,qkDCEO,GAAM,GAAc,CACzB,EACA,EACA,IACa,CACZ,AAAC,EAAgB,EAAI,EACpB,EAAgB,EAAI,EACtB,GAAM,GAAS,CAAC,EAAS,CAAO,EAChC,SAAO,IAAM,EACb,EAAO,IAAM,EACb,EAAO,EAAI,EACJ,CACT,ECdA,MAAwB,gCAGxB,eAAiC,WAAW,CAI1C,YAAY,EAAqB,CAC/B,MAAM,CAAM,EAJd,WAAY,GACZ,YAIE,KAAK,EAAI,GAAI,UAAS,CAAM,CAC9B,CACF,EAEa,EAAkB,AAC7B,GAEC,AAAC,GACA,EACE,YAAkB,GACd,EACA,GAAI,GACF,YAAkB,YACd,EAAO,OACP,MAAO,IAAW,SAClB,cAAQ,CAAM,EAAE,OAChB,CACN,CACN,EC3BG,GAAM,GAAU,MAAM,EAAE,EAC5B,KAAK,CAAC,EACN,IAAI,CAAC,EAAG,IAAQ,EAAM,CAAC,ECA1B,MAA2B,8BAEd,EAAS,aAEhB,EAAM,CACV,EACA,IAEI,GAAM,GAAG,GAAO,EAAI,IACxB,EAAO,EAAI,EAAM,EACV,GAGI,EAAiB,CAC5B,EACA,IACe,EAAI,EAAU,AAAC,GAAU,EAAQ,EAAO,CAAK,CAAC,CAAgB,EAElE,EAAiB,CAC5B,EACA,IACe,EAAI,EAAU,AAAC,GAAU,EAAO,EAAQ,CAAK,CAAC,CAAgB,EAElE,EAAe,CAC1B,EACA,EACA,IAEA,EACE,EACA,EACE,EAAe,EAAM,GAAI,CAAM,EAC/B,EAAe,EAAM,GAAI,CAAM,EAC/B,EAAM,CACR,CACF,ECrCF,MAA+B,gCAIxB,GAAM,GAAU,EACrB,AAAC,GAAkB,CACjB,GAAM,GAAS,GAAI,YAAW,EAAE,EAChC,SAAO,IAAI,cAAQ,CAAK,EAAG,EAAE,EACtB,CACT,EACA,EAAgB,AAAC,GAAU,CACzB,GAAM,GAAgB,GAAI,YAAW,EAAM,OAAQ,EAAM,EAAI,GAAI,EAAE,EACnE,EAAM,GAAK,GACX,GAAM,GAAc,YAAM,CAAa,EACjC,EAAe,YAAM,EAAO,EAAY,MAAM,CAAC,CAAC,CAAC,EAEjD,EAAS,GAAI,OAAM,EAAE,EAC3B,EAAO,GAAK,KACZ,OAAS,GAAI,EAAG,EAAI,GAAI,IAAK,CAC3B,GAAM,GAAO,EAAY,GACzB,EAAO,KAAK,SAAS,EAAa,GAAI,EAAE,EAAI,EAAI,EAAK,YAAY,EAAI,CAAI,CAC3E,CAEA,MAAO,GAAO,KAAK,EAAE,CACvB,CAAC,EACD,SACF,ECvBA,GAAM,IAAW,AAAC,GAAkC,CAClD,GAAM,GAAM,KAAK,KAAK,EAAS,CAAC,EAChC,MAAO,GACL,AAAC,GAAU,CACT,GAAM,GAAS,GAAI,YAAW,EAAE,EAC1B,EAAK,GAAI,UAAS,EAAO,MAAM,EAE/B,EAAW,GAAK,EAAM,EAC5B,OAAS,GAAM,GAAI,GAAO,EAAU,GAAO,EACzC,EAAG,aAAa,EAAK,CAAK,EAC1B,IAAU,IAGZ,MAAO,EACT,EACA,EAAgB,AAAC,GAAU,CACzB,GAAI,GAAS,GAEP,EAAY,EAAM,EAAI,GAC5B,OAAS,GAAM,EAAM,EAAK,IAAK,EAAM,GAAI,EAAM,EAAW,GAAO,EAC/D,EAAU,GAAU,IAAO,EAAM,EAAE,aAAa,CAAG,EAErD,SAAM,EAAI,EACH,CACT,CAAC,EACD,OAAS,
|
4
|
+
"sourcesContent": ["export * from \"./utils\"\nexport * from \"./types\"\nexport * from \"./codecs\"\n", "import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes * 8,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes * 8)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": []
|
7
7
|
}
|
package/dist/solidity-codecs.js
CHANGED
@@ -84,7 +84,7 @@ var getCodec = (nBytes) => {
|
|
84
84
|
result = result << 64n | bytes33.v.getBigUint64(idx);
|
85
85
|
bytes33.i = nextBlock;
|
86
86
|
return result;
|
87
|
-
}), "uint" + nBytes);
|
87
|
+
}), "uint" + nBytes * 8);
|
88
88
|
};
|
89
89
|
var [
|
90
90
|
uint8,
|
@@ -269,7 +269,7 @@ var getCodec2 = (nBytes) => {
|
|
269
269
|
bytes33.i += 32;
|
270
270
|
return result;
|
271
271
|
});
|
272
|
-
return createCodec(enc, dec, "int" + nBytes);
|
272
|
+
return createCodec(enc, dec, "int" + nBytes * 8);
|
273
273
|
};
|
274
274
|
var [
|
275
275
|
int8,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../src/internal/createCodec.ts", "../src/internal/toInternalBytes.ts", "../src/internal/range32.ts", "../src/utils.ts", "../src/codecs/address.ts", "../src/codecs/Uint.ts", "../src/codecs/bool.ts", "../src/codecs/bytes.ts", "../src/codecs/str.ts", "../src/codecs/BytesX.ts", "../src/codecs/Int.ts", "../src/codecs/Fixed.ts", "../src/codecs/Tuple.ts", "../src/codecs/Struct.ts", "../src/codecs/Vector.ts"],
|
4
|
-
"sourcesContent": ["import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
-
"mappings": ";;;;;;;;AAEO,IAAM,cAAc,CACzB,SACA,SACA,aACa;AACb;AAAC,EAAC,QAAgB,IAAI;AACrB,EAAC,QAAgB,IAAI;AACtB,QAAM,SAAS,CAAC,SAAS,OAAO;AAChC,SAAO,MAAM;AACb,SAAO,MAAM;AACb,SAAO,IAAI;AACX,SAAO;AACT;;;ACdA;AAGA,uCAAiC,WAAW;AAAA,EAI1C,YAAY,QAAqB;AAC/B,UAAM,MAAM;AAJd,6BAAY;AACZ;AAIE,SAAK,IAAI,IAAI,SAAS,MAAM;AAAA,EAC9B;AACF;AAEO,IAAM,kBAAkB,CAC7B,OAEC,CAAC,WACA,GACE,kBAAkB,qBACd,SACA,IAAI,mBACF,kBAAkB,aACd,OAAO,SACP,OAAO,WAAW,WAClB,QAAQ,MAAM,EAAE,SAChB,MACN,CACN;;;AC3BG,IAAM,UAAU,MAAM,EAAE,EAC5B,KAAK,CAAC,EACN,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC;;;ACA1B;AAEO,IAAM,SAAS;AAEtB,IAAM,MAAM,CACV,OACA,WACM;AACN,MAAI,MAAM;AAAG,WAAO,IAAI;AACxB,SAAO,IAAI,MAAM;AACjB,SAAO;AACT;AAEO,IAAM,iBAAiB,CAC5B,SACA,WACe,IAAI,SAAU,CAAC,UAAU,QAAQ,OAAO,KAAK,CAAC,CAAgB;AAExE,IAAM,iBAAiB,CAC5B,SACA,WACe,IAAI,SAAU,CAAC,UAAU,OAAO,QAAQ,KAAK,CAAC,CAAgB;AAExE,IAAM,eAAe,CAC1B,OACA,QACA,WAEA,IACE,OACA,YACE,eAAe,MAAM,IAAI,MAAM,GAC/B,eAAe,MAAM,IAAI,MAAM,GAC/B,MAAM,CACR,CACF;;;ACrCF;AAIO,IAAM,UAAU,YACrB,CAAC,UAAkB;AACjB,QAAM,SAAS,IAAI,WAAW,EAAE;AAChC,SAAO,IAAI,SAAQ,KAAK,GAAG,EAAE;AAC7B,SAAO;AACT,GACA,gBAAgB,CAAC,YAAU;AACzB,QAAM,gBAAgB,IAAI,WAAW,QAAM,QAAQ,QAAM,IAAI,IAAI,EAAE;AACnE,UAAM,KAAK;AACX,QAAM,cAAc,MAAM,aAAa;AACvC,QAAM,eAAe,MAAM,OAAO,YAAY,MAAM,CAAC,CAAC,CAAC;AAEvD,QAAM,SAAS,IAAI,MAAM,EAAE;AAC3B,SAAO,KAAK;AACZ,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,UAAM,OAAO,YAAY;AACzB,WAAO,KAAK,SAAS,aAAa,IAAI,EAAE,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI;AAAA,EAC3E;AAEA,SAAO,OAAO,KAAK,EAAE;AACvB,CAAC,GACD,SACF;;;ACvBA,IAAM,WAAW,CAAC,WAAkC;AAClD,QAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,SAAO,YACL,CAAC,UAAU;AACT,UAAM,SAAS,IAAI,WAAW,EAAE;AAChC,UAAM,KAAK,IAAI,SAAS,OAAO,MAAM;AAErC,UAAM,WAAW,KAAK,MAAM;AAC5B,aAAS,MAAM,IAAI,OAAO,UAAU,OAAO,GAAG;AAC5C,SAAG,aAAa,KAAK,KAAK;AAC1B,gBAAU;AAAA,IACZ;AAEA,WAAO;AAAA,EACT,GACA,gBAAgB,CAAC,YAAU;AACzB,QAAI,SAAS;AAEb,UAAM,YAAY,QAAM,IAAI;AAC5B,aAAS,MAAM,QAAM,IAAK,MAAK,MAAM,IAAI,MAAM,WAAW,OAAO;AAC/D,eAAU,UAAU,MAAO,QAAM,EAAE,aAAa,GAAG;AAErD,YAAM,IAAI;AACV,WAAO;AAAA,EACT,CAAC,GACD,SAAS,
|
4
|
+
"sourcesContent": ["import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes * 8,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes * 8)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": []
|
7
7
|
}
|
package/dist/solidity-codecs.mjs
CHANGED
@@ -84,7 +84,7 @@ var getCodec = (nBytes) => {
|
|
84
84
|
result = result << 64n | bytes33.v.getBigUint64(idx);
|
85
85
|
bytes33.i = nextBlock;
|
86
86
|
return result;
|
87
|
-
}), "uint" + nBytes);
|
87
|
+
}), "uint" + nBytes * 8);
|
88
88
|
};
|
89
89
|
var [
|
90
90
|
uint8,
|
@@ -269,7 +269,7 @@ var getCodec2 = (nBytes) => {
|
|
269
269
|
bytes33.i += 32;
|
270
270
|
return result;
|
271
271
|
});
|
272
|
-
return createCodec(enc, dec, "int" + nBytes);
|
272
|
+
return createCodec(enc, dec, "int" + nBytes * 8);
|
273
273
|
};
|
274
274
|
var [
|
275
275
|
int8,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../src/internal/createCodec.ts", "../src/internal/toInternalBytes.ts", "../src/internal/range32.ts", "../src/utils.ts", "../src/codecs/address.ts", "../src/codecs/Uint.ts", "../src/codecs/bool.ts", "../src/codecs/bytes.ts", "../src/codecs/str.ts", "../src/codecs/BytesX.ts", "../src/codecs/Int.ts", "../src/codecs/Fixed.ts", "../src/codecs/Tuple.ts", "../src/codecs/Struct.ts", "../src/codecs/Vector.ts"],
|
4
|
-
"sourcesContent": ["import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
-
"mappings": ";;;;;;;;AAEO,IAAM,cAAc,CACzB,SACA,SACA,aACa;AACb;AAAC,EAAC,QAAgB,IAAI;AACrB,EAAC,QAAgB,IAAI;AACtB,QAAM,SAAS,CAAC,SAAS,OAAO;AAChC,SAAO,MAAM;AACb,SAAO,MAAM;AACb,SAAO,IAAI;AACX,SAAO;AACT;;;ACdA;AAGA,uCAAiC,WAAW;AAAA,EAI1C,YAAY,QAAqB;AAC/B,UAAM,MAAM;AAJd,6BAAY;AACZ;AAIE,SAAK,IAAI,IAAI,SAAS,MAAM;AAAA,EAC9B;AACF;AAEO,IAAM,kBAAkB,CAC7B,OAEC,CAAC,WACA,GACE,kBAAkB,qBACd,SACA,IAAI,mBACF,kBAAkB,aACd,OAAO,SACP,OAAO,WAAW,WAClB,QAAQ,MAAM,EAAE,SAChB,MACN,CACN;;;AC3BG,IAAM,UAAU,MAAM,EAAE,EAC5B,KAAK,CAAC,EACN,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC;;;ACA1B;AAEO,IAAM,SAAS;AAEtB,IAAM,MAAM,CACV,OACA,WACM;AACN,MAAI,MAAM;AAAG,WAAO,IAAI;AACxB,SAAO,IAAI,MAAM;AACjB,SAAO;AACT;AAEO,IAAM,iBAAiB,CAC5B,SACA,WACe,IAAI,SAAU,CAAC,UAAU,QAAQ,OAAO,KAAK,CAAC,CAAgB;AAExE,IAAM,iBAAiB,CAC5B,SACA,WACe,IAAI,SAAU,CAAC,UAAU,OAAO,QAAQ,KAAK,CAAC,CAAgB;AAExE,IAAM,eAAe,CAC1B,OACA,QACA,WAEA,IACE,OACA,YACE,eAAe,MAAM,IAAI,MAAM,GAC/B,eAAe,MAAM,IAAI,MAAM,GAC/B,MAAM,CACR,CACF;;;ACrCF;AAIO,IAAM,UAAU,YACrB,CAAC,UAAkB;AACjB,QAAM,SAAS,IAAI,WAAW,EAAE;AAChC,SAAO,IAAI,SAAQ,KAAK,GAAG,EAAE;AAC7B,SAAO;AACT,GACA,gBAAgB,CAAC,YAAU;AACzB,QAAM,gBAAgB,IAAI,WAAW,QAAM,QAAQ,QAAM,IAAI,IAAI,EAAE;AACnE,UAAM,KAAK;AACX,QAAM,cAAc,MAAM,aAAa;AACvC,QAAM,eAAe,MAAM,OAAO,YAAY,MAAM,CAAC,CAAC,CAAC;AAEvD,QAAM,SAAS,IAAI,MAAM,EAAE;AAC3B,SAAO,KAAK;AACZ,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,UAAM,OAAO,YAAY;AACzB,WAAO,KAAK,SAAS,aAAa,IAAI,EAAE,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI;AAAA,EAC3E;AAEA,SAAO,OAAO,KAAK,EAAE;AACvB,CAAC,GACD,SACF;;;ACvBA,IAAM,WAAW,CAAC,WAAkC;AAClD,QAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,SAAO,YACL,CAAC,UAAU;AACT,UAAM,SAAS,IAAI,WAAW,EAAE;AAChC,UAAM,KAAK,IAAI,SAAS,OAAO,MAAM;AAErC,UAAM,WAAW,KAAK,MAAM;AAC5B,aAAS,MAAM,IAAI,OAAO,UAAU,OAAO,GAAG;AAC5C,SAAG,aAAa,KAAK,KAAK;AAC1B,gBAAU;AAAA,IACZ;AAEA,WAAO;AAAA,EACT,GACA,gBAAgB,CAAC,YAAU;AACzB,QAAI,SAAS;AAEb,UAAM,YAAY,QAAM,IAAI;AAC5B,aAAS,MAAM,QAAM,IAAK,MAAK,MAAM,IAAI,MAAM,WAAW,OAAO;AAC/D,eAAU,UAAU,MAAO,QAAM,EAAE,aAAa,GAAG;AAErD,YAAM,IAAI;AACV,WAAO;AAAA,EACT,CAAC,GACD,SAAS,
|
4
|
+
"sourcesContent": ["import type { Codec } from \"../types\"\n\nexport const createCodec = <T>(\n encoder: (value: T) => Uint8Array,\n decoder: (value: Uint8Array) => T,\n selector: string,\n): Codec<T> => {\n ;(encoder as any).s = selector\n ;(decoder as any).s = selector\n const result = [encoder, decoder] as any\n result.enc = encoder\n result.dec = decoder\n result.s = selector\n return result\n}\n", "import { fromHex } from \"@unstoppablejs/utils\"\nimport { Decoder } from \"../types\"\n\nclass InternalUint8Array extends Uint8Array {\n i: number = 0\n v: DataView\n\n constructor(buffer: ArrayBuffer) {\n super(buffer)\n this.v = new DataView(buffer)\n }\n}\n\nexport const toInternalBytes = <T>(\n fn: (input: InternalUint8Array) => T,\n): Decoder<T> =>\n ((buffer: string | ArrayBuffer | Uint8Array | InternalUint8Array) =>\n fn(\n buffer instanceof InternalUint8Array\n ? buffer\n : new InternalUint8Array(\n buffer instanceof Uint8Array\n ? buffer.buffer\n : typeof buffer === \"string\"\n ? fromHex(buffer).buffer\n : buffer,\n ),\n )) as Decoder<T>\n", "export const range32 = Array(32)\n .fill(0)\n .map((_, idx) => idx + 1)\n", "import type { Codec, Decoder, Encoder } from \"./types\"\nimport { createCodec } from \"./internal\"\nimport { keccak_256 } from \"@noble/hashes/sha3\"\n\nexport const keccak = keccak_256\n\nconst dyn = <T extends { d?: boolean; s: string }>(\n input: { d?: boolean; s: string },\n output: T,\n): T => {\n if (input.d) output.d = true\n output.s = input.s\n return output\n}\n\nexport const enhanceEncoder = <I, O>(\n encoder: Encoder<I>,\n mapper: (value: O) => I,\n): Encoder<O> => dyn(encoder, ((value) => encoder(mapper(value))) as Encoder<O>)\n\nexport const enhanceDecoder = <I, O>(\n decoder: Decoder<I>,\n mapper: (value: I) => O,\n): Decoder<O> => dyn(decoder, ((value) => mapper(decoder(value))) as Decoder<O>)\n\nexport const enhanceCodec = <I, O>(\n codec: Codec<I>,\n toFrom: (value: O) => I,\n fromTo: (value: I) => O,\n): Codec<O> =>\n dyn(\n codec,\n createCodec(\n enhanceEncoder(codec[0], toFrom),\n enhanceDecoder(codec[1], fromTo),\n codec.s,\n ),\n )\n", "import { fromHex, toHex } from \"@unstoppablejs/utils\"\nimport { createCodec, toInternalBytes } from \"../internal\"\nimport { keccak } from \"../utils\"\n\nexport const address = createCodec<string>(\n (input: string) => {\n const result = new Uint8Array(32)\n result.set(fromHex(input), 12)\n return result\n },\n toInternalBytes((bytes) => {\n const binaryAddress = new Uint8Array(bytes.buffer, bytes.i + 12, 20)\n bytes.i += 32\n const nonChecksum = toHex(binaryAddress)\n const hashedAddres = toHex(keccak(nonChecksum.slice(2)))\n\n const result = new Array(41)\n result[0] = \"0x\"\n for (let i = 2; i < 42; i++) {\n const char = nonChecksum[i]\n result.push(parseInt(hashedAddres[i], 16) > 7 ? char.toUpperCase() : char)\n }\n\n return result.join(\"\")\n }),\n \"address\",\n)\n", "import { Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = Math.ceil(nBytes / 8)\n return createCodec(\n (input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n const idxLimit = 32 - n64 * 8\n for (let idx = 24; idx >= idxLimit; idx -= 8) {\n dv.setBigUint64(idx, input)\n input >>= 64n\n }\n\n return result\n },\n toInternalBytes((bytes) => {\n let result = 0n\n\n const nextBlock = bytes.i + 32\n for (let idx = bytes.i + (32 - n64 * 8); idx < nextBlock; idx += 8)\n result = (result << 64n) | bytes.v.getBigUint64(idx)\n\n bytes.i = nextBlock\n return result\n }),\n \"uint\" + nBytes * 8,\n )\n}\n\nexport const [\n uint8,\n uint16,\n uint24,\n uint32,\n uint40,\n uint48,\n uint56,\n uint64,\n uint72,\n uint80,\n uint88,\n uint96,\n uint104,\n uint112,\n uint120,\n uint128,\n uint136,\n uint144,\n uint152,\n uint160,\n uint168,\n uint176,\n uint184,\n uint192,\n uint200,\n uint208,\n uint226,\n uint224,\n uint232,\n uint240,\n uint248,\n uint256,\n] = range32.map(getCodec)\nexport const uint = uint256\n", "import type { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { uint8 } from \"./Uint\"\n\nconst base = Object.assign([], uint8)\nbase.s = \"bool\"\n\nexport const bool: Codec<boolean> = enhanceCodec(\n base,\n (value: boolean) => (value ? 1n : 0n),\n Boolean,\n)\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst bytesEnc = ((val) => {\n const args = [uint[0](BigInt(val.length)), val] as const\n const extra = val.length % 32\n if (extra > 0) {\n ;(args as any).push(new Uint8Array(32 - extra))\n }\n return mergeUint8(...args)\n}) as Encoder<Uint8Array>\nbytesEnc.d = true\n\nconst bytesDec: Decoder<Uint8Array> = toInternalBytes((bytes) => {\n let nElements = Number(uint[1](bytes))\n const result = new Uint8Array(bytes.buffer, bytes.i, nElements)\n bytes.i += nElements\n const extra = nElements % 32\n if (extra > 0) bytes.i += 32 - extra\n return result\n})\nbytesDec.d = true\n\nexport const bytes = createCodec(bytesEnc, bytesDec, \"bytes\")\nbytes.d = true\n", "import { enhanceCodec } from \"../utils\"\nimport { bytes } from \"./bytes\"\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nconst base = Object.assign([], bytes)\nbase.s = \"string\"\n\nexport const str = enhanceCodec<Uint8Array, string>(\n base,\n textEncoder.encode.bind(textEncoder),\n textDecoder.decode.bind(textDecoder),\n)\n", "import type { Encoder, Decoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst bytesEnc = (nBytes: number): Encoder<Uint8Array> =>\n ((bytes) => {\n if (bytes.length === nBytes && nBytes === 32) return bytes\n const result = new Uint8Array(32)\n result.set(bytes.length === nBytes ? bytes : bytes.slice(0, nBytes))\n return result\n }) as Encoder<Uint8Array>\n\nconst bytesDec = (nBytes: number): Decoder<Uint8Array> =>\n toInternalBytes((bytes) => {\n const result = new Uint8Array(bytes.buffer, bytes.i, nBytes)\n bytes.i += 32\n return result\n })\n\nexport const [\n bytes1,\n bytes2,\n bytes3,\n bytes4,\n bytes5,\n bytes6,\n bytes7,\n bytes8,\n bytes9,\n bytes10,\n bytes11,\n bytes12,\n bytes13,\n bytes14,\n bytes15,\n bytes16,\n bytes17,\n bytes18,\n bytes19,\n bytes20,\n bytes21,\n bytes22,\n bytes23,\n bytes24,\n bytes25,\n bytes26,\n bytes27,\n bytes28,\n bytes29,\n bytes30,\n bytes31,\n bytes32,\n] = range32.map(\n (nBytes: number): Codec<Uint8Array> =>\n createCodec(bytesEnc(nBytes), bytesDec(nBytes), \"bytes\" + nBytes),\n)\n", "import { Encoder, Codec } from \"../types\"\nimport { range32, toInternalBytes, createCodec } from \"../internal\"\n\nconst signGetters: Record<1 | 2 | 8, \"getBigInt64\" | \"getInt16\" | \"getInt8\"> = {\n \"1\": \"getInt8\",\n \"2\": \"getInt16\",\n \"8\": \"getBigInt64\",\n}\n\nconst signSetters: Record<1 | 2 | 8, \"setBigInt64\" | \"setInt16\" | \"setInt8\"> = {\n \"1\": \"setInt8\",\n \"2\": \"setInt16\",\n \"8\": \"setBigInt64\",\n}\n\nconst usignGetters: Record<\n 1 | 2 | 8,\n \"getBigUint64\" | \"getUint16\" | \"getUint8\"\n> = {\n \"1\": \"getUint8\",\n \"2\": \"getUint16\",\n \"8\": \"getBigUint64\",\n}\n\nconst usignSetters: Record<\n 1 | 2 | 8,\n \"setBigUint64\" | \"setUint16\" | \"setUint8\"\n> = {\n \"1\": \"setUint8\",\n \"2\": \"setUint16\",\n \"8\": \"setBigUint64\",\n}\n\nconst getCodec = (nBytes: number): Codec<bigint> => {\n const n64 = (nBytes / 8) | 0\n const n16 = ((nBytes % 8) / 2) | 0\n const sequence = [\n ...Array(n64).fill([8, 64n, (x: bigint) => x]),\n ...Array(n16).fill([2, 16n, (x: bigint) => Number(x & 65535n)]),\n ]\n if (nBytes % 2) sequence.push([1, 8n, (x: bigint) => Number(x & 255n)])\n\n const enc = ((input) => {\n const result = new Uint8Array(32)\n const dv = new DataView(result.buffer)\n\n if (input < 0n) {\n for (let i = 0; i < 32 - nBytes; i += 8) dv.setBigInt64(i, -1n)\n }\n\n let idx = 32\n for (let i = sequence.length - 1; i > 0; i--) {\n const [bytes, shift, fn] = sequence[i] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[usignSetters[bytes]](idx, fn(input) as never)\n input >>= shift\n }\n const [bytes, , fn] = sequence[0] as [1, 8n, (x: bigint) => any]\n idx -= bytes\n dv[signSetters[bytes]](idx, fn(input) as never)\n\n return result\n }) as Encoder<bigint>\n\n const dec = toInternalBytes((bytes) => {\n let idx = bytes.i + 32 - nBytes\n\n const bits = sequence[0][0] as 8\n let result = BigInt(bytes.v[signGetters[bits]](idx))\n idx += bits\n\n for (let i = 1; i < sequence.length; i++) {\n const [bits, shift] = sequence[i] as [1, 8n]\n result = (result << shift) | BigInt(bytes.v[usignGetters[bits]](idx))\n idx += bits\n }\n\n bytes.i += 32\n return result\n })\n\n return createCodec(enc, dec, \"int\" + nBytes * 8)\n}\n\nexport const [\n int8,\n int16,\n int24,\n int32,\n int40,\n int48,\n int56,\n int64,\n int72,\n int80,\n int88,\n int96,\n int104,\n int112,\n int120,\n int128,\n int136,\n int144,\n int152,\n int160,\n int168,\n int176,\n int184,\n int192,\n int200,\n int208,\n int226,\n int224,\n int232,\n int240,\n int248,\n int256,\n] = range32.map(getCodec)\nexport const int = int256\n", "import { Codec } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\n\nexport interface Decimal<T extends number = number> {\n value: bigint\n decimals: T\n}\n\nexport const Fixed = <D extends number>(\n baseCodec: Codec<bigint>,\n decimals: D,\n) => {\n const baseSelector = baseCodec.s\n const eBaseCodec = Object.assign([], baseCodec)\n eBaseCodec.s =\n (baseSelector[0] === \"u\"\n ? \"ufixed\" + baseSelector.slice(4)\n : \"fixed\" + baseSelector.slice(3)) +\n \"x\" +\n decimals\n return enhanceCodec<bigint, Decimal<D>>(\n eBaseCodec,\n (x) => x.value,\n (value) => ({ value, decimals }),\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport type { Codec, Decoder, Encoder } from \"../types\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { uint } from \"./Uint\"\n\nconst dynamicEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n): Encoder<[...OT]> => {\n const res = ((values) => {\n const mapped = values.map((value, idx) => encoders[idx](value))\n const resultArray = new Array<Uint8Array>(encoders.length)\n const dinamics = []\n let len = 0n\n for (let i = 0; i < encoders.length; i++) {\n if (encoders[i].d) {\n dinamics.push(i)\n len += 32n\n } else {\n resultArray[i] = mapped[i]\n len += BigInt(mapped[i].length)\n }\n }\n\n dinamics.forEach((idx) => {\n resultArray[idx] = uint[0](len)\n const data = mapped[idx]\n resultArray.push(data)\n len += BigInt(data.length)\n })\n\n return mergeUint8(...resultArray)\n }) as Encoder<[...OT]>\n\n res.d = true\n return res\n}\n\nconst staticEnc = <\n A extends Array<Encoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Encoder<infer D> ? D : unknown },\n>(\n ...encoders: A\n) =>\n ((values) =>\n mergeUint8(...values.map((value, idx) => encoders[idx](value)))) as Encoder<\n [...OT]\n >\n\nconst staticDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> =>\n toInternalBytes(\n (bytes) => decoders.map((decoder) => decoder(bytes)) as [...OT],\n )\nconst dynamicDec = <\n A extends Array<Decoder<any>>,\n OT extends { [K in keyof A]: A[K] extends Decoder<infer D> ? D : unknown },\n>(\n ...decoders: A\n): Decoder<[...OT]> => {\n const res: Decoder<[...OT]> = toInternalBytes((bytes) => {\n const result = new Array(decoders.length) as [...OT]\n let start = bytes.i\n for (let i = 0; i < decoders.length; i++) {\n if (decoders[i].d) {\n const offset = Number(uint[1](bytes))\n const current = bytes.i\n bytes.i = start + offset\n result[i] = decoders[i](bytes)\n bytes.i = current\n } else {\n result[i] = decoders[i](bytes)\n }\n }\n return result\n })\n res.d = true\n return res\n}\n\nexport const Tuple = <\n A extends Array<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n ...codecs: A\n): Codec<[...OT]> => {\n const isDyn = codecs.some((c) => c.d)\n const [enc, dec] = isDyn\n ? ([dynamicEnc, dynamicDec] as const)\n : ([staticEnc, staticDec] as const)\n\n const res: Codec<[...OT]> = createCodec(\n enc(...codecs.map(([encoder]) => encoder)),\n dec(...codecs.map(([, decoder]) => decoder)),\n `(${codecs.map((c) => c.s).join(\",\")})`,\n )\n res.d = isDyn\n return res\n}\n", "import { Codec, StringRecord } from \"../types\"\nimport { enhanceCodec } from \"../utils\"\nimport { Tuple } from \"./Tuple\"\n\nexport const Struct = <\n A extends StringRecord<Codec<any>>,\n OT extends { [K in keyof A]: A[K] extends Codec<infer D> ? D : unknown },\n>(\n codecs: A,\n): Codec<OT> => {\n const keys = Object.keys(codecs)\n return enhanceCodec(\n Tuple(...Object.values(codecs)),\n (input: OT) => keys.map((k) => input[k]),\n (tuple: Array<any>) =>\n Object.fromEntries(tuple.map((value, idx) => [keys[idx], value])) as OT,\n )\n}\n", "import { mergeUint8 } from \"@unstoppablejs/utils\"\nimport { toInternalBytes, createCodec } from \"../internal\"\nimport { Codec, Decoder, Encoder } from \"../types\"\nimport { uint } from \"./Uint\"\n\nconst vectorEnc = <T>(inner: Encoder<T>, size?: number): Encoder<Array<T>> => {\n const result = ((value) => {\n const isNotFixed = size == null ? 1 : 0\n const actualSize = isNotFixed ? value.length : size!\n let data: Array<Uint8Array>\n if (inner.d) {\n data = new Array<Uint8Array>(actualSize * 2)\n let offset = actualSize * 32\n for (let i = 0; i < actualSize; i++) {\n const encoded = inner(value[i])\n data[i] = uint.enc(BigInt(offset))\n offset += encoded.byteLength\n data[i + actualSize] = encoded\n }\n } else {\n data = new Array<Uint8Array>(actualSize)\n for (let i = 0; i < actualSize; i++) data[i] = inner(value[i])\n }\n if (isNotFixed) data!.unshift(uint.enc(BigInt(value.length)))\n return mergeUint8(...data)\n }) as Encoder<Array<T>>\n result.d = true\n return result\n}\n\nconst vectorDec = <T>(getter: Decoder<T>, size?: number): Decoder<Array<T>> => {\n const decoder = toInternalBytes((bytes) => {\n const nElements = size! >= 0 ? size! : Number(uint[1](bytes))\n const decoded = new Array(nElements)\n\n if (getter.d) {\n const init = bytes.i\n let current = init\n for (let i = 0; i < nElements; i++) {\n bytes.i = current\n const offset = Number(uint.dec(bytes))\n current = bytes.i\n bytes.i = init + offset\n decoded[i] = getter(bytes)\n }\n } else {\n for (let i = 0; i < nElements; i++) {\n decoded[i] = getter(bytes)\n }\n }\n\n return decoded\n })\n decoder.d = true\n return decoder\n}\n\nexport const Vector = <T>(inner: Codec<T>, size?: number): Codec<Array<T>> => {\n const codec = createCodec(\n vectorEnc(inner[0], size),\n vectorDec(inner[1], size),\n inner.s + `[${size == null ? \"\" : size}]`,\n )\n if (size == null) codec.d = true\n return codec\n}\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": []
|
7
7
|
}
|
package/package.json
CHANGED