Contract detail
BurnMintTokenPool
BurnMintTokenPool is a verified Robinhood Chain smart contract at 0x1c2f528e…d18be7fa with 1 indexed transactions.
- Address type
- Smart contract
- Transactions
- 1
- First indexed block
- #43286
- Latest indexed block
- #82486458
- Indexed token transfers
- 2
- ERC-20 transfers
- 19
- Emitted events
- 20
- Verification
- Verified
- Compiler
- v0.8.26+commit.8a97fa7a
- Verification match
- partial
- Creation transaction
- 0x5c1b1347…eb4895f6
- Created at block
- #43286
- Language
- solidity
- EVM version
- paris
- License
- mit
- Compiler optimization
- Enabled · 80000 runs
Related activity
Transactions
| Transaction | Block | From | To | Value (wei) |
|---|---|---|---|---|
| 0x06bba1bf…addd5409 | #43431 | 0x062f05cd…76861316 | 0x1c2f528e…d18be7fa | 0 |
Verified contract
Contract source code
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.24;
import {ITypeAndVersion} from "@chainlink/contracts/src/v0.8/shared/interfaces/ITypeAndVersion.sol";
import {IBurnMintERC20} from "@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol";
import {BurnMintTokenPoolAbstract} from "./BurnMintTokenPoolAbstract.sol";
import {TokenPool} from "./TokenPool.sol";
/// @notice This pool mints and burns a 3rd-party token.
/// @dev Pool whitelisting mode is set in the constructor and cannot be modified later.
/// It either accepts any address as originalSender, or only accepts whitelisted originalSender.
/// The only way to change whitelisting mode is to deploy a new pool.
/// If that is expected, please make sure the token's burner/minter roles are adjustable.
/// @dev This contract is a variant of BurnMintTokenPool that uses `burn(amount)`.
contract BurnMintTokenPool is BurnMintTokenPoolAbstract, ITypeAndVersion {
string public constant override typeAndVersion = "BurnMintTokenPool 1.6.1";
constructor(
IBurnMintERC20 token,
uint8 localTokenDecimals,
address[] memory allowlist,
address rmnProxy,
address router
) TokenPool(token, localTokenDecimals, allowlist, rmnProxy, router) {}
/// @inheritdoc TokenPool
function _lockOrBurn(
uint256 amount
) internal virtual override {
IBurnMintERC20(address(i_token)).burn(amount);
}
}