Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 4 from a total of 4 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CompoundAllocationStrategyV2
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-08-19 */ // File: @openzeppelin/contracts/token/ERC20/IERC20.sol pragma solidity ^0.5.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: compound/contracts/CErc20Interface.sol pragma solidity >=0.4.21 <0.6.0; // converted from ethereum/contracts/compound/abi/CErc20.json interface CErc20Interface { function name() external view returns ( string memory ); function approve( address spender, uint256 amount ) external returns ( bool ); function repayBorrow( uint256 repayAmount ) external returns ( uint256 ); function reserveFactorMantissa() external view returns ( uint256 ); function borrowBalanceCurrent( address account ) external returns ( uint256 ); function totalSupply() external view returns ( uint256 ); function exchangeRateStored() external view returns ( uint256 ); function transferFrom( address src, address dst, uint256 amount ) external returns ( bool ); function repayBorrowBehalf( address borrower, uint256 repayAmount ) external returns ( uint256 ); function pendingAdmin() external view returns ( address ); function decimals() external view returns ( uint256 ); function balanceOfUnderlying( address owner ) external returns ( uint256 ); function getCash() external view returns ( uint256 ); function _setComptroller( address newComptroller ) external returns ( uint256 ); function totalBorrows() external view returns ( uint256 ); function comptroller() external view returns ( address ); function _reduceReserves( uint256 reduceAmount ) external returns ( uint256 ); function initialExchangeRateMantissa() external view returns ( uint256 ); function accrualBlockNumber() external view returns ( uint256 ); function underlying() external view returns ( address ); function balanceOf( address owner ) external view returns ( uint256 ); function totalBorrowsCurrent() external returns ( uint256 ); function redeemUnderlying( uint256 redeemAmount ) external returns ( uint256 ); function totalReserves() external view returns ( uint256 ); function symbol() external view returns ( string memory ); function borrowBalanceStored( address account ) external view returns ( uint256 ); function mint( uint256 mintAmount ) external returns ( uint256 ); function accrueInterest() external returns ( uint256 ); function transfer( address dst, uint256 amount ) external returns ( bool ); function borrowIndex() external view returns ( uint256 ); function supplyRatePerBlock() external view returns ( uint256 ); function seize( address liquidator, address borrower, uint256 seizeTokens ) external returns ( uint256 ); function _setPendingAdmin( address newPendingAdmin ) external returns ( uint256 ); function exchangeRateCurrent() external returns ( uint256 ); function getAccountSnapshot( address account ) external view returns ( uint256, uint256, uint256, uint256 ); function borrow( uint256 borrowAmount ) external returns ( uint256 ); function redeem( uint256 redeemTokens ) external returns ( uint256 ); function allowance( address owner, address spender ) external view returns ( uint256 ); function _acceptAdmin() external returns ( uint256 ); function _setInterestRateModel( address newInterestRateModel ) external returns ( uint256 ); function interestRateModel() external view returns ( address ); function liquidateBorrow( address borrower, uint256 repayAmount, address cTokenCollateral ) external returns ( uint256 ); function admin() external view returns ( address ); function borrowRatePerBlock() external view returns ( uint256 ); function _setReserveFactor( uint256 newReserveFactorMantissa ) external returns ( uint256 ); function isCToken() external view returns ( bool ); /* constructor( address underlying_, address comptroller_, address interestRateModel_, uint256 initialExchangeRateMantissa_, string calldata name_, string calldata symbol_, uint256 decimals_ ); */ event AccrueInterest( uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows ); event Mint( address minter, uint256 mintAmount, uint256 mintTokens ); event Redeem( address redeemer, uint256 redeemAmount, uint256 redeemTokens ); event Borrow( address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows ); event RepayBorrow( address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows ); event LiquidateBorrow( address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens ); event NewPendingAdmin( address oldPendingAdmin, address newPendingAdmin ); event NewAdmin( address oldAdmin, address newAdmin ); event NewComptroller( address oldComptroller, address newComptroller ); event NewMarketInterestRateModel( address oldInterestRateModel, address newInterestRateModel ); event NewReserveFactor( uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa ); event ReservesReduced( address admin, uint256 reduceAmount, uint256 newTotalReserves ); event Failure( uint256 error, uint256 info, uint256 detail ); event Transfer( address from, address to, uint256 amount ); event Approval( address owner, address spender, uint256 amount ); } // File: contracts/IAllocationStrategy.sol pragma solidity ^0.5.8; /** * @notice Allocation strategy for assets. * - It invests the underlying assets into some yield generating contracts, * usually lending contracts, in return it gets new assets aka. saving assets. * - Savings assets can be redeemed back to the underlying assets plus interest any time. */ interface IAllocationStrategy { /** * @notice Underlying asset for the strategy * @return address Underlying asset address */ function underlying() external view returns (address); /** * @notice Supply and Borrow percentage yield * @return percentage yield in uint256 */ function supplyAndBorrowApy() external view returns (uint256, uint256); /** * @notice Calculates the exchange rate from underlying to saving assets * @return uint256 Calculated exchange rate scaled by 1e18 * * NOTE: * * underlying = savingAssets × exchangeRate */ function exchangeRateStored() external view returns (uint256); /** * @notice Applies accrued interest to all savings * @dev This should calculates interest accrued from the last checkpointed * block up to the current block and writes new checkpoint to storage. * @return bool success(true) or failure(false) */ function accrueInterest() external returns (bool); /** * @notice Sender supplies underlying assets into the market and receives saving assets in exchange * @dev Interst shall be accrued * @param investAmount The amount of the underlying asset to supply * @return uint256 Amount of saving assets created */ function investUnderlying(uint256 investAmount) external returns (uint256); /** * @notice Sender redeems saving assets in exchange for a specified amount of underlying asset * @dev Interst shall be accrued * @param redeemAmount The amount of underlying to redeem * @return uint256 Amount of saving assets burned */ function redeemUnderlying(uint256 redeemAmount) external returns (uint256); /** * @notice Owner redeems all saving assets * @dev Interst shall be accrued * @return uint256 savingsAmount Amount of savings redeemed * @return uint256 underlyingAmount Amount of underlying redeemed */ function redeemAll() external returns (uint256 savingsAmount, uint256 underlyingAmount); } // File: @openzeppelin/contracts/GSN/Context.sol pragma solidity ^0.5.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: @openzeppelin/contracts/ownership/Ownable.sol pragma solidity ^0.5.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: contracts/CompoundAllocationStrategy.sol pragma solidity >=0.5.10 <0.6.0; contract CompoundAllocationStrategy is IAllocationStrategy, Ownable { CErc20Interface private cToken; IERC20 private token; constructor(CErc20Interface cToken_) public { cToken = cToken_; token = IERC20(cToken.underlying()); } /// @dev ISavingStrategy.underlying implementation function underlying() external view returns (address) { return cToken.underlying(); } /// @dev ISavingStrategy.exchangeRateStored implementation function exchangeRateStored() external view returns (uint256) { return cToken.exchangeRateStored(); } /// @dev ISavingStrategy.accrueInterest implementation function accrueInterest() external returns (bool) { return cToken.accrueInterest() == 0; } /// @dev ISavingStrategy.supplyAndBorrowApy implementation function supplyAndBorrowApy() external view returns (uint256, uint256) { uint256 supplyRatePerBlock = cToken.supplyRatePerBlock(); uint256 borrowRatePerBlock = cToken.borrowRatePerBlock(); return (supplyRatePerBlock, borrowRatePerBlock); } /// @dev ISavingStrategy.investUnderlying implementation function investUnderlying(uint256 investAmount) external onlyOwner returns (uint256) { token.transferFrom(msg.sender, address(this), investAmount); token.approve(address(cToken), investAmount); uint256 cTotalBefore = cToken.totalSupply(); // TODO should we handle mint failure? require(cToken.mint(investAmount) == 0, "mint failed"); uint256 cTotalAfter = cToken.totalSupply(); uint256 cCreatedAmount; require (cTotalAfter >= cTotalBefore, "Compound minted negative amount!?"); cCreatedAmount = cTotalAfter - cTotalBefore; return cCreatedAmount; } /// @dev ISavingStrategy.redeemUnderlying implementation function redeemUnderlying(uint256 redeemAmount) external onlyOwner returns (uint256) { uint256 cTotalBefore = cToken.totalSupply(); // TODO should we handle redeem failure? require(cToken.redeemUnderlying(redeemAmount) == 0, "cToken.redeemUnderlying failed"); uint256 cTotalAfter = cToken.totalSupply(); uint256 cBurnedAmount; require(cTotalAfter <= cTotalBefore, "Compound redeemed negative amount!?"); cBurnedAmount = cTotalBefore - cTotalAfter; token.transfer(msg.sender, redeemAmount); return cBurnedAmount; } /// @dev ISavingStrategy.redeemAll implementation function redeemAll() external onlyOwner returns (uint256 savingsAmount, uint256 underlyingAmount) { savingsAmount = cToken.balanceOf(address(this)); require(cToken.redeem(savingsAmount) == 0, "cToken.redeem failed"); underlyingAmount = token.balanceOf(address(this)); token.transfer(msg.sender, underlyingAmount); } } // File: contracts/CompoundAllocationStrategyV2.sol pragma solidity >=0.5.10 <0.6.0; /** * @notice CompoundAllocationStrategyV2 collects governance tokens from * Compound protocol and transfers them to a single address - compReceiver */ contract CompoundAllocationStrategyV2 is CompoundAllocationStrategy { event CompReceiverChanged(address indexed oldReceiver, address indexed newReceiver); // This variable is repeated because CompoundAllocationStrategy has private cToken CErc20Interface public cTokenContract; address public compReceiver; constructor(CErc20Interface cToken_, address compReceiver_) CompoundAllocationStrategy(cToken_) public { cTokenContract = cToken_; compReceiver = compReceiver_; emit CompReceiverChanged(address(0), compReceiver); } modifier auth() { require(msg.sender == compReceiver, "Caller is not the Comp Receiver"); _; } function transferCompReceiverRights(address newReceiver) external auth { emit CompReceiverChanged(compReceiver, newReceiver); compReceiver = newReceiver; } function claimComp() public { address comptroller = getComptrollerAddress(); IComptroller(comptroller).claimComp(address(this)); } function claimAndTransferComp() public { IComptroller comptroller = IComptroller(getComptrollerAddress()); comptroller.claimComp(address(this)); IERC20 compToken = IERC20(comptroller.getCompAddress()); uint totalCompBalance = compToken.balanceOf(address(this)); require(compToken.transfer(compReceiver, totalCompBalance), "token transfer failed"); } function claimAndTransferComp(uint amount_) public { IComptroller comptroller = IComptroller(getComptrollerAddress()); comptroller.claimComp(address(this)); IERC20 compToken = IERC20(comptroller.getCompAddress()); require(compToken.transfer(compReceiver, amount_), "token transfer failed"); } function getComptrollerAddress() public view returns(address) { return cTokenContract.comptroller(); } } contract IComptroller { function claimComp(address holder) public {} function getCompAddress() public view returns (address) {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract CErc20Interface","name":"cToken_","type":"address"},{"internalType":"address","name":"compReceiver_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"newReceiver","type":"address"}],"name":"CompReceiverChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":false,"inputs":[],"name":"accrueInterest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cTokenContract","outputs":[{"internalType":"contract CErc20Interface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimAndTransferComp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"claimAndTransferComp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimComp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"compReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exchangeRateStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getComptrollerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"investAmount","type":"uint256"}],"name":"investUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"redeemAll","outputs":[{"internalType":"uint256","name":"savingsAmount","type":"uint256"},{"internalType":"uint256","name":"underlyingAmount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"redeemAmount","type":"uint256"}],"name":"redeemUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"supplyAndBorrowApy","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"transferCompReceiverRights","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516116543803806116548339818101604052604081101561003357600080fd5b5080516020909101518161004e6001600160e01b036101a716565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b038381169190911791829055604080517f6f307dc300000000000000000000000000000000000000000000000000000000815290519290911691636f307dc391600480820192602092909190829003018186803b15801561010b57600080fd5b505afa15801561011f573d6000803e3d6000fd5b505050506040513d602081101561013557600080fd5b5051600280546001600160a01b03199081166001600160a01b0393841617909155600380548216868416179055600480549091168483161790819055604051911691506000907f865381678a35f68c5890abfad64fce82c444875ed0642a7be1f05ec1d8f1cb75908290a350506101ab565b3390565b61149a806101ba6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063a6afed9511610071578063a6afed9514610213578063c17693c01461021b578063c91f08cb14610238578063ebc9143e14610240578063f2fde38b1461025d57610116565b80638da5cb5b146101df5780638f32d59b146101e75780639c52da7a14610203578063a131d8871461020b57610116565b80634ee9159a116100e95780634ee9159a146101865780636f307dc3146101aa57806370f51d03146101b2578063715018a6146101ba578063852a12e3146101c257610116565b8063182df0f51461011b5780631bd85bdb146101355780632f4350c21461013f578063374e045414610160575b600080fd5b610123610283565b60408051918252519081900360200190f35b61013d6102f9565b005b610147610369565b6040805192835260208301919091528051918290030190f35b61013d6004803603602081101561017657600080fd5b50356001600160a01b03166105f0565b61018e6106ab565b604080516001600160a01b039092168252519081900360200190f35b61018e6106f0565b61018e610735565b61013d610744565b610123600480360360208110156101d857600080fd5b50356107d5565b61018e610a9d565b6101ef610aac565b604080519115158252519081900360200190f35b610147610ad0565b61013d610bd1565b6101ef610df1565b6101236004803603602081101561023157600080fd5b5035610e69565b61018e6111a7565b61013d6004803603602081101561025657600080fd5b50356111b6565b61013d6004803603602081101561027357600080fd5b50356001600160a01b03166112e4565b6001546040805163182df0f560e01b815290516000926001600160a01b03169163182df0f5916004808301926020929190829003018186803b1580156102c857600080fd5b505afa1580156102dc573d6000803e3d6000fd5b505050506040513d60208110156102f257600080fd5b5051905090565b60006103036106ab565b604080516374d7814960e11b815230600482015290519192506001600160a01b0383169163e9af02929160248082019260009290919082900301818387803b15801561034e57600080fd5b505af1158015610362573d6000803e3d6000fd5b5050505050565b600080610374610aac565b6103b3576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600154604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156103fe57600080fd5b505afa158015610412573d6000803e3d6000fd5b505050506040513d602081101561042857600080fd5b50516001546040805163db006a7560e01b81526004810184905290519294506001600160a01b039091169163db006a75916024808201926020929091908290030181600087803b15801561047b57600080fd5b505af115801561048f573d6000803e3d6000fd5b505050506040513d60208110156104a557600080fd5b5051156104f0576040805162461bcd60e51b815260206004820152601460248201527318d51bdad95b8b9c995919595b4819985a5b195960621b604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561053b57600080fd5b505afa15801561054f573d6000803e3d6000fd5b505050506040513d602081101561056557600080fd5b50516002546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b505050506040513d60208110156105e857600080fd5b509192909150565b6004546001600160a01b0316331461064f576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f742074686520436f6d7020526563656976657200604482015290519081900360640190fd5b6004546040516001600160a01b038084169216907f865381678a35f68c5890abfad64fce82c444875ed0642a7be1f05ec1d8f1cb7590600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b60035460408051635fe3b56760e01b815290516000926001600160a01b031691635fe3b567916004808301926020929190829003018186803b1580156102c857600080fd5b60015460408051636f307dc360e01b815290516000926001600160a01b031691636f307dc3916004808301926020929190829003018186803b1580156102c857600080fd5b6003546001600160a01b031681565b61074c610aac565b61078b576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006107df610aac565b61081e576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561086357600080fd5b505afa158015610877573d6000803e3d6000fd5b505050506040513d602081101561088d57600080fd5b50516001546040805163852a12e360e01b81526004810187905290519293506001600160a01b039091169163852a12e3916024808201926020929091908290030181600087803b1580156108e057600080fd5b505af11580156108f4573d6000803e3d6000fd5b505050506040513d602081101561090a57600080fd5b50511561095e576040805162461bcd60e51b815260206004820152601e60248201527f63546f6b656e2e72656465656d556e6465726c79696e67206661696c65640000604482015290519081900360640190fd5b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156109a357600080fd5b505afa1580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b50519050600082821115610a125760405162461bcd60e51b81526004018080602001828103825260238152602001806114436023913960400191505060405180910390fd5b506002546040805163a9059cbb60e01b8152336004820152602481018790529051838503926001600160a01b03169163a9059cbb9160448083019260209291908290030181600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b505050506040513d6020811015610a9257600080fd5b509095945050505050565b6000546001600160a01b031690565b600080546001600160a01b0316610ac1611337565b6001600160a01b031614905090565b6000806000600160009054906101000a90046001600160a01b03166001600160a01b031663ae9d70b06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2357600080fd5b505afa158015610b37573d6000803e3d6000fd5b505050506040513d6020811015610b4d57600080fd5b505160015460408051631f1f3b4560e31b815290519293506000926001600160a01b039092169163f8f9da2891600480820192602092909190829003018186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b5051919350909150509091565b6000610bdb6106ab565b604080516374d7814960e11b815230600482015290519192506001600160a01b0383169163e9af02929160248082019260009290919082900301818387803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b505050506000816001600160a01b0316639d1b5a0a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7957600080fd5b505afa158015610c8d573d6000803e3d6000fd5b505050506040513d6020811015610ca357600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b505050506040513d6020811015610d1b57600080fd5b5051600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018490525192935084169163a9059cbb916044808201926020929091908290030181600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b505050506040513d6020811015610da157600080fd5b5051610dec576040805162461bcd60e51b81526020600482015260156024820152741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604482015290519081900360640190fd5b505050565b6001546040805163a6afed9560e01b815290516000926001600160a01b03169163a6afed9591600480830192602092919082900301818787803b158015610e3757600080fd5b505af1158015610e4b573d6000803e3d6000fd5b505050506040513d6020811015610e6157600080fd5b505115905090565b6000610e73610aac565b610eb2576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b505050506040513d6020811015610f3657600080fd5b50506002546001546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018690529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610f9157600080fd5b505af1158015610fa5573d6000803e3d6000fd5b505050506040513d6020811015610fbb57600080fd5b5050600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d602081101561102c57600080fd5b50516001546040805163140e25ad60e31b81526004810187905290519293506001600160a01b039091169163a0712d68916024808201926020929091908290030181600087803b15801561107f57600080fd5b505af1158015611093573d6000803e3d6000fd5b505050506040513d60208110156110a957600080fd5b5051156110eb576040805162461bcd60e51b815260206004820152600b60248201526a1b5a5b9d0819985a5b195960aa1b604482015290519081900360640190fd5b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561113057600080fd5b505afa158015611144573d6000803e3d6000fd5b505050506040513d602081101561115a57600080fd5b5051905060008282101561119f5760405162461bcd60e51b81526004018080602001828103825260218152602001806114026021913960400191505060405180910390fd5b500392915050565b6004546001600160a01b031681565b60006111c06106ab565b604080516374d7814960e11b815230600482015290519192506001600160a01b0383169163e9af02929160248082019260009290919082900301818387803b15801561120b57600080fd5b505af115801561121f573d6000803e3d6000fd5b505050506000816001600160a01b0316639d1b5a0a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561125e57600080fd5b505afa158015611272573d6000803e3d6000fd5b505050506040513d602081101561128857600080fd5b5051600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018790525192935083169163a9059cbb916044808201926020929091908290030181600087803b158015610d7757600080fd5b6112ec610aac565b61132b576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b6113348161133b565b50565b3390565b6001600160a01b0381166113805760405162461bcd60e51b81526004018080602001828103825260268152602001806113dc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f6d706f756e64206d696e746564206e6567617469766520616d6f756e74213f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6d706f756e642072656465656d6564206e6567617469766520616d6f756e74213fa265627a7a72315820f0357abafc17e1bea25a9dafeebfd0e9857dcb79e1f5cdb35eada4afda81703864736f6c634300050c0032000000000000000000000000e5c6c14f466a4f3a73ecec7f3aaaa15c5ecbc769000000000000000000000000a13b3e79f2ed49bc05af2274dc509d73a75cafe2
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063a6afed9511610071578063a6afed9514610213578063c17693c01461021b578063c91f08cb14610238578063ebc9143e14610240578063f2fde38b1461025d57610116565b80638da5cb5b146101df5780638f32d59b146101e75780639c52da7a14610203578063a131d8871461020b57610116565b80634ee9159a116100e95780634ee9159a146101865780636f307dc3146101aa57806370f51d03146101b2578063715018a6146101ba578063852a12e3146101c257610116565b8063182df0f51461011b5780631bd85bdb146101355780632f4350c21461013f578063374e045414610160575b600080fd5b610123610283565b60408051918252519081900360200190f35b61013d6102f9565b005b610147610369565b6040805192835260208301919091528051918290030190f35b61013d6004803603602081101561017657600080fd5b50356001600160a01b03166105f0565b61018e6106ab565b604080516001600160a01b039092168252519081900360200190f35b61018e6106f0565b61018e610735565b61013d610744565b610123600480360360208110156101d857600080fd5b50356107d5565b61018e610a9d565b6101ef610aac565b604080519115158252519081900360200190f35b610147610ad0565b61013d610bd1565b6101ef610df1565b6101236004803603602081101561023157600080fd5b5035610e69565b61018e6111a7565b61013d6004803603602081101561025657600080fd5b50356111b6565b61013d6004803603602081101561027357600080fd5b50356001600160a01b03166112e4565b6001546040805163182df0f560e01b815290516000926001600160a01b03169163182df0f5916004808301926020929190829003018186803b1580156102c857600080fd5b505afa1580156102dc573d6000803e3d6000fd5b505050506040513d60208110156102f257600080fd5b5051905090565b60006103036106ab565b604080516374d7814960e11b815230600482015290519192506001600160a01b0383169163e9af02929160248082019260009290919082900301818387803b15801561034e57600080fd5b505af1158015610362573d6000803e3d6000fd5b5050505050565b600080610374610aac565b6103b3576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600154604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156103fe57600080fd5b505afa158015610412573d6000803e3d6000fd5b505050506040513d602081101561042857600080fd5b50516001546040805163db006a7560e01b81526004810184905290519294506001600160a01b039091169163db006a75916024808201926020929091908290030181600087803b15801561047b57600080fd5b505af115801561048f573d6000803e3d6000fd5b505050506040513d60208110156104a557600080fd5b5051156104f0576040805162461bcd60e51b815260206004820152601460248201527318d51bdad95b8b9c995919595b4819985a5b195960621b604482015290519081900360640190fd5b600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561053b57600080fd5b505afa15801561054f573d6000803e3d6000fd5b505050506040513d602081101561056557600080fd5b50516002546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b505050506040513d60208110156105e857600080fd5b509192909150565b6004546001600160a01b0316331461064f576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f742074686520436f6d7020526563656976657200604482015290519081900360640190fd5b6004546040516001600160a01b038084169216907f865381678a35f68c5890abfad64fce82c444875ed0642a7be1f05ec1d8f1cb7590600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b60035460408051635fe3b56760e01b815290516000926001600160a01b031691635fe3b567916004808301926020929190829003018186803b1580156102c857600080fd5b60015460408051636f307dc360e01b815290516000926001600160a01b031691636f307dc3916004808301926020929190829003018186803b1580156102c857600080fd5b6003546001600160a01b031681565b61074c610aac565b61078b576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006107df610aac565b61081e576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561086357600080fd5b505afa158015610877573d6000803e3d6000fd5b505050506040513d602081101561088d57600080fd5b50516001546040805163852a12e360e01b81526004810187905290519293506001600160a01b039091169163852a12e3916024808201926020929091908290030181600087803b1580156108e057600080fd5b505af11580156108f4573d6000803e3d6000fd5b505050506040513d602081101561090a57600080fd5b50511561095e576040805162461bcd60e51b815260206004820152601e60248201527f63546f6b656e2e72656465656d556e6465726c79696e67206661696c65640000604482015290519081900360640190fd5b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156109a357600080fd5b505afa1580156109b7573d6000803e3d6000fd5b505050506040513d60208110156109cd57600080fd5b50519050600082821115610a125760405162461bcd60e51b81526004018080602001828103825260238152602001806114436023913960400191505060405180910390fd5b506002546040805163a9059cbb60e01b8152336004820152602481018790529051838503926001600160a01b03169163a9059cbb9160448083019260209291908290030181600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b505050506040513d6020811015610a9257600080fd5b509095945050505050565b6000546001600160a01b031690565b600080546001600160a01b0316610ac1611337565b6001600160a01b031614905090565b6000806000600160009054906101000a90046001600160a01b03166001600160a01b031663ae9d70b06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2357600080fd5b505afa158015610b37573d6000803e3d6000fd5b505050506040513d6020811015610b4d57600080fd5b505160015460408051631f1f3b4560e31b815290519293506000926001600160a01b039092169163f8f9da2891600480820192602092909190829003018186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b5051919350909150509091565b6000610bdb6106ab565b604080516374d7814960e11b815230600482015290519192506001600160a01b0383169163e9af02929160248082019260009290919082900301818387803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b505050506000816001600160a01b0316639d1b5a0a6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7957600080fd5b505afa158015610c8d573d6000803e3d6000fd5b505050506040513d6020811015610ca357600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b505050506040513d6020811015610d1b57600080fd5b5051600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018490525192935084169163a9059cbb916044808201926020929091908290030181600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b505050506040513d6020811015610da157600080fd5b5051610dec576040805162461bcd60e51b81526020600482015260156024820152741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604482015290519081900360640190fd5b505050565b6001546040805163a6afed9560e01b815290516000926001600160a01b03169163a6afed9591600480830192602092919082900301818787803b158015610e3757600080fd5b505af1158015610e4b573d6000803e3d6000fd5b505050506040513d6020811015610e6157600080fd5b505115905090565b6000610e73610aac565b610eb2576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b600254604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610f0c57600080fd5b505af1158015610f20573d6000803e3d6000fd5b505050506040513d6020811015610f3657600080fd5b50506002546001546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018690529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610f9157600080fd5b505af1158015610fa5573d6000803e3d6000fd5b505050506040513d6020811015610fbb57600080fd5b5050600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d602081101561102c57600080fd5b50516001546040805163140e25ad60e31b81526004810187905290519293506001600160a01b039091169163a0712d68916024808201926020929091908290030181600087803b15801561107f57600080fd5b505af1158015611093573d6000803e3d6000fd5b505050506040513d60208110156110a957600080fd5b5051156110eb576040805162461bcd60e51b815260206004820152600b60248201526a1b5a5b9d0819985a5b195960aa1b604482015290519081900360640190fd5b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561113057600080fd5b505afa158015611144573d6000803e3d6000fd5b505050506040513d602081101561115a57600080fd5b5051905060008282101561119f5760405162461bcd60e51b81526004018080602001828103825260218152602001806114026021913960400191505060405180910390fd5b500392915050565b6004546001600160a01b031681565b60006111c06106ab565b604080516374d7814960e11b815230600482015290519192506001600160a01b0383169163e9af02929160248082019260009290919082900301818387803b15801561120b57600080fd5b505af115801561121f573d6000803e3d6000fd5b505050506000816001600160a01b0316639d1b5a0a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561125e57600080fd5b505afa158015611272573d6000803e3d6000fd5b505050506040513d602081101561128857600080fd5b5051600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018790525192935083169163a9059cbb916044808201926020929091908290030181600087803b158015610d7757600080fd5b6112ec610aac565b61132b576040805162461bcd60e51b81526020600482018190526024820152600080516020611423833981519152604482015290519081900360640190fd5b6113348161133b565b50565b3390565b6001600160a01b0381166113805760405162461bcd60e51b81526004018080602001828103825260268152602001806113dc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373436f6d706f756e64206d696e746564206e6567617469766520616d6f756e74213f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6d706f756e642072656465656d6564206e6567617469766520616d6f756e74213fa265627a7a72315820f0357abafc17e1bea25a9dafeebfd0e9857dcb79e1f5cdb35eada4afda81703864736f6c634300050c0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e5c6c14f466a4f3a73ecec7f3aaaa15c5ecbc769000000000000000000000000a13b3e79f2ed49bc05af2274dc509d73a75cafe2
-----Decoded View---------------
Arg [0] : cToken_ (address): 0xE5C6c14F466A4F3A73eCEc7F3aAaA15c5EcBc769
Arg [1] : compReceiver_ (address): 0xa13b3E79f2ed49BC05Af2274dC509D73a75cAFE2
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e5c6c14f466a4f3a73ecec7f3aaaa15c5ecbc769
Arg [1] : 000000000000000000000000a13b3e79f2ed49bc05af2274dc509d73a75cafe2
Deployed Bytecode Sourcemap
19407:1959:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19407:1959:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16703:115;;;:::i;:::-;;;;;;;;;;;;;;;;20326:153;;;:::i;:::-;;18777:365;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20138:180;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20138:180:0;-1:-1:-1;;;;;20138:180:0;;:::i;21245:116::-;;;:::i;:::-;;;;-1:-1:-1;;;;;21245:116:0;;;;;;;;;;;;;;16532:99;;;:::i;19664:37::-;;;:::i;15357:140::-;;;:::i;18115:599::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18115:599:0;;:::i;14546:79::-;;;:::i;14912:94::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;17062:271;;;:::i;20487:405::-;;;:::i;16886:104::-;;;:::i;17403:642::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17403:642:0;;:::i;19710:27::-;;;:::i;20900:337::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20900:337:0;;:::i;15652:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15652:109:0;-1:-1:-1;;;;;15652:109:0;;:::i;16703:115::-;16783:6;;:27;;;-1:-1:-1;;;16783:27:0;;;;16756:7;;-1:-1:-1;;;;;16783:6:0;;:25;;:27;;;;;;;;;;;;;;:6;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;16783:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16783:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16783:27:0;;-1:-1:-1;16703:115:0;:::o;20326:153::-;20365:19;20387:23;:21;:23::i;:::-;20421:50;;;-1:-1:-1;;;20421:50:0;;20465:4;20421:50;;;;;;20365:45;;-1:-1:-1;;;;;;20421:35:0;;;;;:50;;;;;-1:-1:-1;;20421:50:0;;;;;;;;-1:-1:-1;20421:35:0;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;20421:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20421:50:0;;;;20326:153;:::o;18777:365::-;18835:21;18858:24;14758:9;:7;:9::i;:::-;14750:54;;;;;-1:-1:-1;;;14750:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;14750:54:0;;;;;;;;;;;;;;;18911:6;;:31;;;-1:-1:-1;;;18911:31:0;;18936:4;18911:31;;;;;;-1:-1:-1;;;;;18911:6:0;;;;:16;;:31;;;;;;;;;;;;;;;:6;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;18911:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18911:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18911:31:0;18961:6;;:28;;;-1:-1:-1;;;18961:28:0;;;;;;;;;;18911:31;;-1:-1:-1;;;;;;18961:6:0;;;;:13;;:28;;;;;18911:31;;18961:28;;;;;;;;:6;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;18961:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18961:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18961:28:0;:33;18953:66;;;;;-1:-1:-1;;;18953:66:0;;;;;;;;;;;;-1:-1:-1;;;18953:66:0;;;;;;;;;;;;;;;19049:5;;:30;;;-1:-1:-1;;;19049:30:0;;19073:4;19049:30;;;;;;-1:-1:-1;;;;;19049:5:0;;;;:15;;:30;;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;19049:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19049:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19049:30:0;19090:5;;:44;;;-1:-1:-1;;;19090:44:0;;19105:10;19090:44;;;;;;;;;;;;19049:30;;-1:-1:-1;;;;;;19090:5:0;;;;:14;;:44;;;;;19049:30;;19090:44;;;;;;;;:5;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;19090:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19090:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18777:365:0;;;;-1:-1:-1;18777:365:0:o;20138:180::-;20062:12;;-1:-1:-1;;;;;20062:12:0;20048:10;:26;20040:70;;;;;-1:-1:-1;;;20040:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20247:12;;20227:46;;-1:-1:-1;;;;;20227:46:0;;;;20247:12;;20227:46;;20247:12;;20227:46;20284:12;:26;;-1:-1:-1;;;;;;20284:26:0;-1:-1:-1;;;;;20284:26:0;;;;;;;;;;20138:180::o;21245:116::-;21325:14;;:28;;;-1:-1:-1;;;21325:28:0;;;;21298:7;;-1:-1:-1;;;;;21325:14:0;;:26;;:28;;;;;;;;;;;;;;:14;:28;;;5:2:-1;;;;30:1;27;20:12;16532:99:0;16604:6;;:19;;;-1:-1:-1;;;16604:19:0;;;;16577:7;;-1:-1:-1;;;;;16604:6:0;;:17;;:19;;;;;;;;;;;;;;:6;:19;;;5:2:-1;;;;30:1;27;20:12;19664:37:0;;;-1:-1:-1;;;;;19664:37:0;;:::o;15357:140::-;14758:9;:7;:9::i;:::-;14750:54;;;;;-1:-1:-1;;;14750:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;14750:54:0;;;;;;;;;;;;;;;15456:1;15440:6;;15419:40;;-1:-1:-1;;;;;15440:6:0;;;;15419:40;;15456:1;;15419:40;15487:1;15470:19;;-1:-1:-1;;;;;;15470:19:0;;;15357:140::o;18115:599::-;18191:7;14758:9;:7;:9::i;:::-;14750:54;;;;;-1:-1:-1;;;14750:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;14750:54:0;;;;;;;;;;;;;;;18234:6;;:20;;;-1:-1:-1;;;18234:20:0;;;;18211;;-1:-1:-1;;;;;18234:6:0;;:18;;:20;;;;;;;;;;;;;;:6;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;18234:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18234:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18234:20:0;18323:6;;:37;;;-1:-1:-1;;;18323:37:0;;;;;;;;;;18234:20;;-1:-1:-1;;;;;;18323:6:0;;;;:23;;:37;;;;;18234:20;;18323:37;;;;;;;;:6;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;18323:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18323:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18323:37:0;:42;18315:85;;;;;-1:-1:-1;;;18315:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18433:6;;:20;;;-1:-1:-1;;;18433:20:0;;;;18411:19;;-1:-1:-1;;;;;18433:6:0;;:18;;:20;;;;;;;;;;;;;;:6;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;18433:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18433:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18433:20:0;;-1:-1:-1;18464:21:0;18504:27;;;;18496:75;;;;-1:-1:-1;;;18496:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18635:5:0;;:40;;;-1:-1:-1;;;18635:40:0;;18650:10;18635:40;;;;;;;;;;;;18598:26;;;;-1:-1:-1;;;;;18635:5:0;;:14;;:40;;;;;;;;;;;;;;:5;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;18635:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18635:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18693:13:0;;18115:599;-1:-1:-1;;;;;18115:599:0:o;14546:79::-;14584:7;14611:6;-1:-1:-1;;;;;14611:6:0;14546:79;:::o;14912:94::-;14952:4;14992:6;;-1:-1:-1;;;;;14992:6:0;14976:12;:10;:12::i;:::-;-1:-1:-1;;;;;14976:22:0;;14969:29;;14912:94;:::o;17062:271::-;17115:7;17124;17144:26;17173:6;;;;;;;;;-1:-1:-1;;;;;17173:6:0;-1:-1:-1;;;;;17173:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17173:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17173:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17173:27:0;17240:6;;:27;;;-1:-1:-1;;;17240:27:0;;;;17173;;-1:-1:-1;17211:26:0;;-1:-1:-1;;;;;17240:6:0;;;;:25;;:27;;;;;17173;;17240;;;;;;;;:6;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;17240:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17240:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17240:27:0;17286:18;;-1:-1:-1;17240:27:0;;-1:-1:-1;;17062:271:0;;:::o;20487:405::-;20539:24;20579:23;:21;:23::i;:::-;20614:36;;;-1:-1:-1;;;20614:36:0;;20644:4;20614:36;;;;;;20539:64;;-1:-1:-1;;;;;;20614:21:0;;;;;:36;;;;;-1:-1:-1;;20614:36:0;;;;;;;;-1:-1:-1;20614:21:0;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;20614:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20614:36:0;;;;20663:16;20689:11;-1:-1:-1;;;;;20689:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20689:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20689:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20689:28:0;20753:34;;;-1:-1:-1;;;20753:34:0;;20781:4;20753:34;;;;;;20689:28;;-1:-1:-1;20729:21:0;;-1:-1:-1;;;;;20753:19:0;;;;;:34;;;;;20689:28;;20753:34;;;;;;;:19;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;20753:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20753:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20753:34:0;20827:12;;;20808:50;;;-1:-1:-1;;;20808:50:0;;-1:-1:-1;;;;;20827:12:0;;;20808:50;;;;;;;;;;;;;;20753:34;;-1:-1:-1;20808:18:0;;;;;:50;;;;;20753:34;;20808:50;;;;;;;;20827:12;20808:18;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;20808:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20808:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20808:50:0;20800:84;;;;;-1:-1:-1;;;20800:84:0;;;;;;;;;;;;-1:-1:-1;;;20800:84:0;;;;;;;;;;;;;;;20487:405;;;:::o;16886:104::-;16954:6;;:23;;;-1:-1:-1;;;16954:23:0;;;;16930:4;;-1:-1:-1;;;;;16954:6:0;;:21;;:23;;;;;;;;;;;;;;16930:4;16954:6;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;16954:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16954:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16954:23:0;:28;;-1:-1:-1;16886:104:0;:::o;17403:642::-;17479:7;14758:9;:7;:9::i;:::-;14750:54;;;;;-1:-1:-1;;;14750:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;14750:54:0;;;;;;;;;;;;;;;17499:5;;:59;;;-1:-1:-1;;;17499:59:0;;17518:10;17499:59;;;;17538:4;17499:59;;;;;;;;;;;;-1:-1:-1;;;;;17499:5:0;;;;:18;;:59;;;;;;;;;;;;;;;:5;;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;17499:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17499:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;17569:5:0;;;17591:6;17569:44;;;-1:-1:-1;;;17569:44:0;;-1:-1:-1;;;;;17591:6:0;;;17569:44;;;;;;;;;;;;:5;;;;;:13;;:44;;;;;17499:59;;17569:44;;;;;;;:5;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17569:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17569:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;17647:6:0;;:20;;;-1:-1:-1;;;17647:20:0;;;;17624;;-1:-1:-1;;;;;17647:6:0;;:18;;:20;;;;;17569:44;;17647:20;;;;;;;:6;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;17647:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17647:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17647:20:0;17734:6;;:25;;;-1:-1:-1;;;17734:25:0;;;;;;;;;;17647:20;;-1:-1:-1;;;;;;17734:6:0;;;;:11;;:25;;;;;17647:20;;17734:25;;;;;;;;:6;;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;17734:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17734:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17734:25:0;:30;17726:54;;;;;-1:-1:-1;;;17726:54:0;;;;;;;;;;;;-1:-1:-1;;;17726:54:0;;;;;;;;;;;;;;;17813:6;;:20;;;-1:-1:-1;;;17813:20:0;;;;17791:19;;-1:-1:-1;;;;;17813:6:0;;:18;;:20;;;;;;;;;;;;;;:6;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;17813:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17813:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17813:20:0;;-1:-1:-1;17844:22:0;17886:27;;;;17877:74;;;;-1:-1:-1;;;17877:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17979:26:0;;17403:642;-1:-1:-1;;17403:642:0:o;19710:27::-;;;-1:-1:-1;;;;;19710:27:0;;:::o;20900:337::-;20964:24;21004:23;:21;:23::i;:::-;21039:36;;;-1:-1:-1;;;21039:36:0;;21069:4;21039:36;;;;;;20964:64;;-1:-1:-1;;;;;;21039:21:0;;;;;:36;;;;;-1:-1:-1;;21039:36:0;;;;;;;;-1:-1:-1;21039:21:0;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;21039:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21039:36:0;;;;21088:16;21114:11;-1:-1:-1;;;;;21114:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21114:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21114:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21114:28:0;21181:12;;;21162:41;;;-1:-1:-1;;;21162:41:0;;-1:-1:-1;;;;;21181:12:0;;;21162:41;;;;;;;;;;;;;;21114:28;;-1:-1:-1;21162:18:0;;;;;:41;;;;;21114:28;;21162:41;;;;;;;;21181:12;21162:18;:41;;;5:2:-1;;;;30:1;27;20:12;15652:109:0;14758:9;:7;:9::i;:::-;14750:54;;;;;-1:-1:-1;;;14750:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;14750:54:0;;;;;;;;;;;;;;;15725:28;15744:8;15725:18;:28::i;:::-;15652:109;:::o;13295:98::-;13375:10;13295:98;:::o;15867:229::-;-1:-1:-1;;;;;15941:22:0;;15933:73;;;;-1:-1:-1;;;15933:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16043:6;;;16022:38;;-1:-1:-1;;;;;16022:38:0;;;;16043:6;;;16022:38;;;16071:6;:17;;-1:-1:-1;;;;;;16071:17:0;-1:-1:-1;;;;;16071:17:0;;;;;;;;;;15867:229::o
Swarm Source
bzzr://f0357abafc17e1bea25a9dafeebfd0e9857dcb79e1f5cdb35eada4afda817038
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000107 | 3,250.2769 | $0.3465 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.