Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
1 address found via BlockscanLatest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815219 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Update Proxy Pai... | 11815216 | 771 days 11 hrs ago | IN | 0 ETH | 0.00637872 | ||||
Transfer Ownersh... | 11230324 | 861 days 7 hrs ago | IN | 0 ETH | 0.00399425 | ||||
0x60806040 | 11230323 | 861 days 7 hrs ago | IN | Contract Creation | 0 ETH | 0.09356997 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xa12DDb...24a2A596
Contract Name:
WSController
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-09 */ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.6.12; interface IWSProxy { function initialize(address _implementation, address _admin, bytes calldata _data) external; function upgradeTo(address _proxy) external; function upgradeToAndCall(address _proxy, bytes calldata data) external payable; function changeAdmin(address newAdmin) external; function admin() external returns (address); function implementation() external returns (address); } interface IWSController { function getLogicForPair() external view returns(address); function getCurrentAdmin() external view returns(address); function updatePairLogic(address _logic) external; function updateCurrentAdmin(address _newAdmin) external; function updateProxyPair(address _proxy) external; function setAdminForProxy(address _proxy) external; } interface IWSImplementation { function getImplementationType() external pure returns(uint256); } /** * @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. */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } /** * @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(_owner == msg.sender, "Ownable: caller is not the 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 virtual 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 virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract WSController is Ownable, IWSController { address public pairLogic; address public currentAdmin; /* * @dev Type variable: * 2 - Pair */ uint256 constant public PAIR_TYPE = 2; event NewPairLogic(address indexed logic); event NewAdmin(address indexed adminAddress); event UpdateProxy(address indexed proxyAddress, address newLogic); event ChangeAdmin(address indexed proxyAddress, address newAdmin); constructor(address _pairLogic) public { require(_pairLogic != address(0), "WSController: Wrong pair logic address"); currentAdmin = address(this); pairLogic = _pairLogic; } function updatePairLogic(address _logic) external override onlyOwner { pairLogic = _logic; emit NewPairLogic(_logic); } function updateCurrentAdmin(address _newAdmin) external override onlyOwner { currentAdmin = _newAdmin; emit NewAdmin(_newAdmin); } function updateProxyPair(address _proxy) external override { require(IWSImplementation(IWSProxy(_proxy).implementation()).getImplementationType() == PAIR_TYPE, "WSController: Wrong pair proxy for update."); IWSProxy(_proxy).upgradeTo(pairLogic); emit UpdateProxy(_proxy, pairLogic); } function setAdminForProxy(address _proxy) external override { IWSProxy(_proxy).changeAdmin(currentAdmin); emit ChangeAdmin(_proxy, currentAdmin); } function getLogicForPair() external view override returns(address) { return pairLogic; } function getCurrentAdmin() external view override returns(address){ return currentAdmin; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_pairLogic","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proxyAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"ChangeAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"adminAddress","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"logic","type":"address"}],"name":"NewPairLogic","type":"event"},{"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":"proxyAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newLogic","type":"address"}],"name":"UpdateProxy","type":"event"},{"inputs":[],"name":"PAIR_TYPE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLogicForPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairLogic","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proxy","type":"address"}],"name":"setAdminForProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"updateCurrentAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_logic","type":"address"}],"name":"updatePairLogic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proxy","type":"address"}],"name":"updateProxyPair","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610bfe380380610bfe8339818101604052602081101561003357600080fd5b5051600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160a01b0381166100b95760405162461bcd60e51b8152600401808060200182810382526026815260200180610bd86026913960400191505060405180910390fd5b60028054306001600160a01b031991821617909155600180549091166001600160a01b0392909216919091179055610ae2806100f66000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063715018a611610081578063ba4bcd721161005b578063ba4bcd721461020a578063be7a76f514610212578063f2fde38b1461021a576100d4565b8063715018a6146101f257806387dcb20e146101fa5780638da5cb5b14610202576100d4565b8063508d1e6b116100b2578063508d1e6b1461017457806352985c6b1461018e578063643d430c146101c1576100d4565b8063191873fb146100d95780632acef1201461010e578063482134f414610141575b600080fd5b61010c600480360360208110156100ef57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b61010c6004803603602081101561012457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610342565b61010c6004803603602081101561015757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610437565b61017c610517565b60408051918252519081900360200190f35b61010c600480360360208110156101a457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661051c565b6101c961075c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61010c610778565b6101c961086d565b6101c9610889565b6101c96108a5565b6101c96108c1565b61010c6004803603602081101561023057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166108dd565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c90600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103c857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa2c0f858bb578c3740caa5581e42dafc7fd07bd9bc6c186652a306a6619f00f490600090a250565b600254604080517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152905191831691638f2839709160248082019260009290919082900301818387803b1580156104ab57600080fd5b505af11580156104bf573d6000803e3d6000fd5b50506002546040805173ffffffffffffffffffffffffffffffffffffffff9283168152905191851693507fcf9b665e0639e0b81a8db37b60ac7ddf45aeb1b484e11adeb7dff4bf4a3a6258925081900360200190a250565b600281565b60028173ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561056657600080fd5b505af115801561057a573d6000803e3d6000fd5b505050506040513d602081101561059057600080fd5b5051604080517f2a2767e5000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921691632a2767e591600480820192602092909190829003018186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d602081101561062457600080fd5b50511461067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610a83602a913960400191505060405180910390fd5b600154604080517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283166004820152905191831691633659cfe69160248082019260009290919082900301818387803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b50506001546040805173ffffffffffffffffffffffffffffffffffffffff9283168152905191851693507fb2a0a92cb938918ddf9159f9d5ff64d03a42b735022db4fb8f80cbf34753f7ea925081900360200190a250565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107fe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461096357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166109cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610a5d6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735753436f6e74726f6c6c65723a2057726f6e6720706169722070726f787920666f72207570646174652ea26469706673582212200a4540ee12ef0fba1163274ff2d30fe72189440941e72ee34245390b94cf55a064736f6c634300060c00335753436f6e74726f6c6c65723a2057726f6e672070616972206c6f676963206164647265737300000000000000000000000033e57451dd6d0b03786467173673f57e55a29b3f
Deployed ByteCode Sourcemap
3146:1719:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3983:153;;;;;;;;;;;;;;;;-1:-1:-1;3983:153:0;;;;:::i;:::-;;3833:142;;;;;;;;;;;;;;;;-1:-1:-1;3833:142:0;;;;:::i;4468:170::-;;;;;;;;;;;;;;;;-1:-1:-1;4468:170:0;;;;:::i;3327:37::-;;;:::i;:::-;;;;;;;;;;;;;;;;4144:316;;;;;;;;;;;;;;;;-1:-1:-1;4144:316:0;;;;:::i;4756:104::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2592:148;;;:::i;3201:24::-;;;:::i;1952:79::-;;;:::i;3232:27::-;;;:::i;4646:102::-;;;:::i;2895:244::-;;;;;;;;;;;;;;;;-1:-1:-1;2895:244:0;;;;:::i;3983:153::-;2164:6;;:20;:6;2174:10;2164:20;2156:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4069:12:::1;:24:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;4109:19:::1;::::0;::::1;::::0;-1:-1:-1;;4109:19:0::1;3983:153:::0;:::o;3833:142::-;2164:6;;:20;:6;2174:10;2164:20;2156:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3913:9:::1;:18:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;3947:20:::1;::::0;::::1;::::0;-1:-1:-1;;3947:20:0::1;3833:142:::0;:::o;4468:170::-;4568:12;;4539:42;;;;;;:28;4568:12;;;4539:42;;;;;;:28;;;;;;:42;;;;;4568:12;;4539:42;;;;;;;;4568:12;4539:28;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4617:12:0;;4597:33;;;;4617:12;;;4597:33;;;;;;;;-1:-1:-1;4597:33:0;;-1:-1:-1;4597:33:0;;;;;;;4468:170;:::o;3327:37::-;3363:1;3327:37;:::o;4144:316::-;3363:1;4249:6;4240:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4240:33:0;4222:76;;;;;;;;:74;;;;;;;:76;;;;;4240:33;;4222:76;;;;;;;;:74;:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4222:76:0;:89;4214:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4396:9;;4369:37;;;;;;:26;4396:9;;;4369:37;;;;;;:26;;;;;;:37;;;;;4396:9;;4369:37;;;;;;;;4396:9;4369:26;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4442:9:0;;4422:30;;;;4442:9;;;4422:30;;;;;;;;-1:-1:-1;4422:30:0;;-1:-1:-1;4422:30:0;;;;;;;4144:316;:::o;4756:104::-;4840:12;;;;4756:104;:::o;2592:148::-;2164:6;;:20;:6;2174:10;2164:20;2156:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2699:1:::1;2683:6:::0;;2662:40:::1;::::0;::::1;2683:6:::0;;::::1;::::0;2662:40:::1;::::0;2699:1;;2662:40:::1;2730:1;2713:19:::0;;;::::1;::::0;;2592:148::o;3201:24::-;;;;;;:::o;1952:79::-;1990:7;2017:6;;;1952:79;:::o;3232:27::-;;;;;;:::o;4646:102::-;4731:9;;;;4646:102;:::o;2895:244::-;2164:6;;:20;:6;2174:10;2164:20;2156:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2984:22:::1;::::0;::::1;2976:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3086:6;::::0;;3065:38:::1;::::0;::::1;::::0;;::::1;::::0;3086:6;::::1;::::0;3065:38:::1;::::0;::::1;3114:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2895:244::o
Swarm Source
ipfs://0a4540ee12ef0fba1163274ff2d30fe72189440941e72ee34245390b94cf55a0
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.