This package enables the creation of large contracts. A Marlowe contract is a Tree structure, and if the tree is big enough it won't fit on the blockchain. To solve that, the Marlowe Core specification has a concept called Merkleization, which represents large contract as a Merkle tree's. The splitting and hashing of a large contract into a Merkle Tree is done through the runtime calls (createContractSources), and we use
marlowe-object to define the large contract in a more approachable way. The types of the
marlowe-object are very similar to the types of the
marlowe-core package, but without the Merkleization part and with the adition of
references in some types. For example, a contract can use a reference as a sub-contract instead of inlining it, allowing commonly repeated contracts to be defined once and referenced many times.