ETH Price: $3,120.25 (+0.91%)
Gas: 3 Gwei

Contract

0xC21434957227A19236ac21c522B3B14FD352697E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Airdrop197760542024-05-01 15:04:1117 days ago1714575851IN
0xC2143495...FD352697E
0 ETH0.002927589.27101208
Airdrop197116082024-04-22 14:42:4726 days ago1713796967IN
0xC2143495...FD352697E
0 ETH0.011204620.29962404
Airdrop196899252024-04-19 13:57:2329 days ago1713535043IN
0xC2143495...FD352697E
0 ETH0.0160475813.17241207
Airdrop196898702024-04-19 13:46:2329 days ago1713534383IN
0xC2143495...FD352697E
0 ETH0.0403460915.76574643
Airdrop196898542024-04-19 13:43:1129 days ago1713534191IN
0xC2143495...FD352697E
0 ETH0.0099187216.93398287
Airdrop196898262024-04-19 13:37:2329 days ago1713533843IN
0xC2143495...FD352697E
0 ETH0.0936750114.58767934
Airdrop196898112024-04-19 13:34:2329 days ago1713533663IN
0xC2143495...FD352697E
0 ETH0.1021942416.42665199
Airdrop196897632024-04-19 13:24:4729 days ago1713533087IN
0xC2143495...FD352697E
0 ETH0.0833959813.33854081
Airdrop196897472024-04-19 13:21:3529 days ago1713532895IN
0xC2143495...FD352697E
0 ETH0.0784183312.54262022
Airdrop196896952024-04-19 13:11:1129 days ago1713532271IN
0xC2143495...FD352697E
0 ETH0.1056204916.89337375
Airdrop196896762024-04-19 13:07:2329 days ago1713532043IN
0xC2143495...FD352697E
0 ETH0.1027506716.47930703
Airdrop196896472024-04-19 13:01:3529 days ago1713531695IN
0xC2143495...FD352697E
0 ETH0.0031127216.25596973
Set Airdrop Open196896302024-04-19 12:57:5929 days ago1713531479IN
0xC2143495...FD352697E
0 ETH0.0005858413.31926359
0x61010060196332212024-04-11 15:18:2337 days ago1712848703IN
 Create: ApolloFTWDAO
0 ETH0.0930814530

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ApolloFTWDAO

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
london EvmVersion
File 1 of 5 : ApolloFTWDAO.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.3;

import "./IApolloDAOToken.sol";
import "./IApolloToken.sol";
import "./third-party/UniswapV2Library.sol";

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/// @title The DAO contract for the Apollo Inu token
contract ApolloFTWDAO is Context {
    /// @notice The address & interface of the apolloDAO token contract
    IApolloDAOToken public immutable apolloDAOToken;

    /// @notice Event that is emitted when a new DAO is nominated
    event NewDAONomination(address indexed newDAO, address indexed nominator);
    /// @notice Event that is emitted when a new vote is submitted
    event VoteSubmitted(
        address indexed newDAO,
        address indexed voter,
        uint256 voteAmount,
        bool voteFor
    );
    /// @notice Event that is emitted when a vote is withdrawn
    event VoteWithdrawn(address indexed newDAO, address indexed voter);
    /// @notice Event that is emitted when voting is closed for a nominated DAO
    event VotingClosed(address indexed newDAO, bool approved);

    /// @notice A record of the current state of a DAO nomination
    struct DAONomination {
        /// The timestamp (i.e. `block.timestamp`) that the nomination was created
        uint256 timeOfNomination;
        /// The account that made the nomination
        address nominator;
        /// The total amount of votes in favor of the nomination
        uint256 votesFor;
        /// The total amount of votes against the nomination
        uint256 votesAgainst;
        /// Whether voting has closed for this nomination
        bool votingClosed;
    }

    /// @notice A description of a single vote record by a particular account for a nomination
    struct DAOVotes {
        /// The count of tokens committed to this vote
        uint256 voteCount;
        /// Whether an account voted in favor of the nomination
        bool votedFor;
    }

    /// @dev A mapping of the contract address of a nomination to the nomination state
    mapping(address => DAONomination) private _newDAONominations;
    /// @dev A mapping of the vote record by an account for a nominated DAO
    mapping(address => mapping(address => DAOVotes)) private _lockedVotes;

    /// @notice The minimum voting duration for a particular nomination (three days).
    uint256 public constant daoVotingDuration = 259200;
    /// @notice The minimum amount of Apollo an account must hold to submit a new nomination
    uint256 public constant minimumDAOBalance = 10000000 * 10 ** 18;
    /// @notice The total amount of votes—and thus Apollo tokens—that are currently held by this DAO
    uint256 public totalLockedVotes;
    /// @notice The total number of DAO nominations that are open for voting
    uint256 public activeDAONominations;

    /// @notice The address of the new approved DAO that will be eligible to replace this DAO
    address public approvedNewDAO = address(0);
    /// @notice The address of the privileged admin that can decide disbursements
    address public immutable admin;
    /// @notice The minimum amount of time after a new DAO is approved before it can be activated as the
    /// next effective DAO (two days).
    uint256 public constant daoUpdateDelay = 86400;
    /// @notice The timestamp when the new DAO was approved
    uint256 public daoApprovedTime;

    ///@notice The amount that the winnings cannot exceed
    uint256 public maxRewardAmount = 100000 * 10 ** 18;

    /// @notice The percentage of vote withdrawls to burn
    uint256 public constant daoVoteFeePercentage = 1;
    /// @notice The wallet that will control contest parameters
    address public immutable deployingWallet;

    ///@notice Is migration open
    bool public isMigrationOpen = false;
    /// @notice The address & interface of the apollo v1 token contract
    IApolloToken public immutable apolloTokenV1;
    /// @notice Event that is emitted when a migration is completed
    event Migrated(address indexed holder, uint256 indexed amount);
    /// @notice Amount of V2 Apollo Migrated
    uint256 public amountMigrated;
    /// @notice Amount of V2 migrated per wallet
    mapping(address => uint256) public walletMigrated;
    /// @notice Airdrops are open
    bool public airdropEnabled = false;

    // New award properties

    constructor(
        address tokenAddress,
        address _admin,
        address _deployingWallet,
        address tokenV1Address
    ) {
        apolloDAOToken = IApolloDAOToken(tokenAddress);
        admin = _admin;
        deployingWallet = _deployingWallet;
        apolloTokenV1 = IApolloToken(tokenV1Address);
    }

    // Modifiers

    modifier onlyAdmin() {
        require(_msgSender() == admin, "Only admin can call this function");
        _;
    }

    modifier onlyDeployingWallet() {
        require(
            _msgSender() == deployingWallet,
            "Only deploying wallet can call this function"
        );
        _;
    }

    // Public functions

    function rewardWinner(address _winner, uint256 _amount) external onlyAdmin {
        require(_amount < maxRewardAmount, "Reward exceeds maximumallowed");
        apolloDAOToken.transfer(_winner, _amount);
    }

    /// @notice Cast a vote for an active nominated DAO
    /// @param voteAmount The amount of Apollo to commit to your vote
    /// @param newDAO The address of the nominated DAO to cast a vote for
    /// @param voteFor Whether you want to vote in favor of the nomination
    function voteForDAONomination(
        uint256 voteAmount,
        address newDAO,
        bool voteFor
    ) external {
        require(
            _newDAONominations[newDAO].timeOfNomination > 0,
            "There is no DAO Nomination for this address"
        );
        require(
            _lockedVotes[_msgSender()][newDAO].voteCount == 0,
            "User already voted on this nomination"
        );
        require(
            approvedNewDAO == address(0),
            "There is already an approved new DAO"
        );
        apolloDAOToken.transferFrom(_msgSender(), address(this), voteAmount);
        totalLockedVotes += voteAmount;
        _lockedVotes[_msgSender()][newDAO].voteCount += voteAmount;
        _lockedVotes[_msgSender()][newDAO].votedFor = voteFor;
        if (voteFor) {
            _newDAONominations[newDAO].votesFor += voteAmount;
        } else {
            _newDAONominations[newDAO].votesAgainst += voteAmount;
        }
        emit VoteSubmitted(newDAO, _msgSender(), voteAmount, voteFor);
    }

    /// @notice Withdraw votes you have previously cast for a nomination. This can be called regardless of
    /// whether a nomination is active. If still active, your votes will no longer count in the final tally.
    /// @param newDAO The address of the nomination to withdraw your votes from
    function withdrawNewDAOVotes(address newDAO) external {
        uint256 currentVoteCount = _lockedVotes[_msgSender()][newDAO].voteCount;
        require(
            currentVoteCount > 0,
            "You have not cast votes for this nomination"
        );
        require(
            (totalLockedVotes - currentVoteCount) >= 0,
            "Withdrawing would take DAO balance below expected rewards amount"
        );

        uint256 apolloToFee = (currentVoteCount * daoVoteFeePercentage) / 100;
        uint256 apolloToTransfer = currentVoteCount - apolloToFee;

        apolloDAOToken.transfer(_msgSender(), apolloToTransfer);

        totalLockedVotes -= currentVoteCount;
        _lockedVotes[_msgSender()][newDAO].voteCount -= currentVoteCount;

        if (_lockedVotes[_msgSender()][newDAO].votedFor) {
            _newDAONominations[newDAO].votesFor -= currentVoteCount;
        } else {
            _newDAONominations[newDAO].votesAgainst -= currentVoteCount;
        }
        emit VoteWithdrawn(newDAO, _msgSender());
    }

    /// @notice Submit a nomination for a new DAO contract
    /// @param newDAO The address of the new DAO contract you wish to nominate
    function nominateNewDAO(address newDAO) external {
        require(
            apolloDAOToken.balanceOf(_msgSender()) >= minimumDAOBalance,
            "Nominator does not own enough APOLLO"
        );
        require(
            _newDAONominations[newDAO].timeOfNomination == 0,
            "This address has already been nominated"
        );
        _newDAONominations[newDAO] = DAONomination({
            timeOfNomination: block.timestamp,
            nominator: _msgSender(),
            votesFor: 0,
            votesAgainst: 0,
            votingClosed: false
        });
        activeDAONominations += 1;
        emit NewDAONomination(newDAO, _msgSender());
    }

    /// @notice Close voting for the provided nomination, preventing any future votes
    /// @param newDAO The address of the nomination to close voting for
    function closeNewDAOVoting(address newDAO) external {
        require(
            block.timestamp >
                (_newDAONominations[newDAO].timeOfNomination +
                    daoVotingDuration),
            "We have not passed the minimum voting duration"
        );
        require(
            !_newDAONominations[newDAO].votingClosed,
            "Voting has already closed for this nomination"
        );
        require(
            approvedNewDAO == address(0),
            "There is already an approved new DAO"
        );

        bool approved = (_newDAONominations[newDAO].votesFor >
            _newDAONominations[newDAO].votesAgainst);
        if (approved) {
            approvedNewDAO = newDAO;
            daoApprovedTime = block.timestamp;
        }
        activeDAONominations -= 1;
        _newDAONominations[newDAO].votingClosed = true;
        emit VotingClosed(newDAO, approved);
    }

    /// @notice Update the address of the active DAO in the Apollo token contract
    /// @dev This function may only be called after a new DAO is approved and after the update delay has elapsed
    function updateDAOAddress() external {
        require(
            approvedNewDAO != address(0),
            "There is not an approved new DAO"
        );
        require(
            block.timestamp > (daoApprovedTime + daoUpdateDelay),
            "We have not finished the delay for an approved DAO"
        );
        apolloDAOToken.updateDAO(approvedNewDAO);
    }

    /// @notice The time the provided DAO address was nominated
    /// @param dao The DAO address that was previously nominated
    function daoNominationTime(address dao) external view returns (uint256) {
        return _newDAONominations[dao].timeOfNomination;
    }

    /// @notice The account that nominated the provided DAO address
    /// @param dao The DAO address that was previously nominated
    function daoNominationNominator(
        address dao
    ) external view returns (address) {
        return _newDAONominations[dao].nominator;
    }

    /// @notice The amount of votes in favor of a nomination
    /// @param dao The DAO address to check
    function daoNominationVotesFor(
        address dao
    ) external view returns (uint256) {
        return _newDAONominations[dao].votesFor;
    }

    /// @notice The amount of votes against a nomination
    /// @param dao The DAO address to check
    function daoNominationVotesAgainst(
        address dao
    ) external view returns (uint256) {
        return _newDAONominations[dao].votesAgainst;
    }

    /// @notice Whether voting is closed for the provided DAO address
    /// @param dao The DAO address that was previously nominated
    function daoNominationVotingClosed(
        address dao
    ) external view returns (bool) {
        return _newDAONominations[dao].votingClosed;
    }

    /// @notice The amount of votes pledged by the provided voter for the provided DAO nomination
    /// @param voter The address who cast a vote for the DAO
    /// @param dao The address of the nominated DAO to check
    function checkAddressVoteAmount(
        address voter,
        address dao
    ) external view returns (uint256) {
        return _lockedVotes[voter][dao].voteCount;
    }

    function checkDAOAddressVote(
        address voter,
        address dao
    ) external view returns (bool) {
        return _lockedVotes[voter][dao].votedFor;
    }

    function v1DAO() external view returns (address) {
        return apolloTokenV1.artistDAO();
    }

    // Functions for changing contest parameters

    function setMaxRewardAmount(
        uint256 newPercentage
    ) external onlyDeployingWallet {
        maxRewardAmount = newPercentage;
    }

    //Migration Functions
    function setMigrationOpen(bool _isOpen) external onlyAdmin {
        isMigrationOpen = _isOpen;
    }

    function migrateTokens(address _to, uint256 _amount) external {
        require(isMigrationOpen, "Migration must be open on the V2 side");
        require(
            _msgSender() == apolloTokenV1.artistDAO(),
            "Only V1 DAO can complete a migration"
        );

        uint256 amountOfNewToken = _amount * 10 ** 6;

        apolloDAOToken.transfer(_to, amountOfNewToken);

        amountMigrated += amountOfNewToken;
        walletMigrated[_to] += amountOfNewToken;

        emit Migrated(_to, amountOfNewToken);
    }
    // Airdrop functions
    function setAirdropOpen(bool _isOpen) external onlyDeployingWallet {
        airdropEnabled = _isOpen;
    }

    function airdrop(
        address[] calldata tos,
        uint256[] calldata amounts
    ) external onlyAdmin {
        require(airdropEnabled, "Airdrop is not enabled");
        uint256 tosLength = tos.length;
        uint256 amountsLength = amounts.length;
        require(
            tosLength == amountsLength,
            "Address and Amount arrays are not the same size"
        );

        for (uint256 i = 0; i < tosLength; ) {
            apolloDAOToken.transfer(tos[i], amounts[i]);

            unchecked {
                ++i;
            }
        }
    }
}

File 3 of 5 : UniswapV2Library.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

import '@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol';

library SafeMath {
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

library UniswapV2Library {
    using SafeMath for uint;

    // returns sorted token addresses, used to handle return values from pairs sorted in this order
    function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {
        require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES');
        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS');
    }

    // calculates the CREATE2 address for a pair without making any external calls
    function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {
        (address token0, address token1) = sortTokens(tokenA, tokenB);
        pair = address(uint160(uint(keccak256(abi.encodePacked(
                hex'ff',
                factory,
                keccak256(abi.encodePacked(token0, token1)),
                hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
            )))));
    }

    // fetches and sorts the reserves for a pair
    function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) {
        (address token0,) = sortTokens(tokenA, tokenB);
        (uint reserve0, uint reserve1,) = IUniswapV2Pair(pairFor(factory, tokenA, tokenB)).getReserves();
        (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
    }

    // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset
    function quote(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) {
        require(amountA > 0, 'UniswapV2Library: INSUFFICIENT_AMOUNT');
        require(reserveA > 0 && reserveB > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY');
        amountB = amountA.mul(reserveB) / reserveA;
    }
}

File 4 of 5 : IApolloToken.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IUniswapV2Router02 {
    function factory() external view returns (address);
}

interface IApolloToken {
    function changeArtistAddress(address newAddress) external;
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    function burn(uint256 burnAmount) external;
    function reflect(uint256 tAmount) external;
    function artistDAO() external view returns (address);
    function uniswapRouter() external view returns (IUniswapV2Router02);
}

File 5 of 5 : IApolloDAOToken.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

enum TypeOfTransaction {
    BUY,
    SELL,
    TRANSFER
}

interface IApolloDAOToken {
    function updateDAO(address _newDAO) external;

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function getTypeOfTransaction(
        address _sender,
        address _recipient
    ) external view returns (TypeOfTransaction);

    function isMarketAddress(
        address _potentialMarket
    ) external view returns (bool);

    function getTaxedAmount(
        uint256 _amount,
        TypeOfTransaction _transactionType
    ) external view returns (uint256);

    function DAO() external view returns (address);
}

File 6 of 5 : IUniswapV2Pair.sol
pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "london",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_deployingWallet","type":"address"},{"internalType":"address","name":"tokenV1Address","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Migrated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newDAO","type":"address"},{"indexed":true,"internalType":"address","name":"nominator","type":"address"}],"name":"NewDAONomination","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newDAO","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"voteAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"voteFor","type":"bool"}],"name":"VoteSubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newDAO","type":"address"},{"indexed":true,"internalType":"address","name":"voter","type":"address"}],"name":"VoteWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newDAO","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"VotingClosed","type":"event"},{"inputs":[],"name":"activeDAONominations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tos","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"airdropEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountMigrated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"apolloDAOToken","outputs":[{"internalType":"contract IApolloDAOToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"apolloTokenV1","outputs":[{"internalType":"contract IApolloToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvedNewDAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"voter","type":"address"},{"internalType":"address","name":"dao","type":"address"}],"name":"checkAddressVoteAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"voter","type":"address"},{"internalType":"address","name":"dao","type":"address"}],"name":"checkDAOAddressVote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDAO","type":"address"}],"name":"closeNewDAOVoting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"daoApprovedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dao","type":"address"}],"name":"daoNominationNominator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dao","type":"address"}],"name":"daoNominationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dao","type":"address"}],"name":"daoNominationVotesAgainst","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dao","type":"address"}],"name":"daoNominationVotesFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dao","type":"address"}],"name":"daoNominationVotingClosed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoUpdateDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoVoteFeePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daoVotingDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isMigrationOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"migrateTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumDAOBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDAO","type":"address"}],"name":"nominateNewDAO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_winner","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rewardWinner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isOpen","type":"bool"}],"name":"setAirdropOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"setMaxRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isOpen","type":"bool"}],"name":"setMigrationOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalLockedVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateDAOAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"v1DAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"voteAmount","type":"uint256"},{"internalType":"address","name":"newDAO","type":"address"},{"internalType":"bool","name":"voteFor","type":"bool"}],"name":"voteForDAONomination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"walletMigrated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDAO","type":"address"}],"name":"withdrawNewDAOVotes","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101006040526000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069152d02c7e14af68000006006556000600760006101000a81548160ff0219169083151502179055506000600a60006101000a81548160ff0219169083151502179055503480156200009857600080fd5b50604051620039c8380380620039c88339818101604052810190620000be919062000202565b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250505050505062000274565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001ca826200019d565b9050919050565b620001dc81620001bd565b8114620001e857600080fd5b50565b600081519050620001fc81620001d1565b92915050565b600080600080608085870312156200021f576200021e62000198565b5b60006200022f87828801620001eb565b94505060206200024287828801620001eb565b93505060406200025587828801620001eb565b92505060606200026887828801620001eb565b91505092959194509250565b60805160a05160c05160e0516136b862000310600039600081816106c5015281816107cb01526120cb0152600081816107ef01528181611fca0152612383015260008181610c2d01528181610da90152818161100101526124e401526000818161093a01528181610d0601528181610eea01528181610fdd015281816115610152818161196901528181611c9f01526121e101526136b86000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c8063787e87c111610125578063c31e8e4f116100ad578063e8c153291161007c578063e8c1532914610607578063e94fa2a714610625578063e9b37f5a14610643578063f528032714610673578063f851a440146106a35761021c565b8063c31e8e4f14610581578063cb1499fe1461059d578063e558bad8146105cd578063e60c5f91146105e95761021c565b8063a79a25c3116100f4578063a79a25c3146104cb578063b48bf1af146104fb578063bcd9f8fa14610519578063bf34a4bc14610549578063c12eff72146105655761021c565b8063787e87c11461046b578063897250c4146104875780638f9f31fe146104a35780639b180a2d146104c15761021c565b806355a2b8ae116101a857806367dc6b6b1161017757806367dc6b6b146103d75780636856679b146103f557806372b333221461041157806372f022c21461042f57806374b618d21461044d5761021c565b806355a2b8ae146103655780635692da1e146103835780635795027f1461039f57806367243482146103bb5761021c565b80632afe19e2116101ef5780632afe19e2146102995780633edcc43e146102c9578063459b344a146102e75780634ca0a1cc14610305578063510eafa8146103355761021c565b806306cf33d71461022157806317b0a2eb1461023f57806318b10cb21461025d578063201042891461027b575b600080fd5b6102296106c1565b604051610236919061254f565b60405180910390f35b610247610757565b6040516102549190612583565b60405180910390f35b61026561075c565b6040516102729190612583565b60405180910390f35b61028361076b565b60405161029091906125b9565b60405180910390f35b6102b360048036038101906102ae919061260a565b61077e565b6040516102c09190612583565b60405180910390f35b6102d16107c9565b6040516102de9190612696565b60405180910390f35b6102ef6107ed565b6040516102fc919061254f565b60405180910390f35b61031f600480360381019061031a91906126b1565b610811565b60405161032c9190612583565b60405180910390f35b61034f600480360381019061034a919061260a565b61089b565b60405161035c919061254f565b60405180910390f35b61036d610906565b60405161037a919061254f565b60405180910390f35b61039d6004803603810190610398919061260a565b61092c565b005b6103b960048036038101906103b4919061271d565b610c2b565b005b6103d560048036038101906103d09190612818565b610da7565b005b6103df610fdb565b6040516103ec91906128ba565b60405180910390f35b61040f600480360381019061040a9190612901565b610fff565b005b6104196110b1565b6040516104269190612583565b60405180910390f35b6104376110b7565b6040516104449190612583565b60405180910390f35b6104556110be565b6040516104629190612583565b60405180910390f35b6104856004803603810190610480919061260a565b6110c4565b005b6104a1600480360381019061049c919061260a565b611413565b005b6104ab611871565b6040516104b891906125b9565b60405180910390f35b6104c9611884565b005b6104e560048036038101906104e0919061260a565b611a16565b6040516104f291906125b9565b60405180910390f35b610503611a6e565b6040516105109190612583565b60405180910390f35b610533600480360381019061052e919061260a565b611a74565b6040516105409190612583565b60405180910390f35b610563600480360381019061055e919061292e565b611abf565b005b61057f600480360381019061057a9190612901565b611fc8565b005b61059b6004803603810190610596919061271d565b61207a565b005b6105b760048036038101906105b2919061260a565b612336565b6040516105c49190612583565b60405180910390f35b6105e760048036038101906105e29190612981565b612381565b005b6105f1612420565b6040516105fe9190612583565b60405180910390f35b61060f612426565b60405161061c9190612583565b60405180910390f35b61062d61242c565b60405161063a9190612583565b60405180910390f35b61065d600480360381019061065891906126b1565b612433565b60405161066a91906125b9565b60405180910390f35b61068d6004803603810190610688919061260a565b6124ca565b60405161069a9190612583565b60405180910390f35b6106ab6124e2565b6040516106b8919061254f565b60405180910390f35b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663518bc2786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075291906129c3565b905090565b600181565b6a084595161401484a00000081565b600a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a084595161401484a0000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a0823161097c612506565b6040518263ffffffff1660e01b8152600401610998919061254f565b602060405180830381865afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d99190612a05565b1015610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190612ab5565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9590612b47565b60405180910390fd5b6040518060a00160405280428152602001610ab7612506565b73ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050600160036000828254610bc09190612b96565b92505081905550610bcf612506565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f373ea56173a2d5815b8a0787a3e2441bc83c9ab1e5be43c35f5c968a35b931f260405160405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610c6a612506565b73ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb790612c5e565b60405180910390fd5b6006548110610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90612cca565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d5f929190612cea565b6020604051808303816000875af1158015610d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da29190612d28565b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610de6612506565b73ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390612c5e565b60405180910390fd5b600a60009054906101000a900460ff16610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290612da1565b60405180910390fd5b60008484905090506000838390509050808214610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612e33565b60405180910390fd5b60005b82811015610fd2577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888884818110610f3757610f36612e53565b5b9050602002016020810190610f4c919061260a565b878785818110610f5f57610f5e612e53565b5b905060200201356040518363ffffffff1660e01b8152600401610f83929190612cea565b6020604051808303816000875af1158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190612d28565b50806001019050610ee0565b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661103e612506565b73ffffffffffffffffffffffffffffffffffffffff1614611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612c5e565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b60055481565b6203f48081565b60035481565b6203f4806000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546111149190612b96565b4211611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c90612ef4565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff16156111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612f86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126c90613018565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154119050801561134d5781600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426005819055505b6001600360008282546113609190613038565b9250508190555060016000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fd71a8fbb84844c0672c3a19e26ab2d17c7f45e870767edd50009bc03b07514588260405161140791906125b9565b60405180910390a25050565b600060016000611421612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081116114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d8906130de565b60405180910390fd5b6000816002546114f19190613038565b1015611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990613170565b60405180910390fd5b600060646001836115439190613190565b61154d9190613219565b90506000818361155d9190613038565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115a3612506565b836040518363ffffffff1660e01b81526004016115c1929190612cea565b6020604051808303816000875af11580156115e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116049190612d28565b5082600260008282546116179190613038565b92505081905550826001600061162b612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546116b49190613038565b92505081905550600160006116c7612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16156117b157826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282546117a59190613038565b9250508190555061180a565b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546118029190613038565b925050819055505b611812612506565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f853fc162e4386012b0c022fd61355c0977d059922917ecf20986043002afab0c60405160405180910390a350505050565b600760009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190c90613296565b60405180910390fd5b620151806005546119269190612b96565b4211611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613328565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bcb6c0b5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016119e2919061254f565b600060405180830381600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff169050919050565b60025481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411611b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3a906133ba565b60405180910390fd5b600060016000611b51612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c039061344c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9490613018565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd611ce1612506565b30866040518463ffffffff1660e01b8152600401611d019392919061346c565b6020604051808303816000875af1158015611d20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d449190612d28565b508260026000828254611d579190612b96565b925050819055508260016000611d6b612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254611df49190612b96565b925050819055508060016000611e08612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055508015611efc57826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254611ef09190612b96565b92505081905550611f55565b826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016000828254611f4d9190612b96565b925050819055505b611f5d612506565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167ff1c6d920b90e65444e54f9db979823a3ac93527edab9a6ee283ac823644353fe8584604051611fbb9291906134a3565b60405180910390a3505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16612007612506565b73ffffffffffffffffffffffffffffffffffffffff161461205d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120549061353e565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b600760009054906101000a900460ff166120c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c0906135d0565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663518bc2786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612134573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215891906129c3565b73ffffffffffffffffffffffffffffffffffffffff16612176612506565b73ffffffffffffffffffffffffffffffffffffffff16146121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c390613662565b60405180910390fd5b6000620f4240826121dd9190613190565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161223a929190612cea565b6020604051808303816000875af1158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d9190612d28565b5080600860008282546122909190612b96565b9250508190555080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122e69190612b96565b92505081905550808373ffffffffffffffffffffffffffffffffffffffff167f8b80bd19aea7b735bc6d75db8d6adbe18b28c30d62b3555245eb67b2340caedc60405160405180910390a3505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166123c0612506565b73ffffffffffffffffffffffffffffffffffffffff1614612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240d9061353e565b60405180910390fd5b8060068190555050565b60085481565b60065481565b6201518081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16905092915050565b60096020528060005260406000206000915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125398261250e565b9050919050565b6125498161252e565b82525050565b60006020820190506125646000830184612540565b92915050565b6000819050919050565b61257d8161256a565b82525050565b60006020820190506125986000830184612574565b92915050565b60008115159050919050565b6125b38161259e565b82525050565b60006020820190506125ce60008301846125aa565b92915050565b600080fd5b600080fd5b6125e78161252e565b81146125f257600080fd5b50565b600081359050612604816125de565b92915050565b6000602082840312156126205761261f6125d4565b5b600061262e848285016125f5565b91505092915050565b6000819050919050565b600061265c6126576126528461250e565b612637565b61250e565b9050919050565b600061266e82612641565b9050919050565b600061268082612663565b9050919050565b61269081612675565b82525050565b60006020820190506126ab6000830184612687565b92915050565b600080604083850312156126c8576126c76125d4565b5b60006126d6858286016125f5565b92505060206126e7858286016125f5565b9150509250929050565b6126fa8161256a565b811461270557600080fd5b50565b600081359050612717816126f1565b92915050565b60008060408385031215612734576127336125d4565b5b6000612742858286016125f5565b925050602061275385828601612708565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127825761278161275d565b5b8235905067ffffffffffffffff81111561279f5761279e612762565b5b6020830191508360208202830111156127bb576127ba612767565b5b9250929050565b60008083601f8401126127d8576127d761275d565b5b8235905067ffffffffffffffff8111156127f5576127f4612762565b5b60208301915083602082028301111561281157612810612767565b5b9250929050565b60008060008060408587031215612832576128316125d4565b5b600085013567ffffffffffffffff8111156128505761284f6125d9565b5b61285c8782880161276c565b9450945050602085013567ffffffffffffffff81111561287f5761287e6125d9565b5b61288b878288016127c2565b925092505092959194509250565b60006128a482612663565b9050919050565b6128b481612899565b82525050565b60006020820190506128cf60008301846128ab565b92915050565b6128de8161259e565b81146128e957600080fd5b50565b6000813590506128fb816128d5565b92915050565b600060208284031215612917576129166125d4565b5b6000612925848285016128ec565b91505092915050565b600080600060608486031215612947576129466125d4565b5b600061295586828701612708565b9350506020612966868287016125f5565b9250506040612977868287016128ec565b9150509250925092565b600060208284031215612997576129966125d4565b5b60006129a584828501612708565b91505092915050565b6000815190506129bd816125de565b92915050565b6000602082840312156129d9576129d86125d4565b5b60006129e7848285016129ae565b91505092915050565b6000815190506129ff816126f1565b92915050565b600060208284031215612a1b57612a1a6125d4565b5b6000612a29848285016129f0565b91505092915050565b600082825260208201905092915050565b7f4e6f6d696e61746f7220646f6573206e6f74206f776e20656e6f75676820415060008201527f4f4c4c4f00000000000000000000000000000000000000000000000000000000602082015250565b6000612a9f602483612a32565b9150612aaa82612a43565b604082019050919050565b60006020820190508181036000830152612ace81612a92565b9050919050565b7f5468697320616464726573732068617320616c7265616479206265656e206e6f60008201527f6d696e6174656400000000000000000000000000000000000000000000000000602082015250565b6000612b31602783612a32565b9150612b3c82612ad5565b604082019050919050565b60006020820190508181036000830152612b6081612b24565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ba18261256a565b9150612bac8361256a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be157612be0612b67565b5b828201905092915050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c48602183612a32565b9150612c5382612bec565b604082019050919050565b60006020820190508181036000830152612c7781612c3b565b9050919050565b7f5265776172642065786365656473206d6178696d756d616c6c6f776564000000600082015250565b6000612cb4601d83612a32565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b6000604082019050612cff6000830185612540565b612d0c6020830184612574565b9392505050565b600081519050612d22816128d5565b92915050565b600060208284031215612d3e57612d3d6125d4565b5b6000612d4c84828501612d13565b91505092915050565b7f41697264726f70206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612d8b601683612a32565b9150612d9682612d55565b602082019050919050565b60006020820190508181036000830152612dba81612d7e565b9050919050565b7f4164647265737320616e6420416d6f756e742061727261797320617265206e6f60008201527f74207468652073616d652073697a650000000000000000000000000000000000602082015250565b6000612e1d602f83612a32565b9150612e2882612dc1565b604082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f57652068617665206e6f742070617373656420746865206d696e696d756d207660008201527f6f74696e67206475726174696f6e000000000000000000000000000000000000602082015250565b6000612ede602e83612a32565b9150612ee982612e82565b604082019050919050565b60006020820190508181036000830152612f0d81612ed1565b9050919050565b7f566f74696e672068617320616c726561647920636c6f73656420666f7220746860008201527f6973206e6f6d696e6174696f6e00000000000000000000000000000000000000602082015250565b6000612f70602d83612a32565b9150612f7b82612f14565b604082019050919050565b60006020820190508181036000830152612f9f81612f63565b9050919050565b7f546865726520697320616c726561647920616e20617070726f766564206e657760008201527f2044414f00000000000000000000000000000000000000000000000000000000602082015250565b6000613002602483612a32565b915061300d82612fa6565b604082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b60006130438261256a565b915061304e8361256a565b92508282101561306157613060612b67565b5b828203905092915050565b7f596f752068617665206e6f74206361737420766f74657320666f72207468697360008201527f206e6f6d696e6174696f6e000000000000000000000000000000000000000000602082015250565b60006130c8602b83612a32565b91506130d38261306c565b604082019050919050565b600060208201905081810360008301526130f7816130bb565b9050919050565b7f5769746864726177696e6720776f756c642074616b652044414f2062616c616e60008201527f63652062656c6f77206578706563746564207265776172647320616d6f756e74602082015250565b600061315a604083612a32565b9150613165826130fe565b604082019050919050565b600060208201905081810360008301526131898161314d565b9050919050565b600061319b8261256a565b91506131a68361256a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131df576131de612b67565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132248261256a565b915061322f8361256a565b92508261323f5761323e6131ea565b5b828204905092915050565b7f5468657265206973206e6f7420616e20617070726f766564206e65772044414f600082015250565b6000613280602083612a32565b915061328b8261324a565b602082019050919050565b600060208201905081810360008301526132af81613273565b9050919050565b7f57652068617665206e6f742066696e6973686564207468652064656c6179206660008201527f6f7220616e20617070726f7665642044414f0000000000000000000000000000602082015250565b6000613312603283612a32565b915061331d826132b6565b604082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f5468657265206973206e6f2044414f204e6f6d696e6174696f6e20666f72207460008201527f6869732061646472657373000000000000000000000000000000000000000000602082015250565b60006133a4602b83612a32565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f5573657220616c726561647920766f746564206f6e2074686973206e6f6d696e60008201527f6174696f6e000000000000000000000000000000000000000000000000000000602082015250565b6000613436602583612a32565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b60006060820190506134816000830186612540565b61348e6020830185612540565b61349b6040830184612574565b949350505050565b60006040820190506134b86000830185612574565b6134c560208301846125aa565b9392505050565b7f4f6e6c79206465706c6f79696e672077616c6c65742063616e2063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000613528602c83612a32565b9150613533826134cc565b604082019050919050565b600060208201905081810360008301526135578161351b565b9050919050565b7f4d6967726174696f6e206d757374206265206f70656e206f6e2074686520563260008201527f2073696465000000000000000000000000000000000000000000000000000000602082015250565b60006135ba602583612a32565b91506135c58261355e565b604082019050919050565b600060208201905081810360008301526135e9816135ad565b9050919050565b7f4f6e6c792056312044414f2063616e20636f6d706c6574652061206d6967726160008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b600061364c602483612a32565b9150613657826135f0565b604082019050919050565b6000602082019050818103600083015261367b8161363f565b905091905056fea264697066735822122071706cafaff8be841c7a172658488208a80bece3b11266c65d17484036c5232464736f6c634300080f0033000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b90000000000000000000000003fac49ecec57f9dff010dfdea05277bbb9398d01000000000000000000000000ad360393f3728ad3b60c0a4212660c6d7558f7b3000000000000000000000000adf86e75d8f0f57e0288d0970e7407eaa49b3cab

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061021c5760003560e01c8063787e87c111610125578063c31e8e4f116100ad578063e8c153291161007c578063e8c1532914610607578063e94fa2a714610625578063e9b37f5a14610643578063f528032714610673578063f851a440146106a35761021c565b8063c31e8e4f14610581578063cb1499fe1461059d578063e558bad8146105cd578063e60c5f91146105e95761021c565b8063a79a25c3116100f4578063a79a25c3146104cb578063b48bf1af146104fb578063bcd9f8fa14610519578063bf34a4bc14610549578063c12eff72146105655761021c565b8063787e87c11461046b578063897250c4146104875780638f9f31fe146104a35780639b180a2d146104c15761021c565b806355a2b8ae116101a857806367dc6b6b1161017757806367dc6b6b146103d75780636856679b146103f557806372b333221461041157806372f022c21461042f57806374b618d21461044d5761021c565b806355a2b8ae146103655780635692da1e146103835780635795027f1461039f57806367243482146103bb5761021c565b80632afe19e2116101ef5780632afe19e2146102995780633edcc43e146102c9578063459b344a146102e75780634ca0a1cc14610305578063510eafa8146103355761021c565b806306cf33d71461022157806317b0a2eb1461023f57806318b10cb21461025d578063201042891461027b575b600080fd5b6102296106c1565b604051610236919061254f565b60405180910390f35b610247610757565b6040516102549190612583565b60405180910390f35b61026561075c565b6040516102729190612583565b60405180910390f35b61028361076b565b60405161029091906125b9565b60405180910390f35b6102b360048036038101906102ae919061260a565b61077e565b6040516102c09190612583565b60405180910390f35b6102d16107c9565b6040516102de9190612696565b60405180910390f35b6102ef6107ed565b6040516102fc919061254f565b60405180910390f35b61031f600480360381019061031a91906126b1565b610811565b60405161032c9190612583565b60405180910390f35b61034f600480360381019061034a919061260a565b61089b565b60405161035c919061254f565b60405180910390f35b61036d610906565b60405161037a919061254f565b60405180910390f35b61039d6004803603810190610398919061260a565b61092c565b005b6103b960048036038101906103b4919061271d565b610c2b565b005b6103d560048036038101906103d09190612818565b610da7565b005b6103df610fdb565b6040516103ec91906128ba565b60405180910390f35b61040f600480360381019061040a9190612901565b610fff565b005b6104196110b1565b6040516104269190612583565b60405180910390f35b6104376110b7565b6040516104449190612583565b60405180910390f35b6104556110be565b6040516104629190612583565b60405180910390f35b6104856004803603810190610480919061260a565b6110c4565b005b6104a1600480360381019061049c919061260a565b611413565b005b6104ab611871565b6040516104b891906125b9565b60405180910390f35b6104c9611884565b005b6104e560048036038101906104e0919061260a565b611a16565b6040516104f291906125b9565b60405180910390f35b610503611a6e565b6040516105109190612583565b60405180910390f35b610533600480360381019061052e919061260a565b611a74565b6040516105409190612583565b60405180910390f35b610563600480360381019061055e919061292e565b611abf565b005b61057f600480360381019061057a9190612901565b611fc8565b005b61059b6004803603810190610596919061271d565b61207a565b005b6105b760048036038101906105b2919061260a565b612336565b6040516105c49190612583565b60405180910390f35b6105e760048036038101906105e29190612981565b612381565b005b6105f1612420565b6040516105fe9190612583565b60405180910390f35b61060f612426565b60405161061c9190612583565b60405180910390f35b61062d61242c565b60405161063a9190612583565b60405180910390f35b61065d600480360381019061065891906126b1565b612433565b60405161066a91906125b9565b60405180910390f35b61068d6004803603810190610688919061260a565b6124ca565b60405161069a9190612583565b60405180910390f35b6106ab6124e2565b6040516106b8919061254f565b60405180910390f35b60007f000000000000000000000000adf86e75d8f0f57e0288d0970e7407eaa49b3cab73ffffffffffffffffffffffffffffffffffffffff1663518bc2786040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075291906129c3565b905090565b600181565b6a084595161401484a00000081565b600a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b7f000000000000000000000000adf86e75d8f0f57e0288d0970e7407eaa49b3cab81565b7f000000000000000000000000ad360393f3728ad3b60c0a4212660c6d7558f7b381565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6a084595161401484a0000007f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b973ffffffffffffffffffffffffffffffffffffffff166370a0823161097c612506565b6040518263ffffffff1660e01b8152600401610998919061254f565b602060405180830381865afa1580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d99190612a05565b1015610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190612ab5565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9590612b47565b60405180910390fd5b6040518060a00160405280428152602001610ab7612506565b73ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050600160036000828254610bc09190612b96565b92505081905550610bcf612506565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f373ea56173a2d5815b8a0787a3e2441bc83c9ab1e5be43c35f5c968a35b931f260405160405180910390a350565b7f0000000000000000000000003fac49ecec57f9dff010dfdea05277bbb9398d0173ffffffffffffffffffffffffffffffffffffffff16610c6a612506565b73ffffffffffffffffffffffffffffffffffffffff1614610cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb790612c5e565b60405180910390fd5b6006548110610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90612cca565b60405180910390fd5b7f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d5f929190612cea565b6020604051808303816000875af1158015610d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da29190612d28565b505050565b7f0000000000000000000000003fac49ecec57f9dff010dfdea05277bbb9398d0173ffffffffffffffffffffffffffffffffffffffff16610de6612506565b73ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390612c5e565b60405180910390fd5b600a60009054906101000a900460ff16610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290612da1565b60405180910390fd5b60008484905090506000838390509050808214610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490612e33565b60405180910390fd5b60005b82811015610fd2577f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888884818110610f3757610f36612e53565b5b9050602002016020810190610f4c919061260a565b878785818110610f5f57610f5e612e53565b5b905060200201356040518363ffffffff1660e01b8152600401610f83929190612cea565b6020604051808303816000875af1158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190612d28565b50806001019050610ee0565b50505050505050565b7f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b981565b7f0000000000000000000000003fac49ecec57f9dff010dfdea05277bbb9398d0173ffffffffffffffffffffffffffffffffffffffff1661103e612506565b73ffffffffffffffffffffffffffffffffffffffff1614611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612c5e565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b60055481565b6203f48081565b60035481565b6203f4806000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546111149190612b96565b4211611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c90612ef4565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff16156111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612f86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126c90613018565b60405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154119050801561134d5781600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426005819055505b6001600360008282546113609190613038565b9250508190555060016000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fd71a8fbb84844c0672c3a19e26ab2d17c7f45e870767edd50009bc03b07514588260405161140791906125b9565b60405180910390a25050565b600060016000611421612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081116114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d8906130de565b60405180910390fd5b6000816002546114f19190613038565b1015611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990613170565b60405180910390fd5b600060646001836115439190613190565b61154d9190613219565b90506000818361155d9190613038565b90507f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115a3612506565b836040518363ffffffff1660e01b81526004016115c1929190612cea565b6020604051808303816000875af11580156115e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116049190612d28565b5082600260008282546116179190613038565b92505081905550826001600061162b612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282546116b49190613038565b92505081905550600160006116c7612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16156117b157826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282546117a59190613038565b9250508190555061180a565b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282546118029190613038565b925050819055505b611812612506565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f853fc162e4386012b0c022fd61355c0977d059922917ecf20986043002afab0c60405160405180910390a350505050565b600760009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190c90613296565b60405180910390fd5b620151806005546119269190612b96565b4211611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613328565b60405180910390fd5b7f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b973ffffffffffffffffffffffffffffffffffffffff1663bcb6c0b5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016119e2919061254f565b600060405180830381600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff169050919050565b60025481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411611b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3a906133ba565b60405180910390fd5b600060016000611b51612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c039061344c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9490613018565b60405180910390fd5b7f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b973ffffffffffffffffffffffffffffffffffffffff166323b872dd611ce1612506565b30866040518463ffffffff1660e01b8152600401611d019392919061346c565b6020604051808303816000875af1158015611d20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d449190612d28565b508260026000828254611d579190612b96565b925050819055508260016000611d6b612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254611df49190612b96565b925050819055508060016000611e08612506565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff0219169083151502179055508015611efc57826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254611ef09190612b96565b92505081905550611f55565b826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016000828254611f4d9190612b96565b925050819055505b611f5d612506565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167ff1c6d920b90e65444e54f9db979823a3ac93527edab9a6ee283ac823644353fe8584604051611fbb9291906134a3565b60405180910390a3505050565b7f000000000000000000000000ad360393f3728ad3b60c0a4212660c6d7558f7b373ffffffffffffffffffffffffffffffffffffffff16612007612506565b73ffffffffffffffffffffffffffffffffffffffff161461205d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120549061353e565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b600760009054906101000a900460ff166120c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c0906135d0565b60405180910390fd5b7f000000000000000000000000adf86e75d8f0f57e0288d0970e7407eaa49b3cab73ffffffffffffffffffffffffffffffffffffffff1663518bc2786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612134573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215891906129c3565b73ffffffffffffffffffffffffffffffffffffffff16612176612506565b73ffffffffffffffffffffffffffffffffffffffff16146121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c390613662565b60405180910390fd5b6000620f4240826121dd9190613190565b90507f000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b815260040161223a929190612cea565b6020604051808303816000875af1158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d9190612d28565b5080600860008282546122909190612b96565b9250508190555080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122e69190612b96565b92505081905550808373ffffffffffffffffffffffffffffffffffffffff167f8b80bd19aea7b735bc6d75db8d6adbe18b28c30d62b3555245eb67b2340caedc60405160405180910390a3505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b7f000000000000000000000000ad360393f3728ad3b60c0a4212660c6d7558f7b373ffffffffffffffffffffffffffffffffffffffff166123c0612506565b73ffffffffffffffffffffffffffffffffffffffff1614612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240d9061353e565b60405180910390fd5b8060068190555050565b60085481565b60065481565b6201518081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16905092915050565b60096020528060005260406000206000915090505481565b7f0000000000000000000000003fac49ecec57f9dff010dfdea05277bbb9398d0181565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125398261250e565b9050919050565b6125498161252e565b82525050565b60006020820190506125646000830184612540565b92915050565b6000819050919050565b61257d8161256a565b82525050565b60006020820190506125986000830184612574565b92915050565b60008115159050919050565b6125b38161259e565b82525050565b60006020820190506125ce60008301846125aa565b92915050565b600080fd5b600080fd5b6125e78161252e565b81146125f257600080fd5b50565b600081359050612604816125de565b92915050565b6000602082840312156126205761261f6125d4565b5b600061262e848285016125f5565b91505092915050565b6000819050919050565b600061265c6126576126528461250e565b612637565b61250e565b9050919050565b600061266e82612641565b9050919050565b600061268082612663565b9050919050565b61269081612675565b82525050565b60006020820190506126ab6000830184612687565b92915050565b600080604083850312156126c8576126c76125d4565b5b60006126d6858286016125f5565b92505060206126e7858286016125f5565b9150509250929050565b6126fa8161256a565b811461270557600080fd5b50565b600081359050612717816126f1565b92915050565b60008060408385031215612734576127336125d4565b5b6000612742858286016125f5565b925050602061275385828601612708565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127825761278161275d565b5b8235905067ffffffffffffffff81111561279f5761279e612762565b5b6020830191508360208202830111156127bb576127ba612767565b5b9250929050565b60008083601f8401126127d8576127d761275d565b5b8235905067ffffffffffffffff8111156127f5576127f4612762565b5b60208301915083602082028301111561281157612810612767565b5b9250929050565b60008060008060408587031215612832576128316125d4565b5b600085013567ffffffffffffffff8111156128505761284f6125d9565b5b61285c8782880161276c565b9450945050602085013567ffffffffffffffff81111561287f5761287e6125d9565b5b61288b878288016127c2565b925092505092959194509250565b60006128a482612663565b9050919050565b6128b481612899565b82525050565b60006020820190506128cf60008301846128ab565b92915050565b6128de8161259e565b81146128e957600080fd5b50565b6000813590506128fb816128d5565b92915050565b600060208284031215612917576129166125d4565b5b6000612925848285016128ec565b91505092915050565b600080600060608486031215612947576129466125d4565b5b600061295586828701612708565b9350506020612966868287016125f5565b9250506040612977868287016128ec565b9150509250925092565b600060208284031215612997576129966125d4565b5b60006129a584828501612708565b91505092915050565b6000815190506129bd816125de565b92915050565b6000602082840312156129d9576129d86125d4565b5b60006129e7848285016129ae565b91505092915050565b6000815190506129ff816126f1565b92915050565b600060208284031215612a1b57612a1a6125d4565b5b6000612a29848285016129f0565b91505092915050565b600082825260208201905092915050565b7f4e6f6d696e61746f7220646f6573206e6f74206f776e20656e6f75676820415060008201527f4f4c4c4f00000000000000000000000000000000000000000000000000000000602082015250565b6000612a9f602483612a32565b9150612aaa82612a43565b604082019050919050565b60006020820190508181036000830152612ace81612a92565b9050919050565b7f5468697320616464726573732068617320616c7265616479206265656e206e6f60008201527f6d696e6174656400000000000000000000000000000000000000000000000000602082015250565b6000612b31602783612a32565b9150612b3c82612ad5565b604082019050919050565b60006020820190508181036000830152612b6081612b24565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ba18261256a565b9150612bac8361256a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be157612be0612b67565b5b828201905092915050565b7f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c48602183612a32565b9150612c5382612bec565b604082019050919050565b60006020820190508181036000830152612c7781612c3b565b9050919050565b7f5265776172642065786365656473206d6178696d756d616c6c6f776564000000600082015250565b6000612cb4601d83612a32565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b6000604082019050612cff6000830185612540565b612d0c6020830184612574565b9392505050565b600081519050612d22816128d5565b92915050565b600060208284031215612d3e57612d3d6125d4565b5b6000612d4c84828501612d13565b91505092915050565b7f41697264726f70206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612d8b601683612a32565b9150612d9682612d55565b602082019050919050565b60006020820190508181036000830152612dba81612d7e565b9050919050565b7f4164647265737320616e6420416d6f756e742061727261797320617265206e6f60008201527f74207468652073616d652073697a650000000000000000000000000000000000602082015250565b6000612e1d602f83612a32565b9150612e2882612dc1565b604082019050919050565b60006020820190508181036000830152612e4c81612e10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f57652068617665206e6f742070617373656420746865206d696e696d756d207660008201527f6f74696e67206475726174696f6e000000000000000000000000000000000000602082015250565b6000612ede602e83612a32565b9150612ee982612e82565b604082019050919050565b60006020820190508181036000830152612f0d81612ed1565b9050919050565b7f566f74696e672068617320616c726561647920636c6f73656420666f7220746860008201527f6973206e6f6d696e6174696f6e00000000000000000000000000000000000000602082015250565b6000612f70602d83612a32565b9150612f7b82612f14565b604082019050919050565b60006020820190508181036000830152612f9f81612f63565b9050919050565b7f546865726520697320616c726561647920616e20617070726f766564206e657760008201527f2044414f00000000000000000000000000000000000000000000000000000000602082015250565b6000613002602483612a32565b915061300d82612fa6565b604082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b60006130438261256a565b915061304e8361256a565b92508282101561306157613060612b67565b5b828203905092915050565b7f596f752068617665206e6f74206361737420766f74657320666f72207468697360008201527f206e6f6d696e6174696f6e000000000000000000000000000000000000000000602082015250565b60006130c8602b83612a32565b91506130d38261306c565b604082019050919050565b600060208201905081810360008301526130f7816130bb565b9050919050565b7f5769746864726177696e6720776f756c642074616b652044414f2062616c616e60008201527f63652062656c6f77206578706563746564207265776172647320616d6f756e74602082015250565b600061315a604083612a32565b9150613165826130fe565b604082019050919050565b600060208201905081810360008301526131898161314d565b9050919050565b600061319b8261256a565b91506131a68361256a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131df576131de612b67565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132248261256a565b915061322f8361256a565b92508261323f5761323e6131ea565b5b828204905092915050565b7f5468657265206973206e6f7420616e20617070726f766564206e65772044414f600082015250565b6000613280602083612a32565b915061328b8261324a565b602082019050919050565b600060208201905081810360008301526132af81613273565b9050919050565b7f57652068617665206e6f742066696e6973686564207468652064656c6179206660008201527f6f7220616e20617070726f7665642044414f0000000000000000000000000000602082015250565b6000613312603283612a32565b915061331d826132b6565b604082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f5468657265206973206e6f2044414f204e6f6d696e6174696f6e20666f72207460008201527f6869732061646472657373000000000000000000000000000000000000000000602082015250565b60006133a4602b83612a32565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f5573657220616c726561647920766f746564206f6e2074686973206e6f6d696e60008201527f6174696f6e000000000000000000000000000000000000000000000000000000602082015250565b6000613436602583612a32565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b60006060820190506134816000830186612540565b61348e6020830185612540565b61349b6040830184612574565b949350505050565b60006040820190506134b86000830185612574565b6134c560208301846125aa565b9392505050565b7f4f6e6c79206465706c6f79696e672077616c6c65742063616e2063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000613528602c83612a32565b9150613533826134cc565b604082019050919050565b600060208201905081810360008301526135578161351b565b9050919050565b7f4d6967726174696f6e206d757374206265206f70656e206f6e2074686520563260008201527f2073696465000000000000000000000000000000000000000000000000000000602082015250565b60006135ba602583612a32565b91506135c58261355e565b604082019050919050565b600060208201905081810360008301526135e9816135ad565b9050919050565b7f4f6e6c792056312044414f2063616e20636f6d706c6574652061206d6967726160008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b600061364c602483612a32565b9150613657826135f0565b604082019050919050565b6000602082019050818103600083015261367b8161363f565b905091905056fea264697066735822122071706cafaff8be841c7a172658488208a80bece3b11266c65d17484036c5232464736f6c634300080f0033

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

000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b90000000000000000000000003fac49ecec57f9dff010dfdea05277bbb9398d01000000000000000000000000ad360393f3728ad3b60c0a4212660c6d7558f7b3000000000000000000000000adf86e75d8f0f57e0288d0970e7407eaa49b3cab

-----Decoded View---------------
Arg [0] : tokenAddress (address): 0xBc188B5dbb155B6eA693D46D98Bf60b8482939B9
Arg [1] : _admin (address): 0x3Fac49eceC57F9dFf010DfdEA05277bbb9398d01
Arg [2] : _deployingWallet (address): 0xAd360393F3728aD3b60C0A4212660C6D7558F7b3
Arg [3] : tokenV1Address (address): 0xADf86E75d8f0F57e0288D0970E7407eaA49b3CAb

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000bc188b5dbb155b6ea693d46d98bf60b8482939b9
Arg [1] : 0000000000000000000000003fac49ecec57f9dff010dfdea05277bbb9398d01
Arg [2] : 000000000000000000000000ad360393f3728ad3b60c0a4212660c6d7558f7b3
Arg [3] : 000000000000000000000000adf86e75d8f0f57e0288d0970e7407eaa49b3cab


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.