PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo-forks/avalanchejs/src/serializable/codec
Просмотр файла: codec.spec.ts
import { Codec } from '.';
import { id, idBytes } from '../../fixtures/common';
import {
mintOutput,
mintOutputBytes,
outputOwner,
outputOwnerBytes,
} from '../../fixtures/secp256k1';
import { bytesForInt } from '../../fixtures/utils/bytesFor';
import { Id } from '../fxs/common';
import { MintOutput, OutputOwners } from '../fxs/secp256k1';
import { concatBytes } from '../../utils/buffer';
import { unpack } from '../../utils/struct';
describe('Codec', () => {
let testCodec: Codec;
beforeEach(() => {
testCodec = new Codec([MintOutput, OutputOwners]);
});
it('unpacks types correctly', () => {
const bytes = concatBytes(bytesForInt(1), outputOwnerBytes());
const [out, remainder] = testCodec.UnpackPrefix(bytes);
expect(out).toStrictEqual(outputOwner());
expect(remainder).toStrictEqual(new Uint8Array());
});
it('packs types correctly', () => {
const owners = outputOwner();
const bytes = concatBytes(bytesForInt(1), outputOwnerBytes());
expect(testCodec.PackPrefix(owners)).toStrictEqual(bytes);
});
it('packs list of types correctly', () => {
const input = [outputOwner(), mintOutput()];
const output = testCodec.PackPrefixList(input);
expect(output).toEqual(
concatBytes(
bytesForInt(2),
bytesForInt(1),
outputOwnerBytes(),
bytesForInt(0),
mintOutputBytes(),
),
);
});
it('packs types correctly', () => {
const owners = outputOwner();
const bytes = concatBytes(bytesForInt(1), outputOwnerBytes());
expect(testCodec.PackPrefix(owners)).toStrictEqual(bytes);
});
it('works with unpack', () => {
const input = concatBytes(idBytes(), bytesForInt(1), outputOwnerBytes());
const [idoutput, owner, remaining] = unpack(input, [Id, Codec], testCodec);
expect(idoutput).toEqual(id());
expect(owner).toEqual(outputOwner());
expect(remaining).toStrictEqual(new Uint8Array());
});
});
Выполнить команду
Для локальной разработки. Не используйте в интернете!