UNPKG

@node-dlc/messaging

Version:
79 lines (68 loc) 2.66 kB
import { expect } from 'chai'; import { HyperbolaPayoutCurvePiece } from '../../lib/messages/PayoutCurvePiece'; import { PayoutFunctionV0 } from '../../lib/messages/PayoutFunction'; describe('PayoutFunctionV0', () => { describe('serialize', () => { it('serializes', () => { const instance = new PayoutFunctionV0(); instance.endpoint0 = BigInt(50000); instance.endpointPayout0 = BigInt(100000); instance.extraPrecision0 = 0; const payoutCurvePiece = HyperbolaPayoutCurvePiece.deserialize( Buffer.from( 'fda72c23010100000000fd1388000001010000010000000100000001ff000000012a05f2000000', 'hex', ), ); instance.pieces = [ { payoutCurvePiece, endpoint: BigInt(999999), endpointPayout: BigInt(0), extraPrecision: 0, }, ]; expect(instance.serialize().toString("hex")).to.equal( 'fda726' + // type '3b' + // length '0001' + // num_pieces 'fdc350' + // endpoint_0 'fe000186a0' + // endpoint_payout_0 '0000' + // extra_precision 'fda72a23010100000000fd1388000001010000010000000100000001ff000000012a05f2000000' + // payout_curve_piece 'fe000f423f' + // endpoint_1 '00' + // endpoint_payout_1 '0000' // extra_precision_1 ); // prettier-ignore }); }); describe('deserialize', () => { it('deserializes', () => { const buf = Buffer.from( 'fda726' + // type '3b' + // length '0001' + // num_pieces 'fdc350' + // endpoint_0 'fe000186a0' + // endpoint_payout_0 '0000' + // extra_precision 'fda72c23010100000000fd1388000001010000010000000100000001ff000000012a05f2000000' + // payout_curve_piece 'fe000f423f' + // endpoint_1 '00' + // endpoint_payout_1 '0000' // extra_precision_1 , 'hex'); // prettier-ignore const instance = PayoutFunctionV0.deserialize(buf); expect(instance.endpoint0).to.equal(BigInt(50000)); expect(instance.endpointPayout0).to.equal(BigInt(100000)); expect(instance.extraPrecision0).to.equal(0); expect(instance.pieces.length).to.equal(1); expect( instance.pieces[0].payoutCurvePiece.serialize().toString('hex'), ).to.equal( 'fda72a23010100000000fd1388000001010000010000000100000001ff000000012a05f2000000', ); expect(instance.pieces[0].endpoint).to.equal(BigInt(999999)); expect(instance.pieces[0].endpointPayout).to.equal(BigInt(0)); expect(instance.pieces[0].extraPrecision).to.equal(0); }); }); });