Files
pezkuwi-api/packages/bizinikiwi-bindings/dist/esm/codecs/scale/bitSequence.mjs
T
pezkuwichain 31467f90d4 feat: add PAPI rebrand packages
- @pezkuwi/papi-utils (rebrand of @polkadot-api/utils)
- @pezkuwi/bizinikiwi-bindings (rebrand of @polkadot-api/substrate-bindings)
- @pezkuwi/metadata-builders (rebrand of @polkadot-api/metadata-builders)
- @pezkuwi/merkleize-metadata (rebrand of @polkadot-api/merkleize-metadata)

All @polkadot-api references replaced with @pezkuwi equivalents.
2026-01-22 15:40:12 +03:00

25 lines
905 B
JavaScript

import { createDecoder, Bytes, createCodec } from 'scale-ts';
import { compactNumber } from './compact.mjs';
const bitSequenceDecoder = createDecoder((data) => {
const bitsLen = compactNumber.dec(data);
const bytesLen = Math.ceil(bitsLen / 8);
const bytes = Bytes(bytesLen).dec(data);
return { bytes, bitsLen };
});
const bitSequenceEncoder = (input) => {
if (input.bitsLen > input.bytes.length * 8)
throw new Error(
`Not enough bytes. (bitsLen:${input.bitsLen}, bytesLen:${input.bytes.length})`
);
const lenEncoded = compactNumber.enc(input.bitsLen);
const result = new Uint8Array(input.bytes.length + lenEncoded.length);
result.set(lenEncoded, 0);
result.set(input.bytes, lenEncoded.length);
return result;
};
const bitSequence$1 = createCodec(bitSequenceEncoder, bitSequenceDecoder);
export { bitSequence$1 as bitSequence };
//# sourceMappingURL=bitSequence.mjs.map