Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21939967 | 5 days ago | 0 ETH | |||||
21939967 | 5 days ago | 0 ETH | |||||
21879189 | 14 days ago | 0 ETH | |||||
21879189 | 14 days ago | 0 ETH | |||||
21864292 | 16 days ago | 0 ETH | |||||
21864292 | 16 days ago | 0 ETH | |||||
21864292 | 16 days ago | 0 ETH | |||||
21864292 | 16 days ago | 0 ETH | |||||
21864292 | 16 days ago | 0 ETH | |||||
21850403 | 18 days ago | 0 ETH | |||||
21850403 | 18 days ago | 0 ETH | |||||
21850403 | 18 days ago | 0 ETH | |||||
21850403 | 18 days ago | 0 ETH | |||||
21850403 | 18 days ago | 0 ETH | |||||
21803954 | 24 days ago | 0 ETH | |||||
21803954 | 24 days ago | 0 ETH | |||||
21803954 | 24 days ago | 0 ETH | |||||
21803954 | 24 days ago | 0 ETH | |||||
21803954 | 24 days ago | 0 ETH | |||||
21743088 | 33 days ago | 0 ETH | |||||
21743088 | 33 days ago | 0 ETH | |||||
21741169 | 33 days ago | 0 ETH | |||||
21741169 | 33 days ago | 0 ETH | |||||
21741169 | 33 days ago | 0 ETH | |||||
21741169 | 33 days ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
EntranceRateBurnFee
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 /* This file is part of the Enzyme Protocol. (c) Enzyme Council <[email protected]> For the full license information, please view the LICENSE file that was distributed with this source code. */ pragma solidity 0.6.12; import "./utils/EntranceRateFeeBase.sol"; /// @title EntranceRateBurnFee Contract /// @author Enzyme Council <[email protected]> /// @notice An EntranceRateFee that burns the fee shares contract EntranceRateBurnFee is EntranceRateFeeBase { constructor(address _feeManager) public EntranceRateFeeBase(_feeManager, IFeeManager.SettlementType.Burn) {} }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: GPL-3.0 /* This file is part of the Enzyme Protocol. (c) Enzyme Council <[email protected]> For the full license information, please view the LICENSE file that was distributed with this source code. */ pragma solidity 0.6.12; import "./IFeeManager.sol"; /// @title Fee Interface /// @author Enzyme Council <[email protected]> /// @notice Interface for all fees interface IFee { function activateForFund(address _comptrollerProxy, address _vaultProxy) external; function addFundSettings(address _comptrollerProxy, bytes calldata _settingsData) external; function payout(address _comptrollerProxy, address _vaultProxy) external returns (bool isPayable_); function getRecipientForFund(address _comptrollerProxy) external view returns (address recipient_); function settle( address _comptrollerProxy, address _vaultProxy, IFeeManager.FeeHook _hook, bytes calldata _settlementData, uint256 _gav ) external returns ( IFeeManager.SettlementType settlementType_, address payer_, uint256 sharesDue_ ); function settlesOnHook(IFeeManager.FeeHook _hook) external view returns (bool settles_, bool usesGav_); function update( address _comptrollerProxy, address _vaultProxy, IFeeManager.FeeHook _hook, bytes calldata _settlementData, uint256 _gav ) external; function updatesOnHook(IFeeManager.FeeHook _hook) external view returns (bool updates_, bool usesGav_); }
// SPDX-License-Identifier: GPL-3.0 /* This file is part of the Enzyme Protocol. (c) Enzyme Council <[email protected]> For the full license information, please view the LICENSE file that was distributed with this source code. */ pragma solidity 0.6.12; pragma experimental ABIEncoderV2; /// @title FeeManager Interface /// @author Enzyme Council <[email protected]> /// @notice Interface for the FeeManager interface IFeeManager { // No fees for the current release are implemented post-redeemShares enum FeeHook {Continuous, PreBuyShares, PostBuyShares, PreRedeemShares} enum SettlementType {None, Direct, Mint, Burn, MintSharesOutstanding, BurnSharesOutstanding} function invokeHook( FeeHook, bytes calldata, uint256 ) external; }
// SPDX-License-Identifier: GPL-3.0 /* This file is part of the Enzyme Protocol. (c) Enzyme Council <[email protected]> For the full license information, please view the LICENSE file that was distributed with this source code. */ pragma solidity 0.6.12; import "@openzeppelin/contracts/math/SafeMath.sol"; import "./FeeBase.sol"; /// @title EntranceRateFeeBase Contract /// @author Enzyme Council <[email protected]> /// @notice Calculates a fee based on a rate to be charged to an investor upon entering a fund abstract contract EntranceRateFeeBase is FeeBase { using SafeMath for uint256; event FundSettingsAdded(address indexed comptrollerProxy, uint256 rate); event Settled(address indexed comptrollerProxy, address indexed payer, uint256 sharesQuantity); uint256 private constant ONE_HUNDRED_PERCENT = 10000; IFeeManager.SettlementType private immutable SETTLEMENT_TYPE; mapping(address => uint256) private comptrollerProxyToRate; constructor(address _feeManager, IFeeManager.SettlementType _settlementType) public FeeBase(_feeManager) { require( _settlementType == IFeeManager.SettlementType.Burn || _settlementType == IFeeManager.SettlementType.Direct, "constructor: Invalid _settlementType" ); SETTLEMENT_TYPE = _settlementType; } // EXTERNAL FUNCTIONS /// @notice Add the initial fee settings for a fund /// @param _comptrollerProxy The ComptrollerProxy of the fund /// @param _settingsData Encoded settings to apply to the fee for a fund function addFundSettings(address _comptrollerProxy, bytes calldata _settingsData) public virtual override onlyFeeManager { uint256 rate = abi.decode(_settingsData, (uint256)); require(rate > 0, "addFundSettings: Fee rate must be >0"); require(rate < ONE_HUNDRED_PERCENT, "addFundSettings: Fee rate max exceeded"); comptrollerProxyToRate[_comptrollerProxy] = rate; emit FundSettingsAdded(_comptrollerProxy, rate); } /// @notice Settles the fee /// @param _comptrollerProxy The ComptrollerProxy of the fund /// @param _settlementData Encoded args to use in calculating the settlement /// @return settlementType_ The type of settlement /// @return payer_ The payer of shares due /// @return sharesDue_ The amount of shares due function settle( address _comptrollerProxy, address, IFeeManager.FeeHook, bytes calldata _settlementData, uint256 ) external override onlyFeeManager returns ( IFeeManager.SettlementType settlementType_, address payer_, uint256 sharesDue_ ) { uint256 sharesBought; (payer_, , sharesBought) = __decodePostBuySharesSettlementData(_settlementData); uint256 rate = comptrollerProxyToRate[_comptrollerProxy]; sharesDue_ = sharesBought.mul(rate).div(ONE_HUNDRED_PERCENT); if (sharesDue_ == 0) { return (IFeeManager.SettlementType.None, address(0), 0); } emit Settled(_comptrollerProxy, payer_, sharesDue_); return (SETTLEMENT_TYPE, payer_, sharesDue_); } /// @notice Gets whether the fee settles and requires GAV on a particular hook /// @param _hook The FeeHook /// @return settles_ True if the fee settles on the _hook /// @return usesGav_ True if the fee uses GAV during settle() for the _hook function settlesOnHook(IFeeManager.FeeHook _hook) external view override returns (bool settles_, bool usesGav_) { if (_hook == IFeeManager.FeeHook.PostBuyShares) { return (true, false); } return (false, false); } /////////////////// // STATE GETTERS // /////////////////// /// @notice Gets the `rate` variable for a fund /// @param _comptrollerProxy The ComptrollerProxy contract for the fund /// @return rate_ The `rate` variable value function getRateForFund(address _comptrollerProxy) external view returns (uint256 rate_) { return comptrollerProxyToRate[_comptrollerProxy]; } /// @notice Gets the `SETTLEMENT_TYPE` variable /// @return settlementType_ The `SETTLEMENT_TYPE` variable value function getSettlementType() external view returns (IFeeManager.SettlementType settlementType_) { return SETTLEMENT_TYPE; } }
// SPDX-License-Identifier: GPL-3.0 /* This file is part of the Enzyme Protocol. (c) Enzyme Council <[email protected]> For the full license information, please view the LICENSE file that was distributed with this source code. */ pragma solidity 0.6.12; import "../../IFee.sol"; /// @title FeeBase Contract /// @author Enzyme Council <[email protected]> /// @notice Abstract base contract for all fees abstract contract FeeBase is IFee { address internal immutable FEE_MANAGER; modifier onlyFeeManager { require(msg.sender == FEE_MANAGER, "Only the FeeManger can make this call"); _; } constructor(address _feeManager) public { FEE_MANAGER = _feeManager; } /// @notice Allows Fee to run logic during fund activation /// @dev Unimplemented by default, may be overrode. function activateForFund(address, address) external virtual override { return; } /// @notice Gets the recipient of the fee for a given fund /// @dev address(0) signifies the VaultProxy owner. /// Returns address(0) by default, can be overridden by fee. function getRecipientForFund(address) external view virtual override returns (address recipient_) { return address(0); } /// @notice Runs payout logic for a fee that utilizes shares outstanding as its settlement type /// @dev Returns false by default, can be overridden by fee function payout(address, address) external virtual override returns (bool) { return false; } /// @notice Update fee state after all settlement has occurred during a given fee hook /// @dev Unimplemented by default, can be overridden by fee function update( address, address, IFeeManager.FeeHook, bytes calldata, uint256 ) external virtual override { return; } /// @notice Gets whether the fee updates and requires GAV on a particular hook /// @return updates_ True if the fee updates on the _hook /// @return usesGav_ True if the fee uses GAV during update() for the _hook /// @dev Returns false values by default, can be overridden by fee function updatesOnHook(IFeeManager.FeeHook) external view virtual override returns (bool updates_, bool usesGav_) { return (false, false); } /// @notice Helper to parse settlement arguments from encoded data for PreBuyShares fee hook function __decodePreBuySharesSettlementData(bytes memory _settlementData) internal pure returns (address buyer_, uint256 investmentAmount_) { return abi.decode(_settlementData, (address, uint256)); } /// @notice Helper to parse settlement arguments from encoded data for PreRedeemShares fee hook function __decodePreRedeemSharesSettlementData(bytes memory _settlementData) internal pure returns ( address redeemer_, uint256 sharesQuantity_, bool forSpecificAssets_ ) { return abi.decode(_settlementData, (address, uint256, bool)); } /// @notice Helper to parse settlement arguments from encoded data for PostBuyShares fee hook function __decodePostBuySharesSettlementData(bytes memory _settlementData) internal pure returns ( address buyer_, uint256 investmentAmount_, uint256 sharesIssued_ ) { return abi.decode(_settlementData, (address, uint256, uint256)); } /////////////////// // STATE GETTERS // /////////////////// /// @notice Gets the `FEE_MANAGER` variable /// @return feeManager_ The `FEE_MANAGER` variable value function getFeeManager() external view returns (address feeManager_) { return FEE_MANAGER; } }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "details": { "constantOptimizer": true, "cse": true, "deduplicate": true, "jumpdestRemover": true, "orderLiterals": true, "peephole": true, "yul": false }, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_feeManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"comptrollerProxy","type":"address"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"FundSettingsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"comptrollerProxy","type":"address"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"uint256","name":"sharesQuantity","type":"uint256"}],"name":"Settled","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"activateForFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_comptrollerProxy","type":"address"},{"internalType":"bytes","name":"_settingsData","type":"bytes"}],"name":"addFundSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFeeManager","outputs":[{"internalType":"address","name":"feeManager_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_comptrollerProxy","type":"address"}],"name":"getRateForFund","outputs":[{"internalType":"uint256","name":"rate_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getRecipientForFund","outputs":[{"internalType":"address","name":"recipient_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSettlementType","outputs":[{"internalType":"enum IFeeManager.SettlementType","name":"settlementType_","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"payout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_comptrollerProxy","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum IFeeManager.FeeHook","name":"","type":"uint8"},{"internalType":"bytes","name":"_settlementData","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"settle","outputs":[{"internalType":"enum IFeeManager.SettlementType","name":"settlementType_","type":"uint8"},{"internalType":"address","name":"payer_","type":"address"},{"internalType":"uint256","name":"sharesDue_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IFeeManager.FeeHook","name":"_hook","type":"uint8"}],"name":"settlesOnHook","outputs":[{"internalType":"bool","name":"settles_","type":"bool"},{"internalType":"bool","name":"usesGav_","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"enum IFeeManager.FeeHook","name":"","type":"uint8"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IFeeManager.FeeHook","name":"","type":"uint8"}],"name":"updatesOnHook","outputs":[{"internalType":"bool","name":"updates_","type":"bool"},{"internalType":"bool","name":"usesGav_","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b506040516109c53803806109c58339818101604052602081101561003357600080fd5b50516001600160601b0319606082901b16608052600360f81b60a0526001600160a01b0316600361093f610086600039806106ef528061072752508061040f52806105b6528061075c525061093f6000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806341892d7e1161007157806341892d7e1461026457806362780b3c1461032f5780637bdd5b1d14610371578063b78b48131461039a578063e337a91f146103dc578063f2d63826146103fc576100a9565b80630f5f6b4f146100ae578063233faf5f146101305780633146d058146101c3578063320f0ddd146101f15780633eecc2bf1461022c575b600080fd5b61012e600480360360408110156100c457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ef57600080fd5b82018360208201111561010157600080fd5b8035906020019184600183028401116401000000008311171561012357600080fd5b509092509050610404565b005b61012e600480360360a081101561014657600080fd5b6001600160a01b03823581169260208101359091169160ff604083013516919081019060808101606082013564010000000081111561018457600080fd5b82018360208201111561019657600080fd5b803590602001918460018302840111640100000000831117156101b857600080fd5b919350915035610551565b61012e600480360360408110156101d957600080fd5b506001600160a01b0381358116916020013516610559565b6102116004803603602081101561020757600080fd5b503560ff1661055d565b60408051921515835290151560208301528051918290030190f35b6102526004803603602081101561024257600080fd5b50356001600160a01b031661058c565b60408051918252519081900360200190f35b6102f7600480360360a081101561027a57600080fd5b6001600160a01b03823581169260208101359091169160ff60408301351691908101906080810160608201356401000000008111156102b857600080fd5b8201836020820111156102ca57600080fd5b803590602001918460018302840111640100000000831117156102ec57600080fd5b9193509150356105a7565b6040518084600581111561030757fe5b8152602001836001600160a01b03168152602001828152602001935050505060405180910390f35b6103556004803603602081101561034557600080fd5b50356001600160a01b031661071f565b604080516001600160a01b039092168252519081900360200190f35b610379610725565b6040518082600581111561038957fe5b815260200191505060405180910390f35b6103c8600480360360408110156103b057600080fd5b506001600160a01b0381358116916020013516610749565b604080519115158252519081900360200190f35b610211600480360360208110156103f257600080fd5b503560ff16610752565b61035561075a565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046b5760405162461bcd60e51b815260040180806020018281038252602581526020018061087a6025913960400191505060405180910390fd5b60008282602081101561047d57600080fd5b50359050806104bd5760405162461bcd60e51b81526004018080602001828103825260248152602001806108e66024913960400191505060405180910390fd5b61271081106104fd5760405162461bcd60e51b81526004018080602001828103825260268152602001806108c06026913960400191505060405180910390fd5b6001600160a01b03841660008181526020818152604091829020849055815184815291517f90b7d1516011c1da1279f3ae0ed052b1416e7c373d4ec40cf515aa53c5f839df9281900390910190a250505050565b505050505050565b5050565b600080600283600381111561056e57fe5b14156105805750600190506000610587565b5060009050805b915091565b6001600160a01b031660009081526020819052604090205490565b60008080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106125760405162461bcd60e51b815260040180806020018281038252602581526020018061087a6025913960400191505060405180910390fd5b600061065387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061077e92505050565b6001600160a01b038d166000908152602081905260409020549295509250610689905061271061068384846107b2565b90610812565b9250826106a25760008060009450945094505050610713565b836001600160a01b03168b6001600160a01b03167f7e79a2206061184e05985ae0578dec52f817756a441996f984cdc817efc25a68856040518082815260200191505060405180910390a37f0000000000000000000000000000000000000000000000000000000000000000945050505b96509650969350505050565b50600090565b7f000000000000000000000000000000000000000000000000000000000000000090565b60005b92915050565b600080915091565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080600083806020019051606081101561079857600080fd5b508051602082015160409092015190969195509350915050565b6000826107c15750600061074c565b828202828482816107ce57fe5b041461080b5760405162461bcd60e51b815260040180806020018281038252602181526020018061089f6021913960400191505060405180910390fd5b9392505050565b6000808211610868576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161087157fe5b04939250505056fe4f6e6c7920746865204665654d616e6765722063616e206d616b6520746869732063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7761646446756e6453657474696e67733a204665652072617465206d617820657863656564656461646446756e6453657474696e67733a204665652072617465206d757374206265203e30a2646970667358221220003c199e0f8b751ad47510b741a5215defd0b3718f10418469b3e92653fd9d7264736f6c634300060c0033000000000000000000000000af0dffac1ce85c3fce4c2bf50073251f615eefc4
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806341892d7e1161007157806341892d7e1461026457806362780b3c1461032f5780637bdd5b1d14610371578063b78b48131461039a578063e337a91f146103dc578063f2d63826146103fc576100a9565b80630f5f6b4f146100ae578063233faf5f146101305780633146d058146101c3578063320f0ddd146101f15780633eecc2bf1461022c575b600080fd5b61012e600480360360408110156100c457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ef57600080fd5b82018360208201111561010157600080fd5b8035906020019184600183028401116401000000008311171561012357600080fd5b509092509050610404565b005b61012e600480360360a081101561014657600080fd5b6001600160a01b03823581169260208101359091169160ff604083013516919081019060808101606082013564010000000081111561018457600080fd5b82018360208201111561019657600080fd5b803590602001918460018302840111640100000000831117156101b857600080fd5b919350915035610551565b61012e600480360360408110156101d957600080fd5b506001600160a01b0381358116916020013516610559565b6102116004803603602081101561020757600080fd5b503560ff1661055d565b60408051921515835290151560208301528051918290030190f35b6102526004803603602081101561024257600080fd5b50356001600160a01b031661058c565b60408051918252519081900360200190f35b6102f7600480360360a081101561027a57600080fd5b6001600160a01b03823581169260208101359091169160ff60408301351691908101906080810160608201356401000000008111156102b857600080fd5b8201836020820111156102ca57600080fd5b803590602001918460018302840111640100000000831117156102ec57600080fd5b9193509150356105a7565b6040518084600581111561030757fe5b8152602001836001600160a01b03168152602001828152602001935050505060405180910390f35b6103556004803603602081101561034557600080fd5b50356001600160a01b031661071f565b604080516001600160a01b039092168252519081900360200190f35b610379610725565b6040518082600581111561038957fe5b815260200191505060405180910390f35b6103c8600480360360408110156103b057600080fd5b506001600160a01b0381358116916020013516610749565b604080519115158252519081900360200190f35b610211600480360360208110156103f257600080fd5b503560ff16610752565b61035561075a565b336001600160a01b037f000000000000000000000000af0dffac1ce85c3fce4c2bf50073251f615eefc4161461046b5760405162461bcd60e51b815260040180806020018281038252602581526020018061087a6025913960400191505060405180910390fd5b60008282602081101561047d57600080fd5b50359050806104bd5760405162461bcd60e51b81526004018080602001828103825260248152602001806108e66024913960400191505060405180910390fd5b61271081106104fd5760405162461bcd60e51b81526004018080602001828103825260268152602001806108c06026913960400191505060405180910390fd5b6001600160a01b03841660008181526020818152604091829020849055815184815291517f90b7d1516011c1da1279f3ae0ed052b1416e7c373d4ec40cf515aa53c5f839df9281900390910190a250505050565b505050505050565b5050565b600080600283600381111561056e57fe5b14156105805750600190506000610587565b5060009050805b915091565b6001600160a01b031660009081526020819052604090205490565b60008080336001600160a01b037f000000000000000000000000af0dffac1ce85c3fce4c2bf50073251f615eefc416146106125760405162461bcd60e51b815260040180806020018281038252602581526020018061087a6025913960400191505060405180910390fd5b600061065387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061077e92505050565b6001600160a01b038d166000908152602081905260409020549295509250610689905061271061068384846107b2565b90610812565b9250826106a25760008060009450945094505050610713565b836001600160a01b03168b6001600160a01b03167f7e79a2206061184e05985ae0578dec52f817756a441996f984cdc817efc25a68856040518082815260200191505060405180910390a37f0000000000000000000000000000000000000000000000000000000000000003945050505b96509650969350505050565b50600090565b7f000000000000000000000000000000000000000000000000000000000000000390565b60005b92915050565b600080915091565b7f000000000000000000000000af0dffac1ce85c3fce4c2bf50073251f615eefc490565b600080600083806020019051606081101561079857600080fd5b508051602082015160409092015190969195509350915050565b6000826107c15750600061074c565b828202828482816107ce57fe5b041461080b5760405162461bcd60e51b815260040180806020018281038252602181526020018061089f6021913960400191505060405180910390fd5b9392505050565b6000808211610868576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161087157fe5b04939250505056fe4f6e6c7920746865204665654d616e6765722063616e206d616b6520746869732063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7761646446756e6453657474696e67733a204665652072617465206d617820657863656564656461646446756e6453657474696e67733a204665652072617465206d757374206265203e30a2646970667358221220003c199e0f8b751ad47510b741a5215defd0b3718f10418469b3e92653fd9d7264736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000af0dffac1ce85c3fce4c2bf50073251f615eefc4
-----Decoded View---------------
Arg [0] : _feeManager (address): 0xAf0DFFAC1CE85c3fCe4c2BF50073251F615EefC4
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000af0dffac1ce85c3fce4c2bf50073251f615eefc4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.