GDAv1Forwarder

The GDAv1Forwarder contract is a Tagomi forwarder that implements the General Distribution Agreement (GDA) related functions. It is a contract specifically made immutable in order to facilitate the interaction with Distributions through the General Distribution Agreement (GDA).

This contract is optimized for interaction that would happen from outside the blockchain (off-chain). For more information on the best practices regarding this interaction, please refer to the SDK Section section of this documentation.

Contract Address

The GDAv1Forwarder contract address is the same on all Tagomi chains:

0x6DA13Bde224A05a288748d857b9e7DDEffd1dE08

ABI

In order to interact with the GDAv1Forwarder contract, you can use the following ABI:

Click here to show GDAv1Forwarder ABI

_gda

contract IGeneralDistributionAgreementV1 _gda

Fn constructor

function constructor(
    contract ITagomi host
)
    public

Parameters

Name
Type
Description

host

contract ITagomi

Fn createPool

createPool() write

Try it out

function createPool(address token, address admin, tuple config) nonpayable returns (bool success, address pool)

powered byLearn more

Creates a new Tagomi Pool.

Parameters

Name
Type
Description

token

contract ITagomiToken

The Super Token address.

admin

address

The pool admin address.

config

struct PoolConfig

The pool configuration (see PoolConfig in IGeneralDistributionAgreementV1.sol)

Return Values

Name
Type
Description

success

bool

A boolean value indicating whether the pool was created successfully.

pool

contract ITagomiPool

The address of the deployed Tagomi Pool

Fn updateMemberUnits

updateMemberUnits() write

Try it out

function updateMemberUnits(
  address pool, 
  address memberAddress, 
  uint128 newUnits, 
  bytes userData
) nonpayable returns (bool success)

powered byLearn more

Updates the units of a pool member.

Parameters

Name
Type
Description

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.

Fn claimAll

claimAll() write

Try it out

function claimAll(address pool, address memberAddress, bytes userData) nonpayable returns (bool success)

powered byLearn more

Claims all tokens from the pool.

Parameters

Name
Type
Description

pool

contract ITagomiPool

The Tagomi Pool to claim from.

memberAddress

address

The address of the member to claim for.

userData

bytes

User-specific data.

Fn connectPool

connectPool() write

Try it out

function connectPool(address pool, bytes userData) nonpayable returns (bool)

powered byLearn more

Connects a pool member to pool.

Parameters

Name
Type
Description

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

disconnectPool() write

Try it out

function disconnectPool(address pool, bytes userData) nonpayable returns (bool)

powered byLearn more

Disconnects a pool member from pool.

Parameters

Name
Type
Description

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 distribute

distribute() write

Try it out

function distribute(
  address token, 
  address from, 
  address pool, 
  uint256 requestedAmount, 
  bytes userData
) nonpayable returns (bool)

powered byLearn more

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

Parameters

Name
Type
Description

token

contract ITagomiToken

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

distributeFlow() write

Try it out

function distributeFlow(
  address token, 
  address from, 
  address pool, 
  int96 requestedFlowRate, 
  bytes userData
) nonpayable returns (bool)

powered byLearn more

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

Parameters

Name
Type
Description

token

contract ITagomiToken

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 isPool

isPool() read

Try it out

function isPool(address token, address account) view returns (bool)

powered byLearn more

Checks if the specified account is a pool.

Parameters

Name
Type
Description

token

contract ITagomiToken

The Super Token address.

account

address

The account address to check.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the account is a pool.

Fn getNetFlow

getNetFlow() read

Try it out

function getNetFlow(address token, address account) view returns (int96)

powered byLearn more

Gets the GDA net flow rate for the specified account.

Parameters

Name
Type
Description

token

contract ITagomiToken

The Super Token address.

account

address

The account address.

Return Values

Name
Type
Description

[0]

int96

The gda net flow rate for the account.

Fn getFlowDistributionFlowRate

getFlowDistributionFlowRate() read

Try it out

function getFlowDistributionFlowRate(address token, address from, address to) view returns (int96)

powered byLearn more

Gets the flow rate of tokens between the specified accounts.

Parameters

Name
Type
Description

token

contract ITagomiToken

The Super Token address.

from

address

The sender address.

to

contract ITagomiPool

The receiver address (the pool address).

Return Values

Name
Type
Description

[0]

int96

The flow distribution flow rate

Fn getPoolAdjustmentFlowRate

getPoolAdjustmentFlowRate() read

Try it out

function getPoolAdjustmentFlowRate(address pool) view returns (int96)

powered byLearn more

Gets the pool adjustment flow rate for the specified pool.

Parameters

Name
Type
Description

pool

address

The pool address.

Return Values

Name
Type
Description

[0]

int96

The pool adjustment flow rate.

Fn estimateFlowDistributionActualFlowRate

estimateFlowDistributionActualFlowRate() read

Try it out

function estimateFlowDistributionActualFlowRate(
  address token, 
  address from, 
  address to, 
  int96 requestedFlowRate
) view returns (
  int96 actualFlowRate, 
  int96 totalDistributionFlowRate
)

powered byLearn more

Estimates the actual flow rate for flow distribution to the specified pool.

Parameters

Name
Type
Description

token

contract ITagomiToken

The Super Token address.

from

address

The sender address.

to

contract ITagomiPool

The pool address.

requestedFlowRate

int96

The requested flow rate.

Return Values

Name
Type
Description

actualFlowRate

int96

totalDistributionFlowRate

int96

Fn estimateDistributionActualAmount

estimateDistributionActualAmount() read

Try it out

function estimateDistributionActualAmount(
  address token, 
  address from, 
  address to, 
  uint256 requestedAmount
) view returns (uint256 actualAmount)

powered byLearn more

Estimates the actual amount for distribution to the specified pool.

Parameters

Name
Type
Description

token

contract ITagomiToken

The Super Token address.

from

address

The sender address.

to

contract ITagomiPool

The pool address.

requestedAmount

uint256

The requested amount.

Return Values

Name
Type
Description

actualAmount

uint256

The actual amount for distribution.

Fn isMemberConnected

isMemberConnected() read

Try it out

function isMemberConnected(address pool, address member) view returns (bool)

powered byLearn more

Checks if the specified member is connected to the pool.

Parameters

Name
Type
Description

pool

contract ITagomiPool

The Tagomi Pool address.

member

address

The member address.

Return Values

Name
Type
Description

[0]

bool

A boolean value indicating whether the member is connected to the pool.

Fn getPoolAdjustmentFlowInfo

getPoolAdjustmentFlowInfo() read

Try it out

function getPoolAdjustmentFlowInfo(address pool) view returns (address, bytes32, int96)

powered byLearn more

Gets the pool adjustment flow information for the specified pool.

Parameters

Name
Type
Description

pool

contract ITagomiPool

The pool address.

Return Values

Name
Type
Description

[0]

address

The pool admin, pool ID, and pool adjustment flow rate.

[1]

bytes32

[2]

int96

Last updated