IMint
Asset Tokenization Studio Team
IMint
Interface aggregating the token issuance entry points of the ATS Diamond.
Consolidates the ERC-1594 issue/isIssuable pair and the ERC-3643 mint operation in a single facet. Both write operations require the caller to hold either the issuer or agent role, honour max-supply and compliance checks, and emit the Issued event from IERC1594.
Methods
disableIssuance
function disableIssuance() external nonpayable
Permanently disables issuance of new tokens.
Restricted to DEFAULT_ADMIN_ROLE. Sets the issuance flag to false and emits IssuanceDisabled. Reverts if issuance has already been disabled.
finalizeIssuance
function finalizeIssuance() external nonpayable
Permanently finalizes issuance of new tokens.
Restricted to DEFAULT_ADMIN_ROLE. Sets the issuance flag to false and emits IssuanceFinalized. Reverts if issuance has already been disabled.
initializeERC1594
function initializeERC1594() external nonpayable
Initialises the ERC-1594 StorageWrapper on the calling contract.
Can only be invoked once per contract; subsequent calls revert via onlyFacetNotRegistered.
isIssuable
function isIssuable() external view returns (bool issuable_)
Returns whether further issuance is permitted for this security.
Once a token returns false it must never return true again. Implementations read the issuance flag maintained by ERC1594StorageWrapper.
Returns
| Name | Type | Description |
|---|---|---|
| issuable_ | bool | True while new tokens may still be issued or minted. |
issue
function issue(address _tokenHolder, uint256 _value, bytes _data) external nonpayable
Issues new tokens to a token holder under the ERC-1594 semantics.
Restricted to issuer or agent roles. Increases the total supply and emits IERC1594.Issued. Only callable in single-partition mode and when the token is unpaused; the destination must pass identity and compliance checks.
Parameters
| Name | Type | Description |
|---|---|---|
| _tokenHolder | address | Recipient of the newly issued tokens. |
| _value | uint256 | Amount of tokens to issue, denominated in base units. |
| _data | bytes | Arbitrary data forwarded alongside the issuance for off-chain consumers. |
mint
function mint(address _to, uint256 _amount) external nonpayable
Mints new tokens to a recipient under the ERC-3643 semantics.
Behaves as a thin alias over issue with an empty data payload. Restricted to issuer or agent roles and subject to the same pause, supply, identity and compliance constraints. Emits IERC1594.Issued.
Parameters
| Name | Type | Description |
|---|---|---|
| _to | address | Recipient of the newly minted tokens. |
| _amount | uint256 | Amount of tokens to mint, denominated in base units. |
Events
ERC1594Initialized
event ERC1594Initialized()
/**Emitted once when the ERC-1594 capability is initialised on a token.
Fires exclusively from initializeERC1594 after the storage write succeeds.
IssuanceDisabled
event IssuanceDisabled(address indexed operator)
Emitted when token issuance is disabled.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Account that disabled issuance. |
IssuanceFinalized
event IssuanceFinalized(address indexed operator)
Emitted when token issuance is finalized.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Account that finalized issuance. |
Issued
event Issued(address indexed operator, address indexed to, uint256 value, bytes data)
Emitted when new tokens are issued to a holder.
Parameters
| Name | Type | Description |
|---|---|---|
operator indexed | address | Account that invoked the issuance (issuer or agent). |
to indexed | address | Recipient of the newly issued tokens. |
| value | uint256 | Amount of tokens issued, denominated in base units. |
| data | bytes | Arbitrary payload forwarded alongside the issuance. |
Errors
IssuanceIsDisabled
error IssuanceIsDisabled()
Thrown when an issuance operation is attempted after issuance has been permanently disabled.