daml/triggers/service/test-model/TestTrigger.daml
Gary Verhaegen 151e12b81a
bump copyright (#16002)
This is the result of:

- Updating `./COPY` to say `2023`.
- Running `./dev-env/bin/dade-copyright-headers update .`
2023-01-04 18:21:15 +01:00

79 lines
1.4 KiB
Haskell

-- Copyright (c) 2023 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
-- SPDX-License-Identifier: Apache-2.0
module TestTrigger where
import DA.Action
import DA.Foldable
import Daml.Trigger
import Daml.Script (script)
template A
with
p : Party
v : Int
where
signatory p
template B
with
p : Party
v : Int
where
signatory p
trigger : Trigger ()
trigger = Trigger with
initialize = pure ()
updateState = \_ -> pure ()
rule = triggerRule
registeredTemplates = AllInDar
heartbeat = None
triggerRule : Party -> TriggerA () ()
triggerRule p = do
as <- filter (\(_, a) -> a.p == p) <$> query @A
bs <- map (\(_, B x y) -> (x,y)) . filter (\(_, b) -> b.p == p) <$> query @B
forA_ as $ \(aCid, A x y) ->
when ((x,y) `notElem` bs) $
void $ emitCommands [createCmd (B x y)] [toAnyContractId aCid]
pure ()
-- This is a dummy definition to make sure
-- that we blow the default protobuf recursion limit
-- and thereby test that we decode using the raised limit.
_protobufrecursionlimit y = script do
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
pure ()
y