Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 5,223 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Registry | 21611005 | 47 hrs ago | IN | 0 ETH | 0.00032593 | ||||
Set To Expire | 21606935 | 2 days ago | IN | 0 ETH | 0.00006135 | ||||
Set Registry | 21589266 | 5 days ago | IN | 0 ETH | 0.00211532 | ||||
Set Registry | 21574129 | 7 days ago | IN | 0 ETH | 0.00045907 | ||||
Set Registry | 21565381 | 8 days ago | IN | 0 ETH | 0.00142269 | ||||
Set Registry | 21557106 | 9 days ago | IN | 0 ETH | 0.00085395 | ||||
Set Registry | 21543658 | 11 days ago | IN | 0 ETH | 0.00078954 | ||||
Set To Expire | 21523448 | 14 days ago | IN | 0 ETH | 0.00068866 | ||||
Set Registry | 21522632 | 14 days ago | IN | 0 ETH | 0.00112964 | ||||
Set Registry | 21518713 | 14 days ago | IN | 0 ETH | 0.00088377 | ||||
Set To Expire | 21513749 | 15 days ago | IN | 0 ETH | 0.0000831 | ||||
Set Registry | 21509764 | 16 days ago | IN | 0 ETH | 0.00082435 | ||||
Set Registry | 21507418 | 16 days ago | IN | 0 ETH | 0.00049451 | ||||
Set Registry | 21504755 | 16 days ago | IN | 0 ETH | 0.00053212 | ||||
Set Registry | 21500468 | 17 days ago | IN | 0 ETH | 0.0005667 | ||||
Set Registry | 21495606 | 18 days ago | IN | 0 ETH | 0.00122923 | ||||
Set Registry | 21492858 | 18 days ago | IN | 0 ETH | 0.00114973 | ||||
Set To Expire | 21476225 | 20 days ago | IN | 0 ETH | 0.00013767 | ||||
Set To Expire | 21472237 | 21 days ago | IN | 0 ETH | 0.00018249 | ||||
Set Registry | 21464271 | 22 days ago | IN | 0 ETH | 0.00027595 | ||||
Set Registry | 21461399 | 22 days ago | IN | 0 ETH | 0.00073939 | ||||
Set Registry | 21437852 | 26 days ago | IN | 0 ETH | 0.00279269 | ||||
Set Registry | 21433995 | 26 days ago | IN | 0 ETH | 0.00155465 | ||||
Set Registry | 21428973 | 27 days ago | IN | 0 ETH | 0.0024901 | ||||
Set Registry | 21427660 | 27 days ago | IN | 0 ETH | 0.0004184 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AddressRegistry
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // Votium Address Registry pragma solidity ^0.8.0; import "./Ownable.sol"; contract AddressRegistry is Ownable { struct Registry { uint256 start; // when first registering, there is a delay until the next vlCVX voting epoch starts address to; // forward rewards to alternate address OR 0x0 address for OPT OUT of rewards uint256 expiration; // when ending an active registration, expiration is set to the next vlCVX voting epoch // an active registration cannot be changed until after it is expired (one vote round delay when changing active registration) } mapping(address => Registry) public registry; mapping(address => bool) public inOptOutHistory; mapping(address => bool) public inForwardHistory; address[] public optOutHistory; address[] public forwardHistory; // address changes do not take effect until the next vote starts uint256 public constant eDuration = 86400 * 14; // Set forwarding address or OPT OUT of rewards by setting to 0x0 address // Registration is active until setToExpire() is called, and then remains active until the next reward period function setRegistry(address _to) public { uint256 current = currentEpoch(); require(registry[msg.sender].start == 0 || registry[msg.sender].expiration <= current,"Registration is still active"); registry[msg.sender].start = current+eDuration; registry[msg.sender].to = _to; registry[msg.sender].expiration = 0xfffffffff; if(_to == address(0)) { // prevent duplicate entry in optOutHistory array if(!inOptOutHistory[msg.sender]) { optOutHistory.push(msg.sender); inOptOutHistory[msg.sender] = true; } } else if(!inForwardHistory[msg.sender]) { forwardHistory.push(msg.sender); inForwardHistory[msg.sender] = true; } emit setReg(msg.sender, _to, registry[msg.sender].start); } // Sets a registration to expire on the following epoch (cannot change registration during an epoch) function setToExpire() public { uint256 next = nextEpoch(); require(registry[msg.sender].start > 0 && registry[msg.sender].expiration > next,"Not registered or expiration already pending"); // if not started yet, nullify instead of setting expiration if(next == registry[msg.sender].start) { registry[msg.sender].start = 0; registry[msg.sender].to = address(0); } else { registry[msg.sender].expiration = next; } emit expReg(msg.sender, next); } // supply an array of addresses, returns their destination (same address for no change, 0x0 for opt-out, different address for forwarding) function batchAddressCheck(address[] memory accounts) external view returns (address[] memory) { uint256 current = currentEpoch(); for(uint256 i=0; i<accounts.length; i++) { // if registration active return "to", otherwise return checked address (no forwarding) if(registry[accounts[i]].start <= current && registry[accounts[i]].start != 0 && registry[accounts[i]].expiration > current) { accounts[i] = registry[accounts[i]].to; } } return accounts; } // length of optOutHistory - needed for retrieving paginated results from optOutPage() function optOutLength() public view returns (uint256) { return optOutHistory.length; } // returns list of actively opted-out addresses using pagination function optOutPage(uint256 size, uint256 page) public view returns (address[] memory) { page = size*page; uint256 current = currentEpoch(); uint256 n = 0; for(uint256 i=page; i<optOutHistory.length; i++) { if(registry[optOutHistory[i]].start <= current && registry[optOutHistory[i]].expiration > current && registry[optOutHistory[i]].to == address(0)) { n++; if(n == size) { break; } } } address[] memory optOuts = new address[](n); n = 0; for(uint256 i=page; i<optOutHistory.length; i++) { if(registry[optOutHistory[i]].start <= current && registry[optOutHistory[i]].expiration > current && registry[optOutHistory[i]].to == address(0)) { optOuts[n] = optOutHistory[i]; n++; if(n == size) { break; } } } return optOuts; } // length of forwardHistory - needed for retrieving paginated results from forwardPage() function forwardLength() public view returns (uint256) { return forwardHistory.length; } // returns list of actively opted-out addresses using pagination function forwardPage(uint256 size, uint256 page) public view returns (address[] memory) { page = size*page; uint256 current = currentEpoch(); uint256 n = 0; for(uint256 i=page; i<forwardHistory.length; i++) { if(registry[forwardHistory[i]].start <= current && registry[forwardHistory[i]].expiration > current && registry[forwardHistory[i]].to != address(0)) { n++; if(n == size) { break; } } } address[] memory forwards = new address[](n*2); n = 0; for(uint256 i=page; i<forwardHistory.length; i++) { if(registry[forwardHistory[i]].start <= current && registry[forwardHistory[i]].expiration > current && registry[forwardHistory[i]].to != address(0)) { forwards[n] = forwardHistory[i]; forwards[n+1] = registry[forwardHistory[i]].to; n+=2; if(n == size*2) { break; } } } return forwards; } // returns start of current Epoch function currentEpoch() public view returns (uint256) { return block.timestamp/eDuration*eDuration; } // returns start of next Epoch function nextEpoch() public view returns (uint256) { return block.timestamp/eDuration*eDuration+eDuration; } // only used for rescuing mistakenly sent funds or other unexpected needs function execute(address _to, uint256 _value, bytes calldata _data) external onlyOwner returns (bool, bytes memory) { (bool success, bytes memory result) = _to.call{value:_value}(_data); return (success, result); } // multi-sig functions for edge cases function forceRegistry(address _from, address _to) public onlyOwner { uint256 current = currentEpoch(); require(registry[_from].start == 0 || registry[_from].expiration < current,"Registration is still active"); registry[_from].start = current+eDuration; registry[_from].to = _to; registry[_from].expiration = 0xfffffffff; if(_to == address(0)) { // prevent duplicate entry in optOutHistory array if(!inOptOutHistory[_from]) { optOutHistory.push(_from); inOptOutHistory[_from] = true; } } else if(!inForwardHistory[_from]) { forwardHistory.push(_from); inForwardHistory[_from] = true; } emit setReg(_from, _to, registry[_from].start); } function forceToExpire(address _from) public onlyOwner { uint256 next = nextEpoch(); require(registry[_from].start > 0 && registry[_from].expiration > next,"Not registered or expiration already pending"); // if not started yet, nullify instead of setting expiration if(next == registry[_from].start) { registry[_from].start = 0; registry[_from].to = address(0); } else { registry[_from].expiration = next; } emit expReg(_from, next); } event setReg(address indexed _from, address indexed _to, uint256 indexed _start); event expReg(address indexed _from, uint256 indexed _end); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner = 0xe39b8617D571CEe5e75e1EC6B2bb40DdC8CF6Fa3; // Votium multi-sig address event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "london", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"uint256","name":"_end","type":"uint256"}],"name":"expReg","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_start","type":"uint256"}],"name":"setReg","type":"event"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"batchAddressCheck","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"forceRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"}],"name":"forceToExpire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"forwardHistory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forwardLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"page","type":"uint256"}],"name":"forwardPage","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inForwardHistory","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inOptOutHistory","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"optOutHistory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"optOutLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"page","type":"uint256"}],"name":"optOutPage","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"registry","outputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setToExpire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600080546001600160a01b03191673e39b8617d571cee5e75e1ec6b2bb40ddc8cf6fa317905534801561003657600080fd5b5061183c806100466000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a91ee0dc116100ad578063bec5cd7d11610071578063bec5cd7d146102d3578063da6491f9146102e6578063f2fde38b146102f9578063fdab2c9e1461030c578063ffdb68071461031657600080fd5b8063a91ee0dc1461026c578063aea0e78b1461027f578063b16d58ff14610287578063b61d27f6146102aa578063be3c0457146102cb57600080fd5b8063712e51a8116100f4578063712e51a81461021657806376671808146102365780638da5cb5b1461023e57806396d0fdda1461024f578063a7e4e5541461025957600080fd5b8063038defd71461013157806306972dcf1461019357806336277c70146101a5578063472a3279146101d05780636ce17bac146101e3575b600080fd5b61016b61013f366004611430565b60016020819052600091825260409091208054918101546002909101546001600160a01b039091169083565b604080519384526001600160a01b039092166020840152908201526060015b60405180910390f35b6004545b60405190815260200161018a565b6101b86101b33660046115d8565b610329565b6040516001600160a01b03909116815260200161018a565b6101b86101de3660046115d8565b610353565b6102066101f1366004611430565b60036020526000908152604090205460ff1681565b604051901515815260200161018a565b61022961022436600461150c565b610363565b60405161018a9190611623565b610197610503565b6000546001600160a01b03166101b8565b610257610522565b005b6102296102673660046115f1565b610608565b61025761027a366004611430565b6109ae565b610197610bbb565b610206610295366004611430565b60026020526000908152604090205460ff1681565b6102bd6102b8366004611485565b610be0565b60405161018a929190611670565b600554610197565b6102576102e1366004611430565b610c7e565b6102576102f4366004611452565b610dbc565b610257610307366004611430565b61102b565b6101976212750081565b6102296103243660046115f1565b611115565b6004818154811061033957600080fd5b6000918252602090912001546001600160a01b0316905081565b6005818154811061033957600080fd5b6060600061036f610503565b905060005b83518110156104fb578160016000868481518110610394576103946117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154111580156104105750600160008583815181106103df576103df6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154600014155b801561045c5750816001600086848151811061042e5761042e6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020154115b156104e95760016000858381518110610477576104776117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010160009054906101000a90046001600160a01b03168482815181106104c8576104c86117da565b60200260200101906001600160a01b031690816001600160a01b0316815250505b806104f3816117a9565b915050610374565b509192915050565b6000621275006105138142611768565b61051d919061178a565b905090565b600061052c610bbb565b336000908152600160205260409020549091501580159061055e57503360009081526001602052604090206002015481105b6105835760405162461bcd60e51b815260040161057a906116cf565b60405180910390fd5b336000908152600160205260409020548114156105c25733600090815260016020819052604082209182550180546001600160a01b03191690556105d8565b3360009081526001602052604090206002018190555b604051819033907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a350565b6060610614828461178a565b91506000610620610503565b90506000835b60055481101561074357826001600060058481548110610648576106486117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906106b8575082600160006005848154811061068e5761068e6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610712575060006001600160a01b031660016000600584815481106106e1576106e16117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b156107315781610721816117a9565b9250508582141561073157610743565b8061073b816117a9565b915050610626565b50600061075182600261178a565b67ffffffffffffffff811115610769576107696117f0565b604051908082528060200260200182016040528015610792578160200160208202803683370190505b50600092509050845b6005548110156109a4578360016000600584815481106107bd576107bd6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061082d5750836001600060058481548110610803576108036117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610887575060006001600160a01b03166001600060058481548110610856576108566117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b15610992576005818154811061089f5761089f6117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106108cf576108cf6117da565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600060058381548110610906576109066117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600190810154909116908390610946908690611750565b81518110610956576109566117da565b6001600160a01b0390921660209283029190910190910152610979600284611750565b925061098687600261178a565b831415610992576109a4565b8061099c816117a9565b91505061079b565b5095945050505050565b60006109b8610503565b3360009081526001602052604090205490915015806109e95750336000908152600160205260409020600201548110155b610a355760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610a426212750082611750565b336000908152600160208190526040909120918255810180546001600160a01b0319166001600160a01b038516908117909155640fffffffff600290920191909155610aff573360009081526002602052604090205460ff16610afa576004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916339081179091556000908152600260205260409020805460ff191690911790555b610b71565b3360009081526003602052604090205460ff16610b71576005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b031916339081179091556000908152600360205260409020805460ff191690911790555b3360008181526001602052604080822054905190926001600160a01b0386169290917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b59190a45050565b60006212750080610bcc8142611768565b610bd6919061178a565b61051d9190611750565b600080546060906001600160a01b03163314610c0e5760405162461bcd60e51b815260040161057a9061171b565b600080876001600160a01b0316878787604051610c2c929190611613565b60006040518083038185875af1925050503d8060008114610c69576040519150601f19603f3d011682016040523d82523d6000602084013e610c6e565b606091505b5090999098509650505050505050565b6000546001600160a01b03163314610ca85760405162461bcd60e51b815260040161057a9061171b565b6000610cb2610bbb565b6001600160a01b03831660009081526001602052604090205490915015801590610cf657506001600160a01b03821660009081526001602052604090206002015481105b610d125760405162461bcd60e51b815260040161057a906116cf565b6001600160a01b038216600090815260016020526040902054811415610d63576001600160a01b038216600090815260016020819052604082209182550180546001600160a01b0319169055610d82565b6001600160a01b03821660009081526001602052604090206002018190555b60405181906001600160a01b038416907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a35050565b6000546001600160a01b03163314610de65760405162461bcd60e51b815260040161057a9061171b565b6000610df0610503565b6001600160a01b0384166000908152600160205260409020549091501580610e3257506001600160a01b03831660009081526001602052604090206002015481115b610e7e5760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610e8b6212750082611750565b6001600160a01b038481166000908152600160208190526040909120928355820180546001600160a01b0319169185169182179055640fffffffff600290920191909155610f5c576001600160a01b03831660009081526002602052604090205460ff16610f57576004805460018082019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0386169081179091556000908152600260205260409020805460ff191690911790555b610fe0565b6001600160a01b03831660009081526003602052604090205460ff16610fe0576005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0386169081179091556000908152600360205260409020805460ff191690911790555b6001600160a01b038084166000818152600160205260408082205490519093861692917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b591a4505050565b6000546001600160a01b031633146110555760405162461bcd60e51b815260040161057a9061171b565b6001600160a01b0381166110ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060611121828461178a565b9150600061112d610503565b90506000835b60045481101561124f57826001600060048481548110611155576111556117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906111c5575082600160006004848154811061119b5761119b6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b801561121e575060006001600160a01b031660016000600484815481106111ee576111ee6117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561123d578161122d816117a9565b9250508582141561123d5761124f565b80611247816117a9565b915050611133565b5060008167ffffffffffffffff81111561126b5761126b6117f0565b604051908082528060200260200182016040528015611294578160200160208202803683370190505b50600092509050845b6004548110156109a4578360016000600484815481106112bf576112bf6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061132f5750836001600060048481548110611305576113056117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015611388575060006001600160a01b03166001600060048481548110611358576113586117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561140257600481815481106113a0576113a06117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106113d0576113d06117da565b6001600160a01b0390921660209283029190910190910152826113f2816117a9565b93505086831415611402576109a4565b8061140c816117a9565b91505061129d565b80356001600160a01b038116811461142b57600080fd5b919050565b60006020828403121561144257600080fd5b61144b82611414565b9392505050565b6000806040838503121561146557600080fd5b61146e83611414565b915061147c60208401611414565b90509250929050565b6000806000806060858703121561149b57600080fd5b6114a485611414565b935060208501359250604085013567ffffffffffffffff808211156114c857600080fd5b818701915087601f8301126114dc57600080fd5b8135818111156114eb57600080fd5b8860208285010111156114fd57600080fd5b95989497505060200194505050565b6000602080838503121561151f57600080fd5b823567ffffffffffffffff8082111561153757600080fd5b818501915085601f83011261154b57600080fd5b81358181111561155d5761155d6117f0565b8060051b604051601f19603f83011681018181108582111715611582576115826117f0565b604052828152858101935084860182860187018a10156115a157600080fd5b600095505b838610156115cb576115b781611414565b8552600195909501949386019386016115a6565b5098975050505050505050565b6000602082840312156115ea57600080fd5b5035919050565b6000806040838503121561160457600080fd5b50508035926020909101359150565b8183823760009101908152919050565b6020808252825182820181905260009190848201906040850190845b818110156116645783516001600160a01b03168352928401929184019160010161163f565b50909695505050505050565b821515815260006020604081840152835180604085015260005b818110156116a65785810183015185820160600152820161168a565b818111156116b8576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252602c908201527f4e6f742072656769737465726564206f722065787069726174696f6e20616c7260408201526b656164792070656e64696e6760a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611763576117636117c4565b500190565b60008261178557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117a4576117a46117c4565b500290565b60006000198214156117bd576117bd6117c4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ad12feede3bc688e7d7c0e2d68d91f62073443b970fcd9a8c8fb0bd8f6c2652b64736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a91ee0dc116100ad578063bec5cd7d11610071578063bec5cd7d146102d3578063da6491f9146102e6578063f2fde38b146102f9578063fdab2c9e1461030c578063ffdb68071461031657600080fd5b8063a91ee0dc1461026c578063aea0e78b1461027f578063b16d58ff14610287578063b61d27f6146102aa578063be3c0457146102cb57600080fd5b8063712e51a8116100f4578063712e51a81461021657806376671808146102365780638da5cb5b1461023e57806396d0fdda1461024f578063a7e4e5541461025957600080fd5b8063038defd71461013157806306972dcf1461019357806336277c70146101a5578063472a3279146101d05780636ce17bac146101e3575b600080fd5b61016b61013f366004611430565b60016020819052600091825260409091208054918101546002909101546001600160a01b039091169083565b604080519384526001600160a01b039092166020840152908201526060015b60405180910390f35b6004545b60405190815260200161018a565b6101b86101b33660046115d8565b610329565b6040516001600160a01b03909116815260200161018a565b6101b86101de3660046115d8565b610353565b6102066101f1366004611430565b60036020526000908152604090205460ff1681565b604051901515815260200161018a565b61022961022436600461150c565b610363565b60405161018a9190611623565b610197610503565b6000546001600160a01b03166101b8565b610257610522565b005b6102296102673660046115f1565b610608565b61025761027a366004611430565b6109ae565b610197610bbb565b610206610295366004611430565b60026020526000908152604090205460ff1681565b6102bd6102b8366004611485565b610be0565b60405161018a929190611670565b600554610197565b6102576102e1366004611430565b610c7e565b6102576102f4366004611452565b610dbc565b610257610307366004611430565b61102b565b6101976212750081565b6102296103243660046115f1565b611115565b6004818154811061033957600080fd5b6000918252602090912001546001600160a01b0316905081565b6005818154811061033957600080fd5b6060600061036f610503565b905060005b83518110156104fb578160016000868481518110610394576103946117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154111580156104105750600160008583815181106103df576103df6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154600014155b801561045c5750816001600086848151811061042e5761042e6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020154115b156104e95760016000858381518110610477576104776117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010160009054906101000a90046001600160a01b03168482815181106104c8576104c86117da565b60200260200101906001600160a01b031690816001600160a01b0316815250505b806104f3816117a9565b915050610374565b509192915050565b6000621275006105138142611768565b61051d919061178a565b905090565b600061052c610bbb565b336000908152600160205260409020549091501580159061055e57503360009081526001602052604090206002015481105b6105835760405162461bcd60e51b815260040161057a906116cf565b60405180910390fd5b336000908152600160205260409020548114156105c25733600090815260016020819052604082209182550180546001600160a01b03191690556105d8565b3360009081526001602052604090206002018190555b604051819033907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a350565b6060610614828461178a565b91506000610620610503565b90506000835b60055481101561074357826001600060058481548110610648576106486117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906106b8575082600160006005848154811061068e5761068e6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610712575060006001600160a01b031660016000600584815481106106e1576106e16117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b156107315781610721816117a9565b9250508582141561073157610743565b8061073b816117a9565b915050610626565b50600061075182600261178a565b67ffffffffffffffff811115610769576107696117f0565b604051908082528060200260200182016040528015610792578160200160208202803683370190505b50600092509050845b6005548110156109a4578360016000600584815481106107bd576107bd6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061082d5750836001600060058481548110610803576108036117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610887575060006001600160a01b03166001600060058481548110610856576108566117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b15610992576005818154811061089f5761089f6117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106108cf576108cf6117da565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600060058381548110610906576109066117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600190810154909116908390610946908690611750565b81518110610956576109566117da565b6001600160a01b0390921660209283029190910190910152610979600284611750565b925061098687600261178a565b831415610992576109a4565b8061099c816117a9565b91505061079b565b5095945050505050565b60006109b8610503565b3360009081526001602052604090205490915015806109e95750336000908152600160205260409020600201548110155b610a355760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610a426212750082611750565b336000908152600160208190526040909120918255810180546001600160a01b0319166001600160a01b038516908117909155640fffffffff600290920191909155610aff573360009081526002602052604090205460ff16610afa576004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916339081179091556000908152600260205260409020805460ff191690911790555b610b71565b3360009081526003602052604090205460ff16610b71576005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b031916339081179091556000908152600360205260409020805460ff191690911790555b3360008181526001602052604080822054905190926001600160a01b0386169290917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b59190a45050565b60006212750080610bcc8142611768565b610bd6919061178a565b61051d9190611750565b600080546060906001600160a01b03163314610c0e5760405162461bcd60e51b815260040161057a9061171b565b600080876001600160a01b0316878787604051610c2c929190611613565b60006040518083038185875af1925050503d8060008114610c69576040519150601f19603f3d011682016040523d82523d6000602084013e610c6e565b606091505b5090999098509650505050505050565b6000546001600160a01b03163314610ca85760405162461bcd60e51b815260040161057a9061171b565b6000610cb2610bbb565b6001600160a01b03831660009081526001602052604090205490915015801590610cf657506001600160a01b03821660009081526001602052604090206002015481105b610d125760405162461bcd60e51b815260040161057a906116cf565b6001600160a01b038216600090815260016020526040902054811415610d63576001600160a01b038216600090815260016020819052604082209182550180546001600160a01b0319169055610d82565b6001600160a01b03821660009081526001602052604090206002018190555b60405181906001600160a01b038416907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a35050565b6000546001600160a01b03163314610de65760405162461bcd60e51b815260040161057a9061171b565b6000610df0610503565b6001600160a01b0384166000908152600160205260409020549091501580610e3257506001600160a01b03831660009081526001602052604090206002015481115b610e7e5760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610e8b6212750082611750565b6001600160a01b038481166000908152600160208190526040909120928355820180546001600160a01b0319169185169182179055640fffffffff600290920191909155610f5c576001600160a01b03831660009081526002602052604090205460ff16610f57576004805460018082019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0386169081179091556000908152600260205260409020805460ff191690911790555b610fe0565b6001600160a01b03831660009081526003602052604090205460ff16610fe0576005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0386169081179091556000908152600360205260409020805460ff191690911790555b6001600160a01b038084166000818152600160205260408082205490519093861692917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b591a4505050565b6000546001600160a01b031633146110555760405162461bcd60e51b815260040161057a9061171b565b6001600160a01b0381166110ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060611121828461178a565b9150600061112d610503565b90506000835b60045481101561124f57826001600060048481548110611155576111556117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906111c5575082600160006004848154811061119b5761119b6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b801561121e575060006001600160a01b031660016000600484815481106111ee576111ee6117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561123d578161122d816117a9565b9250508582141561123d5761124f565b80611247816117a9565b915050611133565b5060008167ffffffffffffffff81111561126b5761126b6117f0565b604051908082528060200260200182016040528015611294578160200160208202803683370190505b50600092509050845b6004548110156109a4578360016000600484815481106112bf576112bf6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061132f5750836001600060048481548110611305576113056117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015611388575060006001600160a01b03166001600060048481548110611358576113586117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561140257600481815481106113a0576113a06117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106113d0576113d06117da565b6001600160a01b0390921660209283029190910190910152826113f2816117a9565b93505086831415611402576109a4565b8061140c816117a9565b91505061129d565b80356001600160a01b038116811461142b57600080fd5b919050565b60006020828403121561144257600080fd5b61144b82611414565b9392505050565b6000806040838503121561146557600080fd5b61146e83611414565b915061147c60208401611414565b90509250929050565b6000806000806060858703121561149b57600080fd5b6114a485611414565b935060208501359250604085013567ffffffffffffffff808211156114c857600080fd5b818701915087601f8301126114dc57600080fd5b8135818111156114eb57600080fd5b8860208285010111156114fd57600080fd5b95989497505060200194505050565b6000602080838503121561151f57600080fd5b823567ffffffffffffffff8082111561153757600080fd5b818501915085601f83011261154b57600080fd5b81358181111561155d5761155d6117f0565b8060051b604051601f19603f83011681018181108582111715611582576115826117f0565b604052828152858101935084860182860187018a10156115a157600080fd5b600095505b838610156115cb576115b781611414565b8552600195909501949386019386016115a6565b5098975050505050505050565b6000602082840312156115ea57600080fd5b5035919050565b6000806040838503121561160457600080fd5b50508035926020909101359150565b8183823760009101908152919050565b6020808252825182820181905260009190848201906040850190845b818110156116645783516001600160a01b03168352928401929184019160010161163f565b50909695505050505050565b821515815260006020604081840152835180604085015260005b818110156116a65785810183015185820160600152820161168a565b818111156116b8576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252602c908201527f4e6f742072656769737465726564206f722065787069726174696f6e20616c7260408201526b656164792070656e64696e6760a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611763576117636117c4565b500190565b60008261178557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117a4576117a46117c4565b500290565b60006000198214156117bd576117bd6117c4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ad12feede3bc688e7d7c0e2d68d91f62073443b970fcd9a8c8fb0bd8f6c2652b64736f6c63430008070033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.