More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 306 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Emergency Withdr... | 19368359 | 215 days ago | IN | 0 ETH | 0.00178835 | ||||
Unstake | 19366195 | 216 days ago | IN | 0 ETH | 0.00620519 | ||||
Unstake | 19357886 | 217 days ago | IN | 0 ETH | 0.00388304 | ||||
Unstake | 19357500 | 217 days ago | IN | 0 ETH | 0.00782445 | ||||
Unstake | 19355740 | 217 days ago | IN | 0 ETH | 0.00613692 | ||||
Unstake | 19353693 | 218 days ago | IN | 0 ETH | 0.00368799 | ||||
Unstake | 19349033 | 218 days ago | IN | 0 ETH | 0.00371858 | ||||
Withdraw | 19348887 | 218 days ago | IN | 0 ETH | 0.00289644 | ||||
Unstake | 19338995 | 220 days ago | IN | 0 ETH | 0.00443834 | ||||
Unstake | 19337815 | 220 days ago | IN | 0 ETH | 0.00384281 | ||||
Withdraw | 19336379 | 220 days ago | IN | 0 ETH | 0.00297008 | ||||
Withdraw | 19331104 | 221 days ago | IN | 0 ETH | 0.00207943 | ||||
Withdraw | 19331050 | 221 days ago | IN | 0 ETH | 0.00255517 | ||||
Deposit | 19330285 | 221 days ago | IN | 0.62 ETH | 0.00162149 | ||||
Unstake | 19326656 | 221 days ago | IN | 0 ETH | 0.00807667 | ||||
Unstake | 19321869 | 222 days ago | IN | 0 ETH | 0.00353847 | ||||
Withdraw | 19321866 | 222 days ago | IN | 0 ETH | 0.00300874 | ||||
Unstake | 19319422 | 222 days ago | IN | 0 ETH | 0.00530261 | ||||
Unstake | 19318644 | 222 days ago | IN | 0 ETH | 0.00304836 | ||||
Withdraw | 19316626 | 223 days ago | IN | 0 ETH | 0.0028611 | ||||
Unstake | 19316135 | 223 days ago | IN | 0 ETH | 0.00377409 | ||||
Withdraw | 19316129 | 223 days ago | IN | 0 ETH | 0.00294666 | ||||
Unstake | 19315593 | 223 days ago | IN | 0 ETH | 0.00242119 | ||||
Withdraw | 19315590 | 223 days ago | IN | 0 ETH | 0.00209997 | ||||
Unstake | 19315188 | 223 days ago | IN | 0 ETH | 0.00409535 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19368359 | 215 days ago | 1.18238462 ETH | ||||
19357500 | 217 days ago | 0.00043321 ETH | ||||
19355740 | 217 days ago | 0.00023761 ETH | ||||
19353693 | 218 days ago | 0.00031268 ETH | ||||
19348887 | 218 days ago | 0.00036557 ETH | ||||
19338995 | 220 days ago | 0.00017405 ETH | ||||
19337815 | 220 days ago | 0.00234833 ETH | ||||
19336379 | 220 days ago | 0.01488273 ETH | ||||
19331104 | 221 days ago | 0.09589405 ETH | ||||
19331050 | 221 days ago | 0.02397351 ETH | ||||
19326656 | 221 days ago | 0.00125096 ETH | ||||
19321866 | 222 days ago | 0.02172248 ETH | ||||
19319422 | 222 days ago | 0.00567353 ETH | ||||
19318644 | 222 days ago | 0.00646279 ETH | ||||
19316626 | 223 days ago | 0.00622744 ETH | ||||
19316129 | 223 days ago | 0.02621691 ETH | ||||
19315590 | 223 days ago | 0.02270302 ETH | ||||
19315188 | 223 days ago | 0.00379896 ETH | ||||
19315095 | 223 days ago | 0.06040528 ETH | ||||
19310784 | 224 days ago | 0.04068088 ETH | ||||
19305599 | 224 days ago | 0.02984356 ETH | ||||
19303728 | 225 days ago | 0.00703621 ETH | ||||
19297550 | 225 days ago | 0.00244462 ETH | ||||
19291952 | 226 days ago | 0.01608295 ETH | ||||
19288396 | 227 days ago | 0.02590686 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xB57FA4F2...69B3e6Aaf The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
OZKStakeV2
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-01-15 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Ownable { error NotOwner(); address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { if (_owner != msg.sender) revert NotOwner(); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } contract OZKStakeV2 is Ownable { error StakingWindowClosed(); error StakingInProgress(); error StakingNotInProgress(); error InsufficientBalance(); error NothingStaked(); error NotAllowed(); event Stake(address sender, uint256 cycle, uint256 amount); event Unstake(address sender, uint256 cycle, uint256 amount); uint256 public constant STAKING_OPEN_WINDOW = 3 days; address public immutable TOKEN; uint256 public immutable STAKING_DURATION; mapping(uint256 => uint256) public depositedAmount; mapping(uint256 => mapping(address => uint256)) public userStakedAmountMap; mapping(uint256 => mapping(address => uint256)) public userWithdrawnAmountMap; mapping(uint256 => uint256) public totalStakedToken; bool public allowEmergencyTokenWithdraw = false; uint256 public cycle; uint256 public openTime; constructor(address token_, uint256 stakingDuration_, uint256 startingCycle) { TOKEN = token_; STAKING_DURATION = stakingDuration_; cycle = startingCycle; } receive() external payable {} // owners function open() external payable onlyOwner { uint256 __openTime = openTime; if (block.timestamp >= __openTime && block.timestamp <= __openTime + STAKING_DURATION) { revert StakingInProgress(); } cycle += 1; openTime = block.timestamp; _deposit(); } function deposit() public payable onlyOwner { if (!isInProgress()) revert StakingNotInProgress(); _deposit(); } function emergencyWithdraw() external onlyOwner { (bool success,) = msg.sender.call{value: address(this).balance}(""); require(success); } function syncDepositedAmount(uint256 amount, uint256 cycle_) external onlyOwner { if (address(this).balance < amount) revert InsufficientBalance(); depositedAmount[cycle_] = amount; } function setAllowTokenWithdrawal(bool allow_) external onlyOwner { allowEmergencyTokenWithdraw = allow_; } // external function stake(uint256 amount_) external { if (!isOpen()) revert StakingWindowClosed(); uint256 __cycle = cycle; userStakedAmountMap[__cycle][msg.sender] += amount_; totalStakedToken[__cycle] += amount_; emit Stake(msg.sender, __cycle, amount_); IERC20(TOKEN).transferFrom(msg.sender, address(this), amount_); } function unstake(uint256 cycle_) external { if (cycle_ == cycle && block.timestamp <= openTime + STAKING_DURATION) revert StakingInProgress(); // check amount staked uint256 __amountStaked = userStakedAmountMap[cycle_][msg.sender]; if (__amountStaked == 0) revert NothingStaked(); // calculate amount uint256 __totalStaked = totalStakedToken[cycle_]; uint256 totalClaimableReward = 0; if (__totalStaked != 0) { totalClaimableReward = depositedAmount[cycle_] * __amountStaked / __totalStaked; } uint256 claimedReward = userWithdrawnAmountMap[cycle_][msg.sender]; uint256 claimableReward = totalClaimableReward - claimedReward; // update state userWithdrawnAmountMap[cycle_][msg.sender] += claimableReward; userStakedAmountMap[cycle_][msg.sender] -= __amountStaked; emit Unstake(msg.sender, cycle_, __amountStaked); // withdraw IERC20(TOKEN).transfer(msg.sender, __amountStaked); (bool success,) = msg.sender.call{value: claimableReward}(""); require(success); } function withdraw(uint256 cycle_) external { if (cycle_ == cycle && block.timestamp <= openTime + STAKING_OPEN_WINDOW) revert StakingInProgress(); // check amount staked uint256 __amountStaked = userStakedAmountMap[cycle_][msg.sender]; if (__amountStaked == 0) revert NothingStaked(); // calculate amount uint256 __totalStaked = totalStakedToken[cycle_]; uint256 totalClaimableReward = 0; if (__totalStaked != 0) { totalClaimableReward = depositedAmount[cycle_] * __amountStaked / __totalStaked; } uint256 claimedReward = userWithdrawnAmountMap[cycle_][msg.sender]; uint256 claimableReward = totalClaimableReward - claimedReward; // update state userWithdrawnAmountMap[cycle_][msg.sender] += claimableReward; // withdraw (bool success,) = msg.sender.call{value: claimableReward}(""); require(success); } function emergencyTokenWithdraw(uint256 cycle_) external { if (!allowEmergencyTokenWithdraw) revert NotAllowed(); // check amount staked uint256 __amountStaked = userStakedAmountMap[cycle_][msg.sender]; if (__amountStaked == 0) revert NothingStaked(); // update state userStakedAmountMap[cycle_][msg.sender] -= __amountStaked; emit Unstake(msg.sender, cycle_, __amountStaked); // withdraw IERC20(TOKEN).transfer(msg.sender, __amountStaked); } // views function isOpen() public view returns (bool) { uint256 __openTime = openTime; if (block.timestamp >= __openTime && block.timestamp <= __openTime + STAKING_OPEN_WINDOW) { return true; } return false; } function isInProgress() public view returns (bool) { uint256 __openTime = openTime; if (block.timestamp >= __openTime && block.timestamp <= __openTime + STAKING_DURATION) { return true; } return false; } function claimable(uint256 cycle_, address addr) external view returns (uint256) { uint256 __amountStaked = userStakedAmountMap[cycle_][addr]; uint256 __totalStaked = totalStakedToken[cycle_]; if (__totalStaked == 0) return 0; uint256 totalClaimable = depositedAmount[cycle_] * __amountStaked / __totalStaked; uint256 claimedReward = userWithdrawnAmountMap[cycle_][addr]; if (totalClaimable < claimedReward) return 0; return totalClaimable - claimedReward; } // private function _deposit() private { depositedAmount[cycle] += msg.value; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"uint256","name":"stakingDuration_","type":"uint256"},{"internalType":"uint256","name":"startingCycle","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"NotAllowed","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NothingStaked","type":"error"},{"inputs":[],"name":"StakingInProgress","type":"error"},{"inputs":[],"name":"StakingNotInProgress","type":"error"},{"inputs":[],"name":"StakingWindowClosed","type":"error"},{"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":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"cycle","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"cycle","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstake","type":"event"},{"inputs":[],"name":"STAKING_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKING_OPEN_WINDOW","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowEmergencyTokenWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cycle_","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"depositedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cycle_","type":"uint256"}],"name":"emergencyTokenWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isInProgress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"open","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"openTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"allow_","type":"bool"}],"name":"setAllowTokenWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"cycle_","type":"uint256"}],"name":"syncDepositedAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalStakedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cycle_","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userStakedAmountMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userWithdrawnAmountMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cycle_","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x60806040526004361061014a575f3560e01c8063715018a6116100b3578063b42568881161006d578063b4256888146103e0578063bb960803146103f5578063cda926441461040e578063d0e30db014610444578063db2e21bc1461044c578063fcfff16f14610460575f80fd5b8063715018a6146102fc57806382bfefc8146103105780638da5cb5b1461035b5780638dceb6cc14610377578063a0c7f71c146103a2578063a694fc3a146103c1575f80fd5b8063472b44a211610104578063472b44a21461024657806347535d7b146102715780635072b96e146102955780635893813e146102b45780636190c9d5146102d35780636dfc2fa8146102e8575f80fd5b80632e175004146101555780632e17de781461019b5780632e1a7d4d146101bc578063348e842e146101db5780633efcdc02146101fa5780633f9eb03514610230575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b506101887f000000000000000000000000000000000000000000000000000000000024ea0081565b6040519081526020015b60405180910390f35b3480156101a6575f80fd5b506101ba6101b5366004610e4a565b610468565b005b3480156101c7575f80fd5b506101ba6101d6366004610e4a565b6106f3565b3480156101e6575f80fd5b506101ba6101f5366004610e6e565b61080d565b348015610205575f80fd5b50610188610214366004610e90565b600360209081525f928352604080842090915290825290205481565b34801561023b575f80fd5b506101886203f48081565b348015610251575f80fd5b50610188610260366004610e4a565b60016020525f908152604090205481565b34801561027c575f80fd5b5061028561084a565b6040519015158152602001610192565b3480156102a0575f80fd5b506101ba6102af366004610ec9565b61087f565b3480156102bf575f80fd5b506101ba6102ce366004610e4a565b6108da565b3480156102de575f80fd5b5061018860065481565b3480156102f3575f80fd5b50610285610a39565b348015610307575f80fd5b506101ba610a73565b34801561031b575f80fd5b506103437f000000000000000000000000b4fc1fc74effa5dc15a031eb8159302cfa4f128881565b6040516001600160a01b039091168152602001610192565b348015610366575f80fd5b505f546001600160a01b0316610343565b348015610382575f80fd5b50610188610391366004610e4a565b60046020525f908152604090205481565b3480156103ad575f80fd5b506101886103bc366004610e90565b610ae5565b3480156103cc575f80fd5b506101ba6103db366004610e4a565b610b98565b3480156103eb575f80fd5b5061018860075481565b348015610400575f80fd5b506005546102859060ff1681565b348015610419575f80fd5b50610188610428366004610e90565b600260209081525f928352604080842090915290825290205481565b6101ba610ca9565b348015610457575f80fd5b506101ba610d02565b6101ba610d80565b600654811480156104a657507f000000000000000000000000000000000000000000000000000000000024ea006007546104a29190610efd565b4211155b156104c4576040516308c45bdb60e41b815260040160405180910390fd5b5f818152600260209081526040808320338452909152812054908190036104fe57604051639fe7bfd960e01b815260040160405180910390fd5b5f8281526004602052604081205490811561053b575f84815260016020526040902054829061052e908590610f10565b6105389190610f27565b90505b5f8481526003602090815260408083203384529091528120549061055f8284610f46565b5f87815260036020908152604080832033845290915281208054929350839290919061058c908490610efd565b90915550505f868152600260209081526040808320338452909152812080548792906105b9908490610f46565b909155505060408051338152602081018890529081018690527ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb2809060600160405180910390a160405163a9059cbb60e01b8152336004820152602481018690527f000000000000000000000000b4fc1fc74effa5dc15a031eb8159302cfa4f12886001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610669573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068d9190610f59565b505f336001600160a01b0316826040515b5f6040518083038185875af1925050503d805f81146106d8576040519150601f19603f3d011682016040523d82523d5f602084013e6106dd565b606091505b50509050806106ea575f80fd5b50505050505050565b6006548114801561071457506203f4806007546107109190610efd565b4211155b15610732576040516308c45bdb60e41b815260040160405180910390fd5b5f8181526002602090815260408083203384529091528120549081900361076c57604051639fe7bfd960e01b815260040160405180910390fd5b5f828152600460205260408120549081156107a9575f84815260016020526040902054829061079c908590610f10565b6107a69190610f27565b90505b5f848152600360209081526040808320338452909152812054906107cd8284610f46565b5f8781526003602090815260408083203384529091528120805492935083929091906107fa908490610efd565b90915550506040515f903390839061069e565b5f546001600160a01b03163314610837576040516330cd747160e01b815260040160405180910390fd5b6005805460ff1916911515919091179055565b6007545f9042811180159061086b57506108676203f48082610efd565b4211155b1561087857600191505090565b5f91505090565b5f546001600160a01b031633146108a9576040516330cd747160e01b815260040160405180910390fd5b814710156108ca57604051631e9acf1760e31b815260040160405180910390fd5b5f90815260016020526040902055565b60055460ff166108fd57604051631eb49d6d60e11b815260040160405180910390fd5b5f8181526002602090815260408083203384529091528120549081900361093757604051639fe7bfd960e01b815260040160405180910390fd5b5f8281526002602090815260408083203384529091528120805483929061095f908490610f46565b909155505060408051338152602081018490529081018290527ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb2809060600160405180910390a160405163a9059cbb60e01b8152336004820152602481018290527f000000000000000000000000b4fc1fc74effa5dc15a031eb8159302cfa4f12886001600160a01b03169063a9059cbb906044015b6020604051808303815f875af1158015610a10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a349190610f59565b505050565b6007545f9042811180159061086b57506108677f000000000000000000000000000000000000000000000000000000000024ea0082610efd565b5f546001600160a01b03163314610a9d576040516330cd747160e01b815260040160405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f8281526002602090815260408083206001600160a01b03851684528252808320548584526004909252822054808303610b23575f92505050610b92565b5f858152600160205260408120548290610b3e908590610f10565b610b489190610f27565b5f8781526003602090815260408083206001600160a01b038a16845290915290205490915080821015610b81575f945050505050610b92565b610b8b8183610f46565b9450505050505b92915050565b610ba061084a565b610bbd576040516342083d4160e11b815260040160405180910390fd5b6006545f81815260026020908152604080832033845290915281208054849290610be8908490610efd565b90915550505f8181526004602052604081208054849290610c0a908490610efd565b909155505060408051338152602081018390529081018390527f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b69060600160405180910390a16040516323b872dd60e01b8152336004820152306024820152604481018390527f000000000000000000000000b4fc1fc74effa5dc15a031eb8159302cfa4f12886001600160a01b0316906323b872dd906064016109f4565b5f546001600160a01b03163314610cd3576040516330cd747160e01b815260040160405180910390fd5b610cdb610a39565b610cf85760405163c212a90560e01b815260040160405180910390fd5b610d00610e23565b565b5f546001600160a01b03163314610d2c576040516330cd747160e01b815260040160405180910390fd5b6040515f90339047908381818185875af1925050503d805f8114610d6b576040519150601f19603f3d011682016040523d82523d5f602084013e610d70565b606091505b5050905080610d7d575f80fd5b50565b5f546001600160a01b03163314610daa576040516330cd747160e01b815260040160405180910390fd5b600754428111801590610de65750610de27f000000000000000000000000000000000000000000000000000000000024ea0082610efd565b4211155b15610e04576040516308c45bdb60e41b815260040160405180910390fd5b600160065f828254610e169190610efd565b909155505042600755610d7d5b6006545f9081526001602052604081208054349290610e43908490610efd565b9091555050565b5f60208284031215610e5a575f80fd5b5035919050565b8015158114610d7d575f80fd5b5f60208284031215610e7e575f80fd5b8135610e8981610e61565b9392505050565b5f8060408385031215610ea1575f80fd5b8235915060208301356001600160a01b0381168114610ebe575f80fd5b809150509250929050565b5f8060408385031215610eda575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610b9257610b92610ee9565b8082028115828204841417610b9257610b92610ee9565b5f82610f4157634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610b9257610b92610ee9565b5f60208284031215610f69575f80fd5b8151610e8981610e6156fea264697066735822122034d6714778b835b841f5cf884d5117b25d838fe5cff088c04233b2b5a954665464736f6c63430008140033
Deployed Bytecode Sourcemap
1415:6415:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1873:41;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;1873:41:0;;;;;;;;3950:1161;;;;;;;;;;-1:-1:-1;3950:1161:0;;;;;:::i;:::-;;:::i;:::-;;5119:975;;;;;;;;;;-1:-1:-1;5119:975:0;;;;;:::i;:::-;;:::i;3419:120::-;;;;;;;;;;-1:-1:-1;3419:120:0;;;;;:::i;:::-;;:::i;2061:77::-;;;;;;;;;;-1:-1:-1;2061:77:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1777:52;;;;;;;;;;;;1823:6;1777:52;;1923:50;;;;;;;;;;-1:-1:-1;1923:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;6660:256;;;;;;;;;;;;;:::i;:::-;;;1274:14:1;;1267:22;1249:41;;1237:2;1222:18;6660:256:0;1109:187:1;3205:206:0;;;;;;;;;;-1:-1:-1;3205:206:0;;;;;:::i;:::-;;:::i;6102:536::-;;;;;;;;;;-1:-1:-1;6102:536:0;;;;;:::i;:::-;;:::i;2259:20::-;;;;;;;;;;;;;;;;6924:259;;;;;;;;;;;;;:::i;1260:148::-;;;;;;;;;;;;;:::i;1836:30::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1718:32:1;;;1700:51;;1688:2;1673:18;1836:30:0;1554:203:1;1070:79:0;;;;;;;;;;-1:-1:-1;1108:7:0;1135:6;-1:-1:-1;;;;;1135:6:0;1070:79;;2145:51;;;;;;;;;;-1:-1:-1;2145:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;7191:530;;;;;;;;;;-1:-1:-1;7191:530:0;;;;;:::i;:::-;;:::i;3564:378::-;;;;;;;;;;-1:-1:-1;3564:378:0;;;;;:::i;:::-;;:::i;2286:23::-;;;;;;;;;;;;;;;;2205:47;;;;;;;;;;-1:-1:-1;2205:47:0;;;;;;;;1980:74;;;;;;;;;;-1:-1:-1;1980:74:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2894:134;;;:::i;3036:161::-;;;;;;;;;;;;;:::i;2566:320::-;;;:::i;3950:1161::-;4017:5;;4007:6;:15;:65;;;;;4056:16;4045:8;;:27;;;;:::i;:::-;4026:15;:46;;4007:65;4003:97;;;4081:19;;-1:-1:-1;;;4081:19:0;;;;;;;;;;;4003:97;4145:22;4170:27;;;:19;:27;;;;;;;;4198:10;4170:39;;;;;;;;;4224:19;;;4220:47;;4252:15;;-1:-1:-1;;;4252:15:0;;;;;;;;;;;4220:47;4309:21;4333:24;;;:16;:24;;;;;;;4415:18;;4411:130;;4473:23;;;;:15;:23;;;;;;4516:13;;4473:40;;4499:14;;4473:40;:::i;:::-;:56;;;;:::i;:::-;4450:79;;4411:130;4553:21;4577:30;;;:22;:30;;;;;;;;4608:10;4577:42;;;;;;;;;4656:36;4577:42;4656:20;:36;:::i;:::-;4730:30;;;;:22;:30;;;;;;;;4761:10;4730:42;;;;;;;:61;;4630:62;;-1:-1:-1;4630:62:0;;4730:42;;:30;:61;;4630:62;;4730:61;:::i;:::-;;;;-1:-1:-1;;4802:27:0;;;;:19;:27;;;;;;;;4830:10;4802:39;;;;;;;:57;;4845:14;;4802:27;:57;;4845:14;;4802:57;:::i;:::-;;;;-1:-1:-1;;4877:43:0;;;4885:10;2754:51:1;;2836:2;2821:18;;2814:34;;;2864:18;;;2857:34;;;4877:43:0;;2742:2:1;2727:18;4877:43:0;;;;;;;4954:50;;-1:-1:-1;;;4954:50:0;;4977:10;4954:50;;;3076:51:1;3143:18;;;3136:34;;;4961:5:0;-1:-1:-1;;;;;4954:22:0;;;;3049:18:1;;4954:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5016:12;5033:10;-1:-1:-1;;;;;5033:15:0;5056;5033:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5015:61;;;5095:7;5087:16;;;;;;3992:1119;;;;;;3950:1161;:::o;5119:975::-;5187:5;;5177:6;:15;:68;;;;;1823:6;5215:8;;:30;;;;:::i;:::-;5196:15;:49;;5177:68;5173:100;;;5254:19;;-1:-1:-1;;;5254:19:0;;;;;;;;;;;5173:100;5318:22;5343:27;;;:19;:27;;;;;;;;5371:10;5343:39;;;;;;;;;5397:19;;;5393:47;;5425:15;;-1:-1:-1;;;5425:15:0;;;;;;;;;;;5393:47;5482:21;5506:24;;;:16;:24;;;;;;;5588:18;;5584:130;;5646:23;;;;:15;:23;;;;;;5689:13;;5646:40;;5672:14;;5646:40;:::i;:::-;:56;;;;:::i;:::-;5623:79;;5584:130;5726:21;5750:30;;;:22;:30;;;;;;;;5781:10;5750:42;;;;;;;;;5829:36;5750:42;5829:20;:36;:::i;:::-;5903:30;;;;:22;:30;;;;;;;;5934:10;5903:42;;;;;;;:61;;5803:62;;-1:-1:-1;5803:62:0;;5903:42;;:30;:61;;5803:62;;5903:61;:::i;:::-;;;;-1:-1:-1;;6016:43:0;;5999:12;;6016:10;;6039:15;;6016:43;3431:205:1;3419:120:0;1193:6;;-1:-1:-1;;;;;1193:6:0;1203:10;1193:20;1189:43;;1222:10;;-1:-1:-1;;;1222:10:0;;;;;;;;;;;1189:43;3495:27:::1;:36:::0;;-1:-1:-1;;3495:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;3419:120::o;6660:256::-;6737:8;;6699:4;;6760:15;:29;-1:-1:-1;6760:29:0;;;:84;;-1:-1:-1;6812:32:0;1823:6;6812:10;:32;:::i;:::-;6793:15;:51;;6760:84;6756:128;;;6868:4;6861:11;;;6660:256;:::o;6756:128::-;6903:5;6896:12;;;6660:256;:::o;3205:206::-;1193:6;;-1:-1:-1;;;;;1193:6:0;1203:10;1193:20;1189:43;;1222:10;;-1:-1:-1;;;1222:10:0;;;;;;;;;;;1189:43;3324:6:::1;3300:21;:30;3296:64;;;3339:21;;-1:-1:-1::0;;;3339:21:0::1;;;;;;;;;;;3296:64;3371:23;::::0;;;:15:::1;:23;::::0;;;;:32;3205:206::o;6102:536::-;6175:27;;;;6170:53;;6211:12;;-1:-1:-1;;;6211:12:0;;;;;;;;;;;6170:53;6268:22;6293:27;;;:19;:27;;;;;;;;6321:10;6293:39;;;;;;;;;6347:19;;;6343:47;;6375:15;;-1:-1:-1;;;6375:15:0;;;;;;;;;;;6343:47;6428:27;;;;:19;:27;;;;;;;;6456:10;6428:39;;;;;;;:57;;6471:14;;6428:27;:57;;6471:14;;6428:57;:::i;:::-;;;;-1:-1:-1;;6503:43:0;;;6511:10;2754:51:1;;2836:2;2821:18;;2814:34;;;2864:18;;;2857:34;;;6503:43:0;;2742:2:1;2727:18;6503:43:0;;;;;;;6580:50;;-1:-1:-1;;;6580:50:0;;6603:10;6580:50;;;3076:51:1;3143:18;;;3136:34;;;6587:5:0;-1:-1:-1;;;;;6580:22:0;;;;3049:18:1;;6580:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6159:479;6102:536;:::o;6924:259::-;7007:8;;6969:4;;7030:15;:29;-1:-1:-1;7030:29:0;;;:81;;-1:-1:-1;7082:29:0;7095:16;7082:10;:29;:::i;1260:148::-;1193:6;;-1:-1:-1;;;;;1193:6:0;1203:10;1193:20;1189:43;;1222:10;;-1:-1:-1;;;1222:10:0;;;;;;;;;;;1189:43;1367:1:::1;1351:6:::0;;1330:40:::1;::::0;-1:-1:-1;;;;;1351:6:0;;::::1;::::0;1330:40:::1;::::0;1367:1;;1330:40:::1;1398:1;1381:19:::0;;-1:-1:-1;;;;;;1381:19:0::1;::::0;;1260:148::o;7191:530::-;7263:7;7308:27;;;:19;:27;;;;;;;;-1:-1:-1;;;;;7308:33:0;;;;;;;;;;7376:24;;;:16;:24;;;;;;7417:18;;;7413:32;;7444:1;7437:8;;;;;;7413:32;7456:22;7481:23;;;:15;:23;;;;;;7524:13;;7481:40;;7507:14;;7481:40;:::i;:::-;:56;;;;:::i;:::-;7548:21;7572:30;;;:22;:30;;;;;;;;-1:-1:-1;;;;;7572:36:0;;;;;;;;;;7456:81;;-1:-1:-1;7625:30:0;;;7621:44;;;7664:1;7657:8;;;;;;;;7621:44;7683:30;7700:13;7683:14;:30;:::i;:::-;7676:37;;;;;;7191:530;;;;;:::o;3564:378::-;3621:8;:6;:8::i;:::-;3616:43;;3638:21;;-1:-1:-1;;;3638:21:0;;;;;;;;;;;3616:43;3690:5;;3672:15;3708:28;;;:19;:28;;;;;;;;3737:10;3708:40;;;;;;;:51;;3752:7;;3672:15;3708:51;;3752:7;;3708:51;:::i;:::-;;;;-1:-1:-1;;3770:25:0;;;;:16;:25;;;;;:36;;3799:7;;3770:25;:36;;3799:7;;3770:36;:::i;:::-;;;;-1:-1:-1;;3824:35:0;;;3830:10;2754:51:1;;2836:2;2821:18;;2814:34;;;2864:18;;;2857:34;;;3824:35:0;;2742:2:1;2727:18;3824:35:0;;;;;;;3872:62;;-1:-1:-1;;;3872:62:0;;3899:10;3872:62;;;3881:34:1;3919:4:0;3931:18:1;;;3924:43;3983:18;;;3976:34;;;3879:5:0;-1:-1:-1;;;;;3872:26:0;;;;3816:18:1;;3872:62:0;3641:375:1;2894:134:0;1193:6;;-1:-1:-1;;;;;1193:6:0;1203:10;1193:20;1189:43;;1222:10;;-1:-1:-1;;;1222:10:0;;;;;;;;;;;1189:43;2954:14:::1;:12;:14::i;:::-;2949:50;;2977:22;;-1:-1:-1::0;;;2977:22:0::1;;;;;;;;;;;2949:50;3010:10;:8;:10::i;:::-;2894:134::o:0;3036:161::-;1193:6;;-1:-1:-1;;;;;1193:6:0;1203:10;1193:20;1189:43;;1222:10;;-1:-1:-1;;;1222:10:0;;;;;;;;;;;1189:43;3113:49:::1;::::0;3096:12:::1;::::0;3113:10:::1;::::0;3136:21:::1;::::0;3096:12;3113:49;3096:12;3113:49;3136:21;3113:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:67;;;3181:7;3173:16;;;::::0;::::1;;3084:113;3036:161::o:0;2566:320::-;1193:6;;-1:-1:-1;;;;;1193:6:0;1203:10;1193:20;1189:43;;1222:10;;-1:-1:-1;;;1222:10:0;;;;;;;;;;;1189:43;2641:8:::1;::::0;2664:15:::1;:29:::0;-1:-1:-1;2664:29:0;::::1;::::0;:81:::1;;-1:-1:-1::0;2716:29:0::1;2729:16;2716:10:::0;:29:::1;:::i;:::-;2697:15;:48;;2664:81;2660:140;;;2769:19;;-1:-1:-1::0;;;2769:19:0::1;;;;;;;;;;;2660:140;2819:1;2810:5;;:10;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;2842:15:0::1;2831:8;:26:::0;2868:10:::1;7745:82:::0;7800:5;;7784:22;;;;:15;:22;;;;;:35;;7810:9;;7784:22;:35;;7810:9;;7784:35;:::i;:::-;;;;-1:-1:-1;;7745:82:0:o;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;381:118::-;467:5;460:13;453:21;446:5;443:32;433:60;;489:1;486;479:12;504:241;560:6;613:2;601:9;592:7;588:23;584:32;581:52;;;629:1;626;619:12;581:52;668:9;655:23;687:28;709:5;687:28;:::i;:::-;734:5;504:241;-1:-1:-1;;;504:241:1:o;750:354::-;818:6;826;879:2;867:9;858:7;854:23;850:32;847:52;;;895:1;892;885:12;847:52;918:23;;;-1:-1:-1;991:2:1;976:18;;963:32;-1:-1:-1;;;;;1024:31:1;;1014:42;;1004:70;;1070:1;1067;1060:12;1004:70;1093:5;1083:15;;;750:354;;;;;:::o;1301:248::-;1369:6;1377;1430:2;1418:9;1409:7;1405:23;1401:32;1398:52;;;1446:1;1443;1436:12;1398:52;-1:-1:-1;;1469:23:1;;;1539:2;1524:18;;;1511:32;;-1:-1:-1;1301:248:1:o;1762:127::-;1823:10;1818:3;1814:20;1811:1;1804:31;1854:4;1851:1;1844:15;1878:4;1875:1;1868:15;1894:125;1959:9;;;1980:10;;;1977:36;;;1993:18;;:::i;2024:168::-;2097:9;;;2128;;2145:15;;;2139:22;;2125:37;2115:71;;2166:18;;:::i;2197:217::-;2237:1;2263;2253:132;;2307:10;2302:3;2298:20;2295:1;2288:31;2342:4;2339:1;2332:15;2370:4;2367:1;2360:15;2253:132;-1:-1:-1;2399:9:1;;2197:217::o;2419:128::-;2486:9;;;2507:11;;;2504:37;;;2521:18;;:::i;3181:245::-;3248:6;3301:2;3289:9;3280:7;3276:23;3272:32;3269:52;;;3317:1;3314;3307:12;3269:52;3349:9;3343:16;3368:28;3390:5;3368:28;:::i
Swarm Source
ipfs://34d6714778b835b841f5cf884d5117b25d838fe5cff088c04233b2b5a9546654
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000029 | 32,451,214.372 | $939.79 |
Loading...
Loading
[ Download: CSV Export ]
[ 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.