How to use the event-based trigger
The event-based trigger is a trigger that is executed when a specific event occurs on the blockchain. This trigger is useful when you want to automate a specific action based on a specific event, such as ERC-20 transfers.
Create the automations client
First, create an instance of the Automations
client:
import { createAutomationClient } from "@rhinestone/automations-sdk";
const automationClient = createAutomationClient({
account: "0x...",
accountType: 'SAFE', // 'SAFE', 'KERNEL',
apiKey: "YOUR_API_KEY",
accountInitCode: "0x",
network: 11155111,
validator: "0x...",
});
Create the automation details
Next, create the automation details:
const actions = [
{
type: "static",
target: "0x503b54Ed1E62365F0c9e4caF1479623b08acbe77",
value: 100,
callData: "0x",
},
];
const maxNumberOfExecutions = 10;
Here, the actions are an array of actions to make on behalf of the account. They can either be static, in which case all the calldata is pre-defined, or dynamic, in which case the calldata is generated by a call to a calldata builder service. The maxNumberOfExecutions
is the number of times the automation will be executed.
Create the event based trigger details
Next, create the event based trigger details:
triggerData: {
query: '{\n block {\n transactions (filter:{addresses:{to:"0xc2b17e73603dccc195118a36f3203134fd7985f5"}}) {\n value,\n hash,\n from {\n address\n }\n }\n }\n}';
}
Here, the query
is a GraphQL query that defines the filter for the events. Check out the GraphQL API (opens in a new tab) to get the required query.
Create the automation
Finally, create the automation:
const automation = await automationClient.createAutomation({
type: "event-based",
data: {
trigger: {
triggerData,
},
actions,
maxNumberOfExecutions,
},
});