Overview
CRO Balance
0 CRO
CRO Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Whitelist | 15425082 | 114 days ago | IN | 0 CRO | 0.23264477 | ||||
Set Whitelist | 15425021 | 114 days ago | IN | 0 CRO | 0.13440575 | ||||
Set Whitelist | 15425002 | 114 days ago | IN | 0 CRO | 0.1357365 | ||||
Set Whitelist | 15424722 | 114 days ago | IN | 0 CRO | 0.16634521 | ||||
Set Whitelist | 14462554 | 177 days ago | IN | 0 CRO | 0.13440575 | ||||
Set Whitelist | 14462360 | 177 days ago | IN | 0 CRO | 0.23490075 | ||||
Set Staking Pool | 13491452 | 241 days ago | IN | 0 CRO | 0.23551765 | ||||
Set Payment Cont... | 13491446 | 241 days ago | IN | 0 CRO | 0.25896053 | ||||
Set Reward Holde... | 13491440 | 241 days ago | IN | 0 CRO | 0.2350674 | ||||
Set Reward Contr... | 13491434 | 241 days ago | IN | 0 CRO | 0.23623395 |
Loading...
Loading
Contract Name:
EarnStakingManager
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.15; import "@openzeppelin/contracts/access/Ownable.sol"; import "./IEarnStakingManager.sol"; import "./EarnAssetController.sol"; contract EarnStakingManager is Ownable, IEarnStakingManager, EarnAssetController { // ************ MODIFIERS ************ // modifier noAddressZero(address adr) { require(adr != address(0), "ESM: Wrong Address"); _; } // ************ EVENTS ************ // event NewTreasury(address indexed newTreasury); event NewSigner(address indexed newSigner); event Payed( uint256 indexed paymentType, address payer, address paymentToken, uint256 amount, uint256 nonce ); event StakePositionUpdate( address indexed staker, bytes32 indexed assetId, uint256 transactionNonce, uint256 newUserStakedAmount, uint256 newTotalStakedAmount, uint256 txIndex, uint256 timestamp, uint256 newUnstakeTimestamp, uint256[] erc721TokenIds, bool liquidated ); event RewardExecuted( address indexed from, uint256 indexed nonce, address rewardToken, uint256 rewardAmount, uint256 erc721TokenId, uint256[] erc721TokenIds, bool isWithdrawTx ); event NonceProcessed(address indexed addr, uint256 amount, uint256 nonce); // ************ VARIABLES ************ // mapping(address => bool) internal _paymentContractStatus; mapping(address => bool) internal _rewardsContractStatus; mapping(address => bool) internal _whitelist; address internal _rewardHolderContract; address internal _stakingPoolContract; address internal _treasury; address internal _signer; address internal _weth; // ************ CONSTRUCTOR ************ // constructor(address treasury_, address signer_, address weth_) { _treasury = treasury_; _signer = signer_; _weth = weth_; } // ************ VIEW FUNCTIONS ************ // function stakingPoolContract() external view returns (address) { return _stakingPoolContract; } function whitelisted(address addr) external view returns (bool) { return _whitelist[addr]; } function rewardsHolderContract() external view returns (address) { return _rewardHolderContract; } function paymentContractStatus( address paymentContract ) external view returns (bool) { return _paymentContractStatus[paymentContract]; } function rewardsContractStatus( address rewardsContract ) external view returns (bool) { return _rewardsContractStatus[rewardsContract]; } function treasury() external view returns (address) { return _treasury; } function signer() external view returns (address) { return _signer; } function WETH() external view returns (address) { return _weth; } function admin() external view returns (address) { return owner(); } // ************ ASSETS FUNCTIONS ************ // function getOrCreateAsset( bytes32 _assetId, address _assetAddress, uint256 _erc1155TokenId, AssetType _assetType ) external returns (Asset memory) { return _getOrCreateAsset( _assetId, _assetAddress, _erc1155TokenId, _assetType ); } function getAssetId( address _assetAddress, uint256 _erc1155TokenId, AssetType _assetType ) external pure returns (bytes32) { return _calculateAssetId(_assetAddress, _erc1155TokenId, _assetType); } function getAssetById( bytes32 _assetId ) external view returns (Asset memory) { return _assets[_assetId]; } function assets( bytes32 _assetId ) external view returns (Asset memory asset) { return _assets[_assetId]; } // ************ STAKING FUNCTIONS ************ // function stakePositionUpdate( address staker, bytes32 assetId, uint256 transactionNonce, uint256 newUserStakedAmount, uint256 newTotalStakedAmount, uint256 transactionIndex, uint256 timestamp, uint256 unstakeTimestamp, uint256[] memory erc721TokenIds, bool liquidated ) external { require(msg.sender == _stakingPoolContract); emit StakePositionUpdate( staker, assetId, transactionNonce, newUserStakedAmount, newTotalStakedAmount, transactionIndex, timestamp, unstakeTimestamp, erc721TokenIds, liquidated ); } // ************ PAYMENT FUNCTIONS ************ // function pay( address payer, uint256 paymentType, address paymentToken, uint256 amount, uint256 nonce ) external { require( _paymentContractStatus[msg.sender], "ESM: Only Payment Contracts" ); emit Payed(paymentType, payer, paymentToken, amount, nonce); } // ************ REWARD FUNCTIONS ************ // function execReward( address from, uint256 nonce, address rewardToken, uint256 rewardAmount, uint256 erc1155TokenId, uint256[] memory erc721TokenIds, bool isWithdrawTx ) external { require( msg.sender == _rewardHolderContract || _rewardsContractStatus[msg.sender], "ESM: Only Reward Contracts" ); emit RewardExecuted( from, nonce, rewardToken, rewardAmount, erc1155TokenId, erc721TokenIds, isWithdrawTx ); } // ************ ADMIN FUNCTIONS ************ // function setStakingPool( address stakingPool ) external noAddressZero(stakingPool) onlyOwner { require( _stakingPoolContract == address(0), "ESM: Staking Pool Already Set" ); _stakingPoolContract = stakingPool; } function setTreasury( address newTreasury ) external noAddressZero(newTreasury) onlyOwner { _treasury = newTreasury; emit NewTreasury(newTreasury); } function setSigner( address newSigner ) external noAddressZero(newSigner) onlyOwner { _signer = newSigner; emit NewSigner(newSigner); } function setPaymentContractStatus( address paymentContract, bool status ) external onlyOwner { _paymentContractStatus[paymentContract] = status; } function setRewardHolderContract( address rewardHolderContractAddress ) external noAddressZero(rewardHolderContractAddress) onlyOwner { _rewardHolderContract = rewardHolderContractAddress; } function setRewardContractStatus( address rewardContract, bool status ) external onlyOwner { _rewardsContractStatus[rewardContract] = status; } function setWhitelist(address addr, bool status) external onlyOwner { _whitelist[addr] = status; } // ************ OTHER FUNCTIONS ************ // function emitNonce(address addr, uint256 amount, uint256 nonce) external { require(_whitelist[msg.sender], "ESM: Not Whitelisted"); emit NonceProcessed(addr, amount, nonce); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.15; import {Asset, AssetType} from "./EarnAssetTypes.sol"; contract EarnAssetController { //asset id => Asset mapping(bytes32 => Asset) internal _assets; function _getOrCreateAsset( bytes32 _assetId, address _assetAddress, uint256 _erc1155TokenId, AssetType _assetType ) internal returns (Asset memory) { Asset memory sa = _assets[_assetId]; if (sa.assetType == AssetType.UNDEFINED) { bytes32 newAssetId = _calculateAssetId( _assetAddress, _erc1155TokenId, _assetType ); if (_assetId != 0) { require(newAssetId == _assetId, "EAC: assetId mismatch"); } sa = Asset({ assetAddress: _assetAddress, erc1155TokenId: _erc1155TokenId, assetType: _assetType }); _assets[newAssetId] = sa; } return sa; } function _calculateAssetId( address _assetAddress, uint256 _erc1155TokenId, AssetType _assetType ) internal pure returns (bytes32) { require( _assetType != AssetType.UNDEFINED, "EAC: assetType cannot be UNDEFINED" ); return keccak256( abi.encodePacked(_assetAddress, _erc1155TokenId, _assetType) ); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.15; enum AssetType { UNDEFINED, ERC20, ERC721, ERC1155, NATIVE } struct Asset { address assetAddress; uint256 erc1155TokenId; AssetType assetType; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.15; import {Asset, AssetType} from "./EarnAssetTypes.sol"; interface IEarnStakingManager { function treasury() external view returns (address); function signer() external view returns (address); function rewardsHolderContract() external view returns (address); function stakePositionUpdate( address staker, bytes32 assetId, uint256 transactionNonce, uint256 newUserStakedAmount, uint256 newTotalStakedAmount, uint256 transactionIndex, uint256 timestamp, uint256 unstakeTimestamp, uint256[] memory erc721TokenIds, bool liquidated ) external; function pay( address payer, uint256 paymentType, address paymentToken, uint256 amount, uint256 nonce ) external; function execReward( address from, uint256 nonce, address rewardToken, uint256 rewardAmount, uint256 erc1155TokenId, uint256[] memory erc721TokenIds, bool isWithdrawTx ) external; function WETH() external view returns (address); function getOrCreateAsset( bytes32 _assetId, address _assetAddress, uint256 _erc1155TokenId, AssetType _assetType ) external returns (Asset memory); function getAssetById(bytes32 _assetId) external view returns (Asset memory); function getAssetId( address _assetAddress, uint256 _erc1155TokenId, AssetType _assetType ) external pure returns (bytes32); function assets(bytes32 _assetId) external view returns (Asset memory asset); function admin() external view returns (address); function emitNonce(address addr, uint256 amount, uint256 nonce) external; }
{ "evmVersion": "paris", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 12 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"treasury_","type":"address"},{"internalType":"address","name":"signer_","type":"address"},{"internalType":"address","name":"weth_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newSigner","type":"address"}],"name":"NewSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newTreasury","type":"address"}],"name":"NewTreasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"NonceProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"paymentType","type":"uint256"},{"indexed":false,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"address","name":"paymentToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Payed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"address","name":"rewardToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"erc721TokenId","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"erc721TokenIds","type":"uint256[]"},{"indexed":false,"internalType":"bool","name":"isWithdrawTx","type":"bool"}],"name":"RewardExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":true,"internalType":"bytes32","name":"assetId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"transactionNonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newUserStakedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalStakedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newUnstakeTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"erc721TokenIds","type":"uint256[]"},{"indexed":false,"internalType":"bool","name":"liquidated","type":"bool"}],"name":"StakePositionUpdate","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_assetId","type":"bytes32"}],"name":"assets","outputs":[{"components":[{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"erc1155TokenId","type":"uint256"},{"internalType":"enum AssetType","name":"assetType","type":"uint8"}],"internalType":"struct Asset","name":"asset","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"emitNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"rewardToken","type":"address"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"uint256","name":"erc1155TokenId","type":"uint256"},{"internalType":"uint256[]","name":"erc721TokenIds","type":"uint256[]"},{"internalType":"bool","name":"isWithdrawTx","type":"bool"}],"name":"execReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_assetId","type":"bytes32"}],"name":"getAssetById","outputs":[{"components":[{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"erc1155TokenId","type":"uint256"},{"internalType":"enum AssetType","name":"assetType","type":"uint8"}],"internalType":"struct Asset","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_assetAddress","type":"address"},{"internalType":"uint256","name":"_erc1155TokenId","type":"uint256"},{"internalType":"enum AssetType","name":"_assetType","type":"uint8"}],"name":"getAssetId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_assetId","type":"bytes32"},{"internalType":"address","name":"_assetAddress","type":"address"},{"internalType":"uint256","name":"_erc1155TokenId","type":"uint256"},{"internalType":"enum AssetType","name":"_assetType","type":"uint8"}],"name":"getOrCreateAsset","outputs":[{"components":[{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"erc1155TokenId","type":"uint256"},{"internalType":"enum AssetType","name":"assetType","type":"uint8"}],"internalType":"struct Asset","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"uint256","name":"paymentType","type":"uint256"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"paymentContract","type":"address"}],"name":"paymentContractStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardsContract","type":"address"}],"name":"rewardsContractStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsHolderContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"paymentContract","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPaymentContractStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardContract","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setRewardContractStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rewardHolderContractAddress","type":"address"}],"name":"setRewardHolderContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newSigner","type":"address"}],"name":"setSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakingPool","type":"address"}],"name":"setStakingPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTreasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"bytes32","name":"assetId","type":"bytes32"},{"internalType":"uint256","name":"transactionNonce","type":"uint256"},{"internalType":"uint256","name":"newUserStakedAmount","type":"uint256"},{"internalType":"uint256","name":"newTotalStakedAmount","type":"uint256"},{"internalType":"uint256","name":"transactionIndex","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"unstakeTimestamp","type":"uint256"},{"internalType":"uint256[]","name":"erc721TokenIds","type":"uint256[]"},{"internalType":"bool","name":"liquidated","type":"bool"}],"name":"stakePositionUpdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingPoolContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620013bd380380620013bd8339810160408190526200003491620000ef565b6200003f3362000082565b600780546001600160a01b039485166001600160a01b03199182161790915560088054938516938216939093179092556009805491909316911617905562000139565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000ea57600080fd5b919050565b6000806000606084860312156200010557600080fd5b6200011084620000d2565b92506200012060208501620000d2565b91506200013060408501620000d2565b90509250925092565b61127480620001496000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c8063018d9e991461014e578063177d1c1a1461018f578063238ac933146101a45780632a9535ff146101c95780633028f63a146101da57806341832567146101ed57806353d6fd591461020d5780635770f1ba1461022057806361d027b31461024c5780636c19e7831461025d578063715018a6146102705780638203c664146102785780638a198d1e1461028b5780638da5cb5b1461029e5780639fda5b66146101ed578063ad5c4648146102a6578063b0f5637f146102b7578063c63436ec146102ca578063cf6cfa25146102dd578063d154a2ea146102f0578063d936547e14610303578063e31aff2a1461032f578063e35c93aa14610342578063e6a1ee0214610363578063f0f4426014610374578063f2fde38b14610387578063f851a4401461039a575b600080fd5b61017a61015c366004610d29565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101a261019d366004610e0b565b6103a2565b005b6008546001600160a01b03165b6040516001600160a01b039091168152602001610186565b6006546001600160a01b03166101b1565b6101a26101e8366004610d29565b610415565b6102006101fb366004610eae565b6104c9565b6040516101869190610edd565b6101a261021b366004610f29565b61053e565b61017a61022e366004610d29565b6001600160a01b031660009081526003602052604090205460ff1690565b6007546001600160a01b03166101b1565b6101a261026b366004610d29565b610571565b6101a26105eb565b6101a2610286366004610f5c565b6105ff565b6101a2610299366004610fe7565b6106c3565b6101b161077b565b6009546001600160a01b03166101b1565b6101a26102c5366004611035565b61078a565b6101a26102d8366004610f29565b610829565b6101a26102eb366004610f29565b61085c565b6101a26102fe366004610d29565b61088f565b61017a610311366004610d29565b6001600160a01b031660009081526004602052604090205460ff1690565b61020061033d366004611077565b6108e1565b6103556103503660046110bd565b6108fe565b604051908152602001610186565b6005546001600160a01b03166101b1565b6101a2610382366004610d29565b610913565b6101a2610395366004610d29565b61098d565b6101b1610a06565b6006546001600160a01b031633146103b957600080fd5b888a6001600160a01b03167fe2c69a4f1d8540e0ba6a2d2e4fa3d6b0bed5a73b4746866fd709684d3ada47958a8a8a8a8a8a8a8a604051610401989796959493929190611134565b60405180910390a350505050505050505050565b806001600160a01b0381166104455760405162461bcd60e51b815260040161043c90611184565b60405180910390fd5b61044d610a15565b6006546001600160a01b0316156104a65760405162461bcd60e51b815260206004820152601d60248201527f45534d3a205374616b696e6720506f6f6c20416c726561647920536574000000604482015260640161043c565b50600680546001600160a01b0319166001600160a01b0392909216919091179055565b6104d1610cef565b600082815260016020818152604092839020835160608101855281546001600160a01b0316815292810154918301919091526002810154919290919083019060ff16600481111561052457610524610ec7565b600481111561053557610535610ec7565b90525092915050565b610546610a15565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b806001600160a01b0381166105985760405162461bcd60e51b815260040161043c90611184565b6105a0610a15565b600880546001600160a01b0319166001600160a01b0384169081179091556040517fffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb90600090a25050565b6105f3610a15565b6105fd6000610a74565b565b6005546001600160a01b031633148061062757503360009081526003602052604090205460ff165b6106705760405162461bcd60e51b815260206004820152601a60248201527945534d3a204f6e6c792052657761726420436f6e74726163747360301b604482015260640161043c565b85876001600160a01b03167f2330e278fd8df2cd15ab4edacb5a8a1b0de2e49417e1f1c769b2bff15eb13f9b87878787876040516106b29594939291906111b0565b60405180910390a350505050505050565b3360009081526002602052604090205460ff166107205760405162461bcd60e51b815260206004820152601b60248201527a45534d3a204f6e6c79205061796d656e7420436f6e74726163747360281b604482015260640161043c565b604080516001600160a01b038088168252851660208201529081018390526060810182905284907fcb9f0be262ad3b430b428c9abdee45cf658196c34d6e8e16af16fbeae7923f389060800160405180910390a25050505050565b6000546001600160a01b031690565b3360009081526004602052604090205460ff166107e05760405162461bcd60e51b81526020600482015260146024820152731154d34e88139bdd0815da1a5d195b1a5cdd195960621b604482015260640161043c565b60408051838152602081018390526001600160a01b038516917ffbe83ff766b1cae90598a749651b82a37f3f0a3540a7a10dd29bbd8475b5f3bb910160405180910390a2505050565b610831610a15565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b610864610a15565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b806001600160a01b0381166108b65760405162461bcd60e51b815260040161043c90611184565b6108be610a15565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b6108e9610cef565b6108f585858585610ac4565b95945050505050565b600061090b848484610c4e565b949350505050565b806001600160a01b03811661093a5760405162461bcd60e51b815260040161043c90611184565b610942610a15565b600780546001600160a01b0319166001600160a01b0384169081179091556040517fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea08690600090a25050565b610995610a15565b6001600160a01b0381166109fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161043c565b610a0381610a74565b50565b6000610a1061077b565b905090565b33610a1e61077b565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610acc610cef565b6000858152600160208181526040808420815160608101835281546001600160a01b03168152938101549284019290925260028201549083019060ff166004811115610b1a57610b1a610ec7565b6004811115610b2b57610b2b610ec7565b9052509050600081604001516004811115610b4857610b48610ec7565b036108f5576000610b5a868686610c4e565b90508615610ba957868114610ba95760405162461bcd60e51b815260206004820152601560248201527408a82867440c2e6e6cae892c840dad2e6dac2e8c6d605b1b604482015260640161043c565b6040518060600160405280876001600160a01b03168152602001868152602001856004811115610bdb57610bdb610ec7565b9052600082815260016020818152604092839020845181546001600160a01b0319166001600160a01b0390911617815590840151818301559183015160028301805494965086949192909160ff191690836004811115610c3d57610c3d610ec7565b021790555050505095945050505050565b600080826004811115610c6357610c63610ec7565b03610cbb5760405162461bcd60e51b815260206004820152602260248201527f4541433a206173736574547970652063616e6e6f7420626520554e444546494e604482015261115160f21b606482015260840161043c565b838383604051602001610cd0939291906111f1565b6040516020818303038152906040528051906020012090509392505050565b60408051606081018252600080825260208201819052909182015290565b80356001600160a01b0381168114610d2457600080fd5b919050565b600060208284031215610d3b57600080fd5b610d4482610d0d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7257600080fd5b813560206001600160401b0380831115610d8e57610d8e610d4b565b8260051b604051601f19603f83011681018181108482111715610db357610db3610d4b565b604052938452858101830193838101925087851115610dd157600080fd5b83870191505b84821015610df057813583529183019190830190610dd7565b979650505050505050565b80358015158114610d2457600080fd5b6000806000806000806000806000806101408b8d031215610e2b57600080fd5b610e348b610d0d565b995060208b0135985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b01356001600160401b03811115610e8157600080fd5b610e8d8d828e01610d61565b925050610e9d6101208c01610dfb565b90509295989b9194979a5092959850565b600060208284031215610ec057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b81516001600160a01b03168152602080830151908201526040820151606082019060058110610f1c57634e487b7160e01b600052602160045260246000fd5b8060408401525092915050565b60008060408385031215610f3c57600080fd5b610f4583610d0d565b9150610f5360208401610dfb565b90509250929050565b600080600080600080600060e0888a031215610f7757600080fd5b610f8088610d0d565b965060208801359550610f9560408901610d0d565b9450606088013593506080880135925060a08801356001600160401b03811115610fbe57600080fd5b610fca8a828b01610d61565b925050610fd960c08901610dfb565b905092959891949750929550565b600080600080600060a08688031215610fff57600080fd5b61100886610d0d565b94506020860135935061101d60408701610d0d565b94979396509394606081013594506080013592915050565b60008060006060848603121561104a57600080fd5b61105384610d0d565b95602085013595506040909401359392505050565b803560058110610d2457600080fd5b6000806000806080858703121561108d57600080fd5b8435935061109d60208601610d0d565b9250604085013591506110b260608601611068565b905092959194509250565b6000806000606084860312156110d257600080fd5b6110db84610d0d565b9250602084013591506110f060408501611068565b90509250925092565b600081518084526020808501945080840160005b838110156111295781518752958201959082019060010161110d565b509495945050505050565b60006101008a83528960208401528860408401528760608401528660808401528560a08401528060c084015261116c818401866110f9565b91505082151560e08301529998505050505050505050565b60208082526012908201527145534d3a2057726f6e67204164647265737360701b604082015260600190565b60018060a01b038616815284602082015283604082015260a0606082015260006111dd60a08301856110f9565b905082151560808301529695505050505050565b606084901b6001600160601b03191681526014810183905260006005831061122957634e487b7160e01b600052602160045260246000fd5b5060f89190911b60348201526035019291505056fea26469706673582212205a8a799153f01aa61c91582707c3264544de9b98a2e09da9a161cbb013afaef464736f6c6343000814003300000000000000000000000077338041539558854ae4d163783aa18f19328bfa00000000000000000000000087a7d331520b96886384d09e1b33826afec70c1c0000000000000000000000005c7f8a570d578ed84e63fdfa7b1ee72deae1ae23
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101495760003560e01c8063018d9e991461014e578063177d1c1a1461018f578063238ac933146101a45780632a9535ff146101c95780633028f63a146101da57806341832567146101ed57806353d6fd591461020d5780635770f1ba1461022057806361d027b31461024c5780636c19e7831461025d578063715018a6146102705780638203c664146102785780638a198d1e1461028b5780638da5cb5b1461029e5780639fda5b66146101ed578063ad5c4648146102a6578063b0f5637f146102b7578063c63436ec146102ca578063cf6cfa25146102dd578063d154a2ea146102f0578063d936547e14610303578063e31aff2a1461032f578063e35c93aa14610342578063e6a1ee0214610363578063f0f4426014610374578063f2fde38b14610387578063f851a4401461039a575b600080fd5b61017a61015c366004610d29565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101a261019d366004610e0b565b6103a2565b005b6008546001600160a01b03165b6040516001600160a01b039091168152602001610186565b6006546001600160a01b03166101b1565b6101a26101e8366004610d29565b610415565b6102006101fb366004610eae565b6104c9565b6040516101869190610edd565b6101a261021b366004610f29565b61053e565b61017a61022e366004610d29565b6001600160a01b031660009081526003602052604090205460ff1690565b6007546001600160a01b03166101b1565b6101a261026b366004610d29565b610571565b6101a26105eb565b6101a2610286366004610f5c565b6105ff565b6101a2610299366004610fe7565b6106c3565b6101b161077b565b6009546001600160a01b03166101b1565b6101a26102c5366004611035565b61078a565b6101a26102d8366004610f29565b610829565b6101a26102eb366004610f29565b61085c565b6101a26102fe366004610d29565b61088f565b61017a610311366004610d29565b6001600160a01b031660009081526004602052604090205460ff1690565b61020061033d366004611077565b6108e1565b6103556103503660046110bd565b6108fe565b604051908152602001610186565b6005546001600160a01b03166101b1565b6101a2610382366004610d29565b610913565b6101a2610395366004610d29565b61098d565b6101b1610a06565b6006546001600160a01b031633146103b957600080fd5b888a6001600160a01b03167fe2c69a4f1d8540e0ba6a2d2e4fa3d6b0bed5a73b4746866fd709684d3ada47958a8a8a8a8a8a8a8a604051610401989796959493929190611134565b60405180910390a350505050505050505050565b806001600160a01b0381166104455760405162461bcd60e51b815260040161043c90611184565b60405180910390fd5b61044d610a15565b6006546001600160a01b0316156104a65760405162461bcd60e51b815260206004820152601d60248201527f45534d3a205374616b696e6720506f6f6c20416c726561647920536574000000604482015260640161043c565b50600680546001600160a01b0319166001600160a01b0392909216919091179055565b6104d1610cef565b600082815260016020818152604092839020835160608101855281546001600160a01b0316815292810154918301919091526002810154919290919083019060ff16600481111561052457610524610ec7565b600481111561053557610535610ec7565b90525092915050565b610546610a15565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b806001600160a01b0381166105985760405162461bcd60e51b815260040161043c90611184565b6105a0610a15565b600880546001600160a01b0319166001600160a01b0384169081179091556040517fffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb90600090a25050565b6105f3610a15565b6105fd6000610a74565b565b6005546001600160a01b031633148061062757503360009081526003602052604090205460ff165b6106705760405162461bcd60e51b815260206004820152601a60248201527945534d3a204f6e6c792052657761726420436f6e74726163747360301b604482015260640161043c565b85876001600160a01b03167f2330e278fd8df2cd15ab4edacb5a8a1b0de2e49417e1f1c769b2bff15eb13f9b87878787876040516106b29594939291906111b0565b60405180910390a350505050505050565b3360009081526002602052604090205460ff166107205760405162461bcd60e51b815260206004820152601b60248201527a45534d3a204f6e6c79205061796d656e7420436f6e74726163747360281b604482015260640161043c565b604080516001600160a01b038088168252851660208201529081018390526060810182905284907fcb9f0be262ad3b430b428c9abdee45cf658196c34d6e8e16af16fbeae7923f389060800160405180910390a25050505050565b6000546001600160a01b031690565b3360009081526004602052604090205460ff166107e05760405162461bcd60e51b81526020600482015260146024820152731154d34e88139bdd0815da1a5d195b1a5cdd195960621b604482015260640161043c565b60408051838152602081018390526001600160a01b038516917ffbe83ff766b1cae90598a749651b82a37f3f0a3540a7a10dd29bbd8475b5f3bb910160405180910390a2505050565b610831610a15565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b610864610a15565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b806001600160a01b0381166108b65760405162461bcd60e51b815260040161043c90611184565b6108be610a15565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b6108e9610cef565b6108f585858585610ac4565b95945050505050565b600061090b848484610c4e565b949350505050565b806001600160a01b03811661093a5760405162461bcd60e51b815260040161043c90611184565b610942610a15565b600780546001600160a01b0319166001600160a01b0384169081179091556040517fafa147634b29e2c7bd53ce194256b9f41cfb9ba3036f2b822fdd1d965beea08690600090a25050565b610995610a15565b6001600160a01b0381166109fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161043c565b610a0381610a74565b50565b6000610a1061077b565b905090565b33610a1e61077b565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161043c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610acc610cef565b6000858152600160208181526040808420815160608101835281546001600160a01b03168152938101549284019290925260028201549083019060ff166004811115610b1a57610b1a610ec7565b6004811115610b2b57610b2b610ec7565b9052509050600081604001516004811115610b4857610b48610ec7565b036108f5576000610b5a868686610c4e565b90508615610ba957868114610ba95760405162461bcd60e51b815260206004820152601560248201527408a82867440c2e6e6cae892c840dad2e6dac2e8c6d605b1b604482015260640161043c565b6040518060600160405280876001600160a01b03168152602001868152602001856004811115610bdb57610bdb610ec7565b9052600082815260016020818152604092839020845181546001600160a01b0319166001600160a01b0390911617815590840151818301559183015160028301805494965086949192909160ff191690836004811115610c3d57610c3d610ec7565b021790555050505095945050505050565b600080826004811115610c6357610c63610ec7565b03610cbb5760405162461bcd60e51b815260206004820152602260248201527f4541433a206173736574547970652063616e6e6f7420626520554e444546494e604482015261115160f21b606482015260840161043c565b838383604051602001610cd0939291906111f1565b6040516020818303038152906040528051906020012090509392505050565b60408051606081018252600080825260208201819052909182015290565b80356001600160a01b0381168114610d2457600080fd5b919050565b600060208284031215610d3b57600080fd5b610d4482610d0d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610d7257600080fd5b813560206001600160401b0380831115610d8e57610d8e610d4b565b8260051b604051601f19603f83011681018181108482111715610db357610db3610d4b565b604052938452858101830193838101925087851115610dd157600080fd5b83870191505b84821015610df057813583529183019190830190610dd7565b979650505050505050565b80358015158114610d2457600080fd5b6000806000806000806000806000806101408b8d031215610e2b57600080fd5b610e348b610d0d565b995060208b0135985060408b0135975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013592506101008b01356001600160401b03811115610e8157600080fd5b610e8d8d828e01610d61565b925050610e9d6101208c01610dfb565b90509295989b9194979a5092959850565b600060208284031215610ec057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b81516001600160a01b03168152602080830151908201526040820151606082019060058110610f1c57634e487b7160e01b600052602160045260246000fd5b8060408401525092915050565b60008060408385031215610f3c57600080fd5b610f4583610d0d565b9150610f5360208401610dfb565b90509250929050565b600080600080600080600060e0888a031215610f7757600080fd5b610f8088610d0d565b965060208801359550610f9560408901610d0d565b9450606088013593506080880135925060a08801356001600160401b03811115610fbe57600080fd5b610fca8a828b01610d61565b925050610fd960c08901610dfb565b905092959891949750929550565b600080600080600060a08688031215610fff57600080fd5b61100886610d0d565b94506020860135935061101d60408701610d0d565b94979396509394606081013594506080013592915050565b60008060006060848603121561104a57600080fd5b61105384610d0d565b95602085013595506040909401359392505050565b803560058110610d2457600080fd5b6000806000806080858703121561108d57600080fd5b8435935061109d60208601610d0d565b9250604085013591506110b260608601611068565b905092959194509250565b6000806000606084860312156110d257600080fd5b6110db84610d0d565b9250602084013591506110f060408501611068565b90509250925092565b600081518084526020808501945080840160005b838110156111295781518752958201959082019060010161110d565b509495945050505050565b60006101008a83528960208401528860408401528760608401528660808401528560a08401528060c084015261116c818401866110f9565b91505082151560e08301529998505050505050505050565b60208082526012908201527145534d3a2057726f6e67204164647265737360701b604082015260600190565b60018060a01b038616815284602082015283604082015260a0606082015260006111dd60a08301856110f9565b905082151560808301529695505050505050565b606084901b6001600160601b03191681526014810183905260006005831061122957634e487b7160e01b600052602160045260246000fd5b5060f89190911b60348201526035019291505056fea26469706673582212205a8a799153f01aa61c91582707c3264544de9b98a2e09da9a161cbb013afaef464736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000077338041539558854ae4d163783aa18f19328bfa00000000000000000000000087a7d331520b96886384d09e1b33826afec70c1c0000000000000000000000005c7f8a570d578ed84e63fdfa7b1ee72deae1ae23
-----Decoded View---------------
Arg [0] : treasury_ (address): 0x77338041539558854Ae4d163783Aa18F19328BfA
Arg [1] : signer_ (address): 0x87a7D331520B96886384d09e1B33826aFec70C1c
Arg [2] : weth_ (address): 0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000077338041539558854ae4d163783aa18f19328bfa
Arg [1] : 00000000000000000000000087a7d331520b96886384d09e1b33826afec70c1c
Arg [2] : 0000000000000000000000005c7f8a570d578ed84e63fdfa7b1ee72deae1ae23
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.