Burn module for burning tokens and keeping track of burnt amounts (ScheduledCheckpoint.sol)

View Source: contracts/modules/Experimental/Mixed/ScheduledCheckpoint.solโ€‹

โ†— Extends: ICheckpoint, TransferManagerโ€‹

ScheduledCheckpoint

Enums

TimeUnit

enum TimeUnit {
SECONDS,
DAYS,
WEEKS,
MONTHS,
YEARS
}

Structs

Schedule

struct Schedule {
bytes32 name,
uint256 startTime,
uint256 nextTime,
uint256 interval,
enum ScheduledCheckpoint.TimeUnit timeUnit,
uint256 index,
uint256[] checkpointIds,
uint256[] timestamps,
uint256[] periods,
uint256 totalPeriods
}

Contract Members

Constants & Variables

bytes32[] public names;
mapping(bytes32 => struct ScheduledCheckpoint.Schedule) public schedules;

Events

event AddSchedule(bytes32 _name, uint256 _startTime, uint256 _interval, enum ScheduledCheckpoint.TimeUnit _timeUint);
event RemoveSchedule(bytes32 _name);

Functions

Constructor

function (address _securityToken, address _polyToken) public nonpayable Module

Arguments

Name

Type

Description

_securityToken

address

Address of the security token

_polyToken

address

โ€‹

getInitFunction

โคพ overrides IModule.getInitFunctionโ€‹

This function returns the signature of configure function

function getInitFunction() public pure
returns(bytes4)

Arguments

Name

Type

Description

addSchedule

adds a new schedule for checkpoints

function addSchedule(bytes32 _name, uint256 _startTime, uint256 _interval, enum ScheduledCheckpoint.TimeUnit _timeUnit) external nonpayable

Arguments

Name

Type

Description

_name

bytes32

name of the new schedule (must be unused)

_startTime

uint256

start time of the schedule (first checkpoint)

_interval

uint256

interval at which checkpoints should be created

_timeUnit

enum ScheduledCheckpoint.TimeUnit

unit of time at which checkpoints should be created

removeSchedule

removes a schedule for checkpoints

function removeSchedule(bytes32 _name) external nonpayable

Arguments

Name

Type

Description

_name

bytes32

name of the schedule to be removed

executeTransfer

โคพ overrides ITransferManager.executeTransferโ€‹

Used to create checkpoints that correctly reflect balances

function executeTransfer(address , address , uint256 , bytes ) external nonpayable onlySecurityToken
returns(enum ITransferManager.Result)

Returns

always returns Result.NA

Arguments

Name

Type

Description

โ€‹

address

โ€‹

โ€‹

address

โ€‹

โ€‹

uint256

โ€‹

โ€‹

bytes

โ€‹

verifyTransfer

โคพ overrides ITransferManager.verifyTransferโ€‹

Used to create checkpoints that correctly reflect balances

function verifyTransfer(address , address , uint256 , bytes ) public view
returns(enum ITransferManager.Result, bytes32)

Returns

always returns Result.NA

Arguments

Name

Type

Description

โ€‹

address

โ€‹

โ€‹

address

โ€‹

โ€‹

uint256

โ€‹

โ€‹

bytes

โ€‹

getSchedule

gets schedule details

function getSchedule(bytes32 _name) external view
returns(bytes32, uint256, uint256, uint256, enum ScheduledCheckpoint.TimeUnit, uint256[], uint256[], uint256[], uint256)

Arguments

Name

Type

Description

_name

bytes32

name of the schedule

update

manually triggers update outside of transfer request for named schedule (can be used to reduce user gas costs)

function update(bytes32 _name) external nonpayable

Arguments

Name

Type

Description

_name

bytes32

name of the schedule

_update

function _update(bytes32 _name) internal nonpayable

Arguments

Name

Type

Description

_name

bytes32

โ€‹

updateAll

manually triggers update outside of transfer request for all schedules (can be used to reduce user gas costs)

function updateAll() external nonpayable

Arguments

Name

Type

Description

_updateAll

function _updateAll() internal nonpayable

Arguments

Name

Type

Description

getPermissions

โคพ overrides IModule.getPermissionsโ€‹

Return the permissions flag that are associated with CountTransferManager

function getPermissions() external view
returns(bytes32[])

Arguments

Name

Type

Description