Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 6,060 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Set Registry | 24395359 | 12 hrs ago | IN | 0 ETH | 0.00005677 | ||||
| Set To Expire | 24393766 | 18 hrs ago | IN | 0 ETH | 0.00011384 | ||||
| Set Registry | 24390869 | 27 hrs ago | IN | 0 ETH | 0.00031057 | ||||
| Set Registry | 24388969 | 34 hrs ago | IN | 0 ETH | 0.00002686 | ||||
| Set Registry | 24385808 | 44 hrs ago | IN | 0 ETH | 0.00006975 | ||||
| Set Registry | 24382573 | 2 days ago | IN | 0 ETH | 0.0000218 | ||||
| Set To Expire | 24382202 | 2 days ago | IN | 0 ETH | 0.00006572 | ||||
| Set Registry | 24381088 | 2 days ago | IN | 0 ETH | 0.00000405 | ||||
| Set Registry | 24378600 | 2 days ago | IN | 0 ETH | 0.00036627 | ||||
| Set Registry | 24375930 | 3 days ago | IN | 0 ETH | 0.00001645 | ||||
| Set Registry | 24375381 | 3 days ago | IN | 0 ETH | 0.00005131 | ||||
| Set Registry | 24373693 | 3 days ago | IN | 0 ETH | 0.00029512 | ||||
| Set Registry | 24370954 | 3 days ago | IN | 0 ETH | 0.00030287 | ||||
| Set Registry | 24369612 | 4 days ago | IN | 0 ETH | 0.00037427 | ||||
| Set Registry | 24368715 | 4 days ago | IN | 0 ETH | 0.00004262 | ||||
| Set Registry | 24368630 | 4 days ago | IN | 0 ETH | 0.0000447 | ||||
| Set To Expire | 24367208 | 4 days ago | IN | 0 ETH | 0.00000368 | ||||
| Set To Expire | 24364309 | 4 days ago | IN | 0 ETH | 0.0000042 | ||||
| Set To Expire | 24364308 | 4 days ago | IN | 0 ETH | 0.00000525 | ||||
| Set Registry | 24364091 | 4 days ago | IN | 0 ETH | 0.00020788 | ||||
| Set To Expire | 24364086 | 4 days ago | IN | 0 ETH | 0.00009455 | ||||
| Set Registry | 24364046 | 4 days ago | IN | 0 ETH | 0.0004068 | ||||
| Set Registry | 24364016 | 4 days ago | IN | 0 ETH | 0.00004156 | ||||
| Set Registry | 24363855 | 4 days ago | IN | 0 ETH | 0.00033203 | ||||
| Set Registry | 24363335 | 5 days ago | IN | 0 ETH | 0.00015876 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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
Contract ABI
API[{"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
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.