Overview
AVAX Balance
AVAX Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,863 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create Nodes Mig... | 14220829 | 1086 days ago | IN | 0 AVAX | 0.00665776 | ||||
Create Nodes Mig... | 13312792 | 1107 days ago | IN | 0 AVAX | 0.00124852 | ||||
Create Nodes Mig... | 13312792 | 1107 days ago | IN | 0 AVAX | 0.00124852 | ||||
Create Nodes Mig... | 13269245 | 1108 days ago | IN | 0 AVAX | 0.00234185 | ||||
Create Nodes Mig... | 13269216 | 1108 days ago | IN | 0 AVAX | 0.00237066 | ||||
Create Nodes Mig... | 13269213 | 1108 days ago | IN | 0 AVAX | 0.00236401 | ||||
Create Nodes Mig... | 13267315 | 1108 days ago | IN | 0 AVAX | 0.00214248 | ||||
Create Nodes Mig... | 13258077 | 1108 days ago | IN | 0 AVAX | 0.00419059 | ||||
Create Nodes Mig... | 13258072 | 1108 days ago | IN | 0 AVAX | 0.00419641 | ||||
Create Nodes Mig... | 13254218 | 1108 days ago | IN | 0 AVAX | 0.00397285 | ||||
Create Nodes Mig... | 13252161 | 1108 days ago | IN | 0 AVAX | 0.0037967 | ||||
Create Nodes Mig... | 13252114 | 1108 days ago | IN | 0 AVAX | 0.00396058 | ||||
Claim Rewards Ba... | 13251909 | 1108 days ago | IN | 0 AVAX | 0.00321607 | ||||
Create Nodes Mig... | 13251655 | 1108 days ago | IN | 0 AVAX | 0.00420006 | ||||
Create Nodes Mig... | 13251642 | 1108 days ago | IN | 0 AVAX | 0.00408838 | ||||
Create Nodes Mig... | 13251642 | 1108 days ago | IN | 0 AVAX | 0.00408838 | ||||
Claim Rewards Ba... | 13251385 | 1108 days ago | IN | 0 AVAX | 0.01282068 | ||||
Create Nodes Mig... | 13251333 | 1108 days ago | IN | 0 AVAX | 0.00470098 | ||||
Create Nodes Mig... | 13251319 | 1108 days ago | IN | 0 AVAX | 0.00495643 | ||||
Create Nodes Mig... | 13251315 | 1108 days ago | IN | 0 AVAX | 0.00498369 | ||||
Create Nodes Mig... | 13251315 | 1108 days ago | IN | 0 AVAX | 0.00499837 | ||||
Create Nodes Mig... | 13251280 | 1108 days ago | IN | 0 AVAX | 0.00512294 | ||||
Create Nodes Wit... | 13251212 | 1108 days ago | IN | 0 AVAX | 0.00419081 | ||||
Create Nodes Mig... | 13251151 | 1108 days ago | IN | 0 AVAX | 0.0052311 | ||||
Create Nodes Mig... | 13251148 | 1108 days ago | IN | 0 AVAX | 0.00528933 |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xd40fFBf8...c0BCF2806 The constructor portion of the code might be different and could alter the actual behaviour of the contract
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": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061021c5760003560e01c80639649aace11610125578063c708c72c116100ad578063e526ce541161007c578063e526ce541461049e578063e9897f87146104b1578063eba86d29146104c4578063f3c13387146104d7578063f51dee09146104ea5761021c565b8063c708c72c1461045d578063d6a0d2ee14610470578063e15e66d014610478578063e1ca019b1461048b5761021c565b8063a650ac0d116100f4578063a650ac0d146103d6578063a6b690e0146103f6578063a880f1a914610409578063bf035e111461041c578063c299d3801461043d5761021c565b80639649aace146103955780639c82f2a4146103a8578063a0a8fe65146103bb578063a4a74c49146103c35761021c565b806347ccca02116101a857806362829b201161017757806362829b2014610341578063652469301461035457806376f4e8d514610367578063837154761461037a5780638f309880146103825761021c565b806347ccca02146102f3578063493fe80f146102fb578063518e32d31461031b57806362663f181461032e5761021c565b8063173825d9116101ef578063173825d9146102875780631fb895f81461029a57806323b872dd146102ad5780632f54bf6e146102c0578063321f8674146102e05761021c565b806301b4f6b914610221578063025e7c27146102365780630c7b1d7b1461025f5780630eedc8fd14610274575b600080fd5b61023461022f366004613ec2565b6104fd565b005b610249610244366004613f7a565b61067b565b6040516102569190614111565b60405180910390f35b6102676106a5565b6040516102569190614313565b61023461028236600461396a565b6106ab565b61023461029536600461383b565b610801565b6102346102a8366004613d6a565b610a48565b6102346102bb3660046139f5565b610afe565b6102d36102ce36600461383b565b610bb9565b6040516102569190614308565b6102346102ee36600461396a565b610bce565b610249610cc6565b61030e610309366004613f7a565b610cd5565b604051610256919061431c565b610234610329366004613b32565b610d8b565b61023461033c366004613b5b565b610f4e565b61023461034f36600461385c565b61106d565b610249610362366004613d06565b61122c565b610234610375366004613dac565b6112a1565b6102676115df565b61023461039036600461388e565b6115e5565b6102346103a3366004613acc565b611822565b6102346103b636600461383b565b611a40565b610267611ab7565b61030e6103d1366004613f7a565b611baa565b6103e96103e4366004613faa565b611c79565b60405161025691906142f5565b610234610404366004613a30565b611d5f565b61026761041736600461383b565b61220a565b61042f61042a36600461383b565b612304565b6040516102569291906148aa565b61045061044b366004613faa565b61241e565b6040516102569190614295565b61023461046b36600461383b565b61258f565b610267612684565b610450610486366004613faa565b61268a565b61023461049936600461383b565b612810565b6102346104ac366004613c51565b612887565b6102346104bf36600461390f565b612ac0565b6102346104d2366004613e7e565b612c54565b6102346104e536600461383b565b612cb7565b6102346104f8366004613a30565b612d2e565b3360009081526001602052604090205460ff166105355760405162461bcd60e51b815260040161052c9061455e565b60405180910390fd5b83516001146105565760405162461bcd60e51b815260040161052c9061440a565b600081116105765760405162461bcd60e51b815260040161052c9061477d565b60005b8181101561062c57600061058f89896001613084565b90506002600101896040516105a4919061405a565b908152604051908190036020018120546304a75fe360e21b82526001600160a01b03169063129d7f8c906105e6908b908b9086908c908c908c90600401614209565b600060405180830381600087803b15801561060057600080fd5b505af1158015610614573d6000803e3d6000fd5b50505050508080610624906149cd565b915050610579565b508660405161063b919061405a565b6040518091039020866001600160a01b0316600080516020614a158339815191528360405161066a9190614313565b60405180910390a350505050505050565b6000818154811061068b57600080fd5b6000918252602090912001546001600160a01b0316905081565b60005490565b60006106b8848685613084565b905060006002600101856040516106cf919061405a565b9081526040519081900360200181205463b018fc6f60e01b82526001600160a01b03169063b018fc6f9061070990899086906004016141af565b602060405180830381600087803b15801561072357600080fd5b505af1158015610737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075b9190613f92565b600c54604051633517b5bb60e11b81529192506001600160a01b031690636a2f6b7690610792908a90339086908990600401614149565b600060405180830381600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b50505050846040516107d2919061405a565b6040518091039020866001600160a01b0316600080516020614a158339815191528660405161066a9190614313565b336001600160a01b03166000808154811061082c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161461085e5760405162461bcd60e51b815260040161052c906143d3565b6001600160a01b03811660009081526001602052604090205460ff166108965760405162461bcd60e51b815260040161052c90614866565b600080815481106108b757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03828116911614156108ee5760405162461bcd60e51b815260040161052c906144af565b60015b600054811015610a2657816001600160a01b03166000828154811061092657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610a1457600080546109519060019061494f565b8154811061096f57634e487b7160e01b600052603260045260246000fd5b600091825260208220015481546001600160a01b039091169190839081106109a757634e487b7160e01b600052603260045260246000fd5b6000918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091558054806109ed57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610a26565b80610a1e816149cd565b9150506108f1565b506001600160a01b03166000908152600160205260409020805460ff19169055565b3360009081526001602052604090205460ff16610a775760405162461bcd60e51b815260040161052c9061455e565b604051600590610a8890849061405a565b9081526040519081900360200190205460ff16610ab75760405162461bcd60e51b815260040161052c90614746565b80600260010183604051610acb919061405a565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b600a546001600160a01b03163314610b285760405162461bcd60e51b815260040161052c9061458a565b600081815260076020526040908190209051600391610b4691614076565b908152604051908190036020018120546323b872dd60e01b82526001600160a01b0316906323b872dd90610b8290869086908690600401614125565b600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b50505050505050565b60016020526000908152604090205460ff1681565b600b54604051636454a0fd60e01b81526000916001600160a01b031690636454a0fd90610c0390879087908a9060040161435d565b602060405180830381600087803b158015610c1d57600080fd5b505af1158015610c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c559190613f92565b600c5460405163a77f789b60e01b81529192506001600160a01b03169063a77f789b90610c8c908990339086908890600401614149565b600060405180830381600087803b158015610ca657600080fd5b505af1158015610cba573d6000803e3d6000fd5b50505050505050505050565b600a546001600160a01b031681565b600081815260076020526040908190209051606091600391610cf79190614076565b9081526040519081900360200181205463493fe80f60e01b82526001600160a01b03169063493fe80f90610d2f908590600401614313565b60006040518083038186803b158015610d4757600080fd5b505afa158015610d5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d839190810190613d38565b90505b919050565b336001600160a01b031660008081548110610db657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614610de85760405162461bcd60e51b815260040161052c906143d3565b6001600160a01b03821660009081526001602052604090205460ff1615610e215760405162461bcd60e51b815260040161052c90614837565b6001600160a01b0382166000908152600160208190526040909120805460ff191690911790558015610f0157600080600081548110610e7057634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154835460018101855593835290822090920180546001600160a01b0319166001600160a01b039093169290921790915580548391908190610ece57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610f4a565b600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630180546001600160a01b0319166001600160a01b0384161790555b5050565b3360009081526001602052604090205460ff16610f7d5760405162461bcd60e51b815260040161052c9061455e565b60005b8151811015610f4a576000828281518110610fab57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015610feb57600080fd5b505afa158015610fff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110279190810190613d38565b905061105a8184848151811061104d57634e487b7160e01b600052603260045260246000fd5b60200260200101516131ad565b5080611065816149cd565b915050610f80565b6001600160a01b03811633148061109357503360009081526001602052604090205460ff165b6110af5760405162461bcd60e51b815260040161052c90614621565b60008060005b6002548110156111bd576000806002600101600260000184815481106110eb57634e487b7160e01b600052603260045260246000fd5b906000526020600020016040516111029190614076565b908152604051908190036020018120546318c880ef60e21b82526001600160a01b03169063632203bc9061113a908990600401614111565b6040805180830381600087803b15801561115357600080fd5b505af1158015611167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118b9190613fcb565b909250905061119a8286614937565b94506111a68185614937565b9350505080806111b5906149cd565b9150506110b5565b50600c5460405163658793a360e01b81526001600160a01b039091169063658793a3906111f4908790879087908790600401614186565b600060405180830381600087803b15801561120e57600080fd5b505af1158015611222573d6000803e3d6000fd5b5050505050505050565b6000600260030182604051611241919061405a565b9081526040519081900360200190205460ff166112705760405162461bcd60e51b815260040161052c9061469c565b60405160039061128190849061405a565b908152604051908190036020019020546001600160a01b03169050919050565b3360009081526001602052604090205460ff166112d05760405162461bcd60e51b815260040161052c9061455e565b84516001146112f15760405162461bcd60e51b815260040161052c90614441565b82518551146113125760405162461bcd60e51b815260040161052c906145ea565b60405160059061132390899061405a565b9081526040519081900360200190205460ff166113525760405162461bcd60e51b815260040161052c90614746565b600660030160008660008151811061137a57634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182528101919091526040016000205460ff166113b45760405162461bcd60e51b815260040161052c90614665565b600260010160066001016000876000815181106113e157634e487b7160e01b600052603260045260246000fd5b602002602001015181526020019081526020016000206040516114049190614076565b908152604051908190036020018120546389af610760e01b82526001600160a01b0316906389af61079061143e90899089906004016141af565b602060405180830381600087803b15801561145857600080fd5b505af115801561146c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114909190613f92565b506114c3856000815181106114b557634e487b7160e01b600052603260045260246000fd5b602002602001015188613302565b6040516003906114d490899061405a565b908152604051908190036020018120546304a75fe360e21b82526001600160a01b03169063129d7f8c9061151690899088908a90899089908990600401614209565b600060405180830381600087803b15801561153057600080fd5b505af1158015611544573d6000803e3d6000fd5b5050600a5487516001600160a01b03909116925063864b7e959150879060009061157e57634e487b7160e01b600052603260045260246000fd5b6020026020010151896040518363ffffffff1660e01b81526004016115a4929190614891565b600060405180830381600087803b1580156115be57600080fd5b505af11580156115d2573d6000803e3d6000fd5b5050505050505050505050565b60065490565b6001600160a01b03831633148061160b57503360009081526001602052604090205460ff165b6116275760405162461bcd60e51b815260040161052c90614621565b600080825184511461164b5760405162461bcd60e51b815260040161052c906145ea565b60005b84518110156117eb57600260030185828151811061167c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611691919061405a565b9081526040519081900360200190205460ff166116c05760405162461bcd60e51b815260040161052c90614746565b60008060026001018784815181106116e857634e487b7160e01b600052603260045260246000fd5b60200260200101516040516116fd919061405a565b9081526040519081900360200190205486516001600160a01b039091169063daf73bbd908a9089908790811061174357634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b81526004016117689291906141af565b6040805180830381600087803b15801561178157600080fd5b505af1158015611795573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b99190613fcb565b90925090506117c88286614937565b94506117d48185614937565b9350505080806117e3906149cd565b91505061164e565b50600c546040516336ed57cd60e01b81526001600160a01b03909116906336ed57cd90610c8c908990899087908790600401614186565b6001600160a01b03831633148061184857503360009081526001602052604090205460ff165b6118645760405162461bcd60e51b815260040161052c90614478565b80518251146118855760405162461bcd60e51b815260040161052c906145ea565b60005b8251811015611a3a5760006118ec8483815181106118b657634e487b7160e01b600052603260045260246000fd5b6020026020010151868585815181106118df57634e487b7160e01b600052603260045260246000fd5b6020026020010151613084565b9050600260010184838151811061191357634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611928919061405a565b908152604051908190036020018120546306caef4d60e51b82526001600160a01b03169063d95de9a09061196290889085906004016141af565b600060405180830381600087803b15801561197c57600080fd5b505af1158015611990573d6000803e3d6000fd5b505050508382815181106119b457634e487b7160e01b600052603260045260246000fd5b60200260200101516040516119c9919061405a565b6040518091039020856001600160a01b0316600080516020614a15833981519152858581518110611a0a57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611a1f9190614313565b60405180910390a35080611a32816149cd565b915050611888565b50505050565b3360009081526001602052604090205460ff16611a6f5760405162461bcd60e51b815260040161052c9061455e565b6001600160a01b038116611a955760405162461bcd60e51b815260040161052c906147f0565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b60008060005b600254811015611ba457600280546003919083908110611aed57634e487b7160e01b600052603260045260246000fd5b90600052602060002001604051611b049190614076565b90815260408051602092819003830181205463b88d345360e01b825291516001600160a01b039092169263b88d345392600480840193829003018186803b158015611b4e57600080fd5b505afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b869190613f92565b611b909083614937565b915080611b9c816149cd565b915050611abd565b50905090565b60008181526009602052604090205460609060ff16611bdb5760405162461bcd60e51b815260040161052c906147c2565b60008281526007602052604090208054611bf490614992565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2090614992565b8015611c6d5780601f10611c4257610100808354040283529160200191611c6d565b820191906000526020600020905b815481529060010190602001808311611c5057829003601f168201915b50505050509050919050565b60606000611c87848461494f565b6001600160401b03811115611cac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611cd5578160200160208202803683370190505b509050835b83811015611d57576006805482908110611d0457634e487b7160e01b600052603260045260246000fd5b9060005260206000200154828683611d1c919061494f565b81518110611d3a57634e487b7160e01b600052603260045260246000fd5b602090810291909101015280611d4f816149cd565b915050611cda565b509392505050565b8251845114611d805760405162461bcd60e51b815260040161052c906145ea565b6000611d8d833384613084565b9050611d9b863387876115e5565b6000600260010184604051611db0919061405a565b908152604051908190036020018120546304eb4ae360e51b82526001600160a01b031690639d695c6090611dea90339086906004016141af565b602060405180830381600087803b158015611e0457600080fd5b505af1158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c9190613f92565b905060005b865181108015611e515750600082115b156121ae576002600301878281518110611e7b57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051611e90919061405a565b9081526040519081900360200190205460ff16611ebf5760405162461bcd60e51b815260040161052c90614746565b600a5486516001600160a01b039091169063b2dc5dc3903390899085908110611ef857634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401611f1d9291906141af565b600060405180830381600087803b158015611f3757600080fd5b505af1158015611f4b573d6000803e3d6000fd5b5050505060005b868281518110611f7257634e487b7160e01b600052603260045260246000fd5b6020026020010151518110156120735760066003016000888481518110611fa957634e487b7160e01b600052603260045260246000fd5b60200260200101518381518110611fd057634e487b7160e01b600052603260045260246000fd5b60209081029190910181015182528101919091526040016000205460ff1661200a5760405162461bcd60e51b815260040161052c906144f0565b61206187838151811061202d57634e487b7160e01b600052603260045260246000fd5b6020026020010151828151811061205457634e487b7160e01b600052603260045260246000fd5b60200260200101516133b5565b8061206b816149cd565b915050611f52565b506000600260010188838151811061209b57634e487b7160e01b600052603260045260246000fd5b60200260200101516040516120b0919061405a565b908152602001604051809103902060009054906101000a90046001600160a01b031690506000816001600160a01b03166389af6107338a868151811061210657634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b815260040161212b9291906141af565b602060405180830381600087803b15801561214557600080fd5b505af1158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d9190613f92565b905080841161218d576000612197565b612197818561494f565b9350505080806121a6906149cd565b915050611e41565b5080156121cd5760405162461bcd60e51b815260040161052c90614527565b836040516121db919061405a565b6040518091039020336001600160a01b0316600080516020614a158339815191528560405161066a9190614313565b60008060005b6002548110156122fd5760028054600391908390811061224057634e487b7160e01b600052603260045260246000fd5b906000526020600020016040516122579190614076565b908152604051908190036020018120546343a9ac3960e01b82526001600160a01b0316906343a9ac399061228f908790600401614111565b60206040518083038186803b1580156122a757600080fd5b505afa1580156122bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122df9190613f92565b6122e99083614937565b9150806122f5816149cd565b915050612210565b5092915050565b60008060008060005b6002548110156124135760008060026001016002600001848154811061234357634e487b7160e01b600052603260045260246000fd5b9060005260206000200160405161235a9190614076565b908152604051908190036020018120546303eba50760e01b82526001600160a01b0316906303eba50790612392908b90600401614111565b604080518083038186803b1580156123a957600080fd5b505afa1580156123bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e19190613fcb565b90925090506123f08286614937565b94506123fc8185614937565b93505050808061240b906149cd565b91505061230d565b509092509050915091565b6060600061242c848461494f565b6001600160401b0381111561245157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561248457816020015b606081526020019060019003908161246f5790505b509050835b83811015611d575760028054829081106124b357634e487b7160e01b600052603260045260246000fd5b9060005260206000200180546124c890614992565b80601f01602080910402602001604051908101604052809291908181526020018280546124f490614992565b80156125415780601f1061251657610100808354040283529160200191612541565b820191906000526020600020905b81548152906001019060200180831161252457829003601f168201915b5050505050828683612553919061494f565b8151811061257157634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080612587906149cd565b915050612489565b3360009081526001602052604090205460ff166125be5760405162461bcd60e51b815260040161052c9061455e565b6000816001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156125f957600080fd5b505afa15801561260d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126359190810190613d38565b905060026003018160405161264a919061405a565b9081526040519081900360200190205460ff161561267a5760405162461bcd60e51b815260040161052c906145b5565b610f4a81836131ad565b60025490565b60606000612698848461494f565b6001600160401b038111156126bd57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156126f057816020015b60608152602001906001900390816126db5790505b509050835b83811015611d5757600680546007916000918490811061272557634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020805461274990614992565b80601f016020809104026020016040519081016040528092919081815260200182805461277590614992565b80156127c25780601f10612797576101008083540402835291602001916127c2565b820191906000526020600020905b8154815290600101906020018083116127a557829003601f168201915b50505050508286836127d4919061494f565b815181106127f257634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080612808906149cd565b9150506126f5565b3360009081526001602052604090205460ff1661283f5760405162461bcd60e51b815260040161052c9061455e565b6001600160a01b0381166128655760405162461bcd60e51b815260040161052c90614702565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b5460405163a933c20f60e01b815260609182916001600160a01b039091169063a933c20f906128be90339087906004016141af565b600060405180830381600087803b1580156128d857600080fd5b505af11580156128ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129149190810190613bf1565b909250905060005b8251811015611a3a57600061295a84838151811061294a57634e487b7160e01b600052603260045260246000fd5b6020026020010151336001613084565b9050600260010184838151811061298157634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612996919061405a565b908152602001604051809103902060009054906101000a90046001600160a01b03166001600160a01b031663fd38450433838686815181106129e857634e487b7160e01b600052603260045260246000fd5b60200260200101516040518463ffffffff1660e01b8152600401612a0e939291906141d3565b600060405180830381600087803b158015612a2857600080fd5b505af1158015612a3c573d6000803e3d6000fd5b50505050838281518110612a6057634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612a75919061405a565b6040518091039020336001600160a01b0316600080516020614a158339815191526001604051612aa59190614313565b60405180910390a35080612ab8816149cd565b91505061291c565b6001600160a01b038216331480612ae657503360009081526001602052604090205460ff165b612b025760405162461bcd60e51b815260040161052c90614621565b604051600590612b1390839061405a565b9081526040519081900360200190205460ff16612b425760405162461bcd60e51b815260040161052c90614746565b600080600260010183604051612b58919061405a565b908152604051908190036020018120546318c880ef60e21b82526001600160a01b03169063632203bc90612b90908790600401614111565b6040805180830381600087803b158015612ba957600080fd5b505af1158015612bbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be19190613fcb565b600c5460405163fbe12f1d60e01b81529294509092506001600160a01b03169063fbe12f1d90612c1b908890889087908790600401614186565b600060405180830381600087803b158015612c3557600080fd5b505af1158015612c49573d6000803e3d6000fd5b505050505050505050565b3360009081526001602052604090205460ff16612c835760405162461bcd60e51b815260040161052c9061455e565b600b546040516343836c7f60e11b81526001600160a01b0390911690638706d8fe90610b829086908590879060040161435d565b3360009081526001602052604090205460ff16612ce65760405162461bcd60e51b815260040161052c9061455e565b6001600160a01b038116612d0c5760405162461bcd60e51b815260040161052c90614390565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b8251845114612d4f5760405162461bcd60e51b815260040161052c906145ea565b6000612d5c833384613084565b90506000806000600260010186604051612d76919061405a565b908152604051908190036020018120546319309eb560e21b82526001600160a01b0316906364c27ad490612db090339088906004016141af565b602060405180830381600087803b158015612dca57600080fd5b505af1158015612dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e029190613f92565b905060005b8851811015612fa4576002600301898281518110612e3557634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612e4a919061405a565b9081526040519081900360200190205460ff16612e795760405162461bcd60e51b815260040161052c90614746565b60008060026001018b8481518110612ea157634e487b7160e01b600052603260045260246000fd5b6020026020010151604051612eb6919061405a565b908152604051908190036020019020548a516001600160a01b039091169063daf73bbd9033908d9087908110612efc57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401612f219291906141af565b6040805180830381600087803b158015612f3a57600080fd5b505af1158015612f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f729190613fcb565b9092509050612f818287614937565b9550612f8d8186614937565b945050508080612f9c906149cd565b915050612e07565b5082811115612fc55760405162461bcd60e51b815260040161052c906146cb565b600c546001600160a01b031663c7ae05318a33612fe2858861494f565b866040518563ffffffff1660e01b81526004016130029493929190614186565b600060405180830381600087803b15801561301c57600080fd5b505af1158015613030573d6000803e3d6000fd5b5050505085604051613042919061405a565b6040518091039020336001600160a01b0316600080516020614a15833981519152876040516130719190614313565b60405180910390a3505050505050505050565b6060600260030184604051613099919061405a565b9081526040519081900360200190205460ff166130c85760405162461bcd60e51b815260040161052c90614746565b600a54604051635181db2b60e01b81526000916001600160a01b031690635181db2b906130fd9088908890889060040161432f565b600060405180830381600087803b15801561311757600080fd5b505af115801561312b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131539190810190613c83565b905060005b81518110156131a45761319282828151811061318457634e487b7160e01b600052603260045260246000fd5b602002602001015187613302565b8061319c816149cd565b915050613158565b50949350505050565b6040516005906131be90849061405a565b9081526040519081900360200190205460ff161561321e57806002600101836040516131ea919061405a565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055610f4a565b6001600260030183604051613233919061405a565b908152604051908190036020018120805492151560ff1990931692909217909155819060039061326490859061405a565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b031990931692909217909155600254906004906132a690859061405a565b90815260405160209181900382019020919091556002805460018101825560009190915283516132fd927f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909201918501906134e0565b505050565b60008281526009602052604090205460ff161561333e5760008281526007602090815260409091208251613338928401906134e0565b50610f4a565b6000828152600960209081526040808320805460ff1916600117905560078252909120825161336f928401906134e0565b5050600680546000838152600860205260408120829055600182018355919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0155565b60008181526009602052604090205460ff166133d0576134dd565b6000818152600960209081526040808320805460ff19169055600790915281206133f991613564565b60008181526008602052604081205460065490919061341a9060019061494f565b905060006006600001828154811061344257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101548083526008909152604080832086905586835282209190915590508183146134a457806006600001848154811061349757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b60068054806134c357634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590555050505b50565b8280546134ec90614992565b90600052602060002090601f01602090048101928261350e5760008555613554565b82601f1061352757805160ff1916838001178555613554565b82800160010185558215613554579182015b82811115613554578251825591602001919060010190613539565b5061356092915061359c565b5090565b50805461357090614992565b6000825580601f1061358257506134dd565b601f0160209004906000526020600020908101906134dd91905b5b80821115613560576000815560010161359d565b80356001600160a01b0381168114610d8657600080fd5b600082601f8301126135d8578081fd5b813560206135ed6135e8836148e1565b6148b8565b82815281810190858301855b8581101561362257613610898684358b010161373a565b845292840192908401906001016135f9565b5090979650505050505050565b600082601f83011261363f578081fd5b8135602061364f6135e8836148e1565b828152818101908583018385028701840188101561366b578586fd5b855b858110156136225761367e82613794565b8452928401929084019060010161366d565b600082601f8301126136a0578081fd5b813560206136b06135e8836148e1565b82815281810190858301855b85811015613622576136d3898684358b01016137a4565b845292840192908401906001016136bc565b600082601f8301126136f5578081fd5b815160206137056135e8836148e1565b82815281810190858301855b8581101561362257613728898684518b01016137f0565b84529284019290840190600101613711565b600082601f83011261374a578081fd5b8135602061375a6135e8836148e1565b8281528181019085830183850287018401881015613776578586fd5b855b8581101561362257813584529284019290840190600101613778565b80358015158114610d8657600080fd5b600082601f8301126137b4578081fd5b81356137c26135e882614904565b8181528460208386010111156137d6578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112613800578081fd5b815161380e6135e882614904565b818152846020838601011115613822578283fd5b613833826020830160208701614966565b949350505050565b60006020828403121561384c578081fd5b613855826135b1565b9392505050565b6000806040838503121561386e578081fd5b613877836135b1565b9150613885602084016135b1565b90509250929050565b600080600080608085870312156138a3578182fd5b6138ac856135b1565b93506138ba602086016135b1565b925060408501356001600160401b03808211156138d5578384fd5b6138e188838901613690565b935060608701359150808211156138f6578283fd5b50613903878288016135c8565b91505092959194509250565b600080600060608486031215613923578081fd5b61392c846135b1565b925061393a602085016135b1565b915060408401356001600160401b03811115613954578182fd5b613960868287016137a4565b9150509250925092565b600080600080600060a08688031215613981578283fd5b61398a866135b1565b9450613998602087016135b1565b935060408601356001600160401b03808211156139b3578485fd5b6139bf89838a016137a4565b94506060880135935060808801359150808211156139db578283fd5b506139e8888289016137a4565b9150509295509295909350565b600080600060608486031215613a09578081fd5b613a12846135b1565b9250613a20602085016135b1565b9150604084013590509250925092565b600080600080600060a08688031215613a47578283fd5b613a50866135b1565b945060208601356001600160401b0380821115613a6b578485fd5b613a7789838a01613690565b95506040880135915080821115613a8c578485fd5b613a9889838a016135c8565b94506060880135915080821115613aad578283fd5b50613aba888289016137a4565b95989497509295608001359392505050565b600080600060608486031215613ae0578081fd5b613ae9846135b1565b925060208401356001600160401b0380821115613b04578283fd5b613b1087838801613690565b93506040860135915080821115613b25578283fd5b506139608682870161373a565b60008060408385031215613b44578182fd5b613b4d836135b1565b915061388560208401613794565b60006020808385031215613b6d578182fd5b82356001600160401b03811115613b82578283fd5b8301601f81018513613b92578283fd5b8035613ba06135e8826148e1565b8181528381019083850185840285018601891015613bbc578687fd5b8694505b83851015613be557613bd1816135b1565b835260019490940193918501918501613bc0565b50979650505050505050565b60008060408385031215613c03578182fd5b82516001600160401b0380821115613c19578384fd5b613c25868387016136e5565b93506020850151915080821115613c3a578283fd5b50613c47858286016136e5565b9150509250929050565b600060208284031215613c62578081fd5b81356001600160401b03811115613c77578182fd5b6138338482850161373a565b60006020808385031215613c95578182fd5b82516001600160401b03811115613caa578283fd5b8301601f81018513613cba578283fd5b8051613cc86135e8826148e1565b8181528381019083850185840285018601891015613ce4578687fd5b8694505b83851015613be5578051835260019490940193918501918501613ce8565b600060208284031215613d17578081fd5b81356001600160401b03811115613d2c578182fd5b613833848285016137a4565b600060208284031215613d49578081fd5b81516001600160401b03811115613d5e578182fd5b613833848285016137f0565b60008060408385031215613d7c578182fd5b82356001600160401b03811115613d91578283fd5b613d9d858286016137a4565b925050613885602084016135b1565b600080600080600080600060e0888a031215613dc6578485fd5b87356001600160401b0380821115613ddc578687fd5b613de88b838c016137a4565b9850613df660208b016135b1565b975060408a0135915080821115613e0b578687fd5b613e178b838c0161373a565b965060608a0135955060808a0135915080821115613e33578384fd5b613e3f8b838c0161362f565b9450613e4d60a08b01613794565b935060c08a0135915080821115613e62578283fd5b50613e6f8a828b016137a4565b91505092959891949750929550565b600080600060608486031215613e92578081fd5b83356001600160401b03811115613ea7578182fd5b613eb3868287016137a4565b935050613a20602085016135b1565b600080600080600080600060e0888a031215613edc578081fd5b87356001600160401b0380821115613ef2578283fd5b613efe8b838c016137a4565b9850613f0c60208b016135b1565b975060408a0135965060608a0135915080821115613f28578283fd5b613f348b838c0161362f565b9550613f4260808b01613794565b945060a08a0135915080821115613f57578283fd5b50613f648a828b016137a4565b92505060c0880135905092959891949750929550565b600060208284031215613f8b578081fd5b5035919050565b600060208284031215613fa3578081fd5b5051919050565b60008060408385031215613fbc578182fd5b50508035926020909101359150565b60008060408385031215613fdd578182fd5b505080516020909101519092909150565b6000815180845260208085019450808401835b8381101561401d57815187529582019590820190600101614001565b509495945050505050565b15159052565b60008151808452614046816020860160208601614966565b601f01601f19169290920160200192915050565b6000825161406c818460208701614966565b9190910192915050565b815460009081906002810460018083168061409257607f831692505b60208084108214156140b257634e487b7160e01b87526022600452602487fd5b8180156140c657600181146140d757614103565b60ff19861689528489019650614103565b6140e08a61492b565b885b868110156140fb5781548b8201529085019083016140e2565b505084890196505b509498975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061417c9083018461402e565b9695505050505050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b6001600160a01b038316815260406020820181905260009061383390830184613fee565b6001600160a01b03841681526060602082018190526000906141f790830185613fee565b828103604084015261417c818561402e565b600060018060a01b03881682526020878184015260c0604084015261423160c0840188613fee565b8381036060850152865180825282880191830190845b81811015614265578351151583529284019291840191600101614247565b50506142746080860188614028565b84810360a0860152614286818761402e565b9b9a5050505050505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156142e857603f198886030184526142d685835161402e565b945092850192908501906001016142ba565b5092979650505050505050565b6000602082526138556020830184613fee565b901515815260200190565b90815260200190565b600060208252613855602083018461402e565b600060608252614342606083018661402e565b6001600160a01b039490941660208301525060400152919050565b600060608252614370606083018661402e565b6020830194909452506001600160a01b0391909116604090910152919050565b60208082526023908201527f48616e646c65723a204e66742063616e6e6f742062652061646472657373207a60408201526265726f60e81b606082015260800190565b60208082526018908201527f4f776e6572733a204f6e6c79205375706572204f776e65720000000000000000604082015260600190565b6020808252601a908201527f48616e646c65723a20437265617465206f6e65206279206f6e65000000000000604082015260600190565b6020808252601a908201527f48616e646c65723a2045766f6c7665206f6e65206279206f6e65000000000000604082015260600190565b6020808252601e908201527f48616e646c65723a2053656e646572206e6f7420617574686f72697a65640000604082015260600190565b60208082526021908201527f4f776e6572733a2043616e6e6f742072656d6f7665207375706572206f776e656040820152603960f91b606082015260800190565b6020808252601d908201527f48616e646c65723a20546f6b656e496420646f65736e74206578697374000000604082015260600190565b60208082526017908201527f48616e646c65723a204e69636520747279206275646479000000000000000000604082015260600190565b60208082526012908201527127bbb732b9399d1027b7363c9027bbb732b960711b604082015260600190565b60208082526011908201527012185b991b195c8e8813db9b1e4813999d607a1b604082015260600190565b6020808252818101527f48616e646c65723a204e6f64655479706520616c726561647920657869737473604082015260600190565b60208082526018908201527f48616e646c65723a204c656e677468206d69736d617463680000000000000000604082015260600190565b60208082526024908201527f48616e646c65723a20446f6e74206d6573732077697468206f7468657220636c60408201526361696d7360e01b606082015260800190565b6020808252601b908201527f48616e646c65723a20546f6b656e20646f65736e742065786973740000000000604082015260600190565b602080825260159082015274139bd919551e5c1948191bd95cdb9d08195e1a5cdd605a1b604082015260600190565b6020808252601b908201527f48616e646c65723a204e6f7420656e6f7567682070656e64696e670000000000604082015260600190565b60208082526024908201527f48616e646c65723a204c6f6f742063616e6e6f742062652061646472657373206040820152637a65726f60e01b606082015260800190565b6020808252601e908201527f48616e646c65723a204e6f64655479706520646f65736e742065786973740000604082015260600190565b60208082526025908201527f48616e646c65723a20436f756e74206d75737420626520677265617465722074604082015264068616e20360dc1b606082015260800190565b602080825260149082015273151bdad95b925908191bd95cdb9d08195e1a5cdd60621b604082015260600190565b60208082526027908201527f48616e646c65723a20537761707065722063616e6e6f742062652061646472656040820152667373207a65726f60c81b606082015260800190565b60208082526015908201527427bbb732b9399d1020b63932b0b23c9037bbb732b960591b604082015260600190565b60208082526011908201527027bbb732b9399d102737ba1037bbb732b960791b604082015260600190565b600083825260406020830152613833604083018461402e565b918252602082015260400190565b6040518181016001600160401b03811182821017156148d9576148d96149fe565b604052919050565b60006001600160401b038211156148fa576148fa6149fe565b5060209081020190565b60006001600160401b0382111561491d5761491d6149fe565b50601f01601f191660200190565b60009081526020902090565b6000821982111561494a5761494a6149e8565b500190565b600082821015614961576149616149e8565b500390565b60005b83811015614981578181015183820152602001614969565b83811115611a3a5750506000910152565b6002810460018216806149a657607f821691505b602082108114156149c757634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156149e1576149e16149e8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe3c8006180c21a8a3a5910855aaa92c2043f55f5a5cc6d89097bfafdfc5fe18eca2646970667358221220296ff4454b66ffcb34247735b1125faadf0c14ea3a8a9947010fae8fa97d77d264736f6c63430008000033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ 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.