Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 658 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Withdrawal A... | 2510332 | 2 days ago | IN | 0 ETH | 0.00034135 | ||||
Confirm Withdraw... | 2506087 | 3 days ago | IN | 0 ETH | 0.0002934 | ||||
Set Withdrawal A... | 2506072 | 3 days ago | IN | 0 ETH | 0.00022284 | ||||
Set Withdrawal A... | 2506041 | 3 days ago | IN | 0 ETH | 0.00040177 | ||||
Confirm Withdraw... | 2491278 | 5 days ago | IN | 0 ETH | 0.0000091 | ||||
Set Withdrawal A... | 2491254 | 5 days ago | IN | 0 ETH | 0.00009353 | ||||
Set Withdrawal A... | 2385859 | 21 days ago | IN | 0 ETH | 0.0000933 | ||||
Confirm Withdraw... | 2372218 | 23 days ago | IN | 0 ETH | 0.00004488 | ||||
Set Withdrawal A... | 2372195 | 23 days ago | IN | 0 ETH | 0.00009353 | ||||
Confirm Withdraw... | 2367450 | 24 days ago | IN | 0 ETH | 0.00003854 | ||||
Set Withdrawal A... | 2367369 | 24 days ago | IN | 0 ETH | 0.00009353 | ||||
Confirm Withdraw... | 2238851 | 43 days ago | IN | 0 ETH | 0.00001253 | ||||
Set Withdrawal A... | 2238846 | 43 days ago | IN | 0 ETH | 0.00009353 | ||||
Confirm Withdraw... | 2227130 | 45 days ago | IN | 0 ETH | 0.00000466 | ||||
Set Withdrawal A... | 2227091 | 45 days ago | IN | 0 ETH | 0.00009353 | ||||
Confirm Withdraw... | 2213608 | 47 days ago | IN | 0 ETH | 0.0000293 | ||||
Set Withdrawal A... | 2213597 | 47 days ago | IN | 0 ETH | 0.00009353 | ||||
Confirm Withdraw... | 2207983 | 48 days ago | IN | 0 ETH | 0.00002917 | ||||
Set Withdrawal A... | 2207979 | 48 days ago | IN | 0 ETH | 0.00000307 | ||||
Confirm Withdraw... | 2207334 | 48 days ago | IN | 0 ETH | 0.00000554 | ||||
Set Withdrawal A... | 2207328 | 48 days ago | IN | 0 ETH | 0.00004676 | ||||
Confirm Withdraw... | 2139097 | 59 days ago | IN | 0 ETH | 0.00000017 | ||||
Confirm Withdraw... | 2138988 | 59 days ago | IN | 0 ETH | 0.00000038 | ||||
Set Withdrawal A... | 2134814 | 59 days ago | IN | 0 ETH | 0.00009353 | ||||
Set Withdrawal A... | 2132519 | 60 days ago | IN | 0 ETH | 0.00002321 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
RocketStorage
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity Standard Json-Input format)
/** * . * / \ * |.'.| * |'.'| * ,'| |`. * |,-'-|-'-.| * __|_| | _ _ _____ _ * | ___ \| | | | | | ___ \ | | * | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | | * | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| | * | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | | * \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_| * +---------------------------------------------------+ * | DECENTRALISED STAKING PROTOCOL FOR ETHEREUM 2.0 | * +---------------------------------------------------+ * * Rocket Pool is a first-of-its-kind ETH2 Proof of Stake protocol, designed to be community owned, * decentralised, trustless and compatible with staking in Ethereum 2.0. * * For more information about Rocket Pool, visit https://rocketpool.net * * Authors: David Rugendyke, Jake Pospischil, Kane Wallmann, Darren Langley, Joe Clapis, Nick Doherty * */ pragma solidity 0.7.6; // SPDX-License-Identifier: GPL-3.0-only import "../interface/RocketStorageInterface.sol"; import "@openzeppelin/contracts/math/SafeMath.sol"; /// @title The primary persistent storage for Rocket Pool /// @author David Rugendyke contract RocketStorage is RocketStorageInterface { // Events event NodeWithdrawalAddressSet(address indexed node, address indexed withdrawalAddress, uint256 time); event GuardianChanged(address oldGuardian, address newGuardian); // Libraries using SafeMath for uint256; // Storage maps mapping(bytes32 => string) private stringStorage; mapping(bytes32 => bytes) private bytesStorage; mapping(bytes32 => uint256) private uintStorage; mapping(bytes32 => int256) private intStorage; mapping(bytes32 => address) private addressStorage; mapping(bytes32 => bool) private booleanStorage; mapping(bytes32 => bytes32) private bytes32Storage; // Protected storage (not accessible by network contracts) mapping(address => address) private withdrawalAddresses; mapping(address => address) private pendingWithdrawalAddresses; // Guardian address address guardian; address newGuardian; // Flag storage has been initialised bool storageInit = false; /// @dev Only allow access from the latest version of a contract in the Rocket Pool network after deployment modifier onlyLatestRocketNetworkContract() { if (storageInit == true) { // Make sure the access is permitted to only contracts in our Dapp require(booleanStorage[keccak256(abi.encodePacked("contract.exists", msg.sender))], "Invalid or outdated network contract"); } else { // Only Dapp and the guardian account are allowed access during initialisation. // tx.origin is only safe to use in this case for deployment since no external contracts are interacted with require(( booleanStorage[keccak256(abi.encodePacked("contract.exists", msg.sender))] || tx.origin == guardian ), "Invalid or outdated network contract attempting access during deployment"); } _; } /// @dev Construct RocketStorage constructor() { // Set the guardian upon deployment guardian = msg.sender; } // Get guardian address function getGuardian() external override view returns (address) { return guardian; } // Transfers guardianship to a new address function setGuardian(address _newAddress) external override { // Check tx comes from current guardian require(msg.sender == guardian, "Is not guardian account"); // Store new address awaiting confirmation newGuardian = _newAddress; } // Confirms change of guardian function confirmGuardian() external override { // Check tx came from new guardian address require(msg.sender == newGuardian, "Confirmation must come from new guardian address"); // Store old guardian for event address oldGuardian = guardian; // Update guardian and clear storage guardian = newGuardian; delete newGuardian; // Emit event emit GuardianChanged(oldGuardian, guardian); } // Set this as being deployed now function getDeployedStatus() external override view returns (bool) { return storageInit; } // Set this as being deployed now function setDeployedStatus() external { // Only guardian can lock this down require(msg.sender == guardian, "Is not guardian account"); // Set it now storageInit = true; } // Protected storage // Get a node's withdrawal address function getNodeWithdrawalAddress(address _nodeAddress) public override view returns (address) { // If no withdrawal address has been set, return the nodes address address withdrawalAddress = withdrawalAddresses[_nodeAddress]; if (withdrawalAddress == address(0)) { return _nodeAddress; } return withdrawalAddress; } // Get a node's pending withdrawal address function getNodePendingWithdrawalAddress(address _nodeAddress) external override view returns (address) { return pendingWithdrawalAddresses[_nodeAddress]; } // Set a node's withdrawal address function setWithdrawalAddress(address _nodeAddress, address _newWithdrawalAddress, bool _confirm) external override { // Check new withdrawal address require(_newWithdrawalAddress != address(0x0), "Invalid withdrawal address"); // Confirm the transaction is from the node's current withdrawal address address withdrawalAddress = getNodeWithdrawalAddress(_nodeAddress); require(withdrawalAddress == msg.sender, "Only a tx from a node's withdrawal address can update it"); // Update immediately if confirmed if (_confirm) { updateWithdrawalAddress(_nodeAddress, _newWithdrawalAddress); } // Set pending withdrawal address if not confirmed else { pendingWithdrawalAddresses[_nodeAddress] = _newWithdrawalAddress; } } // Confirm a node's new withdrawal address function confirmWithdrawalAddress(address _nodeAddress) external override { // Get node by pending withdrawal address require(pendingWithdrawalAddresses[_nodeAddress] == msg.sender, "Confirmation must come from the pending withdrawal address"); delete pendingWithdrawalAddresses[_nodeAddress]; // Update withdrawal address updateWithdrawalAddress(_nodeAddress, msg.sender); } // Update a node's withdrawal address function updateWithdrawalAddress(address _nodeAddress, address _newWithdrawalAddress) private { // Set new withdrawal address withdrawalAddresses[_nodeAddress] = _newWithdrawalAddress; // Emit withdrawal address set event emit NodeWithdrawalAddressSet(_nodeAddress, _newWithdrawalAddress, block.timestamp); } /// @param _key The key for the record function getAddress(bytes32 _key) override external view returns (address r) { return addressStorage[_key]; } /// @param _key The key for the record function getUint(bytes32 _key) override external view returns (uint256 r) { return uintStorage[_key]; } /// @param _key The key for the record function getString(bytes32 _key) override external view returns (string memory) { return stringStorage[_key]; } /// @param _key The key for the record function getBytes(bytes32 _key) override external view returns (bytes memory) { return bytesStorage[_key]; } /// @param _key The key for the record function getBool(bytes32 _key) override external view returns (bool r) { return booleanStorage[_key]; } /// @param _key The key for the record function getInt(bytes32 _key) override external view returns (int r) { return intStorage[_key]; } /// @param _key The key for the record function getBytes32(bytes32 _key) override external view returns (bytes32 r) { return bytes32Storage[_key]; } /// @param _key The key for the record function setAddress(bytes32 _key, address _value) onlyLatestRocketNetworkContract override external { addressStorage[_key] = _value; } /// @param _key The key for the record function setUint(bytes32 _key, uint _value) onlyLatestRocketNetworkContract override external { uintStorage[_key] = _value; } /// @param _key The key for the record function setString(bytes32 _key, string calldata _value) onlyLatestRocketNetworkContract override external { stringStorage[_key] = _value; } /// @param _key The key for the record function setBytes(bytes32 _key, bytes calldata _value) onlyLatestRocketNetworkContract override external { bytesStorage[_key] = _value; } /// @param _key The key for the record function setBool(bytes32 _key, bool _value) onlyLatestRocketNetworkContract override external { booleanStorage[_key] = _value; } /// @param _key The key for the record function setInt(bytes32 _key, int _value) onlyLatestRocketNetworkContract override external { intStorage[_key] = _value; } /// @param _key The key for the record function setBytes32(bytes32 _key, bytes32 _value) onlyLatestRocketNetworkContract override external { bytes32Storage[_key] = _value; } /// @param _key The key for the record function deleteAddress(bytes32 _key) onlyLatestRocketNetworkContract override external { delete addressStorage[_key]; } /// @param _key The key for the record function deleteUint(bytes32 _key) onlyLatestRocketNetworkContract override external { delete uintStorage[_key]; } /// @param _key The key for the record function deleteString(bytes32 _key) onlyLatestRocketNetworkContract override external { delete stringStorage[_key]; } /// @param _key The key for the record function deleteBytes(bytes32 _key) onlyLatestRocketNetworkContract override external { delete bytesStorage[_key]; } /// @param _key The key for the record function deleteBool(bytes32 _key) onlyLatestRocketNetworkContract override external { delete booleanStorage[_key]; } /// @param _key The key for the record function deleteInt(bytes32 _key) onlyLatestRocketNetworkContract override external { delete intStorage[_key]; } /// @param _key The key for the record function deleteBytes32(bytes32 _key) onlyLatestRocketNetworkContract override external { delete bytes32Storage[_key]; } /// @param _key The key for the record /// @param _amount An amount to add to the record's value function addUint(bytes32 _key, uint256 _amount) onlyLatestRocketNetworkContract override external { uintStorage[_key] = uintStorage[_key].add(_amount); } /// @param _key The key for the record /// @param _amount An amount to subtract from the record's value function subUint(bytes32 _key, uint256 _amount) onlyLatestRocketNetworkContract override external { uintStorage[_key] = uintStorage[_key].sub(_amount); } }
/** * . * / \ * |.'.| * |'.'| * ,'| |`. * |,-'-|-'-.| * __|_| | _ _ _____ _ * | ___ \| | | | | | ___ \ | | * | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | | * | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| | * | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | | * \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_| * +---------------------------------------------------+ * | DECENTRALISED STAKING PROTOCOL FOR ETHEREUM 2.0 | * +---------------------------------------------------+ * * Rocket Pool is a first-of-its-kind ETH2 Proof of Stake protocol, designed to be community owned, * decentralised, trustless and compatible with staking in Ethereum 2.0. * * For more information about Rocket Pool, visit https://rocketpool.net * * Authors: David Rugendyke, Jake Pospischil, Kane Wallmann, Darren Langley, Joe Clapis, Nick Doherty * */ pragma solidity >0.5.0 <0.9.0; // SPDX-License-Identifier: GPL-3.0-only interface RocketStorageInterface { // Deploy status function getDeployedStatus() external view returns (bool); // Guardian function getGuardian() external view returns(address); function setGuardian(address _newAddress) external; function confirmGuardian() external; // 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; // Arithmetic function addUint(bytes32 _key, uint256 _amount) external; function subUint(bytes32 _key, uint256 _amount) external; // Protected storage function getNodeWithdrawalAddress(address _nodeAddress) external view returns (address); function getNodePendingWithdrawalAddress(address _nodeAddress) external view returns (address); function setWithdrawalAddress(address _nodeAddress, address _newWithdrawalAddress, bool _confirm) external; function confirmWithdrawalAddress(address _nodeAddress) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } }
{ "optimizer": { "enabled": true, "runs": 15000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"GuardianChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"node","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawalAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NodeWithdrawalAddressSet","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addUint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"confirmWithdrawalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteBytes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteBytes32","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteInt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteString","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteUint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"r","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getBool","outputs":[{"internalType":"bool","name":"r","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getBytes32","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDeployedStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGuardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getInt","outputs":[{"internalType":"int256","name":"r","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"getNodePendingWithdrawalAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"getNodeWithdrawalAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getUint","outputs":[{"internalType":"uint256","name":"r","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"address","name":"_value","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setBytes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"name":"setBytes32","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setDeployedStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"int256","name":"_value","type":"int256"}],"name":"setInt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"string","name":"_value","type":"string"}],"name":"setString","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setUint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"},{"internalType":"address","name":"_newWithdrawalAddress","type":"address"},{"internalType":"bool","name":"_confirm","type":"bool"}],"name":"setWithdrawalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"subUint","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600a805460ff60a01b1916905534801561001d57600080fd5b50600980546001600160a01b03191633179055612c068061003f6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063a543ccea1161010f578063ca446dd9116100a2578063ebb9d8c911610071578063ebb9d8c914610702578063f6bb3cc414610725578063fd41251314610742578063febffd9914610775576101f0565b8063ca446dd91461066c578063dc97d962146106a5578063e2a4853a146106c2578063e2b202bf146106e5576101f0565b8063adb353dc116100de578063adb353dc146105dc578063bd02d0f5146105ff578063bd4391261461061c578063c031a1801461064f576101f0565b8063a543ccea1461053b578063a6ed563e14610580578063a75b87d2146105af578063abfdcced146105b7576101f0565b80634e91db08116101875780637ae1cfca116101565780637ae1cfca1461043c5780638a0dac4a146104595780638c1600951461048c578063986e791a146104a9576101f0565b80634e91db08146103525780635b49ff6214610375578063616b59f6146103a85780636e899550146103c5576101f0565b806321f8a721116101c357806321f8a721146102555780632c62ff2d1461029b5780632e28d084146102b85780633e49bed01461032f576101f0565b80630b9adc57146101f55780630e14a376146102145780631bed5241146102315780631e0ea61e1461024d575b600080fd5b6102126004803603602081101561020b57600080fd5b503561077d565b005b6102126004803603602081101561022a57600080fd5b5035610913565b610239610ace565b604080519115158252519081900360200190f35b610212610aef565b6102726004803603602081101561026b57600080fd5b5035610bd8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610212600480360360208110156102b157600080fd5b5035610c03565b610212600480360360408110156102ce57600080fd5b813591908101906040810160208201356401000000008111156102f057600080fd5b82018360208201111561030257600080fd5b8035906020019184600183028401116401000000008311171561032457600080fd5b509092509050610dbe565b6102126004803603604081101561034557600080fd5b5080359060200135610f62565b6102126004803603604081101561036857600080fd5b50803590602001356110f9565b6102726004803603602081101561038b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611290565b610212600480360360208110156103be57600080fd5b50356112ce565b610212600480360360408110156103db57600080fd5b813591908101906040810160208201356401000000008111156103fd57600080fd5b82018360208201111561040f57600080fd5b8035906020019184600183028401116401000000008311171561043157600080fd5b50909250905061146d565b6102396004803603602081101561045257600080fd5b503561160b565b6102126004803603602081101561046f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611620565b610212600480360360208110156104a257600080fd5b50356116d3565b6104c6600480360360208110156104bf57600080fd5b5035611869565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105005781810151838201526020016104e8565b50505050905090810190601f16801561052d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102126004803603606081101561055157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001351515611926565b61059d6004803603602081101561059657600080fd5b5035611a59565b60408051918252519081900360200190f35b610272611a6b565b610212600480360360408110156105cd57600080fd5b50803590602001351515611a87565b610212600480360360408110156105f257600080fd5b5080359060200135611c4a565b61059d6004803603602081101561061557600080fd5b5035611dfe565b6102126004803603602081101561063257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611e10565b6104c66004803603602081101561066557600080fd5b5035611eca565b6102126004803603604081101561068257600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16611f51565b61059d600480360360208110156106bb57600080fd5b5035612129565b610212600480360360408110156106d857600080fd5b508035906020013561213b565b610212600480360360208110156106fb57600080fd5b50356122d2565b6102126004803603604081101561071857600080fd5b5080359060200135612468565b6102126004803603602081101561073b57600080fd5b5035612606565b6102726004803603602081101561075857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166127a2565b6102126127cd565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561084557604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166108405760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610902565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806108c7575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6109025760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260066020526040812055565b600a5474010000000000000000000000000000000000000000900460ff161515600114156109db57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166109d65760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610a98565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610a5d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610a985760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600a5474010000000000000000000000000000000000000000900460ff1690565b600a5473ffffffffffffffffffffffffffffffffffffffff163314610b455760405162461bcd60e51b8152600401808060200182810382526030815260200180612afb6030913960400191505060405180910390fd5b60098054600a80547fffffffffffffffffffffffff000000000000000000000000000000000000000080841673ffffffffffffffffffffffffffffffffffffffff838116919091179586905591169091556040805192821680845293909116602083015280517fa14fc14d8620a708a896fd11392a235647d99385500a295f0d7da2a258b2e9679281900390910190a150565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff165b919050565b600a5474010000000000000000000000000000000000000000900460ff16151560011415610ccb57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16610cc65760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610d88565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610d4d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610d885760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600a5474010000000000000000000000000000000000000000900460ff16151560011415610e8657604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16610e815760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610f43565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610f08575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610f435760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b6000838152600160205260409020610f5c9083836129c3565b50505050565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561102a57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166110255760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6110e7565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806110ac575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6110e75760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526003602052604090912055565b600a5474010000000000000000000000000000000000000000900460ff161515600114156111c157604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166111bc5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b61127e565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611243575060095473ffffffffffffffffffffffffffffffffffffffff1632145b61127e5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526006602052604090912055565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260076020526040812054909116806112c85782915050610bfe565b92915050565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561139657604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166113915760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611453565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611418575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6114535760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600081815260016020526040812061146a91612a6d565b50565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561153557604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166115305760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6115f2565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806115b7575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6115f25760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b6000838152602081905260409020610f5c9083836129c3565b60009081526005602052604090205460ff1690565b60095473ffffffffffffffffffffffffffffffffffffffff16331461168c576040805162461bcd60e51b815260206004820152601760248201527f4973206e6f7420677561726469616e206163636f756e74000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561179b57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166117965760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611858565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061181d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6118585760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260036020526040812055565b6000818152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561191a5780601f106118ef5761010080835404028352916020019161191a565b820191906000526020600020905b8154815290600101906020018083116118fd57829003601f168201915b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff821661198e576040805162461bcd60e51b815260206004820152601a60248201527f496e76616c6964207769746864726177616c2061646472657373000000000000604482015290519081900360640190fd5b600061199984611290565b905073ffffffffffffffffffffffffffffffffffffffff811633146119ef5760405162461bcd60e51b8152600401808060200182810382526038815260200180612ac36038913960400191505060405180910390fd5b8115611a04576119ff848461287a565b610f5c565b505073ffffffffffffffffffffffffffffffffffffffff918216600090815260086020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b60009081526006602052604090205490565b60095473ffffffffffffffffffffffffffffffffffffffff1690565b600a5474010000000000000000000000000000000000000000900460ff16151560011415611b4f57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16611b4a5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611c0c565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611bd1575060095473ffffffffffffffffffffffffffffffffffffffff1632145b611c0c5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526005602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600a5474010000000000000000000000000000000000000000900460ff16151560011415611d1257604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16611d0d5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611dcf565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611d94575060095473ffffffffffffffffffffffffffffffffffffffff1632145b611dcf5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600082815260026020526040902054611de89082612905565b6000928352600260205260409092209190915550565b60009081526002602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260086020526040902054163314611e755760405162461bcd60e51b815260040180806020018281038252603a815260200180612b73603a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561146a813361287a565b60008181526001602081815260409283902080548451600294821615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190911693909304601f8101839004830284018301909452838352606093909183018282801561191a5780601f106118ef5761010080835404028352916020019161191a565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561201957604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166120145760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6120d6565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061209b575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6120d65760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526004602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526003602052604090205490565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561220357604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166121fe5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6122c0565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680612285575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6122c05760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526002602052604090912055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561239a57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166123955760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b612457565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061241c575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6124575760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260026020526040812055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561253057604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1661252b5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6125ed565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806125b2575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6125ed5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600082815260026020526040902054611de89082612966565b600a5474010000000000000000000000000000000000000000900460ff161515600114156126ce57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166126c95760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b61278b565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680612750575060095473ffffffffffffffffffffffffffffffffffffffff1632145b61278b5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600081815260208190526040812061146a91612a6d565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600860205260409020541690565b60095473ffffffffffffffffffffffffffffffffffffffff163314612839576040805162461bcd60e51b815260206004820152601760248201527f4973206e6f7420677561726469616e206163636f756e74000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff82811660008181526007602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055815142815291517fe04362a1cecc83cc66f0c6704a58da505fba1d6170f40e4543d477e76fa9175c9281900390910190a35050565b60008282018381101561295f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000828211156129bd576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826129f95760008555612a5d565b82601f10612a30578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612a5d565b82800160010185558215612a5d579182015b82811115612a5d578235825591602001919060010190612a42565b50612a69929150612aad565b5090565b50805460018160011615610100020316600290046000825580601f10612a93575061146a565b601f01602090049060005260206000209081019061146a91905b5b80821115612a695760008155600101612aae56fe4f6e6c7920612074782066726f6d2061206e6f64652773207769746864726177616c20616464726573732063616e20757064617465206974436f6e6669726d6174696f6e206d75737420636f6d652066726f6d206e657720677561726469616e2061646472657373496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e747261637420617474656d7074696e672061636365737320647572696e67206465706c6f796d656e74436f6e6669726d6174696f6e206d75737420636f6d652066726f6d207468652070656e64696e67207769746864726177616c2061646472657373496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e7472616374a2646970667358221220a6aab4c70eb5aab6d329936cf2db4a95c26883cbe93588e033afb1fb38ae775f64736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063a543ccea1161010f578063ca446dd9116100a2578063ebb9d8c911610071578063ebb9d8c914610702578063f6bb3cc414610725578063fd41251314610742578063febffd9914610775576101f0565b8063ca446dd91461066c578063dc97d962146106a5578063e2a4853a146106c2578063e2b202bf146106e5576101f0565b8063adb353dc116100de578063adb353dc146105dc578063bd02d0f5146105ff578063bd4391261461061c578063c031a1801461064f576101f0565b8063a543ccea1461053b578063a6ed563e14610580578063a75b87d2146105af578063abfdcced146105b7576101f0565b80634e91db08116101875780637ae1cfca116101565780637ae1cfca1461043c5780638a0dac4a146104595780638c1600951461048c578063986e791a146104a9576101f0565b80634e91db08146103525780635b49ff6214610375578063616b59f6146103a85780636e899550146103c5576101f0565b806321f8a721116101c357806321f8a721146102555780632c62ff2d1461029b5780632e28d084146102b85780633e49bed01461032f576101f0565b80630b9adc57146101f55780630e14a376146102145780631bed5241146102315780631e0ea61e1461024d575b600080fd5b6102126004803603602081101561020b57600080fd5b503561077d565b005b6102126004803603602081101561022a57600080fd5b5035610913565b610239610ace565b604080519115158252519081900360200190f35b610212610aef565b6102726004803603602081101561026b57600080fd5b5035610bd8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610212600480360360208110156102b157600080fd5b5035610c03565b610212600480360360408110156102ce57600080fd5b813591908101906040810160208201356401000000008111156102f057600080fd5b82018360208201111561030257600080fd5b8035906020019184600183028401116401000000008311171561032457600080fd5b509092509050610dbe565b6102126004803603604081101561034557600080fd5b5080359060200135610f62565b6102126004803603604081101561036857600080fd5b50803590602001356110f9565b6102726004803603602081101561038b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611290565b610212600480360360208110156103be57600080fd5b50356112ce565b610212600480360360408110156103db57600080fd5b813591908101906040810160208201356401000000008111156103fd57600080fd5b82018360208201111561040f57600080fd5b8035906020019184600183028401116401000000008311171561043157600080fd5b50909250905061146d565b6102396004803603602081101561045257600080fd5b503561160b565b6102126004803603602081101561046f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611620565b610212600480360360208110156104a257600080fd5b50356116d3565b6104c6600480360360208110156104bf57600080fd5b5035611869565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105005781810151838201526020016104e8565b50505050905090810190601f16801561052d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102126004803603606081101561055157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001351515611926565b61059d6004803603602081101561059657600080fd5b5035611a59565b60408051918252519081900360200190f35b610272611a6b565b610212600480360360408110156105cd57600080fd5b50803590602001351515611a87565b610212600480360360408110156105f257600080fd5b5080359060200135611c4a565b61059d6004803603602081101561061557600080fd5b5035611dfe565b6102126004803603602081101561063257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611e10565b6104c66004803603602081101561066557600080fd5b5035611eca565b6102126004803603604081101561068257600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16611f51565b61059d600480360360208110156106bb57600080fd5b5035612129565b610212600480360360408110156106d857600080fd5b508035906020013561213b565b610212600480360360208110156106fb57600080fd5b50356122d2565b6102126004803603604081101561071857600080fd5b5080359060200135612468565b6102126004803603602081101561073b57600080fd5b5035612606565b6102726004803603602081101561075857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166127a2565b6102126127cd565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561084557604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166108405760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610902565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806108c7575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6109025760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260066020526040812055565b600a5474010000000000000000000000000000000000000000900460ff161515600114156109db57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166109d65760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610a98565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610a5d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610a985760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600a5474010000000000000000000000000000000000000000900460ff1690565b600a5473ffffffffffffffffffffffffffffffffffffffff163314610b455760405162461bcd60e51b8152600401808060200182810382526030815260200180612afb6030913960400191505060405180910390fd5b60098054600a80547fffffffffffffffffffffffff000000000000000000000000000000000000000080841673ffffffffffffffffffffffffffffffffffffffff838116919091179586905591169091556040805192821680845293909116602083015280517fa14fc14d8620a708a896fd11392a235647d99385500a295f0d7da2a258b2e9679281900390910190a150565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff165b919050565b600a5474010000000000000000000000000000000000000000900460ff16151560011415610ccb57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16610cc65760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610d88565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610d4d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610d885760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600a5474010000000000000000000000000000000000000000900460ff16151560011415610e8657604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16610e815760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610f43565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610f08575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610f435760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b6000838152600160205260409020610f5c9083836129c3565b50505050565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561102a57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166110255760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6110e7565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806110ac575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6110e75760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526003602052604090912055565b600a5474010000000000000000000000000000000000000000900460ff161515600114156111c157604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166111bc5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b61127e565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611243575060095473ffffffffffffffffffffffffffffffffffffffff1632145b61127e5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526006602052604090912055565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260076020526040812054909116806112c85782915050610bfe565b92915050565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561139657604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166113915760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611453565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611418575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6114535760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600081815260016020526040812061146a91612a6d565b50565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561153557604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166115305760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6115f2565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806115b7575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6115f25760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b6000838152602081905260409020610f5c9083836129c3565b60009081526005602052604090205460ff1690565b60095473ffffffffffffffffffffffffffffffffffffffff16331461168c576040805162461bcd60e51b815260206004820152601760248201527f4973206e6f7420677561726469616e206163636f756e74000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561179b57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166117965760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611858565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061181d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6118585760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260036020526040812055565b6000818152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561191a5780601f106118ef5761010080835404028352916020019161191a565b820191906000526020600020905b8154815290600101906020018083116118fd57829003601f168201915b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff821661198e576040805162461bcd60e51b815260206004820152601a60248201527f496e76616c6964207769746864726177616c2061646472657373000000000000604482015290519081900360640190fd5b600061199984611290565b905073ffffffffffffffffffffffffffffffffffffffff811633146119ef5760405162461bcd60e51b8152600401808060200182810382526038815260200180612ac36038913960400191505060405180910390fd5b8115611a04576119ff848461287a565b610f5c565b505073ffffffffffffffffffffffffffffffffffffffff918216600090815260086020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b60009081526006602052604090205490565b60095473ffffffffffffffffffffffffffffffffffffffff1690565b600a5474010000000000000000000000000000000000000000900460ff16151560011415611b4f57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16611b4a5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611c0c565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611bd1575060095473ffffffffffffffffffffffffffffffffffffffff1632145b611c0c5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526005602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600a5474010000000000000000000000000000000000000000900460ff16151560011415611d1257604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16611d0d5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611dcf565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611d94575060095473ffffffffffffffffffffffffffffffffffffffff1632145b611dcf5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600082815260026020526040902054611de89082612905565b6000928352600260205260409092209190915550565b60009081526002602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260086020526040902054163314611e755760405162461bcd60e51b815260040180806020018281038252603a815260200180612b73603a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561146a813361287a565b60008181526001602081815260409283902080548451600294821615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190911693909304601f8101839004830284018301909452838352606093909183018282801561191a5780601f106118ef5761010080835404028352916020019161191a565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561201957604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166120145760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6120d6565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061209b575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6120d65760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526004602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526003602052604090205490565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561220357604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166121fe5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6122c0565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680612285575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6122c05760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526002602052604090912055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561239a57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166123955760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b612457565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061241c575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6124575760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260026020526040812055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561253057604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1661252b5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6125ed565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806125b2575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6125ed5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600082815260026020526040902054611de89082612966565b600a5474010000000000000000000000000000000000000000900460ff161515600114156126ce57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166126c95760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b61278b565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680612750575060095473ffffffffffffffffffffffffffffffffffffffff1632145b61278b5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600081815260208190526040812061146a91612a6d565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600860205260409020541690565b60095473ffffffffffffffffffffffffffffffffffffffff163314612839576040805162461bcd60e51b815260206004820152601760248201527f4973206e6f7420677561726469616e206163636f756e74000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff82811660008181526007602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055815142815291517fe04362a1cecc83cc66f0c6704a58da505fba1d6170f40e4543d477e76fa9175c9281900390910190a35050565b60008282018381101561295f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000828211156129bd576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826129f95760008555612a5d565b82601f10612a30578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612a5d565b82800160010185558215612a5d579182015b82811115612a5d578235825591602001919060010190612a42565b50612a69929150612aad565b5090565b50805460018160011615610100020316600290046000825580601f10612a93575061146a565b601f01602090049060005260206000209081019061146a91905b5b80821115612a695760008155600101612aae56fe4f6e6c7920612074782066726f6d2061206e6f64652773207769746864726177616c20616464726573732063616e20757064617465206974436f6e6669726d6174696f6e206d75737420636f6d652066726f6d206e657720677561726469616e2061646472657373496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e747261637420617474656d7074696e672061636365737320647572696e67206465706c6f796d656e74436f6e6669726d6174696f6e206d75737420636f6d652066726f6d207468652070656e64696e67207769746864726177616c2061646472657373496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e7472616374a2646970667358221220a6aab4c70eb5aab6d329936cf2db4a95c26883cbe93588e033afb1fb38ae775f64736f6c63430007060033
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.