Interface for all security tokens (ISecurityToken.sol)
View Source: contracts/interfaces/ISecurityToken.sol
ISecurityToken
Events
Functions
symbol
Arguments
name
Arguments
decimals
Arguments
totalSupply
Arguments
balanceOf
Arguments
allowance
Arguments
transfer
Arguments
transferFrom
Arguments
approve
Arguments
decreaseAllowance
Arguments
increaseAllowance
Arguments
canTransfer
Transfers of securities may fail for a number of reasons. So this function will used to understand the cause of failure by getting the byte value. Which will be the ESC that follows the EIP 1066. ESC can be mapped with a reson string to understand the failure cause, table of Ethereum status code will always reside off-chain
Returns
byte Ethereum status code (ESC)
Arguments
initialize
Initialization function
Arguments
canTransferByPartition
The standard provides an on-chain function to determine whether a transfer will succeed, and return details indicating the reason if the transfer is not valid.
Returns
ESC (Ethereum Status Code) following the EIP-1066 standard
Arguments
canTransferFrom
Transfers of securities may fail for a number of reasons. So this function will used to understand the cause of failure by getting the byte value. Which will be the ESC that follows the EIP 1066. ESC can be mapped with a reson string to understand the failure cause, table of Ethereum status code will always reside off-chain
Returns
byte Ethereum status code (ESC)
Arguments
setDocument
Used to attach a new document to the contract, or update the URI or hash of an existing attached document
Arguments
removeDocument
Used to remove an existing document from the contract by giving the name of the document.
Arguments
getDocument
Used to return the details of a document with a known name (bytes32
).
Returns
string The URI associated with the document.
Arguments
getAllDocuments
Used to retrieve a full list of documents attached to the smart contract.
Returns
bytes32 List of all documents names present in the contract.
Arguments
isControllable
In order to provide transparency over whether controllerTransfer
/ controllerRedeem
are useable or not isControllable
function will be used.
Returns
bool true
when controller address is non-zero otherwise return false
.
Arguments
isModule
Checks if an address is a module of certain type
Arguments
issue
This function must be called to increase the total supply (Corresponds to mint function of ERC20).
Arguments
issueMulti
issue new tokens and assigns them to the target _tokenHolder.
Returns
success
Arguments
issueByPartition
Increases totalSupply and the corresponding amount of the specified owners partition
Arguments
redeemByPartition
Decreases totalSupply and the corresponding amount of the specified partition of msg.sender
Arguments
redeem
This function redeem an amount of the token of a msg.sender. For doing so msg.sender may incentivize using different ways that could be implemented with in the redeem
function definition. But those implementations are out of the scope of the ERC1594.
Arguments
redeemFrom
This function redeem an amount of the token of a msg.sender. For doing so msg.sender may incentivize using different ways that could be implemented with in the redeem
function definition. But those implementations are out of the scope of the ERC1594.
Arguments
operatorRedeemByPartition
Decreases totalSupply and the corresponding amount of the specified partition of tokenHolder
Arguments
checkPermission
Validate permissions with PermissionManager if it exists, If no Permission return false
Returns
success
Arguments
getModule
Returns module list for a module type
Returns
bytes32 Name
Arguments
getModulesByName
Returns module list for a module name
Returns
address[] List of modules with this name
Arguments
getModulesByType
Returns module list for a module type
Returns
address[] List of modules with this type
Arguments
getTreasuryWallet
use to return the global treasury wallet
Arguments
totalSupplyAt
Queries totalSupply at a specified checkpoint
Arguments
balanceOfAt
Queries balance at a specified checkpoint
Arguments
createCheckpoint
Creates a checkpoint that can be used to query historical balances / totalSuppy
Arguments
getCheckpointTimes
Gets list of times that checkpoints were created
Returns
List of checkpoint times
Arguments
getInvestors
returns an array of investors NB - this length may differ from investorCount as it contains all investors that ever held tokens
Returns
list of addresses
Arguments
getInvestorsAt
returns an array of investors at a given checkpoint NB - this length may differ from investorCount as it contains all investors that ever held tokens
Returns
list of investors
Arguments
getInvestorsSubsetAt
returns an array of investors with non zero balance at a given checkpoint
Returns
list of investors
Arguments
iterateInvestors
generates subset of investors NB - can be used in batches if investor list is large
Returns
list of investors
Arguments
currentCheckpointId
Gets current checkpoint ID
Returns
Id
Arguments
isOperator
Determines whether _operator
is an operator for all partitions of _tokenHolder
Returns
Whether the _operator
is an operator for all partitions of _tokenHolder
Arguments
isOperatorForPartition
Determines whether _operator
is an operator for a specified partition of _tokenHolder
Returns
Whether the _operator
is an operator for a specified partition of _tokenHolder
Arguments
partitionsOf
Return all partitions
Returns
List of partitions
Arguments
dataStore
Gets data store address
Returns
data store address
Arguments
changeDataStore
Allows owner to change data store
Arguments
changeTreasuryWallet
Allows to change the treasury wallet address
Arguments
withdrawERC20
Allows the owner to withdraw unspent POLY stored by them on the ST or any ERC20 token.
Arguments
changeModuleBudget
Allows owner to increase/decrease POLY approval of one of the modules
Arguments
updateTokenDetails
Changes the tokenDetails
Arguments
changeName
Allows owner to change token name
Arguments
changeGranularity
Allows the owner to change token granularity
Arguments
freezeTransfers
Freezes all the transfers
Arguments
unfreezeTransfers
Un-freezes all the transfers
Arguments
freezeIssuance
Permanently freeze issuance of this security token.
Arguments
addModuleWithLabel
Attachs a module to the SecurityToken
Arguments
addModule
Function used to attach a module to the security token
Arguments
archiveModule
Archives a module attached to the SecurityToken
Arguments
unarchiveModule
Unarchives a module attached to the SecurityToken
Arguments
removeModule
Removes a module attached to the SecurityToken
Arguments
setController
Used by the issuer to set the controller addresses
Arguments
controllerTransfer
This function allows an authorised address to transfer tokens between any two token holders. The transfer must still respect the balances of the token holders (so the transfer must be for at most balanceOf(_from)
tokens) and potentially also need to respect other transfer restrictions.
Arguments
because use of _data
parameter is implementation specific). | | _operatorData | bytes | data attached to the transfer by controller to emit in event. (It is more like a reason string for calling this function (aka force transfer) which provides the transparency on-chain). |
controllerRedeem
This function allows an authorised address to redeem tokens for any token holder. The redemption must still respect the balances of the token holder (so the redemption must be for at most balanceOf(_tokenHolder)
tokens) and potentially also need to respect other transfer restrictions.
Arguments
because use of _data
parameter is implementation specific). | | _operatorData | bytes | data attached to the transfer by controller to emit in event. (It is more like a reason string for calling this function (aka force transfer) which provides the transparency on-chain). |
disableController
Used by the issuer to permanently disable controller functionality
Arguments
getVersion
Used to get the version of the securityToken
Arguments
getInvestorCount
Gets the investor count
Arguments
holderCount
Gets the holder count (investors with non zero balance)
Arguments
transferWithData
Overloaded version of the transfer function
Returns
bool success
Arguments
transferFromWithData
Overloaded version of the transferFrom function
Returns
bool success
Arguments
transferByPartition
Transfers the ownership of tokens from a specified partition from one address to another address
Returns
The partition to which the transferred tokens were allocated for the _to address
Arguments
balanceOfByPartition
Get the balance according to the provided partitions
Returns
Amount of tokens as per the given partitions
Arguments
granularity
Provides the granularity of the token
Returns
uint256
Arguments
polymathRegistry
Provides the address of the polymathRegistry
Returns
address
Arguments
upgradeModule
Upgrades a module attached to the SecurityToken
Arguments
upgradeToken
Upgrades security token
Arguments
isIssuable
A security token issuer can specify that issuance has finished for the token (i.e. no new tokens can be minted or issued).
Returns
bool true
signifies the minting is allowed. While false
denotes the end of minting
Arguments
authorizeOperator
Authorises an operator for all partitions of msg.sender
. NB - Allowing investors to authorize an investor to be an operator of all partitions but it doesn't mean we operator is allowed to transfer the LOCKED partition values. Logic for this restriction is written in operatorTransferByPartition()
function.
Arguments
revokeOperator
Revokes authorisation of an operator previously given for all partitions of msg.sender
. NB - Allowing investors to authorize an investor to be an operator of all partitions but it doesn't mean we operator is allowed to transfer the LOCKED partition values. Logic for this restriction is written in operatorTransferByPartition()
function.
Arguments
authorizeOperatorByPartition
Authorises an operator for a given partition of msg.sender
Arguments
revokeOperatorByPartition
Revokes authorisation of an operator previously given for a specified partition of msg.sender
Arguments
operatorTransferByPartition
Transfers the ownership of tokens from a specified partition from one address to another address
Returns
The partition to which the transferred tokens were allocated for the _to address
Arguments
transfersFrozen
Arguments
transferOwnership
Allows the current owner to transfer control of the contract to a newOwner.
Arguments
isOwner
Returns
true if msg.sender
is the owner of the contract.
Arguments
owner
Returns
the address of the owner.
Arguments
controller
Arguments
moduleRegistry
Arguments
securityTokenRegistry
Arguments
polyToken
Arguments
tokenFactory
Arguments
getterDelegate
Arguments
controllerDisabled
Arguments
initialized
Arguments
tokenDetails
Arguments
updateFromRegistry
Arguments
Last updated