@node-dlc/wire
Version:
Lightning Network Wire Protocol
103 lines (95 loc) • 4.46 kB
text/typescript
import { expect } from 'chai';
import { QueryChannelRangeMessage } from '../../lib/messages/QueryChannelRangeMessage';
describe('QueryChannelRangeMessage', () => {
describe('.deserialize', () => {
it('standard message', () => {
const payload = Buffer.from("010743497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea3309000000000018df30000007d0", "hex"); // prettier-ignore
// query_channel_range
// 0107 - type 263
// 43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000 - chain_hash
// 0018df30 - first_blocknum 1630000
// 000007d0 - number_of_blocks 2000
const msg = QueryChannelRangeMessage.deserialize(payload);
expect(msg.type).to.equal(263);
expect(msg.chainHash.toString("hex")).to.equal("43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000"); // prettier-ignore
expect(msg.firstBlocknum).to.equal(1630000);
expect(msg.numberOfBlocks).to.equal(2000);
});
it('message with timestamp option', () => {
const payload = Buffer.from("010743497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea3309000000000018df30000007d0010101", "hex"); // prettier-ignore
// query_channel_range
// 0107 - type 263
// 43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000 - chain_hash
// 0018df30 - first_blocknum 1630000
// 000007d0 - number_of_blocks 2000
// 01 - TLV type 1
// 01 - TLV length 1 byte
// 01 - query option bitmask enable timestamp
const msg = QueryChannelRangeMessage.deserialize(payload);
expect(msg.type).to.equal(263);
expect(msg.chainHash.toString("hex")).to.equal("43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000"); // prettier-ignore
expect(msg.firstBlocknum).to.equal(1630000);
expect(msg.numberOfBlocks).to.equal(2000);
expect(msg.timestamps).to.equal(true);
});
it('message with timestamp and checksum options', () => {
const payload = Buffer.from("010743497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea3309000000000018df30000007d0010103", "hex"); // prettier-ignore
// query_channel_range
// 0107 - type 263
// 43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000 - chain_hash
// 0018df30 - first_blocknum 1630000
// 000007d0 - number_of_blocks 2000
// 01 - TLV type 1
// 01 - TLV length 1 byte
// 03 - query option bitmask enable timestamp and checksum
const msg = QueryChannelRangeMessage.deserialize(payload);
expect(msg.type).to.equal(263);
expect(msg.chainHash.toString("hex")).to.equal("43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000"); // prettier-ignore
expect(msg.firstBlocknum).to.equal(1630000);
expect(msg.numberOfBlocks).to.equal(2000);
expect(msg.timestamps).to.equal(true);
expect(msg.checksums).to.equal(true);
});
});
describe('.serialize', () => {
it('standard message', () => {
const msg = new QueryChannelRangeMessage();
msg.chainHash = Buffer.from(
'43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000',
'hex',
);
msg.firstBlocknum = 1630000;
msg.numberOfBlocks = 2000;
expect(msg.serialize().toString('hex')).to.equal(
'010743497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea3309000000000018df30000007d0',
);
});
it('message with timestamp option', () => {
const msg = new QueryChannelRangeMessage();
msg.chainHash = Buffer.from(
'43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000',
'hex',
);
msg.firstBlocknum = 1630000;
msg.numberOfBlocks = 2000;
msg.checksums = true;
expect(msg.serialize().toString('hex')).to.equal(
'010743497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea3309000000000018df30000007d0010102',
);
});
it('message with timestamp and checksum option', () => {
const msg = new QueryChannelRangeMessage();
msg.chainHash = Buffer.from(
'43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000',
'hex',
);
msg.firstBlocknum = 1630000;
msg.numberOfBlocks = 2000;
msg.checksums = true;
msg.timestamps = true;
expect(msg.serialize().toString('hex')).to.equal(
'010743497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea3309000000000018df30000007d0010103',
);
});
});
});