@node-dlc/messaging
Version:
DLC Messaging Protocol
76 lines (60 loc) • 2.44 kB
text/typescript
import { expect } from 'chai';
import {
OrderAccept,
OrderAcceptContainer,
} from '../../lib/messages/OrderAccept';
import { OrderNegotiationFieldsV0 } from '../../lib/messages/OrderNegotiationFields';
describe('OrderAccept', () => {
const tempOrderId = Buffer.from(
'960fb5f7960382ac7e76f3e24eb6b00059b1e68632a946843c22e1f65fdf216a',
'hex',
);
const tempOrderId2 = Buffer.from(
'0ef55fca0e3d0a95609ddce833d2f8ba6c2ee37bbe8583bc2068256c51a32914',
'hex',
);
describe('serialize', () => {
it('serializes', () => {
const instance = new OrderAccept();
instance.tempOrderId = tempOrderId;
instance.negotiationFields = new OrderNegotiationFieldsV0();
expect(instance.serialize().toString("hex")).to.equal(
"f534" + // type order_accept_v0
"960fb5f7960382ac7e76f3e24eb6b00059b1e68632a946843c22e1f65fdf216a" + // temp_order_id
"01" + // has negotiation fields (0x01)
"00" // SingleOrderNegotiationFields discriminator (0x00)
); // prettier-ignore
});
});
describe('deserialize', () => {
it('deserializes', () => {
const buf = Buffer.from(
"f534" + // type order_accept_v0
"960fb5f7960382ac7e76f3e24eb6b00059b1e68632a946843c22e1f65fdf216a" + // temp_order_id
"01" + // has negotiation fields (0x01)
"00" // SingleOrderNegotiationFields discriminator (0x00)
, "hex"
); // prettier-ignore
const instance = OrderAccept.deserialize(buf);
expect(instance.tempOrderId).to.deep.equal(tempOrderId);
expect(instance.negotiationFields.serialize().toString('hex')).to.equal(
'00',
);
});
});
describe('OrderAcceptContainer', () => {
it('should serialize and deserialize', () => {
const orderAccept = new OrderAccept();
orderAccept.tempOrderId = tempOrderId;
orderAccept.negotiationFields = new OrderNegotiationFieldsV0();
// swap payout and change spk to differentiate between dlcoffers
const orderAccept2 = OrderAccept.deserialize(orderAccept.serialize());
orderAccept2.tempOrderId = tempOrderId2;
const container = new OrderAcceptContainer();
container.addAccept(orderAccept);
container.addAccept(orderAccept2);
const instance = OrderAcceptContainer.deserialize(container.serialize());
expect(container.serialize()).to.deep.equal(instance.serialize());
});
});
});