Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 64 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Partial Liquidat... | 24537828 | 15 days ago | IN | 0 ETH | 0.00297416 | ||||
| Partial Liquidat... | 19937282 | 658 days ago | IN | 0 ETH | 0.00792205 | ||||
| Partial Liquidat... | 19937267 | 658 days ago | IN | 0 ETH | 0.00855948 | ||||
| Partial Liquidat... | 19937253 | 658 days ago | IN | 0 ETH | 0.01077938 | ||||
| Partial Liquidat... | 19937236 | 658 days ago | IN | 0 ETH | 0.00855552 | ||||
| Partial Liquidat... | 19937220 | 658 days ago | IN | 0 ETH | 0.00889809 | ||||
| Partial Liquidat... | 19937201 | 658 days ago | IN | 0 ETH | 0.00822353 | ||||
| Partial Liquidat... | 18989803 | 791 days ago | IN | 0 ETH | 0.02417802 | ||||
| Partial Liquidat... | 18989784 | 791 days ago | IN | 0 ETH | 0.02486069 | ||||
| Partial Liquidat... | 18989768 | 791 days ago | IN | 0 ETH | 0.02547644 | ||||
| Partial Liquidat... | 18989748 | 791 days ago | IN | 0 ETH | 0.02688457 | ||||
| Partial Liquidat... | 18989678 | 791 days ago | IN | 0 ETH | 0.02242076 | ||||
| Partial Liquidat... | 18989641 | 791 days ago | IN | 0 ETH | 0.02333307 | ||||
| Partial Liquidat... | 16424251 | 1151 days ago | IN | 0 ETH | 0.02188217 | ||||
| Partial Liquidat... | 16424238 | 1151 days ago | IN | 0 ETH | 0.02153375 | ||||
| Partial Liquidat... | 16424191 | 1151 days ago | IN | 0 ETH | 0.0225179 | ||||
| Partial Liquidat... | 16424179 | 1151 days ago | IN | 0 ETH | 0.02577488 | ||||
| Ownership Transf... | 15132826 | 1339 days ago | IN | 0 ETH | 0.001352 | ||||
| Partial Liquidat... | 14945086 | 1371 days ago | IN | 0 ETH | 0.11891238 | ||||
| Partial Liquidat... | 14945065 | 1371 days ago | IN | 0 ETH | 0.10220437 | ||||
| Partial Liquidat... | 14943502 | 1371 days ago | IN | 0 ETH | 0.07351036 | ||||
| Partial Liquidat... | 14943482 | 1371 days ago | IN | 0 ETH | 0.08109981 | ||||
| Partial Liquidat... | 14943469 | 1371 days ago | IN | 0 ETH | 0.07524529 | ||||
| Partial Liquidat... | 14799524 | 1395 days ago | IN | 0 ETH | 0.04999932 | ||||
| Ownership Transf... | 14766501 | 1400 days ago | IN | 0 ETH | 0.004056 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
etherLiquidationManager
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-02-23
*/
// File: contracts/interfaces/marketManagerInterface.sol
pragma solidity 0.6.12;
interface marketManagerInterface {
function setBreakerTable(address _target, bool _status) external returns (bool);
function getCircuitBreaker() external view returns (bool);
function setCircuitBreaker(bool _emergency) external returns (bool);
function getTokenHandlerInfo(uint256 handlerID) external view returns (bool, address, string memory);
function handlerRegister(uint256 handlerID, address tokenHandlerAddr) external returns (bool);
function applyInterestHandlers(address payable userAddr, uint256 callerID, bool allFlag) external returns (uint256, uint256, uint256, uint256, uint256, uint256);
function getTokenHandlerPrice(uint256 handlerID) external view returns (uint256);
function getTokenHandlerBorrowLimit(uint256 handlerID) external view returns (uint256);
function getTokenHandlerSupport(uint256 handlerID) external view returns (bool);
function getTokenHandlersLength() external view returns (uint256);
function setTokenHandlersLength(uint256 _tokenHandlerLength) external returns (bool);
function getTokenHandlerID(uint256 index) external view returns (uint256);
function getTokenHandlerMarginCallLimit(uint256 handlerID) external view returns (uint256);
function getUserIntraHandlerAssetWithInterest(address payable userAddr, uint256 handlerID) external view returns (uint256, uint256);
function getUserTotalIntraCreditAsset(address payable userAddr) external view returns (uint256, uint256);
function getUserLimitIntraAsset(address payable userAddr) external view returns (uint256, uint256);
function getUserCollateralizableAmount(address payable userAddr, uint256 handlerID) external view returns (uint256);
function getUserExtraLiquidityAmount(address payable userAddr, uint256 handlerID) external view returns (uint256);
function partialLiquidationUser(address payable delinquentBorrower, uint256 liquidateAmount, address payable liquidator, uint256 liquidateHandlerID, uint256 rewardHandlerID) external returns (uint256, uint256, uint256);
function getMaxLiquidationReward(address payable delinquentBorrower, uint256 liquidateHandlerID, uint256 liquidateAmount, uint256 rewardHandlerID, uint256 rewardRatio) external view returns (uint256);
function partialLiquidationUserReward(address payable delinquentBorrower, uint256 rewardAmount, address payable liquidator, uint256 handlerID) external returns (uint256);
function setLiquidationManager(address liquidationManagerAddr) external returns (bool);
function rewardClaimAll(address payable userAddr) external returns (bool);
function updateRewardParams(address payable userAddr) external returns (bool);
function interestUpdateReward() external returns (bool);
function getGlobalRewardInfo() external view returns (uint256, uint256, uint256);
function setOracleProxy(address oracleProxyAddr) external returns (bool);
function rewardUpdateOfInAction(address payable userAddr, uint256 callerID) external returns (bool);
function ownerRewardTransfer(uint256 _amount) external returns (bool);
}
// File: contracts/interfaces/managerDataStorageInterface.sol
pragma solidity 0.6.12;
interface managerDataStorageInterface {
function getGlobalRewardPerBlock() external view returns (uint256);
function setGlobalRewardPerBlock(uint256 _globalRewardPerBlock) external returns (bool);
function getGlobalRewardDecrement() external view returns (uint256);
function setGlobalRewardDecrement(uint256 _globalRewardDecrement) external returns (bool);
function getGlobalRewardTotalAmount() external view returns (uint256);
function setGlobalRewardTotalAmount(uint256 _globalRewardTotalAmount) external returns (bool);
function getAlphaRate() external view returns (uint256);
function setAlphaRate(uint256 _alphaRate) external returns (bool);
function getAlphaLastUpdated() external view returns (uint256);
function setAlphaLastUpdated(uint256 _alphaLastUpdated) external returns (bool);
function getRewardParamUpdateRewardPerBlock() external view returns (uint256);
function setRewardParamUpdateRewardPerBlock(uint256 _rewardParamUpdateRewardPerBlock) external returns (bool);
function getRewardParamUpdated() external view returns (uint256);
function setRewardParamUpdated(uint256 _rewardParamUpdated) external returns (bool);
function getInterestUpdateRewardPerblock() external view returns (uint256);
function setInterestUpdateRewardPerblock(uint256 _interestUpdateRewardPerblock) external returns (bool);
function getInterestRewardUpdated() external view returns (uint256);
function setInterestRewardUpdated(uint256 _interestRewardLastUpdated) external returns (bool);
function setTokenHandler(uint256 handlerID, address handlerAddr) external returns (bool);
function getTokenHandlerInfo(uint256 handlerID) external view returns (bool, address);
function getTokenHandlerID(uint256 index) external view returns (uint256);
function getTokenHandlerAddr(uint256 handlerID) external view returns (address);
function setTokenHandlerAddr(uint256 handlerID, address handlerAddr) external returns (bool);
function getTokenHandlerExist(uint256 handlerID) external view returns (bool);
function setTokenHandlerExist(uint256 handlerID, bool exist) external returns (bool);
function getTokenHandlerSupport(uint256 handlerID) external view returns (bool);
function setTokenHandlerSupport(uint256 handlerID, bool support) external returns (bool);
function setLiquidationManagerAddr(address _liquidationManagerAddr) external returns (bool);
function getLiquidationManagerAddr() external view returns (address);
function setManagerAddr(address _managerAddr) external returns (bool);
}
// File: contracts/interfaces/marketHandlerInterface.sol
pragma solidity 0.6.12;
interface marketHandlerInterface {
function setCircuitBreaker(bool _emergency) external returns (bool);
function setCircuitBreakWithOwner(bool _emergency) external returns (bool);
function getTokenName() external view returns (string memory);
function ownershipTransfer(address payable newOwner) external returns (bool);
function deposit(uint256 unifiedTokenAmount, bool allFlag) external payable returns (bool);
function withdraw(uint256 unifiedTokenAmount, bool allFlag) external returns (bool);
function borrow(uint256 unifiedTokenAmount, bool allFlag) external returns (bool);
function repay(uint256 unifiedTokenAmount, bool allFlag) external payable returns (bool);
function partialLiquidationUser(address payable delinquentBorrower, uint256 liquidateAmount, address payable liquidator, uint256 rewardHandlerID) external returns (uint256, uint256, uint256);
function partialLiquidationUserReward(address payable delinquentBorrower, uint256 liquidationAmountWithReward, address payable liquidator) external returns (uint256);
function getTokenHandlerLimit() external view returns (uint256, uint256);
function getTokenHandlerBorrowLimit() external view returns (uint256);
function getTokenHandlerMarginCallLimit() external view returns (uint256);
function setTokenHandlerBorrowLimit(uint256 borrowLimit) external returns (bool);
function setTokenHandlerMarginCallLimit(uint256 marginCallLimit) external returns (bool);
function getUserAmountWithInterest(address payable userAddr) external view returns (uint256, uint256);
function getUserAmount(address payable userAddr) external view returns (uint256, uint256);
function getUserMaxBorrowAmount(address payable userAddr) external view returns (uint256);
function getUserMaxWithdrawAmount(address payable userAddr) external view returns (uint256);
function getUserMaxRepayAmount(address payable userAddr) external view returns (uint256);
function checkFirstAction() external returns (bool);
function applyInterest(address payable userAddr) external returns (uint256, uint256);
function reserveDeposit(uint256 unifiedTokenAmount) external payable returns (bool);
function reserveWithdraw(uint256 unifiedTokenAmount) external returns (bool);
function getDepositTotalAmount() external view returns (uint256);
function getBorrowTotalAmount() external view returns (uint256);
function getSIRandBIR() external view returns (uint256, uint256);
}
// File: contracts/interfaces/liquidationManagerInterface.sol
pragma solidity 0.6.12;
interface liquidationManagerInterface {
function setCircuitBreaker(bool _emergency) external returns (bool);
function partialLiquidation(address payable delinquentBorrower, uint256 targetHandler, uint256 liquidateAmount, uint256 receiveHandler) external returns (uint256);
function checkLiquidation(address payable userAddr) external view returns (bool);
}
// File: contracts/Errors.sol
pragma solidity 0.6.12;
contract Modifier {
string internal constant ONLY_OWNER = "O";
string internal constant ONLY_MANAGER = "M";
string internal constant CIRCUIT_BREAKER = "emergency";
}
contract ManagerModifier is Modifier {
string internal constant ONLY_HANDLER = "H";
string internal constant ONLY_LIQUIDATION_MANAGER = "LM";
string internal constant ONLY_BREAKER = "B";
}
contract HandlerDataStorageModifier is Modifier {
string internal constant ONLY_BIFI_CONTRACT = "BF";
}
contract SIDataStorageModifier is Modifier {
string internal constant ONLY_SI_HANDLER = "SI";
}
contract HandlerErrors is Modifier {
string internal constant USE_VAULE = "use value";
string internal constant USE_ARG = "use arg";
string internal constant EXCEED_LIMIT = "exceed limit";
string internal constant NO_LIQUIDATION = "no liquidation";
string internal constant NO_LIQUIDATION_REWARD = "no enough reward";
string internal constant NO_EFFECTIVE_BALANCE = "not enough balance";
string internal constant TRANSFER = "err transfer";
}
contract SIErrors is Modifier { }
contract InterestErrors is Modifier { }
contract LiquidationManagerErrors is Modifier {
string internal constant NO_DELINQUENT = "not delinquent";
}
contract ManagerErrors is ManagerModifier {
string internal constant REWARD_TRANSFER = "RT";
string internal constant UNSUPPORTED_TOKEN = "UT";
}
contract OracleProxyErrors is Modifier {
string internal constant ZERO_PRICE = "price zero";
}
contract RequestProxyErrors is Modifier { }
contract ManagerDataStorageErrors is ManagerModifier {
string internal constant NULL_ADDRESS = "err addr null";
}
// File: contracts/marketManager/liquidationManager.sol
pragma solidity 0.6.12;
/**
* @title BiFi Liquidation Manager Contract
*
* @author BiFi
*/
contract etherLiquidationManager is liquidationManagerInterface, LiquidationManagerErrors {
event CircuitBreaked(bool breaked, uint256 blockNumber);
address payable owner;
bool emergency = false;
uint256 constant unifiedPoint = 10 ** 18;
marketManagerInterface public marketManager;
struct LiquidationModel {
uint256 delinquentDepositAsset;
uint256 delinquentBorrowAsset;
uint256 liquidatePrice;
uint256 receivePrice;
uint256 liquidateAmount;
uint256 liquidateAsset;
uint256 rewardAsset;
uint256 rewardAmount;
}
modifier onlyOwner {
require(msg.sender == owner, ONLY_OWNER);
_;
}
modifier onlyManager {
address msgSender = msg.sender;
require((msgSender == address(marketManager)) || (msgSender == owner), ONLY_MANAGER);
_;
}
modifier circuitBreaker {
address msgSender = msg.sender;
require((!emergency) || (msgSender == owner), CIRCUIT_BREAKER);
_;
}
/**
* @dev Construct a new liquidationManager
* @param marketManagerAddr The address of marketManager contract
*/
constructor (address marketManagerAddr) public
{
owner = msg.sender;
marketManager = marketManagerInterface(marketManagerAddr);
}
/**
* @dev Set new market manager address
* @param marketManagerAddr The address of marketManager contract
* @return true (TODO: validate results)
*/
function setMarketManagerAddr(address marketManagerAddr) external onlyOwner returns (bool) {
marketManager = marketManagerInterface(marketManagerAddr);
return true;
}
/**
* @dev Transfer ownership
* @param _owner the address of the new owner
* @return true (TODO: validate results)
*/
function ownershipTransfer(address payable _owner) onlyOwner public returns (bool)
{
owner = _owner;
return true;
}
/**
* @dev Get the address of owner
* @return the address of owner
*/
function getOwner() public view returns (address)
{
return owner;
}
/**
* @dev Set circuitBreak to freeze/unfreeze all handlers by marketManager
* @param _emergency The status of circuitBreak
* @return true (TODO: validate results)
*/
function setCircuitBreaker(bool _emergency) onlyManager external override returns (bool)
{
emergency = _emergency;
emit CircuitBreaked(_emergency, block.number);
return true;
}
/**
* @dev Liquidate asset of the user in default (or margin call) status
* @param delinquentBorrower the liquidation target
* @param targetHandler The hander ID of the liquidating asset (the
liquidator repay the tokens of the targetHandler instead)
* @param liquidateAmount The amount to liquidate
* @param receiveHandler The handler ID of the reward token for the liquidator
* @return The amount of reward token
*/
function partialLiquidation(address payable delinquentBorrower, uint256 targetHandler, uint256 liquidateAmount, uint256 receiveHandler) circuitBreaker external override returns (uint256)
{
/* msg.sender is liquidator */
address payable liquidator = msg.sender;
LiquidationModel memory vars;
/* Check whether the user is in liquidation.*/
if (_checkLiquidation(delinquentBorrower) == false)
{
revert(NO_DELINQUENT);
}
/* Liquidate */
(vars.liquidateAmount, vars.delinquentDepositAsset, vars.delinquentBorrowAsset) = marketManager.partialLiquidationUser(delinquentBorrower, liquidateAmount, liquidator, targetHandler, receiveHandler);
/* Compute the price of the liquidated tokens */
vars.liquidatePrice = marketManager.getTokenHandlerPrice(targetHandler);
vars.liquidateAsset = unifiedMul(vars.liquidateAmount, vars.liquidatePrice);
/* Calculates the number of tokens to receive as rewards. */
vars.rewardAsset = unifiedDiv(unifiedMul(vars.liquidateAsset, vars.delinquentDepositAsset), vars.delinquentBorrowAsset);
vars.receivePrice = marketManager.getTokenHandlerPrice(receiveHandler);
vars.rewardAmount = unifiedDiv(vars.rewardAsset, vars.receivePrice);
/* Receive reward */
return marketManager.partialLiquidationUserReward(delinquentBorrower, vars.rewardAmount, liquidator, receiveHandler);
}
/**
* @dev Checks the given user is eligible for delinquentBorrower (external)
* @param userAddr The address of user
* @return Eligibility as delinquentBorrower
*/
function checkLiquidation(address payable userAddr) external view override returns (bool)
{
return _checkLiquidation(userAddr);
}
/**
* @dev Checks the given user is eligible for delinquentBorrower (internal)
* @param userAddr The address of user
* @return Eligibility as delinquentBorrower
*/
function _checkLiquidation(address payable userAddr) internal view returns (bool)
{
uint256 userBorrowAssetSum;
uint256 liquidationLimitAssetSum;
uint256 tokenListLength = marketManager.getTokenHandlersLength();
for (uint256 handlerID = 0; handlerID < tokenListLength; handlerID++)
{
if (marketManager.getTokenHandlerSupport(handlerID))
{
/* Get the deposit and borrow amount including interest */
uint256 depositAsset;
uint256 borrowAsset;
(depositAsset, borrowAsset) = marketManager.getUserIntraHandlerAssetWithInterest(userAddr, handlerID);
/* Compute the liquidation limit and the sum of borrow of the
user */
uint256 marginCallLimit = marketManager.getTokenHandlerMarginCallLimit(handlerID);
liquidationLimitAssetSum = add(liquidationLimitAssetSum, unifiedMul(depositAsset, marginCallLimit));
userBorrowAssetSum = add(userBorrowAssetSum, borrowAsset);
}
}
/* If the borrowed amount exceeds the liquidation limit, the user is a delinquent borrower. */
if (liquidationLimitAssetSum <= userBorrowAssetSum)
{
return true;
/* Margin call */
}
return false;
}
/* ******************* Safe Math ******************* */
function add(uint256 a, uint256 b) internal pure returns (uint256)
{
uint256 c = a + b;
require(c >= a, "add overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256)
{
return _sub(a, b, "sub overflow");
}
function mul(uint256 a, uint256 b) internal pure returns (uint256)
{
return _mul(a, b);
}
function div(uint256 a, uint256 b) internal pure returns (uint256)
{
return _div(a, b, "div by zero");
}
function mod(uint256 a, uint256 b) internal pure returns (uint256)
{
return _mod(a, b, "mod by zero");
}
function _sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256)
{
require(b <= a, errorMessage);
return a - b;
}
function _mul(uint256 a, uint256 b) internal pure returns (uint256)
{
if (a == 0)
{
return 0;
}
uint256 c = a * b;
require((c / a) == b, "mul overflow");
return c;
}
function _div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256)
{
require(b > 0, errorMessage);
return a / b;
}
function _mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256)
{
require(b != 0, errorMessage);
return a % b;
}
function unifiedDiv(uint256 a, uint256 b) internal pure returns (uint256)
{
return _div(_mul(a, unifiedPoint), b, "unified div by zero");
}
function unifiedMul(uint256 a, uint256 b) internal pure returns (uint256)
{
return _div(_mul(a, b), unifiedPoint, "unified mul by zero");
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"marketManagerAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"breaked","type":"bool"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"CircuitBreaked","type":"event"},{"inputs":[{"internalType":"address payable","name":"userAddr","type":"address"}],"name":"checkLiquidation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketManager","outputs":[{"internalType":"contract marketManagerInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_owner","type":"address"}],"name":"ownershipTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"delinquentBorrower","type":"address"},{"internalType":"uint256","name":"targetHandler","type":"uint256"},{"internalType":"uint256","name":"liquidateAmount","type":"uint256"},{"internalType":"uint256","name":"receiveHandler","type":"uint256"}],"name":"partialLiquidation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_emergency","type":"bool"}],"name":"setCircuitBreaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketManagerAddr","type":"address"}],"name":"setMarketManagerAddr","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040526000805460ff60a01b1916905534801561001d57600080fd5b50604051610cca380380610cca8339818101604052602081101561004057600080fd5b5051600080546001600160a01b03199081163317909155600180546001600160a01b0390931692909116919091179055610c4b8061007f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063537eccb01161005b578063537eccb0146100ff578063893d20e814610149578063a274f4ac14610151578063d3a417a2146101775761007d565b806341e03e9a1461008257806341ed2c12146100bc57806342506449146100e0575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b031661019d565b604080519115158252519081900360200190f35b6100c4610270565b604080516001600160a01b039092168252519081900360200190f35b6100a8600480360360208110156100f657600080fd5b5035151561027f565b6101376004803603608081101561011557600080fd5b506001600160a01b038135169060208101359060408101359060600135610370565b60408051918252519081900360200190f35b6100c4610719565b6100a86004803603602081101561016757600080fd5b50356001600160a01b0316610728565b6100a86004803603602081101561018d57600080fd5b50356001600160a01b0316610739565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b0316331461024d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102125781810151838201526020016101fa565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050600180546001600160a01b0319166001600160a01b0383161781555b919050565b6001546001600160a01b031681565b60015460009033906001600160a01b03168114806102aa57506000546001600160a01b038281169116145b604051806040016040528060018152602001604d60f81b815250906103105760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b506000805460ff60a01b1916600160a01b851515908102919091179091556040805191825243602083015280517f32c7cdd2548b2e86a1cc9c5d18126a6c4bbbabd0584577e1638c21ddc6ac22c69281900390910190a150600192915050565b600080543390600160a01b900460ff16158061039957506000546001600160a01b038281169116145b60405180604001604052806009815260200168656d657267656e637960b81b815250906104075760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5033610411610bd0565b61041a886107d2565b61048757604080518082018252600e81526d1b9bdd0819195b1a5b9c5d595b9d60921b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156102125781810151838201526020016101fa565b6001546040805163057daa7b60e41b81526001600160a01b038b81166004830152602482018a90528581166044830152606482018b905260848201899052915191909216916357daa7b09160a48083019260609291908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d606081101561051d57600080fd5b50805160208083015160409384015185830152845260808401919091526001548251632ab0b0eb60e01b8152600481018b905292516001600160a01b0390911692632ab0b0eb926024808301939192829003018186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b50516040820181905260808201516105c191610a2e565b60a0820181905281516105e1916105d791610a2e565b8260200151610a7e565b60c082015260015460408051632ab0b0eb60e01b81526004810188905290516001600160a01b0390921691632ab0b0eb91602480820192602092909190829003018186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d602081101561065c57600080fd5b50516060820181905260c082015161067391610a7e565b60e08201819052600154604080516340bc6b0560e11b81526001600160a01b038c81166004830152602482019490945285841660448201526064810189905290519290911691638178d60a916084808201926020929091908290030181600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d602081101561070b57600080fd5b505198975050505050505050565b6000546001600160a01b031690565b6000610733826107d2565b92915050565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b031633146107ac5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5050600080546001600160a01b0383166001600160a01b03199091161790556001919050565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b0316638369b1df6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082657600080fd5b505afa15801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b5051905060005b81811015610a0f57600154604080516311e6d2bb60e11b81526004810184905290516001600160a01b03909216916323cda57691602480820192602092909190829003018186803b1580156108ab57600080fd5b505afa1580156108bf573d6000803e3d6000fd5b505050506040513d60208110156108d557600080fd5b505115610a075760015460408051633762f23560e21b81526001600160a01b038981166004830152602482018590528251600094859492169263dd8bc8d4926044808301939192829003018186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d604081101561095a57600080fd5b508051602091820151600154604080516320a0c31960e11b81526004810189905290519396509194506000936001600160a01b03909116926341418632926024808201939291829003018186803b1580156109b457600080fd5b505afa1580156109c8573d6000803e3d6000fd5b505050506040513d60208110156109de57600080fd5b505190506109f5866109f08584610a2e565b610ac7565b9550610a018783610ac7565b96505050505b600101610857565b50828211610a23576001935050505061026b565b506000949350505050565b6000610a77610a3d8484610b10565b670de0b6b3a764000060405180604001604052806013815260200172756e6966696564206d756c206279207a65726f60681b815250610b6e565b9392505050565b6000610a77610a9584670de0b6b3a7640000610b10565b8360405180604001604052806013815260200172756e696669656420646976206279207a65726f60681b815250610b6e565b600082820183811015610a77576040805162461bcd60e51b815260206004820152600c60248201526b616464206f766572666c6f7760a01b604482015290519081900360640190fd5b600082610b1f57506000610733565b82820282848281610b2c57fe5b0414610a77576040805162461bcd60e51b815260206004820152600c60248201526b6d756c206f766572666c6f7760a01b604482015290519081900360640190fd5b60008183610bbd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b50828481610bc757fe5b04949350505050565b6040518061010001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fea26469706673582212207b99141926b1212fc5b8f57b1b97e189a1cc4f5e8b7a48c8bece90eeb731468764736f6c634300060c00330000000000000000000000006e464417a4523ae2f3d59665b0b1fc37c1d17a2f
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063537eccb01161005b578063537eccb0146100ff578063893d20e814610149578063a274f4ac14610151578063d3a417a2146101775761007d565b806341e03e9a1461008257806341ed2c12146100bc57806342506449146100e0575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b031661019d565b604080519115158252519081900360200190f35b6100c4610270565b604080516001600160a01b039092168252519081900360200190f35b6100a8600480360360208110156100f657600080fd5b5035151561027f565b6101376004803603608081101561011557600080fd5b506001600160a01b038135169060208101359060408101359060600135610370565b60408051918252519081900360200190f35b6100c4610719565b6100a86004803603602081101561016757600080fd5b50356001600160a01b0316610728565b6100a86004803603602081101561018d57600080fd5b50356001600160a01b0316610739565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b0316331461024d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102125781810151838201526020016101fa565b50505050905090810190601f16801561023f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050600180546001600160a01b0319166001600160a01b0383161781555b919050565b6001546001600160a01b031681565b60015460009033906001600160a01b03168114806102aa57506000546001600160a01b038281169116145b604051806040016040528060018152602001604d60f81b815250906103105760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b506000805460ff60a01b1916600160a01b851515908102919091179091556040805191825243602083015280517f32c7cdd2548b2e86a1cc9c5d18126a6c4bbbabd0584577e1638c21ddc6ac22c69281900390910190a150600192915050565b600080543390600160a01b900460ff16158061039957506000546001600160a01b038281169116145b60405180604001604052806009815260200168656d657267656e637960b81b815250906104075760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5033610411610bd0565b61041a886107d2565b61048757604080518082018252600e81526d1b9bdd0819195b1a5b9c5d595b9d60921b6020808301918252925162461bcd60e51b815260048101938452825160248201528251929392839260449092019190808383600083156102125781810151838201526020016101fa565b6001546040805163057daa7b60e41b81526001600160a01b038b81166004830152602482018a90528581166044830152606482018b905260848201899052915191909216916357daa7b09160a48083019260609291908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d606081101561051d57600080fd5b50805160208083015160409384015185830152845260808401919091526001548251632ab0b0eb60e01b8152600481018b905292516001600160a01b0390911692632ab0b0eb926024808301939192829003018186803b15801561058057600080fd5b505afa158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b50516040820181905260808201516105c191610a2e565b60a0820181905281516105e1916105d791610a2e565b8260200151610a7e565b60c082015260015460408051632ab0b0eb60e01b81526004810188905290516001600160a01b0390921691632ab0b0eb91602480820192602092909190829003018186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d602081101561065c57600080fd5b50516060820181905260c082015161067391610a7e565b60e08201819052600154604080516340bc6b0560e11b81526001600160a01b038c81166004830152602482019490945285841660448201526064810189905290519290911691638178d60a916084808201926020929091908290030181600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d602081101561070b57600080fd5b505198975050505050505050565b6000546001600160a01b031690565b6000610733826107d2565b92915050565b600080546040805180820190915260018152604f60f81b6020820152906001600160a01b031633146107ac5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b5050600080546001600160a01b0383166001600160a01b03199091161790556001919050565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b0316638369b1df6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082657600080fd5b505afa15801561083a573d6000803e3d6000fd5b505050506040513d602081101561085057600080fd5b5051905060005b81811015610a0f57600154604080516311e6d2bb60e11b81526004810184905290516001600160a01b03909216916323cda57691602480820192602092909190829003018186803b1580156108ab57600080fd5b505afa1580156108bf573d6000803e3d6000fd5b505050506040513d60208110156108d557600080fd5b505115610a075760015460408051633762f23560e21b81526001600160a01b038981166004830152602482018590528251600094859492169263dd8bc8d4926044808301939192829003018186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d604081101561095a57600080fd5b508051602091820151600154604080516320a0c31960e11b81526004810189905290519396509194506000936001600160a01b03909116926341418632926024808201939291829003018186803b1580156109b457600080fd5b505afa1580156109c8573d6000803e3d6000fd5b505050506040513d60208110156109de57600080fd5b505190506109f5866109f08584610a2e565b610ac7565b9550610a018783610ac7565b96505050505b600101610857565b50828211610a23576001935050505061026b565b506000949350505050565b6000610a77610a3d8484610b10565b670de0b6b3a764000060405180604001604052806013815260200172756e6966696564206d756c206279207a65726f60681b815250610b6e565b9392505050565b6000610a77610a9584670de0b6b3a7640000610b10565b8360405180604001604052806013815260200172756e696669656420646976206279207a65726f60681b815250610b6e565b600082820183811015610a77576040805162461bcd60e51b815260206004820152600c60248201526b616464206f766572666c6f7760a01b604482015290519081900360640190fd5b600082610b1f57506000610733565b82820282848281610b2c57fe5b0414610a77576040805162461bcd60e51b815260206004820152600c60248201526b6d756c206f766572666c6f7760a01b604482015290519081900360640190fd5b60008183610bbd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156102125781810151838201526020016101fa565b50828481610bc757fe5b04949350505050565b6040518061010001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fea26469706673582212207b99141926b1212fc5b8f57b1b97e189a1cc4f5e8b7a48c8bece90eeb731468764736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006e464417a4523ae2f3d59665b0b1fc37c1d17a2f
-----Decoded View---------------
Arg [0] : marketManagerAddr (address): 0x6e464417a4523Ae2F3D59665B0B1Fc37C1d17A2f
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006e464417a4523ae2f3d59665b0b1fc37c1d17a2f
Deployed Bytecode Sourcemap
10786:7441:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12159:174;;;;;;;;;;;;;;;;-1:-1:-1;12159:174:0;-1:-1:-1;;;;;12159:174:0;;:::i;:::-;;;;;;;;;;;;;;;;;;11042:43;;;:::i;:::-;;;;-1:-1:-1;;;;;11042:43:0;;;;;;;;;;;;;;12930:189;;;;;;;;;;;;;;;;-1:-1:-1;12930:189:0;;;;:::i;13561:1365::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13561:1365:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12674:74;;;:::i;15105:136::-;;;;;;;;;;;;;;;;-1:-1:-1;15105:136:0;-1:-1:-1;;;;;15105:136:0;;:::i;12466:125::-;;;;;;;;;;;;;;;;-1:-1:-1;12466:125:0;-1:-1:-1;;;;;12466:125:0;;:::i;12159:174::-;12244:4;11396:5;;11403:10;;;;;;;;;11396:5;11403:10;;-1:-1:-1;;;11403:10:0;;;;;-1:-1:-1;;;;;11396:5:0;11382:10;:19;11374:40;;;;-1:-1:-1;;;11374:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12255:13:0::1;:57:::0;;-1:-1:-1;;;;;;12255:57:0::1;-1:-1:-1::0;;;;;12255:57:0;::::1;;::::0;;11419:1:::1;12159:174:::0;;;:::o;11042:43::-;;;-1:-1:-1;;;;;11042:43:0;;:::o;12930:189::-;11521:13;;13013:4;;11476:10;;-1:-1:-1;;;;;11521:13:0;11500:35;;;11499:61;;-1:-1:-1;11554:5:0;;-1:-1:-1;;;;;11541:18:0;;;11554:5;;11541:18;11499:61;11562:12;;;;;;;;;;;;;-1:-1:-1;;;11562:12:0;;;11491:84;;;;;-1:-1:-1;;;11491:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13026:9:0::1;:22:::0;;-1:-1:-1;;;;13026:22:0::1;-1:-1:-1::0;;;13026:22:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;13058:40:::1;::::0;;;;;13085:12:::1;13058:40;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;-1:-1:-1::0;13110:4:0::1;::::0;12930:189;-1:-1:-1;;12930:189:0:o;13561:1365::-;13739:7;11665:9;;11640:10;;-1:-1:-1;;;11665:9:0;;;;11664:10;;11663:36;;-1:-1:-1;11693:5:0;;-1:-1:-1;;;;;11680:18:0;;;11693:5;;11680:18;11663:36;11701:15;;;;;;;;;;;;;-1:-1:-1;;;11701:15:0;;;11655:62;;;;;-1:-1:-1;;;11655:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13818:10:0::1;13833:28;;:::i;:::-;13920:37;13938:18;13920:17;:37::i;:::-;13916:88;;13984:13;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;13984:13:0::1;::::0;;::::1;::::0;;;13977:21;;-1:-1:-1;;;13977:21:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;13984:13;;13977:21;;;;;;;;13984:13;13977:21;;13984:13;-1:-1:-1;13977:21:0;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;13916:88;14111:13;::::0;:116:::1;::::0;;-1:-1:-1;;;14111:116:0;;-1:-1:-1;;;;;14111:116:0;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;:13;;;::::1;::::0;:36:::1;::::0;:116;;;;;::::1;::::0;;;;;;;;:13:::1;::::0;:116;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14111:116:0;;::::1;::::0;;::::1;::::0;;;;;;14081:26;;::::1;14029:198:::0;;;14030:20:::1;::::0;::::1;14029:198:::0;;;;14308:13:::1;::::0;:49;;-1:-1:-1;;;14308:49:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;14308:13:0;;::::1;::::0;:34:::1;::::0;:49;;;;;14111:116;;14308:49;;;;;:13;:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14308:49:0;14286:19:::1;::::0;::::1;:71:::0;;;14395:20:::1;::::0;::::1;::::0;14384:53:::1;::::0;:10:::1;:53::i;:::-;14362:19;::::0;::::1;:75:::0;;;14570:27;;14527:100:::1;::::0;14538:60:::1;::::0;:10:::1;:60::i;:::-;14600:4;:26;;;14527:10;:100::i;:::-;14508:16;::::0;::::1;:119:::0;14652:13:::1;::::0;:50:::1;::::0;;-1:-1:-1;;;14652:50:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;14652:13:0;;::::1;::::0;:34:::1;::::0;:50;;;;;::::1;::::0;;;;;;;;;:13;:50;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14652:50:0;14632:17:::1;::::0;::::1;:70:::0;;;14738:16:::1;::::0;::::1;::::0;14727:47:::1;::::0;:10:::1;:47::i;:::-;14707:17;::::0;::::1;:67:::0;;;14812:13:::1;::::0;:109:::1;::::0;;-1:-1:-1;;;14812:109:0;;-1:-1:-1;;;;;14812:109:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;::::1;::::0;;;;;;;;;;;;:13;;;::::1;::::0;:42:::1;::::0;:109;;;;;::::1;::::0;;;;;;;;;:13:::1;::::0;:109;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14812:109:0;;13561:1365;-1:-1:-1;;;;;;;;13561:1365:0:o;12674:74::-;12715:7;12738:5;-1:-1:-1;;;;;12738:5:0;12674:74;:::o;15105:136::-;15189:4;15209:27;15227:8;15209:17;:27::i;:::-;15202:34;15105:136;-1:-1:-1;;15105:136:0:o;12466:125::-;12543:4;11396:5;;11403:10;;;;;;;;;11396:5;11403:10;;-1:-1:-1;;;11403:10:0;;;;;-1:-1:-1;;;;;11396:5:0;11382:10;:19;11374:40;;;;-1:-1:-1;;;11374:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12556:5:0::1;:14:::0;;-1:-1:-1;;;;;12556:14:0;::::1;-1:-1:-1::0;;;;;;12556:14:0;;::::1;;::::0;;;12466:125;;;:::o;15420:1170::-;15496:4;15509:26;15540:32;15577:23;15603:13;;;;;;;;;-1:-1:-1;;;;;15603:13:0;-1:-1:-1;;;;;15603:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15603:38:0;;-1:-1:-1;15651:17:0;15646:717;15686:15;15674:9;:27;15646:717;;;15729:13;;:47;;;-1:-1:-1;;;15729:47:0;;;;;;;;;;-1:-1:-1;;;;;15729:13:0;;;;:36;;:47;;;;;;;;;;;;;;;:13;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15729:47:0;15725:631;;;15936:13;;:71;;;-1:-1:-1;;;15936:71:0;;-1:-1:-1;;;;;15936:71:0;;;;;;;;;;;;;;;15853:20;;;;15936:13;;;:50;;:71;;;;;;;;;;;;:13;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15936:71:0;;;;;;;16124:13;;15936:71;16124:55;;-1:-1:-1;;;16124:55:0;;;;;;;;;;15936:71;;-1:-1:-1;15936:71:0;;-1:-1:-1;16098:23:0;;-1:-1:-1;;;;;16124:13:0;;;;:44;;:55;;;;;15936:71;16124:55;;;;;;:13;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16124:55:0;;-1:-1:-1;16213:72:0;16217:24;16243:41;16254:12;16124:55;16243:10;:41::i;:::-;16213:3;:72::i;:::-;16186:99;;16313:36;16317:18;16337:11;16313:3;:36::i;:::-;16292:57;;15725:631;;;;15703:11;;15646:717;;;;16499:18;16471:24;:46;16467:100;;16535:4;16528:11;;;;;;;16467:100;-1:-1:-1;16580:5:0;;15420:1170;-1:-1:-1;;;;15420:1170:0:o;18078:146::-;18143:7;18166:53;18171:10;18176:1;18179;18171:4;:10::i;:::-;11028:8;18166:53;;;;;;;;;;;;;-1:-1:-1;;;18166:53:0;;;:4;:53::i;:::-;18159:60;18078:146;-1:-1:-1;;;18078:146:0:o;17927:::-;17992:7;18015:53;18020:21;18025:1;11028:8;18020:4;:21::i;:::-;18043:1;18015:53;;;;;;;;;;;;;-1:-1:-1;;;18015:53:0;;;:4;:53::i;16653:145::-;16711:7;16739:5;;;16757:6;;;;16749:31;;;;;-1:-1:-1;;;16749:31:0;;;;;;;;;;;;-1:-1:-1;;;16749:31:0;;;;;;;;;;;;;;17412:193;17471:7;17491:6;17487:35;;-1:-1:-1;17515:1:0;17508:8;;17487:35;17540:5;;;17544:1;17540;:5;:1;17559:5;;;;;17558:12;17550:37;;;;;-1:-1:-1;;;17550:37:0;;;;;;;;;;;;-1:-1:-1;;;17550:37:0;;;;;;;;;;;;;;17610:153;17697:7;17728:12;17721:5;17713:28;;;;-1:-1:-1;;;17713:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17757:1;17753;:5;;;;;;;17610:153;-1:-1:-1;;;;17610:153:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://7b99141926b1212fc5b8f57b1b97e189a1cc4f5e8b7a48c8bece90eeb7314687
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.