* disclosures: support in engine
This adds support for contract disclosures in the engine.
Fixes#13863.
CHANGELOG_BEGIN
CHANGELOG_END
* move VersionedContractInstance to Value
* normalization/typechecking
* Update daml-lf/engine/src/main/scala/com/digitalasset/daml/lf/engine/Error.scala
Co-authored-by: Remy <remy.haemmerle@daml.com>
* Update daml-lf/engine/src/main/scala/com/digitalasset/daml/lf/engine/preprocessing/CommandPreprocessor.scala
Co-authored-by: Remy <remy.haemmerle@daml.com>
* Update daml-lf/engine/src/main/scala/com/digitalasset/daml/lf/engine/preprocessing/CommandPreprocessor.scala
Co-authored-by: Remy <remy.haemmerle@daml.com>
* remove processImmArray
* throw exception in foldl
* check for duplicate contract keys in disclosures
* added issue for removal of empty disclosure assertion
* format
CHANGELOG_BEGIN
CHANGELOG_END
Co-authored-by: Remy <remy.haemmerle@daml.com>
Simplifies ID fetching logic
Removes dead code / tests
Cleans up factories (Materializer not needed anymore)
Simplifies ConcurrencyLimiter interface
Adds/cleans up unit tests
CHANGELOG_BEGIN
CHANGELOG_END
* add tests for large maps and lists
* add many iterations on exercise
* format
* clean up
CHANGELOG_BEGIN
CHANGELOG_END
* fix broken build
* Incorporate review comments
Previous approach was generating random bytes
and encoding them into UTF-8 strings.
This turned out to be problematic as not every
random byte sequence is valid in the UTF-8 charset, and
`java.lang.String#String(byte[], java.lang.String)` constructor's
documentation states that in such cases its behavior
is unspecified.
In practice the size of the byte array obtained from decoding the
generated string was almost twice the size of the orginal byte array.
Current approach limits the generated bytes to valid ASCII characters,
each of which takes exactly one byte in UTF-8 encoding.
changelog_begin
changelog_end
We obtain non-empty non-stakeholder informees by performing an immediate divulgence of instances of Foo1, Foo2 or Foo3 templates through instances of a helper Divulger template.
The divulgence is controlled by 1) configuring the number of all divulgees to generated and 2) probabilistically picking a non-empty subset from all divulgees for each contract (similar to how observers are picked for each contract with certain probabilities). If the divulgees for a contract are non-empty a Foo1, Foo2 or Foo3 contract is created via a helper choice on a Divulger contract. Otherwise a standard create Foo1, Foo2 or Foo3 command is issued.
Each Divulger contract can divulge any number of Foo1, Foo2 or Foo3 contracts but it's limited to divulging to a fixed set of divulgees. In other words, there is a separate Divulger contract for each non-empty subset of all divulgees.
We expect the set of all divulgees to be very small in practice similar to how only a small number observers (currently at most 3) is currently configured for existing benchmarks. Thus, the set of all subsets is also small.
To be conservative, we allow the number of divulgees to be at most 5.
changelog_begin
changelog_end
- Wait for confirmation for all submissions when setting time model
- Do not ignore authorization errors, this is done so that we are consistent across tests (exclusions should be used if required)
changelog_begin
changelog_end
Previously a fire and forget release process
was implemented, which in corner cases could
result in exceptions, as API stream was still running after DbDispatcher was released.
This PR changes to waiting for all the streams to finish as releasing Dispatcher (with a timeout of 5 seconds).
CHANGELOG_BEGIN
CHANGELOG_END
Fixes Index DB insertion order for childEventId.
Adds backwards compatibility treatment: recovering childEventId
order from the order of events at API stream rendering.
Extends TransactionServiceVisibilityIT with the ordering criterion.
Fixes compatibility tests with exclusion.
Adds documentation to event.proto.
CHANGELOG_BEGIN
Fixing Ledger API Bug: Exercise nodes in transaction trees
have child_event_ids out of order.
CHANGELOG_END
This PR fixes an issue with the ACS ID page retrieval: if there is one
of the id page DB fetching is slow, all the rest of the ID fetching
lanes getting fetched, due to continuous demand.
We implemented a treatment to cap the increased number of ID pages
accumulated in memory, by failing the stream.
Switching to mapAsync in pullWorkerSource naturally will
stop demand, in case a single query takes too long.
This also removes the need for the queue size limitting treatment.
* Switches to mapAsync in pullWorkerSource
* Fixes unit test
* Removes queue limiting feature (as it is not necessary anymore)
CHANGELOG_BEGIN
CHANGELOG_END
* ifaces:support exercising by required interface
This adds support to exercise an interface choice on a contract ID,
where the interface is required by one of the implemented interfaces of
the contract template.
Fixes#13434.
CHANGELOG_BEGIN
CHANGELOG_END
* some improvements based on review
* added a test plus a bugfix
* Update daml-lf/interpreter/src/main/scala/com/digitalasset/daml/lf/speedy/PhaseOne.scala
Co-authored-by: Sofia Faro <sofia.faro@digitalasset.com>
* 2 more interface tests for the command preprocessor
Co-authored-by: Sofia Faro <sofia.faro@digitalasset.com>
* Use event partitions directly
changelog_begin
changelog_end
* it's more complicated
* fix query
* don't use divulgence to look up events
* fix query
* Remove commented out code
* Fix query
* fmt
* Actually remove the events view
at least on Postgres
* Remove view from Oracle
* Remove view from H2
* Fix hash
* fix boolean constants for oracle
* Add new test
This test currently fails on Oracle
changelog_begin
changelog_end
* Fix deleting partial data
... if the indexer crashes before writing the first ledger end
* Adding section to error codes page and updating descriptions
CHANGELOG_BEGIN
CHANGELOG_END
Added a section in the error codes page and improved description to errors
* Removing the multi-line descriptions
* Changing the added sentence
swapping 'due to security reasons' 'for security reasons'
* Updated formatting
Ran the fmt.sh script to give me the correct formatting.
* Updating the generated error codes
CHANGELOG_BEGIN
CHANGELOG_END
Updating the generated error codes
* Implemented race conditions test for mutable contract state cache upload
changelog_begin
[Ledger API] A race condition bug is fixed in the Ledger API mutable contract state cache.
The bug allowed the cache to become corrupted with stale references when the Ledger API
was subjected to concurrent submissions racing to update/fetch the same contract key.
The stale references were causing the Ledger API to erroneously reject submissions in
certain corner-cases.
changelog_end
* Pull cache indexes to StateCache
* Passes the test
* Fixing StateCacheSpec and MutabelCacheBackedContractStoreSpec
* Added invalidate test to ConcurrentCacheCachingSpecBase
* Address Marton's review comments
* Do not log a warn on negative contract lookups
* Update cache outside the source restart