Infernet
SDK
Reference
Consumers
SubscriptionConsumer

SubscriptionConsumer

Git Source (opens in a new tab)

Inherits: BaseConsumer

Allows creating recurring subscriptions for off-chain container compute

Inherits BaseConsumer to inherit functions to receive container compute responses

Functions

constructor

Initialize new SubscriptionConsumer

constructor(address coordinator) BaseConsumer(coordinator);

Parameters

NameTypeDescription
coordinatoraddresscoordinator address

getContainerInputs

View function to broadcast dynamic container inputs to off-chain Infernet nodes

If Coordinator.subscription[id].inputs == bytes(""), a off-chain node will call getContainerInputs() to retrieve inputs. Develpers can modify this function to return dynamic inputs

function getContainerInputs(uint32 subscriptionId, uint32 interval, uint32 timestamp, address caller)
    external
    view
    virtual
    returns (bytes memory);

Parameters

NameTypeDescription
subscriptionIduint32subscription ID to collect container inputs for
intervaluint32subscription interval to collect container inputs for
timestampuint32timestamp at which container inputs are collected
calleraddresscalling address

_createComputeSubscription

Creates a recurring request for off-chain container compute via callback response

function _createComputeSubscription(
    string memory containerId,
    uint48 maxGasPrice,
    uint32 maxGasLimit,
    uint32 frequency,
    uint32 period,
    uint16 redundancy
) internal returns (uint32);

Parameters

NameTypeDescription
containerIdstringcompute container identifier(s) used by off-chain Infernet node
maxGasPriceuint48max gas price in wei paid by Infernet node when fulfilling callback
maxGasLimituint32max gas limit in wei paid by Infernet node in callback tx
frequencyuint32max number of times to process subscription (i.e, frequency == 1 is a one-time request)
perioduint32period, in seconds, at which to progress each responding interval
redundancyuint16number of unique responding Infernet nodes

Returns

NameTypeDescription
<none>uint32subscription ID of newly-created subscription

_cancelComputeSubscription

Cancels a created subscription

Can only cancel owned subscriptions (address(this) == Coordinator.subscriptions[subscriptionId].owner)

function _cancelComputeSubscription(uint32 subscriptionId) internal;

Parameters

NameTypeDescription
subscriptionIduint32ID of subscription to cancel