ETH Price: $2,621.53 (+5.57%)
Gas: 5 Gwei

Token

IdleCDO AA Tranche - stMATIC (AA_stMATIC)
 

Overview

Max Total Supply

408.973273846705413591 AA_stMATIC

Holders

4

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Idle.finance: Treasury League multisig
Balance
0 AA_stMATIC

Value
$0.00
0xfb3bd022d5dacf95ee28a6b07825d4ff9c5b3814
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
IdleCDOTranche

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2022-11-03
*/

// Sources flattened with hardhat v2.8.4 https://hardhat.org

// File @openzeppelin/contracts/token/ERC20/[email protected]
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


// File @openzeppelin/contracts/utils/[email protected]

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]

// OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


// File contracts/IdleCDOTranche.sol

pragma solidity 0.8.10;

/// @dev ERC20 representing a tranche token
contract IdleCDOTranche is ERC20 {
  // allowed minter address
  address public minter;

  /// @param _name tranche name
  /// @param _symbol tranche symbol
  constructor(
    string memory _name, // eg. IdleDAI
    string memory _symbol // eg. IDLEDAI
  ) ERC20(_name, _symbol) {
    // minter is msg.sender which is IdleCDO (in initialize)
    minter = msg.sender;
  }

  /// @param account that should receive the tranche tokens
  /// @param amount of tranche tokens to mint
  function mint(address account, uint256 amount) external {
    require(msg.sender == minter, 'TRANCHE:!AUTH');
    _mint(account, amount);
  }

  /// @param account that should have the tranche tokens burned
  /// @param amount of tranche tokens to burn
  function burn(address account, uint256 amount) external {
    require(msg.sender == minter, 'TRANCHE:!AUTH');
    _burn(account, amount);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162000e9538038062000e958339810160408190526200003491620001f4565b8151829082906200004d90600390602085019062000081565b5080516200006390600490602084019062000081565b5050600580546001600160a01b03191633179055506200029b915050565b8280546200008f906200025e565b90600052602060002090601f016020900481019282620000b35760008555620000fe565b82601f10620000ce57805160ff1916838001178555620000fe565b82800160010185558215620000fe579182015b82811115620000fe578251825591602001919060010190620000e1565b506200010c92915062000110565b5090565b5b808211156200010c576000815560010162000111565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200014f57600080fd5b81516001600160401b03808211156200016c576200016c62000127565b604051601f8301601f19908116603f0116810190828211818310171562000197576200019762000127565b81604052838152602092508683858801011115620001b457600080fd5b600091505b83821015620001d85785820183015181830184015290820190620001b9565b83821115620001ea5760008385830101525b9695505050505050565b600080604083850312156200020857600080fd5b82516001600160401b03808211156200022057600080fd5b6200022e868387016200013d565b935060208501519150808211156200024557600080fd5b5062000254858286016200013d565b9150509250929050565b600181811c908216806200027357607f821691505b602082108114156200029557634e487b7160e01b600052602260045260246000fd5b50919050565b610bea80620002ab6000396000f3fe608060405234801561001057600080fd5b50600436106100ba5760003560e01c806306fdde03146100bf57806307546172146100dd578063095ea7b31461010857806318160ddd1461012b57806323b872dd1461013d578063313ce56714610150578063395093511461015f57806340c10f191461017257806370a082311461018757806395d89b41146101b05780639dc29fac146101b8578063a457c2d7146101cb578063a9059cbb146101de578063dd62ed3e146101f1575b600080fd5b6100c761022a565b6040516100d491906109c1565b60405180910390f35b6005546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020016100d4565b61011b610116366004610a32565b6102bc565b60405190151581526020016100d4565b6002545b6040519081526020016100d4565b61011b61014b366004610a5c565b6102d2565b604051601281526020016100d4565b61011b61016d366004610a32565b610381565b610185610180366004610a32565b6103bd565b005b61012f610195366004610a98565b6001600160a01b031660009081526020819052604090205490565b6100c76103f5565b6101856101c6366004610a32565b610404565b61011b6101d9366004610a32565b610438565b61011b6101ec366004610a32565b6104d1565b61012f6101ff366004610aba565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023990610aed565b80601f016020809104026020016040519081016040528092919081815260200182805461026590610aed565b80156102b25780601f10610287576101008083540402835291602001916102b2565b820191906000526020600020905b81548152906001019060200180831161029557829003601f168201915b5050505050905090565b60006102c93384846104de565b50600192915050565b60006102df848484610603565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103695760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61037685338584036104de565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c99185906103b8908690610b3e565b6104de565b6005546001600160a01b031633146103e75760405162461bcd60e51b815260040161036090610b56565b6103f182826107c0565b5050565b60606004805461023990610aed565b6005546001600160a01b0316331461042e5760405162461bcd60e51b815260040161036090610b56565b6103f1828261088d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610360565b6104c733858584036104de565b5060019392505050565b60006102c9338484610603565b6001600160a01b0383166105405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610360565b6001600160a01b0382166105a15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610360565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610360565b6001600160a01b0382166106c95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610360565b6001600160a01b038316600090815260208190526040902054818110156107415760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610360565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610778908490610b3e565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610b95833981519152846040516107b291815260200190565b60405180910390a350505050565b6001600160a01b0382166108165760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610360565b80600260008282546108289190610b3e565b90915550506001600160a01b03821660009081526020819052604081208054839290610855908490610b3e565b90915550506040518181526001600160a01b03831690600090600080516020610b958339815191529060200160405180910390a35050565b6001600160a01b0382166108ed5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610360565b6001600160a01b038216600090815260208190526040902054818110156109615760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610360565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610990908490610b7d565b90915550506040518281526000906001600160a01b03851690600080516020610b95833981519152906020016105f6565b600060208083528351808285015260005b818110156109ee578581018301518582016040015282016109d2565b81811115610a00576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610a2d57600080fd5b919050565b60008060408385031215610a4557600080fd5b610a4e83610a16565b946020939093013593505050565b600080600060608486031215610a7157600080fd5b610a7a84610a16565b9250610a8860208501610a16565b9150604084013590509250925092565b600060208284031215610aaa57600080fd5b610ab382610a16565b9392505050565b60008060408385031215610acd57600080fd5b610ad683610a16565b9150610ae460208401610a16565b90509250929050565b600181811c90821680610b0157607f821691505b60208210811415610b2257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b5157610b51610b28565b500190565b6020808252600d908201526c0a8a4829c86908a744282aaa89609b1b604082015260600190565b600082821015610b8f57610b8f610b28565b50039056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dd5faa3400274411e92332ce2253bcfca70ac26b75f8e193a199d309ca01718e64736f6c634300080a003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001c49646c6543444f204141205472616e636865202d2073744d4154494300000000000000000000000000000000000000000000000000000000000000000000000a41415f73744d4154494300000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ba5760003560e01c806306fdde03146100bf57806307546172146100dd578063095ea7b31461010857806318160ddd1461012b57806323b872dd1461013d578063313ce56714610150578063395093511461015f57806340c10f191461017257806370a082311461018757806395d89b41146101b05780639dc29fac146101b8578063a457c2d7146101cb578063a9059cbb146101de578063dd62ed3e146101f1575b600080fd5b6100c761022a565b6040516100d491906109c1565b60405180910390f35b6005546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020016100d4565b61011b610116366004610a32565b6102bc565b60405190151581526020016100d4565b6002545b6040519081526020016100d4565b61011b61014b366004610a5c565b6102d2565b604051601281526020016100d4565b61011b61016d366004610a32565b610381565b610185610180366004610a32565b6103bd565b005b61012f610195366004610a98565b6001600160a01b031660009081526020819052604090205490565b6100c76103f5565b6101856101c6366004610a32565b610404565b61011b6101d9366004610a32565b610438565b61011b6101ec366004610a32565b6104d1565b61012f6101ff366004610aba565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023990610aed565b80601f016020809104026020016040519081016040528092919081815260200182805461026590610aed565b80156102b25780601f10610287576101008083540402835291602001916102b2565b820191906000526020600020905b81548152906001019060200180831161029557829003601f168201915b5050505050905090565b60006102c93384846104de565b50600192915050565b60006102df848484610603565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103695760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61037685338584036104de565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102c99185906103b8908690610b3e565b6104de565b6005546001600160a01b031633146103e75760405162461bcd60e51b815260040161036090610b56565b6103f182826107c0565b5050565b60606004805461023990610aed565b6005546001600160a01b0316331461042e5760405162461bcd60e51b815260040161036090610b56565b6103f1828261088d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156104ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610360565b6104c733858584036104de565b5060019392505050565b60006102c9338484610603565b6001600160a01b0383166105405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610360565b6001600160a01b0382166105a15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610360565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610360565b6001600160a01b0382166106c95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610360565b6001600160a01b038316600090815260208190526040902054818110156107415760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610360565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610778908490610b3e565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610b95833981519152846040516107b291815260200190565b60405180910390a350505050565b6001600160a01b0382166108165760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610360565b80600260008282546108289190610b3e565b90915550506001600160a01b03821660009081526020819052604081208054839290610855908490610b3e565b90915550506040518181526001600160a01b03831690600090600080516020610b958339815191529060200160405180910390a35050565b6001600160a01b0382166108ed5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610360565b6001600160a01b038216600090815260208190526040902054818110156109615760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610360565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610990908490610b7d565b90915550506040518281526000906001600160a01b03851690600080516020610b95833981519152906020016105f6565b600060208083528351808285015260005b818110156109ee578581018301518582016040015282016109d2565b81811115610a00576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610a2d57600080fd5b919050565b60008060408385031215610a4557600080fd5b610a4e83610a16565b946020939093013593505050565b600080600060608486031215610a7157600080fd5b610a7a84610a16565b9250610a8860208501610a16565b9150604084013590509250925092565b600060208284031215610aaa57600080fd5b610ab382610a16565b9392505050565b60008060408385031215610acd57600080fd5b610ad683610a16565b9150610ae460208401610a16565b90509250929050565b600181811c90821680610b0157607f821691505b60208210811415610b2257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610b5157610b51610b28565b500190565b6020808252600d908201526c0a8a4829c86908a744282aaa89609b1b604082015260600190565b600082821015610b8f57610b8f610b28565b50039056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dd5faa3400274411e92332ce2253bcfca70ac26b75f8e193a199d309ca01718e64736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001c49646c6543444f204141205472616e636865202d2073744d4154494300000000000000000000000000000000000000000000000000000000000000000000000a41415f73744d4154494300000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): IdleCDO AA Tranche - stMATIC
Arg [1] : _symbol (string): AA_stMATIC

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000001c
Arg [3] : 49646c6543444f204141205472616e636865202d2073744d4154494300000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 41415f73744d4154494300000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

16843:905:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6768:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16910:21;;;;;-1:-1:-1;;;;;16910:21:0;;;;;;-1:-1:-1;;;;;780:32:1;;;762:51;;750:2;735:18;16910:21:0;616:203:1;8935:169:0;;;;;;:::i;:::-;;:::i;:::-;;;1426:14:1;;1419:22;1401:41;;1389:2;1374:18;8935:169:0;1261:187:1;7888:108:0;7976:12;;7888:108;;;1599:25:1;;;1587:2;1572:18;7888:108:0;1453:177:1;9586:492:0;;;;;;:::i;:::-;;:::i;7730:93::-;;;7813:2;2110:36:1;;2098:2;2083:18;7730:93:0;1968:184:1;10487:215:0;;;;;;:::i;:::-;;:::i;17339:144::-;;;;;;:::i;:::-;;:::i;:::-;;8059:127;;;;;;:::i;:::-;-1:-1:-1;;;;;8160:18:0;8133:7;8160:18;;;;;;;;;;;;8059:127;6987:104;;;:::i;17601:144::-;;;;;;:::i;:::-;;:::i;11205:413::-;;;;;;:::i;:::-;;:::i;8399:175::-;;;;;;:::i;:::-;;:::i;8637:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8753:18:0;;;8726:7;8753:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8637:151;6768:100;6822:13;6855:5;6848:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6768:100;:::o;8935:169::-;9018:4;9035:39;4499:10;9058:7;9067:6;9035:8;:39::i;:::-;-1:-1:-1;9092:4:0;8935:169;;;;:::o;9586:492::-;9726:4;9743:36;9753:6;9761:9;9772:6;9743:9;:36::i;:::-;-1:-1:-1;;;;;9819:19:0;;9792:24;9819:19;;;:11;:19;;;;;;;;4499:10;9819:33;;;;;;;;9871:26;;;;9863:79;;;;-1:-1:-1;;;9863:79:0;;3200:2:1;9863:79:0;;;3182:21:1;3239:2;3219:18;;;3212:30;3278:34;3258:18;;;3251:62;-1:-1:-1;;;3329:18:1;;;3322:38;3377:19;;9863:79:0;;;;;;;;;9978:57;9987:6;4499:10;10028:6;10009:16;:25;9978:8;:57::i;:::-;-1:-1:-1;10066:4:0;;9586:492;-1:-1:-1;;;;9586:492:0:o;10487:215::-;4499:10;10575:4;10624:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10624:34:0;;;;;;;;;;10575:4;;10592:80;;10615:7;;10624:47;;10661:10;;10624:47;:::i;:::-;10592:8;:80::i;17339:144::-;17424:6;;-1:-1:-1;;;;;17424:6:0;17410:10;:20;17402:46;;;;-1:-1:-1;;;17402:46:0;;;;;;;:::i;:::-;17455:22;17461:7;17470:6;17455:5;:22::i;:::-;17339:144;;:::o;6987:104::-;7043:13;7076:7;7069:14;;;;;:::i;17601:144::-;17686:6;;-1:-1:-1;;;;;17686:6:0;17672:10;:20;17664:46;;;;-1:-1:-1;;;17664:46:0;;;;;;;:::i;:::-;17717:22;17723:7;17732:6;17717:5;:22::i;11205:413::-;4499:10;11298:4;11342:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11342:34:0;;;;;;;;;;11395:35;;;;11387:85;;;;-1:-1:-1;;;11387:85:0;;4216:2:1;11387:85:0;;;4198:21:1;4255:2;4235:18;;;4228:30;4294:34;4274:18;;;4267:62;-1:-1:-1;;;4345:18:1;;;4338:35;4390:19;;11387:85:0;4014:401:1;11387:85:0;11508:67;4499:10;11531:7;11559:15;11540:16;:34;11508:8;:67::i;:::-;-1:-1:-1;11606:4:0;;11205:413;-1:-1:-1;;;11205:413:0:o;8399:175::-;8485:4;8502:42;4499:10;8526:9;8537:6;8502:9;:42::i;14889:380::-;-1:-1:-1;;;;;15025:19:0;;15017:68;;;;-1:-1:-1;;;15017:68:0;;4622:2:1;15017:68:0;;;4604:21:1;4661:2;4641:18;;;4634:30;4700:34;4680:18;;;4673:62;-1:-1:-1;;;4751:18:1;;;4744:34;4795:19;;15017:68:0;4420:400:1;15017:68:0;-1:-1:-1;;;;;15104:21:0;;15096:68;;;;-1:-1:-1;;;15096:68:0;;5027:2:1;15096:68:0;;;5009:21:1;5066:2;5046:18;;;5039:30;5105:34;5085:18;;;5078:62;-1:-1:-1;;;5156:18:1;;;5149:32;5198:19;;15096:68:0;4825:398:1;15096:68:0;-1:-1:-1;;;;;15177:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15229:32;;1599:25:1;;;15229:32:0;;1572:18:1;15229:32:0;;;;;;;;14889:380;;;:::o;12108:733::-;-1:-1:-1;;;;;12248:20:0;;12240:70;;;;-1:-1:-1;;;12240:70:0;;5430:2:1;12240:70:0;;;5412:21:1;5469:2;5449:18;;;5442:30;5508:34;5488:18;;;5481:62;-1:-1:-1;;;5559:18:1;;;5552:35;5604:19;;12240:70:0;5228:401:1;12240:70:0;-1:-1:-1;;;;;12329:23:0;;12321:71;;;;-1:-1:-1;;;12321:71:0;;5836:2:1;12321:71:0;;;5818:21:1;5875:2;5855:18;;;5848:30;5914:34;5894:18;;;5887:62;-1:-1:-1;;;5965:18:1;;;5958:33;6008:19;;12321:71:0;5634:399:1;12321:71:0;-1:-1:-1;;;;;12489:17:0;;12465:21;12489:17;;;;;;;;;;;12525:23;;;;12517:74;;;;-1:-1:-1;;;12517:74:0;;6240:2:1;12517:74:0;;;6222:21:1;6279:2;6259:18;;;6252:30;6318:34;6298:18;;;6291:62;-1:-1:-1;;;6369:18:1;;;6362:36;6415:19;;12517:74:0;6038:402:1;12517:74:0;-1:-1:-1;;;;;12627:17:0;;;:9;:17;;;;;;;;;;;12647:22;;;12627:42;;12691:20;;;;;;;;:30;;12663:6;;12627:9;12691:30;;12663:6;;12691:30;:::i;:::-;;;;;;;;12756:9;-1:-1:-1;;;;;12739:35:0;12748:6;-1:-1:-1;;;;;12739:35:0;-1:-1:-1;;;;;;;;;;;12767:6:0;12739:35;;;;1599:25:1;;1587:2;1572:18;;1453:177;12739:35:0;;;;;;;;12229:612;12108:733;;;:::o;13128:399::-;-1:-1:-1;;;;;13212:21:0;;13204:65;;;;-1:-1:-1;;;13204:65:0;;6647:2:1;13204:65:0;;;6629:21:1;6686:2;6666:18;;;6659:30;6725:33;6705:18;;;6698:61;6776:18;;13204:65:0;6445:355:1;13204:65:0;13360:6;13344:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;13377:18:0;;:9;:18;;;;;;;;;;:28;;13399:6;;13377:9;:28;;13399:6;;13377:28;:::i;:::-;;;;-1:-1:-1;;13421:37:0;;1599:25:1;;;-1:-1:-1;;;;;13421:37:0;;;13438:1;;-1:-1:-1;;;;;;;;;;;13421:37:0;1587:2:1;1572:18;13421:37:0;;;;;;;17339:144;;:::o;13860:591::-;-1:-1:-1;;;;;13944:21:0;;13936:67;;;;-1:-1:-1;;;13936:67:0;;7007:2:1;13936:67:0;;;6989:21:1;7046:2;7026:18;;;7019:30;7085:34;7065:18;;;7058:62;-1:-1:-1;;;7136:18:1;;;7129:31;7177:19;;13936:67:0;6805:397:1;13936:67:0;-1:-1:-1;;;;;14103:18:0;;14078:22;14103:18;;;;;;;;;;;14140:24;;;;14132:71;;;;-1:-1:-1;;;14132:71:0;;7409:2:1;14132:71:0;;;7391:21:1;7448:2;7428:18;;;7421:30;7487:34;7467:18;;;7460:62;-1:-1:-1;;;7538:18:1;;;7531:32;7580:19;;14132:71:0;7207:398:1;14132:71:0;-1:-1:-1;;;;;14239:18:0;;:9;:18;;;;;;;;;;14260:23;;;14239:44;;14305:12;:22;;14277:6;;14239:9;14305:22;;14277:6;;14305:22;:::i;:::-;;;;-1:-1:-1;;14345:37:0;;1599:25:1;;;14371:1:0;;-1:-1:-1;;;;;14345:37:0;;;-1:-1:-1;;;;;;;;;;;14345:37:0;1587:2:1;1572:18;14345:37:0;1453:177:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;824:173::-;892:20;;-1:-1:-1;;;;;941:31:1;;931:42;;921:70;;987:1;984;977:12;921:70;824:173;;;:::o;1002:254::-;1070:6;1078;1131:2;1119:9;1110:7;1106:23;1102:32;1099:52;;;1147:1;1144;1137:12;1099:52;1170:29;1189:9;1170:29;:::i;:::-;1160:39;1246:2;1231:18;;;;1218:32;;-1:-1:-1;;;1002:254:1:o;1635:328::-;1712:6;1720;1728;1781:2;1769:9;1760:7;1756:23;1752:32;1749:52;;;1797:1;1794;1787:12;1749:52;1820:29;1839:9;1820:29;:::i;:::-;1810:39;;1868:38;1902:2;1891:9;1887:18;1868:38;:::i;:::-;1858:48;;1953:2;1942:9;1938:18;1925:32;1915:42;;1635:328;;;;;:::o;2157:186::-;2216:6;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;2157:186;-1:-1:-1;;;2157:186:1:o;2348:260::-;2416:6;2424;2477:2;2465:9;2456:7;2452:23;2448:32;2445:52;;;2493:1;2490;2483:12;2445:52;2516:29;2535:9;2516:29;:::i;:::-;2506:39;;2564:38;2598:2;2587:9;2583:18;2564:38;:::i;:::-;2554:48;;2348:260;;;;;:::o;2613:380::-;2692:1;2688:12;;;;2735;;;2756:61;;2810:4;2802:6;2798:17;2788:27;;2756:61;2863:2;2855:6;2852:14;2832:18;2829:38;2826:161;;;2909:10;2904:3;2900:20;2897:1;2890:31;2944:4;2941:1;2934:15;2972:4;2969:1;2962:15;2826:161;;2613:380;;;:::o;3407:127::-;3468:10;3463:3;3459:20;3456:1;3449:31;3499:4;3496:1;3489:15;3523:4;3520:1;3513:15;3539:128;3579:3;3610:1;3606:6;3603:1;3600:13;3597:39;;;3616:18;;:::i;:::-;-1:-1:-1;3652:9:1;;3539:128::o;3672:337::-;3874:2;3856:21;;;3913:2;3893:18;;;3886:30;-1:-1:-1;;;3947:2:1;3932:18;;3925:43;4000:2;3985:18;;3672:337::o;7610:125::-;7650:4;7678:1;7675;7672:8;7669:34;;;7683:18;;:::i;:::-;-1:-1:-1;7720:9:1;;7610:125::o

Swarm Source

ipfs://dd5faa3400274411e92332ce2253bcfca70ac26b75f8e193a199d309ca01718e
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.