Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 11 from a total of 11 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 16540915 | 709 days ago | IN | 0 ETH | 0.00042727 | ||||
Ban | 14256980 | 1054 days ago | IN | 0 ETH | 0.00531991 | ||||
Ban | 13969235 | 1099 days ago | IN | 0 ETH | 0.00662662 | ||||
Ban | 13969209 | 1099 days ago | IN | 0 ETH | 0.0063 | ||||
Ban | 13969021 | 1099 days ago | IN | 0 ETH | 0.00286908 | ||||
Transfer Ownersh... | 9253484 | 1828 days ago | IN | 0 ETH | 0.00065421 | ||||
Ban | 8285409 | 1987 days ago | IN | 0 ETH | 0.00013434 | ||||
Unban | 8285382 | 1987 days ago | IN | 0 ETH | 0.00004477 | ||||
Ban | 8285344 | 1987 days ago | IN | 0 ETH | 0.00013434 | ||||
Unban | 8285293 | 1987 days ago | IN | 0 ETH | 0.00004477 | ||||
Ban | 8285212 | 1987 days ago | IN | 0 ETH | 0.00013434 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21418394 | 26 days ago | 0 ETH | |||||
21418394 | 26 days ago | 0 ETH | |||||
21418370 | 26 days ago | 0 ETH | |||||
21418370 | 26 days ago | 0 ETH | |||||
21418350 | 26 days ago | 0 ETH | |||||
21417271 | 26 days ago | 0 ETH | |||||
21417271 | 26 days ago | 0 ETH | |||||
21417184 | 26 days ago | 0 ETH | |||||
21417184 | 26 days ago | 0 ETH | |||||
21415342 | 26 days ago | 0 ETH | |||||
21411012 | 27 days ago | 0 ETH | |||||
21410843 | 27 days ago | 0 ETH | |||||
21410638 | 27 days ago | 0 ETH | |||||
21410607 | 27 days ago | 0 ETH | |||||
21409857 | 27 days ago | 0 ETH | |||||
21409857 | 27 days ago | 0 ETH | |||||
21409700 | 27 days ago | 0 ETH | |||||
21409700 | 27 days ago | 0 ETH | |||||
21409649 | 27 days ago | 0 ETH | |||||
21409649 | 27 days ago | 0 ETH | |||||
21409613 | 27 days ago | 0 ETH | |||||
21409613 | 27 days ago | 0 ETH | |||||
21409601 | 27 days ago | 0 ETH | |||||
21409601 | 27 days ago | 0 ETH | |||||
21409556 | 27 days ago | 0 ETH |
Loading...
Loading
Contract Name:
BlacklistValidator
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-14 */ // File: openzeppelin-solidity/contracts/ownership/Ownable.sol pragma solidity ^0.4.24; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // File: openzeppelin-solidity/contracts/ownership/Claimable.sol pragma solidity ^0.4.24; /** * @title Claimable * @dev Extension for the Ownable contract, where the ownership needs to be claimed. * This allows the new owner to accept the transfer. */ contract Claimable is Ownable { address public pendingOwner; /** * @dev Modifier throws if called by any account other than the pendingOwner. */ modifier onlyPendingOwner() { require(msg.sender == pendingOwner); _; } /** * @dev Allows the current owner to set the pendingOwner address. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { pendingOwner = newOwner; } /** * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() public onlyPendingOwner { emit OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = address(0); } } // File: openzeppelin-solidity/contracts/ownership/HasNoEther.sol pragma solidity ^0.4.24; /** * @title Contracts that should not own Ether * @author Remco Bloemen <remco@2π.com> * @dev This tries to block incoming ether to prevent accidental loss of Ether. Should Ether end up * in the contract, it will allow the owner to reclaim this Ether. * @notice Ether can still be sent to this contract by: * calling functions labeled `payable` * `selfdestruct(contract_address)` * mining directly to the contract address */ contract HasNoEther is Ownable { /** * @dev Constructor that rejects incoming Ether * The `payable` flag is added so we can access `msg.value` without compiler warning. If we * leave out payable, then Solidity will allow inheriting contracts to implement a payable * constructor. By doing it this way we prevent a payable constructor from working. Alternatively * we could use assembly to access msg.value. */ constructor() public payable { require(msg.value == 0); } /** * @dev Disallows direct send by setting a default function without the `payable` flag. */ function() external { } /** * @dev Transfer all Ether held by the contract to the owner. */ function reclaimEther() external onlyOwner { owner.transfer(address(this).balance); } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol pragma solidity ^0.4.24; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * See https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol pragma solidity ^0.4.24; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address _owner, address _spender) public view returns (uint256); function transferFrom(address _from, address _to, uint256 _value) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); } // File: openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol pragma solidity ^0.4.24; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { function safeTransfer( ERC20Basic _token, address _to, uint256 _value ) internal { require(_token.transfer(_to, _value)); } function safeTransferFrom( ERC20 _token, address _from, address _to, uint256 _value ) internal { require(_token.transferFrom(_from, _to, _value)); } function safeApprove( ERC20 _token, address _spender, uint256 _value ) internal { require(_token.approve(_spender, _value)); } } // File: openzeppelin-solidity/contracts/ownership/CanReclaimToken.sol pragma solidity ^0.4.24; /** * @title Contracts that should be able to recover tokens * @author SylTi * @dev This allow a contract to recover any ERC20 token received in a contract by transferring the balance to the contract owner. * This will prevent any accidental loss of tokens. */ contract CanReclaimToken is Ownable { using SafeERC20 for ERC20Basic; /** * @dev Reclaim all ERC20Basic compatible tokens * @param _token ERC20Basic The address of the token contract */ function reclaimToken(ERC20Basic _token) external onlyOwner { uint256 balance = _token.balanceOf(this); _token.safeTransfer(owner, balance); } } // File: openzeppelin-solidity/contracts/ownership/HasNoTokens.sol pragma solidity ^0.4.24; /** * @title Contracts that should not own Tokens * @author Remco Bloemen <remco@2π.com> * @dev This blocks incoming ERC223 tokens to prevent accidental loss of tokens. * Should tokens (any ERC20Basic compatible) end up in the contract, it allows the * owner to reclaim the tokens. */ contract HasNoTokens is CanReclaimToken { /** * @dev Reject all ERC223 compatible tokens * @param _from address The address that is transferring the tokens * @param _value uint256 the amount of the specified token * @param _data Bytes The data passed from the caller. */ function tokenFallback( address _from, uint256 _value, bytes _data ) external pure { _from; _value; _data; revert(); } } // File: openzeppelin-solidity/contracts/ownership/HasNoContracts.sol pragma solidity ^0.4.24; /** * @title Contracts that should not own Contracts * @author Remco Bloemen <remco@2π.com> * @dev Should contracts (anything Ownable) end up being owned by this contract, it allows the owner * of this contract to reclaim ownership of the contracts. */ contract HasNoContracts is Ownable { /** * @dev Reclaim ownership of Ownable contracts * @param _contractAddr The address of the Ownable to be reclaimed. */ function reclaimContract(address _contractAddr) external onlyOwner { Ownable contractInst = Ownable(_contractAddr); contractInst.transferOwnership(owner); } } // File: openzeppelin-solidity/contracts/ownership/NoOwner.sol pragma solidity ^0.4.24; /** * @title Base contract for contracts that should not own things. * @author Remco Bloemen <remco@2π.com> * @dev Solves a class of errors where a contract accidentally becomes owner of Ether, Tokens or * Owned contracts. See respective base contracts for details. */ contract NoOwner is HasNoEther, HasNoTokens, HasNoContracts { } // File: contracts/IValidator.sol /** * Copyright 2019 Monerium ehf. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity 0.4.24; /** * @title IValidator * @dev Contracts implementing this interface validate token transfers. */ interface IValidator { /** * @dev Emitted when a validator makes a decision. * @param from Sender address. * @param to Recipient address. * @param amount Number of tokens. * @param valid True if transfer approved, false if rejected. */ event Decision(address indexed from, address indexed to, uint amount, bool valid); /** * @dev Validates token transfer. * If the sender is on the blacklist the transfer is denied. * @param from Sender address. * @param to Recipient address. * @param amount Number of tokens. */ function validate(address from, address to, uint amount) external returns (bool valid); } // File: contracts/BlacklistValidator.sol /** * Copyright 2019 Monerium ehf. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity 0.4.24; /** * @title BlacklistValidator * @dev Implements a validator which rejects transfers to blacklisted addresses. */ contract BlacklistValidator is IValidator, Claimable, CanReclaimToken, NoOwner { mapping (address => bool) public blacklist; /** * @dev Emitted when an address is added to the blacklist. * @param adversary Address added. */ event Ban(address indexed adversary); /** * @dev Emitted when an address is removed from the blacklist. * @param friend Address removed. */ event Unban(address indexed friend); /** * @dev Adds an address to the blacklist. * @param adversary Address to add. */ function ban(address adversary) external onlyOwner { blacklist[adversary] = true; emit Ban(adversary); } /** * @dev Removes an address from the blacklist. * @param friend Address to remove. */ function unban(address friend) external onlyOwner { blacklist[friend] = false; emit Unban(friend); } /** * @dev Validates token transfer. * Implements IValidator interface. */ function validate(address from, address to, uint amount) external returns (bool valid) { if (blacklist[from]) { valid = false; } else { valid = true; } emit Decision(from, to, amount, valid); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contractAddr","type":"address"}],"name":"reclaimContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"adversary","type":"address"}],"name":"ban","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reclaimEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"validate","outputs":[{"name":"valid","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"friend","type":"address"}],"name":"unban","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"blacklist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"adversary","type":"address"}],"name":"Ban","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"friend","type":"address"}],"name":"Unban","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"valid","type":"bool"}],"name":"Decision","type":"event"}]
Contract Creation Code
6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060003414151561005357600080fd5b610f8a806100626000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806317ffc320146100d45780632aed7f3f146101175780634e71e0c81461015a578063715018a6146101715780638da5cb5b1461018857806397c3ccd8146101df5780639f727c2714610222578063aa3ad4e414610239578063b9f14557146102be578063c0ee0b8a14610301578063e30c397814610366578063f2fde38b146103bd578063f9f92be414610400575b3480156100d157600080fd5b50005b3480156100e057600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061045b565b005b34801561012357600080fd5b50610158600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105e0565b005b34801561016657600080fd5b5061016f610718565b005b34801561017d57600080fd5b506101866108b7565b005b34801561019457600080fd5b5061019d6109b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101eb57600080fd5b50610220600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109de565b005b34801561022e57600080fd5b50610237610ad7565b005b34801561024557600080fd5b506102a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb3565b604051808215151515815260200191505060405180910390f35b3480156102ca57600080fd5b506102ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c8d565b005b34801561030d57600080fd5b50610364600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050610d86565b005b34801561037257600080fd5b5061037b610d8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c957600080fd5b506103fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610db1565b005b34801561040c57600080fd5b50610441600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e50565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104b857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561055357600080fd5b505af1158015610567573d6000803e3d6000fd5b505050506040513d602081101561057d57600080fd5b810190808051906020019092919050505090506105dc6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610e709092919063ffffffff16565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561063d57600080fd5b8190508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156106fc57600080fd5b505af1158015610710573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561077457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561091257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a3957600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9a4e757235705bd178419abc9fa645392c5c7dce5b09940a81ef76794b84bd6860405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b3257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610bb0573d6000803e3d6000fd5b50565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c105760009050610c15565b600190505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f7421973e31248bda00bf2f04b80b46b34fc9e23ab57848234aed6cc5d437b6a8848460405180838152602001821515151581526020019250505060405180910390a39392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ce857600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f866c4c4c778f85c380f911e6c43d125e57865fec38a5ccf53b62b74a8473ed1660405160405180910390a250565b600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0c57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60026020528060005260406000206000915054906101000a900460ff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610f1357600080fd5b505af1158015610f27573d6000803e3d6000fd5b505050506040513d6020811015610f3d57600080fd5b81019080805190602001909291905050501515610f5957600080fd5b5050505600a165627a7a7230582098a167201f50c2773efff68b1f05a60afdf1bbd93be33f9898a67aeedf95d2640029
Deployed Bytecode
0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806317ffc320146100d45780632aed7f3f146101175780634e71e0c81461015a578063715018a6146101715780638da5cb5b1461018857806397c3ccd8146101df5780639f727c2714610222578063aa3ad4e414610239578063b9f14557146102be578063c0ee0b8a14610301578063e30c397814610366578063f2fde38b146103bd578063f9f92be414610400575b3480156100d157600080fd5b50005b3480156100e057600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061045b565b005b34801561012357600080fd5b50610158600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105e0565b005b34801561016657600080fd5b5061016f610718565b005b34801561017d57600080fd5b506101866108b7565b005b34801561019457600080fd5b5061019d6109b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101eb57600080fd5b50610220600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109de565b005b34801561022e57600080fd5b50610237610ad7565b005b34801561024557600080fd5b506102a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb3565b604051808215151515815260200191505060405180910390f35b3480156102ca57600080fd5b506102ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c8d565b005b34801561030d57600080fd5b50610364600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050610d86565b005b34801561037257600080fd5b5061037b610d8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c957600080fd5b506103fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610db1565b005b34801561040c57600080fd5b50610441600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e50565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104b857600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561055357600080fd5b505af1158015610567573d6000803e3d6000fd5b505050506040513d602081101561057d57600080fd5b810190808051906020019092919050505090506105dc6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16610e709092919063ffffffff16565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561063d57600080fd5b8190508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156106fc57600080fd5b505af1158015610710573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561077457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561091257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a3957600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9a4e757235705bd178419abc9fa645392c5c7dce5b09940a81ef76794b84bd6860405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b3257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610bb0573d6000803e3d6000fd5b50565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c105760009050610c15565b600190505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f7421973e31248bda00bf2f04b80b46b34fc9e23ab57848234aed6cc5d437b6a8848460405180838152602001821515151581526020019250505060405180910390a39392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ce857600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f866c4c4c778f85c380f911e6c43d125e57865fec38a5ccf53b62b74a8473ed1660405160405180910390a250565b600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0c57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60026020528060005260406000206000915054906101000a900460ff1681565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610f1357600080fd5b505af1158015610f27573d6000803e3d6000fd5b505050506040513d6020811015610f3d57600080fd5b81019080805190602001909291905050501515610f5957600080fd5b5050505600a165627a7a7230582098a167201f50c2773efff68b1f05a60afdf1bbd93be33f9898a67aeedf95d2640029
Deployed Bytecode Sourcemap
11348:1344:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11348:1344:0;;6844:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6844:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8422:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8422:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2669:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2669:168:0;;;;;;1108:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1108:114:0;;;;;;313:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;313:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11929:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11929:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4110:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4110:93:0;;;;;;12404:283;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12404:283:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12175:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12175:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7698:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7698:172:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2120:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2120:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2482:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2482:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11436:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11436:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6844:155;6911:15;816:5;;;;;;;;;;;802:19;;:10;:19;;;794:28;;;;;;;;6929:6;:16;;;6946:4;6929:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6929:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6929:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6929:22:0;;;;;;;;;;;;;;;;6911:40;;6958:35;6978:5;;;;;;;;;;;6985:7;6958:6;:19;;;;:35;;;;;:::i;:::-;6844:155;;:::o;8422:169::-;8496:20;816:5;;;;;;;;;;;802:19;;:10;:19;;;794:28;;;;;;;;8527:13;8496:45;;8548:12;:30;;;8579:5;;;;;;;;;;;8548:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8548:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8548:37:0;;;;8422:169;;:::o;2669:168::-;2306:12;;;;;;;;;;;2292:26;;:10;:26;;;2284:35;;;;;;;;2759:12;;;;;;;;;;;2731:41;;2752:5;;;;;;;;;;;2731:41;;;;;;;;;;;;2787:12;;;;;;;;;;;2779:5;;:20;;;;;;;;;;;;;;;;;;2829:1;2806:12;;:25;;;;;;;;;;;;;;;;;;2669:168::o;1108:114::-;816:5;;;;;;;;;;;802:19;;:10;:19;;;794:28;;;;;;;;1185:5;;;;;;;;;;;1166:25;;;;;;;;;;;;1214:1;1198:5;;:18;;;;;;;;;;;;;;;;;;1108:114::o;313:20::-;;;;;;;;;;;;;:::o;11929:127::-;816:5;;;;;;;;;;;802:19;;:10;:19;;;794:28;;;;;;;;12014:4;11991:9;:20;12001:9;11991:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12038:9;12034:14;;;;;;;;;;;;11929:127;:::o;4110:93::-;816:5;;;;;;;;;;;802:19;;:10;:19;;;794:28;;;;;;;;4160:5;;;;;;;;;;;:14;;:37;4183:4;4175:21;;;4160:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4160:37:0;4110:93::o;12404:283::-;12497:10;12529:9;:15;12539:4;12529:15;;;;;;;;;;;;;;;;;;;;;;;;;12525:106;;;12569:5;12561:13;;12525:106;;;12615:4;12607:12;;12525:106;12661:2;12646:33;;12655:4;12646:33;;;12665:6;12673:5;12646:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;12404:283;;;;;:::o;12175:123::-;816:5;;;;;;;;;;;802:19;;:10;:19;;;794:28;;;;;;;;12256:5;12236:9;:17;12246:6;12236:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;12283:6;12277:13;;;;;;;;;;;;12175:123;:::o;7698:172::-;7856:8;;;2120:27;;;;;;;;;;;;;:::o;2482:98::-;816:5;;;;;;;;;;;802:19;;:10;:19;;;794:28;;;;;;;;2566:8;2551:12;;:23;;;;;;;;;;;;;;;;;;2482:98;:::o;11436:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5734:157::-;5856:6;:15;;;5872:3;5877:6;5856:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5856:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5856:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5856:28:0;;;;;;;;;;;;;;;;5848:37;;;;;;;;5734:157;;;:::o
Swarm Source
bzzr://98a167201f50c2773efff68b1f05a60afdf1bbd93be33f9898a67aeedf95d264
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.