Explicit Disclosure Java Bindings

Hello,

I’m working on a project that requires the use of explicit contract disclosure to allow some parties to execute some choices in ledger.
We were trying leverage the Java bindings to allow for this, but we noticed that there isn’t a public constructor for the ContractFilter class which we need to enable the inclusion of the created event blob (required as per the docs).
Can you help?

Best regards,
David Martins

Hi @David_Martins

I assumed you are interested in constructing a TransactionFilter (the return type of the ContractFilter.transactionFilter) that allows requesting the created event blob populated in the returned CreatedEvent payloads. Indeed the ContractFilter class doesn’t expose the high level functionality to allow this construction directly but we’ll add a method in the next release to support this

Until then, I suggest directly constructing the TransactionFilter to include the correct flag. As example for a Iou template:

    // Dummy requesting parties for the sake of the example
    Set<String> requestingParties = Set.of("Alice", "Bob");

    InclusiveFilter filter =
        new InclusiveFilter(
            Collections.emptyMap(),
            Collections.singletonMap(
                Iou.TEMPLATE_ID, Filter.Template.INCLUDE_CREATED_EVENT_BLOB));

    Map<String, Filter> partyToFilters =
        requestingParties.stream().collect(Collectors.toMap(Function.identity(), x -> filter));

    TransactionFilter transactionFilter = new FiltersByParty(partyToFilters);

Let us know if this solves your problem.

4 Likes

Hello

Thank you for the quick reply. This does indeed solve the issue as a workaround.