Tasks

Tasks execute core logic for a midpoint.

The execution of a midpoint happens in Tasks. Tasks represent a single step in a sequence -which can trigger an on-chain or off-chain action, retrieve on-chain or off-chain data, or transform data to be used by later tasks. By connecting an arbitrary number of tasks together, a midpoint represents a particular workflow for a request.

Make HTTP Request

The Make HTTP Request task is a powerful task used for making calls to any off-chain endpoint.

The Make HTTP Request task can be used to query off-chain data APIs, post updates to social feeds, pipe data to off-chain compute, and for internal services. This task is designed to cover a broad scope of potential use cases with support for arbitrary URLs, Headers, Body along with multiple pre-built Authentication types, and built-in JSON path parsing to pull out extracted values.

For more information about the Make HTTP Request task, go to Make HTTP Request.

{
    "makeHttpRequest": {
        "method": "",
        "urlRaw": "",
        "urlType": "built",
        "url": {
            "protocol": "",
            "domain": "",
            "path": "",
            "queryParameters": [
                {
                    "key": "",
                    "value": ""
                }
            ]
        },
        "bodyType": "json",
        "body": "",
        "authType": "bearer",
        "auth": {
            "bearer": "",
            "basic": {
                "key": "",
                "value": ""
            },
            "apiQuery": {
                "key": "",
                "value": ""
            },
            "apiHeader": {
                "key": "",
                "value": ""
            }
        },
        "headers": [
            {
                "key": "",
                "value": ""
            }
        ],
        "extracts": [
            {
                "name": "",
                "from": ""
            }
        ],
        "excludeLogs": []
    }
}

Transact To EVM Function Testnet

The Transact To EVM Function Testnet task allows you to submit a transaction to any testnet that we support. This task is designed to be able to support any solidity data type, including arrays, allowing for complex on-chain workflows. Any logic in your smart contract will be executed.

This task is used in many common midpoints, including oracles, data feeds, data bridges, cross-chain applications, and automation.

A full list of supported chains that can be found at Chain IDs. For more information about the Transact To EVM Function Testnet task, go to Transact to EVM Function.

{
    "transactToEvmFunctionTestnet": {
        "chainId": "",
        "contractAddress": "",
        "functionName": "",
        "arguments": [
            {
                "name": "",
                "datatype": "",
                "value": ""
            }
        ],
        "extracts": [
            {
                "name": "",
                "from": ""
            }
        ],
        "excludeLogs": []
    }
}

Transact To EVM Function Mainnet

The Transact To EVM Function Mainnet task is identical to the Transact To EVM Function Testnet task, but submits transactions on Mainnet. For more information about the Transact To EVM Function Mainnet task, go to Transact to EVM Function.

{
    "transactToEvmFunctionTestnet": {
        "chainId": "",
        "contractAddress": "",
        "functionName": "",
        "arguments": [
            {
                "name": "",
                "datatype": "",
                "value": ""
            }
        ],
        "extracts": [
            {
                "name": "",
                "from": ""
            }
        ],
        "excludeLogs": []
    }
}

Call EVM Function

The Call EVM Function task allows you to obtain any on-chain data to your midpoint by doing a direct RPC call to an on-chain view function. This task is used in a wide variety of workflows, such as cross-chain data bridging and retrieving values from any other chain back onto the chain your application lives on.

{
    "callEvmFunction": {
        "chainId": "",
        "contractAddress": "",
        "functionName": "",
        "arguments": [
            {
                "name": "",
                "datatype": "",
                "value": ""
            }
        ],
        "returnValues": [
            {
                "name": "",
                "datatype": ""
            }
        ],
        "extracts": [
            {
                "from": "",
                "name": ""
            }
        ],
        "excludeLogs": []
    }
}

Shift Decimal

The Shift Decimal task is a purely functional task that takes two values - A and B - and outputs A * 10^B.

This task can be used to transform floating/fixed point values into integer values 2.54812 —> 254812. This task is commonly used to normalize price data into EVM-compatible formats. This task can also be used to convert a large EVM-normalized value (ex. 1500000000000000000 wei) into a human-readable format (1.5 Eth).

{
    "shiftDecimal": {
        "inputValue": "",
        "decimalPlaces": "",
        "round": "",
        "extracts": [
            {
                "name": "",
                "from": ""
            }
        ],
        "outputName": "",
        "excludeLogs": []
    }
}

Last updated