false
false
99% Blocks Indexed - We're indexing this chain right now. Some of the counts may be inaccurate.

Contract Address Details

0x0355E393cF0cf5486D9CAefB64407b7B1033C2f1

Token
Collateralized US Yield Coin (cUSYC)
Creator
0x03cf87–9995ec at 0x258f7a–e54b47
Implementation
CRWAToken | 0x4eb33355a84c709f85e233035f4f4a5da29921fa
Balance
0 Canto ($0.00 USD)
Tokens
Fetching tokens...
Transactions
65 Transactions
Transfers
114 Transfers
Gas Used
24,734,736
Last Balance Update
13007738
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify. View contract in Sourcify repository
Contract name:
CErc20Delegator




Optimization enabled
true
Compiler version
v0.8.11+commit.d7f03943




Optimization runs
200
Verified at
2023-10-15T14:07:17.550184Z

src/CErc20Delegator.sol

Sol2uml
new
// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.10;
import "./CTokenInterfaces.sol";
/**
* @title Compound's CErc20Delegator Contract
* @notice CTokens which wrap an EIP-20 underlying and delegate to an implementation
* @author Compound
*/
contract CErc20Delegator is
CTokenInterface,
CErc20Interface,
CDelegatorInterface
{
/**
* @notice Construct a new money market
* @param underlying_ The address of the underlying asset
* @param comptroller_ The address of the Comptroller
* @param interestRateModel_ The address of the interest rate model
* @param initialExchangeRateMantissa_ The initial exchange rate, scaled by 1e18
* @param name_ ERC-20 name of this token
* @param symbol_ ERC-20 symbol of this token
* @param decimals_ ERC-20 decimal precision of this token
* @param admin_ Address of the administrator of this token
* @param implementation_ The address of the implementation the contract delegates to
* @param becomeImplementationData The encoded args for becomeImplementation
*/
constructor(
address underlying_,
ComptrollerInterface comptroller_,
InterestRateModel interestRateModel_,
uint256 initialExchangeRateMantissa_,
string memory name_,
string memory symbol_,
uint8 decimals_,
address payable admin_,
address implementation_,
bytes memory becomeImplementationData
) {
// Creator of the contract is admin during initialization
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

/InterestRateModel.sol

// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.10;
/**
* @title Compound's InterestRateModel Interface
* @author Compound
*/
abstract contract InterestRateModel {
/// @notice Indicator that this is an InterestRateModel contract (for inspection)
bool public constant isInterestRateModel = true;
/**
* @notice Calculates the current borrow interest rate per block
* @param cash The total amount of cash the market has
* @param borrows The total amount of borrows the market has outstanding
* @param reserves The total amount of reserves the market has
* @return The borrow rate per block (as a percentage, and scaled by 1e18)
*/
function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves)
external
view
virtual
returns (uint256);
/**
* @notice Calculates the current supply interest rate per block
* @param cash The total amount of cash the market has
* @param borrows The total amount of borrows the market has outstanding
* @param reserves The total amount of reserves the market has
* @param reserveFactorMantissa The current reserve factor the market has
* @return The supply rate per block (as a percentage, and scaled by 1e18)
*/
function getSupplyRate(
uint256 cash,
uint256 borrows,
uint256 reserves,
uint256 reserveFactorMantissa
)
external
view
virtual
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

/ErrorReporter.sol

// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.10;
contract ComptrollerErrorReporter {
enum Error // no longer possible
{
NO_ERROR,
UNAUTHORIZED,
COMPTROLLER_MISMATCH,
INSUFFICIENT_SHORTFALL,
INSUFFICIENT_LIQUIDITY,
INVALID_CLOSE_FACTOR,
INVALID_COLLATERAL_FACTOR,
INVALID_LIQUIDATION_INCENTIVE,
MARKET_NOT_ENTERED,
MARKET_NOT_LISTED,
MARKET_ALREADY_LISTED,
MATH_ERROR,
NONZERO_BORROW_BALANCE,
PRICE_ERROR,
REJECTION,
SNAPSHOT_ERROR,
TOO_MANY_ASSETS,
TOO_MUCH_REPAY
}
enum FailureInfo {
ACCEPT_ADMIN_PENDING_ADMIN_CHECK,
ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK,
EXIT_MARKET_BALANCE_OWED,
EXIT_MARKET_REJECTION,
SET_CLOSE_FACTOR_OWNER_CHECK,
SET_CLOSE_FACTOR_VALIDATION,
SET_COLLATERAL_FACTOR_OWNER_CHECK,
SET_COLLATERAL_FACTOR_NO_EXISTS,
SET_COLLATERAL_FACTOR_VALIDATION,
SET_COLLATERAL_FACTOR_WITHOUT_PRICE,
SET_IMPLEMENTATION_OWNER_CHECK,
SET_LIQUIDATION_INCENTIVE_OWNER_CHECK,
SET_LIQUIDATION_INCENTIVE_VALIDATION,
SET_MAX_ASSETS_OWNER_CHECK,
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

/EIP20NonStandardInterface.sol

// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.10;
/**
* @title EIP20NonStandardInterface
* @dev Version of ERC20 with no return values for `transfer` and `transferFrom`
* See https://medium.com/coinmonks/missing-return-value-bug-at-least-130-tokens-affected-d67bf08521ca
*/
interface EIP20NonStandardInterface {
/**
* @notice Get the total number of tokens in circulation
* @return The supply of tokens
*/
function totalSupply() external view returns (uint256);
/**
* @notice Gets the balance of the specified address
* @param owner The address from which the balance will be retrieved
* @return balance The balance
*/
function balanceOf(address owner)
external
view
returns (uint256 balance);
/// !!!!!!!!!!!!!!
/// !!! NOTICE !!! `transfer` does not return a value, in violation of the ERC-20 specification
/// !!!!!!!!!!!!!!
/**
* @notice Transfer `amount` tokens from `msg.sender` to `dst`
* @param dst The address of the destination account
* @param amount The number of tokens to transfer
*/
function transfer(address dst, uint256 amount) external;
/// !!!!!!!!!!!!!!
/// !!! NOTICE !!! `transferFrom` does not return a value, in violation of the ERC-20 specification
/// !!!!!!!!!!!!!!
/**
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

/ComptrollerInterface.sol

// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.10;
abstract contract ComptrollerInterface {
/// @notice Indicator that this is a Comptroller contract (for inspection)
bool public constant isComptroller = true;
/**
** Assets You Are In **
*/
function enterMarkets(address[] calldata cTokens)
external
virtual
returns (uint256[] memory);
function exitMarket(address cToken) external virtual returns (uint256);
/**
** Policy Hooks **
*/
function mintAllowed(address cToken, address minter, uint256 mintAmount)
external
virtual
returns (uint256);
function mintVerify(
address cToken,
address minter,
uint256 mintAmount,
uint256 mintTokens
)
external
virtual;
function redeemAllowed(
address cToken,
address redeemer,
uint256 redeemTokens
)
external
virtual
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

/CTokenInterfaces.sol

// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.10;
import "./ComptrollerInterface.sol";
import "./InterestRateModel.sol";
import "./EIP20NonStandardInterface.sol";
import "./ErrorReporter.sol";
contract CTokenStorage {
/**
* @dev Guard variable for re-entrancy checks
*/
bool internal _notEntered;
/**
* @notice EIP-20 token name for this token
*/
string public name;
/**
* @notice EIP-20 token symbol for this token
*/
string public symbol;
/**
* @notice EIP-20 token decimals for this token
*/
uint8 public decimals;
// Maximum borrow rate that can ever be applied (.0005% / block)
uint internal constant borrowRateMaxMantissa = 0.0005e16;
// Maximum fraction of interest that can be set aside for reserves
uint internal constant reserveFactorMaxMantissa = 1e18;
/**
* @notice Administrator for this contract
*/
address payable public admin;
/**
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compiler Settings

{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/"],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"compilationTarget":{"src/CErc20Delegator.sol":"CErc20Delegator"}}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"underlying_","internalType":"address"},{"type":"address","name":"comptroller_","internalType":"contract ComptrollerInterface"},{"type":"address","name":"interestRateModel_","internalType":"contract InterestRateModel"},{"type":"uint256","name":"initialExchangeRateMantissa_","internalType":"uint256"},{"type":"string","name":"name_","internalType":"string"},{"type":"string","name":"symbol_","internalType":"string"},{"type":"uint8","name":"decimals_","internalType":"uint8"},{"type":"address","name":"admin_","internalType":"address payable"},{"type":"address","name":"implementation_","internalType":"address"},{"type":"bytes","name":"becomeImplementationData","internalType":"bytes"}]},{"type":"event","name":"AccrueInterest","inputs":[{"type":"uint256","name":"cashPrior","internalType":"uint256","indexed":false},{"type":"uint256","name":"interestAccumulated","internalType":"uint256","indexed":false},{"type":"uint256","name":"borrowIndex","internalType":"uint256","indexed":false},{"type":"uint256","name":"totalBorrows","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Borrow","inputs":[{"type":"address","name":"borrower","internalType":"address","indexed":false},{"type":"uint256","name":"borrowAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"accountBorrows","internalType":"uint256","indexed":false},{"type":"uint256","name":"totalBorrows","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"LiquidateBorrow","inputs":[{"type":"address","name":"liquidator","internalType":"address","indexed":false},{"type":"address","name":"borrower","internalType":"address","indexed":false},{"type":"uint256","name":"repayAmount","internalType":"uint256","indexed":false},{"type":"address","name":"cTokenCollateral","internalType":"address","indexed":false},{"type":"uint256","name":"seizeTokens","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"type":"address","name":"minter","internalType":"address","indexed":false},{"type":"uint256","name":"mintAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"mintTokens","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"NewAdmin","inputs":[{"type":"address","name":"oldAdmin","internalType":"address","indexed":false},{"type":"address","name":"newAdmin","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"NewComptroller","inputs":[{"type":"address","name":"oldComptroller","internalType":"contract ComptrollerInterface","indexed":false},{"type":"address","name":"newComptroller","internalType":"contract ComptrollerInterface","indexed":false}],"anonymous":false},{"type":"event","name":"NewImplementation","inputs":[{"type":"address","name":"oldImplementation","internalType":"address","indexed":false},{"type":"address","name":"newImplementation","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"NewMarketInterestRateModel","inputs":[{"type":"address","name":"oldInterestRateModel","internalType":"contract InterestRateModel","indexed":false},{"type":"address","name":"newInterestRateModel","internalType":"contract InterestRateModel","indexed":false}],"anonymous":false},{"type":"event","name":"NewPendingAdmin","inputs":[{"type":"address","name":"oldPendingAdmin","internalType":"address","indexed":false},{"type":"address","name":"newPendingAdmin","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"NewReserveFactor","inputs":[{"type":"uint256","name":"oldReserveFactorMantissa","internalType":"uint256","indexed":false},{"type":"uint256","name":"newReserveFactorMantissa","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Redeem","inputs":[{"type":"address","name":"redeemer","internalType":"address","indexed":false},{"type":"uint256","name":"redeemAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"redeemTokens","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"RepayBorrow","inputs":[{"type":"address","name":"payer","internalType":"address","indexed":false},{"type":"address","name":"borrower","internalType":"address","indexed":false},{"type":"uint256","name":"repayAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"accountBorrows","internalType":"uint256","indexed":false},{"type":"uint256","name":"totalBorrows","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"ReservesAdded","inputs":[{"type":"address","name":"benefactor","internalType":"address","indexed":false},{"type":"uint256","name":"addAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"newTotalReserves","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"ReservesReduced","inputs":[{"type":"address","name":"admin","internalType":"address","indexed":false},{"type":"uint256","name":"reduceAmount","internalType":"uint256","indexed":false},{"type":"uint256","name":"newTotalReserves","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"fallback","stateMutability":"payable","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_acceptAdmin","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_addReserves","inputs":[{"type":"uint256","name":"addAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_reduceReserves","inputs":[{"type":"uint256","name":"reduceAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_setComptroller","inputs":[{"type":"address","name":"newComptroller","internalType":"contract ComptrollerInterface"}]},{"type":"function","stateMutability":"nonpayable","name":"_setImplementation","inputs":[{"type":"address","name":"implementation_","internalType":"address"},{"type":"bool","name":"allowResign","internalType":"bool"},{"type":"bytes","name":"becomeImplementationData","internalType":"bytes"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_setInterestRateModel","inputs":[{"type":"address","name":"newInterestRateModel","internalType":"contract InterestRateModel"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_setPendingAdmin","inputs":[{"type":"address","name":"newPendingAdmin","internalType":"address payable"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_setReserveFactor","inputs":[{"type":"uint256","name":"newReserveFactorMantissa","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"accrualBlockNumber","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"accrueInterest","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address payable"}],"name":"admin","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"owner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOfUnderlying","inputs":[{"type":"address","name":"owner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"borrow","inputs":[{"type":"uint256","name":"borrowAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"borrowBalanceCurrent","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"borrowBalanceStored","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"borrowIndex","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"borrowRatePerBlock","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract ComptrollerInterface"}],"name":"comptroller","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bytes","name":"","internalType":"bytes"}],"name":"delegateToImplementation","inputs":[{"type":"bytes","name":"data","internalType":"bytes"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes","name":"","internalType":"bytes"}],"name":"delegateToViewImplementation","inputs":[{"type":"bytes","name":"data","internalType":"bytes"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"exchangeRateCurrent","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"exchangeRateStored","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"}],"name":"getAccountSnapshot","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCash","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"implementation","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract InterestRateModel"}],"name":"interestRateModel","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isCToken","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"liquidateBorrow","inputs":[{"type":"address","name":"borrower","internalType":"address"},{"type":"uint256","name":"repayAmount","internalType":"uint256"},{"type":"address","name":"cTokenCollateral","internalType":"contract CTokenInterface"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"mint","inputs":[{"type":"uint256","name":"mintAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address payable"}],"name":"pendingAdmin","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"protocolSeizeShareMantissa","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"redeem","inputs":[{"type":"uint256","name":"redeemTokens","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"redeemUnderlying","inputs":[{"type":"uint256","name":"redeemAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"repayBorrow","inputs":[{"type":"uint256","name":"repayAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"repayBorrowBehalf","inputs":[{"type":"address","name":"borrower","internalType":"address"},{"type":"uint256","name":"repayAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"reserveFactorMantissa","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"seize","inputs":[{"type":"address","name":"liquidator","internalType":"address"},{"type":"address","name":"borrower","internalType":"address"},{"type":"uint256","name":"seizeTokens","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"supplyRatePerBlock","inputs":[]},{"type":"function","stateMutability":"nonpayable","name":"sweepToken","inputs":[{"type":"address","name":"token","internalType":"contract EIP20NonStandardInterface"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalBorrows","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalBorrowsCurrent","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalReserves","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"dst","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"src","internalType":"address"},{"type":"address","name":"dst","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"underlying","inputs":[]}]
              

Contract Creation Code

Verify & Publish
0x60806040523480156200001157600080fd5b50604051620022023803806200220283398101604081905262000034916200041a565b60038054610100600160a81b0319163361010002179055604051620000a590839062000071908d908d908d908d908d908d908d9060240162000556565b60408051601f198184030181529190526020810180516001600160e01b03908116631a31d46560e01b17909152620000ea16565b50620000b48260008362000169565b5050600380546001600160a01b0390921661010002610100600160a81b031990921691909117905550620005f995505050505050565b6060600080846001600160a01b031684604051620001099190620005bf565b600060405180830381855af49150503d806000811462000146576040519150601f19603f3d011682016040523d82523d6000602084013e6200014b565b606091505b5091509150600082141562000161573d60208201fd5b949350505050565b60035461010090046001600160a01b03163314620001f35760405162461bcd60e51b815260206004820152603960248201527f43457263323044656c656761746f723a3a5f736574496d706c656d656e74617460448201527f696f6e3a2043616c6c6572206d7573742062652061646d696e00000000000000606482015260840160405180910390fd5b811562000235576040805160048152602481019091526020810180516001600160e01b0390811663153ab50560e01b17909152620002339190620002f016565b505b601280546001600160a01b038581166001600160a01b0319831617909255604051911690620002a2906200026e908490602401620005dd565b60408051601f198184030181529190526020810180516001600160e01b03908116630adccee560e31b17909152620002f016565b50601254604080516001600160a01b03808516825290921660208301527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a150505050565b6012546060906200030b906001600160a01b031683620000ea565b92915050565b80516001600160a01b03811681146200032957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200036157818101518382015260200162000347565b8381111562000371576000848401525b50505050565b600082601f8301126200038957600080fd5b81516001600160401b0380821115620003a657620003a66200032e565b604051601f8301601f19908116603f01168101908282118183101715620003d157620003d16200032e565b81604052838152866020858801011115620003eb57600080fd5b620003fe84602083016020890162000344565b9695505050505050565b805160ff811681146200032957600080fd5b6000806000806000806000806000806101408b8d0312156200043b57600080fd5b620004468b62000311565b99506200045660208c0162000311565b98506200046660408c0162000311565b60608c015160808d015191995097506001600160401b03808211156200048b57600080fd5b620004998e838f0162000377565b975060a08d0151915080821115620004b057600080fd5b620004be8e838f0162000377565b9650620004ce60c08e0162000408565b9550620004de60e08e0162000311565b9450620004ef6101008e0162000311565b93506101208d01519150808211156200050757600080fd5b50620005168d828e0162000377565b9150509295989b9194979a5092959850565b600081518084526200054281602086016020860162000344565b601f01601f19169290920160200192915050565b6001600160a01b0388811682528781166020830152861660408201526060810185905260e060808201819052600090620005939083018662000528565b82810360a0840152620005a7818662000528565b91505060ff831660c083015298975050505050505050565b60008251620005d381846020870162000344565b9190910192915050565b602081526000620005f2602083018462000528565b9392505050565b611bf980620006096000396000f3fe6080604052600436106102ff5760003560e01c806370a0823111610190578063bd6d894d116100dc578063f2b3abbd11610095578063f851a4401161006f578063f851a440146109c3578063f8f9da28146109e8578063fca7820b146109fd578063fe9c44ae14610a1d576102ff565b8063f2b3abbd14610963578063f3fdb15a14610983578063f5e3c462146109a3576102ff565b8063bd6d894d14610899578063c37f68e2146108ae578063c5ebeaec146108ee578063db006a751461090e578063dd62ed3e1461092e578063e9c714f21461094e576102ff565b8063a0712d6811610149578063aa5af0fd11610123578063aa5af0fd1461082e578063ae9d70b014610844578063b2a02ff114610859578063b71d1a0c14610879576102ff565b8063a0712d68146107d9578063a6afed95146107f9578063a9059cbb1461080e576102ff565b806370a082311461073957806373acee9814610759578063852a12e31461076e5780638f840ddd1461078e57806395d89b41146107a457806395dd9193146107b9576102ff565b80633af9e6691161024f578063555bcc4011610208578063601a0bf1116101e2578063601a0bf1146106ce5780636752e702146106ee5780636c540baf146107035780636f307dc314610719576102ff565b8063555bcc401461066e5780635c60da1b1461068e5780635fe3b567146106ae576102ff565b80633af9e669146105c35780633b1d21a2146105e35780633e941010146105f85780634487152f146106185780634576b5db1461063857806347bd371814610658576102ff565b806318160ddd116102bc57806323b872dd1161029657806323b872dd1461051f5780632608f8181461053f578063267822471461055f578063313ce56714610597576102ff565b806318160ddd146104d2578063182df0f5146104e85780631be19560146104fd576102ff565b806306fdde03146103f35780630933c1ed1461041e578063095ea7b31461043e5780630e7527021461046e578063173b99041461049c57806317bfdfbc146104b2575b34156103785760405162461bcd60e51b815260206004820152603760248201527f43457263323044656c656761746f723a66616c6c6261636b3a2063616e6e6f7460448201527f2073656e642076616c756520746f2066616c6c6261636b00000000000000000060648201526084015b60405180910390fd5b6012546040516000916001600160a01b0316906103989083903690611773565b600060405180830381855af49150503d80600081146103d3576040519150601f19603f3d011682016040523d82523d6000602084013e6103d8565b606091505b505090506040513d6000823e8180156103ef573d82f35b3d82fd5b3480156103ff57600080fd5b50610408610a32565b60405161041591906117df565b60405180910390f35b34801561042a57600080fd5b506104086104393660046118b7565b610ac0565b34801561044a57600080fd5b5061045e610459366004611904565b610adf565b6040519015158152602001610415565b34801561047a57600080fd5b5061048e610489366004611930565b610b51565b604051908152602001610415565b3480156104a857600080fd5b5061048e60085481565b3480156104be57600080fd5b5061048e6104cd366004611949565b610bb6565b3480156104de57600080fd5b5061048e600d5481565b3480156104f457600080fd5b5061048e610c03565b34801561050957600080fd5b5061051d610518366004611949565b610c56565b005b34801561052b57600080fd5b5061045e61053a366004611966565b610ca1565b34801561054b57600080fd5b5061048e61055a366004611904565b610d1c565b34801561056b57600080fd5b5060045461057f906001600160a01b031681565b6040516001600160a01b039091168152602001610415565b3480156105a357600080fd5b506003546105b19060ff1681565b60405160ff9091168152602001610415565b3480156105cf57600080fd5b5061048e6105de366004611949565b610d86565b3480156105ef57600080fd5b5061048e610dd3565b34801561060457600080fd5b5061048e610613366004611930565b610e0a565b34801561062457600080fd5b506104086106333660046118b7565b610e52565b34801561064457600080fd5b5061048e610653366004611949565b610f10565b34801561066457600080fd5b5061048e600b5481565b34801561067a57600080fd5b5061051d6106893660046119b5565b610f5d565b34801561069a57600080fd5b5060125461057f906001600160a01b031681565b3480156106ba57600080fd5b5060055461057f906001600160a01b031681565b3480156106da57600080fd5b5061048e6106e9366004611930565b6110cf565b3480156106fa57600080fd5b5061048e600081565b34801561070f57600080fd5b5061048e60095481565b34801561072557600080fd5b5060115461057f906001600160a01b031681565b34801561074557600080fd5b5061048e610754366004611949565b611117565b34801561076557600080fd5b5061048e611164565b34801561077a57600080fd5b5061048e610789366004611930565b61119b565b34801561079a57600080fd5b5061048e600c5481565b3480156107b057600080fd5b506104086111e3565b3480156107c557600080fd5b5061048e6107d4366004611949565b6111f0565b3480156107e557600080fd5b5061048e6107f4366004611930565b61123d565b34801561080557600080fd5b5061048e611285565b34801561081a57600080fd5b5061045e610829366004611904565b6112bc565b34801561083a57600080fd5b5061048e600a5481565b34801561085057600080fd5b5061048e611310565b34801561086557600080fd5b5061048e610874366004611966565b611347565b34801561088557600080fd5b5061048e610894366004611949565b6113b9565b3480156108a557600080fd5b5061048e611406565b3480156108ba57600080fd5b506108ce6108c9366004611949565b61143d565b604080519485526020850193909352918301526060820152608001610415565b3480156108fa57600080fd5b5061048e610909366004611930565b6114bd565b34801561091a57600080fd5b5061048e610929366004611930565b611505565b34801561093a57600080fd5b5061048e610949366004611a17565b61154d565b34801561095a57600080fd5b5061048e6115a2565b34801561096f57600080fd5b5061048e61097e366004611949565b6115d9565b34801561098f57600080fd5b5060065461057f906001600160a01b031681565b3480156109af57600080fd5b5061048e6109be366004611a50565b611626565b3480156109cf57600080fd5b5060035461057f9061010090046001600160a01b031681565b3480156109f457600080fd5b5061048e611682565b348015610a0957600080fd5b5061048e610a18366004611930565b6116b9565b348015610a2957600080fd5b5061045e600181565b60018054610a3f90611a92565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b90611a92565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b505050505081565b601254606090610ad9906001600160a01b031683611701565b92915050565b6040516001600160a01b0383166024820152604481018290526000908190610b339060640160408051601f198184030181529190526020810180516001600160e01b031663095ea7b360e01b179052610ac0565b905080806020019051810190610b499190611acd565b949350505050565b600080610b9983604051602401610b6a91815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663073a938160e11b179052610ac0565b905080806020019051810190610baf9190611aea565b9392505050565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b03166305eff7ef60e21b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b031663182df0f560e01b1790526000908190610c3a90610e52565b905080806020019051810190610c509190611aea565b91505090565b6040516001600160a01b0382166024820152610c9d9060440160408051601f198184030181529190526020810180516001600160e01b031662df0cab60e51b179052610ac0565b5050565b6040516001600160a01b03808516602483015283166044820152606481018290526000908190610cfd9060840160408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b179052610ac0565b905080806020019051810190610d139190611acd565b95945050505050565b6040516001600160a01b0383166024820152604481018290526000908190610d709060640160408051601f198184030181529190526020810180516001600160e01b03166304c11f0360e31b179052610ac0565b905080806020019051810190610b499190611aea565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b0316633af9e66960e01b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b0316631d8e90d160e11b1790526000908190610c3a90610e52565b600080610b9983604051602401610e2391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166303e9410160e41b179052610ac0565b6060600080306001600160a01b031684604051602401610e7291906117df565b60408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b17905251610ea79190611b03565b600060405180830381855afa9150503d8060008114610ee2576040519150601f19603f3d011682016040523d82523d6000602084013e610ee7565b606091505b50915091506000821415610efc573d60208201fd5b80806020019051810190610b499190611b1f565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b0316634576b5db60e01b179052610ac0565b60035461010090046001600160a01b03163314610fe25760405162461bcd60e51b815260206004820152603960248201527f43457263323044656c656761746f723a3a5f736574496d706c656d656e74617460448201527f696f6e3a2043616c6c6572206d7573742062652061646d696e00000000000000606482015260840161036f565b811561101c576040805160048152602481019091526020810180516001600160e01b031663153ab50560e01b17905261101a90610ac0565b505b601280546001600160a01b038581166001600160a01b0319831617909255604051911690611081906110529084906024016117df565b60408051601f198184030181529190526020810180516001600160e01b0316630adccee560e31b179052610ac0565b50601254604080516001600160a01b03808516825290921660208301527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a150505050565b600080610b99836040516024016110e891815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663601a0bf160e01b179052610ac0565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052610e52565b6040805160048152602481019091526020810180516001600160e01b0316630e759dd360e31b1790526000908190610c3a90610ac0565b600080610b99836040516024016111b491815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663852a12e360e01b179052610ac0565b60028054610a3f90611a92565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b03166395dd919360e01b179052610e52565b600080610b998360405160240161125691815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663140e25ad60e31b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b031663a6afed9560e01b1790526000908190610c3a90610ac0565b6040516001600160a01b0383166024820152604481018290526000908190610b339060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b0316630ae9d70b60e41b1790526000908190610c3a90610e52565b6040516001600160a01b038085166024830152831660448201526064810182905260009081906113a39060840160408051601f198184030181529190526020810180516001600160e01b031663b2a02ff160e01b179052610ac0565b905080806020019051810190610d139190611aea565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b0316632dc7468360e21b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b031663bd6d894d60e01b1790526000908190610c3a90610ac0565b60008060008060006114978660405160240161146891906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166361bfb47160e11b179052610e52565b9050808060200190518101906114ad9190611b8d565b9450945094509450509193509193565b600080610b99836040516024016114d691815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663317afabb60e21b179052610ac0565b600080610b998360405160240161151e91815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663db006a7560e01b179052610ac0565b6040516001600160a01b038084166024830152821660448201526000908190610d709060640160408051601f198184030181529190526020810180516001600160e01b0316636eb1769f60e11b179052610e52565b6040805160048152602481019091526020810180516001600160e01b03166374e38a7960e11b1790526000908190610c3a90610ac0565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b031663f2b3abbd60e01b179052610ac0565b6040516001600160a01b038085166024830152604482018490528216606482015260009081906113a39060840160408051601f198184030181529190526020810180516001600160e01b0316637af1e23160e11b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b0316631f1f3b4560e31b1790526000908190610c3a90610e52565b600080610b99836040516024016116d291815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663fca7820b60e01b179052610ac0565b6060600080846001600160a01b03168460405161171e9190611b03565b600060405180830381855af49150503d8060008114611759576040519150601f19603f3d011682016040523d82523d6000602084013e61175e565b606091505b50915091506000821415610b49573d60208201fd5b8183823760009101908152919050565b60005b8381101561179e578181015183820152602001611786565b838111156117ad576000848401525b50505050565b600081518084526117cb816020860160208601611783565b601f01601f19169290920160200192915050565b602081526000610baf60208301846117b3565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611831576118316117f2565b604052919050565b600067ffffffffffffffff821115611853576118536117f2565b50601f01601f191660200190565b600082601f83011261187257600080fd5b813561188561188082611839565b611808565b81815284602083860101111561189a57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156118c957600080fd5b813567ffffffffffffffff8111156118e057600080fd5b610b4984828501611861565b6001600160a01b038116811461190157600080fd5b50565b6000806040838503121561191757600080fd5b8235611922816118ec565b946020939093013593505050565b60006020828403121561194257600080fd5b5035919050565b60006020828403121561195b57600080fd5b8135610baf816118ec565b60008060006060848603121561197b57600080fd5b8335611986816118ec565b92506020840135611996816118ec565b929592945050506040919091013590565b801515811461190157600080fd5b6000806000606084860312156119ca57600080fd5b83356119d5816118ec565b925060208401356119e5816119a7565b9150604084013567ffffffffffffffff811115611a0157600080fd5b611a0d86828701611861565b9150509250925092565b60008060408385031215611a2a57600080fd5b8235611a35816118ec565b91506020830135611a45816118ec565b809150509250929050565b600080600060608486031215611a6557600080fd5b8335611a70816118ec565b9250602084013591506040840135611a87816118ec565b809150509250925092565b600181811c90821680611aa657607f821691505b60208210811415611ac757634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611adf57600080fd5b8151610baf816119a7565b600060208284031215611afc57600080fd5b5051919050565b60008251611b15818460208701611783565b9190910192915050565b600060208284031215611b3157600080fd5b815167ffffffffffffffff811115611b4857600080fd5b8201601f81018413611b5957600080fd5b8051611b6761188082611839565b818152856020838501011115611b7c57600080fd5b610d13826020830160208601611783565b60008060008060808587031215611ba357600080fd5b50508251602084015160408501516060909501519196909550909250905056fea2646970667358221220671c73705e284406da98ff5a3b950a59ed91a15d561648cc4f0d7180acd8a7f764736f6c634300080b0033000000000000000000000000fb8255f0de21acebf490f1df6f0bdd48cc1df03b0000000000000000000000005e23dc409fc2f832f83cec191e245a191a4bcc5c0000000000000000000000009748b6d59fd4c4f087294087bd94b6b9d95b42930000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003cf8710bba14c32232efe0613fd44b8199995ec0000000000000000000000004eb33355a84c709f85e233035f4f4a5da29921fa00000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000001c436f6c6c61746572616c697a6564205553205969656c6420436f696e000000000000000000000000000000000000000000000000000000000000000000000005635553594300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x6080604052600436106102ff5760003560e01c806370a0823111610190578063bd6d894d116100dc578063f2b3abbd11610095578063f851a4401161006f578063f851a440146109c3578063f8f9da28146109e8578063fca7820b146109fd578063fe9c44ae14610a1d576102ff565b8063f2b3abbd14610963578063f3fdb15a14610983578063f5e3c462146109a3576102ff565b8063bd6d894d14610899578063c37f68e2146108ae578063c5ebeaec146108ee578063db006a751461090e578063dd62ed3e1461092e578063e9c714f21461094e576102ff565b8063a0712d6811610149578063aa5af0fd11610123578063aa5af0fd1461082e578063ae9d70b014610844578063b2a02ff114610859578063b71d1a0c14610879576102ff565b8063a0712d68146107d9578063a6afed95146107f9578063a9059cbb1461080e576102ff565b806370a082311461073957806373acee9814610759578063852a12e31461076e5780638f840ddd1461078e57806395d89b41146107a457806395dd9193146107b9576102ff565b80633af9e6691161024f578063555bcc4011610208578063601a0bf1116101e2578063601a0bf1146106ce5780636752e702146106ee5780636c540baf146107035780636f307dc314610719576102ff565b8063555bcc401461066e5780635c60da1b1461068e5780635fe3b567146106ae576102ff565b80633af9e669146105c35780633b1d21a2146105e35780633e941010146105f85780634487152f146106185780634576b5db1461063857806347bd371814610658576102ff565b806318160ddd116102bc57806323b872dd1161029657806323b872dd1461051f5780632608f8181461053f578063267822471461055f578063313ce56714610597576102ff565b806318160ddd146104d2578063182df0f5146104e85780631be19560146104fd576102ff565b806306fdde03146103f35780630933c1ed1461041e578063095ea7b31461043e5780630e7527021461046e578063173b99041461049c57806317bfdfbc146104b2575b34156103785760405162461bcd60e51b815260206004820152603760248201527f43457263323044656c656761746f723a66616c6c6261636b3a2063616e6e6f7460448201527f2073656e642076616c756520746f2066616c6c6261636b00000000000000000060648201526084015b60405180910390fd5b6012546040516000916001600160a01b0316906103989083903690611773565b600060405180830381855af49150503d80600081146103d3576040519150601f19603f3d011682016040523d82523d6000602084013e6103d8565b606091505b505090506040513d6000823e8180156103ef573d82f35b3d82fd5b3480156103ff57600080fd5b50610408610a32565b60405161041591906117df565b60405180910390f35b34801561042a57600080fd5b506104086104393660046118b7565b610ac0565b34801561044a57600080fd5b5061045e610459366004611904565b610adf565b6040519015158152602001610415565b34801561047a57600080fd5b5061048e610489366004611930565b610b51565b604051908152602001610415565b3480156104a857600080fd5b5061048e60085481565b3480156104be57600080fd5b5061048e6104cd366004611949565b610bb6565b3480156104de57600080fd5b5061048e600d5481565b3480156104f457600080fd5b5061048e610c03565b34801561050957600080fd5b5061051d610518366004611949565b610c56565b005b34801561052b57600080fd5b5061045e61053a366004611966565b610ca1565b34801561054b57600080fd5b5061048e61055a366004611904565b610d1c565b34801561056b57600080fd5b5060045461057f906001600160a01b031681565b6040516001600160a01b039091168152602001610415565b3480156105a357600080fd5b506003546105b19060ff1681565b60405160ff9091168152602001610415565b3480156105cf57600080fd5b5061048e6105de366004611949565b610d86565b3480156105ef57600080fd5b5061048e610dd3565b34801561060457600080fd5b5061048e610613366004611930565b610e0a565b34801561062457600080fd5b506104086106333660046118b7565b610e52565b34801561064457600080fd5b5061048e610653366004611949565b610f10565b34801561066457600080fd5b5061048e600b5481565b34801561067a57600080fd5b5061051d6106893660046119b5565b610f5d565b34801561069a57600080fd5b5060125461057f906001600160a01b031681565b3480156106ba57600080fd5b5060055461057f906001600160a01b031681565b3480156106da57600080fd5b5061048e6106e9366004611930565b6110cf565b3480156106fa57600080fd5b5061048e600081565b34801561070f57600080fd5b5061048e60095481565b34801561072557600080fd5b5060115461057f906001600160a01b031681565b34801561074557600080fd5b5061048e610754366004611949565b611117565b34801561076557600080fd5b5061048e611164565b34801561077a57600080fd5b5061048e610789366004611930565b61119b565b34801561079a57600080fd5b5061048e600c5481565b3480156107b057600080fd5b506104086111e3565b3480156107c557600080fd5b5061048e6107d4366004611949565b6111f0565b3480156107e557600080fd5b5061048e6107f4366004611930565b61123d565b34801561080557600080fd5b5061048e611285565b34801561081a57600080fd5b5061045e610829366004611904565b6112bc565b34801561083a57600080fd5b5061048e600a5481565b34801561085057600080fd5b5061048e611310565b34801561086557600080fd5b5061048e610874366004611966565b611347565b34801561088557600080fd5b5061048e610894366004611949565b6113b9565b3480156108a557600080fd5b5061048e611406565b3480156108ba57600080fd5b506108ce6108c9366004611949565b61143d565b604080519485526020850193909352918301526060820152608001610415565b3480156108fa57600080fd5b5061048e610909366004611930565b6114bd565b34801561091a57600080fd5b5061048e610929366004611930565b611505565b34801561093a57600080fd5b5061048e610949366004611a17565b61154d565b34801561095a57600080fd5b5061048e6115a2565b34801561096f57600080fd5b5061048e61097e366004611949565b6115d9565b34801561098f57600080fd5b5060065461057f906001600160a01b031681565b3480156109af57600080fd5b5061048e6109be366004611a50565b611626565b3480156109cf57600080fd5b5060035461057f9061010090046001600160a01b031681565b3480156109f457600080fd5b5061048e611682565b348015610a0957600080fd5b5061048e610a18366004611930565b6116b9565b348015610a2957600080fd5b5061045e600181565b60018054610a3f90611a92565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b90611a92565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b505050505081565b601254606090610ad9906001600160a01b031683611701565b92915050565b6040516001600160a01b0383166024820152604481018290526000908190610b339060640160408051601f198184030181529190526020810180516001600160e01b031663095ea7b360e01b179052610ac0565b905080806020019051810190610b499190611acd565b949350505050565b600080610b9983604051602401610b6a91815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663073a938160e11b179052610ac0565b905080806020019051810190610baf9190611aea565b9392505050565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b03166305eff7ef60e21b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b031663182df0f560e01b1790526000908190610c3a90610e52565b905080806020019051810190610c509190611aea565b91505090565b6040516001600160a01b0382166024820152610c9d9060440160408051601f198184030181529190526020810180516001600160e01b031662df0cab60e51b179052610ac0565b5050565b6040516001600160a01b03808516602483015283166044820152606481018290526000908190610cfd9060840160408051601f198184030181529190526020810180516001600160e01b03166323b872dd60e01b179052610ac0565b905080806020019051810190610d139190611acd565b95945050505050565b6040516001600160a01b0383166024820152604481018290526000908190610d709060640160408051601f198184030181529190526020810180516001600160e01b03166304c11f0360e31b179052610ac0565b905080806020019051810190610b499190611aea565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b0316633af9e66960e01b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b0316631d8e90d160e11b1790526000908190610c3a90610e52565b600080610b9983604051602401610e2391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166303e9410160e41b179052610ac0565b6060600080306001600160a01b031684604051602401610e7291906117df565b60408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b17905251610ea79190611b03565b600060405180830381855afa9150503d8060008114610ee2576040519150601f19603f3d011682016040523d82523d6000602084013e610ee7565b606091505b50915091506000821415610efc573d60208201fd5b80806020019051810190610b499190611b1f565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b0316634576b5db60e01b179052610ac0565b60035461010090046001600160a01b03163314610fe25760405162461bcd60e51b815260206004820152603960248201527f43457263323044656c656761746f723a3a5f736574496d706c656d656e74617460448201527f696f6e3a2043616c6c6572206d7573742062652061646d696e00000000000000606482015260840161036f565b811561101c576040805160048152602481019091526020810180516001600160e01b031663153ab50560e01b17905261101a90610ac0565b505b601280546001600160a01b038581166001600160a01b0319831617909255604051911690611081906110529084906024016117df565b60408051601f198184030181529190526020810180516001600160e01b0316630adccee560e31b179052610ac0565b50601254604080516001600160a01b03808516825290921660208301527fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a150505050565b600080610b99836040516024016110e891815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663601a0bf160e01b179052610ac0565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052610e52565b6040805160048152602481019091526020810180516001600160e01b0316630e759dd360e31b1790526000908190610c3a90610ac0565b600080610b99836040516024016111b491815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663852a12e360e01b179052610ac0565b60028054610a3f90611a92565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b03166395dd919360e01b179052610e52565b600080610b998360405160240161125691815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663140e25ad60e31b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b031663a6afed9560e01b1790526000908190610c3a90610ac0565b6040516001600160a01b0383166024820152604481018290526000908190610b339060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b0316630ae9d70b60e41b1790526000908190610c3a90610e52565b6040516001600160a01b038085166024830152831660448201526064810182905260009081906113a39060840160408051601f198184030181529190526020810180516001600160e01b031663b2a02ff160e01b179052610ac0565b905080806020019051810190610d139190611aea565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b0316632dc7468360e21b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b031663bd6d894d60e01b1790526000908190610c3a90610ac0565b60008060008060006114978660405160240161146891906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166361bfb47160e11b179052610e52565b9050808060200190518101906114ad9190611b8d565b9450945094509450509193509193565b600080610b99836040516024016114d691815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663317afabb60e21b179052610ac0565b600080610b998360405160240161151e91815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663db006a7560e01b179052610ac0565b6040516001600160a01b038084166024830152821660448201526000908190610d709060640160408051601f198184030181529190526020810180516001600160e01b0316636eb1769f60e11b179052610e52565b6040805160048152602481019091526020810180516001600160e01b03166374e38a7960e11b1790526000908190610c3a90610ac0565b6040516001600160a01b03821660248201526000908190610b999060440160408051601f198184030181529190526020810180516001600160e01b031663f2b3abbd60e01b179052610ac0565b6040516001600160a01b038085166024830152604482018490528216606482015260009081906113a39060840160408051601f198184030181529190526020810180516001600160e01b0316637af1e23160e11b179052610ac0565b6040805160048152602481019091526020810180516001600160e01b0316631f1f3b4560e31b1790526000908190610c3a90610e52565b600080610b99836040516024016116d291815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663fca7820b60e01b179052610ac0565b6060600080846001600160a01b03168460405161171e9190611b03565b600060405180830381855af49150503d8060008114611759576040519150601f19603f3d011682016040523d82523d6000602084013e61175e565b606091505b50915091506000821415610b49573d60208201fd5b8183823760009101908152919050565b60005b8381101561179e578181015183820152602001611786565b838111156117ad576000848401525b50505050565b600081518084526117cb816020860160208601611783565b601f01601f19169290920160200192915050565b602081526000610baf60208301846117b3565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611831576118316117f2565b604052919050565b600067ffffffffffffffff821115611853576118536117f2565b50601f01601f191660200190565b600082601f83011261187257600080fd5b813561188561188082611839565b611808565b81815284602083860101111561189a57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156118c957600080fd5b813567ffffffffffffffff8111156118e057600080fd5b610b4984828501611861565b6001600160a01b038116811461190157600080fd5b50565b6000806040838503121561191757600080fd5b8235611922816118ec565b946020939093013593505050565b60006020828403121561194257600080fd5b5035919050565b60006020828403121561195b57600080fd5b8135610baf816118ec565b60008060006060848603121561197b57600080fd5b8335611986816118ec565b92506020840135611996816118ec565b929592945050506040919091013590565b801515811461190157600080fd5b6000806000606084860312156119ca57600080fd5b83356119d5816118ec565b925060208401356119e5816119a7565b9150604084013567ffffffffffffffff811115611a0157600080fd5b611a0d86828701611861565b9150509250925092565b60008060408385031215611a2a57600080fd5b8235611a35816118ec565b91506020830135611a45816118ec565b809150509250929050565b600080600060608486031215611a6557600080fd5b8335611a70816118ec565b9250602084013591506040840135611a87816118ec565b809150509250925092565b600181811c90821680611aa657607f821691505b60208210811415611ac757634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611adf57600080fd5b8151610baf816119a7565b600060208284031215611afc57600080fd5b5051919050565b60008251611b15818460208701611783565b9190910192915050565b600060208284031215611b3157600080fd5b815167ffffffffffffffff811115611b4857600080fd5b8201601f81018413611b5957600080fd5b8051611b6761188082611839565b818152856020838501011115611b7c57600080fd5b610d13826020830160208601611783565b60008060008060808587031215611ba357600080fd5b50508251602084015160408501516060909501519196909550909250905056fea2646970667358221220671c73705e284406da98ff5a3b950a59ed91a15d561648cc4f0d7180acd8a7f764736f6c634300080b0033