mirror of
https://github.com/pezkuwichain/pezkuwi-api.git
synced 2026-07-24 07:45:43 +00:00
31467f90d4
- @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.
25 lines
905 B
JavaScript
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
|