@node-dlc/messaging
Version:
DLC Messaging Protocol
60 lines (52 loc) • 2.01 kB
text/typescript
import { expect } from 'chai';
import { DigitDecompositionEventDescriptor } from '../../lib/messages/EventDescriptor';
describe('DigitDecompositionEventDescriptorV0', () => {
describe('serialize', () => {
it('serializes', () => {
const instance = new DigitDecompositionEventDescriptor();
instance.length = BigInt(17);
/**
* NOTE: BASE IS INCORRECT FORMAT FOR DLC SPEC (SHOULD BE BIGSIZE)
* Will be fixed in oracle_announcement_v1
* https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md#version-0-digit_decomposition_event_descriptor
*/
instance.base = 2;
instance.isSigned = false;
instance.unit = 'btc/usd';
instance.precision = 0;
instance.nbDigits = 17;
expect(instance.serialize().toString("hex")).to.equal(
'fdd80a' + // type
'11' + // length
'0002' + // base (Switch to '02' with oracle_announcement_v1)
'00' + // isSigned
'07' + // unit_Len
'6274632f757364' + // btc/usd (unit)
'00000000' + // precision
'0011' // nb_digits
); // prettier-ignore
});
});
describe('deserialize', () => {
it('deserializes', () => {
const buf = Buffer.from(
'fdd80a' + // type
'11' + // length
'0002' + // base (Switch to '02' with oracle_announcement_v1)
'00' + // isSigned
'07' + // unit_Len
'6274632f757364' + // btc/usd (unit)
'00000000' + // precision
'0011' // nb_digits
, "hex"
); // prettier-ignore
const instance = DigitDecompositionEventDescriptor.deserialize(buf);
expect(Number(instance.length)).to.equal(17);
expect(instance.base).to.equal(2); // (Switch to Number(instance.base) with oracle_announcement_v1)
expect(instance.isSigned).to.equal(false);
expect(instance.unit).to.equal('btc/usd');
expect(instance.precision).to.equal(0);
expect(instance.nbDigits).to.equal(17);
});
});
});