Use On-chain Scheduler

You can use the on-chain scheduler contract to schedule a recurring call to execute a given smart contract. Read more on use cases for the on-chain auto-scheduler here.

Contract source code here.

Note: the min_delay is minimum number of blocks after current blocks before the scheduled call will be called. i.e. Pass 0 means it will be scheduled to be called on next block. Calling scheduleCall with min_delay = 5 on block 10 will scheduled the call on block 10 + 1 + 5 = 16. If the block are full or there are too many other scheduled tasks, the scheduled call could be deferred to later blocks until there is enough remaining spaces in the block.

Contract Address

ScheduleCall contract address: 0x0000000000000000000000000000000000000808

Contract Methods

// Schedule call the contract.
// Returns the task_address(block_number, index).
function scheduleCall(
  address contract_address, // The contract address to be called in future.
  uint256 value, // How much native token to send alone with the call.
  uint256 gas_limit, // The gas limit for the call. Corresponding fee will be reserved upfront and refunded after call.
  uint256 storage_limit, // The storage limit for the call. Corresponding fee will be reserved upfront and refunded after call.
  uint256 min_delay, // Minimum number of blocks before the scheduled call will be called.
  bytes memory input_data // The input data to the call.
)
public
returns (uint256, uint256); // Returns a task id that can be used to cancel or reschedule call.

Example

Here's a recurring payment contract example using the scheduler.

Tutorial

Follow this tutorial to write and deploy a basic automatic subscription contract on Acala EVM.

Last updated