Skip to main content

pact-state

Use pact-state to inspect state from most the recent defpact step execution. This function returns an object with the following fields:

  • pactId: defpact identifier.
  • yield: yield result or false if the step didn't produce a yield.
  • step: executed step number.
  • executed: indicates if step was skipped because entity did not match.

You can clear the defpact state from the REPL by including the optional clear argument set to true.

Basic syntax​

To query the current state of the latest defpact execution, use the following syntax:

(pact-state)

To query and clear the defpact state from the REPL, use the following syntax:

(pact-state true)

Arguments​

Use the following argument to clear the most recent defpact step executed from the REPL state:

ArgumentTypeDescription
clearboolClear the latest executed defpact from the REPL state (optional).

Return value​

This function returns an object with the following fields:

  • pactId: defpact identifier
  • yield: yield result or false, if the step didn't produce a yield
  • step: executed step
  • executed: indicates if step was skipped because entity did not match

Examples​

The following example demonstrates creating a module with a defpact, executing the first step, then querying the execution context using the pact-state function:

pact> (module m g (defcap g () true) (defpact foo () (step (yield {"hello":1})) (step "done!")))
"Loaded module m, hash LkeXOLGPdDYhWfXWngJhQmn6-D0pYNaxGHvP_Nyl6Yg"

pact> (foo)
{"hello": 1}

pact> (pact-state)
{"pactId": "DldRwCblQ7Loqy6wYJnaodHl30d3j3eH-qtFzfEv46g","step": 0,"yield": {"hello": 1}}

The following example clears the defpact execution context from the REPL:

(pact-state true)
{"pactId": "DldRwCblQ7Loqy6wYJnaodHl30d3j3eH-qtFzfEv46g","step": 0,"yield": {"hello": 1}}