Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Blocklist
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-11-26
*/
pragma solidity 0.5.16;
/*
* @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 GSN 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.
*/
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
/**
* @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.
*
* 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.
*/
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isOwner() public view returns (bool) {
return _msgSender() == _owner;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
/**
* @title Blocklist
* @dev This contract manages a list of addresses and has a simple CRUD
*/
contract Blocklist is Ownable {
/**
* @dev The index of each user in the list
*/
mapping(address => uint256) private _userIndex;
/**
* @dev The list itself
*/
address[] private _userList;
/**
* @notice Event emitted when a user is added to the blocklist
*/
event addedToBlocklist(address indexed account, address by);
/**
* @notice Event emitted when a user is removed from the blocklist
*/
event removedFromBlocklist(address indexed account, address by);
/**
* @notice Modifier to facilitate checking the blocklist
*/
modifier onlyInBlocklist(address account) {
require(isBlocklisted(account), "Not in blocklist");
_;
}
/**
* @notice Modifier to facilitate checking the blocklist
*/
modifier onlyNotInBlocklist(address account) {
require(!isBlocklisted(account), "Already in blocklist");
_;
}
/**
* @dev Adds an address to the blocklist
* @param account The address to add
* @return true if the operation succeeded
* @dev Fails if the address was already blocklisted
*/
function _addToBlocklist(address account) private onlyNotInBlocklist(account) returns(bool) {
_userIndex[account] = _userList.length;
_userList.push(account);
emit addedToBlocklist(account, msg.sender);
return true;
}
/**
* @notice Adds many addresses to the blocklist at once
* @param accounts[] The list of addresses to add
* @dev Fails if at least one of the addresses was already blocklisted
*/
function batchAddToBlocklist(address[] calldata accounts) external onlyOwner {
for (uint256 i = 0; i < accounts.length; i++) {
require(_addToBlocklist(accounts[i]));
}
}
/**
* @notice Adds an address to the blocklist
* @param account The address to add
* @return true if the operation succeeded
* @dev Fails if the address was already blocklisted
*/
function addToBlocklist(address account) external onlyOwner returns(bool) {
return _addToBlocklist(account);
}
/**
* @dev Removes an address from the blocklist
* @param account The address to remove
* @return true if the operation succeeds
* @dev Fails if the address was not blocklisted
*/
function _removeFromBlocklist(address account) private onlyInBlocklist(account) returns(bool) {
uint rowToDelete = _userIndex[account];
address keyToMove = _userList[_userList.length-1];
_userList[rowToDelete] = keyToMove;
_userIndex[keyToMove] = rowToDelete;
_userList.length--;
emit removedFromBlocklist(account, msg.sender);
return true;
}
/**
* @notice Removes many addresses from the blocklist at once
* @param accounts[] The list of addresses to remove
* @dev Fails if at least one of the addresses was not blocklisted
*/
function batchRemoveFromBlocklist(address[] calldata accounts) external onlyOwner {
for (uint256 i = 0; i < accounts.length; i++) {
require(_removeFromBlocklist(accounts[i]));
}
}
/**
* @notice Removes an address from the blocklist
* @param account The address to remove
* @dev Fails if the address was not blocklisted
* @return true if the operation succeeded
*/
function removeFromBlocklist(address account) external onlyOwner returns(bool) {
return _removeFromBlocklist(account);
}
/**
* @notice Consults whether an address is blocklisted
* @param account The address to check
* @return bool True if the address is blocklisted
*/
function isBlocklisted(address account) public view returns(bool) {
if(_userList.length == 0) return false;
// We don't want to throw when querying for an out-of-bounds index.
// It can happen when the list has been shrunk after a deletion.
if(_userIndex[account] >= _userList.length) return false;
return _userList[_userIndex[account]] == account;
}
/**
* @notice Fetches the list of all blocklisted addresses
* @return array The list of currently blocklisted addresses
*/
function getFullList() public view returns(address[] memory) {
return _userList;
}
}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":"account","type":"address"},{"indexed":false,"internalType":"address","name":"by","type":"address"}],"name":"addedToBlocklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"by","type":"address"}],"name":"removedFromBlocklist","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToBlocklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"batchAddToBlocklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"batchRemoveFromBlocklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getFullList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlocklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromBlocklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405260006100176001600160e01b0361006616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006a565b3390565b6109fd806100796000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638f32d59b116100665780638f32d59b146101a1578063a2e6908c146101a9578063c83fae9114610201578063d4ed096314610227578063f2fde38b146102975761009e565b8063525d3b04146100a3578063592ca85014610115578063715018a61461014f5780638da5cb5b146101575780638e204c431461017b575b600080fd5b610113600480360360208110156100b957600080fd5b8101906020810181356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184602083028401116401000000008311171561010857600080fd5b5090925090506102bd565b005b61013b6004803603602081101561012b57600080fd5b50356001600160a01b0316610349565b604080519115158252519081900360200190f35b6101136103a3565b61015f610434565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603602081101561019157600080fd5b50356001600160a01b0316610444565b61013b6104c3565b6101b16104e7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101ed5781810151838201526020016101d5565b505050509050019250505060405180910390f35b61013b6004803603602081101561021757600080fd5b50356001600160a01b0316610549565b6101136004803603602081101561023d57600080fd5b81019060208101813564010000000081111561025857600080fd5b82018360208201111561026a57600080fd5b8035906020019184602083028401116401000000008311171561028c57600080fd5b50909250905061059b565b610113600480360360208110156102ad57600080fd5b50356001600160a01b0316610622565b6102c56104c3565b610304576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b60005b818110156103445761033383838381811061031e57fe5b905060200201356001600160a01b0316610675565b61033c57600080fd5b600101610307565b505050565b60006103536104c3565b610392576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b61039b82610675565b90505b919050565b6103ab6104c3565b6103ea576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03165b90565b6002546000906104565750600061039e565b6002546001600160a01b0383166000908152600160205260409020541061047f5750600061039e565b6001600160a01b0382166000818152600160205260409020546002805490919081106104a757fe5b6000918252602090912001546001600160a01b03161492915050565b600080546001600160a01b03166104d86107b3565b6001600160a01b031614905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561053f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610521575b5050505050905090565b60006105536104c3565b610592576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b61039b826107b7565b6105a36104c3565b6105e2576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b60005b81811015610344576106118383838181106105fc57fe5b905060200201356001600160a01b03166107b7565b61061a57600080fd5b6001016105e5565b61062a6104c3565b610669576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b610672816108a5565b50565b60008161068181610444565b6106c5576040805162461bcd60e51b815260206004820152601060248201526f139bdd081a5b88189b1bd8dadb1a5cdd60821b604482015290519081900360640190fd5b6001600160a01b0383166000908152600160205260408120546002805491929160001981019081106106f357fe5b600091825260209091200154600280546001600160a01b03909216925082918490811061071c57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526001909152604090208290556002805490610768906000198301610945565b506040805133815290516001600160a01b038716917ff413adfa62863fece1f285b26a902badd1b4a0ad4ed0f5381d53c459ec9b7146919081900360200190a2506001949350505050565b3390565b6000816107c381610444565b1561080c576040805162461bcd60e51b8152602060048201526014602482015273105b1c9958591e481a5b88189b1bd8dadb1a5cdd60621b604482015290519081900360640190fd5b600280546001600160a01b03851660008181526001602081815260408084208690559185018655949091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90920180546001600160a01b031916821790558151338152915190927f45b0f55051d62da0b2e9d2de981c34423d47a1507a51268dfa45a474459b3eee928290030190a250600192915050565b6001600160a01b0381166108ea5760405162461bcd60e51b81526004018080602001828103825260268152602001806109836026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b8154818355818111156103445760008381526020902061034491810190830161044191905b8082111561097e576000815560010161096a565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a7231582019d509ad781f8a222c98fb9abcd0929c32fa5b8a89791dd6ceac592aa6aa1db964736f6c63430005100032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80638f32d59b116100665780638f32d59b146101a1578063a2e6908c146101a9578063c83fae9114610201578063d4ed096314610227578063f2fde38b146102975761009e565b8063525d3b04146100a3578063592ca85014610115578063715018a61461014f5780638da5cb5b146101575780638e204c431461017b575b600080fd5b610113600480360360208110156100b957600080fd5b8101906020810181356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184602083028401116401000000008311171561010857600080fd5b5090925090506102bd565b005b61013b6004803603602081101561012b57600080fd5b50356001600160a01b0316610349565b604080519115158252519081900360200190f35b6101136103a3565b61015f610434565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603602081101561019157600080fd5b50356001600160a01b0316610444565b61013b6104c3565b6101b16104e7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101ed5781810151838201526020016101d5565b505050509050019250505060405180910390f35b61013b6004803603602081101561021757600080fd5b50356001600160a01b0316610549565b6101136004803603602081101561023d57600080fd5b81019060208101813564010000000081111561025857600080fd5b82018360208201111561026a57600080fd5b8035906020019184602083028401116401000000008311171561028c57600080fd5b50909250905061059b565b610113600480360360208110156102ad57600080fd5b50356001600160a01b0316610622565b6102c56104c3565b610304576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b60005b818110156103445761033383838381811061031e57fe5b905060200201356001600160a01b0316610675565b61033c57600080fd5b600101610307565b505050565b60006103536104c3565b610392576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b61039b82610675565b90505b919050565b6103ab6104c3565b6103ea576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03165b90565b6002546000906104565750600061039e565b6002546001600160a01b0383166000908152600160205260409020541061047f5750600061039e565b6001600160a01b0382166000818152600160205260409020546002805490919081106104a757fe5b6000918252602090912001546001600160a01b03161492915050565b600080546001600160a01b03166104d86107b3565b6001600160a01b031614905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561053f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610521575b5050505050905090565b60006105536104c3565b610592576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b61039b826107b7565b6105a36104c3565b6105e2576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b60005b81811015610344576106118383838181106105fc57fe5b905060200201356001600160a01b03166107b7565b61061a57600080fd5b6001016105e5565b61062a6104c3565b610669576040805162461bcd60e51b815260206004820181905260248201526000805160206109a9833981519152604482015290519081900360640190fd5b610672816108a5565b50565b60008161068181610444565b6106c5576040805162461bcd60e51b815260206004820152601060248201526f139bdd081a5b88189b1bd8dadb1a5cdd60821b604482015290519081900360640190fd5b6001600160a01b0383166000908152600160205260408120546002805491929160001981019081106106f357fe5b600091825260209091200154600280546001600160a01b03909216925082918490811061071c57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526001909152604090208290556002805490610768906000198301610945565b506040805133815290516001600160a01b038716917ff413adfa62863fece1f285b26a902badd1b4a0ad4ed0f5381d53c459ec9b7146919081900360200190a2506001949350505050565b3390565b6000816107c381610444565b1561080c576040805162461bcd60e51b8152602060048201526014602482015273105b1c9958591e481a5b88189b1bd8dadb1a5cdd60621b604482015290519081900360640190fd5b600280546001600160a01b03851660008181526001602081815260408084208690559185018655949091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90920180546001600160a01b031916821790558151338152915190927f45b0f55051d62da0b2e9d2de981c34423d47a1507a51268dfa45a474459b3eee928290030190a250600192915050565b6001600160a01b0381166108ea5760405162461bcd60e51b81526004018080602001828103825260268152602001806109836026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b8154818355818111156103445760008381526020902061034491810190830161044191905b8082111561097e576000815560010161096a565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a7231582019d509ad781f8a222c98fb9abcd0929c32fa5b8a89791dd6ceac592aa6aa1db964736f6c63430005100032
Deployed Bytecode Sourcemap
3676:4225:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3676:4225:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6569:199;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6569:199:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6569:199:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6569:199:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;6569:199:0;;-1:-1:-1;6569:199:0;-1:-1:-1;6569:199:0;:::i;:::-;;6981:128;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6981:128:0;-1:-1:-1;;;;;6981:128:0;;:::i;:::-;;;;;;;;;;;;;;;;;;2826:140;;;:::i;2015:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2015:79:0;;;;;;;;;;;;;;7282:382;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7282:382:0;-1:-1:-1;;;;;7282:382:0;;:::i;2381:94::-;;;:::i;7808:90::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7808:90:0;;;;;;;;;;;;;;;;;5643:118;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5643:118:0;-1:-1:-1;;;;;5643:118:0;;:::i;5245:189::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5245:189:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5245:189:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5245:189:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;5245:189:0;;-1:-1:-1;5245:189:0;-1:-1:-1;5245:189:0;:::i;3121:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3121:109:0;-1:-1:-1;;;;;3121:109:0;;:::i;6569:199::-;2227:9;:7;:9::i;:::-;2219:54;;;;;-1:-1:-1;;;2219:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2219:54:0;;;;;;;;;;;;;;;6663:9;6658:105;6678:19;;;6658:105;;;6721:33;6742:8;;6751:1;6742:11;;;;;;;;;;;;;-1:-1:-1;;;;;6742:11:0;6721:20;:33::i;:::-;6713:42;;;;;;6699:3;;6658:105;;;;6569:199;;:::o;6981:128::-;7054:4;2227:9;:7;:9::i;:::-;2219:54;;;;;-1:-1:-1;;;2219:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2219:54:0;;;;;;;;;;;;;;;7074:29;7095:7;7074:20;:29::i;:::-;7067:36;;2284:1;6981:128;;;:::o;2826:140::-;2227:9;:7;:9::i;:::-;2219:54;;;;;-1:-1:-1;;;2219:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2219:54:0;;;;;;;;;;;;;;;2925:1;2909:6;;2888:40;;-1:-1:-1;;;;;2909:6:0;;;;2888:40;;2925:1;;2888:40;2956:1;2939:19;;-1:-1:-1;;;;;;2939:19:0;;;2826:140::o;2015:79::-;2053:7;2080:6;-1:-1:-1;;;;;2080:6:0;2015:79;;:::o;7282:382::-;7358:9;:16;7342:4;;7355:38;;-1:-1:-1;7388:5:0;7381:12;;7355:38;7571:9;:16;-1:-1:-1;;;;;7548:19:0;;;;;;:10;:19;;;;;;:39;7545:56;;-1:-1:-1;7596:5:0;7589:12;;7545:56;-1:-1:-1;;;;;7617:41:0;;7627:19;;;;:10;:19;;;;;;7617:9;:30;;:9;;7627:19;7617:30;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7617:30:0;:41;;7282:382;-1:-1:-1;;7282:382:0:o;2381:94::-;2421:4;2461:6;;-1:-1:-1;;;;;2461:6:0;2445:12;:10;:12::i;:::-;-1:-1:-1;;;;;2445:22:0;;2438:29;;2381:94;:::o;7808:90::-;7851:16;7883:9;7876:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7876:16:0;;;;;;;;;;;;;;;;;;;;;;;7808:90;:::o;5643:118::-;5711:4;2227:9;:7;:9::i;:::-;2219:54;;;;;-1:-1:-1;;;2219:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2219:54:0;;;;;;;;;;;;;;;5731:24;5747:7;5731:15;:24::i;5245:189::-;2227:9;:7;:9::i;:::-;2219:54;;;;;-1:-1:-1;;;2219:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2219:54:0;;;;;;;;;;;;;;;5334:9;5329:100;5349:19;;;5329:100;;;5392:28;5408:8;;5417:1;5408:11;;;;;;;;;;;;;-1:-1:-1;;;;;5408:11:0;5392:15;:28::i;:::-;5384:37;;;;;;5370:3;;5329:100;;3121:109;2227:9;:7;:9::i;:::-;2219:54;;;;;-1:-1:-1;;;2219:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2219:54:0;;;;;;;;;;;;;;;3194:28;3213:8;3194:18;:28::i;:::-;3121:109;:::o;5970:389::-;6058:4;6041:7;4330:22;4344:7;4330:13;:22::i;:::-;4322:51;;;;;-1:-1:-1;;;4322:51:0;;;;;;;;;;;;-1:-1:-1;;;4322:51:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6090:19:0;;6071:16;6090:19;;;:10;:19;;;;;;6136:9;6146:16;;6090:19;;6071:16;-1:-1:-1;;6146:18:0;;;6136:29;;;;;;;;;;;;;;;;6172:9;:22;;-1:-1:-1;;;;;6136:29:0;;;;-1:-1:-1;6136:29:0;;6182:11;;6172:22;;;;;;;;;;;;;;;;;;:34;;-1:-1:-1;;;;;;6172:34:0;-1:-1:-1;;;;;6172:34:0;;;;;;6213:21;;;;;-1:-1:-1;6213:21:0;;;;;;:35;;;6256:9;:18;;;;;-1:-1:-1;;6256:18:0;;;:::i;:::-;-1:-1:-1;6288:41:0;;;6318:10;6288:41;;;;-1:-1:-1;;;;;6288:41:0;;;;;;;;;;;;;-1:-1:-1;6349:4:0;;5970:389;-1:-1:-1;;;;5970:389:0:o;806:98::-;886:10;806:98;:::o;4795:244::-;4881:4;4864:7;4528:22;4542:7;4528:13;:22::i;:::-;4527:23;4519:56;;;;;-1:-1:-1;;;4519:56:0;;;;;;;;;;;;-1:-1:-1;;;4519:56:0;;;;;;;;;;;;;;;4916:9;:16;;-1:-1:-1;;;;;4894:19:0;;;;;;:10;:19;;;;;;;;:38;;;23:18:-1;;;45:23;;4939::0;;;;;;;;;;-1:-1:-1;;;;;;4939:23:0;;;;;4976:37;;5002:10;4976:37;;;;4894:19;;4976:37;;;;;;;;-1:-1:-1;5029:4:0;;4795:244;-1:-1:-1;;4795:244:0:o;3336:229::-;-1:-1:-1;;;;;3410:22:0;;3402:73;;;;-1:-1:-1;;;3402:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3512:6;;;3491:38;;-1:-1:-1;;;;;3491:38:0;;;;3512:6;;;3491:38;;;3540:6;:17;;-1:-1:-1;;;;;;3540:17:0;-1:-1:-1;;;;;3540:17:0;;;;;;;;;;3336:229::o;3676:4225::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://19d509ad781f8a222c98fb9abcd0929c32fa5b8a89791dd6ceac592aa6aa1db9
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 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.