BasePool

OpenGuild's Base Pool contract

This is the BasePool contract that the IndividualPool and AggregatePool contracts inherit from

Methods

DEFAULT_ADMIN_ROLE

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns

NameTypeDescription

_0

bytes32

undefined

OWNER_ROLE

function OWNER_ROLE() external view returns (bytes32)

Returns

NameTypeDescription

_0

bytes32

undefined

PAUSER_ROLE

function PAUSER_ROLE() external view returns (bytes32)

Returns

NameTypeDescription

_0

bytes32

undefined

PERCENTAGE_DECIMAL

function PERCENTAGE_DECIMAL() external view returns (uint256)

Returns

NameTypeDescription

_0

uint256

undefined

__BasePool__init

function __BasePool__init(address _owner, contract ProtocolConfig _config, contract IERC20Upgradeable _poolToken, enum ProtocolConfig.PoolType _poolType) external nonpayable

Run only once, on initialization

Parameters

NameTypeDescription

_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

function __BaseUpgradeablePausable__init(address owner) external nonpayable

Parameters

NameTypeDescription

owner

address

undefined

__PauserPausable__init

function __PauserPausable__init() external nonpayable

applyFee

function applyFee(uint256 amount, uint256 takeRate) external view returns (uint256, uint256)

Parameters

NameTypeDescription

amount

uint256

Amount to subtract the fee from

takeRate

uint256

Rate to calculate the fee

Returns

NameTypeDescription

_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)

getCumulativeDividends

function getCumulativeDividends() external view returns (uint256)

Returns

NameTypeDescription

_0

uint256

The sum of all dividends returned to this pool

getFirstWithdrawalTime

function getFirstWithdrawalTime() external view returns (uint256)

Returns

NameTypeDescription

_0

uint256

First withdrawal timestamp in this pool

getInvestorClaimedDividends

function getInvestorClaimedDividends(address investor) external view returns (uint256)

Parameters

NameTypeDescription

investor

address

undefined

Returns

NameTypeDescription

_0

uint256

Total dividends claimed by the investor

getRoleAdmin

function getRoleAdmin(bytes32 role) external view returns (bytes32)

Returns the admin role that controls role. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.

Parameters

NameTypeDescription

role

bytes32

undefined

Returns

NameTypeDescription

_0

bytes32

undefined

getRoleMember

function getRoleMember(bytes32 role, uint256 index) external view returns (address)

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

NameTypeDescription

role

bytes32

undefined

index

uint256

undefined

Returns

NameTypeDescription

_0

address

undefined

getRoleMemberCount

function getRoleMemberCount(bytes32 role) external view returns (uint256)

Returns the number of accounts that have role. Can be used together with {getRoleMember} to enumerate all bearers of a role.

Parameters

NameTypeDescription

role

bytes32

undefined

Returns

NameTypeDescription

_0

uint256

undefined

getTotalDeployedAmount

function getTotalDeployedAmount() external view returns (uint256)

Returns

NameTypeDescription

_0

uint256

Total deployed amount in the pool

getTotalUndeployedAmount

function getTotalUndeployedAmount() external view returns (uint256)

Returns

NameTypeDescription

_0

uint256

Total undeployed amount in the pool

grantRole

function grantRole(bytes32 role, address account) external nonpayable

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

NameTypeDescription

role

bytes32

undefined

account

address

undefined

hasRole

function hasRole(bytes32 role, address account) external view returns (bool)

Returns true if account has been granted role.

Parameters

NameTypeDescription

role

bytes32

undefined

account

address

undefined

Returns

NameTypeDescription

_0

bool

undefined

isAdmin

function isAdmin() external view returns (bool)

Returns

NameTypeDescription

_0

bool

undefined

pause

function pause() external nonpayable

Pauses all functions guarded by Pause See {Pausable-_pause}. Requirements: - the caller must have the PAUSER_ROLE.

paused

function paused() external view returns (bool)

Returns true if the contract is paused, and false otherwise.

Returns

NameTypeDescription

_0

bool

undefined

poolToken

function poolToken() external view returns (contract IERC20Upgradeable)

Returns

NameTypeDescription

_0

contract IERC20Upgradeable

undefined

poolType

function poolType() external view returns (enum ProtocolConfig.PoolType)

Returns

NameTypeDescription

_0

enum ProtocolConfig.PoolType

undefined

renounceRole

function renounceRole(bytes32 role, address account) external nonpayable

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

NameTypeDescription

role

bytes32

undefined

account

address

undefined

revokeRole

function revokeRole(bytes32 role, address account) external nonpayable

Revokes role from account. If account had been granted role, emits a {RoleRevoked} event. Requirements: - the caller must have role's admin role.

Parameters

NameTypeDescription

role

bytes32

undefined

account

address

undefined

supportsInterface

function supportsInterface(bytes4 interfaceId) external view returns (bool)

See {IERC165-supportsInterface}.

Parameters

NameTypeDescription

interfaceId

bytes4

undefined

Returns

NameTypeDescription

_0

bool

undefined

totalInvestedAmountForInvestor

function totalInvestedAmountForInvestor(address) external view returns (uint256)

Parameters

NameTypeDescription

_0

address

undefined

Returns

NameTypeDescription

_0

uint256

undefined

unpause

function unpause() external nonpayable

Unpauses the contract See {Pausable-_unpause}. Requirements: - the caller must have the Pauser role

Events

Claim

event Claim(address indexed from, uint256 amount)

Parameters

NameTypeDescription

from indexed

address

undefined

amount

uint256

undefined

Contribute

event Contribute(address indexed from, uint256 amount)

Parameters

NameTypeDescription

from indexed

address

undefined

amount

uint256

undefined

Invest

event Invest(address indexed from, uint256 amount)

Parameters

NameTypeDescription

from indexed

address

undefined

amount

uint256

undefined

Paused

event Paused(address account)

Parameters

NameTypeDescription

account

address

undefined

RemoveUndeployedCapital

event RemoveUndeployedCapital(address indexed remover)

Parameters

NameTypeDescription

remover indexed

address

undefined

RoleAdminChanged

event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)

Parameters

NameTypeDescription

role indexed

bytes32

undefined

previousAdminRole indexed

bytes32

undefined

newAdminRole indexed

bytes32

undefined

RoleGranted

event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

NameTypeDescription

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

RoleRevoked

event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

NameTypeDescription

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

Unpaused

event Unpaused(address account)

Parameters

NameTypeDescription

account

address

undefined

Withdraw

event Withdraw(address indexed from, uint256 amount)

Parameters

NameTypeDescription

from indexed

address

undefined

amount

uint256

undefined

Last updated