UNPKG

@node-dlc/messaging

Version:
88 lines (73 loc) 3.08 kB
import { expect } from 'chai'; import { ContractDescriptor, ContractDescriptorV0, } from '../../lib/messages/ContractDescriptor'; import { MessageType } from '../../lib/MessageType'; describe('ContractDescriptorV0', () => { const outcomeOne = Buffer.from( 'c5a7affd51901bc7a51829b320d588dc7af0ad1f3d56f20a1d3c60c9ba7c6722', 'hex', ); const payoutOne = BigInt(0); const outcomeTwo = Buffer.from( 'adf1c23fbeed6611efa5caa0e9ed4c440c450a18bc010a6c867e05873ac08ead', 'hex', ); const payoutTwo = BigInt(153314211); const outcomeThree = Buffer.from( '6922250552ad6bb10ab3ddd6981b530aa9a6fd05725bf85b59e3e51163905288', 'hex', ); const payoutThree = BigInt(200000000); describe('serialize', () => { it('serializes', () => { const instance = new ContractDescriptorV0(); instance.length = BigInt(121); instance.outcomes = [ { outcome: outcomeOne, localPayout: payoutOne }, { outcome: outcomeTwo, localPayout: payoutTwo }, { outcome: outcomeThree, localPayout: payoutThree }, ]; expect(instance.serialize().toString("hex")).to.equal( "fda710" + // type contract_descriptor "79" + // length "03" + // num_outcomes "c5a7affd51901bc7a51829b320d588dc7af0ad1f3d56f20a1d3c60c9ba7c6722" + // outcome_1 "0000000000000000" + // payout_1 "adf1c23fbeed6611efa5caa0e9ed4c440c450a18bc010a6c867e05873ac08ead" + // outcome_2 "00000000092363a3" + // payout_2 "6922250552ad6bb10ab3ddd6981b530aa9a6fd05725bf85b59e3e51163905288" + // outcome_3 "000000000bebc200" // payout_3 ); // prettier-ignore }); }); describe('deserialize', () => { it('deserializes', () => { const buf = Buffer.from( "fda710" + // type contract_descriptor "79" + // length "03" + // num_outcomes "c5a7affd51901bc7a51829b320d588dc7af0ad1f3d56f20a1d3c60c9ba7c6722" + // outcome_1 "0000000000000000" + // payout_1 "adf1c23fbeed6611efa5caa0e9ed4c440c450a18bc010a6c867e05873ac08ead" + // outcome_2 "00000000092363a3" + // payout_2 "6922250552ad6bb10ab3ddd6981b530aa9a6fd05725bf85b59e3e51163905288" + // outcome_3 "000000000bebc200" // payout_3 , "hex" ); // prettier-ignore const unknownInstance = ContractDescriptor.deserialize(buf); if (unknownInstance.type === MessageType.ContractDescriptorV0) { const instance = unknownInstance as ContractDescriptorV0; expect(Number(instance.length)).to.equal(121); expect(instance.outcomes.length).to.equal(3); expect(instance.outcomes[0].outcome).to.deep.equal(outcomeOne); expect(instance.outcomes[0].localPayout).to.equal(payoutOne); expect(instance.outcomes[1].outcome).to.deep.equal(outcomeTwo); expect(instance.outcomes[1].localPayout).to.equal(payoutTwo); expect(instance.outcomes[2].outcome).to.deep.equal(outcomeThree); expect(instance.outcomes[2].localPayout).to.equal(payoutThree); } }); }); });