Skip to Content
Dive DeeperIReactorHelper

Reactor Helper

The Helper provides pure ABI encoding and decoding. The same layouts are implemented by the TypeScript, Python, and Go evm namespaces.

struct ReactorParameter { string name; string value; } struct ReactorWebRequest { string method; string url; string body; ReactorParameter[] headers; }

Parameter envelope and chain_message

encodePayloadAndReactorParameters(bytes, ReactorParameter[]) encodePayloadAndStringParameters(bytes, string[] names, string[] values) decodePayloadAndReactorParameters(bytes) decodePayloadAndStringParameters(bytes)

These functions use abi.encode(bytes payload, string[] names, string[] values). Parameter names and values must be non-empty and the parallel arrays must have equal length.

web_message

The inner request is abi.encode(string method, string url, string body). Full request encoders wrap it in the parameter envelope and prefix header names with header..

encodeWebRequestData(string method, string url, string body) encodeWebRequestAndReactorParameters(string, string, string, ReactorParameter[] headers, ReactorParameter[] parameters) encodeWebRequestAndStringParameters(string, string, string, string[] headerNames, string[] headerValues, string[] parameterNames, string[] parameterValues) encodeWebRequestFromReactorWebRequest(ReactorWebRequest, ReactorParameter[] parameters) decodeWebRequestData(bytes) decodeWebRequestAndReactorParameters(bytes) decodeWebRequestAndStringParameters(bytes) decodeWebResponseData(bytes)

Web responses decode as (uint256 statusCode, string body, string[] headerNames, string[] headerValues).

generate_random_numbers

encodeGenerateRandomNumbersRequestData(uint256 count) encodeGenerateRandomNumbersRequestAndReactorParameters(uint256 count, ReactorParameter[] parameters) encodeGenerateRandomNumbersRequestAndStringParameters(uint256 count, string[] names, string[] values) decodeGenerateRandomNumbersRequestData(bytes) decodeGenerateRandomNumbersResponseData(bytes)

The count must be greater than zero. The request data is abi.encode(uint256 count) and the response data is abi.encode(uint256[] numbers).

See EVM helpers for language-native APIs that hide positional ABI details.

Last updated on