Create automated task executions using our typescript SDK:
NPM Package
How to use
Install automate-sdk:
yarn add @gelatonetwork/automate-sdk
Import AutomateSDK:
import { AutomateSDK } from "@gelatonetwork/automate-sdk";
Instantiate the SDK with your signer:
const automate = new AutomateSDK(chainId, signer);
Use createTask to automate your function calls:
interface CreateTaskOptions {
name: string; // your task name
// Function to execute
execAddress: string; // address of your target smart contract
execSelector: string; // function selector to execute on your target smart contract
execAbi?: string; // ABI of your target smart contract
// Proxy caller
dedicatedMsgSender: boolean; // task will be called via a dedicated msg.sender which you can whitelist (recommended: true)
// Optional: Pre-defined / static target smart contract inputs
execData?: string; // exec call data
// Optional: Dynamic target smart contract inputs (using a resolver)
resolverAddress?: string; // resolver contract address
resolverData?: string; // resolver call data (encoded data with function selector)
resolverAbi?: string; // your resolver contract ABI
// Optional: Time based task params
interval?: number; // execution interval in seconds
startTime?: number; // start timestamp in seconds or 0 to start immediately (default: 0)
// Optional: Single execution task
singleExec?: boolean; // task cancels itself after 1 execution if true.
// Optional: Payment params
useTreasury?: boolean; // use false if your task is self-paying (default: true)
}
const params: CreateTaskOptions = { name, execAddress, execSelector, interval };
const { taskId, tx }: TaskTransaction = await automate.createTask(params);
Use a resolver contract to automate your function call:
If you need more configurable execution condition and/or dynamic input data, you can create a task using a resolver function (learn how to write a resolver).