Matches

When a trigger... gets triggered

Every time a Trigger gets triggered it results in the creation of a Match. There is a different Match type for every given Trigger: EventsTriggerMatch, ContractsTriggerMatch and TransactionTriggerMatch.

Here is what they look like:

TransactionsTriggerMatch

type TransactionsTriggerMatch implements Match {
UUID: UUID!
createdAt: Timestamp!
trigger: TransactionsTrigger!
decoded: Decoded
block: Block!
transaction: Transaction!
}

the Decoded field is defined as follows:

type Decoded {
method: Method
arguments: [JSON]
}

and represents the decoded input data used for the specific transaction that matched.

ContractsTriggerMatch

type ContractsTriggerMatch implements Match {
UUID: UUID!
createdAt: Timestamp!
trigger: ContractsTrigger!
contract: Contract
method: Method!
returnedValues: ReturnedValues!
block: Block!
}

contract is a type that contains information about the matching contract:

type Contract {
address: Address!
abi: JSON
}

method is the name of the function that was invoked on the contract and whose output matched the correspondent Trigger.

Lastly, ReturnedValues is defined as follow

type ReturnedValues {
matched: [JSON!]!
all: [JSON]
}

and contains information on all the values returned by the function call (all), as well a the specific value(s) which matched the Trigger description (matched).

EventsTriggerMatch

type EventsTriggerMatch implements Match {
UUID: UUID!
createdAt: Timestamp!
trigger: EventsTrigger!
decoded: Decoded
log: Log!
block: Block!
transaction: Transaction!
}

the Decoded type contains information on the matching Event Name that was emitted, as well as its arguments (the values in the data and topic fields)

type Decoded {
method: Method
arguments: [JSON]
}