ETH Price: $1,587.50 (-2.47%)
Gas: 12 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
Value

There are no matching entries

Please try again later

Latest 1 internal transaction

Advanced mode:
Advanced Filter
Parent Txn Hash Block From To Value
118484362021-02-13 13:05:29950 days 3 hrs ago1613221529  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BurningSurplusAuctionHouse

Compiler Version
v0.6.7+commit.b8d736ae

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-02-14
*/

/**
 *Submitted for verification at Etherscan.io on 2021-02-02
*/

/// SurplusAuctionHouse.sol

// Copyright (C) 2018 Rain <[email protected]>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity 0.6.7;

abstract contract SAFEEngineLike {
    function transferInternalCoins(address,address,uint256) virtual external;
    function coinBalance(address) virtual external view returns (uint256);
    function approveSAFEModification(address) virtual external;
    function denySAFEModification(address) virtual external;
}
abstract contract TokenLike {
    function approve(address, uint256) virtual public returns (bool);
    function balanceOf(address) virtual public view returns (uint256);
    function move(address,address,uint256) virtual external;
    function burn(address,uint256) virtual external;
}

/*
   This thing lets you auction some coins in return for protocol tokens that are then burnt
*/

contract BurningSurplusAuctionHouse {
    // --- Auth ---
    mapping (address => uint256) public authorizedAccounts;
    /**
     * @notice Add auth to an account
     * @param account Account to add auth to
     */
    function addAuthorization(address account) external isAuthorized {
        authorizedAccounts[account] = 1;
        emit AddAuthorization(account);
    }
    /**
     * @notice Remove auth from an account
     * @param account Account to remove auth from
     */
    function removeAuthorization(address account) external isAuthorized {
        authorizedAccounts[account] = 0;
        emit RemoveAuthorization(account);
    }
    /**
    * @notice Checks whether msg.sender can call an authed function
    **/
    modifier isAuthorized {
        require(authorizedAccounts[msg.sender] == 1, "BurningSurplusAuctionHouse/account-not-authorized");
        _;
    }

    // --- Data ---
    struct Bid {
        // Bid size (how many protocol tokens are offered per system coins sold)
        uint256 bidAmount;                                                            // [wad]
        // How many system coins are sold in an auction
        uint256 amountToSell;                                                         // [rad]
        // Who the high bidder is
        address highBidder;
        // When the latest bid expires and the auction can be settled
        uint48  bidExpiry;                                                            // [unix epoch time]
        // Hard deadline for the auction after which no more bids can be placed
        uint48  auctionDeadline;                                                      // [unix epoch time]
    }

    // Bid data for each separate auction
    mapping (uint256 => Bid) public bids;

    // SAFE database
    SAFEEngineLike public safeEngine;
    // Protocol token address
    TokenLike      public protocolToken;

    uint256  constant ONE = 1.00E18;                                                  // [wad]
    // Minimum bid increase compared to the last bid in order to take the new one in consideration
    uint256  public   bidIncrease = 1.05E18;                                          // [wad]
    // How long the auction lasts after a new bid is submitted
    uint48   public   bidDuration = 3 hours;                                          // [seconds]
    // Total length of the auction
    uint48   public   totalAuctionLength = 2 days;                                    // [seconds]
    // Number of auctions started up until now
    uint256  public   auctionsStarted = 0;
    // Whether the contract is settled or not
    uint256  public   contractEnabled;

    bytes32 public constant AUCTION_HOUSE_TYPE   = bytes32("SURPLUS");
    bytes32 public constant SURPLUS_AUCTION_TYPE = bytes32("BURNING");

    // --- Events ---
    event AddAuthorization(address account);
    event RemoveAuthorization(address account);
    event ModifyParameters(bytes32 parameter, uint256 data);
    event RestartAuction(uint256 id, uint256 auctionDeadline);
    event IncreaseBidSize(uint256 id, address highBidder, uint256 amountToBuy, uint256 bid, uint256 bidExpiry);
    event StartAuction(
        uint256 indexed id,
        uint256 auctionsStarted,
        uint256 amountToSell,
        uint256 initialBid,
        uint256 auctionDeadline
    );
    event SettleAuction(uint256 indexed id);
    event DisableContract();
    event TerminateAuctionPrematurely(uint256 indexed id, address sender, address highBidder, uint256 bidAmount);

    // --- Init ---
    constructor(address safeEngine_, address protocolToken_) public {
        authorizedAccounts[msg.sender] = 1;
        safeEngine = SAFEEngineLike(safeEngine_);
        protocolToken = TokenLike(protocolToken_);
        contractEnabled = 1;
        emit AddAuthorization(msg.sender);
    }

    // --- Math ---
    function addUint48(uint48 x, uint48 y) internal pure returns (uint48 z) {
        require((z = x + y) >= x, "BurningSurplusAuctionHouse/add-uint48-overflow");
    }
    function multiply(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require(y == 0 || (z = x * y) / y == x, "BurningSurplusAuctionHouse/mul-overflow");
    }

    // --- Admin ---
    /**
     * @notice Modify auction parameters
     * @param parameter The name of the parameter modified
     * @param data New value for the parameter
     */
    function modifyParameters(bytes32 parameter, uint256 data) external isAuthorized {
        if (parameter == "bidIncrease") bidIncrease = data;
        else if (parameter == "bidDuration") bidDuration = uint48(data);
        else if (parameter == "totalAuctionLength") totalAuctionLength = uint48(data);
        else revert("BurningSurplusAuctionHouse/modify-unrecognized-param");
        emit ModifyParameters(parameter, data);
    }

    // --- Auction ---
    /**
     * @notice Start a new surplus auction
     * @param amountToSell Total amount of system coins to sell (rad)
     * @param initialBid Initial protocol token bid (wad)
     */
    function startAuction(uint256 amountToSell, uint256 initialBid) external isAuthorized returns (uint256 id) {
        require(contractEnabled == 1, "BurningSurplusAuctionHouse/contract-not-enabled");
        require(auctionsStarted < uint256(-1), "BurningSurplusAuctionHouse/overflow");
        id = ++auctionsStarted;

        bids[id].bidAmount = initialBid;
        bids[id].amountToSell = amountToSell;
        bids[id].highBidder = msg.sender;
        bids[id].auctionDeadline = addUint48(uint48(now), totalAuctionLength);

        safeEngine.transferInternalCoins(msg.sender, address(this), amountToSell);

        emit StartAuction(id, auctionsStarted, amountToSell, initialBid, bids[id].auctionDeadline);
    }
    /**
     * @notice Restart an auction if no bids were submitted for it
     * @param id ID of the auction to restart
     */
    function restartAuction(uint256 id) external {
        require(bids[id].auctionDeadline < now, "BurningSurplusAuctionHouse/not-finished");
        require(bids[id].bidExpiry == 0, "BurningSurplusAuctionHouse/bid-already-placed");
        bids[id].auctionDeadline = addUint48(uint48(now), totalAuctionLength);
        emit RestartAuction(id, bids[id].auctionDeadline);
    }
    /**
     * @notice Submit a higher protocol token bid for the same amount of system coins
     * @param id ID of the auction you want to submit the bid for
     * @param amountToBuy Amount of system coins to buy (rad)
     * @param bid New bid submitted (wad)
     */
    function increaseBidSize(uint256 id, uint256 amountToBuy, uint256 bid) external {
        require(contractEnabled == 1, "BurningSurplusAuctionHouse/contract-not-enabled");
        require(bids[id].highBidder != address(0), "BurningSurplusAuctionHouse/high-bidder-not-set");
        require(bids[id].bidExpiry > now || bids[id].bidExpiry == 0, "BurningSurplusAuctionHouse/bid-already-expired");
        require(bids[id].auctionDeadline > now, "BurningSurplusAuctionHouse/auction-already-expired");

        require(amountToBuy == bids[id].amountToSell, "BurningSurplusAuctionHouse/amounts-not-matching");
        require(bid > bids[id].bidAmount, "BurningSurplusAuctionHouse/bid-not-higher");
        require(multiply(bid, ONE) >= multiply(bidIncrease, bids[id].bidAmount), "BurningSurplusAuctionHouse/insufficient-increase");

        if (msg.sender != bids[id].highBidder) {
            protocolToken.move(msg.sender, bids[id].highBidder, bids[id].bidAmount);
            bids[id].highBidder = msg.sender;
        }
        protocolToken.move(msg.sender, address(this), bid - bids[id].bidAmount);

        bids[id].bidAmount = bid;
        bids[id].bidExpiry = addUint48(uint48(now), bidDuration);

        emit IncreaseBidSize(id, msg.sender, amountToBuy, bid, bids[id].bidExpiry);
    }
    /**
     * @notice Settle/finish an auction
     * @param id ID of the auction to settle
     */
    function settleAuction(uint256 id) external {
        require(contractEnabled == 1, "BurningSurplusAuctionHouse/contract-not-enabled");
        require(bids[id].bidExpiry != 0 && (bids[id].bidExpiry < now || bids[id].auctionDeadline < now), "BurningSurplusAuctionHouse/not-finished");
        safeEngine.transferInternalCoins(address(this), bids[id].highBidder, bids[id].amountToSell);
        protocolToken.burn(address(this), bids[id].bidAmount);
        delete bids[id];
        emit SettleAuction(id);
    }
    /**
    * @notice Disable the auction house (usually called by AccountingEngine)
    **/
    function disableContract() external isAuthorized {
        contractEnabled = 0;
        safeEngine.transferInternalCoins(address(this), msg.sender, safeEngine.coinBalance(address(this)));
        emit DisableContract();
    }
    /**
     * @notice Terminate an auction prematurely.
     * @param id ID of the auction to settle/terminate
     */
    function terminateAuctionPrematurely(uint256 id) external {
        require(contractEnabled == 0, "BurningSurplusAuctionHouse/contract-still-enabled");
        require(bids[id].highBidder != address(0), "BurningSurplusAuctionHouse/high-bidder-not-set");
        protocolToken.move(address(this), bids[id].highBidder, bids[id].bidAmount);
        emit TerminateAuctionPrematurely(id, msg.sender, bids[id].highBidder, bids[id].bidAmount);
        delete bids[id];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"safeEngine_","type":"address"},{"internalType":"address","name":"protocolToken_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[],"name":"DisableContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"highBidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountToBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bidExpiry","type":"uint256"}],"name":"IncreaseBidSize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"auctionDeadline","type":"uint256"}],"name":"RestartAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"SettleAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"auctionsStarted","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"initialBid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"auctionDeadline","type":"uint256"}],"name":"StartAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"highBidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"bidAmount","type":"uint256"}],"name":"TerminateAuctionPrematurely","type":"event"},{"inputs":[],"name":"AUCTION_HOUSE_TYPE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SURPLUS_AUCTION_TYPE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auctionsStarted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bidDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bidIncrease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bids","outputs":[{"internalType":"uint256","name":"bidAmount","type":"uint256"},{"internalType":"uint256","name":"amountToSell","type":"uint256"},{"internalType":"address","name":"highBidder","type":"address"},{"internalType":"uint48","name":"bidExpiry","type":"uint48"},{"internalType":"uint48","name":"auctionDeadline","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amountToBuy","type":"uint256"},{"internalType":"uint256","name":"bid","type":"uint256"}],"name":"increaseBidSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"protocolToken","outputs":[{"internalType":"contract TokenLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"restartAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"contract SAFEEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"settleAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToSell","type":"uint256"},{"internalType":"uint256","name":"initialBid","type":"uint256"}],"name":"startAuction","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"terminateAuctionPrematurely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAuctionLength","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"}]

6080604052670e92596fd629000060045560058054612a3065ffffffffffff199091161765ffffffffffff60301b19166802a300000000000000179055600060065534801561004d57600080fd5b506040516118a73803806118a78339818101604052604081101561007057600080fd5b508051602091820151336000818152808552604090819020600190819055600280546001600160a01b038088166001600160a01b0319928316179092556003805492871692909116919091179055600755805191825251929391927f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f7000102929181900390910190a150506117a0806101076000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80635a93f031116100ad578063933f760811610071578063933f7608146102d457806394f3f81d146102f1578063d25ccf5314610317578063f6b45eb714610334578063fe4f58901461033c5761012c565b80635a93f03114610270578063619ed1f81461029957806367aea313146102a157806373c0a367146102a9578063894ba833146102cc5761012c565b806335b28153116100f457806335b28153146101bc57806341b3a0d9146101e25780634423c5f1146101ea5780634fee13fc14610245578063551cb3b1146102685761012c565b80630ac239e5146101315780631266fb941461014b5780631a465fe11461015357806324ba5884146101775780632e9936111461019d575b600080fd5b61013961035f565b60408051918252519081900360200190f35b610139610365565b61015b610373565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561018d57600080fd5b50356001600160a01b0316610382565b6101ba600480360360208110156101b357600080fd5b5035610394565b005b6101ba600480360360208110156101d257600080fd5b50356001600160a01b03166105d4565b610139610674565b6102076004803603602081101561020057600080fd5b503561067a565b6040805195865260208601949094526001600160a01b039092168484015265ffffffffffff9081166060850152166080830152519081900360a00190f35b6101396004803603604081101561025b57600080fd5b50803590602001356106be565b6101396108fb565b6101ba6004803603606081101561028657600080fd5b5080359060208101359060400135610901565b610139610d82565b61015b610d90565b6102b1610d9f565b6040805165ffffffffffff9092168252519081900360200190f35b6101ba610db4565b6101ba600480360360208110156102ea57600080fd5b5035610f22565b6101ba6004803603602081101561030757600080fd5b50356001600160a01b03166110bf565b6101ba6004803603602081101561032d57600080fd5b503561115e565b6102b16112ad565b6101ba6004803603604081101561035257600080fd5b50803590602001356112bb565b60045481565b66535552504c555360c81b81565b6003546001600160a01b031681565b60006020819052908152604090205481565b6007546001146103d55760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161580159061044e575060008181526001602052604090206002015442600160a01b90910465ffffffffffff16108061044e575060008181526001602052604090206002015442600160d01b90910465ffffffffffff16105b6104895760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b6002805460008381526001602081905260408083209485015494909101548151633beaf2b760e21b81523060048201526001600160a01b03958616602482015260448101919091529051939092169263efabcadc92606480820193929182900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050600354600084815260016020526040808220548151632770a7eb60e21b8152306004820152602481019190915290516001600160a01b039093169450639dc29fac93506044808201939182900301818387803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b50505060008281526001602081905260408083208381559182018390556002909101829055518392507f03af424b0e12d91ea31fe7f2c199fc02c9ede38f9aa1bdc019a8087b41445f7a9190a250565b336000908152602081905260409020546001146106225760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60075481565b60016020819052600091825260409091208054918101546002909101546001600160a01b0381169065ffffffffffff600160a01b8204811691600160d01b90041685565b3360009081526020819052604081205460011461070c5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b60075460011461074d5760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000196006541061078f5760405162461bcd60e51b81526004018080602001828103825260238152602001806115b36023913960400191505060405180910390fd5b5060068054600190810191829055600082815260208290526040902083815590810184905560020180546001600160a01b031916331790556005546107e590429065ffffffffffff600160301b9091041661141a565b6000828152600160205260408082206002908101805465ffffffffffff95909516600160d01b026001600160d01b039095169490941790935591548251633beaf2b760e21b81523360048201523060248201526044810187905292516001600160a01b039091169263efabcadc92606480830193919282900301818387803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b505060065460008481526001602090815260409182902060020154825193845290830188905282820187905265ffffffffffff600160d01b909104166060830152518493507fa4863af70e77aecfe2769e0569806782ba7c6f86fc9a307290a3816fb8a563e592509081900360800190a292915050565b60065481565b6007546001146109425760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03166109985760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160a01b90910465ffffffffffff1611806109e55750600083815260016020526040902060020154600160a01b900465ffffffffffff16155b610a205760405162461bcd60e51b815260040180806020018281038252602e8152602001806114f5602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160d01b90910465ffffffffffff1611610a7f5760405162461bcd60e51b81526004018080602001828103825260328152602001806117396032913960400191505060405180910390fd5b600083815260016020819052604090912001548214610acf5760405162461bcd60e51b815260040180806020018281038252602f81526020018061162d602f913960400191505060405180910390fd5b6000838152600160205260409020548111610b1b5760405162461bcd60e51b81526004018080602001828103825260298152602001806115d66029913960400191505060405180910390fd5b600454600084815260016020526040902054610b37919061146d565b610b4982670de0b6b3a764000061146d565b1015610b865760405162461bcd60e51b81526004018080602001828103825260308152602001806115836030913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03163314610c4d5760035460008481526001602052604080822060028101549054825163bb35783b60e01b81523360048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050600084815260016020526040902060020180546001600160a01b03191633179055505b60035460008481526001602052604080822054815163bb35783b60e01b8152336004820152306024820152908503604482015290516001600160a01b039093169263bb35783b9260648084019391929182900301818387803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050600084815260016020526040902082905550600554610cf190429065ffffffffffff1661141a565b600084815260016020908152604091829020600201805465ffffffffffff60a01b1916600160a01b65ffffffffffff95861681029190911791829055835188815233938101939093528284018790526060830186905290049092166080830152517fd87c815d5a67c2e130ad04b714d87a6fb69d5a6df0dbb0f1639cd9fe292201f99160a0908290030190a1505050565b664255524e494e4760c81b81565b6002546001600160a01b031681565b600554600160301b900465ffffffffffff1681565b33600090815260208190526040902054600114610e025760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b600060075560025460408051633eaf7a0360e21b8152306004820181905291516001600160a01b039093169263efabcadc92913391859163fabde80c916024808301926020929190829003018186803b158015610e5e57600080fd5b505afa158015610e72573d6000803e3d6000fd5b505050506040513d6020811015610e8857600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b03948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b158015610edf57600080fd5b505af1158015610ef3573d6000803e3d6000fd5b50506040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e925060009150a1565b60075415610f615760405162461bcd60e51b81526004018080602001828103825260318152602001806115236031913960400191505060405180910390fd5b6000818152600160205260409020600201546001600160a01b0316610fb75760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60035460008281526001602052604080822060028101549054825163bb35783b60e01b81523060048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b5050506000828152600160209081526040918290206002810154905483513381526001600160a01b03909216928201929092528083019190915290518392507f723f56b5ac5fb3399765203804e790344f427477918842dbef525d795af4bcca9181900360600190a26000908152600160208190526040822082815590810182905560020155565b3360009081526020819052604090205460011461110d5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b60008181526001602052604090206002015442600160d01b90910465ffffffffffff16106111bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161561121a5760405162461bcd60e51b815260040180806020018281038252602d8152602001806116b7602d913960400191505060405180910390fd5b600554611237904290600160301b900465ffffffffffff1661141a565b60008281526001602090815260409182902060020180546001600160d01b0316600160d01b65ffffffffffff95861681029190911791829055835186815291049093169083015280517f10a109258779eb298071adf16637b95f8d7cf00e49595711da10eeb90e6e8e949281900390910190a150565b60055465ffffffffffff1681565b336000908152602081905260409020546001146113095760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b816a626964496e63726561736560a81b14156113295760048190556113db565b816a3134b2223ab930ba34b7b760a91b141561135d576005805465ffffffffffff191665ffffffffffff83161790556113db565b81710e8dee8c2d882eac6e8d2dedc98cadccee8d60731b14156113a457600580546bffffffffffff0000000000001916600160301b65ffffffffffff8416021790556113db565b60405162461bcd60e51b815260040180806020018281038252603481526020018061165c6034913960400191505060405180910390fd5b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b80820165ffffffffffff80841690821610156114675760405162461bcd60e51b815260040180806020018281038252602e8152602001806115ff602e913960400191505060405180910390fd5b92915050565b60008115806114885750508082028282828161148557fe5b04145b6114675760405162461bcd60e51b81526004018080602001828103825260278152602001806117126027913960400191505060405180910390fdfe4275726e696e67537572706c757341756374696f6e486f7573652f6163636f756e742d6e6f742d617574686f72697a65644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d657870697265644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d7374696c6c2d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d6e6f742d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f696e73756666696369656e742d696e6372656173654275726e696e67537572706c757341756374696f6e486f7573652f6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f6269642d6e6f742d6869676865724275726e696e67537572706c757341756374696f6e486f7573652f6164642d75696e7434382d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f616d6f756e74732d6e6f742d6d61746368696e674275726e696e67537572706c757341756374696f6e486f7573652f6d6f646966792d756e7265636f676e697a65642d706172616d4275726e696e67537572706c757341756374696f6e486f7573652f6e6f742d66696e69736865644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d706c616365644275726e696e67537572706c757341756374696f6e486f7573652f686967682d6269646465722d6e6f742d7365744275726e696e67537572706c757341756374696f6e486f7573652f6d756c2d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f61756374696f6e2d616c72656164792d65787069726564a2646970667358221220d878019ba0c62bd73ed45fddeec87aed8d1d931c2c17062339f573723b73d6ad64736f6c63430006070033000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a69620000000000000000000000006243d8cea23066d098a15582d81a598b4e8391f4

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80635a93f031116100ad578063933f760811610071578063933f7608146102d457806394f3f81d146102f1578063d25ccf5314610317578063f6b45eb714610334578063fe4f58901461033c5761012c565b80635a93f03114610270578063619ed1f81461029957806367aea313146102a157806373c0a367146102a9578063894ba833146102cc5761012c565b806335b28153116100f457806335b28153146101bc57806341b3a0d9146101e25780634423c5f1146101ea5780634fee13fc14610245578063551cb3b1146102685761012c565b80630ac239e5146101315780631266fb941461014b5780631a465fe11461015357806324ba5884146101775780632e9936111461019d575b600080fd5b61013961035f565b60408051918252519081900360200190f35b610139610365565b61015b610373565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561018d57600080fd5b50356001600160a01b0316610382565b6101ba600480360360208110156101b357600080fd5b5035610394565b005b6101ba600480360360208110156101d257600080fd5b50356001600160a01b03166105d4565b610139610674565b6102076004803603602081101561020057600080fd5b503561067a565b6040805195865260208601949094526001600160a01b039092168484015265ffffffffffff9081166060850152166080830152519081900360a00190f35b6101396004803603604081101561025b57600080fd5b50803590602001356106be565b6101396108fb565b6101ba6004803603606081101561028657600080fd5b5080359060208101359060400135610901565b610139610d82565b61015b610d90565b6102b1610d9f565b6040805165ffffffffffff9092168252519081900360200190f35b6101ba610db4565b6101ba600480360360208110156102ea57600080fd5b5035610f22565b6101ba6004803603602081101561030757600080fd5b50356001600160a01b03166110bf565b6101ba6004803603602081101561032d57600080fd5b503561115e565b6102b16112ad565b6101ba6004803603604081101561035257600080fd5b50803590602001356112bb565b60045481565b66535552504c555360c81b81565b6003546001600160a01b031681565b60006020819052908152604090205481565b6007546001146103d55760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161580159061044e575060008181526001602052604090206002015442600160a01b90910465ffffffffffff16108061044e575060008181526001602052604090206002015442600160d01b90910465ffffffffffff16105b6104895760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b6002805460008381526001602081905260408083209485015494909101548151633beaf2b760e21b81523060048201526001600160a01b03958616602482015260448101919091529051939092169263efabcadc92606480820193929182900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050600354600084815260016020526040808220548151632770a7eb60e21b8152306004820152602481019190915290516001600160a01b039093169450639dc29fac93506044808201939182900301818387803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b50505060008281526001602081905260408083208381559182018390556002909101829055518392507f03af424b0e12d91ea31fe7f2c199fc02c9ede38f9aa1bdc019a8087b41445f7a9190a250565b336000908152602081905260409020546001146106225760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60075481565b60016020819052600091825260409091208054918101546002909101546001600160a01b0381169065ffffffffffff600160a01b8204811691600160d01b90041685565b3360009081526020819052604081205460011461070c5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b60075460011461074d5760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000196006541061078f5760405162461bcd60e51b81526004018080602001828103825260238152602001806115b36023913960400191505060405180910390fd5b5060068054600190810191829055600082815260208290526040902083815590810184905560020180546001600160a01b031916331790556005546107e590429065ffffffffffff600160301b9091041661141a565b6000828152600160205260408082206002908101805465ffffffffffff95909516600160d01b026001600160d01b039095169490941790935591548251633beaf2b760e21b81523360048201523060248201526044810187905292516001600160a01b039091169263efabcadc92606480830193919282900301818387803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b505060065460008481526001602090815260409182902060020154825193845290830188905282820187905265ffffffffffff600160d01b909104166060830152518493507fa4863af70e77aecfe2769e0569806782ba7c6f86fc9a307290a3816fb8a563e592509081900360800190a292915050565b60065481565b6007546001146109425760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03166109985760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160a01b90910465ffffffffffff1611806109e55750600083815260016020526040902060020154600160a01b900465ffffffffffff16155b610a205760405162461bcd60e51b815260040180806020018281038252602e8152602001806114f5602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160d01b90910465ffffffffffff1611610a7f5760405162461bcd60e51b81526004018080602001828103825260328152602001806117396032913960400191505060405180910390fd5b600083815260016020819052604090912001548214610acf5760405162461bcd60e51b815260040180806020018281038252602f81526020018061162d602f913960400191505060405180910390fd5b6000838152600160205260409020548111610b1b5760405162461bcd60e51b81526004018080602001828103825260298152602001806115d66029913960400191505060405180910390fd5b600454600084815260016020526040902054610b37919061146d565b610b4982670de0b6b3a764000061146d565b1015610b865760405162461bcd60e51b81526004018080602001828103825260308152602001806115836030913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03163314610c4d5760035460008481526001602052604080822060028101549054825163bb35783b60e01b81523360048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050600084815260016020526040902060020180546001600160a01b03191633179055505b60035460008481526001602052604080822054815163bb35783b60e01b8152336004820152306024820152908503604482015290516001600160a01b039093169263bb35783b9260648084019391929182900301818387803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050600084815260016020526040902082905550600554610cf190429065ffffffffffff1661141a565b600084815260016020908152604091829020600201805465ffffffffffff60a01b1916600160a01b65ffffffffffff95861681029190911791829055835188815233938101939093528284018790526060830186905290049092166080830152517fd87c815d5a67c2e130ad04b714d87a6fb69d5a6df0dbb0f1639cd9fe292201f99160a0908290030190a1505050565b664255524e494e4760c81b81565b6002546001600160a01b031681565b600554600160301b900465ffffffffffff1681565b33600090815260208190526040902054600114610e025760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b600060075560025460408051633eaf7a0360e21b8152306004820181905291516001600160a01b039093169263efabcadc92913391859163fabde80c916024808301926020929190829003018186803b158015610e5e57600080fd5b505afa158015610e72573d6000803e3d6000fd5b505050506040513d6020811015610e8857600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b03948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b158015610edf57600080fd5b505af1158015610ef3573d6000803e3d6000fd5b50506040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e925060009150a1565b60075415610f615760405162461bcd60e51b81526004018080602001828103825260318152602001806115236031913960400191505060405180910390fd5b6000818152600160205260409020600201546001600160a01b0316610fb75760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60035460008281526001602052604080822060028101549054825163bb35783b60e01b81523060048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b5050506000828152600160209081526040918290206002810154905483513381526001600160a01b03909216928201929092528083019190915290518392507f723f56b5ac5fb3399765203804e790344f427477918842dbef525d795af4bcca9181900360600190a26000908152600160208190526040822082815590810182905560020155565b3360009081526020819052604090205460011461110d5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b60008181526001602052604090206002015442600160d01b90910465ffffffffffff16106111bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161561121a5760405162461bcd60e51b815260040180806020018281038252602d8152602001806116b7602d913960400191505060405180910390fd5b600554611237904290600160301b900465ffffffffffff1661141a565b60008281526001602090815260409182902060020180546001600160d01b0316600160d01b65ffffffffffff95861681029190911791829055835186815291049093169083015280517f10a109258779eb298071adf16637b95f8d7cf00e49595711da10eeb90e6e8e949281900390910190a150565b60055465ffffffffffff1681565b336000908152602081905260409020546001146113095760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b816a626964496e63726561736560a81b14156113295760048190556113db565b816a3134b2223ab930ba34b7b760a91b141561135d576005805465ffffffffffff191665ffffffffffff83161790556113db565b81710e8dee8c2d882eac6e8d2dedc98cadccee8d60731b14156113a457600580546bffffffffffff0000000000001916600160301b65ffffffffffff8416021790556113db565b60405162461bcd60e51b815260040180806020018281038252603481526020018061165c6034913960400191505060405180910390fd5b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b80820165ffffffffffff80841690821610156114675760405162461bcd60e51b815260040180806020018281038252602e8152602001806115ff602e913960400191505060405180910390fd5b92915050565b60008115806114885750508082028282828161148557fe5b04145b6114675760405162461bcd60e51b81526004018080602001828103825260278152602001806117126027913960400191505060405180910390fdfe4275726e696e67537572706c757341756374696f6e486f7573652f6163636f756e742d6e6f742d617574686f72697a65644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d657870697265644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d7374696c6c2d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d6e6f742d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f696e73756666696369656e742d696e6372656173654275726e696e67537572706c757341756374696f6e486f7573652f6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f6269642d6e6f742d6869676865724275726e696e67537572706c757341756374696f6e486f7573652f6164642d75696e7434382d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f616d6f756e74732d6e6f742d6d61746368696e674275726e696e67537572706c757341756374696f6e486f7573652f6d6f646966792d756e7265636f676e697a65642d706172616d4275726e696e67537572706c757341756374696f6e486f7573652f6e6f742d66696e69736865644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d706c616365644275726e696e67537572706c757341756374696f6e486f7573652f686967682d6269646465722d6e6f742d7365744275726e696e67537572706c757341756374696f6e486f7573652f6d756c2d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f61756374696f6e2d616c72656164792d65787069726564a2646970667358221220d878019ba0c62bd73ed45fddeec87aed8d1d931c2c17062339f573723b73d6ad64736f6c63430006070033

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

000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a69620000000000000000000000006243d8cea23066d098a15582d81a598b4e8391f4

-----Decoded View---------------
Arg [0] : safeEngine_ (address): 0xCC88a9d330da1133Df3A7bD823B95e52511A6962
Arg [1] : protocolToken_ (address): 0x6243d8CEA23066d098a15582d81a598b4e8391F4

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
Arg [1] : 0000000000000000000000006243d8cea23066d098a15582d81a598b4e8391f4


Deployed Bytecode Sourcemap

1584:9567:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1584:9567:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;3731:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;4308:65;;;:::i;3491:35::-;;;:::i;:::-;;;;-1:-1:-1;;;;;3491:35:0;;;;;;;;;;;;;;1648:54;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1648:54:0;-1:-1:-1;;;;;1648:54:0;;:::i;9696:518::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9696:518:0;;:::i;:::-;;1812:156;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1812:156:0;-1:-1:-1;;;;;1812:156:0;;:::i;4266:33::-;;;:::i;3354:36::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3354:36:0;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3354:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6745:730;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6745:730:0;;;;;;;:::i;4175:37::-;;;:::i;8276:1309::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8276:1309:0;;;;;;;;;;;;:::i;4380:65::-;;;:::i;3421:32::-;;;:::i;4027:45::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10316:229;;;:::i;10675:473::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10675:473:0;;:::i;2087:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2087:162:0;-1:-1:-1;;;;;2087:162:0;;:::i;7614:378::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7614:378:0;;:::i;3891:39::-;;;:::i;6082:439::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6082:439:0;;;;;;;:::i;3731:39::-;;;;:::o;4308:65::-;-1:-1:-1;;;4308:65:0;:::o;3491:35::-;;;-1:-1:-1;;;;;3491:35:0;;:::o;1648:54::-;;;;;;;;;;;;;;:::o;9696:518::-;9759:15;;9778:1;9759:20;9751:80;;;;-1:-1:-1;;;9751:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9850:8;;;;:4;:8;;;;;:18;;;-1:-1:-1;;;9850:18:0;;;;:23;;;;:87;;-1:-1:-1;9878:8:0;;;;:4;:8;;;;;:18;;;9899:3;-1:-1:-1;;;9878:18:0;;;;;:24;;:58;;-1:-1:-1;9906:8:0;;;;:4;:8;;;;;:24;;;9933:3;-1:-1:-1;;;9906:24:0;;;;;:30;9878:58;9842:139;;;;-1:-1:-1;;;9842:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9992:10;;;;10040:8;;;9992:10;10040:8;;;;;;;;:19;;;;10061:21;;;;;9992:91;;-1:-1:-1;;;9992:91:0;;10033:4;9992:91;;;;-1:-1:-1;;;;;10040:19:0;;;9992:91;;;;;;;;;;;;;:10;;;;;:32;;:91;;;;;:10;:91;;;;;;:10;;:91;;;2:2:-1;;;;27:1;24;17:12;2:2;9992:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10094:13:0;;;10128:8;;;10094:13;10128:8;;;;;;:18;10094:53;;-1:-1:-1;;;10094:53:0;;10121:4;10094:53;;;;;;;;;;;;;-1:-1:-1;;;;;10094:13:0;;;;-1:-1:-1;10094:18:0;;-1:-1:-1;10094:53:0;;;;;;;;;;;:13;;:53;;;2:2:-1;;;;27:1;24;17:12;2:2;10094:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;10165:8:0;;;;:4;:8;;;;;;;;10158:15;;;;;;;;;;;;;;;;10189:17;10170:2;;-1:-1:-1;10189:17:0;;10165:8;10189:17;9696:518;:::o;1812:156::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1888:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;1918:1:::1;1888:31:::0;;1935:25;;;;;;;::::1;::::0;;;;;;;;::::1;1812:156:::0;:::o;4266:33::-;;;;:::o;3354:36::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3354:36:0;;;;-1:-1:-1;;;3354:36:0;;;;;-1:-1:-1;;;3354:36:0;;;;:::o;6745:730::-;2402:10;6840;2383:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6871:15:::1;;6890:1;6871:20;6863:80;;;;-1:-1:-1::0;;;6863:80:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;6962:15:0::1;;:29;6954:77;;;;-1:-1:-1::0;;;6954:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;7049:15:0::1;7047:17:::0;;::::1;::::0;;::::1;::::0;;;;7049:15:::1;7077:8:::0;;;::::1;::::0;;;;;;:31;;;7119:21;;::::1;:36:::0;;;7166:19:::1;;:32:::0;;-1:-1:-1;;;;;;7166:32:0::1;7188:10;7166:32;::::0;;7259:18:::1;::::0;7236:42:::1;::::0;7253:3:::1;::::0;7259:18:::1;-1:-1:-1::0;;;7259:18:0;;::::1;;7236:9;:42::i;:::-;7209:8;::::0;;;:4:::1;:8;::::0;;;;;:24:::1;::::0;;::::1;:69:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;7209:69:0::1;-1:-1:-1::0;;;;;7209:69:0;;::::1;::::0;;;::::1;::::0;;;7291:10;;:73;;-1:-1:-1;;;7291:73:0;;7324:10:::1;7291:73;::::0;::::1;::::0;7344:4:::1;7291:73:::0;;;;;;;;;;;;-1:-1:-1;;;;;7291:10:0;;::::1;::::0;:32:::1;::::0;:73;;;;;7209:8;;7291:73;;;;;7209:8;7291:10;:73;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7291:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;7399:15:0::1;::::0;7442:8:::1;::::0;;;:4:::1;:8;::::0;;;;;;;;:24:::1;;::::0;7382:85;;;;;;;::::1;::::0;;;;;;;;;7442:24:::1;-1:-1:-1::0;;;7442:24:0;;::::1;;7382:85:::0;;;;;7395:2;;-1:-1:-1;7382:85:0::1;::::0;-1:-1:-1;7382:85:0;;;;;;;::::1;6745:730:::0;;;;:::o;4175:37::-;;;;:::o;8276:1309::-;8375:15;;8394:1;8375:20;8367:80;;;;-1:-1:-1;;;8367:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8497:1;8466:8;;;:4;:8;;;;;:19;;;-1:-1:-1;;;;;8466:19:0;8458:92;;;;-1:-1:-1;;;8458:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8569:8;;;;:4;:8;;;;;:18;;;8590:3;-1:-1:-1;;;8569:18:0;;;;;:24;;:51;;-1:-1:-1;8597:8:0;;;;:4;:8;;;;;:18;;;-1:-1:-1;;;8597:18:0;;;;:23;8569:51;8561:110;;;;-1:-1:-1;;;8561:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8690:8;;;;:4;:8;;;;;:24;;;8717:3;-1:-1:-1;;;8690:24:0;;;;;:30;8682:93;;;;-1:-1:-1;;;8682:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8811:8;;;;:4;:8;;;;;;;;:21;;8796:36;;8788:96;;;;-1:-1:-1;;;8788:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8909:8;;;;:4;:8;;;;;:18;8903:24;;8895:78;;;;-1:-1:-1;;;8895:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9023:11;;9036:8;;;;:4;:8;;;;;:18;9014:41;;9023:11;9014:8;:41::i;:::-;8992:18;9001:3;3559:7;8992:8;:18::i;:::-;:63;;8984:124;;;;-1:-1:-1;;;8984:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:8;;;;:4;:8;;;;;:19;;;-1:-1:-1;;;;;9139:19:0;9125:10;:33;9121:184;;9175:13;;;9206:8;;;9175:13;9206:8;;;;;;:19;;;;9227:18;;9175:71;;-1:-1:-1;;;9175:71:0;;9194:10;9175:71;;;;-1:-1:-1;;;;;9206:19:0;;;9175:71;;;;;;;;;;;;;:13;;;:18;;:71;;;;;:13;;:71;;;;;;:13;;:71;;;2:2:-1;;;;27:1;24;17:12;2:2;9175:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;9261:8:0;;;;:4;:8;;;;;:19;;:32;;-1:-1:-1;;;;;;9261:32:0;9283:10;9261:32;;;-1:-1:-1;9121:184:0;9315:13;;;9367:8;;;9315:13;9367:8;;;;;;:18;9315:71;;-1:-1:-1;;;9315:71:0;;9334:10;9315:71;;;;9354:4;9315:71;;;;9361:24;;;9315:71;;;;;;-1:-1:-1;;;;;9315:13:0;;;;:18;;:71;;;;;:13;;:71;;;;;;:13;;:71;;;2:2:-1;;;;27:1;24;17:12;2:2;9315:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;9399:8:0;;;;:4;:8;;;;;:24;;;-1:-1:-1;9478:11:0;;9455:35;;9472:3;;9478:11;;9455:9;:35::i;:::-;9434:8;;;;:4;:8;;;;;;;;;:18;;:56;;-1:-1:-1;;;;9434:56:0;-1:-1:-1;;;9434:56:0;;;;;;;;;;;;;;9508:69;;;;;9528:10;9508:69;;;;;;;;;;;;;;;;;;;9558:18;;;;;9508:69;;;;;;;;;;;;;;;8276:1309;;;:::o;4380:65::-;-1:-1:-1;;;4380:65:0;:::o;3421:32::-;;;-1:-1:-1;;;;;3421:32:0;;:::o;4027:45::-;;;-1:-1:-1;;;4027:45:0;;;;;:::o;10316:229::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10394:1:::1;10376:15;:19:::0;10406:10:::1;::::0;10466:37:::1;::::0;;-1:-1:-1;;;10466:37:0;;10447:4:::1;10466:37;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;10406:10:0;;::::1;::::0;:32:::1;::::0;10447:4;10454:10:::1;::::0;10406;;10466:22:::1;::::0;:37;;;;;::::1;::::0;;;;;;;;10406:10;10466:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;10466:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10466:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;10466:37:0;10406:98:::1;::::0;;-1:-1:-1;;;;;;10406:98:0::1;::::0;;;;;;-1:-1:-1;;;;;10406:98:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;;;-1:-1:-1;;10406:98:0;;;;;;;-1:-1:-1;10406:98:0;;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;10406:98:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;10520:17:0::1;::::0;::::1;::::0;-1:-1:-1;10520:17:0;;-1:-1:-1;10520:17:0::1;10316:229::o:0;10675:473::-;10752:15;;:20;10744:82;;;;-1:-1:-1;;;10744:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10876:1;10845:8;;;:4;:8;;;;;:19;;;-1:-1:-1;;;;;10845:19:0;10837:92;;;;-1:-1:-1;;;10837:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10940:13;;;10974:8;;;10940:13;10974:8;;;;;;:19;;;;10995:18;;10940:74;;-1:-1:-1;;;10940:74:0;;10967:4;10940:74;;;;-1:-1:-1;;;;;10974:19:0;;;10940:74;;;;;;;;;;;;;:13;;;:18;;:74;;;;;:13;;:74;;;;;;:13;;:74;;;2:2:-1;;;;27:1;24;17:12;2:2;10940:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;11074:8:0;;;;:4;:8;;;;;;;;;:19;;;;11095:18;;11030:84;;11062:10;11030:84;;-1:-1:-1;;;;;11074:19:0;;;11030:84;;;;;;;;;;;;;;;;11058:2;;-1:-1:-1;11030:84:0;;;;;;;;;11132:8;;;;:4;:8;;;;;;;11125:15;;;;;;;;;;;;10675:473::o;2087:162::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2166:27:0;::::1;2196:1;2166:27:::0;;;::::1;::::0;;;;;;;:31;;;;2213:28;;;;;;;::::1;::::0;;;;;;;;::::1;2087:162:::0;:::o;7614:378::-;7678:8;;;;:4;:8;;;;;:24;;;7705:3;-1:-1:-1;;;7678:24:0;;;;;:30;7670:82;;;;-1:-1:-1;;;7670:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7771:8;;;;:4;:8;;;;;:18;;;-1:-1:-1;;;7771:18:0;;;;:23;7763:81;;;;-1:-1:-1;;;7763:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7905:18;;7882:42;;7899:3;;-1:-1:-1;;;7905:18:0;;;;7882:9;:42::i;:::-;7855:8;;;;:4;:8;;;;;;;;;:24;;:69;;-1:-1:-1;;;;;7855:69:0;-1:-1:-1;;;7855:69:0;;;;;;;;;;;;;;7940:44;;;;;7959:24;;;;;7940:44;;;;;;;;;;;;;;;;7614:378;:::o;3891:39::-;;;;;;:::o;6082:439::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6178:9:::1;-1:-1:-1::0;;;6178:26:0::1;6174:290;;;6206:11;:18:::0;;;6174:290:::1;;;6244:9;-1:-1:-1::0;;;6244:26:0::1;6240:224;;;6272:11;:26:::0;;-1:-1:-1;;6272:26:0::1;;::::0;::::1;;::::0;;6240:224:::1;;;6318:9;-1:-1:-1::0;;;6318:33:0::1;6314:150;;;6353:18;:33:::0;;-1:-1:-1;;6353:33:0::1;-1:-1:-1::0;;;6353:33:0::1;::::0;::::1;;;::::0;;6314:150:::1;;;6402:62;;-1:-1:-1::0;;;6402:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6314:150;6480:33;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;6082:439:::0;;:::o;5537:166::-;5633:5;;;5628:16;;;;;;;;;5620:75;;;;-1:-1:-1;;;5620:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:166;;;;:::o;5709:175::-;5772:9;5802:6;;;:30;;-1:-1:-1;;5817:5:0;;;5831:1;5826;5817:5;5826:1;5812:15;;;;;:20;5802:30;5794:82;;;;-1:-1:-1;;;5794:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://d878019ba0c62bd73ed45fddeec87aed8d1d931c2c17062339f573723b73d6ad

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.