mirror of
https://github.com/fluencelabs/aquavm
synced 2025-03-27 01:41:12 +00:00
BREAKING CHANGE: 1. Call values in the trace have CID references to structures that have call arguments' hash and CID references to values and tetraplets. 2. If call value is unused, it is serialized with `Unused` variant, and CID references are not stored. Previous data scheme was (Scalar as an example, other cases are similar): ``` Scalar(CID<JValue>) ---<value_store>----> JValue ``` New data scheme is much more sophisticated: ``` Scalar(CID<ServiceResultAggregate>) ---+ | +----<service_result_store>----------+ | +-------> ServiceResultAggregate: value_cid ------------<value_store>----> JValue tetraplet_cid --------<tetraplet_store>----> SecurityTetraplet argument_hash: String ``` `Stream` variant is similar, however, `Unused` is different: it has value CID only, but the value is not stored into the `value_store`: ``` Unused(Rc<CID<JValue>>) ---> X ``` Co-authored-by: Mike Voronov <michail.vms@gmail.com>