ETH Price: $2,373.00 (+0.76%)
Gas: 39 Gwei

Contract

0x12F906E4854EEDFdB1BD2DAA9100D1C3b0Cb7631
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
Value
0x60806040118572532021-02-14 21:27:471028 days 23 hrs ago1613338067IN
 Create: GebUniswapV2MultiCollateralKeeperFlashProxy
0 ETH0.27717928112

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GebUniswapV2MultiCollateralKeeperFlashProxy

Compiler Version
v0.6.7+commit.b8d736ae

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

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

pragma solidity 0.6.7;

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;
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

abstract contract AuctionHouseLike {
    function bids(uint) external view virtual returns (uint, uint, uint, uint, uint48, address, address);
    function buyCollateral(uint256 id, uint256 wad) external virtual;
    function liquidationEngine() view public virtual returns (LiquidationEngineLike);
    function collateralType() view public virtual returns (bytes32);
}

abstract contract SAFEEngineLike {
    function tokenCollateral(bytes32, address) virtual public view returns (uint);
    function canModifySAFE(address, address) virtual public view returns (uint);
    function collateralTypes(bytes32) virtual public view returns (uint, uint, uint, uint, uint);
    function coinBalance(address) virtual public view returns (uint);
    function safes(bytes32, address) virtual public view returns (uint, uint);
    function modifySAFECollateralization(bytes32, address, address, address, int, int) virtual public;
    function approveSAFEModification(address) virtual public;
    function denySAFEModification(address) virtual public;
    function transferInternalCoins(address, address, uint) virtual public;
}

abstract contract CollateralJoinLike {
    function decimals() virtual public returns (uint);
    function collateral() virtual public returns (CollateralLike);
    function join(address, uint) virtual public payable;
    function exit(address, uint) virtual public;
    function collateralType() virtual public returns (bytes32);
}

abstract contract CoinJoinLike {
    function safeEngine() virtual public returns (SAFEEngineLike);
    function systemCoin() virtual public returns (CollateralLike);
    function join(address, uint) virtual public payable;
    function exit(address, uint) virtual public;
}

abstract contract CollateralLike {
    function approve(address, uint) virtual public;
    function transfer(address, uint) virtual public;
    function transferFrom(address, address, uint) virtual public;
    function deposit() virtual public payable;
    function withdraw(uint) virtual public;
    function balanceOf(address) virtual public view returns (uint);
}

abstract contract LiquidationEngineLike {
    function chosenSAFESaviour(bytes32, address) virtual view public returns (address);
    function safeSaviours(address) virtual view public returns (uint);
    function liquidateSAFE(bytes32 collateralType, address safe) virtual external returns (uint256 auctionId);
    function safeEngine() view public virtual returns (SAFEEngineLike);
    function collateralTypes(bytes32) public virtual returns(AuctionHouseLike,uint,uint);
}

/// @title GEB Multi Collateral Keeper Flash Proxy
/// @notice Trustless proxy that facilitates SAFE liquidation and bidding in collateral auctions using Uniswap V2 flashswaps
/// @notice Multi collateral version, works with both ETH and general ERC20 collateral
contract GebUniswapV2MultiCollateralKeeperFlashProxy {
    SAFEEngineLike          public safeEngine;
    CollateralLike          public weth;
    CollateralLike          public coin;
    CoinJoinLike            public coinJoin;
    IUniswapV2Pair          public uniswapPair;
    IUniswapV2Factory       public uniswapFactory;
    LiquidationEngineLike   public liquidationEngine;
    bytes32                 public collateralType;

    /// @notice Constructor
    /// @param wethAddress WETH address
    /// @param systemCoinAddress System coin address
    /// @param uniswapFactoryAddress Uniswap V2 factory address
    /// @param coinJoinAddress CoinJoin address
    /// @param liquidationEngineAddress Liquidation engine address
    constructor(
        address wethAddress,
        address systemCoinAddress,
        address uniswapFactoryAddress,
        address coinJoinAddress,
        address liquidationEngineAddress
    ) public {
        require(wethAddress != address(0), "GebUniswapV2MultiCollateralKeeperFlashProxy/null-weth");
        require(systemCoinAddress != address(0), "GebUniswapV2MultiCollateralKeeperFlashProxy/null-system-coin");
        require(uniswapFactoryAddress != address(0), "GebUniswapV2MultiCollateralKeeperFlashProxy/null-uniswap-factory");
        require(coinJoinAddress != address(0), "GebUniswapV2MultiCollateralKeeperFlashProxy/null-coin-join");
        require(liquidationEngineAddress != address(0), "GebUniswapV2MultiCollateralKeeperFlashProxy/null-liquidation-engine");

        weth                = CollateralLike(wethAddress);
        coin                = CollateralLike(systemCoinAddress);
        uniswapFactory      = IUniswapV2Factory(uniswapFactoryAddress);
        coinJoin            = CoinJoinLike(coinJoinAddress);
        liquidationEngine   = LiquidationEngineLike(liquidationEngineAddress);
        safeEngine          = liquidationEngine.safeEngine();
    }

    // --- Math ---
    function subtract(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, "GebUniswapV2MultiCollateralKeeperFlashProxy/sub-overflow");
    }
    function wad(uint rad) internal pure returns (uint) {
        return rad / 10 ** 27;
    }

    // --- Internal Utils ---
    /// @notice Initiates a flashwap
    /// @param amount Amount to borrow
    /// @param data Callback data
    function _startSwap(uint amount, bytes memory data) internal {
        uint amount0Out = address(coin) == uniswapPair.token0() ? amount : 0;
        uint amount1Out = address(coin) == uniswapPair.token1() ? amount : 0;

        uniswapPair.swap(amount0Out, amount1Out, address(this), data);
    }

    // --- External Utils ---
    /// @notice Callback for Uniswap V2
    /// @param _sender Flashswap requestor (must be this contract)
    /// @param _amount0 Amount of token0
    /// @param _amount1 Amount of token1
    /// @param _data Data sent back from Uniswap
    function uniswapV2Call(address _sender, uint _amount0, uint _amount1, bytes calldata _data) external {
        require(_sender == address(this), "GebUniswapV2MultiCollateralKeeperFlashProxy/invalid-sender");
        require(msg.sender == address(uniswapPair), "GebUniswapV2MultiCollateralKeeperFlashProxy/invalid-uniswap-pair");

        (address caller, CollateralJoinLike collateralJoin, AuctionHouseLike auctionHouse, uint auctionId, uint amount) = abi.decode(
            _data, (address, CollateralJoinLike, AuctionHouseLike, uint, uint)
        );

        uint wadAmount = wad(amount) + 1;

        // join COIN
        coin.approve(address(coinJoin), wadAmount);
        coinJoin.join(address(this), wadAmount);

        // bid
        auctionHouse.buyCollateral(auctionId, amount);

        // exit collateral
        collateralJoin.exit(address(this), safeEngine.tokenCollateral(collateralJoin.collateralType(), address(this)));

        // repay loan
        uint pairBalanceTokenBorrow = coin.balanceOf(address(uniswapPair));
        uint pairBalanceTokenPay = collateralJoin.collateral().balanceOf(address(uniswapPair));
        uint amountToRepay = ((1000 * pairBalanceTokenPay * wadAmount ) / (997 * pairBalanceTokenBorrow)) + 1;
        require(amountToRepay <= collateralJoin.collateral().balanceOf(address(this)), "GebUniswapV2MultiCollateralKeeperFlashProxy/profit-not-enough-to-repay-the-flashswap");
        collateralJoin.collateral().transfer(address(uniswapPair), amountToRepay);

        // send profit back
        if (collateralJoin.collateral() == weth) {
            uint profit = weth.balanceOf(address(this));
            weth.withdraw(profit);
            caller.call{value: profit}("");
        } else {
            collateralJoin.collateral().transfer(caller, collateralJoin.collateral().balanceOf(address(this)));
        }

        uniswapPair = IUniswapV2Pair(address(0x0));
    }

    // --- Core Bidding and Settling Logic ---
    /// @notice Liquidates an underwater SAFE and settles the auction right away
    /// @dev It will revert for protected safes (those that have saviours), these need to be liquidated through the LiquidationEngine
    /// @param collateralJoin Join address for a collateral type
    /// @param safe A SAFE's ID
    /// @return auction Auction ID
    function liquidateAndSettleSAFE(CollateralJoinLike collateralJoin, address safe) public returns (uint auction) {
        collateralType = collateralJoin.collateralType();
        if (liquidationEngine.safeSaviours(liquidationEngine.chosenSAFESaviour(collateralType, safe)) == 1) {
            require (liquidationEngine.chosenSAFESaviour(collateralType, safe) == address(0),
            "GebUniswapV2MultiCollateralKeeperFlashProxy/safe-is-protected");
        }

        auction = liquidationEngine.liquidateSAFE(collateralType, safe);
        settleAuction(collateralJoin, auction);
    }

    /// @notice Settle an auction
    /// @param collateralJoin Join address for a collateral type
    /// @param auctionId ID of the auction to be settled
    function settleAuction(CollateralJoinLike collateralJoin, uint auctionId) public {
        (AuctionHouseLike auctionHouse,,) = liquidationEngine.collateralTypes(collateralJoin.collateralType());
        (uint raisedAmount,,, uint amountToRaise, uint48 auctionDeadline,,) = auctionHouse.bids(auctionId);
        require(auctionDeadline > now, "GebUniswapV2MultiCollateralKeeperFlashProxy/auction-expired");
        uint amount = subtract(amountToRaise, raisedAmount);
        require(amount > 0, "GebUniswapV2MultiCollateralKeeperFlashProxy/auction-already-settled");

        bytes memory callbackData = abi.encode(
            msg.sender,
            address(collateralJoin),
            address(auctionHouse),
            auctionId,
            amount);   // rad

        uniswapPair = IUniswapV2Pair(uniswapFactory.getPair(address(collateralJoin.collateral()), address(coin)));

        safeEngine.approveSAFEModification(address(auctionHouse));
        _startSwap(wad(amount) + 1, callbackData);
        safeEngine.denySAFEModification(address(auctionHouse));
    }

    // --- Fallback ---
    receive() external payable {
        require(msg.sender == address(weth), "GebUniswapV2MultiCollateralKeeperFlashProxy/only-weth-withdrawals-allowed");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wethAddress","type":"address"},{"internalType":"address","name":"systemCoinAddress","type":"address"},{"internalType":"address","name":"uniswapFactoryAddress","type":"address"},{"internalType":"address","name":"coinJoinAddress","type":"address"},{"internalType":"address","name":"liquidationEngineAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"coin","outputs":[{"internalType":"contract CollateralLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coinJoin","outputs":[{"internalType":"contract CoinJoinLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collateralType","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract CollateralJoinLike","name":"collateralJoin","type":"address"},{"internalType":"address","name":"safe","type":"address"}],"name":"liquidateAndSettleSAFE","outputs":[{"internalType":"uint256","name":"auction","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidationEngine","outputs":[{"internalType":"contract LiquidationEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"contract SAFEEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract CollateralJoinLike","name":"collateralJoin","type":"address"},{"internalType":"uint256","name":"auctionId","type":"uint256"}],"name":"settleAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapFactory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_amount0","type":"uint256"},{"internalType":"uint256","name":"_amount1","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"uniswapV2Call","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract CollateralLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162002f9438038062002f94833981810160405260a08110156200003757600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415620000f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018062002ea26035913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141562000180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018062002e66603c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000208576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018062002ed76040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018062002f17603a913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604381526020018062002f516043913960600191505060405180910390fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166367aea3136040518163ffffffff1660e01b815260040160206040518083038186803b158015620004c657600080fd5b505afa158015620004db573d6000803e3d6000fd5b505050506040513d6020811015620004f257600080fd5b81019080805190602001909291905050506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505061290f80620005576000396000f3fe6080604052600436106100a05760003560e01c80635138b08c116100645780635138b08c146103685780636247077c146103c357806367aea313146104485780638bdb2afa1461049f578063c816841b146104f6578063e824600f1461054d5761014d565b806310d1e85c1461015257806311df99951461020c57806330413a2a146102635780633fc8cef3146102ba57806344bf3c72146103115761014d565b3661014d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461014b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260498152602001806127c86049913960600191505060405180910390fd5b005b600080fd5b34801561015e57600080fd5b5061020a6004803603608081101561017557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156101c657600080fd5b8201836020820111156101d857600080fd5b803590602001918460018302840111640100000000831117156101fa57600080fd5b9091929391929390505050610578565b005b34801561021857600080fd5b50610221611613565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561026f57600080fd5b50610278611639565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102c657600080fd5b506102cf61165f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031d57600080fd5b50610326611685565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037457600080fd5b506103c16004803603604081101561038b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ab565b005b3480156103cf57600080fd5b50610432600480360360408110156103e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dde565b6040518082815260200191505060405180910390f35b34801561045457600080fd5b5061045d61228f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ab57600080fd5b506104b46122b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050257600080fd5b5061050b6122da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b50610562612300565b6040518082815260200191505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146105fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612865603a913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061274b6040913960400191505060405180910390fd5b6000806000806000868660a08110156106ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050945094509450945094506000600161074c83612306565b019050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b4da69f30836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156108db57600080fd5b505af11580156108ef573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff166354ece2d384846040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff1663ef693bed306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376e0b4ca8973ffffffffffffffffffffffffffffffffffffffff1663e824600f6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a0857600080fd5b505af1158015610a1c573d6000803e3d6000fd5b505050506040513d6020811015610a3257600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610aab57600080fd5b505afa158015610abf573d6000803e3d6000fd5b505050506040513d6020811015610ad557600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610b4f57600080fd5b505af1158015610b63573d6000803e3d6000fd5b505050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d6020811015610c5457600080fd5b8101908080519060200190929190505050905060008673ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610cb157600080fd5b505af1158015610cc5573d6000803e3d6000fd5b505050506040513d6020811015610cdb57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d8a57600080fd5b505afa158015610d9e573d6000803e3d6000fd5b505050506040513d6020811015610db457600080fd5b8101908080519060200190929190505050905060006001836103e50285846103e8020281610dde57fe5b040190508773ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610e2a57600080fd5b505af1158015610e3e573d6000803e3d6000fd5b505050506040513d6020811015610e5457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ee157600080fd5b505afa158015610ef5573d6000803e3d6000fd5b505050506040513d6020811015610f0b57600080fd5b8101908080519060200190929190505050811115610f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806128116054913960600191505060405180910390fd5b8773ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbc57600080fd5b505af1158015610fd0573d6000803e3d6000fd5b505050506040513d6020811015610fe657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561113857600080fd5b505af115801561114c573d6000803e3d6000fd5b505050506040513d602081101561116257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415611366576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561123057600080fd5b505afa158015611244573d6000803e3d6000fd5b505050506040513d602081101561125a57600080fd5b81019080805190602001909291905050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156112e257600080fd5b505af11580156112f6573d6000803e3d6000fd5b505050508973ffffffffffffffffffffffffffffffffffffffff168160405180600001905060006040518083038185875af1925050503d8060008114611358576040519150601f19603f3d011682016040523d82523d6000602084013e61135d565b606091505b505050506115c1565b8773ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b505050506040513d60208110156113d857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a8a73ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b505050506040513d602081101561147757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561150457600080fd5b505afa158015611518573d6000803e3d6000fd5b505050506040513d602081101561152e57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156115a857600080fd5b505af11580156115bc573d6000803e3d6000fd5b505050505b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d07900bb8473ffffffffffffffffffffffffffffffffffffffff1663e824600f6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b505050506040513d602081101561175d57600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050606060405180830381600087803b1580156117a457600080fd5b505af11580156117b8573d6000803e3d6000fd5b505050506040513d60608110156117ce57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050905060008060008373ffffffffffffffffffffffffffffffffffffffff16634423c5f1866040518263ffffffff1660e01b81526004018082815260200191505060e06040518083038186803b15801561184d57600080fd5b505afa158015611861573d6000803e3d6000fd5b505050506040513d60e081101561187757600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050509450945050509250428165ffffffffffff161161192e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061289f603b913960400191505060405180910390fd5b600061193a8385612325565b905060008111611995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806127086043913960600191505060405180910390fd5b60603388878985604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001955050505050506040516020818303038152906040529050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a439058973ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611ae357600080fd5b505af1158015611af7573d6000803e3d6000fd5b505050506040513d6020811015611b0d57600080fd5b8101908080519060200190929190505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015611bd457600080fd5b505afa158015611be8573d6000803e3d6000fd5b505050506040513d6020811015611bfe57600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d94d4208876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611cef57600080fd5b505af1158015611d03573d6000803e3d6000fd5b50505050611d1c6001611d1584612306565b018261238b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d49d7867876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611dbc57600080fd5b505af1158015611dd0573d6000803e3d6000fd5b505050505050505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663e824600f6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e2857600080fd5b505af1158015611e3c573d6000803e3d6000fd5b505050506040513d6020811015611e5257600080fd5b81019080805190602001909291905050506007819055506001600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635626da24600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c20afc4600754876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015611f5257600080fd5b505afa158015611f66573d6000803e3d6000fd5b505050506040513d6020811015611f7c57600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fed57600080fd5b505afa158015612001573d6000803e3d6000fd5b505050506040513d602081101561201757600080fd5b8101908080519060200190929190505050141561219757600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c20afc4600754856040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156120ef57600080fd5b505afa158015612103573d6000803e3d6000fd5b505050506040513d602081101561211957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061278b603d913960400191505060405180910390fd5b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c28be57600754846040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561224257600080fd5b505af1158015612256573d6000803e3d6000fd5b505050506040513d602081101561226c57600080fd5b8101908080519060200190929190505050905061228983826116ab565b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60006b033b2e3c9fd0803ce8000000828161231d57fe5b049050919050565b6000828284039150811115612385576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126d06038913960400191505060405180910390fd5b92915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156123f557600080fd5b505afa158015612409573d6000803e3d6000fd5b505050506040513d602081101561241f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b57600061248d565b825b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156124f957600080fd5b505afa15801561250d573d6000803e3d6000fd5b505050506040513d602081101561252357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461258f576000612591565b835b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663022c0d9f838330876040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612662578082015181840152602081019050612647565b50505050905090810190601f16801561268f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b505050505050505056fe476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f7375622d6f766572666c6f77476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f61756374696f6e2d616c72656164792d736574746c6564476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f696e76616c69642d756e69737761702d70616972476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f736166652d69732d70726f746563746564476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f6f6e6c792d776574682d7769746864726177616c732d616c6c6f776564476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f70726f6669742d6e6f742d656e6f7567682d746f2d72657061792d7468652d666c61736873776170476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f696e76616c69642d73656e646572476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f61756374696f6e2d65787069726564a2646970667358221220b03710ba9c431f7ab22948479ac6c50d579ecb7fa476b280dfa96ea58b150a9564736f6c63430006070033476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f6e756c6c2d73797374656d2d636f696e476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f6e756c6c2d77657468476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f6e756c6c2d756e69737761702d666163746f7279476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f6e756c6c2d636f696e2d6a6f696e476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f6e756c6c2d6c69717569646174696f6e2d656e67696e65000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000003ab458634910aad20ef5f1c8ee96f1d6ac549190000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000000a5653cca4db1b6e265f47caf6969e64f1cfdc4500000000000000000000000027efc6ffe79692e0521e7e27657cf228240a06c2

Deployed Bytecode

0x6080604052600436106100a05760003560e01c80635138b08c116100645780635138b08c146103685780636247077c146103c357806367aea313146104485780638bdb2afa1461049f578063c816841b146104f6578063e824600f1461054d5761014d565b806310d1e85c1461015257806311df99951461020c57806330413a2a146102635780633fc8cef3146102ba57806344bf3c72146103115761014d565b3661014d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461014b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260498152602001806127c86049913960600191505060405180910390fd5b005b600080fd5b34801561015e57600080fd5b5061020a6004803603608081101561017557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156101c657600080fd5b8201836020820111156101d857600080fd5b803590602001918460018302840111640100000000831117156101fa57600080fd5b9091929391929390505050610578565b005b34801561021857600080fd5b50610221611613565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561026f57600080fd5b50610278611639565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102c657600080fd5b506102cf61165f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031d57600080fd5b50610326611685565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037457600080fd5b506103c16004803603604081101561038b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ab565b005b3480156103cf57600080fd5b50610432600480360360408110156103e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dde565b6040518082815260200191505060405180910390f35b34801561045457600080fd5b5061045d61228f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ab57600080fd5b506104b46122b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050257600080fd5b5061050b6122da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b50610562612300565b6040518082815260200191505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146105fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612865603a913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061274b6040913960400191505060405180910390fd5b6000806000806000868660a08110156106ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050945094509450945094506000600161074c83612306565b019050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b4da69f30836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156108db57600080fd5b505af11580156108ef573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff166354ece2d384846040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561094e57600080fd5b505af1158015610962573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff1663ef693bed306000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376e0b4ca8973ffffffffffffffffffffffffffffffffffffffff1663e824600f6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610a0857600080fd5b505af1158015610a1c573d6000803e3d6000fd5b505050506040513d6020811015610a3257600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610aab57600080fd5b505afa158015610abf573d6000803e3d6000fd5b505050506040513d6020811015610ad557600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610b4f57600080fd5b505af1158015610b63573d6000803e3d6000fd5b505050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d6020811015610c5457600080fd5b8101908080519060200190929190505050905060008673ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610cb157600080fd5b505af1158015610cc5573d6000803e3d6000fd5b505050506040513d6020811015610cdb57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d8a57600080fd5b505afa158015610d9e573d6000803e3d6000fd5b505050506040513d6020811015610db457600080fd5b8101908080519060200190929190505050905060006001836103e50285846103e8020281610dde57fe5b040190508773ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610e2a57600080fd5b505af1158015610e3e573d6000803e3d6000fd5b505050506040513d6020811015610e5457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610ee157600080fd5b505afa158015610ef5573d6000803e3d6000fd5b505050506040513d6020811015610f0b57600080fd5b8101908080519060200190929190505050811115610f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806128116054913960600191505060405180910390fd5b8773ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbc57600080fd5b505af1158015610fd0573d6000803e3d6000fd5b505050506040513d6020811015610fe657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561113857600080fd5b505af115801561114c573d6000803e3d6000fd5b505050506040513d602081101561116257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415611366576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561123057600080fd5b505afa158015611244573d6000803e3d6000fd5b505050506040513d602081101561125a57600080fd5b81019080805190602001909291905050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156112e257600080fd5b505af11580156112f6573d6000803e3d6000fd5b505050508973ffffffffffffffffffffffffffffffffffffffff168160405180600001905060006040518083038185875af1925050503d8060008114611358576040519150601f19603f3d011682016040523d82523d6000602084013e61135d565b606091505b505050506115c1565b8773ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b505050506040513d60208110156113d857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a8a73ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b505050506040513d602081101561147757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561150457600080fd5b505afa158015611518573d6000803e3d6000fd5b505050506040513d602081101561152e57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156115a857600080fd5b505af11580156115bc573d6000803e3d6000fd5b505050505b6000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d07900bb8473ffffffffffffffffffffffffffffffffffffffff1663e824600f6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b505050506040513d602081101561175d57600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050606060405180830381600087803b1580156117a457600080fd5b505af11580156117b8573d6000803e3d6000fd5b505050506040513d60608110156117ce57600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050905060008060008373ffffffffffffffffffffffffffffffffffffffff16634423c5f1866040518263ffffffff1660e01b81526004018082815260200191505060e06040518083038186803b15801561184d57600080fd5b505afa158015611861573d6000803e3d6000fd5b505050506040513d60e081101561187757600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050509450945050509250428165ffffffffffff161161192e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061289f603b913960400191505060405180910390fd5b600061193a8385612325565b905060008111611995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806127086043913960600191505060405180910390fd5b60603388878985604051602001808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001955050505050506040516020818303038152906040529050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a439058973ffffffffffffffffffffffffffffffffffffffff1663d8dfeb456040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611ae357600080fd5b505af1158015611af7573d6000803e3d6000fd5b505050506040513d6020811015611b0d57600080fd5b8101908080519060200190929190505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015611bd457600080fd5b505afa158015611be8573d6000803e3d6000fd5b505050506040513d6020811015611bfe57600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d94d4208876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611cef57600080fd5b505af1158015611d03573d6000803e3d6000fd5b50505050611d1c6001611d1584612306565b018261238b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d49d7867876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611dbc57600080fd5b505af1158015611dd0573d6000803e3d6000fd5b505050505050505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663e824600f6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e2857600080fd5b505af1158015611e3c573d6000803e3d6000fd5b505050506040513d6020811015611e5257600080fd5b81019080805190602001909291905050506007819055506001600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635626da24600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c20afc4600754876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015611f5257600080fd5b505afa158015611f66573d6000803e3d6000fd5b505050506040513d6020811015611f7c57600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fed57600080fd5b505afa158015612001573d6000803e3d6000fd5b505050506040513d602081101561201757600080fd5b8101908080519060200190929190505050141561219757600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c20afc4600754856040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b1580156120ef57600080fd5b505afa158015612103573d6000803e3d6000fd5b505050506040513d602081101561211957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061278b603d913960400191505060405180910390fd5b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c28be57600754846040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561224257600080fd5b505af1158015612256573d6000803e3d6000fd5b505050506040513d602081101561226c57600080fd5b8101908080519060200190929190505050905061228983826116ab565b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60006b033b2e3c9fd0803ce8000000828161231d57fe5b049050919050565b6000828284039150811115612385576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126d06038913960400191505060405180910390fd5b92915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156123f557600080fd5b505afa158015612409573d6000803e3d6000fd5b505050506040513d602081101561241f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461248b57600061248d565b825b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156124f957600080fd5b505afa15801561250d573d6000803e3d6000fd5b505050506040513d602081101561252357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461258f576000612591565b835b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663022c0d9f838330876040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612662578082015181840152602081019050612647565b50505050905090810190601f16801561268f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b505050505050505056fe476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f7375622d6f766572666c6f77476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f61756374696f6e2d616c72656164792d736574746c6564476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f696e76616c69642d756e69737761702d70616972476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f736166652d69732d70726f746563746564476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f6f6e6c792d776574682d7769746864726177616c732d616c6c6f776564476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f70726f6669742d6e6f742d656e6f7567682d746f2d72657061792d7468652d666c61736873776170476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f696e76616c69642d73656e646572476562556e697377617056324d756c7469436f6c6c61746572616c4b6565706572466c61736850726f78792f61756374696f6e2d65787069726564a2646970667358221220b03710ba9c431f7ab22948479ac6c50d579ecb7fa476b280dfa96ea58b150a9564736f6c63430006070033

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

000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000003ab458634910aad20ef5f1c8ee96f1d6ac549190000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000000a5653cca4db1b6e265f47caf6969e64f1cfdc4500000000000000000000000027efc6ffe79692e0521e7e27657cf228240a06c2

-----Decoded View---------------
Arg [0] : wethAddress (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : systemCoinAddress (address): 0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919
Arg [2] : uniswapFactoryAddress (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [3] : coinJoinAddress (address): 0x0A5653CCa4DB1B6E265F47CAf6969e64f1CFdC45
Arg [4] : liquidationEngineAddress (address): 0x27Efc6FFE79692E0521E7e27657cF228240A06c2

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 00000000000000000000000003ab458634910aad20ef5f1c8ee96f1d6ac54919
Arg [2] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [3] : 0000000000000000000000000a5653cca4db1b6e265f47caf6969e64f1cfdc45
Arg [4] : 00000000000000000000000027efc6ffe79692e0521e7e27657cf228240a06c2


Deployed Bytecode Sourcemap

6019:7399:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13324:4;;;;;;;;;;;13302:27;;:10;:27;;;13294:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6019:7399;;12:1:-1;9;2:12;9007:1954:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9007:1954:0;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9007:1954:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;9007:1954:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9007:1954:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9007:1954:0;;;;;;;;;;;;:::i;:::-;;6169:35;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6169:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6211:39;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6211:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6127:35;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6127:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6358:48;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6358:48:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12135:1088;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12135:1088:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12135:1088:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11369:599;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11369:599:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11369:599:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6079:41;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6079:41:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6306:45;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6306:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6257:42;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6257:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6413:45;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6413:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9007:1954;9146:4;9127:24;;:7;:24;;;9119:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9255:11;;;;;;;;;;;9233:34;;:10;:34;;;9225:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9350:14;9366:33;9401:29;9432:14;9448:11;9488:5;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;9463:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9349:216;;;;;;;;;;9578:14;9609:1;9595:11;9599:6;9595:3;:11::i;:::-;:15;9578:32;;9645:4;;;;;;;;;;;:12;;;9666:8;;;;;;;;;;;9677:9;9645:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9645:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9645:42:0;;;;9698:8;;;;;;;;;;;:13;;;9720:4;9727:9;9698:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9698:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9698:39:0;;;;9766:12;:26;;;9793:9;9804:6;9766:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9766:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9766:45:0;;;;9852:14;:19;;;9880:4;9887:10;;;;;;;;;;;:26;;;9914:14;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9914:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9914:31:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9914:31:0;;;;;;;;;;;;;;;;9955:4;9887:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9887:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9887:74:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9887:74:0;;;;;;;;;;;;;;;;9852:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9852:110:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9852:110:0;;;;9998:27;10028:4;;;;;;;;;;;:14;;;10051:11;;;;;;;;;;;10028:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10028:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10028:36:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10028:36:0;;;;;;;;;;;;;;;;9998:66;;10075:24;10102:14;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10102:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10102:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10102:27:0;;;;;;;;;;;;;;;;:37;;;10148:11;;;;;;;;;;;10102:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10102:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10102:59:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10102:59:0;;;;;;;;;;;;;;;;10075:86;;10172:18;10272:1;10245:22;10239:3;:28;10224:9;10202:19;10195:4;:26;:38;10194:74;;;;;;10193:80;10172:101;;10309:14;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10309:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10309:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10309:27:0;;;;;;;;;;;;;;;;:37;;;10355:4;10309:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10309:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10309:52:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10309:52:0;;;;;;;;;;;;;;;;10292:13;:69;;10284:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10461:14;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10461:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10461:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10461:27:0;;;;;;;;;;;;;;;;:36;;;10506:11;;;;;;;;;;;10520:13;10461:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10461:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10461:73:0;;;;10611:4;;;;;;;;;;;10580:35;;:14;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10580:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10580:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10580:27:0;;;;;;;;;;;;;;;;:35;;;10576:323;;;10632:11;10646:4;;;;;;;;;;;:14;;;10669:4;10646:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10646:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10646:29:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10646:29:0;;;;;;;;;;;;;;;;10632:43;;10690:4;;;;;;;;;;;:13;;;10704:6;10690:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10690:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10690:21:0;;;;10726:6;:11;;10745:6;10726:30;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;10726:30:0;;10576:323;;;;10789:14;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10789:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10789:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10789:27:0;;;;;;;;;;;;;;;;:36;;;10826:6;10834:14;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10834:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10834:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10834:27:0;;;;;;;;;;;;;;;;:37;;;10880:4;10834:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10834:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10834:52:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10834:52:0;;;;;;;;;;;;;;;;10789:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10789:98:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10789:98:0;;;;10576:323;10948:3;10911:11;;:42;;;;;;;;;;;;;;;;;;9007:1954;;;;;;;;;;;;;;:::o;6169:35::-;;;;;;;;;;;;;:::o;6211:39::-;;;;;;;;;;;;;:::o;6127:35::-;;;;;;;;;;;;;:::o;6358:48::-;;;;;;;;;;;;;:::o;12135:1088::-;12228:29;12263:17;;;;;;;;;;;:33;;;12297:14;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12297:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12297:31:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12297:31:0;;;;;;;;;;;;;;;;12263:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12263:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12263:66:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12263:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12227:102;;;;12341:17;12362:18;12382:22;12410:12;:17;;;12428:9;12410:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12410:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12410:28:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;12410:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12340:98;;;;;;;;;;12475:3;12457:15;:21;;;12449:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12553:11;12567:37;12576:13;12591:12;12567:8;:37::i;:::-;12553:51;;12632:1;12623:6;:10;12615:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12718:25;12771:10;12804:14;12842:12;12870:9;12894:6;12746:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12746:155:0;;;12718:183;;12952:14;;;;;;;;;;;:22;;;12983:14;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12983:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12983:27:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12983:27:0;;;;;;;;;;;;;;;;13021:4;;;;;;;;;;;12952:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12952:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12952:75:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12952:75:0;;;;;;;;;;;;;;;;12923:11;;:105;;;;;;;;;;;;;;;;;;13041:10;;;;;;;;;;;:34;;;13084:12;13041:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13041:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13041:57:0;;;;13109:41;13134:1;13120:11;13124:6;13120:3;:11::i;:::-;:15;13137:12;13109:10;:41::i;:::-;13161:10;;;;;;;;;;;:31;;;13201:12;13161:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13161:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13161:54:0;;;;12135:1088;;;;;;;;:::o;11369:599::-;11466:12;11508:14;:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11508:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11508:31:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11508:31:0;;;;;;;;;;;;;;;;11491:14;:48;;;;11647:1;11554:17;;;;;;;;;;;:30;;;11585:17;;;;;;;;;;;:35;;;11621:14;;11637:4;11585:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11585:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11585:57:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11585:57:0;;;;;;;;;;;;;;;;11554:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11554:89:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11554:89:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11554:89:0;;;;;;;;;;;;;;;;:94;11550:286;;;11743:1;11674:71;;:17;;;;;;;;;;;:35;;;11710:14;;11726:4;11674:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11674:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11674:57:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11674:57:0;;;;;;;;;;;;;;;;:71;;;11665:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11550:286;11858:17;;;;;;;;;;;:31;;;11890:14;;11906:4;11858:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11858:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11858:53:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11858:53:0;;;;;;;;;;;;;;;;11848:63;;11922:38;11936:14;11952:7;11922:13;:38::i;:::-;11369:599;;;;:::o;6079:41::-;;;;;;;;;;;;;:::o;6306:45::-;;;;;;;;;;;;;:::o;6257:42::-;;;;;;;;;;;;;:::o;6413:45::-;;;;:::o;8180:92::-;8226:4;8256:8;8250:3;:14;;;;;;8243:21;;8180:92;;;:::o;8005:169::-;8062:6;8104:1;8098;8094;:5;8090:9;;;8089:16;;8081:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8005:169;;;;:::o;8424:301::-;8496:15;8531:11;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8531:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8531:20:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8531:20:0;;;;;;;;;;;;;;;;8514:37;;8522:4;;;;;;;;;;;8514:37;;;:50;;8563:1;8514:50;;;8554:6;8514:50;8496:68;;8575:15;8610:11;;;;;;;;;;;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8610:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8610:20:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8610:20:0;;;;;;;;;;;;;;;;8593:37;;8601:4;;;;;;;;;;;8593:37;;;:50;;8642:1;8593:50;;;8633:6;8593:50;8575:68;;8656:11;;;;;;;;;;;:16;;;8673:10;8685;8705:4;8712;8656:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8656:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8656:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8656:61:0;;;;8424:301;;;;:::o

Swarm Source

ipfs://b03710ba9c431f7ab22948479ac6c50d579ecb7fa476b280dfa96ea58b150a95

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.