pragma ever -solidity ^0.62.0; /** * @dev An interface that defines additional functionality for burning tokens * owned by the TokenWallet, according to the TIP-3.2 standard. * * (See https://docs.everscale.network/standard/TIP-3.2#burn-tokens-by-token-wallet-owner) * * Сhain of calls: * * walletOwner -> IBurnableTokenWallet(wallet).burn(...) -> * ITokenRoot(root).acceptBurn(...) -> * IAcceptTokensBurnCallback(callbackTo).onAcceptTokensBurn(...) -> ... */ interface IBurnableTokenWallet { /** * @dev Allows for walletOwner burn tokens. * * @param amount Amount tokens to burn * @param remainingGasTo Address of contract, which will receive remaining * gas after execution burn. * @param callbackTo Address of contract, which implement {IAcceptTokensBurnCallback-onAcceptTokensBurn} * if it equals to 0:0 then no callbacks. * @param payload Custom data will be delivered into {IAcceptTokensBurnCallback-onAcceptTokensBurn}. * * Precondition: * * - sender must be TokenWallet owner. * * Postcondition: * * - The `balance_` must increase by the `amount` that is burned. */ function burn( uint128 amount, address remainingGasTo, address callbackTo, TvmCell payload ) external; }