Contract
0xea8129f602e0cfdd9fba116e07fb04a13afdc48a
5
Contract Overview
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xd40fFBf8E9F07adF1530095629aD2cBc0BCF2806
Contract Name:
Handler
Compiler Version
v0.8.0+commit.c7dfd78e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity ^0.8.0; import "./INodeType.sol"; import "./IPolarNode.sol"; import "./IPolarLuckyBox.sol"; import "./ISwapper.sol"; import "./Owners.sol"; contract Handler is Owners { event NewNode( address indexed owner, string indexed name, uint count ); struct NodeType { string[] keys; // nodeTypeName to address mapping(string => address) values; mapping(string => uint256) indexOf; mapping(string => bool) inserted; } struct Token { uint[] keys; // token ids to nodeTypeName mapping(uint => string) values; mapping(uint => uint) indexOf; mapping(uint => bool) inserted; } NodeType private mapNt; Token private mapToken; address public nft; IPolarLuckyBox private lucky; ISwapper private swapper; modifier onlyNft() { require(msg.sender == nft, "Handler: Only Nft"); _; } // external function addNodeType(address _addr) external onlyOwners { string memory name = INodeType(_addr).name(); require(!mapNt.inserted[name], "Handler: NodeType already exists"); mapNtSet(name, _addr); } function addMultipleNodeTypes(address[] memory _addrs) external onlyOwners { for (uint i = 0; i < _addrs.length; i++) { string memory name = INodeType(_addrs[i]).name(); mapNtSet(name, _addrs[i]); } } function updateNodeTypeAddress(string memory name, address _addr) external onlyOwners { require(mapNt.inserted[name], "Handler: NodeType doesnt exist"); mapNt.values[name] = _addr; } function transferFrom(address from, address to, uint tokenId) external onlyNft { INodeType(mapNt.values[mapToken.values[tokenId]]) .transferFrom(from, to, tokenId); } function createNodesWithTokens( address tokenIn, address user, string memory name, uint count, string memory sponso ) external { uint[] memory tokenIds = _setUpNodes(name, user, count); uint price = INodeType(mapNt.values[name]) .createNodesWithTokens(user, tokenIds); swapper.swapCreateNodesWithTokens(tokenIn, msg.sender, price, sponso); emit NewNode(user, name, count); } function createNodesLevelUp( address tokenOut, string[] memory nameFrom, uint[][] memory tokenIdsToBurn, string memory nameTo, uint count ) external { require(nameFrom.length == tokenIdsToBurn.length, "Handler: Length mismatch"); uint[] memory tokenIds = _setUpNodes(nameTo, msg.sender, count); claimRewardsBatch(tokenOut, msg.sender, nameFrom, tokenIdsToBurn); uint price = INodeType(mapNt.values[nameTo]) .createNodesLevelUp(msg.sender, tokenIds); for (uint i = 0; i < nameFrom.length && price > 0; i++) { require(mapNt.inserted[nameFrom[i]], "Handler: NodeType doesnt exist"); IPolarNode(nft).burnBatch(msg.sender, tokenIdsToBurn[i]); for (uint j = 0; j < tokenIdsToBurn[i].length; j++) { require(mapToken.inserted[tokenIdsToBurn[i][j]], "Handler: TokenId doesnt exist"); mapTokenRemove(tokenIdsToBurn[i][j]); } address nt = mapNt.values[nameFrom[i]]; uint burnedPrice = INodeType(nt).burnFrom(msg.sender, tokenIdsToBurn[i]); price = price > burnedPrice ? price - burnedPrice : 0; } require(price == 0, "Handler: Nice try buddy"); emit NewNode(msg.sender, nameTo, count); } function createNodesWithPending( address tokenOut, string[] memory nameFrom, uint[][] memory tokenIdsToClaim, string memory nameTo, uint count ) external { require(nameFrom.length == tokenIdsToClaim.length, "Handler: Length mismatch"); uint[] memory tokenIds = _setUpNodes(nameTo, msg.sender, count); uint rewardsTotal; uint feesTotal; uint price = INodeType(mapNt.values[nameTo]) .createNodesWithPendings(msg.sender, tokenIds); for (uint i = 0; i < nameFrom.length; i++) { require(mapNt.inserted[nameFrom[i]], "Handler: NodeType doesnt exist"); (uint rewards, uint fees) = INodeType(mapNt.values[nameFrom[i]]) .claimRewardsBatch(msg.sender, tokenIdsToClaim[i]); rewardsTotal += rewards; feesTotal += fees; } require(price <= rewardsTotal, "Handler: Not enough pending"); swapper.swapCreateNodesWithPending( tokenOut, msg.sender, rewardsTotal - price, feesTotal); emit NewNode(msg.sender, nameTo, count); } function createNodesWithLuckyBoxes(uint[] memory tokenIdsLuckyBoxes) external { string[] memory nodeTypes; string[] memory features; (nodeTypes, features) = lucky .createNodesWithLuckyBoxes(msg.sender, tokenIdsLuckyBoxes); for (uint i = 0; i < nodeTypes.length; i++) { uint[] memory tokenIds = _setUpNodes(nodeTypes[i], msg.sender, 1); INodeType(mapNt.values[nodeTypes[i]]) .createNodeWithLuckyBox( msg.sender, tokenIds, features[i] ); emit NewNode(msg.sender, nodeTypes[i], 1); } } function createNodesMigration( address user, string[] memory nameFrom, uint[] memory count ) external { require(user == msg.sender || isOwner[msg.sender], "Handler: Sender not authorized"); require(nameFrom.length == count.length, "Handler: Length mismatch"); for (uint i = 0; i < nameFrom.length; i++) { uint[] memory tokenIds = _setUpNodes(nameFrom[i], user, count[i]); INodeType(mapNt.values[nameFrom[i]]) .createNodesMigration(user, tokenIds); emit NewNode(user, nameFrom[i], count[i]); } } function createNodesAirDrop( string memory name, address user, uint isBoostedAirDropRate, bool[] memory areBoostedNft, bool isBoostedToken, string memory feature, uint count ) external onlyOwners { require(areBoostedNft.length == 1, "Handler: Create one by one"); require(count > 0, "Handler: Count must be greater than 0"); for (uint i = 0; i < count; i++) { uint[] memory tokenIds = _setUpNodes(name, user, 1); INodeType(mapNt.values[name]) .createNodeCustom( user, isBoostedAirDropRate, tokenIds, areBoostedNft, isBoostedToken, feature ); } emit NewNode(user, name, count); } function createLuckyBoxesWithTokens( address tokenIn, address user, string memory name, uint count, string memory sponso ) external { uint price = lucky .createLuckyBoxesWithTokens(name, count, user); swapper.swapCreateLuckyBoxesWithTokens(tokenIn, msg.sender, price, sponso); } function createLuckyBoxesAirDrop( string memory name, address user, uint count ) external onlyOwners { lucky.createLuckyBoxesAirDrop(name, count, user); } function nodeEvolution( string memory name, address user, uint[] memory tokenIds, uint isBoostedAirDropRate, bool[] memory areBoostedNft, bool isBoostedToken, string memory feature ) external onlyOwners { require(tokenIds.length == 1, "Handler: Evolve one by one"); require(tokenIds.length == areBoostedNft.length, "Handler: Length mismatch"); require(mapNt.inserted[name], "Handler: NodeType doesnt exist"); require(mapToken.inserted[tokenIds[0]], "Handler: Token doesnt exist"); INodeType(mapNt.values[mapToken.values[tokenIds[0]]]) .burnFrom(user, tokenIds); mapTokenSet(tokenIds[0], name); INodeType(mapNt.values[name]) .createNodeCustom( user, isBoostedAirDropRate, tokenIds, areBoostedNft, isBoostedToken, feature ); IPolarNode(nft).setTokenIdToType(tokenIds[0], name); } function claimRewardsAll(address tokenOut, address user) external { require(user == msg.sender || isOwner[msg.sender], "Handler: Dont mess with other claims"); uint rewardsTotal; uint feesTotal; for (uint i = 0; i < mapNt.keys.length; i++) { (uint rewards, uint fees) = INodeType(mapNt.values[mapNt.keys[i]]) .claimRewardsAll(user); rewardsTotal += rewards; feesTotal += fees; } swapper.swapClaimRewardsAll(tokenOut, user, rewardsTotal, feesTotal); } function claimRewardsBatch( address tokenOut, address user, string[] memory names, uint[][] memory tokenIds ) public { require(user == msg.sender || isOwner[msg.sender], "Handler: Dont mess with other claims"); uint rewardsTotal; uint feesTotal; require(names.length == tokenIds.length, "Handler: Length mismatch"); for (uint i = 0; i < names.length; i++) { require(mapNt.inserted[names[i]], "Handler: NodeType doesnt exist"); (uint rewards, uint fees) = INodeType(mapNt.values[names[i]]) .claimRewardsBatch(user, tokenIds[i]); rewardsTotal += rewards; feesTotal += fees; } swapper.swapClaimRewardsBatch(tokenOut, user, rewardsTotal, feesTotal); } function claimRewardsNodeType( address tokenOut, address user, string memory name ) public { require(user == msg.sender || isOwner[msg.sender], "Handler: Dont mess with other claims"); require(mapNt.inserted[name], "Handler: NodeType doesnt exist"); (uint rewardsTotal, uint feesTotal) = INodeType(mapNt.values[name]) .claimRewardsAll(user); swapper.swapClaimRewardsNodeType(tokenOut, user, rewardsTotal, feesTotal); } // external setters // handler setters function setNft(address _new) external onlyOwners { require(_new != address(0), "Handler: Nft cannot be address zero"); nft = _new; } function setLucky(address _new) external onlyOwners { require(_new != address(0), "Handler: Loot cannot be address zero"); lucky = IPolarLuckyBox(_new); } function setSwapper(address _new) external onlyOwners { require(_new != address(0), "Handler: Swapper cannot be address zero"); swapper = ISwapper(_new); } // external view function getNodeTypesSize() external view returns(uint) { return mapNt.keys.length; } function getTotalCreatedNodes() external view returns(uint) { uint totalNodes; for (uint i = 0; i < mapNt.keys.length; i++) { totalNodes += INodeType(mapNt.values[mapNt.keys[i]]) .totalCreatedNodes(); } return totalNodes; } function getNodeTypesBetweenIndexes( uint iStart, uint iEnd ) external view returns(string[] memory) { string[] memory nodeTypes = new string[](iEnd - iStart); for (uint i = iStart; i < iEnd; i++) nodeTypes[i - iStart] = mapNt.keys[i]; return nodeTypes; } function getNodeTypesAddress(string memory key) external view returns(address) { require(mapNt.inserted[key], "NodeType doesnt exist"); return mapNt.values[key]; } function getAttribute(uint tokenId) external view returns(string memory) { return INodeType(mapNt.values[mapToken.values[tokenId]]) .getAttribute(tokenId); } function getTokenIdsSize() external view returns(uint) { return mapToken.keys.length; } function getTokenIdsBetweenIndexes( uint iStart, uint iEnd ) external view returns(uint[] memory) { uint[] memory ids = new uint[](iEnd - iStart); for (uint i = iStart; i < iEnd; i++) ids[i - iStart] = mapToken.keys[i]; return ids; } function getTokenIdsNodeTypeBetweenIndexes( uint iStart, uint iEnd ) external view returns(string[] memory) { string[] memory names = new string[](iEnd - iStart); for (uint i = iStart; i < iEnd; i++) names[i - iStart] = mapToken.values[mapToken.keys[i]]; return names; } function getTokenIdNodeTypeName(uint key) external view returns(string memory) { require(mapToken.inserted[key], "TokenId doesnt exist"); return mapToken.values[key]; } function getTotalNodesOf(address user) external view returns(uint) { uint totalNodes; for (uint i = 0; i < mapNt.keys.length; i++) { totalNodes += INodeType(mapNt.values[mapNt.keys[i]]) .getTotalNodesNumberOf(user); } return totalNodes; } function getClaimableRewardsOf(address user) external view returns(uint, uint) { uint rewardsTotal; uint feesTotal; for (uint i = 0; i < mapNt.keys.length; i++) { (uint rewards, uint fees) = INodeType(mapNt.values[mapNt.keys[i]]) .calculateUserRewards(user); rewardsTotal += rewards; feesTotal += fees; } return (rewardsTotal, feesTotal); } // internal function _setUpNodes( string memory name, address user, uint count ) private returns( uint[] memory ) { require(mapNt.inserted[name], "Handler: NodeType doesnt exist"); uint[] memory tokenIds = IPolarNode(nft).generateNfts(name, user, count); for (uint i = 0; i < tokenIds.length; i++) mapTokenSet(tokenIds[i], name); return tokenIds; } function strcmp(string memory s1, string memory s2) internal pure returns(bool) { return (keccak256(abi.encodePacked((s1))) == keccak256(abi.encodePacked((s2)))); } // private // maps function mapNtSet( string memory key, address value ) private { if (mapNt.inserted[key]) { mapNt.values[key] = value; } else { mapNt.inserted[key] = true; mapNt.values[key] = value; mapNt.indexOf[key] = mapNt.keys.length; mapNt.keys.push(key); } } function mapTokenSet( uint key, string memory value ) private { if (mapToken.inserted[key]) { mapToken.values[key] = value; } else { mapToken.inserted[key] = true; mapToken.values[key] = value; mapToken.indexOf[key] = mapToken.keys.length; mapToken.keys.push(key); } } function mapNtRemove(string memory key) private { if (!mapNt.inserted[key]) { return; } delete mapNt.inserted[key]; delete mapNt.values[key]; uint256 index = mapNt.indexOf[key]; uint256 lastIndex = mapNt.keys.length - 1; string memory lastKey = mapNt.keys[lastIndex]; mapNt.indexOf[lastKey] = index; delete mapNt.indexOf[key]; if (lastIndex != index) mapNt.keys[index] = lastKey; mapNt.keys.pop(); } function mapTokenRemove(uint key) private { if (!mapToken.inserted[key]) { return; } delete mapToken.inserted[key]; delete mapToken.values[key]; uint256 index = mapToken.indexOf[key]; uint256 lastIndex = mapToken.keys.length - 1; uint lastKey = mapToken.keys[lastIndex]; mapToken.indexOf[lastKey] = index; delete mapToken.indexOf[key]; if (lastIndex != index) mapToken.keys[index] = lastKey; mapToken.keys.pop(); } }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity ^0.8.0; interface INodeType { function transferFrom(address from, address to, uint tokenId) external; function burnFrom(address from, uint[] memory tokenIds) external returns(uint); function createNodesWithTokens( address user, uint[] memory tokenIds ) external returns(uint); function createNodesLevelUp( address user, uint[] memory tokenIds ) external returns(uint); function createNodesWithPendings( address user, uint[] memory tokenIds ) external returns(uint); function createNodeWithLuckyBox( address user, uint[] memory tokenIds, string memory feature ) external; function createNodesMigration( address user, uint[] memory tokenIds ) external; function createNodeCustom( address user, uint isBoostedAirDropRate, uint[] memory tokenIds, bool[] memory areBoostedNft, bool isBoostedToken, string memory feature ) external; function getTotalNodesNumberOf(address user) external view returns(uint); function getAttribute(uint tokenId) external view returns(string memory); function claimRewardsAll(address user) external returns(uint, uint); function claimRewardsBatch(address user, uint[] memory tokenIds) external returns(uint, uint); function calculateUserRewards(address user) external view returns(uint, uint); function name() external view returns(string memory); function totalCreatedNodes() external view returns(uint); }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity ^0.8.0; interface IPolarNode { function generateNfts( string memory name, address user, uint count ) external returns(uint[] memory); function burnBatch(address user, uint[] memory tokenIds) external; function setTokenIdToType(uint tokenId, string memory nodeType) external; }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity ^0.8.0; interface IPolarLuckyBox { function createLuckyBoxesWithTokens( string memory name, uint count, address user ) external returns(uint); function createLuckyBoxesAirDrop( string memory name, uint count, address user ) external; function createNodesWithLuckyBoxes( address user, uint[] memory tokenIds ) external returns( string[] memory, string[] memory ); }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity ^0.8.0; interface ISwapper { function swapCreateNodesWithTokens( address tokenIn, address user, uint price, string memory sponso ) external; function swapCreateNodesWithPending( address tokenOut, address user, uint rewardsTotal, uint feesTotal ) external; function swapCreateLuckyBoxesWithTokens( address tokenIn, address user, uint price, string memory sponso ) external; function swapClaimRewardsAll( address tokenOut, address user, uint rewardsTotal, uint feesTotal ) external; function swapClaimRewardsBatch( address tokenOut, address user, uint rewardsTotal, uint feesTotal ) external; function swapClaimRewardsNodeType( address tokenOut, address user, uint rewardsTotal, uint feesTotal ) external; }
// SPDX-License-Identifier: AGPL-3.0-or-later pragma solidity ^0.8.0; contract Owners { address[] public owners; mapping(address => bool) public isOwner; constructor() { owners.push(msg.sender); isOwner[msg.sender] = true; } modifier onlySuperOwner() { require(owners[0] == msg.sender, "Owners: Only Super Owner"); _; } modifier onlyOwners() { require(isOwner[msg.sender], "Owners: Only Owner"); _; } function addOwner(address _new, bool _change) external onlySuperOwner { require(!isOwner[_new], "Owners: Already owner"); isOwner[_new] = true; if (_change) { owners.push(owners[0]); owners[0] = _new; } else { owners.push(_new); } } function removeOwner(address _new) external onlySuperOwner { require(isOwner[_new], "Owners: Not owner"); require(_new != owners[0], "Owners: Cannot remove super owner"); for (uint i = 1; i < owners.length; i++) { if (owners[i] == _new) { owners[i] = owners[owners.length - 1]; owners.pop(); break; } } isOwner[_new] = false; } function getOwnersSize() external view returns(uint) { return owners.length; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"count","type":"uint256"}],"name":"NewNode","type":"event"},{"inputs":[{"internalType":"address[]","name":"_addrs","type":"address[]"}],"name":"addMultipleNodeTypes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"addNodeType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"},{"internalType":"bool","name":"_change","type":"bool"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"claimRewardsAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"user","type":"address"},{"internalType":"string[]","name":"names","type":"string[]"},{"internalType":"uint256[][]","name":"tokenIds","type":"uint256[][]"}],"name":"claimRewardsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"name","type":"string"}],"name":"claimRewardsNodeType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"createLuckyBoxesAirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"count","type":"uint256"},{"internalType":"string","name":"sponso","type":"string"}],"name":"createLuckyBoxesWithTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"isBoostedAirDropRate","type":"uint256"},{"internalType":"bool[]","name":"areBoostedNft","type":"bool[]"},{"internalType":"bool","name":"isBoostedToken","type":"bool"},{"internalType":"string","name":"feature","type":"string"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"createNodesAirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"string[]","name":"nameFrom","type":"string[]"},{"internalType":"uint256[][]","name":"tokenIdsToBurn","type":"uint256[][]"},{"internalType":"string","name":"nameTo","type":"string"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"createNodesLevelUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string[]","name":"nameFrom","type":"string[]"},{"internalType":"uint256[]","name":"count","type":"uint256[]"}],"name":"createNodesMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIdsLuckyBoxes","type":"uint256[]"}],"name":"createNodesWithLuckyBoxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"string[]","name":"nameFrom","type":"string[]"},{"internalType":"uint256[][]","name":"tokenIdsToClaim","type":"uint256[][]"},{"internalType":"string","name":"nameTo","type":"string"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"createNodesWithPending","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"count","type":"uint256"},{"internalType":"string","name":"sponso","type":"string"}],"name":"createNodesWithTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getAttribute","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getClaimableRewardsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"}],"name":"getNodeTypesAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"iStart","type":"uint256"},{"internalType":"uint256","name":"iEnd","type":"uint256"}],"name":"getNodeTypesBetweenIndexes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNodeTypesSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnersSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"key","type":"uint256"}],"name":"getTokenIdNodeTypeName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"iStart","type":"uint256"},{"internalType":"uint256","name":"iEnd","type":"uint256"}],"name":"getTokenIdsBetweenIndexes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"iStart","type":"uint256"},{"internalType":"uint256","name":"iEnd","type":"uint256"}],"name":"getTokenIdsNodeTypeBetweenIndexes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenIdsSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalCreatedNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTotalNodesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nft","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256","name":"isBoostedAirDropRate","type":"uint256"},{"internalType":"bool[]","name":"areBoostedNft","type":"bool[]"},{"internalType":"bool","name":"isBoostedToken","type":"bool"},{"internalType":"string","name":"feature","type":"string"}],"name":"nodeEvolution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setLucky","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setNft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setSwapper","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":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"_addr","type":"address"}],"name":"updateNodeTypeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b03191633908117909155825260208190526040909120805460ff19169091179055614a6a806100796000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80639649aace11610125578063c708c72c116100ad578063e526ce541161007c578063e526ce541461049e578063e9897f87146104b1578063eba86d29146104c4578063f3c13387146104d7578063f51dee09146104ea5761021c565b8063c708c72c1461045d578063d6a0d2ee14610470578063e15e66d014610478578063e1ca019b1461048b5761021c565b8063a650ac0d116100f4578063a650ac0d146103d6578063a6b690e0146103f6578063a880f1a914610409578063bf035e111461041c578063c299d3801461043d5761021c565b80639649aace146103955780639c82f2a4146103a8578063a0a8fe65146103bb578063a4a74c49146103c35761021c565b806347ccca02116101a857806362829b201161017757806362829b2014610341578063652469301461035457806376f4e8d514610367578063837154761461037a5780638f309880146103825761021c565b806347ccca02146102f3578063493fe80f146102fb578063518e32d31461031b57806362663f181461032e5761021c565b8063173825d9116101ef578063173825d9146102875780631fb895f81461029a57806323b872dd146102ad5780632f54bf6e146102c0578063321f8674146102e05761021c565b806301b4f6b914610221578063025e7c27146102365780630c7b1d7b1461025f5780630eedc8fd14610274575b600080fd5b61023461022f366004613ec2565b6104fd565b005b610249610244366004613f7a565b61067b565b6040516102569190614111565b60405180910390f35b6102676106a5565b6040516102569190614313565b61023461028236600461396a565b6106ab565b61023461029536600461383b565b610801565b6102346102a8366004613d6a565b610a48565b6102346102bb3660046139f5565b610afe565b6102d36102ce36600461383b565b610bb9565b6040516102569190614308565b6102346102ee36600461396a565b610bce565b610249610cc6565b61030e610309366004613f7a565b610cd5565b604051610256919061431c565b610234610329366004613b32565b610d8b565b61023461033c366004613b5b565b610f4e565b61023461034f36600461385c565b61106d565b610249610362366004613d06565b61122c565b610234610375366004613dac565b6112a1565b6102676115df565b61023461039036600461388e565b6115e5565b6102346103a3366004613acc565b611822565b6102346103b636600461383b565b611a40565b610267611ab7565b61030e6103d1366004613f7a565b611baa565b6103e96103e4366004613faa565b611c79565b60405161025691906142f5565b610234610404366004613a30565b611d5f565b61026761041736600461383b565b61220a565b61042f61042a36600461383b565b612304565b6040516102569291906148aa565b61045061044b366004613faa565b61241e565b6040516102569190614295565b61023461046b36600461383b565b61258f565b610267612684565b610450610486366004613faa565b61268a565b61023461049936600461383b565b612810565b6102346104ac366004613c51565b612887565b6102346104bf36600461390f565b612ac0565b6102346104d2366004613e7e565b612c54565b6102346104e536600461383b565b612cb7565b6102346104f8366004613a30565b612d2e565b3360009081526001602052604090205460ff166105355760405162461bcd60e51b815260040161052c9061455e565b60405180910390fd5b83516001146105565760405162461bcd60e51b815260040161052c9061440a565b600081116105765760405162461bcd60e51b815260040161052c9061477d565b60005b8181101561062c57600061058f89896001613084565b90506002600101896040516105a4919061405a565b908152604051908190036020018120546304a75fe360e21b82526001600160a01b03169063129d7f8c906105e6908b908b9086908c908c908c90600401614209565b600060405180830381600087803b15801561060057600080fd5b505af1158015610614573d6000803e3d6000fd5b50505050508080610624906149cd565b915050610579565b508660405161063b919061405a565b6040518091039020866001600160a01b0316600080516020614a158339815191528360405161066a9190614313565b60405180910390a350505050505050565b6000818154811061068b57600080fd5b6000918252602090912001546001600160a01b0316905081565b60005490565b60006106b8848685613084565b905060006002600101856040516106cf919061405a565b9081526040519081900360200181205463b018fc6f60e01b82526001600160a01b03169063b018fc6f9061070990899086906004016141af565b602060405180830381600087803b15801561072357600080fd5b505af1158015610737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075b9190613f92565b600c54604051633517b5bb60e11b81529192506001600160a01b031690636a2f6b7690610792908a90339086908990600401614149565b600060405180830381600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b50505050846040516107d2919061405a565b6040518091039020866001600160a01b0316600080516020614a158339815191528660405161066a9190614313565b336001600160a01b03166000808154811061082c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161461085e5760405162461bcd60e51b815260040161052c906143d3565b6001600160a01b03811660009081526001602052604090205460ff166108965760405162461bcd60e51b815260040161052c90614866565b600080815481106108b757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03828116911614156108ee5760405162461bcd60e51b815260040161052c906144af565b60015b600054811015610a2657816001600160a01b03166000828154811061092657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610a1457600080546109519060019061494f565b8154811061096f57634e487b7160e01b600052603260045260246000fd5b600091825260208220015481546001600160a01b039091169190839081106109a757634e487b7160e01b600052603260045260246000fd5b6000918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091558054806109ed57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610a26565b80610a1e816149cd565b9150506108f1565b506001600160a01b03166000908152600160205260409020805460ff19169055565b3360009081526001602052604090205460ff16610a775760405162461bcd60e51b815260040161052c9061455e565b604051600590610a8890849061405a565b9081526040519081900360200190205460ff16610ab75760405162461bcd60e51b815260040161052c90614746565b80600260010183604051610acb919061405a565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b600a546001600160a01b03163314610b285760405162461bcd60e51b815260040161052c9061458a565b600081815260076020526040908190209051600391610b4691614076565b908152604051908190036020018120546323b872dd60e01b82526001600160a01b0316906323b872dd90610b8290869086908690600401614125565b600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b50505050505050565b60016020526000908152604090205460ff1681565b600b54604051636454a0fd60e01b81526000916001600160a01b031690636454a0fd90610c0390879087908a9060040161435d565b602060405180830381600087803b158015610c1d57600080fd5b505af1158015610c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c559190613f92565b600c5460405163a77f789b60e01b81529192506001600160a01b03169063a77f789b90610c8c908990339086908890600401614149565b600060405180830381600087803b158015610ca657600080fd5b505af1158015610cba573d6000803e3d6000fd5b50505050505050505050565b600a546001600160a01b031681565b600081815260076020526040908190209051606091600391610cf79190614076565b9081526040519081900360200181205463493fe80f60e01b82526001600160a01b03169063493fe80f90610d2f908590600401614313565b60006040518083038186803b158015610d4757600080fd5b505afa158015610d5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d839190810190613d38565b90505b919050565b336001600160a01b031660008081548110610db657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614610de85760405162461bcd60e51b815260040161052c906143d3565b6001600160a01b03821660009081526001602052604090205460ff1615610e215760405162461bcd60e51b815260040161052c90614837565b6001600160a01b0382166000908152600160208190526040909120805460ff191690911790558015610f0157600080600081548110610e7057634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154835460018101855593835290822090920180546001600160a01b0319166001600160a01b039093169290921790915580548391908190610ece57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610f4a565b600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630180546001600160a01b0319166001600160a01b0384161790555b5050565b3360009081526001602052604090205460ff16610f7d5760405162461bcd60e51b815260040161052c9061455e565b60005b8151811015610f4a576000828281518110610fab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015610feb57600080fd5b505afa158015610fff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110279190810190613d38565b905061105a8184848151811061104d57634e487b7160e01b600052603260045260246000fd5b60200260200101516131ad565b5080611065816149cd565b915050610f80565b6001600160a01b03811633148061109357503360009081526001602052604090205460ff165b6110af5760405162461bcd60e51b815260040161052c90614621565b60008060005b6002548110156111bd576000806002600101600260000184815481106110eb57634e487b7160e01b600052603260045260246000fd5b906000526020600020016040516111029190614076565b908152604051908190036020018120546318c880ef60e21b82526001600160a01b03169063632203bc9061113a908990600401614111565b6040805180830381600087803b15801561115357600080fd5b505af1158015611167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118b9190613fcb565b909250905061119a8286614937565b94506111a68185614937565b9350505080806111b5906149cd565b9150506110b5565b50600c5460405163658793a360e01b81526001600160a01b039091169063658793a3906111f4908790879087908790600401614186565b600060405180830381600087803b15801561120e57600080fd5b505af1158015611222573d6000803e3d6000fd5b5050505050505050565b6000600260030182604051611241919061405a565b9081526040519081900360200190205460ff166112705760405162461bcd60e51b815260040161052c9061469c565b60405160039061128190849061405a565b908152604051908190036020019020546001600160a01b03169050919050565b3360009081526001602052604090205460ff166112d05760405162461bcd60e51b815260040161052c9061455e565b84516001146112f15760405162461bcd60e51b815260040161052c90614441565b82518551146113125760405162461bcd60e51b815260040161052c906145ea565b60405160059061132390899061405a565b9081526040519081900360200190205460ff166113525760405162461bcd60e51b815260040161052c90614746565b600660030160008660008151811061137a57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182528101919091526040016000205460ff166113b45760405162461bcd60e51b815260040161052c90614665565b600260010160066001016000876000815181106113e157634e487b7160e01b600052603260045260246000fd5b602002602001015181526020019081526020016000206040516114049190614076565b908152604051908190036020018120546389af610760e01b82526001600160a01b0316906389af61079061143e90899089906004016141af565b602060405180830381600087803b15801561145857600080fd5b505af115801561146c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114909190613f92565b506114c3856000815181106114b557634e487b7160e01b600052603260045260246000fd5b602002602001015188613302565b6040516003906114d490899061405a565b908152604051908190036020018120546304a75fe360e21b82526001600160a01b03169063129d7f8c9061151690899088908a90899089908990600401614209565b600060405180830381600087803b15801561153057600080fd5b505af1158015611544573d6000803e3d6000fd5b5050600a5487516001600160a01b03909116925063864b7e959150879060009061157e57634e487b7160e01b600052603260045260246000fd5b6020026020010151896040518363ffffffff1660e01b81526004016115a4929190614891565b600060405180830381600087803b1580156115be57600080fd5b505af11580156115d2573d6000803e3d6000fd5b5050505050505050505050565b60065490565b6001600160a01b03831633148061160b57503360009081526001602052604090205460ff165b6116275760405162461bcd60e51b815260040161052c90614621565b600080825184511461164b5760405162461bcd60e51b815260040161052c906145ea565b60005b84518110156117eb57600260030185828151811061167c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611691919061405a565b9081526040519081900360200190205460ff166116c05760405162461bcd60e51b815260040161052c90614746565b60008060026001018784815181106116e857634e487b7160e01b600052603260045260246000fd5b60200260200101516040516116fd919061405a565b9081526040519081900360200190205486516001600160a01b039091169063daf73bbd908a9089908790811061174357634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b81526004016117689291906141af565b6040805180830381600087803b15801561178157600080fd5b505af1158015611795573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b99190613fcb565b90925090506117c88286614937565b94506117d48185614937565b9350505080806117e3906149cd565b91505061164e565b50600c546040516336ed57cd60e01b81526001600160a01b03909116906336ed57cd90610c8c908990899087908790600401614186565b6001600160a01b03831633148061184857503360009081526001602052604090205460ff165b6118645760405162461bcd60e51b815260040161052c90614478565b80518251146118855760405162461bcd60e51b815260040161052c906145ea565b60005b8251811015611a3a5760006118ec8483815181106118b657634e487b7160e01b600052603260045260246000fd5b6020026020010151868585815181106118df57634e487b7160e01b600052603260045260246000fd5b6020026020010151613084565b9050600260010184838151811061191357634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611928919061405a565b908152604051908190036020018120546306caef4d60e51b82526001600160a01b03169063d95de9a09061196290889085906004016141af565b600060405180830381600087803b15801561197c57600080fd5b505af1158015611990573d6000803e3d6000fd5b505050508382815181106119b457634e487b7160e01b600052603260045260246000fd5b60200260200101516040516119c9919061405a565b6040518091039020856001600160a01b0316600080516020614a15833981519152858581518110611a0a57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611a1f9190614313565b60405180910390a35080611a32816149cd565b915050611888565b50505050565b3360009081526001602052604090205460ff16611a6f5760405162461bcd60e51b815260040161052c9061455e565b6001600160a01b038116611a955760405162461bcd60e51b815260040161052c906147f0565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60008060005b600254811015611ba457600280546003919083908110611aed57634e487b7160e01b600052603260045260246000fd5b90600052602060002001604051611b049190614076565b90815260408051602092819003830181205463b88d345360e01b825291516001600160a01b039092169263b88d345392600480840193829003018186803b158015611b4e57600080fd5b505afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b869190613f92565b611b909083614937565b915080611b9c816149cd565b915050611abd565b50905090565b60008181526009602052604090205460609060ff16611bdb5760405162461bcd60e51b815260040161052c906147c2565b60008281526007602052604090208054611bf490614992565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2090614992565b8015611c6d5780601f10611c4257610100808354040283529160200191611c6d565b820191906000526020600020905b815481529060010190602001808311611c5057829003601f168201915b50505050509050919050565b60606000611c87848461494f565b6001600160401b03811115611cac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611cd5578160200160208202803683370190505b509050835b83811015611d57576006805482908110611d0457634e487b7160e01b600052603260045260246000fd5b9060005260206000200154828683611d1c919061494f565b81518110611d3a57634e487b7160e01b600052603260045260246000fd5b602090810291909101015280611d4f816149cd565b915050611cda565b509392505050565b8251845114611d805760405162461bcd60e51b815260040161052c906145ea565b6000611d8d833384613084565b9050611d9b863387876115e5565b6000600260010184604051611db0919061405a565b908152604051908190036020018120546304eb4ae360e51b82526001600160a01b031690639d695c6090611dea90339086906004016141af565b602060405180830381600087803b158015611e0457600080fd5b505af1158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c9190613f92565b905060005b865181108015611e515750600082115b156121ae576002600301878281518110611e7b57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611e90919061405a565b9081526040519081900360200190205460ff16611ebf5760405162461bcd60e51b815260040161052c90614746565b600a5486516001600160a01b039091169063b2dc5dc3903390899085908110611ef857634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401611f1d9291906141af565b600060405180830381600087803b158015611f3757600080fd5b505af1158015611f4b573d6000803e3d6000fd5b5050505060005b868281518110611f7257634e487b7160e01b600052603260045260246000fd5b6020026020010151518110156120735760066003016000888481518110611fa957634e487b7160e01b600052603260045260246000fd5b60200260200101518381518110611fd057634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182528101919091526040016000205460ff1661200a5760405162461bcd60e51b815260040161052c906144f0565b61206187838151811061202d57634e487b7160e01b600052603260045260246000fd5b6020026020010151828151811061205457634e487b7160e01b600052603260045260246000fd5b60200260200101516133b5565b8061206b816149cd565b915050611f52565b506000600260010188838151811061209b57634e487b7160e01b600052603260045260246000fd5b60200260200101516040516120b0919061405a565b908152602001604051809103902060009054906101000a90046001600160a01b031690506000816001600160a01b03166389af6107338a868151811061210657634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b815260040161212b9291906141af565b602060405180830381600087803b15801561214557600080fd5b505af1158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d9190613f92565b905080841161218d576000612197565b612197818561494f565b9350505080806121a6906149cd565b915050611e41565b5080156121cd5760405162461bcd60e51b815260040161052c90614527565b836040516121db919061405a565b6040518091039020336001600160a01b0316600080516020614a158339815191528560405161066a9190614313565b60008060005b6002548110156122fd5760028054600391908390811061224057634e487b7160e01b600052603260045260246000fd5b906000526020600020016040516122579190614076565b908152604051908190036020018120546343a9ac3960e01b82526001600160a01b0316906343a9ac399061228f908790600401614111565b60206040518083038186803b1580156122a757600080fd5b505afa1580156122bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122df9190613f92565b6122e99083614937565b9150806122f5816149cd565b915050612210565b5092915050565b60008060008060005b6002548110156124135760008060026001016002600001848154811061234357634e487b7160e01b600052603260045260246000fd5b9060005260206000200160405161235a9190614076565b908152604051908190036020018120546303eba50760e01b82526001600160a01b0316906303eba50790612392908b90600401614111565b604080518083038186803b1580156123a957600080fd5b505afa1580156123bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e19190613fcb565b90925090506123f08286614937565b94506123fc8185614937565b93505050808061240b906149cd565b91505061230d565b509092509050915091565b6060600061242c848461494f565b6001600160401b0381111561245157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561248457816020015b606081526020019060019003908161246f5790505b509050835b83811015611d575760028054829081106124b357634e487b7160e01b600052603260045260246000fd5b9060005260206000200180546124c890614992565b80601f01602080910402602001604051908101604052809291908181526020018280546124f490614992565b80156125415780601f1061251657610100808354040283529160200191612541565b820191906000526020600020905b81548152906001019060200180831161252457829003601f168201915b5050505050828683612553919061494f565b8151811061257157634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080612587906149cd565b915050612489565b3360009081526001602052604090205460ff166125be5760405162461bcd60e51b815260040161052c9061455e565b6000816001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156125f957600080fd5b505afa15801561260d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126359190810190613d38565b905060026003018160405161264a919061405a565b9081526040519081900360200190205460ff161561267a5760405162461bcd60e51b815260040161052c906145b5565b610f4a81836131ad565b60025490565b60606000612698848461494f565b6001600160401b038111156126bd57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156126f057816020015b60608152602001906001900390816126db5790505b509050835b83811015611d5757600680546007916000918490811061272557634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020805461274990614992565b80601f016020809104026020016040519081016040528092919081815260200182805461277590614992565b80156127c25780601f10612797576101008083540402835291602001916127c2565b820191906000526020600020905b8154815290600101906020018083116127a557829003601f168201915b50505050508286836127d4919061494f565b815181106127f257634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080612808906149cd565b9150506126f5565b3360009081526001602052604090205460ff1661283f5760405162461bcd60e51b815260040161052c9061455e565b6001600160a01b0381166128655760405162461bcd60e51b815260040161052c90614702565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b5460405163a933c20f60e01b815260609182916001600160a01b039091169063a933c20f906128be90339087906004016141af565b600060405180830381600087803b1580156128d857600080fd5b505af11580156128ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129149190810190613bf1565b909250905060005b8251811015611a3a57600061295a84838151811061294a57634e487b7160e01b600052603260045260246000fd5b6020026020010151336001613084565b9050600260010184838151811061298157634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612996919061405a565b908152602001604051809103902060009054906101000a90046001600160a01b03166001600160a01b031663fd38450433838686815181106129e857634e487b7160e01b600052603260045260246000fd5b60200260200101516040518463ffffffff1660e01b8152600401612a0e939291906141d3565b600060405180830381600087803b158015612a2857600080fd5b505af1158015612a3c573d6000803e3d6000fd5b50505050838281518110612a6057634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612a75919061405a565b6040518091039020336001600160a01b0316600080516020614a158339815191526001604051612aa59190614313565b60405180910390a35080612ab8816149cd565b91505061291c565b6001600160a01b038216331480612ae657503360009081526001602052604090205460ff165b612b025760405162461bcd60e51b815260040161052c90614621565b604051600590612b1390839061405a565b9081526040519081900360200190205460ff16612b425760405162461bcd60e51b815260040161052c90614746565b600080600260010183604051612b58919061405a565b908152604051908190036020018120546318c880ef60e21b82526001600160a01b03169063632203bc90612b90908790600401614111565b6040805180830381600087803b158015612ba957600080fd5b505af1158015612bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be19190613fcb565b600c5460405163fbe12f1d60e01b81529294509092506001600160a01b03169063fbe12f1d90612c1b908890889087908790600401614186565b600060405180830381600087803b158015612c3557600080fd5b505af1158015612c49573d6000803e3d6000fd5b505050505050505050565b3360009081526001602052604090205460ff16612c835760405162461bcd60e51b815260040161052c9061455e565b600b546040516343836c7f60e11b81526001600160a01b0390911690638706d8fe90610b829086908590879060040161435d565b3360009081526001602052604090205460ff16612ce65760405162461bcd60e51b815260040161052c9061455e565b6001600160a01b038116612d0c5760405162461bcd60e51b815260040161052c90614390565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b8251845114612d4f5760405162461bcd60e51b815260040161052c906145ea565b6000612d5c833384613084565b90506000806000600260010186604051612d76919061405a565b908152604051908190036020018120546319309eb560e21b82526001600160a01b0316906364c27ad490612db090339088906004016141af565b602060405180830381600087803b158015612dca57600080fd5b505af1158015612dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e029190613f92565b905060005b8851811015612fa4576002600301898281518110612e3557634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612e4a919061405a565b9081526040519081900360200190205460ff16612e795760405162461bcd60e51b815260040161052c90614746565b60008060026001018b8481518110612ea157634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612eb6919061405a565b908152604051908190036020019020548a516001600160a01b039091169063daf73bbd9033908d9087908110612efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401612f219291906141af565b6040805180830381600087803b158015612f3a57600080fd5b505af1158015612f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f729190613fcb565b9092509050612f818287614937565b9550612f8d8186614937565b945050508080612f9c906149cd565b915050612e07565b5082811115612fc55760405162461bcd60e51b815260040161052c906146cb565b600c546001600160a01b031663c7ae05318a33612fe2858861494f565b866040518563ffffffff1660e01b81526004016130029493929190614186565b600060405180830381600087803b15801561301c57600080fd5b505af1158015613030573d6000803e3d6000fd5b5050505085604051613042919061405a565b6040518091039020336001600160a01b0316600080516020614a15833981519152876040516130719190614313565b60405180910390a3505050505050505050565b6060600260030184604051613099919061405a565b9081526040519081900360200190205460ff166130c85760405162461bcd60e51b815260040161052c90614746565b600a54604051635181db2b60e01b81526000916001600160a01b031690635181db2b906130fd9088908890889060040161432f565b600060405180830381600087803b15801561311757600080fd5b505af115801561312b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131539190810190613c83565b905060005b81518110156131a45761319282828151811061318457634e487b7160e01b600052603260045260246000fd5b602002602001015187613302565b8061319c816149cd565b915050613158565b50949350505050565b6040516005906131be90849061405a565b9081526040519081900360200190205460ff161561321e57806002600101836040516131ea919061405a565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055610f4a565b6001600260030183604051613233919061405a565b908152604051908190036020018120805492151560ff1990931692909217909155819060039061326490859061405a565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b031990931692909217909155600254906004906132a690859061405a565b90815260405160209181900382019020919091556002805460018101825560009190915283516132fd927f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909201918501906134e0565b505050565b60008281526009602052604090205460ff161561333e5760008281526007602090815260409091208251613338928401906134e0565b50610f4a565b6000828152600960209081526040808320805460ff1916600117905560078252909120825161336f928401906134e0565b5050600680546000838152600860205260408120829055600182018355919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0155565b60008181526009602052604090205460ff166133d0576134dd565b6000818152600960209081526040808320805460ff19169055600790915281206133f991613564565b60008181526008602052604081205460065490919061341a9060019061494f565b905060006006600001828154811061344257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101548083526008909152604080832086905586835282209190915590508183146134a457806006600001848154811061349757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b60068054806134c357634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590555050505b50565b8280546134ec90614992565b90600052602060002090601f01602090048101928261350e5760008555613554565b82601f1061352757805160ff1916838001178555613554565b82800160010185558215613554579182015b82811115613554578251825591602001919060010190613539565b5061356092915061359c565b5090565b50805461357090614992565b6000825580601f1061358257506134dd565b601f0160209004906000526020600020908101906134dd91905b5b80821115613560576000815560010161359d565b80356001600160a01b0381168114610d8657600080fd5b600082601f8301126135d8578081fd5b813560206135ed6135e8836148e1565b6148b8565b82815281810190858301855b8581101561362257613610898684358b010161373a565b845292840192908401906001016135f9565b5090979650505050505050565b600082601f83011261363f578081fd5b8135602061364f6135e8836148e1565b828152818101908583018385028701840188101561366b578586fd5b855b858110156136225761367e82613794565b8452928401929084019060010161366d565b600082601f8301126136a0578081fd5b813560206136b06135e8836148e1565b82815281810190858301855b85811015613622576136d3898684358b01016137a4565b845292840192908401906001016136bc565b600082601f8301126136f5578081fd5b815160206137056135e8836148e1565b82815281810190858301855b8581101561362257613728898684518b01016137f0565b84529284019290840190600101613711565b600082601f83011261374a578081fd5b8135602061375a6135e8836148e1565b8281528181019085830183850287018401881015613776578586fd5b855b8581101561362257813584529284019290840190600101613778565b80358015158114610d8657600080fd5b600082601f8301126137b4578081fd5b81356137c26135e882614904565b8181528460208386010111156137d6578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112613800578081fd5b815161380e6135e882614904565b818152846020838601011115613822578283fd5b613833826020830160208701614966565b949350505050565b60006020828403121561384c578081fd5b613855826135b1565b9392505050565b6000806040838503121561386e578081fd5b613877836135b1565b9150613885602084016135b1565b90509250929050565b600080600080608085870312156138a3578182fd5b6138ac856135b1565b93506138ba602086016135b1565b925060408501356001600160401b03808211156138d5578384fd5b6138e188838901613690565b935060608701359150808211156138f6578283fd5b50613903878288016135c8565b91505092959194509250565b600080600060608486031215613923578081fd5b61392c846135b1565b925061393a602085016135b1565b915060408401356001600160401b03811115613954578182fd5b613960868287016137a4565b9150509250925092565b600080600080600060a08688031215613981578283fd5b61398a866135b1565b9450613998602087016135b1565b935060408601356001600160401b03808211156139b3578485fd5b6139bf89838a016137a4565b94506060880135935060808801359150808211156139db578283fd5b506139e8888289016137a4565b9150509295509295909350565b600080600060608486031215613a09578081fd5b613a12846135b1565b9250613a20602085016135b1565b9150604084013590509250925092565b600080600080600060a08688031215613a47578283fd5b613a50866135b1565b945060208601356001600160401b0380821115613a6b578485fd5b613a7789838a01613690565b95506040880135915080821115613a8c578485fd5b613a9889838a016135c8565b94506060880135915080821115613aad578283fd5b50613aba888289016137a4565b95989497509295608001359392505050565b600080600060608486031215613ae0578081fd5b613ae9846135b1565b925060208401356001600160401b0380821115613b04578283fd5b613b1087838801613690565b93506040860135915080821115613b25578283fd5b506139608682870161373a565b60008060408385031215613b44578182fd5b613b4d836135b1565b915061388560208401613794565b60006020808385031215613b6d578182fd5b82356001600160401b03811115613b82578283fd5b8301601f81018513613b92578283fd5b8035613ba06135e8826148e1565b8181528381019083850185840285018601891015613bbc578687fd5b8694505b83851015613be557613bd1816135b1565b835260019490940193918501918501613bc0565b50979650505050505050565b60008060408385031215613c03578182fd5b82516001600160401b0380821115613c19578384fd5b613c25868387016136e5565b93506020850151915080821115613c3a578283fd5b50613c47858286016136e5565b9150509250929050565b600060208284031215613c62578081fd5b81356001600160401b03811115613c77578182fd5b6138338482850161373a565b60006020808385031215613c95578182fd5b82516001600160401b03811115613caa578283fd5b8301601f81018513613cba578283fd5b8051613cc86135e8826148e1565b8181528381019083850185840285018601891015613ce4578687fd5b8694505b83851015613be5578051835260019490940193918501918501613ce8565b600060208284031215613d17578081fd5b81356001600160401b03811115613d2c578182fd5b613833848285016137a4565b600060208284031215613d49578081fd5b81516001600160401b03811115613d5e578182fd5b613833848285016137f0565b60008060408385031215613d7c578182fd5b82356001600160401b03811115613d91578283fd5b613d9d858286016137a4565b925050613885602084016135b1565b600080600080600080600060e0888a031215613dc6578485fd5b87356001600160401b0380821115613ddc578687fd5b613de88b838c016137a4565b9850613df660208b016135b1565b975060408a0135915080821115613e0b578687fd5b613e178b838c0161373a565b965060608a0135955060808a0135915080821115613e33578384fd5b613e3f8b838c0161362f565b9450613e4d60a08b01613794565b935060c08a0135915080821115613e62578283fd5b50613e6f8a828b016137a4565b91505092959891949750929550565b600080600060608486031215613e92578081fd5b83356001600160401b03811115613ea7578182fd5b613eb3868287016137a4565b935050613a20602085016135b1565b600080600080600080600060e0888a031215613edc578081fd5b87356001600160401b0380821115613ef2578283fd5b613efe8b838c016137a4565b9850613f0c60208b016135b1565b975060408a0135965060608a0135915080821115613f28578283fd5b613f348b838c0161362f565b9550613f4260808b01613794565b945060a08a0135915080821115613f57578283fd5b50613f648a828b016137a4565b92505060c0880135905092959891949750929550565b600060208284031215613f8b578081fd5b5035919050565b600060208284031215613fa3578081fd5b5051919050565b60008060408385031215613fbc578182fd5b50508035926020909101359150565b60008060408385031215613fdd578182fd5b505080516020909101519092909150565b6000815180845260208085019450808401835b8381101561401d57815187529582019590820190600101614001565b509495945050505050565b15159052565b60008151808452614046816020860160208601614966565b601f01601f19169290920160200192915050565b6000825161406c818460208701614966565b9190910192915050565b815460009081906002810460018083168061409257607f831692505b60208084108214156140b257634e487b7160e01b87526022600452602487fd5b8180156140c657600181146140d757614103565b60ff19861689528489019650614103565b6140e08a61492b565b885b868110156140fb5781548b8201529085019083016140e2565b505084890196505b509498975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061417c9083018461402e565b9695505050505050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b6001600160a01b038316815260406020820181905260009061383390830184613fee565b6001600160a01b03841681526060602082018190526000906141f790830185613fee565b828103604084015261417c818561402e565b600060018060a01b03881682526020878184015260c0604084015261423160c0840188613fee565b8381036060850152865180825282880191830190845b81811015614265578351151583529284019291840191600101614247565b50506142746080860188614028565b84810360a0860152614286818761402e565b9b9a5050505050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156142e857603f198886030184526142d685835161402e565b945092850192908501906001016142ba565b5092979650505050505050565b6000602082526138556020830184613fee565b901515815260200190565b90815260200190565b600060208252613855602083018461402e565b600060608252614342606083018661402e565b6001600160a01b039490941660208301525060400152919050565b600060608252614370606083018661402e565b6020830194909452506001600160a01b0391909116604090910152919050565b60208082526023908201527f48616e646c65723a204e66742063616e6e6f742062652061646472657373207a60408201526265726f60e81b606082015260800190565b60208082526018908201527f4f776e6572733a204f6e6c79205375706572204f776e65720000000000000000604082015260600190565b6020808252601a908201527f48616e646c65723a20437265617465206f6e65206279206f6e65000000000000604082015260600190565b6020808252601a908201527f48616e646c65723a2045766f6c7665206f6e65206279206f6e65000000000000604082015260600190565b6020808252601e908201527f48616e646c65723a2053656e646572206e6f7420617574686f72697a65640000604082015260600190565b60208082526021908201527f4f776e6572733a2043616e6e6f742072656d6f7665207375706572206f776e656040820152603960f91b606082015260800190565b6020808252601d908201527f48616e646c65723a20546f6b656e496420646f65736e74206578697374000000604082015260600190565b60208082526017908201527f48616e646c65723a204e69636520747279206275646479000000000000000000604082015260600190565b60208082526012908201527127bbb732b9399d1027b7363c9027bbb732b960711b604082015260600190565b60208082526011908201527012185b991b195c8e8813db9b1e4813999d607a1b604082015260600190565b6020808252818101527f48616e646c65723a204e6f64655479706520616c726561647920657869737473604082015260600190565b60208082526018908201527f48616e646c65723a204c656e677468206d69736d617463680000000000000000604082015260600190565b60208082526024908201527f48616e646c65723a20446f6e74206d6573732077697468206f7468657220636c60408201526361696d7360e01b606082015260800190565b6020808252601b908201527f48616e646c65723a20546f6b656e20646f65736e742065786973740000000000604082015260600190565b602080825260159082015274139bd919551e5c1948191bd95cdb9d08195e1a5cdd605a1b604082015260600190565b6020808252601b908201527f48616e646c65723a204e6f7420656e6f7567682070656e64696e670000000000604082015260600190565b60208082526024908201527f48616e646c65723a204c6f6f742063616e6e6f742062652061646472657373206040820152637a65726f60e01b606082015260800190565b6020808252601e908201527f48616e646c65723a204e6f64655479706520646f65736e742065786973740000604082015260600190565b60208082526025908201527f48616e646c65723a20436f756e74206d75737420626520677265617465722074604082015264068616e20360dc1b606082015260800190565b602080825260149082015273151bdad95b925908191bd95cdb9d08195e1a5cdd60621b604082015260600190565b60208082526027908201527f48616e646c65723a20537761707065722063616e6e6f742062652061646472656040820152667373207a65726f60c81b606082015260800190565b60208082526015908201527427bbb732b9399d1020b63932b0b23c9037bbb732b960591b604082015260600190565b60208082526011908201527027bbb732b9399d102737ba1037bbb732b960791b604082015260600190565b600083825260406020830152613833604083018461402e565b918252602082015260400190565b6040518181016001600160401b03811182821017156148d9576148d96149fe565b604052919050565b60006001600160401b038211156148fa576148fa6149fe565b5060209081020190565b60006001600160401b0382111561491d5761491d6149fe565b50601f01601f191660200190565b60009081526020902090565b6000821982111561494a5761494a6149e8565b500190565b600082821015614961576149616149e8565b500390565b60005b83811015614981578181015183820152602001614969565b83811115611a3a5750506000910152565b6002810460018216806149a657607f821691505b602082108114156149c757634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156149e1576149e16149e8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe3c8006180c21a8a3a5910855aaa92c2043f55f5a5cc6d89097bfafdfc5fe18eca2646970667358221220296ff4454b66ffcb34247735b1125faadf0c14ea3a8a9947010fae8fa97d77d264736f6c63430008000033
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.