Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 13 from a total of 13 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Node Super | 18531497 | 332 days ago | IN | 0 ETH | 0.00443112 | ||||
Set Node Super | 17583361 | 465 days ago | IN | 0 ETH | 0.00250938 | ||||
Set Node Super | 17038224 | 542 days ago | IN | 0 ETH | 0.00382248 | ||||
Set Node Super | 17038223 | 542 days ago | IN | 0 ETH | 0.00386658 | ||||
Set Node Super | 15837877 | 710 days ago | IN | 0 ETH | 0.00189723 | ||||
Set Node Super | 15824128 | 712 days ago | IN | 0 ETH | 0.00132957 | ||||
Set Node Super | 15824114 | 712 days ago | IN | 0 ETH | 0.00144486 | ||||
Set Node Super | 15824108 | 712 days ago | IN | 0 ETH | 0.00148203 | ||||
Set Node Super | 15824086 | 712 days ago | IN | 0 ETH | 0.00133774 | ||||
Set Node Super | 15824058 | 712 days ago | IN | 0 ETH | 0.00147515 | ||||
Set Node Super | 15824030 | 712 days ago | IN | 0 ETH | 0.00154671 | ||||
Set Node Super | 15800960 | 715 days ago | IN | 0 ETH | 0.00263229 | ||||
0x60806040 | 15795434 | 716 days ago | IN | 0 ETH | 0.04060596 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
StafiNodeManager
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.7.6; // SPDX-License-Identifier: GPL-3.0-only import "../StafiBase.sol"; import "../interfaces/node/IStafiNodeManager.sol"; import "../interfaces/storage/IAddressSetStorage.sol"; // Node registration and management contract StafiNodeManager is StafiBase, IStafiNodeManager { // Events event NodeRegistered(address indexed node, uint256 time); event NodeTrustedSet(address indexed node, bool trusted, uint256 time); event NodeSuperSet(address indexed node, bool trusted, uint256 time); // Construct constructor(address _stafiStorageAddress) StafiBase(_stafiStorageAddress) { version = 1; } // Get the number of nodes in the network function getNodeCount() override public view returns (uint256) { IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); return addressSetStorage.getCount(keccak256(abi.encodePacked("nodes.index"))); } // Get a node address by index function getNodeAt(uint256 _index) override public view returns (address) { IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); return addressSetStorage.getItem(keccak256(abi.encodePacked("nodes.index")), _index); } // Get the number of trusted nodes in the network function getTrustedNodeCount() override public view returns (uint256) { IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); return addressSetStorage.getCount(keccak256(abi.encodePacked("nodes.trusted.index"))); } // Get a trusted node address by index function getTrustedNodeAt(uint256 _index) override public view returns (address) { IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); return addressSetStorage.getItem(keccak256(abi.encodePacked("nodes.trusted.index")), _index); } // Check whether a node exists function getNodeExists(address _nodeAddress) override public view returns (bool) { return getBool(keccak256(abi.encodePacked("node.exists", _nodeAddress))); } // Check whether a node is trusted function getNodeTrusted(address _nodeAddress) override public view returns (bool) { return getBool(keccak256(abi.encodePacked("node.trusted", _nodeAddress))); } // Get the number of super nodes in the network function getSuperNodeCount() override public view returns (uint256) { IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); return addressSetStorage.getCount(keccak256(abi.encodePacked("nodes.super.index"))); } // Get a trusted node address by index function getSuperNodeAt(uint256 _index) override public view returns (address) { IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); return addressSetStorage.getItem(keccak256(abi.encodePacked("nodes.super.index")), _index); } // Check whether a node is trusted function getSuperNodeExists(address _nodeAddress) override public view returns (bool) { return getBool(keccak256(abi.encodePacked("node.super", _nodeAddress))); } // Register a new node function registerNode(address _nodeAddress) override external onlyLatestContract("stafiNodeManager", address(this)) onlyLatestContract("stafiNodeDeposit", msg.sender) { if (!getBool(keccak256(abi.encodePacked("node.exists", _nodeAddress)))) { // Load contracts IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); // Initialise node data setBool(keccak256(abi.encodePacked("node.exists", _nodeAddress)), true); setBool(keccak256(abi.encodePacked("node.trusted", _nodeAddress)), false); // Add node to index addressSetStorage.addItem(keccak256(abi.encodePacked("nodes.index")), _nodeAddress); // Emit node registered event emit NodeRegistered(_nodeAddress, block.timestamp); } } // Set a node's trusted status // Only accepts calls from super users function setNodeTrusted(address _nodeAddress, bool _trusted) override external onlyLatestContract("stafiNodeManager", address(this)) onlySuperUser { // Check current node status require(getBool(keccak256(abi.encodePacked("node.trusted", _nodeAddress))) != _trusted, "The node's trusted status is already set"); // Load contracts IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); // Set status setBool(keccak256(abi.encodePacked("node.trusted", _nodeAddress)), _trusted); // Add node to / remove node from trusted index if (_trusted) { addressSetStorage.addItem(keccak256(abi.encodePacked("nodes.trusted.index")), _nodeAddress); } else { addressSetStorage.removeItem(keccak256(abi.encodePacked("nodes.trusted.index")), _nodeAddress); } // Emit node trusted set event emit NodeTrustedSet(_nodeAddress, _trusted, block.timestamp); } // Set a node's super status // Only accepts calls from super users function setNodeSuper(address _nodeAddress, bool _super) override external onlyLatestContract("stafiNodeManager", address(this)) onlySuperUser { // Check current node status require(getBool(keccak256(abi.encodePacked("node.super", _nodeAddress))) != _super, "The node's super status is already set"); // Load contracts IAddressSetStorage addressSetStorage = IAddressSetStorage(getContractAddress("addressSetStorage")); // Set status setBool(keccak256(abi.encodePacked("node.super", _nodeAddress)), _super); // Add node to / remove node from trusted index if (_super) { addressSetStorage.addItem(keccak256(abi.encodePacked("nodes.super.index")), _nodeAddress); } else { addressSetStorage.removeItem(keccak256(abi.encodePacked("nodes.super.index")), _nodeAddress); } // Emit node trusted set event emit NodeSuperSet(_nodeAddress, _super, block.timestamp); } }
pragma solidity 0.7.6; // SPDX-License-Identifier: GPL-3.0-only interface IStafiNodeManager { function getNodeCount() external view returns (uint256); function getNodeAt(uint256 _index) external view returns (address); function getTrustedNodeCount() external view returns (uint256); function getTrustedNodeAt(uint256 _index) external view returns (address); function getSuperNodeCount() external view returns (uint256); function getSuperNodeAt(uint256 _index) external view returns (address); function getNodeExists(address _nodeAddress) external view returns (bool); function getNodeTrusted(address _nodeAddress) external view returns (bool); function getSuperNodeExists(address _nodeAddress) external view returns (bool); function registerNode(address _nodeAddress) external; function setNodeTrusted(address _nodeAddress, bool _trusted) external; function setNodeSuper(address _nodeAddress, bool _super) external; }
pragma solidity 0.7.6; // SPDX-License-Identifier: GPL-3.0-only interface IAddressSetStorage { function getCount(bytes32 _key) external view returns (uint256); function getItem(bytes32 _key, uint256 _index) external view returns (address); function getIndexOf(bytes32 _key, address _value) external view returns (int256); function addItem(bytes32 _key, address _value) external; function removeItem(bytes32 _key, address _value) external; }
pragma solidity 0.7.6; // SPDX-License-Identifier: GPL-3.0-only interface IStafiStorage { // Getters function getAddress(bytes32 _key) external view returns (address); function getUint(bytes32 _key) external view returns (uint); function getString(bytes32 _key) external view returns (string memory); function getBytes(bytes32 _key) external view returns (bytes memory); function getBool(bytes32 _key) external view returns (bool); function getInt(bytes32 _key) external view returns (int); function getBytes32(bytes32 _key) external view returns (bytes32); // Setters function setAddress(bytes32 _key, address _value) external; function setUint(bytes32 _key, uint _value) external; function setString(bytes32 _key, string calldata _value) external; function setBytes(bytes32 _key, bytes calldata _value) external; function setBool(bytes32 _key, bool _value) external; function setInt(bytes32 _key, int _value) external; function setBytes32(bytes32 _key, bytes32 _value) external; // Deleters function deleteAddress(bytes32 _key) external; function deleteUint(bytes32 _key) external; function deleteString(bytes32 _key) external; function deleteBytes(bytes32 _key) external; function deleteBool(bytes32 _key) external; function deleteInt(bytes32 _key) external; function deleteBytes32(bytes32 _key) external; }
pragma solidity 0.7.6; // SPDX-License-Identifier: GPL-3.0-only import "./interfaces/storage/IStafiStorage.sol"; abstract contract StafiBase { // Version of the contract uint8 public version; // The main storage contract where primary persistant storage is maintained IStafiStorage stafiStorage = IStafiStorage(0); /** * @dev Throws if called by any sender that doesn't match a network contract */ modifier onlyLatestNetworkContract() { require(getBool(keccak256(abi.encodePacked("contract.exists", msg.sender))), "Invalid or outdated network contract"); _; } /** * @dev Throws if called by any sender that doesn't match one of the supplied contract or is the latest version of that contract */ modifier onlyLatestContract(string memory _contractName, address _contractAddress) { require(_contractAddress == getAddress(keccak256(abi.encodePacked("contract.address", _contractName))), "Invalid or outdated contract"); _; } /** * @dev Throws if called by any sender that isn't a trusted node */ modifier onlyTrustedNode(address _nodeAddress) { require(getBool(keccak256(abi.encodePacked("node.trusted", _nodeAddress))), "Invalid trusted node"); _; } /** * @dev Throws if called by any sender that isn't a super node */ modifier onlySuperNode(address _nodeAddress) { require(getBool(keccak256(abi.encodePacked("node.super", _nodeAddress))), "Invalid super node"); _; } /** * @dev Throws if called by any sender that isn't a registered staking pool */ modifier onlyRegisteredStakingPool(address _stakingPoolAddress) { require(getBool(keccak256(abi.encodePacked("stakingpool.exists", _stakingPoolAddress))), "Invalid staking pool"); _; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(roleHas("owner", msg.sender), "Account is not the owner"); _; } /** * @dev Modifier to scope access to admins */ modifier onlyAdmin() { require(roleHas("admin", msg.sender), "Account is not an admin"); _; } /** * @dev Modifier to scope access to admins */ modifier onlySuperUser() { require(roleHas("owner", msg.sender) || roleHas("admin", msg.sender), "Account is not a super user"); _; } /** * @dev Reverts if the address doesn't have this role */ modifier onlyRole(string memory _role) { require(roleHas(_role, msg.sender), "Account does not match the specified role"); _; } /// @dev Set the main Storage address constructor(address _stafiStorageAddress) { // Update the contract address stafiStorage = IStafiStorage(_stafiStorageAddress); } /// @dev Get the address of a network contract by name function getContractAddress(string memory _contractName) internal view returns (address) { // Get the current contract address address contractAddress = getAddress(keccak256(abi.encodePacked("contract.address", _contractName))); // Check it require(contractAddress != address(0x0), "Contract not found"); // Return return contractAddress; } /// @dev Get the name of a network contract by address function getContractName(address _contractAddress) internal view returns (string memory) { // Get the contract name string memory contractName = getString(keccak256(abi.encodePacked("contract.name", _contractAddress))); // Check it require(keccak256(abi.encodePacked(contractName)) != keccak256(abi.encodePacked("")), "Contract not found"); // Return return contractName; } /// @dev Storage get methods function getAddress(bytes32 _key) internal view returns (address) { return stafiStorage.getAddress(_key); } function getUint(bytes32 _key) internal view returns (uint256) { return stafiStorage.getUint(_key); } function getString(bytes32 _key) internal view returns (string memory) { return stafiStorage.getString(_key); } function getBytes(bytes32 _key) internal view returns (bytes memory) { return stafiStorage.getBytes(_key); } function getBool(bytes32 _key) internal view returns (bool) { return stafiStorage.getBool(_key); } function getInt(bytes32 _key) internal view returns (int256) { return stafiStorage.getInt(_key); } function getBytes32(bytes32 _key) internal view returns (bytes32) { return stafiStorage.getBytes32(_key); } function getAddressS(string memory _key) internal view returns (address) { return stafiStorage.getAddress(keccak256(abi.encodePacked(_key))); } function getUintS(string memory _key) internal view returns (uint256) { return stafiStorage.getUint(keccak256(abi.encodePacked(_key))); } function getStringS(string memory _key) internal view returns (string memory) { return stafiStorage.getString(keccak256(abi.encodePacked(_key))); } function getBytesS(string memory _key) internal view returns (bytes memory) { return stafiStorage.getBytes(keccak256(abi.encodePacked(_key))); } function getBoolS(string memory _key) internal view returns (bool) { return stafiStorage.getBool(keccak256(abi.encodePacked(_key))); } function getIntS(string memory _key) internal view returns (int256) { return stafiStorage.getInt(keccak256(abi.encodePacked(_key))); } function getBytes32S(string memory _key) internal view returns (bytes32) { return stafiStorage.getBytes32(keccak256(abi.encodePacked(_key))); } /// @dev Storage set methods function setAddress(bytes32 _key, address _value) internal { stafiStorage.setAddress(_key, _value); } function setUint(bytes32 _key, uint256 _value) internal { stafiStorage.setUint(_key, _value); } function setString(bytes32 _key, string memory _value) internal { stafiStorage.setString(_key, _value); } function setBytes(bytes32 _key, bytes memory _value) internal { stafiStorage.setBytes(_key, _value); } function setBool(bytes32 _key, bool _value) internal { stafiStorage.setBool(_key, _value); } function setInt(bytes32 _key, int256 _value) internal { stafiStorage.setInt(_key, _value); } function setBytes32(bytes32 _key, bytes32 _value) internal { stafiStorage.setBytes32(_key, _value); } function setAddressS(string memory _key, address _value) internal { stafiStorage.setAddress(keccak256(abi.encodePacked(_key)), _value); } function setUintS(string memory _key, uint256 _value) internal { stafiStorage.setUint(keccak256(abi.encodePacked(_key)), _value); } function setStringS(string memory _key, string memory _value) internal { stafiStorage.setString(keccak256(abi.encodePacked(_key)), _value); } function setBytesS(string memory _key, bytes memory _value) internal { stafiStorage.setBytes(keccak256(abi.encodePacked(_key)), _value); } function setBoolS(string memory _key, bool _value) internal { stafiStorage.setBool(keccak256(abi.encodePacked(_key)), _value); } function setIntS(string memory _key, int256 _value) internal { stafiStorage.setInt(keccak256(abi.encodePacked(_key)), _value); } function setBytes32S(string memory _key, bytes32 _value) internal { stafiStorage.setBytes32(keccak256(abi.encodePacked(_key)), _value); } /// @dev Storage delete methods function deleteAddress(bytes32 _key) internal { stafiStorage.deleteAddress(_key); } function deleteUint(bytes32 _key) internal { stafiStorage.deleteUint(_key); } function deleteString(bytes32 _key) internal { stafiStorage.deleteString(_key); } function deleteBytes(bytes32 _key) internal { stafiStorage.deleteBytes(_key); } function deleteBool(bytes32 _key) internal { stafiStorage.deleteBool(_key); } function deleteInt(bytes32 _key) internal { stafiStorage.deleteInt(_key); } function deleteBytes32(bytes32 _key) internal { stafiStorage.deleteBytes32(_key); } function deleteAddressS(string memory _key) internal { stafiStorage.deleteAddress(keccak256(abi.encodePacked(_key))); } function deleteUintS(string memory _key) internal { stafiStorage.deleteUint(keccak256(abi.encodePacked(_key))); } function deleteStringS(string memory _key) internal { stafiStorage.deleteString(keccak256(abi.encodePacked(_key))); } function deleteBytesS(string memory _key) internal { stafiStorage.deleteBytes(keccak256(abi.encodePacked(_key))); } function deleteBoolS(string memory _key) internal { stafiStorage.deleteBool(keccak256(abi.encodePacked(_key))); } function deleteIntS(string memory _key) internal { stafiStorage.deleteInt(keccak256(abi.encodePacked(_key))); } function deleteBytes32S(string memory _key) internal { stafiStorage.deleteBytes32(keccak256(abi.encodePacked(_key))); } /** * @dev Check if an address has this role */ function roleHas(string memory _role, address _address) internal view returns (bool) { return getBool(keccak256(abi.encodePacked("access.role", _role, _address))); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_stafiStorageAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"node","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NodeRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"node","type":"address"},{"indexed":false,"internalType":"bool","name":"trusted","type":"bool"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NodeSuperSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"node","type":"address"},{"indexed":false,"internalType":"bool","name":"trusted","type":"bool"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NodeTrustedSet","type":"event"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getNodeAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNodeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"getNodeExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"getNodeTrusted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getSuperNodeAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSuperNodeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"getSuperNodeExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getTrustedNodeAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTrustedNodeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"registerNode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"},{"internalType":"bool","name":"_super","type":"bool"}],"name":"setNodeSuper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"},{"internalType":"bool","name":"_trusted","type":"bool"}],"name":"setNodeTrusted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405260008060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005157600080fd5b506040516123c53803806123c58339818101604052602081101561007457600080fd5b81019080805190602001909291905050508080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060016000806101000a81548160ff021916908360ff160217905550506122d2806100f36000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063672d7a0d1161008c578063ba75d80611610066578063ba75d806146102e7578063c89749071461033f578063ca66d1d114610397578063fe26a5c8146103f1576100cf565b8063672d7a0d146101f9578063aabcb8aa1461023d578063b13e9d291461028d576100cf565b806339bf397e146100d457806354fd4d50146100f257806356071cf01461011357806357d637921461013157806365d4176f1461018157806366e3c026146101db575b600080fd5b6100dc610449565b6040518082815260200191505060405180910390f35b6100fa610564565b604051808260ff16815260200191505060405180910390f35b61011b610575565b6040518082815260200191505060405180910390f35b61017f6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610690565b005b6101c36004803603602081101561019757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c88565b60405180821515815260200191505060405180910390f35b6101e3610d01565b6040518082815260200191505060405180910390f35b61023b6004803603602081101561020f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e1c565b005b61028b6004803603604081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506113ce565b005b6102cf600480360360208110156102a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119c6565b60405180821515815260200191505060405180910390f35b610313600480360360208110156102fd57600080fd5b8101908080359060200190929190505050611a3f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61036b6004803603602081101561035557600080fd5b8101908080359060200190929190505050611b64565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d9600480360360208110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c89565b60405180821515815260200191505060405180910390f35b61041d6004803603602081101561040757600080fd5b8101908080359060200190929190505050611d02565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008061048a6040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9d6fee960405160200180807f6e6f6465732e696e646578000000000000000000000000000000000000000000815250600b019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561052357600080fd5b505afa158015610537573d6000803e3d6000fd5b505050506040513d602081101561054d57600080fd5b810190808051906020019092919050505091505090565b60008054906101000a900460ff1681565b6000806105b66040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9d6fee960405160200180807f6e6f6465732e73757065722e696e6465780000000000000000000000000000008152506011019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561064f57600080fd5b505afa158015610663573d6000803e3d6000fd5b505050506040513d602081101561067957600080fd5b810190808051906020019092919050505091505090565b6040518060400160405280601081526020017f73746166694e6f64654d616e6167657200000000000000000000000000000000815250306107698260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b602083106107295780518252602082019150602081019050602083039250610706565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b6108486040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525033612030565b8061088e575061088d6040518060400160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525033612030565b5b610900576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e74206973206e6f7420612073757065722075736572000000000081525060200191505060405180910390fd5b8215156109738560405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b151514156109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806122756028913960400191505060405180910390fd5b6000610a0c6040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b9050610a7f8560405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120856121b3565b8315610b59578073ffffffffffffffffffffffffffffffffffffffff16638892716660405160200180807f6e6f6465732e747275737465642e696e64657800000000000000000000000000815250601301905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b50505050610c29565b8073ffffffffffffffffffffffffffffffffffffffff1663f79b36ad60405160200180807f6e6f6465732e747275737465642e696e64657800000000000000000000000000815250601301905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050505b8473ffffffffffffffffffffffffffffffffffffffff167fc1308995890d10efade1f87f0bdb6020a8e7b6d3c3cfb6a1d9813d4ecf200aca85426040518083151581526020018281526020019250505060405180910390a25050505050565b6000610cfa8260405160200180807f6e6f64652e657869737473000000000000000000000000000000000000000000815250600b018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b9050919050565b600080610d426040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9d6fee960405160200180807f6e6f6465732e747275737465642e696e646578000000000000000000000000008152506013019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610ddb57600080fd5b505afa158015610def573d6000803e3d6000fd5b505050506040513d6020811015610e0557600080fd5b810190808051906020019092919050505091505090565b6040518060400160405280601081526020017f73746166694e6f64654d616e616765720000000000000000000000000000000081525030610ef58260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b60208310610eb55780518252602082019150602081019050602083039250610e92565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b6040518060400160405280601081526020017f73746166694e6f64654465706f736974000000000000000000000000000000008152503361106e8260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b6020831061102e578051825260208201915060208101905060208303925061100b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b61117e8560405160200180807f6e6f64652e657869737473000000000000000000000000000000000000000000815250600b018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b6113c75760006111c26040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90506112368660405160200180807f6e6f64652e657869737473000000000000000000000000000000000000000000815250600b018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012060016121b3565b6112a88660405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012060006121b3565b8073ffffffffffffffffffffffffffffffffffffffff16638892716660405160200180807f6e6f6465732e696e646578000000000000000000000000000000000000000000815250600b01905060405160208183030381529060405280519060200120886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167ff773bca07d020a1bc1fdd45ea3db573da547dd27180143afaf075c158a847594426040518082815260200191505060405180910390a2505b5050505050565b6040518060400160405280601081526020017f73746166694e6f64654d616e6167657200000000000000000000000000000000815250306114a78260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b602083106114675780518252602082019150602081019050602083039250611444565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b6115866040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525033612030565b806115cc57506115cb6040518060400160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525033612030565b5b61163e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e74206973206e6f7420612073757065722075736572000000000081525060200191505060405180910390fd5b8215156116b18560405160200180807f6e6f64652e737570657200000000000000000000000000000000000000000000815250600a018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b1515141561170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061224f6026913960400191505060405180910390fd5b600061174a6040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90506117bd8560405160200180807f6e6f64652e737570657200000000000000000000000000000000000000000000815250600a018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120856121b3565b8315611897578073ffffffffffffffffffffffffffffffffffffffff16638892716660405160200180807f6e6f6465732e73757065722e696e646578000000000000000000000000000000815250601101905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561187a57600080fd5b505af115801561188e573d6000803e3d6000fd5b50505050611967565b8073ffffffffffffffffffffffffffffffffffffffff1663f79b36ad60405160200180807f6e6f6465732e73757065722e696e646578000000000000000000000000000000815250601101905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561194e57600080fd5b505af1158015611962573d6000803e3d6000fd5b505050505b8473ffffffffffffffffffffffffffffffffffffffff167f4e254d8fe04424f1b37e26b86bded3b00bb5d712b323242e413c84b25115b4f885426040518083151581526020018281526020019250505060405180910390a25050505050565b6000611a388260405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b9050919050565b600080611a806040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663f3358a3a60405160200180807f6e6f6465732e696e646578000000000000000000000000000000000000000000815250600b01905060405160208183030381529060405280519060200120856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b2157600080fd5b505afa158015611b35573d6000803e3d6000fd5b505050506040513d6020811015611b4b57600080fd5b8101908080519060200190929190505050915050919050565b600080611ba56040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663f3358a3a60405160200180807f6e6f6465732e73757065722e696e646578000000000000000000000000000000815250601101905060405160208183030381529060405280519060200120856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b8101908080519060200190929190505050915050919050565b6000611cfb8260405160200180807f6e6f64652e737570657200000000000000000000000000000000000000000000815250600a018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b9050919050565b600080611d436040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663f3358a3a60405160200180807f6e6f6465732e747275737465642e696e64657800000000000000000000000000815250601301905060405160208183030381529060405280519060200120856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611de457600080fd5b505afa158015611df8573d6000803e3d6000fd5b505050506040513d6020811015611e0e57600080fd5b8101908080519060200190929190505050915050919050565b600080611ecc8360405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b60208310611e8c5780518252602082019150602081019050602083039250611e69565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e7472616374206e6f7420666f756e64000000000000000000000000000081525060200191505060405180910390fd5b80915050919050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321f8a721836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611fee57600080fd5b505afa158015612002573d6000803e3d6000fd5b505050506040513d602081101561201857600080fd5b81019080805190602001909291905050509050919050565b60006120f5838360405160200180807f6163636573732e726f6c65000000000000000000000000000000000000000000815250600b0183805190602001908083835b602083106120955780518252602082019150602081019050602083039250612072565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001206120fd565b905092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561217157600080fd5b505afa158015612185573d6000803e3d6000fd5b505050506040513d602081101561219b57600080fd5b81019080805190602001909291905050509050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced83836040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561223257600080fd5b505af1158015612246573d6000803e3d6000fd5b50505050505056fe546865206e6f646527732073757065722073746174757320697320616c726561647920736574546865206e6f6465277320747275737465642073746174757320697320616c726561647920736574a2646970667358221220d7c0c770208913fcb83edf84d9f9c9bcfc9021d90126b1a3e7b79cde42a741bc64736f6c634300070600330000000000000000000000006c2f7b6110a37b3b0fbdd811876be368df02e8b0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063672d7a0d1161008c578063ba75d80611610066578063ba75d806146102e7578063c89749071461033f578063ca66d1d114610397578063fe26a5c8146103f1576100cf565b8063672d7a0d146101f9578063aabcb8aa1461023d578063b13e9d291461028d576100cf565b806339bf397e146100d457806354fd4d50146100f257806356071cf01461011357806357d637921461013157806365d4176f1461018157806366e3c026146101db575b600080fd5b6100dc610449565b6040518082815260200191505060405180910390f35b6100fa610564565b604051808260ff16815260200191505060405180910390f35b61011b610575565b6040518082815260200191505060405180910390f35b61017f6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610690565b005b6101c36004803603602081101561019757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c88565b60405180821515815260200191505060405180910390f35b6101e3610d01565b6040518082815260200191505060405180910390f35b61023b6004803603602081101561020f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e1c565b005b61028b6004803603604081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506113ce565b005b6102cf600480360360208110156102a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119c6565b60405180821515815260200191505060405180910390f35b610313600480360360208110156102fd57600080fd5b8101908080359060200190929190505050611a3f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61036b6004803603602081101561035557600080fd5b8101908080359060200190929190505050611b64565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d9600480360360208110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c89565b60405180821515815260200191505060405180910390f35b61041d6004803603602081101561040757600080fd5b8101908080359060200190929190505050611d02565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008061048a6040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9d6fee960405160200180807f6e6f6465732e696e646578000000000000000000000000000000000000000000815250600b019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561052357600080fd5b505afa158015610537573d6000803e3d6000fd5b505050506040513d602081101561054d57600080fd5b810190808051906020019092919050505091505090565b60008054906101000a900460ff1681565b6000806105b66040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9d6fee960405160200180807f6e6f6465732e73757065722e696e6465780000000000000000000000000000008152506011019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561064f57600080fd5b505afa158015610663573d6000803e3d6000fd5b505050506040513d602081101561067957600080fd5b810190808051906020019092919050505091505090565b6040518060400160405280601081526020017f73746166694e6f64654d616e6167657200000000000000000000000000000000815250306107698260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b602083106107295780518252602082019150602081019050602083039250610706565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b6108486040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525033612030565b8061088e575061088d6040518060400160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525033612030565b5b610900576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e74206973206e6f7420612073757065722075736572000000000081525060200191505060405180910390fd5b8215156109738560405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b151514156109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806122756028913960400191505060405180910390fd5b6000610a0c6040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b9050610a7f8560405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120856121b3565b8315610b59578073ffffffffffffffffffffffffffffffffffffffff16638892716660405160200180807f6e6f6465732e747275737465642e696e64657800000000000000000000000000815250601301905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b50505050610c29565b8073ffffffffffffffffffffffffffffffffffffffff1663f79b36ad60405160200180807f6e6f6465732e747275737465642e696e64657800000000000000000000000000815250601301905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b505050505b8473ffffffffffffffffffffffffffffffffffffffff167fc1308995890d10efade1f87f0bdb6020a8e7b6d3c3cfb6a1d9813d4ecf200aca85426040518083151581526020018281526020019250505060405180910390a25050505050565b6000610cfa8260405160200180807f6e6f64652e657869737473000000000000000000000000000000000000000000815250600b018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b9050919050565b600080610d426040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9d6fee960405160200180807f6e6f6465732e747275737465642e696e646578000000000000000000000000008152506013019050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610ddb57600080fd5b505afa158015610def573d6000803e3d6000fd5b505050506040513d6020811015610e0557600080fd5b810190808051906020019092919050505091505090565b6040518060400160405280601081526020017f73746166694e6f64654d616e616765720000000000000000000000000000000081525030610ef58260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b60208310610eb55780518252602082019150602081019050602083039250610e92565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b6040518060400160405280601081526020017f73746166694e6f64654465706f736974000000000000000000000000000000008152503361106e8260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b6020831061102e578051825260208201915060208101905060208303925061100b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b61117e8560405160200180807f6e6f64652e657869737473000000000000000000000000000000000000000000815250600b018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b6113c75760006111c26040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90506112368660405160200180807f6e6f64652e657869737473000000000000000000000000000000000000000000815250600b018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012060016121b3565b6112a88660405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012060006121b3565b8073ffffffffffffffffffffffffffffffffffffffff16638892716660405160200180807f6e6f6465732e696e646578000000000000000000000000000000000000000000815250600b01905060405160208183030381529060405280519060200120886040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167ff773bca07d020a1bc1fdd45ea3db573da547dd27180143afaf075c158a847594426040518082815260200191505060405180910390a2505b5050505050565b6040518060400160405280601081526020017f73746166694e6f64654d616e6167657200000000000000000000000000000000815250306114a78260405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b602083106114675780518252602082019150602081019050602083039250611444565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c6964206f72206f7574646174656420636f6e74726163740000000081525060200191505060405180910390fd5b6115866040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525033612030565b806115cc57506115cb6040518060400160405280600581526020017f61646d696e00000000000000000000000000000000000000000000000000000081525033612030565b5b61163e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e74206973206e6f7420612073757065722075736572000000000081525060200191505060405180910390fd5b8215156116b18560405160200180807f6e6f64652e737570657200000000000000000000000000000000000000000000815250600a018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b1515141561170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061224f6026913960400191505060405180910390fd5b600061174a6040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90506117bd8560405160200180807f6e6f64652e737570657200000000000000000000000000000000000000000000815250600a018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120856121b3565b8315611897578073ffffffffffffffffffffffffffffffffffffffff16638892716660405160200180807f6e6f6465732e73757065722e696e646578000000000000000000000000000000815250601101905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561187a57600080fd5b505af115801561188e573d6000803e3d6000fd5b50505050611967565b8073ffffffffffffffffffffffffffffffffffffffff1663f79b36ad60405160200180807f6e6f6465732e73757065722e696e646578000000000000000000000000000000815250601101905060405160208183030381529060405280519060200120876040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561194e57600080fd5b505af1158015611962573d6000803e3d6000fd5b505050505b8473ffffffffffffffffffffffffffffffffffffffff167f4e254d8fe04424f1b37e26b86bded3b00bb5d712b323242e413c84b25115b4f885426040518083151581526020018281526020019250505060405180910390a25050505050565b6000611a388260405160200180807f6e6f64652e747275737465640000000000000000000000000000000000000000815250600c018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b9050919050565b600080611a806040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663f3358a3a60405160200180807f6e6f6465732e696e646578000000000000000000000000000000000000000000815250600b01905060405160208183030381529060405280519060200120856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b2157600080fd5b505afa158015611b35573d6000803e3d6000fd5b505050506040513d6020811015611b4b57600080fd5b8101908080519060200190929190505050915050919050565b600080611ba56040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663f3358a3a60405160200180807f6e6f6465732e73757065722e696e646578000000000000000000000000000000815250601101905060405160208183030381529060405280519060200120856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b8101908080519060200190929190505050915050919050565b6000611cfb8260405160200180807f6e6f64652e737570657200000000000000000000000000000000000000000000815250600a018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206120fd565b9050919050565b600080611d436040518060400160405280601181526020017f6164647265737353657453746f72616765000000000000000000000000000000815250611e27565b90508073ffffffffffffffffffffffffffffffffffffffff1663f3358a3a60405160200180807f6e6f6465732e747275737465642e696e64657800000000000000000000000000815250601301905060405160208183030381529060405280519060200120856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611de457600080fd5b505afa158015611df8573d6000803e3d6000fd5b505050506040513d6020811015611e0e57600080fd5b8101908080519060200190929190505050915050919050565b600080611ecc8360405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b60208310611e8c5780518252602082019150602081019050602083039250611e69565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120611f7a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e7472616374206e6f7420666f756e64000000000000000000000000000081525060200191505060405180910390fd5b80915050919050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321f8a721836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611fee57600080fd5b505afa158015612002573d6000803e3d6000fd5b505050506040513d602081101561201857600080fd5b81019080805190602001909291905050509050919050565b60006120f5838360405160200180807f6163636573732e726f6c65000000000000000000000000000000000000000000815250600b0183805190602001908083835b602083106120955780518252602082019150602081019050602083039250612072565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001206120fd565b905092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561217157600080fd5b505afa158015612185573d6000803e3d6000fd5b505050506040513d602081101561219b57600080fd5b81019080805190602001909291905050509050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced83836040518363ffffffff1660e01b815260040180838152602001821515815260200192505050600060405180830381600087803b15801561223257600080fd5b505af1158015612246573d6000803e3d6000fd5b50505050505056fe546865206e6f646527732073757065722073746174757320697320616c726561647920736574546865206e6f6465277320747275737465642073746174757320697320616c726561647920736574a2646970667358221220d7c0c770208913fcb83edf84d9f9c9bcfc9021d90126b1a3e7b79cde42a741bc64736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006c2f7b6110a37b3b0fbdd811876be368df02e8b0
-----Decoded View---------------
Arg [0] : _stafiStorageAddress (address): 0x6c2f7b6110a37b3B0fbdd811876be368df02E8B0
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c2f7b6110a37b3b0fbdd811876be368df02e8b0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.