Skip to content

Triggers ​

Triggers bind an event filter to an executable action. When an event matches the trigger's filter, Iroha evaluates the trigger action as part of block execution.

Structure ​

A registered Trigger contains:

  • id: a TriggerId wrapping a Name
  • action: the executable, authority, filter, repetition policy, retry policy, and metadata

The action contains:

  • executable: Instructions, ContractCall, Ivm, or IvmProved
  • repeats: Indefinitely or Exactly(n)
  • authority: the account that invokes the executable
  • filter: an EventFilterBox
  • retry_policy: optional retry behavior for scheduled time triggers
  • metadata: arbitrary trigger metadata

Event Filters ​

Trigger conditions use the same event-filter model as subscriptions. The top-level event filter can match:

  • pipeline events
  • data events
  • time events
  • trigger execution events
  • trigger completion events

Prefer the narrowest filter that matches the workflow. Broad filters are useful for diagnostics, but they increase work during block execution.

See Filters for the current filter families.

Time Triggers ​

Time triggers use a time event filter. When the world state view reaches a matching time condition, Iroha executes the trigger action under the trigger authority. Time triggers are the trigger kind that can use the retry policy described below.

Repetition ​

Repeats::Indefinitely keeps a trigger active until it is unregistered.

Repeats::Exactly(n) allows the trigger to fire a fixed number of times. When the count is exhausted, register a new trigger if the same behavior is needed again.

Authority and Permissions ​

The trigger authority is the account used to invoke the executable. Use a dedicated technical account for long-lived triggers so the required permissions are explicit and isolated from an operator's personal account.

The authority needs the permissions required by the executable instructions or contract call. The account registering the trigger also needs permission to register triggers under the active runtime validator.

Retry Policy ​

Time triggers can opt into a retry policy. A retry policy sets:

  • max_retries: how many retry attempts are allowed after an initial failed firing
  • retry_after_ms: how long Iroha waits before a retry becomes eligible

When the retry budget is exhausted, the trigger is unregistered.

Queries ​

Use the current trigger queries to inspect trigger state:

See also: