More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 48 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake | 17146633 | 33 hrs ago | IN | 1 CRO | 0.38238095 | ||||
Request Withdraw... | 17132588 | 2 days ago | IN | 0 CRO | 0.23601232 | ||||
Stake | 17132540 | 2 days ago | IN | 1 CRO | 0.38238095 | ||||
Stake | 17131084 | 2 days ago | IN | 1 CRO | 0.38226737 | ||||
Stake | 17130919 | 2 days ago | IN | 1 CRO | 0.38238095 | ||||
Stake | 17129698 | 2 days ago | IN | 1 CRO | 0.38226737 | ||||
Request Withdraw... | 17129677 | 2 days ago | IN | 0 CRO | 0.23601232 | ||||
Stake | 17129656 | 2 days ago | IN | 1 CRO | 0.80916348 | ||||
Request Withdraw... | 17128006 | 2 days ago | IN | 0 CRO | 0.23608245 | ||||
Stake | 17118210 | 3 days ago | IN | 1 CRO | 0.46879655 | ||||
Immediate Withdr... | 17118072 | 3 days ago | IN | 0 CRO | 0.339158 | ||||
Withdraw | 17118030 | 3 days ago | IN | 0 CRO | 0.88375 | ||||
Stake | 17109062 | 3 days ago | IN | 1 CRO | 0.38232035 | ||||
Stake | 17088621 | 5 days ago | IN | 1 CRO | 0.8094645 | ||||
Stake | 17033275 | 9 days ago | IN | 1 CRO | 0.5701551 | ||||
Stake | 17014573 | 10 days ago | IN | 1 CRO | 0.46873595 | ||||
Stake | 17014325 | 10 days ago | IN | 1 CRO | 0.89555341 | ||||
Clear Volume | 16997219 | 11 days ago | IN | 0 CRO | 0.505 | ||||
Stake | 16893950 | 18 days ago | IN | 1 CRO | 0.6565101 | ||||
Set Swap Pro Con... | 16803945 | 24 days ago | IN | 0 CRO | 0.14644495 | ||||
Clear Volume | 16803729 | 24 days ago | IN | 0 CRO | 0.88375 | ||||
Stake | 16775977 | 26 days ago | IN | 1 CRO | 0.38225975 | ||||
Stake | 16739304 | 28 days ago | IN | 1 CRO | 0.38238095 | ||||
Stake | 16739292 | 28 days ago | IN | 1 CRO | 0.8094039 | ||||
Stake | 16728675 | 29 days ago | IN | 1 CRO | 0.38244155 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Staking
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; /** * @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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @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 { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _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); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 value ) external returns (bool); } // File: ARY/HardStake.sol pragma solidity ^0.8.0; interface ISwapPro { function userVolume(address user) external view returns (uint256); } contract Staking is Ownable { IERC20 public aryToken; ISwapPro public swapProContract; address public feeReceiver; uint256 public depositFeeCRO = 1 ether; // 1 CRO fee for deposits uint256 public constant FEE_PERCENTAGE = 300; // 0.3% fee in basis points uint256 public constant CLAIM_PERCENTAGE = 50; // 50% of fee returned to staker uint256 public constant WITHDRAWAL_LOCK_PERIOD = 5 days; uint256 public constant IMMEDIATE_WITHDRAWAL_FEE_PERCENTAGE = 12; // 12% immediate uint256 public totalStaked; struct Staker { uint256 stakedAmount; uint256 lastClaimedVolume; uint256 withdrawalRequestTime; bool exists; } mapping(address => Staker) public stakers; address[] public stakerList; event Staked(address indexed user, uint256 amount); event Unstaked(address indexed user, uint256 amount); event FeesClaimed(address indexed user, uint256 reward); event WithdrawalRequested(address indexed user); event ImmediateWithdrawal( address indexed user, uint256 amount, uint256 fee ); event EmergencyWithdrawal(address indexed owner, uint256 amount); constructor( address _aryToken, address _swapProContract, address _feeReceiver ) Ownable(msg.sender) { aryToken = IERC20(_aryToken); swapProContract = ISwapPro(_swapProContract); feeReceiver = _feeReceiver; } modifier onlySwapPro() { require( msg.sender == address(swapProContract), "Unauthorized: Only SwapPro can call" ); _; } function setSwapProContract(address _swapProContract) external onlyOwner { swapProContract = ISwapPro(_swapProContract); } function stake(uint256 amount) external payable { require(amount > 0, "Staking amount must be positive"); require( msg.value == depositFeeCRO, "A deposit fee of 1 CRO is required" ); uint256 userVolume = swapProContract.userVolume(msg.sender); uint256 maxStakableAmount = userVolume / 100; // 1% of volume require( amount + stakers[msg.sender].stakedAmount <= maxStakableAmount, "Cannot stake more than 1% of your volume" ); aryToken.transferFrom(msg.sender, address(this), amount); if (!stakers[msg.sender].exists) { stakers[msg.sender].exists = true; stakerList.push(msg.sender); } stakers[msg.sender].stakedAmount += amount; totalStaked += amount; // Initialize lastClaimedVolume if first time staking if (stakers[msg.sender].lastClaimedVolume == 0) { stakers[msg.sender].lastClaimedVolume = userVolume; } emit Staked(msg.sender, amount); } function claimFees() external { Staker storage staker = stakers[msg.sender]; require(staker.stakedAmount > 0, "No staked amount"); uint256 currentVolume = swapProContract.userVolume(msg.sender); require( currentVolume > staker.lastClaimedVolume, "No new volume since last claim" ); uint256 newVolume = currentVolume - staker.lastClaimedVolume; uint256 feeIncurred = (newVolume * FEE_PERCENTAGE) / 100000; // Calculate 0.3% fee uint256 reward = (feeIncurred * CLAIM_PERCENTAGE) / 100; // 50% to user require(reward > 0, "No fees to claim"); staker.lastClaimedVolume = currentVolume; aryToken.transfer(msg.sender, reward); emit FeesClaimed(msg.sender, reward); } function requestWithdrawal() external { Staker storage staker = stakers[msg.sender]; require(staker.stakedAmount > 0, "No staked amount to withdraw"); require( staker.withdrawalRequestTime == 0, "Withdrawal already requested" ); staker.withdrawalRequestTime = block.timestamp; emit WithdrawalRequested(msg.sender); } function withdraw() external { Staker storage staker = stakers[msg.sender]; require(staker.stakedAmount > 0, "No staked amount to withdraw"); require(staker.withdrawalRequestTime > 0, "No withdrawal requested"); require( block.timestamp >= staker.withdrawalRequestTime + WITHDRAWAL_LOCK_PERIOD, "Withdrawal not yet unlocked" ); uint256 amount = staker.stakedAmount; staker.stakedAmount = 0; staker.withdrawalRequestTime = 0; totalStaked -= amount; aryToken.transfer(msg.sender, amount); emit Unstaked(msg.sender, amount); } function immediateWithdraw() external { Staker storage staker = stakers[msg.sender]; require(staker.stakedAmount > 0, "No staked amount to withdraw"); uint256 amount = staker.stakedAmount; uint256 fee = (amount * IMMEDIATE_WITHDRAWAL_FEE_PERCENTAGE) / 100; uint256 netAmount = amount - fee; staker.stakedAmount = 0; staker.withdrawalRequestTime = 0; totalStaked -= amount; aryToken.transfer(msg.sender, netAmount); aryToken.transfer(feeReceiver, fee); emit ImmediateWithdrawal(msg.sender, amount, fee); } function clearVolume() external { require(msg.sender == address(swapProContract), "Unauthorized"); for (uint256 i = 0; i < stakerList.length; i++) { address stakerAddr = stakerList[i]; Staker storage staker = stakers[stakerAddr]; uint256 amount = staker.stakedAmount; if (amount > 0) { staker.stakedAmount = 0; staker.lastClaimedVolume = 0; staker.withdrawalRequestTime = 0; totalStaked -= amount; aryToken.transfer(stakerAddr, amount); emit Unstaked(stakerAddr, amount); } } } function getTotalStaked() external view returns (uint256) { return totalStaked; } function emergencyWithdrawRewards(uint256 amount) external onlyOwner { uint256 contractBalance = aryToken.balanceOf(address(this)); require( amount <= contractBalance - totalStaked, "Insufficient reward balance" ); aryToken.transfer(owner(), amount); emit EmergencyWithdrawal(owner(), amount); } function ownerWithdrawCRO() external onlyOwner { uint256 contractBalance = address(this).balance; require(contractBalance > 0, "No CRO available to withdraw"); payable(owner()).transfer(contractBalance); } function setFeeReceiver(address _feeReceiver) external onlyOwner { feeReceiver = _feeReceiver; } receive() external payable {} function getUserVolume(address user) public view returns (uint256) { return ISwapPro(swapProContract).userVolume(user); } function getAllStakers() public view returns (address[] memory) { return stakerList; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [], "evmVersion": "london" }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_aryToken","type":"address"},{"internalType":"address","name":"_swapProContract","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"FeesClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"ImmediateWithdrawal","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":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"WithdrawalRequested","type":"event"},{"inputs":[],"name":"CLAIM_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IMMEDIATE_WITHDRAWAL_FEE_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAWAL_LOCK_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aryToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearVolume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositFeeCRO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyWithdrawRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllStakers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserVolume","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"immediateWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerWithdrawCRO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requestWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_swapProContract","type":"address"}],"name":"setSwapProContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakerList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakers","outputs":[{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint256","name":"lastClaimedVolume","type":"uint256"},{"internalType":"uint256","name":"withdrawalRequestTime","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapProContract","outputs":[{"internalType":"contract ISwapPro","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a764000060045534801561001c57600080fd5b506040516117c13803806117c183398101604081905261003b91610119565b338061006157604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006a816100ad565b50600180546001600160a01b039485166001600160a01b03199182161790915560028054938516938216939093179092556003805491909316911617905561015c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461011457600080fd5b919050565b60008060006060848603121561012e57600080fd5b610137846100fd565b9250610145602085016100fd565b9150610153604085016100fd565b90509250925092565b6116568061016b6000396000f3fe60806040526004361061019f5760003560e01c80638da5cb5b116100ec578063b7f4ffcc1161008a578063d294f09311610064578063d294f09314610473578063dbaf214514610488578063efdcd9741461049d578063f2fde38b146104bd57600080fd5b8063b7f4ffcc14610413578063bbf84ee714610433578063cc19b9261461045357600080fd5b8063a694fc3a116100c6578063a694fc3a146103ab578063af115d21146103be578063b3f00674146103de578063b4c5d429146103fe57600080fd5b80638da5cb5b1461030f5780638e61f85f1461032d5780639168ae721461034457600080fd5b80633ccfd60b116101595780636e4f88c8116101335780636e4f88c8146102ad578063715018a6146102cf57806378a4afaf146102e4578063817b1cd2146102f957600080fd5b80633ccfd60b1461026d57806341c1fe7d146102825780634302f1be1461029757600080fd5b80620b46f8146101ab5780630917e776146101d45780630d7f9030146101e957806330409c8514610200578063348e50c61461022057806339bda01c1461025857600080fd5b366101a657005b600080fd5b3480156101b757600080fd5b506101c161012c81565b6040519081526020015b60405180910390f35b3480156101e057600080fd5b506005546101c1565b3480156101f557600080fd5b506101fe6104dd565b005b34801561020c57600080fd5b506101fe61021b36600461148e565b610575565b34801561022c57600080fd5b5061024061023b36600461148e565b610730565b6040516001600160a01b0390911681526020016101cb565b34801561026457600080fd5b506101fe61075a565b34801561027957600080fd5b506101fe6108e9565b34801561028e57600080fd5b506101c1603281565b3480156102a357600080fd5b506101c160045481565b3480156102b957600080fd5b506102c2610a99565b6040516101cb91906114a7565b3480156102db57600080fd5b506101fe610afb565b3480156102f057600080fd5b506101fe610b0f565b34801561030557600080fd5b506101c160055481565b34801561031b57600080fd5b506000546001600160a01b0316610240565b34801561033957600080fd5b506101c16206978081565b34801561035057600080fd5b5061038961035f3660046114f3565b60066020526000908152604090208054600182015460028301546003909301549192909160ff1684565b60408051948552602085019390935291830152151560608201526080016101cb565b6101fe6103b936600461148e565b610cbe565b3480156103ca57600080fd5b506101fe6103d93660046114f3565b611000565b3480156103ea57600080fd5b50600354610240906001600160a01b031681565b34801561040a57600080fd5b506101c1600c81565b34801561041f57600080fd5b50600154610240906001600160a01b031681565b34801561043f57600080fd5b506101c161044e3660046114f3565b61102a565b34801561045f57600080fd5b50600254610240906001600160a01b031681565b34801561047f57600080fd5b506101fe61109f565b34801561049457600080fd5b506101fe6112f9565b3480156104a957600080fd5b506101fe6104b83660046114f3565b6113ac565b3480156104c957600080fd5b506101fe6104d83660046114f3565b6113d6565b6104e5611411565b47806105385760405162461bcd60e51b815260206004820152601c60248201527f4e6f2043524f20617661696c61626c6520746f2077697468647261770000000060448201526064015b60405180910390fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610571573d6000803e3d6000fd5b5050565b61057d611411565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea9190611523565b9050600554816105fa9190611552565b8211156106495760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e74207265776172642062616c616e63650000000000604482015260640161052f565b6001546001600160a01b031663a9059cbb61066c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af11580156106b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dd9190611565565b506000546001600160a01b03166001600160a01b03167f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f208360405161072491815260200190565b60405180910390a25050565b6007818154811061074057600080fd5b6000918252602090912001546001600160a01b0316905081565b6002546001600160a01b031633146107a35760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161052f565b60005b6007548110156108e6576000600782815481106107c5576107c5611587565b60009182526020808320909101546001600160a01b03168083526006909152604090912080549192509080156108db57600080835560018301819055600283018190556005805483929061081a908490611552565b909155505060015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108969190611565565b50826001600160a01b03167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75826040516108d291815260200190565b60405180910390a25b5050506001016107a6565b50565b33600090815260066020526040902080546109165760405162461bcd60e51b815260040161052f9061159d565b600081600201541161096a5760405162461bcd60e51b815260206004820152601760248201527f4e6f207769746864726177616c20726571756573746564000000000000000000604482015260640161052f565b62069780816002015461097d91906115d4565b4210156109cc5760405162461bcd60e51b815260206004820152601b60248201527f5769746864726177616c206e6f742079657420756e6c6f636b65640000000000604482015260640161052f565b8054600080835560028301819055600580548392906109ec908490611552565b909155505060015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190611565565b5060405181815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7590602001610724565b60606007805480602002602001604051908101604052809291908181526020018280548015610af157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ad3575b5050505050905090565b610b03611411565b610b0d600061143e565b565b3360009081526006602052604090208054610b3c5760405162461bcd60e51b815260040161052f9061159d565b805460006064610b4d600c846115e7565b610b5791906115fe565b90506000610b658284611552565b600080865560028601819055600580549293508592909190610b88908490611552565b909155505060015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c029190611565565b5060015460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291169063a9059cbb906044016020604051808303816000875af1158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c9190611565565b50604080518481526020810184905233917f50124a4d825aa1b112b98fffd9b39e733a79d9f2b62813bab82fdb27846733eb910160405180910390a250505050565b60008111610d0e5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e6720616d6f756e74206d75737420626520706f73697469766500604482015260640161052f565b6004543414610d6a5760405162461bcd60e51b815260206004820152602260248201527f41206465706f73697420666565206f6620312043524f20697320726571756972604482015261195960f21b606482015260840161052f565b6002546040516314ced3df60e31b81523360048201526000916001600160a01b03169063a6769ef890602401602060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190611523565b90506000610de66064836115fe565b336000908152600660205260409020549091508190610e0590856115d4565b1115610e645760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f74207374616b65206d6f7265207468616e203125206f6620796f756044820152677220766f6c756d6560c01b606482015260840161052f565b6001546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610ebb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edf9190611565565b503360009081526006602052604090206003015460ff16610f5a57336000818152600660205260408120600301805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b3360009081526006602052604081208054859290610f799084906115d4565b925050819055508260056000828254610f9291906115d4565b9091555050336000908152600660205260408120600101549003610fc6573360009081526006602052604090206001018290555b60405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505050565b611008611411565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546040516314ced3df60e31b81526001600160a01b038381166004830152600092169063a6769ef890602401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110999190611523565b92915050565b33600090815260066020526040902080546110ef5760405162461bcd60e51b815260206004820152601060248201526f139bc81cdd185ad95908185b5bdd5b9d60821b604482015260640161052f565b6002546040516314ced3df60e31b81523360048201526000916001600160a01b03169063a6769ef890602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190611523565b9050816001015481116111b15760405162461bcd60e51b815260206004820152601e60248201527f4e6f206e657720766f6c756d652073696e6365206c61737420636c61696d0000604482015260640161052f565b60008260010154826111c39190611552565b90506000620186a06111d761012c846115e7565b6111e191906115fe565b9050600060646111f26032846115e7565b6111fc91906115fe565b9050600081116112415760405162461bcd60e51b815260206004820152601060248201526f4e6f206665657320746f20636c61696d60801b604482015260640161052f565b60018581018590555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bc9190611565565b5060405181815233907f9493e5bbe4e8e0ac67284469a2d677403d0378a85a59e341d3abc433d0d9a2099060200160405180910390a25050505050565b33600090815260066020526040902080546113265760405162461bcd60e51b815260040161052f9061159d565b6002810154156113785760405162461bcd60e51b815260206004820152601c60248201527f5769746864726177616c20616c72656164792072657175657374656400000000604482015260640161052f565b42600282015560405133907fe5892ff2a8b08efb903ffbba1f0514c1d3e22eea34dd5b89cf30aabce03dde5a90600090a250565b6113b4611411565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6113de611411565b6001600160a01b03811661140857604051631e4fbdf760e01b81526000600482015260240161052f565b6108e68161143e565b6000546001600160a01b03163314610b0d5760405163118cdaa760e01b815233600482015260240161052f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156114a057600080fd5b5035919050565b602080825282518282018190526000918401906040840190835b818110156114e85783516001600160a01b03168352602093840193909201916001016114c1565b509095945050505050565b60006020828403121561150557600080fd5b81356001600160a01b038116811461151c57600080fd5b9392505050565b60006020828403121561153557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156110995761109961153c565b60006020828403121561157757600080fd5b8151801515811461151c57600080fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601c908201527f4e6f207374616b656420616d6f756e7420746f20776974686472617700000000604082015260600190565b808201808211156110995761109961153c565b80820281158282048414176110995761109961153c565b60008261161b57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212202e51e3c13c7867553aa4d3514f11b67d43b3c0afaae8ce37ef54128ab74e7dca64736f6c634300081a003300000000000000000000000041bc026dabe978bc2fafea1850456511ca4b01bc000000000000000000000000d59c64b327db1013c7c325876d4772df258413fe00000000000000000000000039d49f9f17f114b70c1d0c0650a73e8263479fa3
Deployed Bytecode
0x60806040526004361061019f5760003560e01c80638da5cb5b116100ec578063b7f4ffcc1161008a578063d294f09311610064578063d294f09314610473578063dbaf214514610488578063efdcd9741461049d578063f2fde38b146104bd57600080fd5b8063b7f4ffcc14610413578063bbf84ee714610433578063cc19b9261461045357600080fd5b8063a694fc3a116100c6578063a694fc3a146103ab578063af115d21146103be578063b3f00674146103de578063b4c5d429146103fe57600080fd5b80638da5cb5b1461030f5780638e61f85f1461032d5780639168ae721461034457600080fd5b80633ccfd60b116101595780636e4f88c8116101335780636e4f88c8146102ad578063715018a6146102cf57806378a4afaf146102e4578063817b1cd2146102f957600080fd5b80633ccfd60b1461026d57806341c1fe7d146102825780634302f1be1461029757600080fd5b80620b46f8146101ab5780630917e776146101d45780630d7f9030146101e957806330409c8514610200578063348e50c61461022057806339bda01c1461025857600080fd5b366101a657005b600080fd5b3480156101b757600080fd5b506101c161012c81565b6040519081526020015b60405180910390f35b3480156101e057600080fd5b506005546101c1565b3480156101f557600080fd5b506101fe6104dd565b005b34801561020c57600080fd5b506101fe61021b36600461148e565b610575565b34801561022c57600080fd5b5061024061023b36600461148e565b610730565b6040516001600160a01b0390911681526020016101cb565b34801561026457600080fd5b506101fe61075a565b34801561027957600080fd5b506101fe6108e9565b34801561028e57600080fd5b506101c1603281565b3480156102a357600080fd5b506101c160045481565b3480156102b957600080fd5b506102c2610a99565b6040516101cb91906114a7565b3480156102db57600080fd5b506101fe610afb565b3480156102f057600080fd5b506101fe610b0f565b34801561030557600080fd5b506101c160055481565b34801561031b57600080fd5b506000546001600160a01b0316610240565b34801561033957600080fd5b506101c16206978081565b34801561035057600080fd5b5061038961035f3660046114f3565b60066020526000908152604090208054600182015460028301546003909301549192909160ff1684565b60408051948552602085019390935291830152151560608201526080016101cb565b6101fe6103b936600461148e565b610cbe565b3480156103ca57600080fd5b506101fe6103d93660046114f3565b611000565b3480156103ea57600080fd5b50600354610240906001600160a01b031681565b34801561040a57600080fd5b506101c1600c81565b34801561041f57600080fd5b50600154610240906001600160a01b031681565b34801561043f57600080fd5b506101c161044e3660046114f3565b61102a565b34801561045f57600080fd5b50600254610240906001600160a01b031681565b34801561047f57600080fd5b506101fe61109f565b34801561049457600080fd5b506101fe6112f9565b3480156104a957600080fd5b506101fe6104b83660046114f3565b6113ac565b3480156104c957600080fd5b506101fe6104d83660046114f3565b6113d6565b6104e5611411565b47806105385760405162461bcd60e51b815260206004820152601c60248201527f4e6f2043524f20617661696c61626c6520746f2077697468647261770000000060448201526064015b60405180910390fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610571573d6000803e3d6000fd5b5050565b61057d611411565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea9190611523565b9050600554816105fa9190611552565b8211156106495760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e74207265776172642062616c616e63650000000000604482015260640161052f565b6001546001600160a01b031663a9059cbb61066c6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af11580156106b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dd9190611565565b506000546001600160a01b03166001600160a01b03167f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f208360405161072491815260200190565b60405180910390a25050565b6007818154811061074057600080fd5b6000918252602090912001546001600160a01b0316905081565b6002546001600160a01b031633146107a35760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161052f565b60005b6007548110156108e6576000600782815481106107c5576107c5611587565b60009182526020808320909101546001600160a01b03168083526006909152604090912080549192509080156108db57600080835560018301819055600283018190556005805483929061081a908490611552565b909155505060015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108969190611565565b50826001600160a01b03167f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75826040516108d291815260200190565b60405180910390a25b5050506001016107a6565b50565b33600090815260066020526040902080546109165760405162461bcd60e51b815260040161052f9061159d565b600081600201541161096a5760405162461bcd60e51b815260206004820152601760248201527f4e6f207769746864726177616c20726571756573746564000000000000000000604482015260640161052f565b62069780816002015461097d91906115d4565b4210156109cc5760405162461bcd60e51b815260206004820152601b60248201527f5769746864726177616c206e6f742079657420756e6c6f636b65640000000000604482015260640161052f565b8054600080835560028301819055600580548392906109ec908490611552565b909155505060015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a669190611565565b5060405181815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7590602001610724565b60606007805480602002602001604051908101604052809291908181526020018280548015610af157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ad3575b5050505050905090565b610b03611411565b610b0d600061143e565b565b3360009081526006602052604090208054610b3c5760405162461bcd60e51b815260040161052f9061159d565b805460006064610b4d600c846115e7565b610b5791906115fe565b90506000610b658284611552565b600080865560028601819055600580549293508592909190610b88908490611552565b909155505060015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c029190611565565b5060015460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291169063a9059cbb906044016020604051808303816000875af1158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c9190611565565b50604080518481526020810184905233917f50124a4d825aa1b112b98fffd9b39e733a79d9f2b62813bab82fdb27846733eb910160405180910390a250505050565b60008111610d0e5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e6720616d6f756e74206d75737420626520706f73697469766500604482015260640161052f565b6004543414610d6a5760405162461bcd60e51b815260206004820152602260248201527f41206465706f73697420666565206f6620312043524f20697320726571756972604482015261195960f21b606482015260840161052f565b6002546040516314ced3df60e31b81523360048201526000916001600160a01b03169063a6769ef890602401602060405180830381865afa158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190611523565b90506000610de66064836115fe565b336000908152600660205260409020549091508190610e0590856115d4565b1115610e645760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f74207374616b65206d6f7265207468616e203125206f6620796f756044820152677220766f6c756d6560c01b606482015260840161052f565b6001546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610ebb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edf9190611565565b503360009081526006602052604090206003015460ff16610f5a57336000818152600660205260408120600301805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191690911790555b3360009081526006602052604081208054859290610f799084906115d4565b925050819055508260056000828254610f9291906115d4565b9091555050336000908152600660205260408120600101549003610fc6573360009081526006602052604090206001018290555b60405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505050565b611008611411565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546040516314ced3df60e31b81526001600160a01b038381166004830152600092169063a6769ef890602401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110999190611523565b92915050565b33600090815260066020526040902080546110ef5760405162461bcd60e51b815260206004820152601060248201526f139bc81cdd185ad95908185b5bdd5b9d60821b604482015260640161052f565b6002546040516314ced3df60e31b81523360048201526000916001600160a01b03169063a6769ef890602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190611523565b9050816001015481116111b15760405162461bcd60e51b815260206004820152601e60248201527f4e6f206e657720766f6c756d652073696e6365206c61737420636c61696d0000604482015260640161052f565b60008260010154826111c39190611552565b90506000620186a06111d761012c846115e7565b6111e191906115fe565b9050600060646111f26032846115e7565b6111fc91906115fe565b9050600081116112415760405162461bcd60e51b815260206004820152601060248201526f4e6f206665657320746f20636c61696d60801b604482015260640161052f565b60018581018590555460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bc9190611565565b5060405181815233907f9493e5bbe4e8e0ac67284469a2d677403d0378a85a59e341d3abc433d0d9a2099060200160405180910390a25050505050565b33600090815260066020526040902080546113265760405162461bcd60e51b815260040161052f9061159d565b6002810154156113785760405162461bcd60e51b815260206004820152601c60248201527f5769746864726177616c20616c72656164792072657175657374656400000000604482015260640161052f565b42600282015560405133907fe5892ff2a8b08efb903ffbba1f0514c1d3e22eea34dd5b89cf30aabce03dde5a90600090a250565b6113b4611411565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6113de611411565b6001600160a01b03811661140857604051631e4fbdf760e01b81526000600482015260240161052f565b6108e68161143e565b6000546001600160a01b03163314610b0d5760405163118cdaa760e01b815233600482015260240161052f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156114a057600080fd5b5035919050565b602080825282518282018190526000918401906040840190835b818110156114e85783516001600160a01b03168352602093840193909201916001016114c1565b509095945050505050565b60006020828403121561150557600080fd5b81356001600160a01b038116811461151c57600080fd5b9392505050565b60006020828403121561153557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156110995761109961153c565b60006020828403121561157757600080fd5b8151801515811461151c57600080fd5b634e487b7160e01b600052603260045260246000fd5b6020808252601c908201527f4e6f207374616b656420616d6f756e7420746f20776974686472617700000000604082015260600190565b808201808211156110995761109961153c565b80820281158282048414176110995761109961153c565b60008261161b57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212202e51e3c13c7867553aa4d3514f11b67d43b3c0afaae8ce37ef54128ab74e7dca64736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000041bc026dabe978bc2fafea1850456511ca4b01bc000000000000000000000000d59c64b327db1013c7c325876d4772df258413fe00000000000000000000000039d49f9f17f114b70c1d0c0650a73e8263479fa3
-----Decoded View---------------
Arg [0] : _aryToken (address): 0x41bc026dABe978bc2FAfeA1850456511ca4B01bc
Arg [1] : _swapProContract (address): 0xd59c64b327DB1013c7c325876d4772df258413Fe
Arg [2] : _feeReceiver (address): 0x39d49f9F17f114b70c1d0c0650a73e8263479fA3
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000041bc026dabe978bc2fafea1850456511ca4b01bc
Arg [1] : 000000000000000000000000d59c64b327db1013c7c325876d4772df258413fe
Arg [2] : 00000000000000000000000039d49f9f17f114b70c1d0c0650a73e8263479fa3
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
CRONOS | Cronos (CRO) | 100.00% | $0.185122 | 35 | $6.48 |
[ 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.