Checkpoint module for issuing ERC20 dividends (ERC20DividendCheckpoint.sol)
View Source: contracts/modules/Checkpoint/Dividend/ERC20/ERC20DividendCheckpoint.sol
↗ Extends: ERC20DividendCheckpointStorage, DividendCheckpoint
ERC20DividendCheckpoint
Events
event ERC20DividendDeposited(address indexed _depositor, uint256 _checkpointId, uint256 _maturity, uint256 _expiry, address indexed _token, uint256 _amount, uint256 _totalSupply, uint256 _dividendIndex, bytes32 indexed _name);
event ERC20DividendClaimed(address indexed _payee, uint256 indexed _dividendIndex, address indexed _token, uint256 _amount, uint256 _withheld);
event ERC20DividendReclaimed(address indexed _claimer, uint256 indexed _dividendIndex, address indexed _token, uint256 _claimedAmount);
event ERC20DividendWithholdingWithdrawn(address indexed _claimer, uint256 indexed _dividendIndex, address indexed _token, uint256 _withheldAmount);
Functions
Constructor
function (address _securityToken, address _polyToken) public nonpayable Module
Arguments
Name
Type
Description
_securityToken
address
Address of the security token
_polyToken
address
createDividend
Creates a dividend and checkpoint for the dividend
function createDividend(uint256 _maturity, uint256 _expiry, address _token, uint256 _amount, bytes32 _name) external nonpayable withPerm
Arguments
Name
Type
Description
_maturity
uint256
Time from which dividend can be paid
_expiry
uint256
Time until dividend can no longer be paid, and can be reclaimed by issuer
_token
address
Address of ERC20 token in which dividend is to be denominated
_amount
uint256
Amount of specified token for dividend
_name
bytes32
Name/Title for identification
createDividendWithCheckpoint
Creates a dividend with a provided checkpoint
function createDividendWithCheckpoint(uint256 _maturity, uint256 _expiry, address _token, uint256 _amount, uint256 _checkpointId, bytes32 _name) external nonpayable withPerm
Arguments
Name
Type
Description
_maturity
uint256
Time from which dividend can be paid
_expiry
uint256
Time until dividend can no longer be paid, and can be reclaimed by issuer
_token
address
Address of ERC20 token in which dividend is to be denominated
_amount
uint256
Amount of specified token for dividend
_checkpointId
uint256
Checkpoint id from which to create dividends
_name
bytes32
Name/Title for identification
createDividendWithExclusions
Creates a dividend and checkpoint for the dividend
function createDividendWithExclusions(uint256 _maturity, uint256 _expiry, address _token, uint256 _amount, address[] _excluded, bytes32 _name) public nonpayable withPerm
Arguments
Name
Type
Description
_maturity
uint256
Time from which dividend can be paid
_expiry
uint256
Time until dividend can no longer be paid, and can be reclaimed by issuer
_token
address
Address of ERC20 token in which dividend is to be denominated
_amount
uint256
Amount of specified token for dividend
_excluded
address[]
List of addresses to exclude
_name
bytes32
Name/Title for identification
createDividendWithCheckpointAndExclusions
Creates a dividend with a provided checkpoint
function createDividendWithCheckpointAndExclusions(uint256 _maturity, uint256 _expiry, address _token, uint256 _amount, uint256 _checkpointId, address[] _excluded, bytes32 _name) public nonpayable withPerm
Arguments
Name
Type
Description
_maturity
uint256
Time from which dividend can be paid
_expiry
uint256
Time until dividend can no longer be paid, and can be reclaimed by issuer
_token
address
Address of ERC20 token in which dividend is to be denominated
_amount
uint256
Amount of specified token for dividend
_checkpointId
uint256
Checkpoint id from which to create dividends
_excluded
address[]
List of addresses to exclude
_name
bytes32
Name/Title for identification
_createDividendWithCheckpointAndExclusions
Creates a dividend with a provided checkpoint
function _createDividendWithCheckpointAndExclusions(uint256 _maturity, uint256 _expiry, address _token, uint256 _amount, uint256 _checkpointId, address[] _excluded, bytes32 _name) internal nonpayable
Arguments
Name
Type
Description
_maturity
uint256
Time from which dividend can be paid
_expiry
uint256
Time until dividend can no longer be paid, and can be reclaimed by issuer
_token
address
Address of ERC20 token in which dividend is to be denominated
_amount
uint256
Amount of specified token for dividend
_checkpointId
uint256
Checkpoint id from which to create dividends
_excluded
address[]
List of addresses to exclude
_name
bytes32
Name/Title for identification
_emitERC20DividendDepositedEvent
Emits the ERC20DividendDeposited event. Seperated into a different function as a workaround for stack too deep error
function _emitERC20DividendDepositedEvent(uint256 _checkpointId, uint256 _maturity, uint256 _expiry, address _token, uint256 _amount, uint256 currentSupply, uint256 dividendIndex, bytes32 _name) internal nonpayable
Arguments
Name
Type
Description
_checkpointId
uint256
_maturity
uint256
_expiry
uint256
_token
address
_amount
uint256
currentSupply
uint256
dividendIndex
uint256
_name
bytes32
_payDividend
⤾ overrides DividendCheckpoint._payDividend
Internal function for paying dividends
function _payDividend(address payable _payee, struct DividendCheckpointStorage.Dividend _dividend, uint256 _dividendIndex) internal nonpayable
Arguments
Name
Type
Description
_payee
address payable
Address of investor
_dividend
struct DividendCheckpointStorage.Dividend
Storage with previously issued dividends
_dividendIndex
uint256
Dividend to pay
reclaimDividend
⤾ overrides DividendCheckpoint.reclaimDividend
Issuer can reclaim remaining unclaimed dividend amounts, for expired dividends
function reclaimDividend(uint256 _dividendIndex) external nonpayable withPerm
Arguments
Name
Type
Description
_dividendIndex
uint256
Dividend to reclaim
withdrawWithholding
⤾ overrides DividendCheckpoint.withdrawWithholding
Allows issuer to withdraw withheld tax
function withdrawWithholding(uint256 _dividendIndex) external nonpayable withPerm
Arguments
Name
Type
Description
_dividendIndex
uint256
Dividend to withdraw from
Last updated
Was this helpful?