UNPKG

@mutants/cardano-tx-builder

Version:

A package that provides utility functions to build and destructure a cardano transaction

93 lines (92 loc) 5.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const cbor_1 = require("cbor"); const mocks_1 = require("../__mocks__/mocks"); const encodeOutputs_1 = require("../encodeOutputs"); describe("encodeOutputs", () => { test("should correctly encode a simple ADA output", () => { expect((0, cbor_1.encode)((0, encodeOutputs_1.encodeOutputs)([ { address: mocks_1.MOCK_ADDRESSES.A, value: { coin: 50000000, }, }, ])).toString("hex")).toEqual("81a200583901adde9a635f548fa97b666b25cf4f3ee4d86aedc83b62aa2c3785be28500ed9cebc7535c4c49c9a8f3414ca34dbdfeda4fca29c06cccadbdf011a02faf080"); }); test("should correctly encode an output with ADA and assets", () => { expect((0, cbor_1.encode)((0, encodeOutputs_1.encodeOutputs)([ { address: mocks_1.MOCK_ADDRESSES.A, value: { coin: 50000000, assets: { [mocks_1.MOCK_POLICY_IDS.A]: { [mocks_1.MOCK_ASSET_NAMES.A]: 1n, }, }, }, }, ])).toString("hex")).toEqual("81a200583901adde9a635f548fa97b666b25cf4f3ee4d86aedc83b62aa2c3785be28500ed9cebc7535c4c49c9a8f3414ca34dbdfeda4fca29c06cccadbdf01821a02faf080a1581c2d37295347d9fbd197ecfd0e4ddef32ef757083c23985049326a5411a14e000de1404d5554414e543235353701"); }); test("should correctly encode an output with ADA, assets and inline datum", () => { const output = { address: mocks_1.MOCK_ADDRESSES.A, value: { coin: 50000000, assets: { [mocks_1.MOCK_POLICY_IDS.A]: { [mocks_1.MOCK_ASSET_NAMES.A]: 1n, }, }, }, datumInlined: "9f47454e434f494e5347506f6c6c202333581c87a3a41ac8d8c4d31b72de9d74e3c58bb4b295593ba6703876181b5a43596573ff", }; expect((0, cbor_1.encode)((0, encodeOutputs_1.encodeOutputs)([output])).toString("hex")).toEqual("81a300583901adde9a635f548fa97b666b25cf4f3ee4d86aedc83b62aa2c3785be28500ed9cebc7535c4c49c9a8f3414ca34dbdfeda4fca29c06cccadbdf01821a02faf080a1581c2d37295347d9fbd197ecfd0e4ddef32ef757083c23985049326a5411a14e000de1404d5554414e543235353701028201d81858349f47454e434f494e5347506f6c6c202333581c87a3a41ac8d8c4d31b72de9d74e3c58bb4b295593ba6703876181b5a43596573ff"); }); test("should correctly encode an output with ADA, assets and datum hash", () => { const output = { address: mocks_1.MOCK_ADDRESSES.A, value: { coin: 50000000, assets: { [mocks_1.MOCK_POLICY_IDS.A]: { [mocks_1.MOCK_ASSET_NAMES.A]: 1n, }, }, }, datumHash: "815b18757c19dfbcf303f6f2f215c30a67b53dfe8f3f3a3a3e7a408fd9d9d34c", }; expect((0, cbor_1.encode)((0, encodeOutputs_1.encodeOutputs)([output])).toString("hex")).toEqual("81a300583901adde9a635f548fa97b666b25cf4f3ee4d86aedc83b62aa2c3785be28500ed9cebc7535c4c49c9a8f3414ca34dbdfeda4fca29c06cccadbdf01821a02faf080a1581c2d37295347d9fbd197ecfd0e4ddef32ef757083c23985049326a5411a14e000de1404d5554414e5432353537010282005820815b18757c19dfbcf303f6f2f215c30a67b53dfe8f3f3a3a3e7a408fd9d9d34c"); }); test("should correctly encode an output with ordered assets and policys", () => { const output = { address: mocks_1.MOCK_ADDRESSES.A, value: { coin: 50000000, assets: { [mocks_1.MOCK_POLICY_IDS.B]: { [mocks_1.MOCK_ASSET_NAMES.B]: 1n, [mocks_1.MOCK_ASSET_NAMES.C]: 1n, }, [mocks_1.MOCK_POLICY_IDS.A]: { [mocks_1.MOCK_ASSET_NAMES.A]: 1n, }, }, }, datumHash: "815b18757c19dfbcf303f6f2f215c30a67b53dfe8f3f3a3a3e7a408fd9d9d34c", }; expect((0, cbor_1.encode)((0, encodeOutputs_1.encodeOutputs)([output])).toString("hex")).toEqual("81a300583901adde9a635f548fa97b666b25cf4f3ee4d86aedc83b62aa2c3785be28500ed9cebc7535c4c49c9a8f3414ca34dbdfeda4fca29c06cccadbdf01821a02faf080a2581c2d37295347d9fbd197ecfd0e4ddef32ef757083c23985049326a5411a14e000de1404d5554414e543235353701581c73056bffdf28f82da5db1f5ac7c06d030c8a551f43889f7f85746a4aa2495052454431333834330149505245443133383434010282005820815b18757c19dfbcf303f6f2f215c30a67b53dfe8f3f3a3a3e7a408fd9d9d34c"); }); test("should correctly encode an output when there is an empty assets object", () => { const output = { address: mocks_1.MOCK_ADDRESSES.A, value: { coin: 50000000, assets: {}, }, datumHash: "815b18757c19dfbcf303f6f2f215c30a67b53dfe8f3f3a3a3e7a408fd9d9d34c", }; expect((0, cbor_1.encode)((0, encodeOutputs_1.encodeOutputs)([output])).toString("hex")).toEqual("81a300583901adde9a635f548fa97b666b25cf4f3ee4d86aedc83b62aa2c3785be28500ed9cebc7535c4c49c9a8f3414ca34dbdfeda4fca29c06cccadbdf011a02faf0800282005820815b18757c19dfbcf303f6f2f215c30a67b53dfe8f3f3a3a3e7a408fd9d9d34c"); }); });