ISecurityTokenPositionManager.sol
ISecurityTokenPositionManager
Interface for managing positions in security tokens
This interface defines the core functionality for minting, burning, and managing security token positions
Functions
initializeAuthority
Initializes the authority for the position manager
This function should only be called once, typically during contract deployment
function initializeAuthority(address initialAuthority) external;
Parameters
initialAuthority
address
The address to be set as the initial authority
initialize
Initializes the position manager and its associated ERC721 token
function initialize(string calldata name, string calldata symbol, address descriptor) external;
Parameters
name
string
The name for the ERC721 token representing positions
symbol
string
The symbol for the ERC721 token representing positions
descriptor
address
The address of the descriptor contract
updateSecurityToken
Updates the details of a security token
function updateSecurityToken(address securityToken, SecurityTokenDetails calldata details) external;
Parameters
securityToken
address
The address of the security token to update
details
SecurityTokenDetails
The new details for the security token
removeSecurityToken
Removes a security token from the position manager
function removeSecurityToken(address securityToken) external;
Parameters
securityToken
address
The address of the security token to remove
setDefaultRoyalty
Sets the default royalty for the contract
function setDefaultRoyalty(address receiver, uint96 feeNumerator) external;
Parameters
receiver
address
The address to receive royalties
feeNumerator
uint96
The fee numerator for calculating royalties
setTokenRoyalty
Sets the royalty for a specific token
function setTokenRoyalty(uint256 tokenId, address receiver, uint96 feeNumerator) external;
Parameters
tokenId
uint256
The ID of the token to set royalties for
receiver
address
The address to receive royalties
feeNumerator
uint96
The fee numerator for calculating royalties
mint
Mints a new position token representing a locked amount of security tokens
function mint(address securityToken, uint256 amount, address recipient, bytes memory data)
external
returns (uint256 tokenId);
Parameters
securityToken
address
The address of the security token to be locked in the position
amount
uint256
The amount of security tokens to be locked in the position
recipient
address
The address to receive the minted position token
data
bytes
Additional data for the mint operation
Returns
tokenId
uint256
The ID of the newly minted position token
burn
Burns a position and releases the locked security tokens
function burn(uint256 tokenId, address recipient) external returns (TokenData memory data);
Parameters
tokenId
uint256
The ID of the position to burn
recipient
address
The address to receive the underlying security tokens
Returns
data
TokenData
The TokenData of the burned position
setDelegate
Sets the delegate for a position's voting power
function setDelegate(uint256 tokenId, address target) external;
Parameters
tokenId
uint256
The ID of the position token
target
address
The address of the new delegate
securityTokenDetails
Retrieves the details of a security token
function securityTokenDetails(address securityToken) external view returns (SecurityTokenDetails memory);
Parameters
securityToken
address
The address of the security token
Returns
<none>
SecurityTokenDetails
The SecurityTokenDetails of the specified security token
tokenData
Retrieves the token data for a position
function tokenData(uint256 tokenId) external view returns (TokenData memory);
Parameters
tokenId
uint256
The ID of the position token
Returns
<none>
TokenData
The TokenData of the specified position
Events
Mint
Emitted when a new position is minted
event Mint(
uint256 indexed tokenId,
address indexed securityToken,
uint256 indexed amount,
address container,
address recipient,
address sender
);
Parameters
tokenId
uint256
The unique identifier of the minted position
securityToken
address
The address of the security token
amount
uint256
The amount of tokens in the position
container
address
The address of the votes container
recipient
address
The address receiving the minted position
sender
address
The address initiating the mint
Burn
Emitted when a position is burned
event Burn(
uint256 indexed tokenId, address indexed securityToken, uint256 indexed amount, address recipient, address sender
);
Parameters
tokenId
uint256
The unique identifier of the burned position
securityToken
address
The address of the security token
amount
uint256
The amount of tokens in the burned position
recipient
address
The address receiving the underlying tokens
sender
address
The address initiating the burn
UpdateSecurityToken
Emitted when a security token is updated
event UpdateSecurityToken(address indexed securityToken);
Parameters
securityToken
address
The address of the updated security token
RemoveSecurityToken
Emitted when a security token is removed
event RemoveSecurityToken(address indexed securityToken);
Parameters
securityToken
address
The address of the removed security token
Structs
TokenData
Struct representing token data for a position
struct TokenData {
address securityToken;
uint256 amount;
address container;
}
Properties
securityToken
address
The address of the security token
amount
uint256
The amount of tokens in the position
container
address
The address of the votes container
SecurityTokenDetails
Struct representing details of a security token
struct SecurityTokenDetails {
bytes data;
}
Properties
data
bytes
Additional data associated with the security token
Last updated