> For the complete documentation index, see [llms.txt](https://tagomisystems.gitbook.io/tagomi-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tagomisystems.gitbook.io/tagomi-docs/iseth/itagomipool.md).

# ITagomiPool

This is the technical reference related to the interface for any super token pool regardless of the distribution schemes.

### struct PoolIndexData[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#struct-poolindexdata) <a href="#struct-poolindexdata" id="struct-poolindexdata"></a>

```
struct PoolIndexData {
  uint128 totalUnits;
  uint32 wrappedSettledAt;
  int96 wrappedFlowRate;
  int256 wrappedSettledValue;
}
```

### struct MemberData[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#struct-memberdata) <a href="#struct-memberdata" id="struct-memberdata"></a>

```
struct MemberData {
  uint128 ownedUnits;
  uint32 syncedSettledAt;
  int96 syncedFlowRate;
  int256 syncedSettledValue;
  int256 settledValue;
  int256 claimedValue;
}
```

### Tagomi\_POOL\_INVALID\_TIME[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_invalid_time) <a href="#superfluid_pool_invalid_time" id="superfluid_pool_invalid_time"></a>

```
error Tagomi_POOL_INVALID_TIME()
```

### Tagomi\_POOL\_NO\_POOL\_MEMBERS[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_no_pool_members) <a href="#superfluid_pool_no_pool_members" id="superfluid_pool_no_pool_members"></a>

```
error Tagomi_POOL_NO_POOL_MEMBERS()
```

### Tagomi\_POOL\_NO\_ZERO\_ADDRESS[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_no_zero_address) <a href="#superfluid_pool_no_zero_address" id="superfluid_pool_no_zero_address"></a>

```
error Tagomi_POOL_NO_ZERO_ADDRESS()
```

### Tagomi\_POOL\_NOT\_POOL\_ADMIN\_OR\_GDA[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_not_pool_admin_or_gda) <a href="#superfluid_pool_not_pool_admin_or_gda" id="superfluid_pool_not_pool_admin_or_gda"></a>

```
error Tagomi_POOL_NOT_POOL_ADMIN_OR_GDA()
```

### Tagomi\_POOL\_NOT\_GDA[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_not_gda) <a href="#superfluid_pool_not_gda" id="superfluid_pool_not_gda"></a>

```
error Tagomi_POOL_NOT_GDA()
```

### Tagomi\_POOL\_TRANSFER\_UNITS\_NOT\_ALLOWED[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#superfluid_pool_transfer_units_not_allowed) <a href="#superfluid_pool_transfer_units_not_allowed" id="superfluid_pool_transfer_units_not_allowed"></a>

```
error Tagomi_POOL_TRANSFER_UNITS_NOT_ALLOWED()
```

### Event MemberUnitsUpdated[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#event-memberunitsupdated) <a href="#event-memberunitsupdated" id="event-memberunitsupdated"></a>

```
event MemberUnitsUpdated(
    contract ITagomiToken token,
    address member,
    uint128 oldUnits,
    uint128 newUnits
)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters)

| Name       | Type                  | Description |
| ---------- | --------------------- | ----------- |
| `token`    | contract ITagomiToken |             |
| `member`   | address               |             |
| `oldUnits` | uint128               |             |
| `newUnits` | uint128               |             |

### Event DistributionClaimed[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#event-distributionclaimed) <a href="#event-distributionclaimed" id="event-distributionclaimed"></a>

```
event DistributionClaimed(
    contract ITagomiToken token,
    address member,
    int256 claimedAmount,
    int256 totalClaimed
)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-1)

| Name            | Type                  | Description |
| --------------- | --------------------- | ----------- |
| `token`         | contract ITagomiToken |             |
| `member`        | address               |             |
| `claimedAmount` | int256                |             |
| `totalClaimed`  | int256                |             |

### Fn transferabilityForUnitsOwner[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-transferabilityforunitsowner) <a href="#fn-transferabilityforunitsowner" id="fn-transferabilityforunitsowner"></a>

```
function transferabilityForUnitsOwner(
) 
    external 
    returns (bool)
```

A boolean indicating whether pool members can transfer their units

### Fn distributionFromAnyAddress[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-distributionfromanyaddress) <a href="#fn-distributionfromanyaddress" id="fn-distributionfromanyaddress"></a>

```
function distributionFromAnyAddress(
) 
    external 
    returns (bool)
```

A boolean indicating whether addresses other than the pool admin can distribute via the pool

### Fn admin[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-admin) <a href="#fn-admin" id="fn-admin"></a>

```
function admin(
) 
    external 
    returns (address)
```

*The admin is the creator of the pool and has permissions to update member units and is the recipient of the adjustment flow rate*

The pool admin

### Fn superToken[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-supertoken) <a href="#fn-supertoken" id="fn-supertoken"></a>

```
function superToken(
) 
    external 
    returns (contract ITagomiToken)
```

The SuperToken for the pool

### Fn getTotalUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalunits) <a href="#fn-gettotalunits" id="fn-gettotalunits"></a>

```
function getTotalUnits(
) 
    external 
    returns (uint128)
```

The total units of the pool

### Fn getTotalConnectedUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalconnectedunits) <a href="#fn-gettotalconnectedunits" id="fn-gettotalconnectedunits"></a>

```
function getTotalConnectedUnits(
) 
    external 
    returns (uint128)
```

The total number of units of connected members

### Fn getTotalDisconnectedUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotaldisconnectedunits) <a href="#fn-gettotaldisconnectedunits" id="fn-gettotaldisconnectedunits"></a>

```
function getTotalDisconnectedUnits(
) 
    external 
    returns (uint128)
```

The total number of units of disconnected members

### Fn getUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getunits) <a href="#fn-getunits" id="fn-getunits"></a>

```
function getUnits(
    address memberAddress
) 
    external 
    returns (uint128)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-2)

| Name            | Type    | Description               |
| --------------- | ------- | ------------------------- |
| `memberAddress` | address | The address of the member |

The total number of units for `memberAddress`

### Fn getTotalFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalflowrate) <a href="#fn-gettotalflowrate" id="fn-gettotalflowrate"></a>

```
function getTotalFlowRate(
) 
    external 
    returns (int96)
```

The total flow rate of the pool

### Fn getTotalConnectedFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotalconnectedflowrate) <a href="#fn-gettotalconnectedflowrate" id="fn-gettotalconnectedflowrate"></a>

```
function getTotalConnectedFlowRate(
) 
    external 
    returns (int96)
```

The flow rate of the connected members

### Fn getTotalDisconnectedFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-gettotaldisconnectedflowrate) <a href="#fn-gettotaldisconnectedflowrate" id="fn-gettotaldisconnectedflowrate"></a>

```
function getTotalDisconnectedFlowRate(
) 
    external 
    returns (int96)
```

The flow rate of the disconnected members

### Fn getDisconnectedBalance[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getdisconnectedbalance) <a href="#fn-getdisconnectedbalance" id="fn-getdisconnectedbalance"></a>

```
function getDisconnectedBalance(
    uint32 time
) 
    external 
    returns (int256 balance)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-3)

| Name   | Type   | Description       |
| ------ | ------ | ----------------- |
| `time` | uint32 | The time to query |

The balance of all the disconnected members at `time`

### Fn getMemberFlowRate[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getmemberflowrate) <a href="#fn-getmemberflowrate" id="fn-getmemberflowrate"></a>

```
function getMemberFlowRate(
    address memberAddress
) 
    external 
    returns (int96)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-4)

| Name            | Type    | Description               |
| --------------- | ------- | ------------------------- |
| `memberAddress` | address | The address of the member |

The flow rate a member is receiving from the pool

### Fn getClaimable[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getclaimable) <a href="#fn-getclaimable" id="fn-getclaimable"></a>

```
function getClaimable(
    address memberAddr,
    uint32 time
) 
    external 
    returns (int256)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-5)

| Name         | Type    | Description               |
| ------------ | ------- | ------------------------- |
| `memberAddr` | address | The address of the member |
| `time`       | uint32  | The time to query         |

The claimable balance for `memberAddr` at `time` in the pool

### Fn getClaimableNow[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-getclaimablenow) <a href="#fn-getclaimablenow" id="fn-getclaimablenow"></a>

```
function getClaimableNow(
    address memberAddr
) 
    external 
    returns (int256 claimableBalance, uint256 timestamp)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-6)

| Name         | Type    | Description               |
| ------------ | ------- | ------------------------- |
| `memberAddr` | address | The address of the member |

The claimable balance for `memberAddr` at `block.timestamp` in the pool

### Fn updateMemberUnits[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-updatememberunits) <a href="#fn-updatememberunits" id="fn-updatememberunits"></a>

```
function updateMemberUnits(
    address memberAddr,
    uint128 newUnits
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-7)

| Name         | Type    | Description                  |
| ------------ | ------- | ---------------------------- |
| `memberAddr` | address | The address of the member    |
| `newUnits`   | uint128 | The new units for the member |

Sets `memberAddr` ownedUnits to `newUnits`

### Fn claimAll[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-claimall) <a href="#fn-claimall" id="fn-claimall"></a>

```
function claimAll(
    address memberAddr
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-8)

| Name         | Type    | Description               |
| ------------ | ------- | ------------------------- |
| `memberAddr` | address | The address of the member |

Claims the claimable balance for `memberAddr` at `block.timestamp`

### Fn claimAll[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-claimall-1) <a href="#fn-claimall-1" id="fn-claimall-1"></a>

```
function claimAll(
) 
    external 
    returns (bool)
```

Claims the claimable balance for `msg.sender` at `block.timestamp`

### Fn increaseAllowance[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-increaseallowance) <a href="#fn-increaseallowance" id="fn-increaseallowance"></a>

```
function increaseAllowance(
    address spender,
    uint256 addedValue
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-9)

| Name         | Type    | Description                             |
| ------------ | ------- | --------------------------------------- |
| `spender`    | address | The address of the spender              |
| `addedValue` | uint256 | The amount to increase the allowance by |

**Return Values**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#return-values)

| Name  | Type | Description        |
| ----- | ---- | ------------------ |
| `[0]` | bool | true if successful |

Increases the allowance of `spender` by `addedValue`

### Fn decreaseAllowance[​](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#fn-decreaseallowance) <a href="#fn-decreaseallowance" id="fn-decreaseallowance"></a>

```
function decreaseAllowance(
    address spender,
    uint256 subtractedValue
) 
    external 
    returns (bool)
```

**Parameters**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#parameters-10)

| Name              | Type    | Description                             |
| ----------------- | ------- | --------------------------------------- |
| `spender`         | address | The address of the spender              |
| `subtractedValue` | uint256 | The amount to decrease the allowance by |

**Return Values**[**​**](https://docs.superfluid.finance/docs/technical-reference/ISuperfluidPool#return-values-1)

| Name  | Type | Description        |
| ----- | ---- | ------------------ |
| `[0]` | bool | true if successful |

Decreases the allowance of `spender` by `subtractedValue`
