SuperTokenV1Library

Library for Token Centric Interface

The SuperTokenV1Library is a solidity library that allows you to interact with the Tagomi Protocol. It is a comprehensive library for Tagomi protocol. It includes all the functions that are required to interact with the Tagomi protocol. It includes functions for interacting with Money Streaming and Distributions. In order to have access to the library, you need to:

  • Import the library in your contract as such:

    import "@Tagomi-finance/bsc-contracts/contracts/apps/SuperTokenV1Library.sol";

  • Make sure that you include the using statement in your contract:

    using SuperTokenV1Library for ISuperToken;

Note 1

In the case of interacting with Native Super Tokens you should use using SuperTokenV1Library for ISETH; instead.

Note 2

It is important to "warm up" the cache and cache the host, cfa, gda before calling, this is only applicable to Foundry tests where the vm.expectRevert() will not work as expected. You must use vm.startPrank(account) instead of vm.prank when executing functions if the cache isn't "warmed up" yet. vm.prank impersonates the account only for the first call, which will be used for caching.

Fn createFlow

function createFlow(
    contract ISuperToken token,
    address receiver,
    int96 flowRate
) 
    internal 
    returns (bool)

Create flow without userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

Fn createFlow

function createFlow(
    contract ISuperToken token,
    address receiver,
    int96 flowRate,
    bytes userData
) 
    internal 
    returns (bool)

Create flow with userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

userData

bytes

The userdata passed along with call

Fn updateFlow

function updateFlow(
    contract ISuperToken token,
    address receiver,
    int96 flowRate
) 
    internal 
    returns (bool)

Update flow without userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

Fn updateFlow (w/userData)

function updateFlow(
    contract ISuperToken token,
    address receiver,
    int96 flowRate,
    bytes userData
) 
    internal 
    returns (bool)

Update flow with userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

userData

bytes

The userdata passed along with call

Fn deleteFlow

function deleteFlow(
    contract ISuperToken token,
    address sender,
    address receiver
) 
    internal 
    returns (bool)

Delete flow without userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

Fn deleteFlow (w/userData)

function deleteFlow(
    contract ISuperToken token,
    address sender,
    address receiver,
    bytes userData
) 
    internal 
    returns (bool)

Delete flow with userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

userData

bytes

The userdata passed along with call

Fn setFlowPermissions

function setFlowPermissions(
    contract ISuperToken token,
    address flowOperator,
    bool allowCreate,
    bool allowUpdate,
    bool allowDelete,
    int96 flowRateAllowance
) 
    internal 
    returns (bool)

Update permissions for flow operator

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address given flow permissions

allowCreate

bool

creation permissions

allowUpdate

bool

allowDelete

bool

flowRateAllowance

int96

The allowance provided to flowOperator

Fn setMaxFlowPermissions

function setMaxFlowPermissions(
    contract ISuperToken token,
    address flowOperator
) 
    internal 
    returns (bool)

Update permissions for flow operator - give operator max permissions

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address given flow permissions

Fn revokeFlowPermissions

function revokeFlowPermissions(
    contract ISuperToken token,
    address flowOperator
) 
    internal 
    returns (bool)

Update permissions for flow operator - revoke all permission

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address given flow permissions

Fn increaseFlowRateAllowance

function increaseFlowRateAllowance(
    contract ISuperToken token,
    address flowOperator,
    int96 addedFlowRateAllowance
) 
    internal 
    returns (bool)

Increases the flow rate allowance for flow operator

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is increased

addedFlowRateAllowance

int96

amount to increase allowance by

allowing userData to be a parameter here triggered stack too deep error

Fn increaseFlowRateAllowance (w/userData)

function increaseFlowRateAllowance(
    contract ISuperToken token,
    address flowOperator,
    int96 addedFlowRateAllowance,
    bytes userData
) 
    internal 
    returns (bool)

Increases the flow rate allowance for flow operator

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is increased

addedFlowRateAllowance

int96

amount to increase allowance by

userData

bytes

The userdata passed along with call

allowing userData to be a parameter here triggered stack too deep error

Fn decreaseFlowRateAllowance

function decreaseFlowRateAllowance(
    contract ISuperToken token,
    address flowOperator,
    int96 subtractedFlowRateAllowance
) 
    internal 
    returns (bool)

Decreases the flow rate allowance for flow operator

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is decreased

subtractedFlowRateAllowance

int96

amount to decrease allowance by

allowing userData to be a parameter here triggered stack too deep error

Fn decreaseFlowRateAllowance (w/userData)

function decreaseFlowRateAllowance(
    contract ISuperToken token,
    address flowOperator,
    int96 subtractedFlowRateAllowance,
    bytes userData
) 
    internal 
    returns (bool)

Decreases the flow rate allowance for flow operator

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is decreased

subtractedFlowRateAllowance

int96

amount to decrease allowance by

userData

bytes

The userdata passed along with call

allowing userData to be a parameter here triggered stack too deep error

Fn increaseFlowRateAllowanceWithPermissions

function increaseFlowRateAllowanceWithPermissions(
    contract ISuperToken token,
    address flowOperator,
    uint8 permissionsToAdd,
    int96 addedFlowRateAllowance
) 
    internal 
    returns (bool)

Increases the flow rate allowance for flow operator and adds the permissions

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is increased

permissionsToAdd

uint8

The permissions to add for the flow operator

addedFlowRateAllowance

int96

amount to increase allowance by

allowing userData to be a parameter here triggered stack too deep error

Fn increaseFlowRateAllowanceWithPermissions (w/userData)

function increaseFlowRateAllowanceWithPermissions(
    contract ISuperToken token,
    address flowOperator,
    uint8 permissionsToAdd,
    int96 addedFlowRateAllowance,
    bytes userData
) 
    internal 
    returns (bool)

Increases the flow rate allowance for flow operator and adds the permissions

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is increased

permissionsToAdd

uint8

The permissions to add for the flow operator

addedFlowRateAllowance

int96

amount to increase allowance by

userData

bytes

The userdata passed along with call

allowing userData to be a parameter here triggered stack too deep error

Fn decreaseFlowRateAllowanceWithPermissions

function decreaseFlowRateAllowanceWithPermissions(
    contract ISuperToken token,
    address flowOperator,
    uint8 permissionsToRemove,
    int96 subtractedFlowRateAllowance
) 
    internal 
    returns (bool)

Decreases the flow rate allowance for flow operator and removes the permissions

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is subtracted

permissionsToRemove

uint8

The permissions to remove for the flow operator

subtractedFlowRateAllowance

int96

amount to subtract allowance by

allowing userData to be a parameter here triggered stack too deep error

Fn decreaseFlowRateAllowanceWithPermissions (w/userData)

function decreaseFlowRateAllowanceWithPermissions(
    contract ISuperToken token,
    address flowOperator,
    uint8 permissionsToRemove,
    int96 subtractedFlowRateAllowance,
    bytes userData
) 
    internal 
    returns (bool)

Decreases the flow rate allowance for flow operator and removes the permissions

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address whose flow rate allowance is subtracted

permissionsToRemove

uint8

The permissions to remove for the flow operator

subtractedFlowRateAllowance

int96

amount to subtract allowance by

userData

bytes

The userdata passed along with call

allowing userData to be a parameter here triggered stack too deep error

Fn setFlowPermissionsWithCtx

function setFlowPermissionsWithCtx(
    contract ISuperToken token,
    address flowOperator,
    bool allowCreate,
    bool allowUpdate,
    bool allowDelete,
    int96 flowRateAllowance,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Update permissions for flow operator in callback

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address given flow permissions

allowCreate

bool

creation permissions

allowUpdate

bool

allowDelete

bool

flowRateAllowance

int96

The allowance provided to flowOperator

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

allowing userData to be a parameter here triggered stack too deep error

Fn setMaxFlowPermissionsWithCtx

function setMaxFlowPermissionsWithCtx(
    contract ISuperToken token,
    address flowOperator,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Update permissions for flow operator - give operator max permissions

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address given flow permissions

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn revokeFlowPermissionsWithCtx

function revokeFlowPermissionsWithCtx(
    contract ISuperToken token,
    address flowOperator,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Update permissions for flow operator - revoke all permission

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowOperator

address

The address given flow permissions

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn createFlowFrom

function createFlowFrom(
    contract ISuperToken token,
    address sender,
    address receiver,
    int96 flowRate
) 
    internal 
    returns (bool)

Creates flow as an operator without userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

Fn createFlowFrom (w/userData)

function createFlowFrom(
    contract ISuperToken token,
    address sender,
    address receiver,
    int96 flowRate,
    bytes userData
) 
    internal 
    returns (bool)

Creates flow as an operator with userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

userData

bytes

The user provided data

Fn updateFlowFrom

function updateFlowFrom(
    contract ISuperToken token,
    address sender,
    address receiver,
    int96 flowRate
) 
    internal 
    returns (bool)

Updates flow as an operator without userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

Fn updateFlowFrom (w/userData)

function updateFlowFrom(
    contract ISuperToken token,
    address sender,
    address receiver,
    int96 flowRate,
    bytes userData
) 
    internal 
    returns (bool)

Updates flow as an operator with userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

userData

bytes

The user provided data

Fn deleteFlowFrom

function deleteFlowFrom(
    contract ISuperToken token,
    address sender,
    address receiver
) 
    internal 
    returns (bool)

Deletes flow as an operator without userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

Fn deleteFlowFrom (w/userData)

function deleteFlowFrom(
    contract ISuperToken token,
    address sender,
    address receiver,
    bytes userData
) 
    internal 
    returns (bool)

Deletes flow as an operator with userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

userData

bytes

The user provided data

Fn createFlowWithCtx

function createFlowWithCtx(
    contract ISuperToken token,
    address receiver,
    int96 flowRate,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Create flow with context and userData

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn createFlowFromWithCtx

function createFlowFromWithCtx(
    contract ISuperToken token,
    address sender,
    address receiver,
    int96 flowRate,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Create flow by operator with context

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn updateFlowWithCtx

function updateFlowWithCtx(
    contract ISuperToken token,
    address receiver,
    int96 flowRate,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Update flow with context

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn updateFlowFromWithCtx

function updateFlowFromWithCtx(
    contract ISuperToken token,
    address sender,
    address receiver,
    int96 flowRate,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Update flow by operator with context

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The receiver of the flow

receiver

address

The receiver of the flow

flowRate

int96

The desired flowRate

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn deleteFlowWithCtx

function deleteFlowWithCtx(
    contract ISuperToken token,
    address sender,
    address receiver,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Delete flow with context

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn deleteFlowFromWithCtx

function deleteFlowFromWithCtx(
    contract ISuperToken token,
    address sender,
    address receiver,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Delete flow by operator with context

Parameters

Name
Type
Description

token

contract ISuperToken

The token to flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn getFlowRate

function getFlowRate(
    contract ISuperToken token,
    address sender,
    address receiver
) 
    internal 
    returns (int96 flowRate)

get flow rate between two accounts for given token

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

Return Values

Name
Type
Description

flowRate

int96

The flow rate

Fn getFlowInfo

function getFlowInfo(
    contract ISuperToken token,
    address sender,
    address receiver
) 
    internal 
    returns (uint256 lastUpdated, int96 flowRate, uint256 deposit, uint256 owedDeposit)

get flow info between two accounts for given token

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

sender

address

The sender of the flow

receiver

address

The receiver of the flow

Return Values

Name
Type
Description

lastUpdated

uint256

Timestamp of flow creation or last flowrate change

flowRate

int96

The flow rate

deposit

uint256

The amount of deposit the flow

owedDeposit

uint256

The amount of owed deposit of the flow

Fn getNetFlowRate

function getNetFlowRate(
    contract ISuperToken token,
    address account
) 
    internal 
    returns (int96 flowRate)

get net flow rate for given account for given token (CFA + GDA)

Parameters

Name
Type
Description

token

contract ISuperToken

Super token address

account

address

Account to query

Return Values

Name
Type
Description

flowRate

int96

The net flow rate of the account

Fn getCFANetFlowRate

function getCFANetFlowRate(
    contract ISuperToken token,
    address account
) 
    internal 
    returns (int96 flowRate)

get CFA net flow rate for given account for given token

Parameters

Name
Type
Description

token

contract ISuperToken

Super token address

account

address

Account to query

Return Values

Name
Type
Description

flowRate

int96

The net flow rate of the account

Fn getGDANetFlowRate

function getGDANetFlowRate(
    contract ISuperToken token,
    address account
) 
    internal 
    returns (int96 flowRate)

get GDA net flow rate for given account for given token

Parameters

Name
Type
Description

token

contract ISuperToken

Super token address

account

address

Account to query

Return Values

Name
Type
Description

flowRate

int96

The net flow rate of the account

Fn getNetFlowInfo

function getNetFlowInfo(
    contract ISuperToken token,
    address account
) 
    internal 
    returns (uint256 lastUpdated, int96 flowRate, uint256 deposit, uint256 owedDeposit)

get the aggregated flow info of the account

Parameters

Name
Type
Description

token

contract ISuperToken

Super token address

account

address

Account to query

Return Values

Name
Type
Description

lastUpdated

uint256

Timestamp of the last change of the net flow

flowRate

int96

The net flow rate of token for account

deposit

uint256

The sum of all deposits for account's flows

owedDeposit

uint256

The sum of all owed deposits for account's flows

Fn getBufferAmountByFlowRate

function getBufferAmountByFlowRate(
    contract ISuperToken token,
    int96 flowRate
) 
    internal 
    returns (uint256 bufferAmount)

calculate buffer for a flow rate

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

flowRate

int96

The flowrate to calculate the needed buffer for

Return Values

Name
Type
Description

bufferAmount

uint256

The buffer amount based on flowRate, liquidationPeriod and minimum deposit

Fn getFlowPermissions

function getFlowPermissions(
    contract ISuperToken token,
    address sender,
    address flowOperator
) 
    internal 
    returns (bool allowCreate, bool allowUpdate, bool allowDelete, int96 flowRateAllowance)

get existing flow permissions

Parameters

Name
Type
Description

token

contract ISuperToken

The token used in flow

sender

address

sender of a flow

flowOperator

address

the address we are checking permissions of for sender & token

Return Values

Name
Type
Description

allowCreate

bool

is true if the flowOperator can create flows

allowUpdate

bool

is true if the flowOperator can update flows

allowDelete

bool

is true if the flowOperator can delete flows

flowRateAllowance

int96

The flow rate allowance the flowOperator is granted (only goes down)

Fn getIndex

function getIndex(
    contract ISuperToken token,
    address publisher,
    uint32 indexId
) 
    internal 
    returns (bool exist, uint128 indexValue, uint128 totalUnitsApproved, uint128 totalUnitsPending)

Gets an index by its ID and publisher.

Parameters

Name
Type
Description

token

contract ISuperToken

Super token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

Return Values

Name
Type
Description

exist

bool

True if the index exists.

indexValue

uint128

Total value of the index.

totalUnitsApproved

uint128

Units of the index approved by subscribers.

totalUnitsPending

uint128

Units of teh index not yet approved by subscribers.

Fn calculateDistribution

function calculateDistribution(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    uint256 amount
) 
    internal 
    returns (uint256 actualAmount, uint128 newIndexValue)

Calculates the distribution amount based on the amount of tokens desired to distribute.

Parameters

Name
Type
Description

token

contract ISuperToken

Super token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

amount

uint256

Amount of tokens desired to distribute.

Return Values

Name
Type
Description

actualAmount

uint256

Amount to be distributed with correct rounding.

newIndexValue

uint128

The index value after the distribution would be called.

Fn listSubscriptions

function listSubscriptions(
    contract ISuperToken token,
    address subscriber
) 
    internal 
    returns (address[] publishers, uint32[] indexIds, uint128[] unitsList)

List all subscriptions of an address

Parameters

Name
Type
Description

token

contract ISuperToken

Super token used in the indexes listed.

subscriber

address

Subscriber address.

Return Values

Name
Type
Description

publishers

address[]

Publishers of the indices.

indexIds

uint32[]

IDs of the indices.

unitsList

uint128[]

Units owned of the indices.

Fn getSubscription

function getSubscription(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    address subscriber
) 
    internal 
    returns (bool exist, bool approved, uint128 units, uint256 pendingDistribution)

Gets subscription by publisher, index id, and subscriber.

Parameters

Name
Type
Description

token

contract ISuperToken

Super token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber to the index.

Return Values

Name
Type
Description

exist

bool

True if the subscription exists.

approved

bool

True if the subscription has been approved by the subscriber.

units

uint128

Units held by the subscriber

pendingDistribution

uint256

If not approved, the amount to be claimed on approval.

Fn getSubscriptionByID

function getSubscriptionByID(
    contract ISuperToken token,
    bytes32 agreementId
) 
    internal 
    returns (address publisher, uint32 indexId, bool approved, uint128 units, uint256 pendingDistribution)

Parameters

Name
Type
Description

token

contract ISuperToken

agreementId

bytes32

Fn getFlowDistributionFlowRate

function getFlowDistributionFlowRate(
    contract ISuperToken token,
    address from,
    contract ITagomiPool to
) 
    internal 
    returns (int96)

Parameters

Name
Type
Description

token

contract ISuperToken

from

address

to

contract ITagomiPool

GDA VIEW FUNCTIONS *************************************

Fn estimateFlowDistributionActualFlowRate

function estimateFlowDistributionActualFlowRate(
    contract ISuperToken token,
    address from,
    contract ITagomiPool to,
    int96 requestedFlowRate
) 
    internal 
    returns (int96 actualFlowRate, int96 totalDistributionFlowRate)

Parameters

Name
Type
Description

token

contract ISuperToken

from

address

to

contract ITagomiPool

requestedFlowRate

int96

Fn estimateDistributionActualAmount

function estimateDistributionActualAmount(
    contract ISuperToken token,
    address from,
    contract ITagomiPool to,
    uint256 requestedAmount
) 
    internal 
    returns (uint256 actualAmount)

Parameters

Name
Type
Description

token

contract ISuperToken

from

address

to

contract ITagomiPool

requestedAmount

uint256

Fn isMemberConnected

function isMemberConnected(
    contract ISuperToken token,
    address pool,
    address member
) 
    internal 
    returns (bool)

Parameters

Name
Type
Description

token

contract ISuperToken

pool

address

member

address

Fn createIndex

function createIndex(
    contract ISuperToken token,
    uint32 indexId
) 
    internal 
    returns (bool)

Creates a new index.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

Fn createIndex

function createIndex(
    contract ISuperToken token,
    uint32 indexId,
    bytes userData
) 
    internal 
    returns (bool)

Creates a new index with userData.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

userData

bytes

Arbitrary user data field.

Fn updateIndexValue

function updateIndexValue(
    contract ISuperToken token,
    uint32 indexId,
    uint128 indexValue
) 
    internal 
    returns (bool)

Updates an index value. This distributes an amount of tokens equal to indexValue - lastIndexValue. See distribute for another way to distribute.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

indexValue

uint128

New TOTAL index value, this will equal the total amount distributed.

Fn updateIndexValue

function updateIndexValue(
    contract ISuperToken token,
    uint32 indexId,
    uint128 indexValue,
    bytes userData
) 
    internal 
    returns (bool)

Updates an index value with userData. This distributes an amount of tokens equal to indexValue - lastIndexValue. See distribute for another way to distribute.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

indexValue

uint128

New TOTAL index value, this will equal the total amount distributed.

userData

bytes

Arbitrary user data field.

Fn distribute

function distribute(
    contract ISuperToken token,
    uint32 indexId,
    uint256 amount
) 
    internal 
    returns (bool)

Distributes tokens in a more developer friendly way than updateIndex. Instead of passing the new total index value, you pass the amount of tokens desired to be distributed.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

amount

uint256

- total number of tokens desired to be distributed

NOTE in many cases, there can be some precision loss

This may cause a slight difference in the amount param specified and the actual amount distributed.

See below for math:

//indexDelta = amount the index will be updated by during an internal call to _updateIndex().

It is calculated like so:

indexDelta = amount / totalUnits

(see the distribute() implementatation in ./agreements/InstantDistributionAgreement.sol)

NOTE Solidity does not support floating point numbers

So the indexDelta will be rounded down to the nearest integer.

This will create a 'remainder' amount of tokens that will not be distributed

(we'll call this the 'distribution modulo')

distributionModulo = amount - indexDelta * totalUnits

NOTE due to rounding, there may be a small amount of tokens left in the publisher's account

This amount is equal to the 'distributionModulo' value

//

Fn distribute (w/userData)

function distribute(
    contract ISuperToken token,
    uint32 indexId,
    uint256 amount,
    bytes userData
) 
    internal 
    returns (bool)

Distributes tokens in a more developer friendly way than updateIndex (w user data). Instead of passing the new total index value, this function will increase the index value by amount. This takes arbitrary user data.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

amount

uint256

Amount by which the index value should increase.

userData

bytes

Arbitrary user data field.

Fn approveSubscription

function approveSubscription(
    contract ISuperToken token,
    address publisher,
    uint32 indexId
) 
    internal 
    returns (bool)

Approves a subscription to an index. The subscriber's real time balance will not update until the subscription is approved, but once approved, the balance will be updated with prior distributions.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

Fn approveSubscription (w/userData)

function approveSubscription(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    bytes userData
) 
    internal 
    returns (bool)

Approves a subscription to an index with user data. The subscriber's real time balance will not update until the subscription is approved, but once approved, the balance will be updated with prior distributions.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

userData

bytes

Arbitrary user data field.

Fn revokeSubscription

function revokeSubscription(
    contract ISuperToken token,
    address publisher,
    uint32 indexId
) 
    internal 
    returns (bool)

Revokes a previously approved subscription.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

Fn revokeSubscription (w/userData)

function revokeSubscription(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    bytes userData
) 
    internal 
    returns (bool)

Revokes a previously approved subscription. This takes arbitrary user data.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

userData

bytes

Arbitrary user data field.

Fn updateSubscriptionUnits

function updateSubscriptionUnits(
    contract ISuperToken token,
    uint32 indexId,
    address subscriber,
    uint128 units
) 
    internal 
    returns (bool)

Updates the units of a subscription. This changes the number of shares the subscriber holds

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address whose units are to be updated.

units

uint128

New number of units the subscriber holds.

Fn updateSubscriptionUnits (w/userData)

function updateSubscriptionUnits(
    contract ISuperToken token,
    uint32 indexId,
    address subscriber,
    uint128 units,
    bytes userData
) 
    internal 
    returns (bool)

Updates the units of a subscription. This changes the number of shares the subscriber holds. This takes arbitrary user data.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address whose units are to be updated.

units

uint128

New number of units the subscriber holds.

userData

bytes

Arbitrary user data field.

Fn deleteSubscription

function deleteSubscription(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    address subscriber
) 
    internal 
    returns (bool)

Deletes a subscription, setting a subcriber's units to zero

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address whose units are to be deleted.

Fn deleteSubscription (w/userData)

function deleteSubscription(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    address subscriber,
    bytes userData
) 
    internal 
    returns (bool)

Deletes a subscription, setting a subcriber's units to zero. This takes arbitrary userdata.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address whose units are to be deleted.

userData

bytes

Arbitrary user data field.

Fn claim

function claim(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    address subscriber
) 
    internal 
    returns (bool)

Claims pending distribution. Subscription should not be approved

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address that receives the claim.

Fn claim (w/userData)

function claim(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    address subscriber,
    bytes userData
) 
    internal 
    returns (bool)

Claims pending distribution. Subscription should not be approved. This takes arbitrary user data.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address that receives the claim.

userData

bytes

Arbitrary user data field.

Fn createIndexWithCtx

function createIndexWithCtx(
    contract ISuperToken token,
    uint32 indexId,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Creates a new index with ctx. Meant for usage in super app callbacks

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn updateIndexValueWithCtx

function updateIndexValueWithCtx(
    contract ISuperToken token,
    uint32 indexId,
    uint128 indexValue,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Updates an index value with ctx. This distributes an amount of tokens equal to indexValue - lastIndexValue. See distribute for another way to distribute. Meant for usage in super app callbakcs

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

indexValue

uint128

New TOTAL index value, this will equal the total amount distributed.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn distributeWithCtx

function distributeWithCtx(
    contract ISuperToken token,
    uint32 indexId,
    uint256 amount,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Distributes tokens in a more developer friendly way than updateIndex.Instead of passing the new total index value, this function will increase the index value by amount.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

amount

uint256

Amount by which the index value should increase.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn approveSubscriptionWithCtx

function approveSubscriptionWithCtx(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Approves a subscription to an index. The subscriber's real time balance will not update until the subscription is approved, but once approved, the balance will be updated with prior distributions.

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn revokeSubscriptionWithCtx

function revokeSubscriptionWithCtx(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Revokes a previously approved subscription. Meant for usage in super apps

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn updateSubscriptionUnitsWithCtx

function updateSubscriptionUnitsWithCtx(
    contract ISuperToken token,
    uint32 indexId,
    address subscriber,
    uint128 units,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Updates the units of a subscription. This changes the number of shares the subscriber holds. Meant for usage in super apps

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address whose units are to be updated.

units

uint128

New number of units the subscriber holds.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn deleteSubscriptionWithCtx

function deleteSubscriptionWithCtx(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    address subscriber,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Deletes a subscription, setting a subcriber's units to zero. Meant for usage in super apps

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address whose units are to be deleted.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn claimWithCtx

function claimWithCtx(
    contract ISuperToken token,
    address publisher,
    uint32 indexId,
    address subscriber,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Claims pending distribution. Subscription should not be approved. Meant for usage in super app callbacks

Parameters

Name
Type
Description

token

contract ISuperToken

Super Token used with the index.

publisher

address

Publisher of the index.

indexId

uint32

ID of the index.

subscriber

address

Subscriber address that receives the claim.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn createPool

function createPool(
    contract ISuperToken token,
    address admin,
    struct PoolConfig poolConfig
) 
    internal 
    returns (contract ITagomiPool pool)

Creates a new Tagomi Pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

admin

address

The pool admin address.

poolConfig

struct PoolConfig

The pool configuration (see below)

The PoolConfig struct is defined as follows:

struct PoolConfig {
    bool transferabilityForUnitsOwner;
    bool distributionFromAnyAddress;
}
  • transferabilityForUnitsOwner: If true, the pool members can transfer their owned units, else, only the pool admin can manipulate the units for pool members (not recommended)

  • distributionFromAnyAddress: If true, anyone can execute distributions via the pool, else, only the pool admin can execute distributions via the pool

Return Values

Name
Type
Description

pool

contract ITagomiPool

The address of the deployed Tagomi Pool

Fn updateMemberUnits

function updateMemberUnits(
    contract ISuperToken token,
    contract ITagomiPool pool,
    address memberAddress,
    uint128 newUnits
) 
    internal 
    returns (bool)

Updates the units of a pool member.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to update.

memberAddress

address

The address of the member to update.

newUnits

uint128

The new units of the member.

Return Values

Name
Type
Description

[0]

bool

bool A boolean value indicating whether the pool was created successfully.

Fn updateMemberUnits (w/userData)

function updateMemberUnits(
    contract ISuperToken token,
    contract ITagomiPool pool,
    address memberAddress,
    uint128 newUnits,
    bytes userData
) 
    internal 
    returns (bool)

Updates the units of a pool member.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to update.

memberAddress

address

The address of the member to update.

newUnits

uint128

The new units of the member.

userData

bytes

User-specific data.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the pool was created successfully.

Fn claimAll

function claimAll(
    contract ISuperToken token,
    contract ITagomiPool pool,
    address memberAddress
) 
    internal 
    returns (bool)

Claims all tokens from the pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to claim from.

memberAddress

address

The address of the member to claim for.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the claim was successful.

Fn claimAll (w/userData)

function claimAll(
    contract ISuperToken token,
    contract ITagomiPool pool,
    address memberAddress,
    bytes userData
) 
    internal 
    returns (bool)

Claims all tokens from the pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to claim from.

memberAddress

address

The address of the member to claim for.

userData

bytes

User-specific data.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the claim was successful.

Fn connectPool

function connectPool(
    contract ISuperToken token,
    contract ITagomiPool pool
) 
    internal 
    returns (bool)

Connects a pool member to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to connect.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the connection was successful.

Fn connectPool (w/userData)

function connectPool(
    contract ISuperToken token,
    contract ITagomiPool pool,
    bytes userData
) 
    internal 
    returns (bool)

Connects a pool member to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to connect.

userData

bytes

User-specific data.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the connection was successful.

Fn disconnectPool

function disconnectPool(
    contract ISuperToken token,
    contract ITagomiPool pool
) 
    internal 
    returns (bool)

Disconnects a pool member from pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to disconnect.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the disconnection was successful.

Fn disconnectPool (w/userData)

function disconnectPool(
    contract ISuperToken token,
    contract ITagomiPool pool,
    bytes userData
) 
    internal 
    returns (bool)

Disconnects a pool member from pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to disconnect.

userData

bytes

User-specific data.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the disconnection was successful.

Fn distributeToPool

function distributeToPool(
    contract ISuperToken token,
    address from,
    contract ITagomiPool pool,
    uint256 requestedAmount
) 
    internal 
    returns (bool)

Tries to distribute requestedAmount amount of token from from to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

from

address

The address from which to distribute tokens.

pool

contract ITagomiPool

The Tagomi Pool address.

requestedAmount

uint256

The amount of tokens to distribute.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the distribution was successful.

Fn distribute (w/userData)

function distribute(
    contract ISuperToken token,
    address from,
    contract ITagomiPool pool,
    uint256 requestedAmount,
    bytes userData
) 
    internal 
    returns (bool)

Tries to distribute requestedAmount amount of token from from to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

from

address

The address from which to distribute tokens.

pool

contract ITagomiPool

The Tagomi Pool address.

requestedAmount

uint256

The amount of tokens to distribute.

userData

bytes

User-specific data.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the distribution was successful.

Fn distributeFlow

function distributeFlow(
    contract ISuperToken token,
    address from,
    contract ITagomiPool pool,
    int96 requestedFlowRate
) 
    internal 
    returns (bool)

Tries to distribute flow at requestedFlowRate of token from from to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

from

address

The address from which to distribute tokens.

pool

contract ITagomiPool

The Tagomi Pool address.

requestedFlowRate

int96

The flow rate of tokens to distribute.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the distribution was successful.

Fn distributeFlow (w/userData)

function distributeFlow(
    contract ISuperToken token,
    address from,
    contract ITagomiPool pool,
    int96 requestedFlowRate,
    bytes userData
) 
    internal 
    returns (bool)

Tries to distribute flow at requestedFlowRate of token from from to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

from

address

The address from which to distribute tokens.

pool

contract ITagomiPool

The Tagomi Pool address.

requestedFlowRate

int96

The flow rate of tokens to distribute.

userData

bytes

User-specific data.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the distribution was successful.

Fn updateMemberUnitsWithCtx

function updateMemberUnitsWithCtx(
    contract ISuperToken token,
    contract ITagomiPool pool,
    address memberAddress,
    uint128 newUnits,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Updates the units of a pool member.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to update.

memberAddress

address

The address of the member to update.

newUnits

uint128

The new units of the member.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn claimAllWithCtx

function claimAllWithCtx(
    contract ISuperToken token,
    contract ITagomiPool pool,
    address memberAddress,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Claims all tokens from the pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to claim from.

memberAddress

address

The address of the member to claim for.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn connectPoolWithCtx

function connectPoolWithCtx(
    contract ISuperToken token,
    contract ITagomiPool pool,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Connects a pool member to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The Tagomi Pool to connect.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn disconnectPoolWithCtx

function disconnectPoolWithCtx(
    contract ISuperToken token,
    contract ITagomiPool pool,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Disconnects a pool member from pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

pool

contract ITagomiPool

The STagomi Pool to disconnect.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn distributeWithCtx

function distributeWithCtx(
    contract ISuperToken token,
    address from,
    contract ITagomiPool pool,
    uint256 requestedAmount,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Tries to distribute requestedAmount amount of token from from to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

from

address

The address from which to distribute tokens.

pool

contract ITagomiPool

The Tagomi Pool address.

requestedAmount

uint256

The amount of tokens to distribute.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Fn distributeFlowWithCtx

function distributeFlowWithCtx(
    contract ISuperToken token,
    address from,
    contract ITagomiPool pool,
    int96 requestedFlowRate,
    bytes ctx
) 
    internal 
    returns (bytes newCtx)

Tries to distribute flow at requestedFlowRate of token from from to pool.

Parameters

Name
Type
Description

token

contract ISuperToken

The Super Token address.

from

address

The address from which to distribute tokens.

pool

contract ITagomiPool

The Tagomi Pool address.

requestedFlowRate

int96

The flow rate of tokens to distribute.

ctx

bytes

Context bytes (see ITagomi.sol for Context struct)

Return Values

Name
Type
Description

newCtx

bytes

The updated context after the execution of the agreement function

Last updated