Source Code
Latest 25 from a total of 63,372 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Plant | 27942161 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942157 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942152 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942148 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942146 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942142 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942138 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942131 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942125 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942121 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942113 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942083 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942063 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942059 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942044 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942042 | 12 days ago | IN | 0 ETH | 0.00000236 | ||||
| Plant | 27942040 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942036 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942031 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942029 | 12 days ago | IN | 0 ETH | 0.00000236 | ||||
| Plant | 27942027 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942022 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942019 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942015 | 12 days ago | IN | 0 ETH | 0.00000189 | ||||
| Plant | 27942014 | 12 days ago | IN | 0 ETH | 0.00000236 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 27942161 | 12 days ago | 0 ETH | ||||
| 27942161 | 12 days ago | 0 ETH | ||||
| 27942161 | 12 days ago | 0 ETH | ||||
| 27942157 | 12 days ago | 0 ETH | ||||
| 27942157 | 12 days ago | 0 ETH | ||||
| 27942157 | 12 days ago | 0 ETH | ||||
| 27942152 | 12 days ago | 0 ETH | ||||
| 27942152 | 12 days ago | 0 ETH | ||||
| 27942152 | 12 days ago | 0 ETH | ||||
| 27942148 | 12 days ago | 0 ETH | ||||
| 27942148 | 12 days ago | 0 ETH | ||||
| 27942148 | 12 days ago | 0 ETH | ||||
| 27942146 | 12 days ago | 0 ETH | ||||
| 27942146 | 12 days ago | 0 ETH | ||||
| 27942146 | 12 days ago | 0 ETH | ||||
| 27942142 | 12 days ago | 0 ETH | ||||
| 27942142 | 12 days ago | 0 ETH | ||||
| 27942142 | 12 days ago | 0 ETH | ||||
| 27942138 | 12 days ago | 0 ETH | ||||
| 27942138 | 12 days ago | 0 ETH | ||||
| 27942138 | 12 days ago | 0 ETH | ||||
| 27942131 | 12 days ago | 0 ETH | ||||
| 27942131 | 12 days ago | 0 ETH | ||||
| 27942131 | 12 days ago | 0 ETH | ||||
| 27942125 | 12 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DevHarvesterV2
Compiler Version
v0.8.31+commit.fd3a2265
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
/* ------------------------ Interfaces ------------------------ */
interface IPohVerifier {
function verify(bytes calldata signature, address human) external view returns (bool);
}
/* ----------------------------- Ownable ----------------------------- */
abstract contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
modifier onlyOwner() {
require(msg.sender == owner, "ONLY_OWNER");
_;
}
constructor() {
owner = msg.sender;
emit OwnershipTransferred(address(0), msg.sender);
}
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0), "ZERO_OWNER");
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/* ----------------------------- Pausable ---------------------------- */
abstract contract Pausable is Ownable {
bool public paused;
event Paused(bool isPaused);
modifier whenNotPaused() {
require(!paused, "PAUSED");
_;
}
function setPaused(bool isPaused) external onlyOwner {
paused = isPaused;
emit Paused(isPaused);
}
}
/* ------------------------ Safe Token Transfer ----------------------- */
library SafeTransfer {
function safeTransfer(address token, address to, uint256 amount) internal {
require(token != address(0), "BAD_TOKEN");
(bool ok, bytes memory data) =
token.call(abi.encodeWithSelector(bytes4(keccak256("transfer(address,uint256)")), to, amount));
require(ok, "TRANSFER_CALL_FAIL");
if (data.length > 0) require(abi.decode(data, (bool)), "TRANSFER_FALSE");
}
function balanceOf(address token, address a) internal view returns (uint256) {
(bool ok, bytes memory data) =
token.staticcall(abi.encodeWithSelector(bytes4(keccak256("balanceOf(address)")), a));
require(ok && data.length >= 32, "BAL_FAIL");
return abi.decode(data, (uint256));
}
}
/* ------------------------- DevHarvester V2 -------------------------- */
contract DevHarvesterV2 is Pausable {
using SafeTransfer for address;
address public rewardToken;
uint256 public rewardPerTx;
uint32 public dailyCap;
bool public requirePoH;
IPohVerifier public pohVerifier;
mapping(address => bool) public blacklisted;
event BlacklistUpdated(address indexed user, bool isBlacklisted);
struct DayCounter {
uint32 day;
uint32 count;
}
mapping(address => DayCounter) private _counter;
event Planted(address indexed user, uint32 indexed day, uint32 newCount, uint256 rewardPaid);
event ConfigUpdated(address rewardToken, uint256 rewardPerTx, uint32 dailyCap, bool requirePoH, address pohVerifier);
event OwnerWithdrawERC20(address indexed token, address indexed to, uint256 amount);
event OwnerWithdrawETH(address indexed to, uint256 amount);
uint32 public delaySeconds;
event DelayUpdated(uint32 delaySeconds);
struct PendingConfig {
address rewardToken;
uint256 rewardPerTx;
uint32 dailyCap;
bool requirePoH;
address pohVerifier;
uint64 executeAfter;
bool exists;
}
PendingConfig public pending;
event ConfigQueued(uint64 executeAfter);
event ConfigApplied();
constructor(
address rewardToken_,
uint256 rewardPerTx_,
uint32 dailyCap_,
bool requirePoH_,
address pohVerifier_,
uint32 delaySeconds_
) {
require(rewardToken_ != address(0), "BAD_TOKEN");
require(dailyCap_ > 0, "BAD_CAP");
rewardToken = rewardToken_;
rewardPerTx = rewardPerTx_;
dailyCap = dailyCap_;
requirePoH = requirePoH_;
pohVerifier = IPohVerifier(pohVerifier_);
delaySeconds = delaySeconds_;
emit ConfigUpdated(rewardToken_, rewardPerTx_, dailyCap_, requirePoH_, pohVerifier_);
emit DelayUpdated(delaySeconds_);
}
function currentDay() public view returns (uint32) {
return uint32(block.timestamp / 1 days);
}
function txToday(address user) public view returns (uint32 day, uint32 count) {
DayCounter memory dc = _counter[user];
uint32 d = currentDay();
if (dc.day != d) return (d, 0);
return (dc.day, dc.count);
}
function remainingToday(address user) external view returns (uint32) {
(, uint32 c) = txToday(user);
if (c >= dailyCap) return 0;
return dailyCap - c;
}
function setDelaySeconds(uint32 delaySeconds_) external onlyOwner {
delaySeconds = delaySeconds_;
emit DelayUpdated(delaySeconds_);
}
function queueConfig(
address rewardToken_,
uint256 rewardPerTx_,
uint32 dailyCap_,
bool requirePoH_,
address pohVerifier_
) external onlyOwner {
require(rewardToken_ != address(0), "BAD_TOKEN");
require(dailyCap_ > 0 && dailyCap_ <= 255, "BAD_CAP");
if (delaySeconds == 0) {
_applyConfig(rewardToken_, rewardPerTx_, dailyCap_, requirePoH_, pohVerifier_);
return;
}
uint64 eta = uint64(block.timestamp + delaySeconds);
pending = PendingConfig({
rewardToken: rewardToken_,
rewardPerTx: rewardPerTx_,
dailyCap: dailyCap_,
requirePoH: requirePoH_,
pohVerifier: pohVerifier_,
executeAfter: eta,
exists: true
});
emit ConfigQueued(eta);
}
function applyQueuedConfig() external onlyOwner {
require(pending.exists, "NO_PENDING");
require(block.timestamp >= pending.executeAfter, "TOO_EARLY");
_applyConfig(pending.rewardToken, pending.rewardPerTx, pending.dailyCap, pending.requirePoH, pending.pohVerifier);
delete pending;
emit ConfigApplied();
}
function cancelQueuedConfig() external onlyOwner {
require(pending.exists, "NO_PENDING");
delete pending;
}
function _applyConfig(
address rewardToken_,
uint256 rewardPerTx_,
uint32 dailyCap_,
bool requirePoH_,
address pohVerifier_
) internal {
rewardToken = rewardToken_;
rewardPerTx = rewardPerTx_;
dailyCap = dailyCap_;
requirePoH = requirePoH_;
pohVerifier = IPohVerifier(pohVerifier_);
emit ConfigUpdated(rewardToken_, rewardPerTx_, dailyCap_, requirePoH_, pohVerifier_);
}
function setBlacklisted(address user, bool isBlacklisted) public onlyOwner {
blacklisted[user] = isBlacklisted;
emit BlacklistUpdated(user, isBlacklisted);
}
function setBlacklistedBatch(address[] calldata users, bool isBlacklisted) external onlyOwner {
for (uint256 i = 0; i < users.length; i++) {
blacklisted[users[i]] = isBlacklisted;
emit BlacklistUpdated(users[i], isBlacklisted);
}
}
function ownerWithdrawRewardToken(address to, uint256 amount) external onlyOwner {
require(to != address(0), "BAD_TO");
rewardToken.safeTransfer(to, amount);
emit OwnerWithdrawERC20(rewardToken, to, amount);
}
function ownerWithdrawERC20(address token, address to, uint256 amount) external onlyOwner {
require(token != address(0), "BAD_TOKEN");
require(to != address(0), "BAD_TO");
token.safeTransfer(to, amount);
emit OwnerWithdrawERC20(token, to, amount);
}
function ownerWithdrawETH(address payable to, uint256 amount) external onlyOwner {
require(to != address(0), "BAD_TO");
(bool ok, ) = to.call{value: amount}("");
require(ok, "ETH_FAIL");
emit OwnerWithdrawETH(to, amount);
}
receive() external payable {}
/// @notice Plant with PoH signature (required if requirePoH=true)
function plant(bytes calldata pohSig) external whenNotPaused {
require(!blacklisted[msg.sender], "BLACKLISTED");
if (requirePoH) {
require(address(pohVerifier) != address(0), "NO_POH_VERIFIER");
bool ok = pohVerifier.verify(pohSig, msg.sender);
require(ok, "NOT_HUMAN");
}
uint32 d = currentDay();
DayCounter storage dc = _counter[msg.sender];
if (dc.day != d) { dc.day = d; dc.count = 0; }
require(dc.count < dailyCap, "DAILY_CAP");
dc.count += 1;
uint256 reward = rewardPerTx;
if (reward > 0) {
require(SafeTransfer.balanceOf(rewardToken, address(this)) >= reward, "INSUFFICIENT_FUNDS");
rewardToken.safeTransfer(msg.sender, reward);
}
emit Planted(msg.sender, d, dc.count, reward);
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"rewardToken_","type":"address"},{"internalType":"uint256","name":"rewardPerTx_","type":"uint256"},{"internalType":"uint32","name":"dailyCap_","type":"uint32"},{"internalType":"bool","name":"requirePoH_","type":"bool"},{"internalType":"address","name":"pohVerifier_","type":"address"},{"internalType":"uint32","name":"delaySeconds_","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ConfigApplied","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"executeAfter","type":"uint64"}],"name":"ConfigQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"rewardToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewardPerTx","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"dailyCap","type":"uint32"},{"indexed":false,"internalType":"bool","name":"requirePoH","type":"bool"},{"indexed":false,"internalType":"address","name":"pohVerifier","type":"address"}],"name":"ConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"delaySeconds","type":"uint32"}],"name":"DelayUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OwnerWithdrawERC20","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OwnerWithdrawETH","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":false,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint32","name":"day","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"newCount","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"rewardPaid","type":"uint256"}],"name":"Planted","type":"event"},{"inputs":[],"name":"applyQueuedConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelQueuedConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentDay","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyCap","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delaySeconds","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ownerWithdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ownerWithdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ownerWithdrawRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pending","outputs":[{"internalType":"address","name":"rewardToken","type":"address"},{"internalType":"uint256","name":"rewardPerTx","type":"uint256"},{"internalType":"uint32","name":"dailyCap","type":"uint32"},{"internalType":"bool","name":"requirePoH","type":"bool"},{"internalType":"address","name":"pohVerifier","type":"address"},{"internalType":"uint64","name":"executeAfter","type":"uint64"},{"internalType":"bool","name":"exists","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"pohSig","type":"bytes"}],"name":"plant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pohVerifier","outputs":[{"internalType":"contract IPohVerifier","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"rewardToken_","type":"address"},{"internalType":"uint256","name":"rewardPerTx_","type":"uint256"},{"internalType":"uint32","name":"dailyCap_","type":"uint32"},{"internalType":"bool","name":"requirePoH_","type":"bool"},{"internalType":"address","name":"pohVerifier_","type":"address"}],"name":"queueConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"remainingToday","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requirePoH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bool","name":"isBlacklisted","type":"bool"}],"name":"setBlacklistedBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"delaySeconds_","type":"uint32"}],"name":"setDelaySeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isPaused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"txToday","outputs":[{"internalType":"uint32","name":"day","type":"uint32"},{"internalType":"uint32","name":"count","type":"uint32"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561000f575f5ffd5b50604051611d7c380380611d7c83398101604081905261002e9161022d565b5f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160a01b0386166100b35760405162461bcd60e51b81526020600482015260096024820152682120a22faa27a5a2a760b91b60448201526064015b60405180910390fd5b5f8463ffffffff16116100f25760405162461bcd60e51b815260206004820152600760248201526604241445f4341560cc1b60448201526064016100aa565b600180546001600160a01b0319166001600160a01b0388811691821790925560028790556003805463ffffffff88811664ffffffffff19909216821764010000000089151590810291909117600160281b600160c81b03191665010000000000968916968702179093556006805463ffffffff191691871691909117905560408051938452602084018a9052830152606082015260808101919091527f30315cfc61b7ce4782f18cdb8e00652cdbf424f154fcd799a333ebd359f9dd9a9060a00160405180910390a160405163ffffffff821681527f988c6f3e716aecf591f192563dfc5d6d0bc66d57928d8def96fa1fc98a7760719060200160405180910390a150505050505061029c565b80516001600160a01b0381168114610215575f5ffd5b919050565b805163ffffffff81168114610215575f5ffd5b5f5f5f5f5f5f60c08789031215610242575f5ffd5b61024b876101ff565b9550602087015194506102606040880161021a565b935060608701518015158114610274575f5ffd5b9250610282608088016101ff565b915061029060a0880161021a565b90509295509295509295565b611ad3806102a95f395ff3fe608060405260043610610164575f3560e01c80638da5cb5b116100cd578063d01dd6d211610087578063eb33939111610062578063eb339391146104ec578063ec52e06014610508578063f2fde38b14610527578063f7c618c114610546575f5ffd5b8063d01dd6d2146103e5578063dbac26e914610404578063e20ccec314610432575f5ffd5b80638da5cb5b1461033657806393563a9514610354578063a4b13e4414610373578063ac99d2ff14610392578063b258649f146103a6578063b752a7d1146103c9575f5ffd5b80635c975abb1161011e5780635c975abb146102765780635e4db5a1146102a55780635e9aa99d146102c457806363fdd419146102e357806378c5a65f146102f75780638976f21814610316575f5ffd5b8063070bdbef1461016f57806316c38b3c146101b257806324e23b64146101d357806327e938f9146101f257806330141fc21461022e5780635c9302c91461024d575f5ffd5b3661016b57005b5f5ffd5b34801561017a575f5ffd5b5060035461019590600160281b90046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101bd575f5ffd5b506101d16101cc3660046116b0565b610565565b005b3480156101de575f5ffd5b506101d16101ed3660046116e3565b6105ee565b3480156101fd575f5ffd5b5061021161020c366004611710565b61065f565b6040805163ffffffff9384168152929091166020830152016101a9565b348015610239575f5ffd5b506101d161024836600461172b565b6106dc565b348015610258575f5ffd5b506102616107da565b60405163ffffffff90911681526020016101a9565b348015610281575f5ffd5b505f5461029590600160a01b900460ff1681565b60405190151581526020016101a9565b3480156102b0575f5ffd5b506101d16102bf3660046117ad565b6107ed565b3480156102cf575f5ffd5b506101d16102de3660046117d7565b61090e565b3480156102ee575f5ffd5b506101d1610aed565b348015610302575f5ffd5b506101d16103113660046117ad565b610c3f565b348015610321575f5ffd5b5060035461029590600160201b900460ff1681565b348015610341575f5ffd5b505f54610195906001600160a01b031681565b34801561035f575f5ffd5b506101d161036e366004611839565b610ced565b34801561037e575f5ffd5b506101d161038d366004611877565b610dc8565b34801561039d575f5ffd5b506101d161111c565b3480156103b1575f5ffd5b506103bb60025481565b6040519081526020016101a9565b3480156103d4575f5ffd5b506006546102619063ffffffff1681565b3480156103f0575f5ffd5b506101d16103ff3660046118e5565b6111c3565b34801561040f575f5ffd5b5061029561041e366004611710565b60046020525f908152604090205460ff1681565b34801561043d575f5ffd5b50600754600854600954600a54610492936001600160a01b03908116939263ffffffff81169260ff600160201b8304811693600160281b9093049092169167ffffffffffffffff821691600160401b90041687565b604080516001600160a01b039889168152602081019790975263ffffffff90951694860194909452911515606085015293909316608083015267ffffffffffffffff90921660a082015290151560c082015260e0016101a9565b3480156104f7575f5ffd5b506003546102619063ffffffff1681565b348015610513575f5ffd5b50610261610522366004611710565b61124a565b348015610532575f5ffd5b506101d1610541366004611710565b611290565b348015610551575f5ffd5b50600154610195906001600160a01b031681565b5f546001600160a01b031633146105975760405162461bcd60e51b815260040161058e9061191c565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2906105e390831515815260200190565b60405180910390a150565b5f546001600160a01b031633146106175760405162461bcd60e51b815260040161058e9061191c565b6006805463ffffffff191663ffffffff83169081179091556040519081527f988c6f3e716aecf591f192563dfc5d6d0bc66d57928d8def96fa1fc98a776071906020016105e3565b6001600160a01b0381165f90815260056020908152604080832081518083019092525463ffffffff8082168352600160201b90910416918101919091528190816106a76107da565b90508063ffffffff16825f015163ffffffff16146106c957945f945092505050565b5080516020909101519094909350915050565b5f546001600160a01b031633146107055760405162461bcd60e51b815260040161058e9061191c565b5f5b828110156107d4578160045f86868581811061072557610725611940565b905060200201602081019061073a9190611710565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905583838281811061077357610773611940565b90506020020160208101906107889190611710565b6001600160a01b03167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac836040516107c4911515815260200190565b60405180910390a2600101610707565b50505050565b5f6107e86201518042611968565b905090565b5f546001600160a01b031633146108165760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b03821661083c5760405162461bcd60e51b815260040161058e90611987565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610885576040519150601f19603f3d011682016040523d82523d5f602084013e61088a565b606091505b50509050806108c65760405162461bcd60e51b815260206004820152600860248201526711551217d190525360c21b604482015260640161058e565b826001600160a01b03167fa545303f80a3184f3f1f7769fe503039703c5ae631a1263c4c29ef14606a47248360405161090191815260200190565b60405180910390a2505050565b5f546001600160a01b031633146109375760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b03851661095d5760405162461bcd60e51b815260040161058e906119a7565b5f8363ffffffff16118015610979575060ff8363ffffffff1611155b6109af5760405162461bcd60e51b815260206004820152600760248201526604241445f4341560cc1b604482015260640161058e565b60065463ffffffff165f036109d0576109cb8585858585611355565b610ae6565b6006545f906109e59063ffffffff16426119ca565b6040805160e0810182526001600160a01b0389811680835260208084018b905263ffffffff8a16848601819052891515606086018190529389166080860181905267ffffffffffffffff881660a08701819052600160c090970196909652600780546001600160a01b03191690941790935560088c90556009805464ffffffffff1916909117600160201b9094029390931765010000000000600160c81b031916600160281b90920291909117909155600a8054600160401b68ffffffffffffffffff19909116841717905591519081529192507f9333041aa7d0844994421e5a4b783d0130d6bfe86a9adb0a496111f109f375f1910160405180910390a1505b5050505050565b5f546001600160a01b03163314610b165760405162461bcd60e51b815260040161058e9061191c565b600a54600160401b900460ff16610b5c5760405162461bcd60e51b815260206004820152600a6024820152694e4f5f50454e44494e4760b01b604482015260640161058e565b600a5467ffffffffffffffff16421015610ba45760405162461bcd60e51b8152602060048201526009602482015268544f4f5f4541524c5960b81b604482015260640161058e565b600754600854600954610bde926001600160a01b03908116929163ffffffff81169160ff600160201b83041691600160281b900416611355565b600780546001600160a01b03191690555f6008819055600980546001600160c81b0319169055600a805468ffffffffffffffffff191690556040517f069fa58122b7926cfdf46e611a50611f9c80ca683431053255d5125dfd8653cd9190a1565b5f546001600160a01b03163314610c685760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b038216610c8e5760405162461bcd60e51b815260040161058e90611987565b600154610ca5906001600160a01b0316838361140f565b6001546040518281526001600160a01b038481169216907f1d4828a43ae63cab91306bef4dbc17799b4b158c864cf563cc057c39ed21c1ef9060200160405180910390a35050565b5f546001600160a01b03163314610d165760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b038316610d3c5760405162461bcd60e51b815260040161058e906119a7565b6001600160a01b038216610d625760405162461bcd60e51b815260040161058e90611987565b610d766001600160a01b038416838361140f565b816001600160a01b0316836001600160a01b03167f1d4828a43ae63cab91306bef4dbc17799b4b158c864cf563cc057c39ed21c1ef83604051610dbb91815260200190565b60405180910390a3505050565b5f54600160a01b900460ff1615610e0a5760405162461bcd60e51b815260206004820152600660248201526514105554d15160d21b604482015260640161058e565b335f9081526004602052604090205460ff1615610e575760405162461bcd60e51b815260206004820152600b60248201526a10931050d2d31254d5115160aa1b604482015260640161058e565b600354600160201b900460ff1615610f7157600354600160281b90046001600160a01b0316610eba5760405162461bcd60e51b815260206004820152600f60248201526e2727afa827a42fab22a924a324a2a960891b604482015260640161058e565b600354604051633d3ac1b560e01b81525f91600160281b90046001600160a01b031690633d3ac1b590610ef5908690869033906004016119dd565b602060405180830381865afa158015610f10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f349190611a1d565b905080610f6f5760405162461bcd60e51b81526020600482015260096024820152682727aa2fa42aa6a0a760b91b604482015260640161058e565b505b5f610f7a6107da565b335f90815260056020526040902080549192509063ffffffff808416911614610fb557805467ffffffffffffffff191663ffffffff83161781555b600354815463ffffffff918216600160201b909104909116106110065760405162461bcd60e51b815260206004820152600960248201526804441494c595f4341560bc1b604482015260640161058e565b80546001908290600490611028908490600160201b900463ffffffff16611a38565b92506101000a81548163ffffffff021916908363ffffffff1602179055505f60025490505f8111156110c657600154819061106c906001600160a01b03163061156d565b10156110af5760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f46554e445360701b604482015260640161058e565b6001546110c6906001600160a01b0316338361140f565b815460408051600160201b90920463ffffffff90811683526020830184905285169133917ff02eed9df42c885685cf441158059f675567750eb8049efa74a0cdd6804933d4910160405180910390a35050505050565b5f546001600160a01b031633146111455760405162461bcd60e51b815260040161058e9061191c565b600a54600160401b900460ff1661118b5760405162461bcd60e51b815260206004820152600a6024820152694e4f5f50454e44494e4760b01b604482015260640161058e565b600780546001600160a01b03191690555f600855600980546001600160c81b0319169055600a805468ffffffffffffffffff19169055565b5f546001600160a01b031633146111ec5760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac910160405180910390a25050565b5f5f6112558361065f565b60035490925063ffffffff90811690831610905061127557505f92915050565b60035461128990829063ffffffff16611a54565b9392505050565b5f546001600160a01b031633146112b95760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b0381166112fc5760405162461bcd60e51b815260206004820152600a6024820152692d22a927afa7aba722a960b11b604482015260640161058e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600180546001600160a01b0319166001600160a01b0387811691821790925560028690556003805463ffffffff871664ffffffffff199091168117600160201b8715159081029190911765010000000000600160c81b031916600160281b958716958602179092556040805193845260208401899052830152606082015260808101919091527f30315cfc61b7ce4782f18cdb8e00652cdbf424f154fcd799a333ebd359f9dd9a9060a00160405180910390a15050505050565b6001600160a01b0383166114355760405162461bcd60e51b815260040161058e906119a7565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f928392908716916114909190611a70565b5f604051808303815f865af19150503d805f81146114c9576040519150601f19603f3d011682016040523d82523d5f602084013e6114ce565b606091505b5091509150816115155760405162461bcd60e51b81526020600482015260126024820152711514905394d1915497d0d0531317d190525360721b604482015260640161058e565b805115610ae657808060200190518101906115309190611a1d565b610ae65760405162461bcd60e51b815260206004820152600e60248201526d5452414e534645525f46414c534560901b604482015260640161058e565b5f5f5f846001600160a01b03167f70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be856040516024016115bb91906001600160a01b0391909116815260200190565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516115f99190611a70565b5f60405180830381855afa9150503d805f8114611631576040519150601f19603f3d011682016040523d82523d5f602084013e611636565b606091505b509150915081801561164a57506020815110155b6116815760405162461bcd60e51b815260206004820152600860248201526710905317d190525360c21b604482015260640161058e565b808060200190518101906116959190611a86565b925050505b92915050565b80151581146116ad575f5ffd5b50565b5f602082840312156116c0575f5ffd5b8135611289816116a0565b803563ffffffff811681146116de575f5ffd5b919050565b5f602082840312156116f3575f5ffd5b611289826116cb565b6001600160a01b03811681146116ad575f5ffd5b5f60208284031215611720575f5ffd5b8135611289816116fc565b5f5f5f6040848603121561173d575f5ffd5b833567ffffffffffffffff811115611753575f5ffd5b8401601f81018613611763575f5ffd5b803567ffffffffffffffff811115611779575f5ffd5b8660208260051b840101111561178d575f5ffd5b6020918201945092508401356117a2816116a0565b809150509250925092565b5f5f604083850312156117be575f5ffd5b82356117c9816116fc565b946020939093013593505050565b5f5f5f5f5f60a086880312156117eb575f5ffd5b85356117f6816116fc565b94506020860135935061180b604087016116cb565b9250606086013561181b816116a0565b9150608086013561182b816116fc565b809150509295509295909350565b5f5f5f6060848603121561184b575f5ffd5b8335611856816116fc565b92506020840135611866816116fc565b929592945050506040919091013590565b5f5f60208385031215611888575f5ffd5b823567ffffffffffffffff81111561189e575f5ffd5b8301601f810185136118ae575f5ffd5b803567ffffffffffffffff8111156118c4575f5ffd5b8560208284010111156118d5575f5ffd5b6020919091019590945092505050565b5f5f604083850312156118f6575f5ffd5b8235611901816116fc565b91506020830135611911816116a0565b809150509250929050565b6020808252600a908201526927a7262cafa7aba722a960b11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252600690820152654241445f544f60d01b604082015260600190565b6020808252600990820152682120a22faa27a5a2a760b91b604082015260600190565b8082018082111561169a5761169a611954565b60408152826040820152828460608301375f60608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b5f60208284031215611a2d575f5ffd5b8151611289816116a0565b63ffffffff818116838216019081111561169a5761169a611954565b63ffffffff828116828216039081111561169a5761169a611954565b5f82518060208501845e5f920191825250919050565b5f60208284031215611a96575f5ffd5b505191905056fea2646970667358221220b340047af93309385b389211741fe0952eed7a65889d771c389781297f5825b664736f6c634300081f003300000000000000000000000012bbdc004a0e9085ff94df1717336ecbc9f9e5fe00000000000000000000000000000000000000000000000410d586a20a4c0000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd72208310000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610164575f3560e01c80638da5cb5b116100cd578063d01dd6d211610087578063eb33939111610062578063eb339391146104ec578063ec52e06014610508578063f2fde38b14610527578063f7c618c114610546575f5ffd5b8063d01dd6d2146103e5578063dbac26e914610404578063e20ccec314610432575f5ffd5b80638da5cb5b1461033657806393563a9514610354578063a4b13e4414610373578063ac99d2ff14610392578063b258649f146103a6578063b752a7d1146103c9575f5ffd5b80635c975abb1161011e5780635c975abb146102765780635e4db5a1146102a55780635e9aa99d146102c457806363fdd419146102e357806378c5a65f146102f75780638976f21814610316575f5ffd5b8063070bdbef1461016f57806316c38b3c146101b257806324e23b64146101d357806327e938f9146101f257806330141fc21461022e5780635c9302c91461024d575f5ffd5b3661016b57005b5f5ffd5b34801561017a575f5ffd5b5060035461019590600160281b90046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101bd575f5ffd5b506101d16101cc3660046116b0565b610565565b005b3480156101de575f5ffd5b506101d16101ed3660046116e3565b6105ee565b3480156101fd575f5ffd5b5061021161020c366004611710565b61065f565b6040805163ffffffff9384168152929091166020830152016101a9565b348015610239575f5ffd5b506101d161024836600461172b565b6106dc565b348015610258575f5ffd5b506102616107da565b60405163ffffffff90911681526020016101a9565b348015610281575f5ffd5b505f5461029590600160a01b900460ff1681565b60405190151581526020016101a9565b3480156102b0575f5ffd5b506101d16102bf3660046117ad565b6107ed565b3480156102cf575f5ffd5b506101d16102de3660046117d7565b61090e565b3480156102ee575f5ffd5b506101d1610aed565b348015610302575f5ffd5b506101d16103113660046117ad565b610c3f565b348015610321575f5ffd5b5060035461029590600160201b900460ff1681565b348015610341575f5ffd5b505f54610195906001600160a01b031681565b34801561035f575f5ffd5b506101d161036e366004611839565b610ced565b34801561037e575f5ffd5b506101d161038d366004611877565b610dc8565b34801561039d575f5ffd5b506101d161111c565b3480156103b1575f5ffd5b506103bb60025481565b6040519081526020016101a9565b3480156103d4575f5ffd5b506006546102619063ffffffff1681565b3480156103f0575f5ffd5b506101d16103ff3660046118e5565b6111c3565b34801561040f575f5ffd5b5061029561041e366004611710565b60046020525f908152604090205460ff1681565b34801561043d575f5ffd5b50600754600854600954600a54610492936001600160a01b03908116939263ffffffff81169260ff600160201b8304811693600160281b9093049092169167ffffffffffffffff821691600160401b90041687565b604080516001600160a01b039889168152602081019790975263ffffffff90951694860194909452911515606085015293909316608083015267ffffffffffffffff90921660a082015290151560c082015260e0016101a9565b3480156104f7575f5ffd5b506003546102619063ffffffff1681565b348015610513575f5ffd5b50610261610522366004611710565b61124a565b348015610532575f5ffd5b506101d1610541366004611710565b611290565b348015610551575f5ffd5b50600154610195906001600160a01b031681565b5f546001600160a01b031633146105975760405162461bcd60e51b815260040161058e9061191c565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd2906105e390831515815260200190565b60405180910390a150565b5f546001600160a01b031633146106175760405162461bcd60e51b815260040161058e9061191c565b6006805463ffffffff191663ffffffff83169081179091556040519081527f988c6f3e716aecf591f192563dfc5d6d0bc66d57928d8def96fa1fc98a776071906020016105e3565b6001600160a01b0381165f90815260056020908152604080832081518083019092525463ffffffff8082168352600160201b90910416918101919091528190816106a76107da565b90508063ffffffff16825f015163ffffffff16146106c957945f945092505050565b5080516020909101519094909350915050565b5f546001600160a01b031633146107055760405162461bcd60e51b815260040161058e9061191c565b5f5b828110156107d4578160045f86868581811061072557610725611940565b905060200201602081019061073a9190611710565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905583838281811061077357610773611940565b90506020020160208101906107889190611710565b6001600160a01b03167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac836040516107c4911515815260200190565b60405180910390a2600101610707565b50505050565b5f6107e86201518042611968565b905090565b5f546001600160a01b031633146108165760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b03821661083c5760405162461bcd60e51b815260040161058e90611987565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610885576040519150601f19603f3d011682016040523d82523d5f602084013e61088a565b606091505b50509050806108c65760405162461bcd60e51b815260206004820152600860248201526711551217d190525360c21b604482015260640161058e565b826001600160a01b03167fa545303f80a3184f3f1f7769fe503039703c5ae631a1263c4c29ef14606a47248360405161090191815260200190565b60405180910390a2505050565b5f546001600160a01b031633146109375760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b03851661095d5760405162461bcd60e51b815260040161058e906119a7565b5f8363ffffffff16118015610979575060ff8363ffffffff1611155b6109af5760405162461bcd60e51b815260206004820152600760248201526604241445f4341560cc1b604482015260640161058e565b60065463ffffffff165f036109d0576109cb8585858585611355565b610ae6565b6006545f906109e59063ffffffff16426119ca565b6040805160e0810182526001600160a01b0389811680835260208084018b905263ffffffff8a16848601819052891515606086018190529389166080860181905267ffffffffffffffff881660a08701819052600160c090970196909652600780546001600160a01b03191690941790935560088c90556009805464ffffffffff1916909117600160201b9094029390931765010000000000600160c81b031916600160281b90920291909117909155600a8054600160401b68ffffffffffffffffff19909116841717905591519081529192507f9333041aa7d0844994421e5a4b783d0130d6bfe86a9adb0a496111f109f375f1910160405180910390a1505b5050505050565b5f546001600160a01b03163314610b165760405162461bcd60e51b815260040161058e9061191c565b600a54600160401b900460ff16610b5c5760405162461bcd60e51b815260206004820152600a6024820152694e4f5f50454e44494e4760b01b604482015260640161058e565b600a5467ffffffffffffffff16421015610ba45760405162461bcd60e51b8152602060048201526009602482015268544f4f5f4541524c5960b81b604482015260640161058e565b600754600854600954610bde926001600160a01b03908116929163ffffffff81169160ff600160201b83041691600160281b900416611355565b600780546001600160a01b03191690555f6008819055600980546001600160c81b0319169055600a805468ffffffffffffffffff191690556040517f069fa58122b7926cfdf46e611a50611f9c80ca683431053255d5125dfd8653cd9190a1565b5f546001600160a01b03163314610c685760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b038216610c8e5760405162461bcd60e51b815260040161058e90611987565b600154610ca5906001600160a01b0316838361140f565b6001546040518281526001600160a01b038481169216907f1d4828a43ae63cab91306bef4dbc17799b4b158c864cf563cc057c39ed21c1ef9060200160405180910390a35050565b5f546001600160a01b03163314610d165760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b038316610d3c5760405162461bcd60e51b815260040161058e906119a7565b6001600160a01b038216610d625760405162461bcd60e51b815260040161058e90611987565b610d766001600160a01b038416838361140f565b816001600160a01b0316836001600160a01b03167f1d4828a43ae63cab91306bef4dbc17799b4b158c864cf563cc057c39ed21c1ef83604051610dbb91815260200190565b60405180910390a3505050565b5f54600160a01b900460ff1615610e0a5760405162461bcd60e51b815260206004820152600660248201526514105554d15160d21b604482015260640161058e565b335f9081526004602052604090205460ff1615610e575760405162461bcd60e51b815260206004820152600b60248201526a10931050d2d31254d5115160aa1b604482015260640161058e565b600354600160201b900460ff1615610f7157600354600160281b90046001600160a01b0316610eba5760405162461bcd60e51b815260206004820152600f60248201526e2727afa827a42fab22a924a324a2a960891b604482015260640161058e565b600354604051633d3ac1b560e01b81525f91600160281b90046001600160a01b031690633d3ac1b590610ef5908690869033906004016119dd565b602060405180830381865afa158015610f10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f349190611a1d565b905080610f6f5760405162461bcd60e51b81526020600482015260096024820152682727aa2fa42aa6a0a760b91b604482015260640161058e565b505b5f610f7a6107da565b335f90815260056020526040902080549192509063ffffffff808416911614610fb557805467ffffffffffffffff191663ffffffff83161781555b600354815463ffffffff918216600160201b909104909116106110065760405162461bcd60e51b815260206004820152600960248201526804441494c595f4341560bc1b604482015260640161058e565b80546001908290600490611028908490600160201b900463ffffffff16611a38565b92506101000a81548163ffffffff021916908363ffffffff1602179055505f60025490505f8111156110c657600154819061106c906001600160a01b03163061156d565b10156110af5760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f46554e445360701b604482015260640161058e565b6001546110c6906001600160a01b0316338361140f565b815460408051600160201b90920463ffffffff90811683526020830184905285169133917ff02eed9df42c885685cf441158059f675567750eb8049efa74a0cdd6804933d4910160405180910390a35050505050565b5f546001600160a01b031633146111455760405162461bcd60e51b815260040161058e9061191c565b600a54600160401b900460ff1661118b5760405162461bcd60e51b815260206004820152600a6024820152694e4f5f50454e44494e4760b01b604482015260640161058e565b600780546001600160a01b03191690555f600855600980546001600160c81b0319169055600a805468ffffffffffffffffff19169055565b5f546001600160a01b031633146111ec5760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b0382165f81815260046020908152604091829020805460ff191685151590811790915591519182527f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac910160405180910390a25050565b5f5f6112558361065f565b60035490925063ffffffff90811690831610905061127557505f92915050565b60035461128990829063ffffffff16611a54565b9392505050565b5f546001600160a01b031633146112b95760405162461bcd60e51b815260040161058e9061191c565b6001600160a01b0381166112fc5760405162461bcd60e51b815260206004820152600a6024820152692d22a927afa7aba722a960b11b604482015260640161058e565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600180546001600160a01b0319166001600160a01b0387811691821790925560028690556003805463ffffffff871664ffffffffff199091168117600160201b8715159081029190911765010000000000600160c81b031916600160281b958716958602179092556040805193845260208401899052830152606082015260808101919091527f30315cfc61b7ce4782f18cdb8e00652cdbf424f154fcd799a333ebd359f9dd9a9060a00160405180910390a15050505050565b6001600160a01b0383166114355760405162461bcd60e51b815260040161058e906119a7565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f928392908716916114909190611a70565b5f604051808303815f865af19150503d805f81146114c9576040519150601f19603f3d011682016040523d82523d5f602084013e6114ce565b606091505b5091509150816115155760405162461bcd60e51b81526020600482015260126024820152711514905394d1915497d0d0531317d190525360721b604482015260640161058e565b805115610ae657808060200190518101906115309190611a1d565b610ae65760405162461bcd60e51b815260206004820152600e60248201526d5452414e534645525f46414c534560901b604482015260640161058e565b5f5f5f846001600160a01b03167f70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be856040516024016115bb91906001600160a01b0391909116815260200190565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516115f99190611a70565b5f60405180830381855afa9150503d805f8114611631576040519150601f19603f3d011682016040523d82523d5f602084013e611636565b606091505b509150915081801561164a57506020815110155b6116815760405162461bcd60e51b815260206004820152600860248201526710905317d190525360c21b604482015260640161058e565b808060200190518101906116959190611a86565b925050505b92915050565b80151581146116ad575f5ffd5b50565b5f602082840312156116c0575f5ffd5b8135611289816116a0565b803563ffffffff811681146116de575f5ffd5b919050565b5f602082840312156116f3575f5ffd5b611289826116cb565b6001600160a01b03811681146116ad575f5ffd5b5f60208284031215611720575f5ffd5b8135611289816116fc565b5f5f5f6040848603121561173d575f5ffd5b833567ffffffffffffffff811115611753575f5ffd5b8401601f81018613611763575f5ffd5b803567ffffffffffffffff811115611779575f5ffd5b8660208260051b840101111561178d575f5ffd5b6020918201945092508401356117a2816116a0565b809150509250925092565b5f5f604083850312156117be575f5ffd5b82356117c9816116fc565b946020939093013593505050565b5f5f5f5f5f60a086880312156117eb575f5ffd5b85356117f6816116fc565b94506020860135935061180b604087016116cb565b9250606086013561181b816116a0565b9150608086013561182b816116fc565b809150509295509295909350565b5f5f5f6060848603121561184b575f5ffd5b8335611856816116fc565b92506020840135611866816116fc565b929592945050506040919091013590565b5f5f60208385031215611888575f5ffd5b823567ffffffffffffffff81111561189e575f5ffd5b8301601f810185136118ae575f5ffd5b803567ffffffffffffffff8111156118c4575f5ffd5b8560208284010111156118d5575f5ffd5b6020919091019590945092505050565b5f5f604083850312156118f6575f5ffd5b8235611901816116fc565b91506020830135611911816116a0565b809150509250929050565b6020808252600a908201526927a7262cafa7aba722a960b11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252600690820152654241445f544f60d01b604082015260600190565b6020808252600990820152682120a22faa27a5a2a760b91b604082015260600190565b8082018082111561169a5761169a611954565b60408152826040820152828460608301375f60608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b5f60208284031215611a2d575f5ffd5b8151611289816116a0565b63ffffffff818116838216019081111561169a5761169a611954565b63ffffffff828116828216039081111561169a5761169a611954565b5f82518060208501845e5f920191825250919050565b5f60208284031215611a96575f5ffd5b505191905056fea2646970667358221220b340047af93309385b389211741fe0952eed7a65889d771c389781297f5825b664736f6c634300081f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000012bbdc004a0e9085ff94df1717336ecbc9f9e5fe00000000000000000000000000000000000000000000000410d586a20a4c0000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd72208310000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : rewardToken_ (address): 0x12bBdc004a0E9085Ff94dF1717336EcBc9F9E5fe
Arg [1] : rewardPerTx_ (uint256): 75000000000000000000
Arg [2] : dailyCap_ (uint32): 10
Arg [3] : requirePoH_ (bool): True
Arg [4] : pohVerifier_ (address): 0xBf14cFAFD7B83f6de881ae6dc10796ddD7220831
Arg [5] : delaySeconds_ (uint32): 0
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000012bbdc004a0e9085ff94df1717336ecbc9f9e5fe
Arg [1] : 00000000000000000000000000000000000000000000000410d586a20a4c0000
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [4] : 000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd7220831
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.