Skip to main content

IBurn

Asset Tokenization Studio Team

IBurn

Interface exposing the ERC-1594 redemption and ERC-3643 burn surfaces of the ATS Diamond. Covers controller/agent-initiated burns, self-redemption, and operator-initiated redemption on behalf of a token holder.

Methods​

burn​

function burn(address _userAddress, uint256 _amount) external nonpayable

Burns _amount tokens from _userAddress on behalf of a controller or agent.

Caller must hold ROLE_CONTROLLER or ROLE_AGENT. Emits IController.ControllerRedemption rather than Redeemed.

Parameters​

NameTypeDescription
_userAddressaddressAddress whose token balance is reduced.
_amountuint256Amount of tokens to burn, denominated in base units.

initializeBurn​

function initializeBurn() external nonpayable

Initialises the burn capability on the token.

Callable once; subsequent calls revert with FacetAlreadyRegistered. Requires DEFAULT_ADMIN_ROLE. Called by the factory during deployment.

redeem​

function redeem(uint256 _value, bytes _data) external nonpayable

Redeems _value tokens from the caller's own balance under ERC-1594 semantics.

Parameters​

NameTypeDescription
_valueuint256Amount of tokens to redeem, denominated in base units.
_databytesArbitrary payload that implementations may use to authenticate the redemption.

redeemFrom​

function redeemFrom(address _tokenHolder, uint256 _value, bytes _data) external nonpayable

Redeems _value tokens from _tokenHolder's balance, analogous to transferFrom.

Both msg.sender and _tokenHolder must not be recovered addresses.

Parameters​

NameTypeDescription
_tokenHolderaddressAccount whose tokens are redeemed.
_valueuint256Amount of tokens to redeem, denominated in base units.
_databytesArbitrary payload that implementations may use to authenticate the redemption.

Events​

BurnInitialized​

event BurnInitialized()

Emitted once when the burn capability is initialised on a token.

Fires exclusively from initializeBurn.

Redeemed​

event Redeemed(address indexed operator, address indexed from, uint256 value, bytes data)

Emitted when tokens are redeemed from a holder's balance.

Parameters​

NameTypeDescription
operator indexedaddressAccount that executed the redemption.
from indexedaddressAddress from which tokens were burnt.
valueuint256Amount of tokens redeemed, denominated in base units.
databytesArbitrary payload forwarded alongside the redemption.