IndividualPool
OpenGuild's Individual Pool contract
An Individual is a pool where anyone can withdraw cryptocurrency from the pool and pay it back over time.
Methods
DEFAULT_ADMIN_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
OWNER_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
PAUSER_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
PERCENTAGE_DECIMAL
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
RECIPIENT_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
__BasePool__init
Run only once, on initialization
Parameters
Name | Type | Description |
---|---|---|
_owner | address | The address of who should have the "OWNER_ROLE" of this contract |
_config | contract ProtocolConfig | The address of the OpenGuild ProtocolConfig contract |
_poolToken | contract IERC20Upgradeable | The ERC20 token denominating investments, withdrawals and contributions |
_poolType | enum ProtocolConfig.PoolType | The pool type of the BasePool |
__BaseUpgradeablePausable__init
Parameters
Name | Type | Description |
---|---|---|
owner | address | undefined |
__PauserPausable__init
applyFee
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | Amount to subtract the fee from |
takeRate | uint256 | Rate to calculate the fee |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Tuple of OpenGuild's take + remainder |
_1 | uint256 | a tuple where the first value is the fee taken from the amount and the second is the remainder (amount without the fee) |
claimFromAggregatePool
Sends all claimable dividends to the claimer (msg.sender)Must be called by an aggregate pool
IMPORTANT: CALLER IS RESPONSIBLE FOR PASSING IN A CORRECT CLAIM AMOUNT VALUE Otherwise, this individual pool's dividends could be depleted.
Parameters
Name | Type | Description |
---|---|---|
claimer | address | The investor that made the aggregate pool investment |
claimAmount | uint256 | The amount to claim |
claimedDividends
Parameters
Name | Type | Description |
---|---|---|
_0 | address | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
contribute
Contributes capital and disburses the dividends to warrant tokens accordinglyOnly callable by the recipient
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | Amount to be contributed |
cumulativeDividends
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
getCumulativeDividends
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | The sum of all dividends returned by this individual pool to all recipients, both aggregate pools who have this pool in their allocation and investors who invest directly into this pool |
getFirstWithdrawalTime
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Timestamp for the first time withdraw() was called in this pool |
getInvestorClaimedDividends
Parameters
Name | Type | Description |
---|---|---|
investor | address | the investor to get the claimed dividends for |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Total dividends claimed by the investor |
getRecipient
Returns
Name | Type | Description |
---|---|---|
_0 | address | Current recipient address |
getRoleAdmin
Returns the admin role that controls role
. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
getRoleMember
Returns one of the accounts that have role
. index
must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
index | uint256 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | address | undefined |
getRoleMemberCount
Returns the number of accounts that have role
. Can be used together with {getRoleMember} to enumerate all bearers of a role.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
getTotalDeployedAmount
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | The cumulative deployed amount from all recipients, both aggregate pools who have this pool in their allocation and investors who invest directly into this pool. |
getTotalUndeployedAmount
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Total undeployed amount in this individual pool |
getWithdrawableBalance
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | The current withdrawable balance |
grantRole
Grants role
to account
. If account
had not been already granted role
, emits a {RoleGranted} event. Requirements: - the caller must have role
's admin role.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
hasRole
Returns true
if account
has been granted role
.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
initialize
Run only once, on initialization
Parameters
Name | Type | Description |
---|---|---|
_owner | address | The address that is assigned the "OWNER_ROLE" of this contract |
_config | contract ProtocolConfig | The address of the OpenGuild ProtocolConfig contract |
_poolToken | contract IERC20Upgradeable | The ERC20 token denominating investments, withdrawals and contributions |
_recipient | address | The recipient of this individual pool |
investFromAggregatePool
Invest function called by an aggregate poolOnly callable by an aggregate pool
The warrant token is issued by the issuing aggregate pool, not this individual pool
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | The amount to be invested |
investor | address | The address of the investor from the aggregate pool |
isAdmin
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
pause
Pauses all functions guarded by Pause See {Pausable-_pause}. Requirements: - the caller must have the PAUSER_ROLE.
paused
Returns true if the contract is paused, and false otherwise.
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
poolToken
Returns
Name | Type | Description |
---|---|---|
_0 | contract IERC20Upgradeable | undefined |
poolType
Returns
Name | Type | Description |
---|---|---|
_0 | enum ProtocolConfig.PoolType | undefined |
recipientBalance
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
recipientMaxBalance
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
renounceRole
Revokes role
from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked role
, emits a {RoleRevoked} event. Requirements: - the caller must be account
.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
revokeRole
Revokes role
from account
. If account
had been granted role
, emits a {RoleRevoked} event. Requirements: - the caller must have role
's admin role.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
setMaxBalance
Sets the new max balance
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | The new max balance |
setRecipient
Replace the current recipient with a new recipientOnly callable by the owner
There can only be one recipient at a time
Parameters
Name | Type | Description |
---|---|---|
newRecipient | address | The address of the new recipient |
supportsInterface
See {IERC165-supportsInterface}.
Parameters
Name | Type | Description |
---|---|---|
interfaceId | bytes4 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
totalDeployed
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
totalInvestedAmountForInvestor
Parameters
Name | Type | Description |
---|---|---|
_0 | address | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
totalUnclaimedDividends
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
totalUndeployed
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
unpause
Unpauses the contract See {Pausable-_unpause}. Requirements: - the caller must have the Pauser role
withdraw
Withdraws capital and updates undeployed and deployed balancesOnly callable by the recipient
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | Amount to be withdrawn |
Events
Claim
Parameters
Name | Type | Description |
---|---|---|
from | address | undefined |
amount | uint256 | undefined |
Contribute
Parameters
Name | Type | Description |
---|---|---|
from | address | undefined |
amount | uint256 | undefined |
Invest
Parameters
Name | Type | Description |
---|---|---|
from | address | undefined |
amount | uint256 | undefined |
Paused
Parameters
Name | Type | Description |
---|---|---|
account | address | undefined |
RemoveUndeployedCapital
Parameters
Name | Type | Description |
---|---|---|
remover | address | undefined |
RoleAdminChanged
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
previousAdminRole | bytes32 | undefined |
newAdminRole | bytes32 | undefined |
RoleGranted
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
sender | address | undefined |
RoleRevoked
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
sender | address | undefined |
Unpaused
Parameters
Name | Type | Description |
---|---|---|
account | address | undefined |
Withdraw
Parameters
Name | Type | Description |
---|---|---|
from | address | undefined |
amount | uint256 | undefined |
Last updated