Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,954 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 94958827 | 6 mins ago | IN | 0 BNB | 0.00000774 | ||||
| Transfer | 94953424 | 47 mins ago | IN | 0 BNB | 0.00000741 | ||||
| Transfer | 94953012 | 50 mins ago | IN | 0 BNB | 0.00000723 | ||||
| Transfer | 94952968 | 50 mins ago | IN | 0 BNB | 0.00000723 | ||||
| Transfer | 94952898 | 51 mins ago | IN | 0 BNB | 0.00000774 | ||||
| Transfer | 94949289 | 1 hr ago | IN | 0 BNB | 0.00000748 | ||||
| Transfer | 94948957 | 1 hr ago | IN | 0 BNB | 0.00000774 | ||||
| Transfer | 94946032 | 1 hr ago | IN | 0 BNB | 0.00000723 | ||||
| Transfer | 94945518 | 1 hr ago | IN | 0 BNB | 0.00000774 | ||||
| Transfer | 94943846 | 1 hr ago | IN | 0 BNB | 0.00000774 | ||||
| Transfer | 94937477 | 2 hrs ago | IN | 0 BNB | 0.00000791 | ||||
| Transfer | 94932480 | 3 hrs ago | IN | 0 BNB | 0.00000707 | ||||
| Transfer | 94925022 | 4 hrs ago | IN | 0 BNB | 0.00000774 | ||||
| Transfer | 94902357 | 7 hrs ago | IN | 0 BNB | 0.00000773 | ||||
| Transfer | 94900164 | 7 hrs ago | IN | 0 BNB | 0.00000774 | ||||
| Transfer | 94898061 | 7 hrs ago | IN | 0 BNB | 0.00000748 | ||||
| Transfer | 94894908 | 8 hrs ago | IN | 0 BNB | 0.00000747 | ||||
| Transfer | 94889169 | 8 hrs ago | IN | 0 BNB | 0.00000748 | ||||
| Transfer | 94888328 | 8 hrs ago | IN | 0 BNB | 0.00000766 | ||||
| Transfer | 94876512 | 10 hrs ago | IN | 0 BNB | 0.00000723 | ||||
| Transfer | 94876271 | 10 hrs ago | IN | 0 BNB | 0.00000723 | ||||
| Transfer | 94875781 | 10 hrs ago | IN | 0 BNB | 0.00000716 | ||||
| Transfer | 94875716 | 10 hrs ago | IN | 0 BNB | 0.00000716 | ||||
| Transfer | 94875654 | 10 hrs ago | IN | 0 BNB | 0.00000716 | ||||
| Transfer | 94875572 | 10 hrs ago | IN | 0 BNB | 0.00000716 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 94959031 | 5 mins ago | 0.0025 BNB | ||||
| 94958827 | 6 mins ago | 0.01746 BNB | ||||
| 94958514 | 8 mins ago | 0.025 BNB | ||||
| 94957697 | 15 mins ago | 0.025 BNB | ||||
| 94957636 | 15 mins ago | 0.0025 BNB | ||||
| 94957550 | 16 mins ago | 0.0025 BNB | ||||
| 94957511 | 16 mins ago | 0.025 BNB | ||||
| 94957476 | 16 mins ago | 0.0025 BNB | ||||
| 94957290 | 18 mins ago | 0.0025 BNB | ||||
| 94957016 | 20 mins ago | 0.0025 BNB | ||||
| 94956582 | 23 mins ago | 0.005 BNB | ||||
| 94956278 | 25 mins ago | 0.005 BNB | ||||
| 94956193 | 26 mins ago | 0.025 BNB | ||||
| 94956095 | 27 mins ago | 0.025 BNB | ||||
| 94956063 | 27 mins ago | 0.025 BNB | ||||
| 94956032 | 27 mins ago | 0.025 BNB | ||||
| 94955969 | 28 mins ago | 0.025 BNB | ||||
| 94955940 | 28 mins ago | 0.0025 BNB | ||||
| 94955647 | 30 mins ago | 0.025 BNB | ||||
| 94955615 | 30 mins ago | 0.025 BNB | ||||
| 94955577 | 31 mins ago | 0.025 BNB | ||||
| 94955317 | 32 mins ago | 0.025 BNB | ||||
| 94953548 | 46 mins ago | 0.025 BNB | ||||
| 94953424 | 47 mins ago | 0.01306 BNB | ||||
| 94953012 | 50 mins ago | 0.013335 BNB |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
NodeNFT
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.20;
interface IERC20_Minimal {
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
}
interface IERC721Receiver {
function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);
}
contract NodeNFT {
string public name;
string public symbol;
mapping(uint256 => address) private _owners;
mapping(address => uint256) private _balances;
mapping(uint256 => address) private _tokenApprovals;
mapping(address => mapping(address => bool)) private _operatorApprovals;
mapping(address => uint256[]) private _ownedTokens;
mapping(uint256 => uint256) private _ownedTokensIndex;
mapping(uint256 => uint256) public receivedAt;
uint256 public totalSupply;
uint256 public maxSupply;
address public okToken;
address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
uint256 public transferLockDuration = 30 days;
uint256 public accBnbPerShare;
uint256 public accTokenPerShare;
mapping(address => uint256) public bnbRewardDebt;
mapping(address => uint256) public tokenRewardDebt;
mapping(address => uint256) public bnbOwedHigh;
mapping(address => uint256) public tokenOwedHigh;
address public owner;
string private _baseTokenURI;
bool private locked;
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
event Claim(address indexed user, uint256 bnbAmount, uint256 tokenAmount);
event DepositRewards(uint256 bnbAmount, uint256 tokenAmount);
event OkTokenUpdated(address oldToken, address newToken);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
modifier onlyOwner() {
require(msg.sender == owner, "Not owner");
_;
}
modifier nonReentrant() {
require(!locked, "R");
locked = true;
_;
locked = false;
}
constructor(string memory _name, string memory _symbol, address _okToken, uint256 _maxSupply) {
owner = msg.sender;
name = _name;
symbol = _symbol;
okToken = _okToken;
maxSupply = _maxSupply;
emit OwnershipTransferred(address(0), owner);
}
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0), "Invalid owner");
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
function renounceOwnership() external onlyOwner {
emit OwnershipTransferred(owner, DEAD);
owner = DEAD;
}
function setOkToken(address _okToken) external onlyOwner {
require(_okToken != address(0), "Invalid address");
address oldToken = okToken;
okToken = _okToken;
emit OkTokenUpdated(oldToken, _okToken);
}
function setMaxSupply(uint256 _maxSupply) external onlyOwner {
require(_maxSupply >= totalSupply, "New max supply below total supply");
maxSupply = _maxSupply;
}
function setTransferLockDuration(uint256 newDuration) external onlyOwner {
transferLockDuration = newDuration;
}
function _getRewardShares(address user) internal view returns (uint256) {
uint256 balance = _balances[user];
return balance;
}
function balanceOf(address _owner) public view returns (uint256) {
return _balances[_owner];
}
function ownerOf(uint256 tokenId) public view returns (address) {
address _owner = _owners[tokenId];
require(_owner != address(0), "Nonexistent token");
return _owner;
}
function approve(address to, uint256 tokenId) public {
address _owner = ownerOf(tokenId);
require(to != _owner, "Approval to current owner");
require(msg.sender == _owner || isApprovedForAll(_owner, msg.sender), "Not authorized");
_tokenApprovals[tokenId] = to;
emit Approval(_owner, to, tokenId);
}
function getApproved(uint256 tokenId) public view returns (address) {
require(_owners[tokenId] != address(0), "Nonexistent token");
return _tokenApprovals[tokenId];
}
function setApprovalForAll(address operator, bool approved) public {
_operatorApprovals[msg.sender][operator] = approved;
emit ApprovalForAll(msg.sender, operator, approved);
}
function isApprovedForAll(address _owner, address operator) public view returns (bool) {
return _operatorApprovals[_owner][operator];
}
function transferFrom(address from, address to, uint256 tokenId) public {
require(_isApprovedOrOwner(msg.sender, tokenId), "Not authorized");
_transfer(from, to, tokenId);
}
function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {
transferFrom(from, to, tokenId);
require(_checkOnERC721Received(from, to, tokenId, _data), "Transfer to non ERC721Receiver implementer");
}
function safeTransferFrom(address from, address to, uint256 tokenId) public {
safeTransferFrom(from, to, tokenId, "");
}
function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {
address _owner = ownerOf(tokenId);
return (spender == _owner || getApproved(tokenId) == spender || isApprovedForAll(_owner, spender));
}
function _transfer(address from, address to, uint256 tokenId) internal {
require(ownerOf(tokenId) == from, "Incorrect owner");
require(to != address(this), "Transfer to this address");
uint256 lastReceived = receivedAt[tokenId];
require(lastReceived == 0 || block.timestamp >= lastReceived + transferLockDuration, "Transfer locked");
_accrue(from);
_accrue(to);
_approve(address(0), tokenId);
_balances[from] -= 1;
_balances[to] += 1;
_owners[tokenId] = to;
receivedAt[tokenId] = block.timestamp;
_removeTokenFromOwnerEnumeration(from, tokenId);
_addTokenToOwnerEnumeration(to, tokenId);
bnbRewardDebt[from] = _balances[from] * accBnbPerShare;
tokenRewardDebt[from] = _balances[from] * accTokenPerShare;
bnbRewardDebt[to] = _balances[to] * accBnbPerShare;
tokenRewardDebt[to] = _balances[to] * accTokenPerShare;
emit Transfer(from, to, tokenId);
}
function _approve(address to, uint256 tokenId) internal {
_tokenApprovals[tokenId] = to;
emit Approval(ownerOf(tokenId), to, tokenId);
}
function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) private returns (bool) {
if (to.code.length > 0) {
try IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data) returns (bytes4 retval) {
return retval == IERC721Receiver.onERC721Received.selector;
} catch {
return false;
}
}
return true;
}
function mint(address to) external onlyOwner nonReentrant {
require(totalSupply < maxSupply, "Max supply reached");
_claimAllForUser(to);
totalSupply++;
uint256 tokenId = totalSupply;
_balances[to] += 1;
_owners[tokenId] = to;
_addTokenToOwnerEnumeration(to, tokenId);
bnbRewardDebt[to] += accBnbPerShare;
tokenRewardDebt[to] += accTokenPerShare;
emit Transfer(address(0), to, tokenId);
}
function batchMint(address to, uint256 amount) external onlyOwner nonReentrant {
require(totalSupply + amount <= maxSupply, "Max supply reached");
_claimAllForUser(to);
uint256 startId = totalSupply + 1;
totalSupply += amount;
_balances[to] += amount;
bnbRewardDebt[to] += amount * accBnbPerShare;
tokenRewardDebt[to] += amount * accTokenPerShare;
for (uint256 i = 0; i < amount; i++) {
uint256 tokenId = startId + i;
_owners[tokenId] = to;
_addTokenToOwnerEnumeration(to, tokenId);
emit Transfer(address(0), to, tokenId);
}
}
receive() external payable nonReentrant {
if (msg.value == 0) {
_claimAllForUser(msg.sender);
} else {
emit DepositRewards(msg.value, 0);
}
}
uint256 public lastBnbBalance;
uint256 public lastTokenBalance;
function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
return interfaceId == 0x80ac58cd || // ERC721
interfaceId == 0x01ffc9a7 || // ERC165
interfaceId == 0x5b5e139f; // ERC721Metadata
}
function updatePool() public {
uint256 supply = totalSupply;
uint256 burned = _balances[address(0)] + _balances[DEAD];
if (supply <= burned) return;
uint256 effectiveSupply = supply - burned;
uint256 currentBnbBalance = address(this).balance;
if (currentBnbBalance > lastBnbBalance) {
uint256 newBnb = currentBnbBalance - lastBnbBalance;
uint256 shareIncrease = _mulDiv(newBnb, 1e10, effectiveSupply);
if (shareIncrease > 0) {
accBnbPerShare += shareIncrease;
lastBnbBalance += _mulDiv(shareIncrease, effectiveSupply, 1e10);
}
} else if (currentBnbBalance < lastBnbBalance) {
lastBnbBalance = currentBnbBalance;
}
if (okToken != address(0) && okToken.code.length > 0) {
uint256 currentTokenBalance = IERC20_Minimal(okToken).balanceOf(address(this));
if (currentTokenBalance > lastTokenBalance) {
uint256 newToken = currentTokenBalance - lastTokenBalance;
uint256 shareIncrease = _mulDiv(newToken, 1e10, effectiveSupply);
if (shareIncrease > 0) {
accTokenPerShare += shareIncrease;
lastTokenBalance += _mulDiv(shareIncrease, effectiveSupply, 1e10);
}
} else if (currentTokenBalance < lastTokenBalance) {
lastTokenBalance = currentTokenBalance;
}
}
}
function claimAll() external nonReentrant {
_claimAllForUser(msg.sender);
}
function _accrue(address user) internal {
updatePool();
uint256 shares = _getRewardShares(user);
uint256 accumulatedBnb = shares * accBnbPerShare;
if (accumulatedBnb > bnbRewardDebt[user]) {
bnbOwedHigh[user] += accumulatedBnb - bnbRewardDebt[user];
}
bnbRewardDebt[user] = accumulatedBnb;
uint256 accumulatedToken = shares * accTokenPerShare;
if (accumulatedToken > tokenRewardDebt[user]) {
tokenOwedHigh[user] += accumulatedToken - tokenRewardDebt[user];
}
tokenRewardDebt[user] = accumulatedToken;
}
function _claimAllForUser(address user) internal {
updatePool();
uint256 shares = _getRewardShares(user);
if (shares == 0 && bnbOwedHigh[user] == 0 && tokenOwedHigh[user] == 0) return;
uint256 accumulatedBnb = shares * accBnbPerShare;
uint256 pendingBnb = 0;
if (accumulatedBnb > bnbRewardDebt[user]) {
pendingBnb = accumulatedBnb - bnbRewardDebt[user];
}
uint256 accumulatedToken = shares * accTokenPerShare;
uint256 pendingToken = 0;
if (accumulatedToken > tokenRewardDebt[user]) {
pendingToken = accumulatedToken - tokenRewardDebt[user];
}
uint256 totalBnbHigh = pendingBnb + bnbOwedHigh[user];
uint256 claimedBnbHigh = _payoutBnb(user, totalBnbHigh);
bnbOwedHigh[user] = totalBnbHigh - claimedBnbHigh;
bnbRewardDebt[user] = accumulatedBnb;
uint256 totalTokenHigh = pendingToken + tokenOwedHigh[user];
uint256 claimedTokenHigh = _payoutToken(user, totalTokenHigh);
tokenOwedHigh[user] = totalTokenHigh - claimedTokenHigh;
tokenRewardDebt[user] = accumulatedToken;
emit Claim(user, claimedBnbHigh / 1e10, claimedTokenHigh / 1e10);
}
function _payoutBnb(address user, uint256 totalHigh) internal returns (uint256 claimedHigh) {
if (totalHigh == 0) return 0;
uint256 amount = totalHigh / 1e10;
if (amount == 0) return 0;
uint256 bal = address(this).balance;
uint256 accounted = lastBnbBalance;
if (accounted > bal) accounted = bal;
if (amount > accounted) amount = accounted;
if (amount == 0) return 0;
(bool success, ) = user.call{value: amount}("");
if (!success) return 0;
lastBnbBalance = accounted - amount;
uint256 curBal = address(this).balance;
if (lastBnbBalance > curBal) lastBnbBalance = curBal;
return amount * 1e10;
}
function _payoutToken(address user, uint256 totalHigh) internal returns (uint256 claimedHigh) {
if (totalHigh == 0) return 0;
uint256 amount = totalHigh / 1e10;
if (amount == 0) return 0;
address token = okToken;
if (token == address(0) || token.code.length == 0) return 0;
uint256 bal = IERC20_Minimal(token).balanceOf(address(this));
uint256 accounted = lastTokenBalance;
if (accounted > bal) accounted = bal;
if (amount > accounted) amount = accounted;
if (amount == 0) return 0;
bool success = _safeTokenTransfer(token, user, amount);
if (!success) return 0;
lastTokenBalance = accounted - amount;
uint256 curBal = IERC20_Minimal(token).balanceOf(address(this));
if (lastTokenBalance > curBal) lastTokenBalance = curBal;
return amount * 1e10;
}
function _safeTokenTransfer(
address token,
address to,
uint256 amount
) internal returns (bool) {
(bool success, bytes memory data) = token.call(
abi.encodeWithSelector(0xa9059cbb, to, amount)
);
if (!success) return false;
if (data.length == 0) return true;
if (data.length < 32) return false;
return abi.decode(data, (bool));
}
function claim(uint256[] calldata tokenIds) external nonReentrant {
for (uint256 i = 0; i < tokenIds.length; i++) {
require(ownerOf(tokenIds[i]) == msg.sender, "Not owner");
}
_claimAllForUser(msg.sender);
}
function _mulDiv(
uint256 x,
uint256 y,
uint256 denominator
) internal pure returns (uint256 result) {
unchecked {
uint256 prod0;
uint256 prod1;
assembly {
let mm := mulmod(x, y, not(0))
prod0 := mul(x, y)
prod1 := sub(sub(mm, prod0), lt(mm, prod0))
}
if (prod1 == 0) {
return prod0 / denominator;
}
if (denominator <= prod1) revert();
uint256 remainder;
assembly {
remainder := mulmod(x, y, denominator)
prod1 := sub(prod1, gt(remainder, prod0))
prod0 := sub(prod0, remainder)
}
uint256 twos = denominator & (~denominator + 1);
assembly {
denominator := div(denominator, twos)
prod0 := div(prod0, twos)
twos := add(div(sub(0, twos), twos), 1)
}
prod0 |= prod1 * twos;
uint256 inv = (3 * denominator) ^ 2;
inv *= 2 - denominator * inv;
inv *= 2 - denominator * inv;
inv *= 2 - denominator * inv;
inv *= 2 - denominator * inv;
inv *= 2 - denominator * inv;
inv *= 2 - denominator * inv;
result = prod0 * inv;
return result;
}
}
function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
uint256 length = _ownedTokens[to].length;
_ownedTokens[to].push(tokenId);
_ownedTokensIndex[tokenId] = length;
}
function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
uint256 lastTokenIndex = _ownedTokens[from].length - 1;
uint256 tokenIndex = _ownedTokensIndex[tokenId];
if (tokenIndex != lastTokenIndex) {
uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];
_ownedTokens[from][tokenIndex] = lastTokenId;
_ownedTokensIndex[lastTokenId] = tokenIndex;
}
_ownedTokens[from].pop();
delete _ownedTokensIndex[tokenId];
}
function setBaseURI(string calldata baseURI) external onlyOwner {
_baseTokenURI = baseURI;
}
function tokenURI(uint256 tokenId) public view returns (string memory) {
require(_owners[tokenId] != address(0), "Nonexistent token");
return string(abi.encodePacked(_baseTokenURI, toString(tokenId)));
}
function toString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
}
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
function emergencyWithdraw(address token) external onlyOwner {
if (token == address(0)) {
uint256 balance = address(this).balance;
(bool success, ) = owner.call{value: balance}("");
require(success, "Transfer failed");
lastBnbBalance = 0;
} else {
uint256 bal = IERC20_Minimal(token).balanceOf(address(this));
IERC20_Minimal(token).transfer(owner, bal);
if (token == okToken) {
lastTokenBalance = 0;
}
}
}
function sync() external {
lastBnbBalance = address(this).balance;
if (okToken != address(0) && okToken.code.length > 0) {
lastTokenBalance = IERC20_Minimal(okToken).balanceOf(address(this));
} else {
lastTokenBalance = 0;
}
}
}{
"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":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_okToken","type":"address"},{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bnbAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bnbAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"DepositRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldToken","type":"address"},{"indexed":false,"internalType":"address","name":"newToken","type":"address"}],"name":"OkTokenUpdated","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accBnbPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accTokenPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"batchMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bnbOwedHigh","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bnbRewardDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBnbBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"okToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"receivedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_okToken","type":"address"}],"name":"setOkToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"setTransferLockDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenOwedHigh","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenRewardDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferLockDuration","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":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405262278d00600c55348015610016575f5ffd5b506040516131a53803806131a58339810160408190526100359161015b565b601380546001600160a01b031916331790555f610052858261026a565b50600161005f848261026a565b50600b80546001600160a01b0319166001600160a01b0384811691909117909155600a8290556013546040519116905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505050610324565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126100e1575f5ffd5b81516001600160401b038111156100fa576100fa6100be565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610128576101286100be565b60405281815283820160200185101561013f575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f6080858703121561016e575f5ffd5b84516001600160401b03811115610183575f5ffd5b61018f878288016100d2565b602087015190955090506001600160401b038111156101ac575f5ffd5b6101b8878288016100d2565b604087015190945090506001600160a01b03811681146101d6575f5ffd5b6060959095015193969295505050565b600181811c908216806101fa57607f821691505b60208210810361021857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561026557805f5260205f20601f840160051c810160208510156102435750805b601f840160051c820191505b81811015610262575f815560010161024f565b50505b505050565b81516001600160401b03811115610283576102836100be565b6102978161029184546101e6565b8461021e565b6020601f8211600181146102c9575f83156102b25750848201515b5f19600385901b1c1916600184901b178455610262565b5f84815260208120601f198516915b828110156102f857878501518255602094850194600190920191016102d8565b508482101561031557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b612e74806103315f395ff3fe608060405260043610610241575f3560e01c80638da5cb5b11610134578063c4c815b1116100b3578063e3161ddd11610078578063e3161ddd14610737578063e985e9c51461074b578063f163f74f1461076a578063f2fde38b1461077f578063fc36bfca1461079e578063fff6cae9146107c9575f5ffd5b8063c4c815b1146106a5578063c87b56dd146106d0578063d1058e59146106ef578063d5abeb0114610703578063d899773f14610718575f5ffd5b8063a9427cd6116100f9578063a9427cd6146105fc578063aec7eb1b1461061b578063b88d4fde14610630578063be5de6631461064f578063bee97b751461067a575f5ffd5b80638da5cb5b146105765780638f6629151461059557806395d89b41146105aa5780639b7ecb1e146105be578063a22cb465146105dd575f5ffd5b806343508b05116101c05780636f8b44b0116101855780636f8b44b0146104db5780636ff1c9bc146104fa57806370a0823114610519578063715018a61461054d578063862a9f2f14610561575f5ffd5b806343508b051461044057806355f804b31461045f5780636352211e1461047e5780636a6278421461049d5780636ba4c138146104bc575f5ffd5b806318160ddd1161020657806318160ddd1461039f57806323b872dd146103c25780632d498eb2146103e15780633f73cf361461040c57806342842e0e14610421575f5ffd5b806301ffc9a7146102dd57806303fd2a451461031157806306fdde031461033e578063081812fc1461035f578063095ea7b31461037e575f5ffd5b366102d95760155460ff16156102725760405162461bcd60e51b815260040161026990612767565b60405180910390fd5b6015805460ff19166001179055345f036102945761028f336107dd565b6102cd565b604080513481525f60208201527ff35f95f47bca6d62bdc5bc7f14da33e6e8d8d7acdb29e8bb3ac08aad5cc7dbe5910160405180910390a15b6015805460ff19169055005b5f5ffd5b3480156102e8575f5ffd5b506102fc6102f7366004612797565b610a12565b60405190151581526020015b60405180910390f35b34801561031c575f5ffd5b5061032661dead81565b6040516001600160a01b039091168152602001610308565b348015610349575f5ffd5b50610352610a63565b60405161030891906127e0565b34801561036a575f5ffd5b506103266103793660046127f2565b610aee565b348015610389575f5ffd5b5061039d610398366004612824565b610b3c565b005b3480156103aa575f5ffd5b506103b460095481565b604051908152602001610308565b3480156103cd575f5ffd5b5061039d6103dc36600461284c565b610c5d565b3480156103ec575f5ffd5b506103b46103fb366004612886565b60126020525f908152604090205481565b348015610417575f5ffd5b506103b4600c5481565b34801561042c575f5ffd5b5061039d61043b36600461284c565b610cb4565b34801561044b575f5ffd5b5061039d61045a366004612824565b610cce565b34801561046a575f5ffd5b5061039d61047936600461289f565b610ee3565b348015610489575f5ffd5b506103266104983660046127f2565b610f1a565b3480156104a8575f5ffd5b5061039d6104b7366004612886565b610f4e565b3480156104c7575f5ffd5b5061039d6104d636600461290d565b611110565b3480156104e6575f5ffd5b5061039d6104f53660046127f2565b6111b2565b348015610505575f5ffd5b5061039d610514366004612886565b61123d565b348015610524575f5ffd5b506103b4610533366004612886565b6001600160a01b03165f9081526003602052604090205490565b348015610558575f5ffd5b5061039d611413565b34801561056c575f5ffd5b506103b460175481565b348015610581575f5ffd5b50601354610326906001600160a01b031681565b3480156105a0575f5ffd5b506103b4600e5481565b3480156105b5575f5ffd5b5061035261148c565b3480156105c9575f5ffd5b5061039d6105d83660046127f2565b611499565b3480156105e8575f5ffd5b5061039d6105f736600461297b565b6114c8565b348015610607575f5ffd5b50600b54610326906001600160a01b031681565b348015610626575f5ffd5b506103b4600d5481565b34801561063b575f5ffd5b5061039d61064a3660046129c4565b611533565b34801561065a575f5ffd5b506103b46106693660046127f2565b60086020525f908152604090205481565b348015610685575f5ffd5b506103b4610694366004612886565b600f6020525f908152604090205481565b3480156106b0575f5ffd5b506103b46106bf366004612886565b60106020525f908152604090205481565b3480156106db575f5ffd5b506103526106ea3660046127f2565b6115af565b3480156106fa575f5ffd5b5061039d611617565b34801561070e575f5ffd5b506103b4600a5481565b348015610723575f5ffd5b5061039d610732366004612886565b61165c565b348015610742575f5ffd5b5061039d61172f565b348015610756575f5ffd5b506102fc610765366004612aa1565b611954565b348015610775575f5ffd5b506103b460165481565b34801561078a575f5ffd5b5061039d610799366004612886565b611981565b3480156107a9575f5ffd5b506103b46107b8366004612886565b60116020525f908152604090205481565b3480156107d4575f5ffd5b5061039d611a4c565b6107e561172f565b6001600160a01b0381165f908152600360205260409020548015801561082057506001600160a01b0382165f90815260116020526040902054155b801561084157506001600160a01b0382165f90815260126020526040902054155b1561084a575050565b5f600d54826108599190612ae6565b6001600160a01b0384165f908152600f6020526040812054919250908211156108a1576001600160a01b0384165f908152600f602052604090205461089e9083612afd565b90505b5f600e54846108b09190612ae6565b6001600160a01b0386165f90815260106020526040812054919250908211156108f8576001600160a01b0386165f908152601060205260409020546108f59083612afd565b90505b6001600160a01b0386165f9081526011602052604081205461091a9085612b10565b90505f6109278883611aef565b90506109338183612afd565b6001600160a01b0389165f90815260116020908152604080832093909355600f8152828220899055601290529081205461096d9085612b10565b90505f61097a8a83611bea565b90506109868183612afd565b6001600160a01b038b165f8181526012602090815260408083209490945560109052919091208790557f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf76109df6402540be40086612b37565b6109ee6402540be40085612b37565b6040805192835260208301919091520160405180910390a250505050505050505050565b5f6380ac58cd60e01b6001600160e01b031983161480610a4257506301ffc9a760e01b6001600160e01b03198316145b80610a5d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f8054610a6f90612b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9b90612b4a565b8015610ae65780601f10610abd57610100808354040283529160200191610ae6565b820191905f5260205f20905b815481529060010190602001808311610ac957829003601f168201915b505050505081565b5f818152600260205260408120546001600160a01b0316610b215760405162461bcd60e51b815260040161026990612b82565b505f908152600460205260409020546001600160a01b031690565b5f610b4682610f1a565b9050806001600160a01b0316836001600160a01b031603610ba95760405162461bcd60e51b815260206004820152601960248201527f417070726f76616c20746f2063757272656e74206f776e6572000000000000006044820152606401610269565b336001600160a01b0382161480610bc55750610bc58133611954565b610c025760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610269565b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610c673382611da6565b610ca45760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610269565b610caf838383611e04565b505050565b610caf83838360405180602001604052805f815250611533565b6013546001600160a01b03163314610cf85760405162461bcd60e51b815260040161026990612bad565b60155460ff1615610d1b5760405162461bcd60e51b815260040161026990612767565b6015805460ff19166001179055600a54600954610d39908390612b10565b1115610d7c5760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b6044820152606401610269565b610d85826107dd565b5f6009546001610d959190612b10565b90508160095f828254610da89190612b10565b90915550506001600160a01b0383165f9081526003602052604081208054849290610dd4908490612b10565b9091555050600d54610de69083612ae6565b6001600160a01b0384165f908152600f602052604081208054909190610e0d908490612b10565b9091555050600e54610e1f9083612ae6565b6001600160a01b0384165f9081526010602052604081208054909190610e46908490612b10565b909155505f90505b82811015610ed3575f610e618284612b10565b5f81815260026020526040902080546001600160a01b0319166001600160a01b0388161790559050610e9385826120ef565b60405181906001600160a01b038716905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a450600101610e4e565b50506015805460ff191690555050565b6013546001600160a01b03163314610f0d5760405162461bcd60e51b815260040161026990612bad565b6014610caf828483612c14565b5f818152600260205260408120546001600160a01b031680610a5d5760405162461bcd60e51b815260040161026990612b82565b6013546001600160a01b03163314610f785760405162461bcd60e51b815260040161026990612bad565b60155460ff1615610f9b5760405162461bcd60e51b815260040161026990612767565b6015805460ff19166001179055600a5460095410610ff05760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b6044820152606401610269565b610ff9816107dd565b60098054905f61100883612cce565b90915550506009546001600160a01b0382165f908152600360205260408120805460019290611038908490612b10565b90915550505f81815260026020526040902080546001600160a01b0319166001600160a01b03841617905561106d82826120ef565b600d546001600160a01b0383165f908152600f602052604081208054909190611097908490612b10565b9091555050600e546001600160a01b0383165f90815260106020526040812080549091906110c6908490612b10565b909155505060405181906001600160a01b038416905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a450506015805460ff19169055565b60155460ff16156111335760405162461bcd60e51b815260040161026990612767565b6015805460ff191660011790555f5b8181101561119a573361116c84848481811061116057611160612ce6565b90506020020135610f1a565b6001600160a01b0316146111925760405162461bcd60e51b815260040161026990612bad565b600101611142565b506111a4336107dd565b50506015805460ff19169055565b6013546001600160a01b031633146111dc5760405162461bcd60e51b815260040161026990612bad565b6009548110156112385760405162461bcd60e51b815260206004820152602160248201527f4e6577206d617820737570706c792062656c6f7720746f74616c20737570706c6044820152607960f81b6064820152608401610269565b600a55565b6013546001600160a01b031633146112675760405162461bcd60e51b815260040161026990612bad565b6001600160a01b0381166113145760135460405147915f916001600160a01b039091169083908381818185875af1925050503d805f81146112c3576040519150601f19603f3d011682016040523d82523d5f602084013e6112c8565b606091505b505090508061130b5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610269565b50505f60165550565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611358573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137c9190612cfa565b60135460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303815f875af11580156113ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f29190612d11565b50600b546001600160a01b039081169083160361140e575f6017555b505b50565b6013546001600160a01b0316331461143d5760405162461bcd60e51b815260040161026990612bad565b60135460405161dead916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3601380546001600160a01b03191661dead179055565b60018054610a6f90612b4a565b6013546001600160a01b031633146114c35760405162461bcd60e51b815260040161026990612bad565b600c55565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61153e848484610c5d565b61154a8484848461212a565b6115a95760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220746f206e6f6e204552433732315265636569766572206960448201526936b83632b6b2b73a32b960b11b6064820152608401610269565b50505050565b5f818152600260205260409020546060906001600160a01b03166115e55760405162461bcd60e51b815260040161026990612b82565b60146115f0836121d7565b604051602001611601929190612d43565b6040516020818303038152906040529050919050565b60155460ff161561163a5760405162461bcd60e51b815260040161026990612767565b6015805460ff19166001179055611650336107dd565b6015805460ff19169055565b6013546001600160a01b031633146116865760405162461bcd60e51b815260040161026990612bad565b6001600160a01b0381166116ce5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610269565b600b80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f84eb45aa5c303b55df1b0828ab67183106e782c0e53d6a1aa04bb0fb61f4ae63910160405180910390a15050565b60095460036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c545f8080527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff54909161178a91612b10565b9050808211611797575050565b5f6117a28284612afd565b601654909150479081111561181f575f601654826117c09190612afd565b90505f6117d3826402540be400866122d4565b905080156118185780600d5f8282546117ec9190612b10565b90915550611802905081856402540be4006122d4565b60165f8282546118129190612b10565b90915550505b505061182f565b60165481101561182f5760168190555b600b546001600160a01b0316158015906118545750600b546001600160a01b03163b15155b156115a957600b546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801561189f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c39190612cfa565b905060175481111561193d575f601754826118de9190612afd565b90505f6118f1826402540be400876122d4565b905080156119365780600e5f82825461190a9190612b10565b90915550611920905081866402540be4006122d4565b60175f8282546119309190612b10565b90915550505b505061194d565b60175481101561194d5760178190555b5050505050565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b6013546001600160a01b031633146119ab5760405162461bcd60e51b815260040161026990612bad565b6001600160a01b0381166119f15760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610269565b6013546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3601380546001600160a01b0319166001600160a01b0392909216919091179055565b47601655600b546001600160a01b031615801590611a755750600b546001600160a01b03163b15155b15611ae957600b546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611ac0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae49190612cfa565b601755565b5f601755565b5f815f03611afe57505f610a5d565b5f611b0e6402540be40084612b37565b9050805f03611b20575f915050610a5d565b601654479081811115611b305750805b80831115611b3c578092505b825f03611b4e575f9350505050610a5d565b5f866001600160a01b0316846040515f6040518083038185875af1925050503d805f8114611b97576040519150601f19603f3d011682016040523d82523d5f602084013e611b9c565b606091505b5050905080611bb1575f945050505050610a5d565b611bbb8483612afd565b60168190554790811015611bcf5760168190555b611bde856402540be400612ae6565b98975050505050505050565b5f815f03611bf957505f610a5d565b5f611c096402540be40084612b37565b9050805f03611c1b575f915050610a5d565b600b546001600160a01b0316801580611c3c57506001600160a01b0381163b155b15611c4b575f92505050610a5d565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611c8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb39190612cfa565b60175490915081811115611cc45750805b80841115611cd0578093505b835f03611ce3575f945050505050610a5d565b5f611cef848987612383565b905080611d03575f95505050505050610a5d565b611d0d8583612afd565b6017556040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015611d54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d789190612cfa565b9050806017541115611d8a5760178190555b611d99866402540be400612ae6565b9998505050505050505050565b5f5f611db183610f1a565b9050806001600160a01b0316846001600160a01b03161480611dec5750836001600160a01b0316611de184610aee565b6001600160a01b0316145b80611dfc5750611dfc8185611954565b949350505050565b826001600160a01b0316611e1782610f1a565b6001600160a01b031614611e5f5760405162461bcd60e51b815260206004820152600f60248201526e24b731b7b93932b1ba1037bbb732b960891b6044820152606401610269565b306001600160a01b03831603611eb75760405162461bcd60e51b815260206004820152601860248201527f5472616e7366657220746f2074686973206164647265737300000000000000006044820152606401610269565b5f81815260086020526040902054801580611ede5750600c54611eda9082612b10565b4210155b611f1c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c881b1bd8dad959608a1b6044820152606401610269565b611f258461248c565b611f2e8361248c565b611f385f836125e5565b6001600160a01b0384165f908152600360205260408120805460019290611f60908490612afd565b90915550506001600160a01b0383165f908152600360205260408120805460019290611f8d908490612b10565b90915550505f82815260026020908152604080832080546001600160a01b0319166001600160a01b03881617905560089091529020429055611fcf8483612652565b611fd983836120ef565b600d546001600160a01b0385165f90815260036020526040902054611ffe9190612ae6565b6001600160a01b0385165f908152600f6020908152604080832093909355600e546003909152919020546120329190612ae6565b6001600160a01b038086165f90815260106020908152604080832094909455600d54928716825260039052919091205461206c9190612ae6565b6001600160a01b0384165f908152600f6020908152604080832093909355600e546003909152919020546120a09190612ae6565b6001600160a01b038085165f81815260106020526040808220949094559251859391928816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450505050565b6001600160a01b039091165f908152600660209081526040808320805460018101825590845282842081018590559383526007909152902055565b5f6001600160a01b0384163b156121cc57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061216d903390899088908890600401612dbf565b6020604051808303815f875af19250505080156121a7575060408051601f3d908101601f191682019092526121a491810190612df1565b60015b6121b257505f611dfc565b6001600160e01b031916630a85bd0160e11b149050611dfc565b506001949350505050565b6060815f036121fd5750506040805180820190915260018152600360fc1b602082015290565b815f5b8115612226578061221081612cce565b915061221f9050600a83612b37565b9150612200565b5f8167ffffffffffffffff811115612240576122406129b0565b6040519080825280601f01601f19166020018201604052801561226a576020820181803683370190505b5090505b8415611dfc5761227f600183612afd565b915061228c600a86612e0c565b612297906030612b10565b60f81b8183815181106122ac576122ac612ce6565b60200101906001600160f81b03191690815f1a9053506122cd600a86612b37565b945061226e565b5f80805f19858709858702925082811083820303915050805f0361230b5783828161230157612301612b23565b049250505061237c565b808411612316575f5ffd5b5f848688098519600190810187169687900496828603819004959092119093035f82900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b5f5f5f856001600160a01b031663a9059cbb86866040516024016123bc9291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516123f59190612e1f565b5f604051808303815f865af19150503d805f811461242e576040519150601f19603f3d011682016040523d82523d5f602084013e612433565b606091505b509150915081612447575f9250505061237c565b80515f0361245a5760019250505061237c565b60208151101561246e575f9250505061237c565b808060200190518101906124829190612d11565b9695505050505050565b61249461172f565b6001600160a01b0381165f90815260036020526040812054600d549091906124bc9083612ae6565b6001600160a01b0384165f908152600f602052604090205490915081111561252d576001600160a01b0383165f908152600f60205260409020546125009082612afd565b6001600160a01b0384165f9081526011602052604081208054909190612527908490612b10565b90915550505b6001600160a01b0383165f908152600f60205260408120829055600e546125549084612ae6565b6001600160a01b0385165f908152601060205260409020549091508111156125c5576001600160a01b0384165f908152601060205260409020546125989082612afd565b6001600160a01b0385165f90815260126020526040812080549091906125bf908490612b10565b90915550505b6001600160a01b039093165f908152601060205260409020929092555050565b5f81815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061261982610f1a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b0382165f9081526006602052604081205461267690600190612afd565b5f83815260076020526040902054909150808214612716576001600160a01b0384165f9081526006602052604081208054849081106126b7576126b7612ce6565b905f5260205f20015490508060065f876001600160a01b03166001600160a01b031681526020019081526020015f2083815481106126f7576126f7612ce6565b5f91825260208083209091019290925591825260079052604090208190555b6001600160a01b0384165f90815260066020526040902080548061273c5761273c612e2a565b5f828152602080822083015f1990810183905590920190925593815260079093525050604081205550565b6020808252600190820152602960f91b604082015260600190565b6001600160e01b031981168114611410575f5ffd5b5f602082840312156127a7575f5ffd5b813561237c81612782565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61237c60208301846127b2565b5f60208284031215612802575f5ffd5b5035919050565b80356001600160a01b038116811461281f575f5ffd5b919050565b5f5f60408385031215612835575f5ffd5b61283e83612809565b946020939093013593505050565b5f5f5f6060848603121561285e575f5ffd5b61286784612809565b925061287560208501612809565b929592945050506040919091013590565b5f60208284031215612896575f5ffd5b61237c82612809565b5f5f602083850312156128b0575f5ffd5b823567ffffffffffffffff8111156128c6575f5ffd5b8301601f810185136128d6575f5ffd5b803567ffffffffffffffff8111156128ec575f5ffd5b8560208284010111156128fd575f5ffd5b6020919091019590945092505050565b5f5f6020838503121561291e575f5ffd5b823567ffffffffffffffff811115612934575f5ffd5b8301601f81018513612944575f5ffd5b803567ffffffffffffffff81111561295a575f5ffd5b8560208260051b84010111156128fd575f5ffd5b8015158114611410575f5ffd5b5f5f6040838503121561298c575f5ffd5b61299583612809565b915060208301356129a58161296e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156129d7575f5ffd5b6129e085612809565b93506129ee60208601612809565b925060408501359150606085013567ffffffffffffffff811115612a10575f5ffd5b8501601f81018713612a20575f5ffd5b803567ffffffffffffffff811115612a3a57612a3a6129b0565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612a6957612a696129b0565b604052818152828201602001891015612a80575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f60408385031215612ab2575f5ffd5b612abb83612809565b9150612ac960208401612809565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a5d57610a5d612ad2565b81810381811115610a5d57610a5d612ad2565b80820180821115610a5d57610a5d612ad2565b634e487b7160e01b5f52601260045260245ffd5b5f82612b4557612b45612b23565b500490565b600181811c90821680612b5e57607f821691505b602082108103612b7c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252601190820152702737b732bc34b9ba32b73a103a37b5b2b760791b604082015260600190565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b601f821115610caf57805f5260205f20601f840160051c81016020851015612bf55750805b601f840160051c820191505b8181101561194d575f8155600101612c01565b67ffffffffffffffff831115612c2c57612c2c6129b0565b612c4083612c3a8354612b4a565b83612bd0565b5f601f841160018114612c71575f8515612c5a5750838201355b5f19600387901b1c1916600186901b17835561194d565b5f83815260208120601f198716915b82811015612ca05786850135825560209485019460019092019101612c80565b5086821015612cbc575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60018201612cdf57612cdf612ad2565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612d0a575f5ffd5b5051919050565b5f60208284031215612d21575f5ffd5b815161237c8161296e565b5f81518060208401855e5f93019283525090919050565b5f5f8454612d5081612b4a565b600182168015612d675760018114612d7c57612da9565b60ff1983168652811515820286019350612da9565b875f5260205f205f5b83811015612da157815488820152600190910190602001612d85565b505081860193505b505050612db68185612d2c565b95945050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90612482908301846127b2565b5f60208284031215612e01575f5ffd5b815161237c81612782565b5f82612e1a57612e1a612b23565b500690565b5f61237c8284612d2c565b634e487b7160e01b5f52603160045260245ffdfea26469706673582212209608212d58275735644ddbe1236e49219c3b9ced8fec1a2818c4d9f302eb09cf64736f6c634300081f0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000d484c4f4b2de5a4a72d4e4f444500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d484c4f4b2de5a4a72d4e4f444500000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610241575f3560e01c80638da5cb5b11610134578063c4c815b1116100b3578063e3161ddd11610078578063e3161ddd14610737578063e985e9c51461074b578063f163f74f1461076a578063f2fde38b1461077f578063fc36bfca1461079e578063fff6cae9146107c9575f5ffd5b8063c4c815b1146106a5578063c87b56dd146106d0578063d1058e59146106ef578063d5abeb0114610703578063d899773f14610718575f5ffd5b8063a9427cd6116100f9578063a9427cd6146105fc578063aec7eb1b1461061b578063b88d4fde14610630578063be5de6631461064f578063bee97b751461067a575f5ffd5b80638da5cb5b146105765780638f6629151461059557806395d89b41146105aa5780639b7ecb1e146105be578063a22cb465146105dd575f5ffd5b806343508b05116101c05780636f8b44b0116101855780636f8b44b0146104db5780636ff1c9bc146104fa57806370a0823114610519578063715018a61461054d578063862a9f2f14610561575f5ffd5b806343508b051461044057806355f804b31461045f5780636352211e1461047e5780636a6278421461049d5780636ba4c138146104bc575f5ffd5b806318160ddd1161020657806318160ddd1461039f57806323b872dd146103c25780632d498eb2146103e15780633f73cf361461040c57806342842e0e14610421575f5ffd5b806301ffc9a7146102dd57806303fd2a451461031157806306fdde031461033e578063081812fc1461035f578063095ea7b31461037e575f5ffd5b366102d95760155460ff16156102725760405162461bcd60e51b815260040161026990612767565b60405180910390fd5b6015805460ff19166001179055345f036102945761028f336107dd565b6102cd565b604080513481525f60208201527ff35f95f47bca6d62bdc5bc7f14da33e6e8d8d7acdb29e8bb3ac08aad5cc7dbe5910160405180910390a15b6015805460ff19169055005b5f5ffd5b3480156102e8575f5ffd5b506102fc6102f7366004612797565b610a12565b60405190151581526020015b60405180910390f35b34801561031c575f5ffd5b5061032661dead81565b6040516001600160a01b039091168152602001610308565b348015610349575f5ffd5b50610352610a63565b60405161030891906127e0565b34801561036a575f5ffd5b506103266103793660046127f2565b610aee565b348015610389575f5ffd5b5061039d610398366004612824565b610b3c565b005b3480156103aa575f5ffd5b506103b460095481565b604051908152602001610308565b3480156103cd575f5ffd5b5061039d6103dc36600461284c565b610c5d565b3480156103ec575f5ffd5b506103b46103fb366004612886565b60126020525f908152604090205481565b348015610417575f5ffd5b506103b4600c5481565b34801561042c575f5ffd5b5061039d61043b36600461284c565b610cb4565b34801561044b575f5ffd5b5061039d61045a366004612824565b610cce565b34801561046a575f5ffd5b5061039d61047936600461289f565b610ee3565b348015610489575f5ffd5b506103266104983660046127f2565b610f1a565b3480156104a8575f5ffd5b5061039d6104b7366004612886565b610f4e565b3480156104c7575f5ffd5b5061039d6104d636600461290d565b611110565b3480156104e6575f5ffd5b5061039d6104f53660046127f2565b6111b2565b348015610505575f5ffd5b5061039d610514366004612886565b61123d565b348015610524575f5ffd5b506103b4610533366004612886565b6001600160a01b03165f9081526003602052604090205490565b348015610558575f5ffd5b5061039d611413565b34801561056c575f5ffd5b506103b460175481565b348015610581575f5ffd5b50601354610326906001600160a01b031681565b3480156105a0575f5ffd5b506103b4600e5481565b3480156105b5575f5ffd5b5061035261148c565b3480156105c9575f5ffd5b5061039d6105d83660046127f2565b611499565b3480156105e8575f5ffd5b5061039d6105f736600461297b565b6114c8565b348015610607575f5ffd5b50600b54610326906001600160a01b031681565b348015610626575f5ffd5b506103b4600d5481565b34801561063b575f5ffd5b5061039d61064a3660046129c4565b611533565b34801561065a575f5ffd5b506103b46106693660046127f2565b60086020525f908152604090205481565b348015610685575f5ffd5b506103b4610694366004612886565b600f6020525f908152604090205481565b3480156106b0575f5ffd5b506103b46106bf366004612886565b60106020525f908152604090205481565b3480156106db575f5ffd5b506103526106ea3660046127f2565b6115af565b3480156106fa575f5ffd5b5061039d611617565b34801561070e575f5ffd5b506103b4600a5481565b348015610723575f5ffd5b5061039d610732366004612886565b61165c565b348015610742575f5ffd5b5061039d61172f565b348015610756575f5ffd5b506102fc610765366004612aa1565b611954565b348015610775575f5ffd5b506103b460165481565b34801561078a575f5ffd5b5061039d610799366004612886565b611981565b3480156107a9575f5ffd5b506103b46107b8366004612886565b60116020525f908152604090205481565b3480156107d4575f5ffd5b5061039d611a4c565b6107e561172f565b6001600160a01b0381165f908152600360205260409020548015801561082057506001600160a01b0382165f90815260116020526040902054155b801561084157506001600160a01b0382165f90815260126020526040902054155b1561084a575050565b5f600d54826108599190612ae6565b6001600160a01b0384165f908152600f6020526040812054919250908211156108a1576001600160a01b0384165f908152600f602052604090205461089e9083612afd565b90505b5f600e54846108b09190612ae6565b6001600160a01b0386165f90815260106020526040812054919250908211156108f8576001600160a01b0386165f908152601060205260409020546108f59083612afd565b90505b6001600160a01b0386165f9081526011602052604081205461091a9085612b10565b90505f6109278883611aef565b90506109338183612afd565b6001600160a01b0389165f90815260116020908152604080832093909355600f8152828220899055601290529081205461096d9085612b10565b90505f61097a8a83611bea565b90506109868183612afd565b6001600160a01b038b165f8181526012602090815260408083209490945560109052919091208790557f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf76109df6402540be40086612b37565b6109ee6402540be40085612b37565b6040805192835260208301919091520160405180910390a250505050505050505050565b5f6380ac58cd60e01b6001600160e01b031983161480610a4257506301ffc9a760e01b6001600160e01b03198316145b80610a5d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f8054610a6f90612b4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9b90612b4a565b8015610ae65780601f10610abd57610100808354040283529160200191610ae6565b820191905f5260205f20905b815481529060010190602001808311610ac957829003601f168201915b505050505081565b5f818152600260205260408120546001600160a01b0316610b215760405162461bcd60e51b815260040161026990612b82565b505f908152600460205260409020546001600160a01b031690565b5f610b4682610f1a565b9050806001600160a01b0316836001600160a01b031603610ba95760405162461bcd60e51b815260206004820152601960248201527f417070726f76616c20746f2063757272656e74206f776e6572000000000000006044820152606401610269565b336001600160a01b0382161480610bc55750610bc58133611954565b610c025760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610269565b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610c673382611da6565b610ca45760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610269565b610caf838383611e04565b505050565b610caf83838360405180602001604052805f815250611533565b6013546001600160a01b03163314610cf85760405162461bcd60e51b815260040161026990612bad565b60155460ff1615610d1b5760405162461bcd60e51b815260040161026990612767565b6015805460ff19166001179055600a54600954610d39908390612b10565b1115610d7c5760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b6044820152606401610269565b610d85826107dd565b5f6009546001610d959190612b10565b90508160095f828254610da89190612b10565b90915550506001600160a01b0383165f9081526003602052604081208054849290610dd4908490612b10565b9091555050600d54610de69083612ae6565b6001600160a01b0384165f908152600f602052604081208054909190610e0d908490612b10565b9091555050600e54610e1f9083612ae6565b6001600160a01b0384165f9081526010602052604081208054909190610e46908490612b10565b909155505f90505b82811015610ed3575f610e618284612b10565b5f81815260026020526040902080546001600160a01b0319166001600160a01b0388161790559050610e9385826120ef565b60405181906001600160a01b038716905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a450600101610e4e565b50506015805460ff191690555050565b6013546001600160a01b03163314610f0d5760405162461bcd60e51b815260040161026990612bad565b6014610caf828483612c14565b5f818152600260205260408120546001600160a01b031680610a5d5760405162461bcd60e51b815260040161026990612b82565b6013546001600160a01b03163314610f785760405162461bcd60e51b815260040161026990612bad565b60155460ff1615610f9b5760405162461bcd60e51b815260040161026990612767565b6015805460ff19166001179055600a5460095410610ff05760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b6044820152606401610269565b610ff9816107dd565b60098054905f61100883612cce565b90915550506009546001600160a01b0382165f908152600360205260408120805460019290611038908490612b10565b90915550505f81815260026020526040902080546001600160a01b0319166001600160a01b03841617905561106d82826120ef565b600d546001600160a01b0383165f908152600f602052604081208054909190611097908490612b10565b9091555050600e546001600160a01b0383165f90815260106020526040812080549091906110c6908490612b10565b909155505060405181906001600160a01b038416905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a450506015805460ff19169055565b60155460ff16156111335760405162461bcd60e51b815260040161026990612767565b6015805460ff191660011790555f5b8181101561119a573361116c84848481811061116057611160612ce6565b90506020020135610f1a565b6001600160a01b0316146111925760405162461bcd60e51b815260040161026990612bad565b600101611142565b506111a4336107dd565b50506015805460ff19169055565b6013546001600160a01b031633146111dc5760405162461bcd60e51b815260040161026990612bad565b6009548110156112385760405162461bcd60e51b815260206004820152602160248201527f4e6577206d617820737570706c792062656c6f7720746f74616c20737570706c6044820152607960f81b6064820152608401610269565b600a55565b6013546001600160a01b031633146112675760405162461bcd60e51b815260040161026990612bad565b6001600160a01b0381166113145760135460405147915f916001600160a01b039091169083908381818185875af1925050503d805f81146112c3576040519150601f19603f3d011682016040523d82523d5f602084013e6112c8565b606091505b505090508061130b5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610269565b50505f60165550565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611358573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137c9190612cfa565b60135460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303815f875af11580156113ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f29190612d11565b50600b546001600160a01b039081169083160361140e575f6017555b505b50565b6013546001600160a01b0316331461143d5760405162461bcd60e51b815260040161026990612bad565b60135460405161dead916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3601380546001600160a01b03191661dead179055565b60018054610a6f90612b4a565b6013546001600160a01b031633146114c35760405162461bcd60e51b815260040161026990612bad565b600c55565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61153e848484610c5d565b61154a8484848461212a565b6115a95760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220746f206e6f6e204552433732315265636569766572206960448201526936b83632b6b2b73a32b960b11b6064820152608401610269565b50505050565b5f818152600260205260409020546060906001600160a01b03166115e55760405162461bcd60e51b815260040161026990612b82565b60146115f0836121d7565b604051602001611601929190612d43565b6040516020818303038152906040529050919050565b60155460ff161561163a5760405162461bcd60e51b815260040161026990612767565b6015805460ff19166001179055611650336107dd565b6015805460ff19169055565b6013546001600160a01b031633146116865760405162461bcd60e51b815260040161026990612bad565b6001600160a01b0381166116ce5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610269565b600b80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f84eb45aa5c303b55df1b0828ab67183106e782c0e53d6a1aa04bb0fb61f4ae63910160405180910390a15050565b60095460036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c545f8080527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff54909161178a91612b10565b9050808211611797575050565b5f6117a28284612afd565b601654909150479081111561181f575f601654826117c09190612afd565b90505f6117d3826402540be400866122d4565b905080156118185780600d5f8282546117ec9190612b10565b90915550611802905081856402540be4006122d4565b60165f8282546118129190612b10565b90915550505b505061182f565b60165481101561182f5760168190555b600b546001600160a01b0316158015906118545750600b546001600160a01b03163b15155b156115a957600b546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801561189f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c39190612cfa565b905060175481111561193d575f601754826118de9190612afd565b90505f6118f1826402540be400876122d4565b905080156119365780600e5f82825461190a9190612b10565b90915550611920905081866402540be4006122d4565b60175f8282546119309190612b10565b90915550505b505061194d565b60175481101561194d5760178190555b5050505050565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b6013546001600160a01b031633146119ab5760405162461bcd60e51b815260040161026990612bad565b6001600160a01b0381166119f15760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b6044820152606401610269565b6013546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3601380546001600160a01b0319166001600160a01b0392909216919091179055565b47601655600b546001600160a01b031615801590611a755750600b546001600160a01b03163b15155b15611ae957600b546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611ac0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae49190612cfa565b601755565b5f601755565b5f815f03611afe57505f610a5d565b5f611b0e6402540be40084612b37565b9050805f03611b20575f915050610a5d565b601654479081811115611b305750805b80831115611b3c578092505b825f03611b4e575f9350505050610a5d565b5f866001600160a01b0316846040515f6040518083038185875af1925050503d805f8114611b97576040519150601f19603f3d011682016040523d82523d5f602084013e611b9c565b606091505b5050905080611bb1575f945050505050610a5d565b611bbb8483612afd565b60168190554790811015611bcf5760168190555b611bde856402540be400612ae6565b98975050505050505050565b5f815f03611bf957505f610a5d565b5f611c096402540be40084612b37565b9050805f03611c1b575f915050610a5d565b600b546001600160a01b0316801580611c3c57506001600160a01b0381163b155b15611c4b575f92505050610a5d565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611c8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb39190612cfa565b60175490915081811115611cc45750805b80841115611cd0578093505b835f03611ce3575f945050505050610a5d565b5f611cef848987612383565b905080611d03575f95505050505050610a5d565b611d0d8583612afd565b6017556040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015611d54573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d789190612cfa565b9050806017541115611d8a5760178190555b611d99866402540be400612ae6565b9998505050505050505050565b5f5f611db183610f1a565b9050806001600160a01b0316846001600160a01b03161480611dec5750836001600160a01b0316611de184610aee565b6001600160a01b0316145b80611dfc5750611dfc8185611954565b949350505050565b826001600160a01b0316611e1782610f1a565b6001600160a01b031614611e5f5760405162461bcd60e51b815260206004820152600f60248201526e24b731b7b93932b1ba1037bbb732b960891b6044820152606401610269565b306001600160a01b03831603611eb75760405162461bcd60e51b815260206004820152601860248201527f5472616e7366657220746f2074686973206164647265737300000000000000006044820152606401610269565b5f81815260086020526040902054801580611ede5750600c54611eda9082612b10565b4210155b611f1c5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c881b1bd8dad959608a1b6044820152606401610269565b611f258461248c565b611f2e8361248c565b611f385f836125e5565b6001600160a01b0384165f908152600360205260408120805460019290611f60908490612afd565b90915550506001600160a01b0383165f908152600360205260408120805460019290611f8d908490612b10565b90915550505f82815260026020908152604080832080546001600160a01b0319166001600160a01b03881617905560089091529020429055611fcf8483612652565b611fd983836120ef565b600d546001600160a01b0385165f90815260036020526040902054611ffe9190612ae6565b6001600160a01b0385165f908152600f6020908152604080832093909355600e546003909152919020546120329190612ae6565b6001600160a01b038086165f90815260106020908152604080832094909455600d54928716825260039052919091205461206c9190612ae6565b6001600160a01b0384165f908152600f6020908152604080832093909355600e546003909152919020546120a09190612ae6565b6001600160a01b038085165f81815260106020526040808220949094559251859391928816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450505050565b6001600160a01b039091165f908152600660209081526040808320805460018101825590845282842081018590559383526007909152902055565b5f6001600160a01b0384163b156121cc57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061216d903390899088908890600401612dbf565b6020604051808303815f875af19250505080156121a7575060408051601f3d908101601f191682019092526121a491810190612df1565b60015b6121b257505f611dfc565b6001600160e01b031916630a85bd0160e11b149050611dfc565b506001949350505050565b6060815f036121fd5750506040805180820190915260018152600360fc1b602082015290565b815f5b8115612226578061221081612cce565b915061221f9050600a83612b37565b9150612200565b5f8167ffffffffffffffff811115612240576122406129b0565b6040519080825280601f01601f19166020018201604052801561226a576020820181803683370190505b5090505b8415611dfc5761227f600183612afd565b915061228c600a86612e0c565b612297906030612b10565b60f81b8183815181106122ac576122ac612ce6565b60200101906001600160f81b03191690815f1a9053506122cd600a86612b37565b945061226e565b5f80805f19858709858702925082811083820303915050805f0361230b5783828161230157612301612b23565b049250505061237c565b808411612316575f5ffd5b5f848688098519600190810187169687900496828603819004959092119093035f82900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b5f5f5f856001600160a01b031663a9059cbb86866040516024016123bc9291906001600160a01b03929092168252602082015260400190565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516123f59190612e1f565b5f604051808303815f865af19150503d805f811461242e576040519150601f19603f3d011682016040523d82523d5f602084013e612433565b606091505b509150915081612447575f9250505061237c565b80515f0361245a5760019250505061237c565b60208151101561246e575f9250505061237c565b808060200190518101906124829190612d11565b9695505050505050565b61249461172f565b6001600160a01b0381165f90815260036020526040812054600d549091906124bc9083612ae6565b6001600160a01b0384165f908152600f602052604090205490915081111561252d576001600160a01b0383165f908152600f60205260409020546125009082612afd565b6001600160a01b0384165f9081526011602052604081208054909190612527908490612b10565b90915550505b6001600160a01b0383165f908152600f60205260408120829055600e546125549084612ae6565b6001600160a01b0385165f908152601060205260409020549091508111156125c5576001600160a01b0384165f908152601060205260409020546125989082612afd565b6001600160a01b0385165f90815260126020526040812080549091906125bf908490612b10565b90915550505b6001600160a01b039093165f908152601060205260409020929092555050565b5f81815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061261982610f1a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b0382165f9081526006602052604081205461267690600190612afd565b5f83815260076020526040902054909150808214612716576001600160a01b0384165f9081526006602052604081208054849081106126b7576126b7612ce6565b905f5260205f20015490508060065f876001600160a01b03166001600160a01b031681526020019081526020015f2083815481106126f7576126f7612ce6565b5f91825260208083209091019290925591825260079052604090208190555b6001600160a01b0384165f90815260066020526040902080548061273c5761273c612e2a565b5f828152602080822083015f1990810183905590920190925593815260079093525050604081205550565b6020808252600190820152602960f91b604082015260600190565b6001600160e01b031981168114611410575f5ffd5b5f602082840312156127a7575f5ffd5b813561237c81612782565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61237c60208301846127b2565b5f60208284031215612802575f5ffd5b5035919050565b80356001600160a01b038116811461281f575f5ffd5b919050565b5f5f60408385031215612835575f5ffd5b61283e83612809565b946020939093013593505050565b5f5f5f6060848603121561285e575f5ffd5b61286784612809565b925061287560208501612809565b929592945050506040919091013590565b5f60208284031215612896575f5ffd5b61237c82612809565b5f5f602083850312156128b0575f5ffd5b823567ffffffffffffffff8111156128c6575f5ffd5b8301601f810185136128d6575f5ffd5b803567ffffffffffffffff8111156128ec575f5ffd5b8560208284010111156128fd575f5ffd5b6020919091019590945092505050565b5f5f6020838503121561291e575f5ffd5b823567ffffffffffffffff811115612934575f5ffd5b8301601f81018513612944575f5ffd5b803567ffffffffffffffff81111561295a575f5ffd5b8560208260051b84010111156128fd575f5ffd5b8015158114611410575f5ffd5b5f5f6040838503121561298c575f5ffd5b61299583612809565b915060208301356129a58161296e565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f608085870312156129d7575f5ffd5b6129e085612809565b93506129ee60208601612809565b925060408501359150606085013567ffffffffffffffff811115612a10575f5ffd5b8501601f81018713612a20575f5ffd5b803567ffffffffffffffff811115612a3a57612a3a6129b0565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612a6957612a696129b0565b604052818152828201602001891015612a80575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f60408385031215612ab2575f5ffd5b612abb83612809565b9150612ac960208401612809565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a5d57610a5d612ad2565b81810381811115610a5d57610a5d612ad2565b80820180821115610a5d57610a5d612ad2565b634e487b7160e01b5f52601260045260245ffd5b5f82612b4557612b45612b23565b500490565b600181811c90821680612b5e57607f821691505b602082108103612b7c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252601190820152702737b732bc34b9ba32b73a103a37b5b2b760791b604082015260600190565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b601f821115610caf57805f5260205f20601f840160051c81016020851015612bf55750805b601f840160051c820191505b8181101561194d575f8155600101612c01565b67ffffffffffffffff831115612c2c57612c2c6129b0565b612c4083612c3a8354612b4a565b83612bd0565b5f601f841160018114612c71575f8515612c5a5750838201355b5f19600387901b1c1916600186901b17835561194d565b5f83815260208120601f198716915b82811015612ca05786850135825560209485019460019092019101612c80565b5086821015612cbc575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60018201612cdf57612cdf612ad2565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612d0a575f5ffd5b5051919050565b5f60208284031215612d21575f5ffd5b815161237c8161296e565b5f81518060208401855e5f93019283525090919050565b5f5f8454612d5081612b4a565b600182168015612d675760018114612d7c57612da9565b60ff1983168652811515820286019350612da9565b875f5260205f205f5b83811015612da157815488820152600190910190602001612d85565b505081860193505b505050612db68185612d2c565b95945050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90612482908301846127b2565b5f60208284031215612e01575f5ffd5b815161237c81612782565b5f82612e1a57612e1a612b23565b500690565b5f61237c8284612d2c565b634e487b7160e01b5f52603160045260245ffdfea26469706673582212209608212d58275735644ddbe1236e49219c3b9ced8fec1a2818c4d9f302eb09cf64736f6c634300081f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000d484c4f4b2de5a4a72d4e4f444500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d484c4f4b2de5a4a72d4e4f444500000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): HLOK-大-NODE
Arg [1] : _symbol (string): HLOK-大-NODE
Arg [2] : _okToken (address): 0x0000000000000000000000000000000000000000
Arg [3] : _maxSupply (uint256): 100
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [5] : 484c4f4b2de5a4a72d4e4f444500000000000000000000000000000000000000
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [7] : 484c4f4b2de5a4a72d4e4f444500000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Net Worth in USD
$2,050.71
Net Worth in BNB
Token Allocations
BNB
100.00%
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BSC | 100.00% | $628.15 | 3.2647 | $2,050.71 |
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.