Skip to content

Commit

Permalink
test: add bitvec tests
Browse files Browse the repository at this point in the history
  • Loading branch information
zone117x committed Mar 20, 2024
1 parent 17a6b71 commit 8e03588
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion src/tests/helpers-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import * as c32check from 'c32check';
import { bitcoinToStacksAddress, stacksToBitcoinAddress } from 'stacks-encoding-native-js';
import * as c32AddrCache from '../c32-addr-cache';
import { ADDR_CACHE_ENV_VAR } from '../c32-addr-cache';
import { isValidBitcoinAddress, getUintEnvOrDefault } from '../helpers';
import { isValidBitcoinAddress, getUintEnvOrDefault, BitVec } from '../helpers';
import { ECPair, getBitcoinAddressFromKey } from '../ec-helpers';
import { decodeBtcAddress, poxAddressToBtcAddress } from '@stacks/stacking';
import { has0xPrefix } from '@hirosystems/api-toolkit';
Expand Down Expand Up @@ -547,3 +547,29 @@ test('getUintEnvOrDefault tests', () => {
process.env[key] = 'ABC';
expect(() => getUintEnvOrDefault(key)).toThrowError();
});

test('signer bitvec decoding', () => {
const signerBitvecString1 = '00010000000100';
const signerBitvecPayload1 = Buffer.from(signerBitvecString1, 'hex');
const bitVec1 = BitVec.consensusDeserialize(signerBitvecPayload1);
expect(bitVec1.bits).toHaveLength(1);
expect(bitVec1.bits).toStrictEqual([false]);
expect(bitVec1.toString()).toBe('0');
expect(BitVec.consensusDeserializeToString(signerBitvecString1)).toBe('0');

const signerBitvecString2 = '000100000001ff';
const signerBitvecPayload2 = Buffer.from(signerBitvecString2, 'hex');
const bitVec2 = BitVec.consensusDeserialize(signerBitvecPayload2);
expect(bitVec2.bits).toHaveLength(1);
expect(bitVec2.bits).toStrictEqual([true]);
expect(bitVec2.toString()).toBe('1');
expect(BitVec.consensusDeserializeToString(signerBitvecString2)).toBe('1');

const signerBitvecString3 = '000300000001c0';
const signerBitvecPayload3 = Buffer.from(signerBitvecString3, 'hex');
const bitVec3 = BitVec.consensusDeserialize(signerBitvecPayload3);
expect(bitVec3.bits).toHaveLength(3);
expect(bitVec3.bits).toStrictEqual([true, true, false]);
expect(bitVec3.toString()).toBe('110');
expect(BitVec.consensusDeserializeToString(signerBitvecString3)).toBe('110');
});

0 comments on commit 8e03588

Please sign in to comment.