lorentz-0.1.0: EDSL for the Michelson Language

Safe HaskellNone
LanguageHaskell2010

Lorentz.UStore.Migration.Batching

Contents

Description

Different approaches to batching.

For now we do not support perfect batching because operation size evaluation (as well as gas consumption evaluation) is not implemented yet. The only non-trivial batching implementation we provide is mbSeparateLambdas.

Synopsis

Separate-lambdas batching

data SlBatchType Source #

Type of batch.

Constructors

SlbtData

Addition of any type of data.

SlbtLambda

Addition of code.

SlbtCustom

Several joined actions of different types.

SlbtUnknown

No information to chooseType about batching. This means that the given action does not contain DMigrationActionDesc.

data SlBatchInfo Source #

Constructors

SlBatchInfo 
Instances
Buildable SlBatchInfo Source # 
Instance details

Defined in Lorentz.UStore.Migration.Batching

Methods

build :: SlBatchInfo -> Builder #

mbSeparateLambdas :: MigrationBatching [] SlBatchInfo Source #

Puts all data updates in one batch, and all lambdas in separate batches, one per batch.

The reason for such behaviour is that in production contracts amount of changed data (be it in contract initialization or contract upgrade) is small, while stored entrypoints are huge and addition of even one entrypoint often barely fits into gas limit.