UNPKG

@node-lightning/wire

Version:
81 lines (73 loc) 4.25 kB
// tslint:disable: no-unused-expression import { BitField, ShortChannelId, Value } from "@node-lightning/core"; import { expect } from "chai"; import { ChannelUpdateMessage } from "../../lib/messages/ChannelUpdateMessage"; describe("ChannelUpdateMessage", () => { let input: Buffer; beforeEach(() => { input = Buffer.from( "010260957fec5b79b49303c1abe01b188842512c91ff465bdde51e255416e63bb293124a8dfea82644ee554ef8bd13d6ffbd20b6e297a1eae3c46ba1b188fd1d86c543497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea33090000000013a8b300011300005ca907fa0100009000000000000003e8000003e8000000010000000005f5e100", "hex", ); }); describe(".deserialize", () => { it("should deserialize without error", () => { const result = ChannelUpdateMessage.deserialize(input); expect(result.type).to.equal(258); expect(result.chainHash).to.deep.equal( Buffer.from( "43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000", "hex", ), ); expect(result.shortChannelId).to.deep.equal(new ShortChannelId(1288371, 275, 0)); expect(result.timestamp).to.equal(1554581498); expect(result.messageFlags.value).to.equal(BigInt(1)); expect(result.channelFlags.value).to.equal(BigInt(0)); expect(result.cltvExpiryDelta).to.equal(144); expect(Number(result.htlcMinimumMsat.msats)).to.equal(1000); expect(Number(result.htlcMaximumMsat.msats)).to.equal(100000000); expect(Number(result.feeBaseMsat.msats)).to.equal(1000); expect(Number(result.feeProportionalMillionths.microsats)).to.equal(1); expect(result.direction).to.equal(0); expect(result.disabled).to.be.false; }); }); describe(".serialize", () => { it("should serialize a message", () => { const instance = new ChannelUpdateMessage(); instance.signature = Buffer.from("60957fec5b79b49303c1abe01b188842512c91ff465bdde51e255416e63bb293124a8dfea82644ee554ef8bd13d6ffbd20b6e297a1eae3c46ba1b188fd1d86c5", "hex"); // prettier-ignore instance.chainHash = Buffer.from("43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000", "hex"); // prettier-ignore instance.shortChannelId = new ShortChannelId(1288371, 275, 0); instance.timestamp = 1554581498; instance.messageFlags = new BitField(BigInt(1)); instance.channelFlags = new BitField(BigInt(0)); instance.cltvExpiryDelta = 144; instance.htlcMinimumMsat = Value.fromMilliSats(1000); instance.htlcMaximumMsat = Value.fromMilliSats(100000000); instance.feeBaseMsat = Value.fromMilliSats(1000); instance.feeProportionalMillionths = Value.fromMicroSats(1); const result = instance.serialize(); expect(result.toString("hex")).to.deep.equal( "010260957fec5b79b49303c1abe01b188842512c91ff465bdde51e255416e63bb293124a8dfea82644ee554ef8bd13d6ffbd20b6e297a1eae3c46ba1b188fd1d86c543497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea33090000000013a8b300011300005ca907fa0100009000000000000003e8000003e8000000010000000005f5e100", ); }); }); describe(".validateSignature", () => { let input: Buffer; let nodeId: Buffer; it("should return true on valid signature", () => { input = Buffer.from( "01024e6eac97124742ba6a033612c8009945c0d52568756a885692b4adbf202666503b56ecb6f5758ea450dda940b2a6853b8e1706c3bd4f38a347be91b08c5e5c4743497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea33090000000013a90900000300005cdd9d780002009000000000000003e8000003e800000001", "hex", ); nodeId = Buffer.from( "036b96e4713c5f84dcb8030592e1bd42a2d9a43d91fa2e535b9bfd05f2c5def9b9", "hex", ); const instance = ChannelUpdateMessage.deserialize(input); const result = ChannelUpdateMessage.validateSignature(instance, nodeId); expect(result).to.be.true; }); }); });